1、设置路径,弄个GenCode文件夹放工程,选择路径,打开simulink。
2、新建个空白模型
3、通过保存文件修改名字,里面的变量名会被这个文件名影响。保存后路径中会多一个slx文件
?1、设置求解器,仿真时间10秒,定步长,离散,步长时间设置为0.01s
2、设置Code Generation,系统目标文件那里原本是grt.tlc的,改成ert.tlc,可以减少嵌入式C语言的代码量。
3、设置生成报告,代码成功生成后会自动打开生成报告。
1、打开Library Browser,选择控件来搭建模型。
2、搭建个简单的模型,连起来就行,需要分叉的话就用右键从原来的线上面拖出分支。
我们想生成个代码Out= in_x * in_y * in_z * 2.0;
?
理解simulink数据管理,才能知道下面的信号和参数怎么管理。
三个层级:包、类、属性
包只有一个:Simulink Package
两个类:Signal信号、Parameter参数,分别有各自的属性
1、在信号线上定义信号名。
鼠标双击信号线,出现编辑框之后,写上信号线的名字in_x、in_y、in_z、out_num。
2、打开Link to Data Dictionary
3、新建个sldd文件
4、点击左下角的图标,选择Model Explorer
5、新建信号对象in_x、in_y、in_z、out_num,设置Storage Class。
6、关联信号对象和信号线。
右击信号线,选择Properties,然后选中Singal name must resolve to Simulink signal,成功设置之后线上的信号名前面会出现一个蓝色的三脚叉。
1、定义参数对象。
在Model Explorer里,添加Simulink Parameter,改名为gain_k,初始值为2,Storage Class为const Volatile。
2、关联参数
双击Gain模块,填入参数对象名gain_k
快捷键Ctrl + B 会校验模型和生成代码,模型有硬伤就会报错,没硬伤就可以生成报告和代码
源代码路径在ert_rtw文件夹下面的.c文件,红框里面的就是我们要生成的代码了,跟预期一致。