许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Simulink自动代码生成标准化建模:MAB与MISRA C 2012规范实例

Simulink自动代码生成标准化建模:MAB与MISRA C 2012规范实例

阅读数 7
点赞 0
article_banner

为什么要规范建模

MathWorks 咨询委员会 (MAB) 规范规定了在 Simulink® 和 Stateflow® 中建模的重要基本规则。这些建模规范的总体目的是让控制 系统 模型的建模者和使用方能实现简单、共同的理解。这些规范的主要目标是实现易读的仿真和验证以及代码生成。现在汽车电子代码,项目管理等很多都需要标准化管理,自然模型的建模都需要遵循一定的标准。这里总结了MAB的建模标准的一些常用规则,方便建模初期有一定的意识,避免建模完成后再去调整降低工作效率。

MAB, MISRA   C2012建模规范步骤

MathWorks Advisory Board (MAB),规则很多,想要全部记住也不可能,所以Simulink提供了一个规则检查,方便我们去根据规则调整模型,非常方便。如下是MAB的标准规则文档:

Control Algorithm Modeling Guidelines Using MATLAB ® , Simulink ® , and Stateflow ®
Version 5.0

操作如下:

选择需要标准化的模型进行检查

选择需要检查的标准,如MISRA C 2012, ISO 26262等,这里选MAB

检查完后可以在右边查看通过了哪几项,还有哪几项没通过,没通过的就是需要去调整的。如下通过83,没通过34项。

选一个Warning进行修改,检查子系统命名

根据MAB规范,这里名字不能有空格,只能是数字,字符和下划线,也不能在模块上方。

改完后再点Run This Check检查通过如下:

MISRA C 的Check需要检查配置参数

改到没有任何Warning


常用的规范总结

常用MAB标准总结

在建模的时候把一些常用的标准记住,可以减少后期更改的工作量。如:

1. 模块的前景色设置为黑色,背景色为白色

2. 模块命名时不要带空格

3. 模块名要在模块的下方

4. 自定义的模块名或者端口名要显示,没有自定义系统默认的模块名或者端口名要隐藏

5. 信号线与信号线不能相交(没有实际连上)

6. 除反馈路径上的模块外,所有顺序块必须从左向右放置。

7. 除反馈路径上的模块外,所有平行块必须从上到下放置。

8. 所有的方块都应该朝右

9. 两个子系统之间如果有信号传递,至少要有一根线直接连接起来,不能全是From

10.没有用到的信号需要删掉,如Terminate

11.输入端子标签的命名,要和端子信号线保护一致且,且输入端子的标签需要添加

12. 信号的标签不要和其他的信号或者模块重叠,标签要放在信号线的下方

13. 信号线上的标签要紧靠上一个输出模块,如输入输出和运算输出


14. Multi-Port Switch 要选择One-based contiguous

15. 常数模块里面不要给数字,给定义的变量名

16. 加运算只能有两个输入且第一个输入是“+”,圆形的加和方块加功能一样,但是反馈回路用圆形的加

17. 乘法和加法一样只能有两个输入且第一个输入对应“*”

18. 输入端子统一放在模型的最左边且对齐,输出端子统一放在所有模块最右端且对齐

参考文档:Control Algorithm Modeling Guidelines Using MATLAB ® , Simulink ® , and Stateflow ®Version 5.0

生成代码配置

MAB只是建模的规范,和生成代码没有太大直接关系,这里配置生成代码规则满足MISRA C的标准,需要配置如下选项:

这里配置执行效率和MISRA C 以及 可追溯性选项

打开生成代码Check Model,会根据配置的选配进行Check然后指导对模型调整,如这里配置了执行效率优先,Check的时候会以此为大前提推荐调整查表等配置,以使模型生成代码后执行效率最高。

如下是调整模型后的Check结果,经过调整后这里Index需要从0-5,而建模的时候是从1-6,功能不影响,执行效率不影响,但是不符合MAB规范。这里可以先不作调整。其他配置都检查通过了。

生成代码如下,检查通过了22项,还有2项警告,只需要按照警告提示进行调整即可,功能并不影响


总结


模型规范化的工作量还是不小的,尽量在一开始的时候有一个大体的概念,避免后期规范化的时候重复工作。在这个过程中也会遇到一些冲突性的问题,如

遇到个 Bug  ,在调整MAB标准的时候,有如下警告(可能是软件版本的原因,也有可能是配置问题):

要取消 Hide ALL Link才能去掉

暂且把这次规范化的操作总结一下,MAB的规范好几百个,简单总结了常用的一些,减小后期调整的时间。后续有问题再作补充。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空