对应于符合ISO26262的建模规范实践,我们知道,仅Simulink而言,它是一个面向多域仿真并基于模型设计的模块框图环境,而设计者习惯风格以及配置的差异会导致模型的差别;尤其是团队配合大的集成项目时建模规范一致性整体把握的重要性。
那么我们首先应对建模规范做个大致的通俗化了解:即什么是建模规范,建模规范的目的又是什么,建模规范的既定准则由谁来制定,建模规范中具体的应用场景又是什么?带着这样的问题,我们需要了解建模规范的实例,比如外观和布局的规则;所谓的可靠语言子集是什么;如何使用样式模板;依据规范中数据类型的有效定义;如何结合ISO26262中建模规范需要覆盖的规则进行工程实施;然后基于这样的原则如何去自己的建模规范。
建模规范的目的:
•避免使用上易出错的建模方式
为了增强系统健壮性,从Simulink库中定义验证过得安全子集;
符合理解习惯(比如关系运算模块,常数输入放在第二个输入口);
•增加效率和安全性
保证模型配置的一致性;
提高仿真效率得配置;
保证代码生成配置的一致性和优化选项的一致性;
避免使用导致效率低下的建模模板;
•风格要求,OEM,提高供应商模型交互的可读性、规范性、复用性等
统一的风格和感官认识;
•ISO26262、IEC61508、DO178C等行业标准要求
建模规范:专经验的出处
•MAAB(Mathworks
Automotive
Advisory
Board)
•Mathworks:
Modelling
Guidelines
for
High-Integrity
Systems
•MISRA:MISRA_AC_SLSF
•企业专:长期的使用经验总结
建模规范典型应用场景:
•基于模型的软件开发,期望产品通过ISO26262认证
•注重产品质量和形象的OEM和供应商
•注重模型到代码质量的OEM和供应商
ISO26262中涉及到对标准建模规范的要求:
无论是Simulink还是C语言,都属于弱类型语言,当语言本身并不能体现出充分论证条件时,只能通过使用语言的规范来补充,也就是说我们需要使用一些语言规范来保证严格性。
在功能安全规范中,也明确说明了基于编码规范和手写代码实现的差异性;比如ISO26262功能安全中软件开发层面,对于建模和编码规范的要求。
规范中的解释,对应下来都是需要我们在实际建模中执行实现的。
上面ISO26262表格中的解释在工程中可以总结为:
•模型可读性好,如何保证模型的清晰可读,以及风格上的一致性;
•模型在流程上的维护、变更、复用以及局部可裁剪;
•模型在仿真效率上的快速验证,且便于分析;
•模型在除了单元端的测试和集成性;
•模型在生成代码后,如何保证代码的质量,代码生成的配置,以及安全;
针对以上要求,如何企业级的建模规范:
首先,根据企业目前开发部门的开发现状,基于模型的开发的整体水平把控,针对不同的控制器(VCU\BMS\MCU)类型去选择建模规范。然后,根据ISO26262中对于建模和编码的风格,除了建模规范,也要对编码规范响应,比如MISRA C2012;同时根据已有的规范形成适合自己的规范模板,随着企业开发经验的不断丰富,知道在局部模型和算法处从布局外观到语言子集的规划,数据定义,以终形成的企业某控制器的建模规范设计文档。
基于此,恒润科技也提供了基于模型的开发,均由业内具有多年工程开发经验的工程师为大讲解,涉及基础工具使用;建模规范;模型测试与验证;代码生成高级;以及符合ISO26262的软件开发与测试咨询服务经验。