搭建Simulink模型

完成设置后就可以搭建模型了。
Code Generation 的模板一般采用Function-Call Generator模块。(也有直接对subsystem直接采用 build This Subsystem的形式生成代码,这里不推荐)如下:搭建Simulink模型_第1张图片
生成文件
按照上篇文章描述进行的设置会生成以子系统名为名的.c和.h文件,以及rtwtypes.h。如下:
这里写图片描述
Model.c即函数的源文件。
Model.h为声明文
rtwtypes.h为数据位类型定义文件(该文件即生成代码与标准C之间的接口定义)
函数接口
生成的接口函数名为Function-Call Generator中子系统部分的命名(上的命名)以及模型系统名分别加上尾缀构成,如下:

extern void Model_initialize(void);
extern void AdddFunc(vcoid);
extern void Model_terminate(void);
);

其中 Model_initialize 供初始化调用,
AddFunc 供周期性调用,
Model_terminate供函数生命周期结束后调用。
变量接口
变量传递的方式一般式通过全局变量的形式进行的,如果没有对信号变量进行定义(在信号线上定义),模型中具体为搭建Simulink模型_第2张图片
生成的接口变量以结构体形式存在:

/* External inputs (root inport signals with auto storage) */
typedef struct {
  real_T a;                            /* '/a' */
  real_T a1;                           /* '/a1' */
} ExtU_Model_T;

/* External outputs (root outports fed by signals with auto storage) */
typedef struct {
  real_T b;                            /* '/b' */
} ExtY_Model_T;

可以通如下两种方式实现

1 在信号上命名,通过修改信号线的属性实现
搭建Simulink模型_第3张图片
2 在信号线上命名,
搭建Simulink模型_第4张图片
如上,勾选Signal name must …,然后在Model Explorer
中定义
搭建Simulink模型_第5张图片
点击1,修改2的name和dataType,选择3处的变量存储类型即可。
注意,该处定义的变量需要保存,每次运行模型前需要加载数据至Workspace中。可以保存为.mat和.m两种格式:.mat用save命令即可;.m可以通过右键的形式完成
:模型可以参考我上传的资源

你可能感兴趣的:(MBD)