MBD对ISO-26262认证支持的新进展
作者 : 龚小平、MathWorks
随着汽车由机械定义到软件定义的转变,功能安全一直是汽车行业关注的焦点。汽车产品的大批量、长周期和高可靠性要求,使得引入严格的测试验证流程以保证产品开发的规范化变得十分必要。正是基于这一认识,近年来国内对于功能安全的认识从了解和观望迅速进入跟进和实施阶段。
MathWorks自2009a推出功能安全认证包(IEC Certification Kit)以来,一直不断提供和完善对ISO-26262的认证支持,功能安全认证包提供了包括参考工作流程、测试验证方法说明、工具认证支持套件等功能帮助用户采用基于模型设计的模式通过功能安全认证。随着相关标准的完善和实践经验的积累,认证支持功能不断改进,包括:增加对ISO-26262:2018版标准的支持、参考流程中增加需求管理和架构设计工具等内容、增加对自动驾驶预期功能安全SOTIF的应用支持。
ISO-26262:2018版标准支持(R2020a)
2018版功能安全标准除了核心部分的系统开发(第4章)、硬件开发(第五章)和软件开发(第6章)有所改动之外,还增加了半导体设计流程指导(第11章)和摩托车适用说明(第12章)。
在软件开发章节提出了新方法要求,如在建模和编码规范(表1)增加了并发检查要求;在软件单元验证和集成验证部分均增加了数据流和控制流验证、代码静态分析和基于抽象解释的静态分析要求;在嵌入式软件测试部分增加了基于需求的测试、故障注入测试和测试用例设计要求。
在新的方法对应表中,Polyspace可以通过检查数据冲突和死锁、查找未保护的共享变量等功能来应对并发检查要求;而Polyspace Code Prover正是基于抽象解释方法来证明代码的安全性,可实现基于数据流原理验证代码的动态特性,并以函数调用树的方式抽取控制流信息查找不可达代码。Simulink Coverage的覆盖度分析和Simulink Design Verifier的测试用例生成功能亦可识别不可达分支而作为控制流分析的手段。
在需求测试中,Simulink Test提供了测试用例开发、测试结果评价和测试需求追溯等一系列需求测试管理功能,而Simulink Design Verifier的测试用例生成功能结合测试目标模块则可生成接口测试、等价类分析和边界值分析等用例,具体使用说明参见下表:
此外认证包对硬件开发和半导体设计部分也新增了验证方法的对应说明和参考工作流程。
增加Simulink Requirements和System Composer使用说明(R2019a-R2019b)
需求管理和架构设计是正向设计中极为重要的环节,Simulink平台陆续推出Simulink Requirements和System Composer来支持, 认证包中也增加了这两个工具的使用说明:Simulink Requirements 可用于需求定义、设计追溯(需求-测试-模型-代码);System Composer可用于软件架构设计和验证,如层级定义、组件划分、接口分析、视图抽取等。此外针对自R2019a起独立为工具箱AUTOSAR Blockset,认证包也给出了应用于功能安全的建议。
预期功能安全(SOTIF)流程集成(R2019a )
类似自动驾驶的复杂系统,预期功能的局限会导致潜在危害行为,在预期功能安全标准(SOTIF)的指导原则下,可在MBD流程中集成额外的测试验证活动来排除这些风险,如在自动驾驶需求测试的基础上,对已知场景进行随机化处理,可通过这些随机工况下的在环仿真测试来发现未知场景。
此外在自动驾驶算法的开发过程中,在传统的Simulink和Stateflow以外MATLAB函数的应用比例也逐步增加,这也为功能安全的符合性提出了新的挑战。相关指导原则和最佳实践请参见 MathWorks 官网技术文章 An ISO 26262 Workflow for Automated Driving Applications Using MATLAB: Guidelines and Best Practices。
2022 年发布