01--封装子系统之命名端口
在子系统里命名模块时,统一模型里不能出现两个同名的端口,端口名应该是唯一的。而使用封装编辑器命名端口则没有这样的限制。
Run一下,波形如下:
给端口设置命名
02--示波器分屏
有时候在仿真看数据时,需要将特定信号仿真示波器中的指定区域,因为示波器默认的向下分屏最多有4个,其中前面3个信号单独占屏,后续的信号全部挤在最后一个屏中。当有超过4个信号时,非常不友好,如下图。
通过“Mux”模块将指定信号进行分屏,便于仿真时数据分析,如下图:
03--封装子系统之图片表示模块
有时候,一个子系统代表一个明显的功能,可以用图片来表示,这样更能清楚的表明该子系统的功能。
在封装子系统的端口输入指令image(imread('图片名字.图片格式')),该图片必须是保存在该模型所在的路径下。
04--模型添加说明或者描述
①可以添加模块 DocBlock ,是一个text或者Word文件,直接输入想要说明的文字即可,双击的话会在MATLAB窗口中打开。
②或者添加模块 Model Info模块输入信息
05--使用 Model Advisor 检查模型
使用该工具,可以自动检查模型是否符合MAAB标准。
我们以下面模型为例,
模型:
StateFlow内部:
子系统内部:
Signal Builder的设置:
仿真结果:
在菜单栏中找到,Model Advisor工具,该检查可以选择子系统或者整体,我们选择整体
运行后,
窗口左侧,选中某一类或项检查,右侧窗口显示对应项目的检测说明、检查结果等
①检查:
点开 By Product, 选择Simulink , 选择右侧的Run Selected Checks,检查结果如图:
②还原点
在修改警告或者错误之前,需要设置还原点以便进行撤销操作
保存还原点:Model Advisor窗口 → File → Save Restore Point As
导入还原点:File → Load Restore Point
③修改错误或警告
点开某一警告项,会列出警告的原因以及建议的修改措施。
如有必要修改,就按照其建议手动修改,再次运行后,修改项已通过,当然这种修改可以通过还原点进行还原,修改也可以进行自动修改或者批量修改等
④MAAB检查
按图中设置,用MAAB标准检查该模型
⑤Model Advisor报告
06--用Stateflow做分支、循环等结构
这里举最简单的例子:
①If-else结构
if(A>B)
C==1;
else if(A==B)
C==0;
else (A<B)
C==-1;
也可以通过节点流程图来实现该功能
还可以通过选择模板快速建立流程图:
创建好空的StateFlow图后,在如下选项中设置好条件及结果:
自动生成流程图
②for结构
for(i=0;i<10;i++)
i<10时,C==0;i>.=10时,C==1;
也可以通过节点流程图实现:
07--StateFlow内时间逻辑事件
时间逻辑通过时间来控制状态机的运行,时间逻辑操作符(at,every,after,before4种)分别完成对应的运算
举例: