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

2.在建模选项卡上,点击模型数据编辑器。在模型数据编辑器中,选择参数选项卡。
3.在模型中,点击标签为 G1 的 Gain 模块。在模型数据编辑器中,使用值列将增益参数的值设置为 myStruct.G1。
4.在 G2 模块中将增益参数的值设置为 myStruct.G2。
5.在 myStruct.G2 旁边,点击操作按钮(含三个纵点),然后选择创建。
6.在“创建新数据”对话框中,在值框中键入 Simulink.Parameter(struct)。从位置列表中,选择 Base Workspace。点击创建。名为 myStruct 的 Simulink.Parameter 对象出现在基础工作区中。
7.在 Simulink.Parameter 属性对话框中,在值属性旁边,点击操作按钮并选择打开变量编辑器。
8.右键点击字段列下的空白区域,然后选择新建。将新结构体字段命名为 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'
*/
/* External inputs (root inport signals with default storage) */
指定结构体类型的名称
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