【注】 本文为2018 Mathworks 年会上机教程学习笔记, 讲师:周玲, 如有侵权,立即删除
本文所有模型均为上机练习模型,百度云链接
建模规范
Model Advisor针对汽车行业提供了预先定义好的一些检查规范:
- ISO 26262
- MISRA C
- MAAB
Simulink的V&V工具提供了以下两个功能:
- 构建自定义的检查项API
- 规范一致性检查
运行Model Advisor
默认的Model Advisor有两个不同的目录:
- By Product
- By Task
本例中,先通过MAAB建模规范进行模型检查,之后创建自定义的检查规范。 - 打开 CruiseControl_MdlAdv_ReqLink.slx
- Analysis > Model Advisor > Model Advisor
如上图所示,用户可以选择整个模型或是其中一个子系统进行规范检查。 - OK之后,弹出下图,点击Run Select Checks:
- 结束后,可以看到8个warning,打开报告可以查看,如下:
1.Check subsystem names
2.Check model diagnostic parameters
3. Check for Simulink diagrams using nonstandard display attributes
4.Check font formatting
5.Check for propagated signal labels
6.Check entry formatting in State blocks in Stateflow charts
7.Check default transition placement in Stateflow charts
8.Check for comparison operations in Stateflow charts
创建还原点
在我们根据warning进行修改之前,先在Model Advisor中创建一个还原点。
按建模规范修改模型
针对warning的项,逐个进行修改:
1.Check subsystem names —— Compute target speed 修改为 ComputeTargetSpeed
2.Check model diagnostic parameters —— 修改检查项为warning
3. Check for Simulink diagrams using nonstandard display attributes —— Run This Check后点击Modify修改即可
4.Check font formatting —— Run This Check后点击Modify All Fonts修改即可
5.Check for propagated signal labels —— 设置信号属性如下:
6.Check entry formatting in State blocks in Stateflow charts—— 将en:xxx修改成两行
7.Check default transition placement in Stateflow charts —— 这个单独说一下
8.Check for comparison operations in Stateflow charts —— tspeed!=uint8(0)
关于Stateflow中默认转移的建模设置
MAAB中对Stateflow中的默认转移,要求其位于chart的顶部,但结合本例的实际情况,我们并不想这样修改,因此对建模规范这一项的检查做一下修改:
在stateflow上右键,Model Advisor > Exclude block only > Select checks
在弹出的** Model Advisor Exclusion Editor中点击OK**
再返回Model Advisor中查看上面的第7项,已经pass了。
添加自定义的检查项到Model Advisor中
要添加自定义的检查项到Model Advisor中,需要借助Model Advisor API和sl_customization.m文件。
步骤:
- 关闭所有模型文件和Model Advisor窗口
- 将sl_customization.m文件复制到当前工作路径下
- 在Command Window中键入 sl_refresh_customizations
- 重新打开模型
- 重新加载Model Advisor
[这部分在工作当中暂时没有用到,先挖个坑,原文有workflow]