参数结构
在生成的代码中创建一个结构。该结构存储参数数据。
C 构造
typedef struct {
double G1;
double G2;
} myStructType;
myStructType myStruct = {
2.0,
-2.0
} ;
程序
1.打开示例模型 InlineBlockParameters。

2.在建模选项卡上,点击模型数据编辑器。在模型数据编辑器中,选择参数选项卡。
3.在模型中,点击标有 G1 的 Gain 模块。在模型数据编辑器中,使用值列将增益参数的值设置为 myStruct.G1。
4.将 G2 模块中的 Gain 参数的值设置为 myStruct.G2。
5.在 myStruct.G2 旁边,点击操作按钮(带有三个垂直点)并选择创建。
6.在“创建新数据”对话框的“值”框中,键入“Simulink.Parameter(struct)”。从位置列表中,选择 Base Workspace。点击创建。名为 myStruct 的 Simulink.Parameter 对象出现在基础工作区中。
7.在 Simulink.Parameter 属性对话框中,点击值属性旁边的操作按钮并选择打开变量编辑器。
8.右键点击 Field 列下的空白处,并选择 New。将新结构体字段命名为 G1。使用值列将字段的值设置为 2。
9.添加一个字段 G2,其值 -2,然后关闭变量编辑器。
10.在 Simulink.Parameter 属性对话框的代码生成选项卡上,将存储类设置为 ExportedGlobal。结构 myStruct 作为全局变量出现在生成的代码中。
11.从模型生成代码。
结果
生成的头文件 InlineBlockParameters_types.h 定义了一个具有随机名称的结构类型。
typedef struct {
real_T G1;
real_T G2;
} struct_6h72eH5WFuEIyQr5YrdGuB;
源文件 InlineBlockParameters.c 定义并初始化结构变量 myStruct。
/* Exported block parameters */
struct_6h72eH5WFuEIyQr5YrdGuB myStruct = {
2.0,
-2.0
} ; /* Variable: myStruct
* Referenced by:
* '<Root>/G1'
* '<Root>/G2'
*/
指定结构类型的名称
1.或者,指定用于结构类型定义的名称 (struct)。在命令提示符下,使用函数 Simulink.Bus.createObject 创建表示结构类型的 Simulink.Bus 对象。
2.该对象的默认名称是 slBus1。通过将对象复制到新的 MATLAB® 变量来更改名称。
3.在模型数据编辑器中,点击显示/刷新附加信息按钮。
4.在数据表中,找到与 myStruct 对应的行。使用数据类型列将 myStruct 的数据类型设置为 Bus: myStructType。
5.从模型生成代码。
代码生成结构类型 myStructType 的定义,并使用该类型定义全局变量 myStruct。
myStructType myStruct = {
2.0,
-2.0
} ; /* Variable: myStruct