供需大厅

登录/注册

公众号

更多资讯,关注微信公众号

小秘书

更多资讯,关注荣格小秘书

邮箱

您可以联系我们 info@ringiertrade.com

电话

您可以拨打热线

+86-21 6289-5533 x 269

建议或意见

+86-20 2885 5256

顶部

荣格工业资源APP

了解工业圈,从荣格工业资源APP开始。

打开

如何将Simulink应用于ISO 26262项目?

来源:荣格 发布时间:2018-05-08 629
工业金属加工汽车制造整车及零部件金属成型机床机加工总装与装配工程材料与轻量化塑料加工设备橡胶加工设备及零件工厂管理其他 技术前沿
收藏
作为目前乘用车领域的功能安全标准,ISO 26262明确了与安全相关的电子/电气系统在出现故障时可能导致的危险,也是目前国际公认较为先进的技术规范。为此,设计人员也一直在寻找可以有效满足该要求的软件架构。那么,基于模型设计的Simulink软件可在这一过程中发挥怎样的作用?

作为目前乘用车领域的功能安全标准,ISO 26262明确了与安全相关的电子/电气系统在出现故障时可能导致的危险,也是目前国际公认较为先进的技术规范。为此,设计人员也一直在寻找可以有效满足该要求的软件架构。那么,基于模型设计的Simulink软件可在这一过程中发挥怎样的作用?

现阶段,自动驾驶汽车是几乎所有媒体关注的焦点,有关增强功能安全性的建议层出不穷。尽管如此,这些建议主要集中在最新的编码方式或消除错误的工具方面。行业专家很早便认识到,保证安全主要是确保系统及其相关要求的正确和适当,而软件及编码方式是实现这一功能的基础。

以连续时间和离散时间仿真为基础的Simulink®可实现基于模型的设计,该工具不仅能够用于辅助设计车辆,还能在车辆进入道路测试之前,在不同驾驶条件下对整个系统进行测试,并仿真其故障情况。此外,该工具还支持ISO 26262规定的流程活动,包括工具认证。其中,IEC Certification Kit对该工具支持的功能进行了详细说明,也包括国际认证机构TÜV SÜD提供的证书和报告。本文中,将深入阐述经TÜV SÜD认证、将Simulink应用于ISO 26262项目的工作流程,以及需求开发、设计建模、代码生成、设计验证、代码验证和工具认证等基于模型的设计。

ISO 26262和基于模型的设计

ISO 26262包含用于人工设计编码和基于模型的设计指南,也认可部分采用基于模型设计所带的优势:

◆使用无缝模型能够有效保证一致性,提高研发效率。

◆该标准提及“广泛使用”数学模型,同时利用建模工具将“半形式化的图形方法”应用于软件开发。

图1. Simulink 系统设计模型

ISO 26262标准还指出,建模不仅可获取要实现的功能(嵌入式软件),还可通过真实的物理系统(车辆模型和环境模型)仿真来创建整个系统模型。由此,便能够以可接受的计算速度构建高保真度、高复杂度的车辆系统以仿真接近于实际的行为。在开发过程中,车辆/环境模型将逐渐被实际系统及其环境所替换,而功能模型将作为设计基准,通过生成代码将嵌入式软件应用于控制单元。图1所示为典型的Simulink闭环系统模型,它由控制器、被控对象以及信号处理器组成。在ISO 26262中,系统设计规范不仅是软件开发的输入,更是保证系统安全的基础。

图2. 使用Simulink 实施ISO 26262 软件开发和验证的流程

随后进行系统的详细设计,直至其成为包含足够细节的、可用于产品级代码生成的软件设计基准。ISO 26262将这一流程描述为“模型进化”。在实践中,存在功能模型的进化——从早期模型设计到可实施模型,再到最终自动转换为代码,ISO 26262推荐了各种基于汽车安全完整性等级(ASILs)的活动实施方法。用户可以根据实际的应用场景,利用该指南建立适当的工作流程。图2所示为ISO 26262的具体流程,其中,实心箭头所示为开发活动,虚线箭头所示为验证和确认活动,而“模型进化”则以椭圆形的虚线表示。

需求开发

在实施安全相关开发流程时,应首先制定功能及安全需求。ISO 26262建议利用“软件架构设计和安全需求之间的双向可追溯性”进行验证。为此,可以利用Simulink Requirements™制定并追踪需求到模型、测试及代码。同时,Simulink Requirements支持对其他工具的双向追溯,包括Microsoft®Word®、Microsoft Excel®以及IBM® Rational® DOORS®。而需求的实现和验证状态可在Simulink Requirements中监测和管理,需求链接可显示在生成的代码中(见图3)。

图3. Simulink中的需求规格,可实现双向追溯

设计建模

在ISO 26262和基于模型的设计环节,详细描述了功能模型从高层可执行规范进化为可用于产品级代码生成的整个流程。其需要的修改和完善包括:

◆使用Simulink Control Design™离散化工具将模块从连续时间(S域)转换为离散时间(Z域)

◆使用Fixed-Point Designer™将数据从双精度转换至单精度或定点

◆使用Stateflow®添加诊断、模式逻辑、状态机以及调度算法

对于ASIL B至D,ISO 26262强烈建议使用建模指南。此外,还可使用MAAB风格指南,以及Simulink提供的用于ISO 26262的高完整性指南。Simulink Check™可自动检查两种指南,可在编辑时显示问题,例如不合规模块的插入等。此外,还可加入自定义指南和检查。

代码生成

ISO 26262标准明确指出:软件单元的实施包括生成源代码以及转换为目标代码。为此,可以利用Embedded Coder®生成Simulink模型的C、C++以及AUTOSAR代码。该代码符合MISRAC®:2012自动代码指南要求。ISO 26262指出基于模型设计的代码指南和手工代码指南存在差异,并以MISRA®为例进行说明。

Embedded Coder提供了优化代码存储和速度的选项。此外,还可以生成处理器专用优化代码,从而有效利用硬件加速器,例如用于ARM®和Intel®的SIMD®。可以通过ISO 26262中所述的模型至代码、处理器在环测试验证优化代码是否与规定公差内的仿真结果匹配。

可执行目标代码使用编译器和链接器从生成的源代码中产生,IEC Certification Kit中的工作流程允许代码生成器、编译器和处理器的优化,这对于大批量生产的ECU非常关键,而处理器在环测试可用于验证可执行的目标代码。

设计验证

ISO 26262推荐了一些用于验证软件设计和实施的静态方法和动态方法,包括单元级和集成级活动。关于基于模型的设计,ISO 26262指出“测试对象可以是源于模型的代码或模型自身,具体取决于软件开发流程”。

Simulink Test™提供在Simulink中进行ISO 26262验证和确认活动使用的框架。可以将其用于制定、管理以及执行针对模型和模型生成代码的系统化仿真测试。图4所示为测试序列和评估模块的示例。

IEC Certification Kit中的TÜV SÜD报告明确了自动验证和确认期间Simulink Test的作用:Simulink Test可自动对Simulink模型和生成的代码执行核心认证和确认活动,譬如开发和执行Simulink模型测试、开发和执行模型与代码之间的背对背测试、评估测试结果、生成测试报告、识别需求和测试用例之间的可追溯性。

图4. Simulink 测试序列和评估模块用于建模和编制复杂的测试场景

ISO 26262建议通过结构覆盖率分析确定测试的完整性,识别非预期功能。此外,ISO 26262还列出提高安全度的三种方法(语句覆盖、分支覆盖和MC/DC覆盖),并强烈建议将最后两种方法用于ASIL-D。

关于基于模型的设计,该标准指出:可在模型级下使用类似结构覆盖率度量方法,对模型进行结构覆盖率分析。对于结构覆盖率不足的情况,应指定附加测试用例或提供合理性说明。Simulink Coverage™针对模型和生成的代码提供结构覆盖度量功能,使用Simulink Test执行测试可轻松启用该功能。若模型覆盖率不足,可以使用Simulink Design Verifier™自动生成其他测试用例以达到所需覆盖率,包括MC/DC。此外,Simulink Check还能够识别重复模块以降低复杂度,也包括度量仪表板以评估项目质量(见图5)。

图5. 度量仪表板展示了模型指南的符合程度

此外,IEC Certification Kit提供工具认证支持,以及针对Simulink Check、Simulink Coverage(包括模型和代码覆盖率)、Simulink Design Verifier以及Simulink Test的TÜV SÜD证书和报告。

代码验证

ISO 26262提供了一些用于验证软件设计和实施情况的方法——用于检测已生成代码(例如,无法追踪至模块或信号的代码)中非预期功能的有限追溯审查方法。该套件可自动生成所需追溯矩阵。或者,在进行软件在环(SIL)测试期间,可以使用Simulink Coverage将模型覆盖率与代码覆盖率进行比较,或直接使用Simulink Code Inspector™。

图6. 嵌入式处理器PIL的示例

最后,可以使用Polyspace Bug Finder™检查是否符合MISRA要求。如果项目中含有自动代码和手工的混合代码,采用MISRA检查和代码覆盖分析方法非常有帮助。若对安全性要求较高,可以使用Polyspace Code Prover™ 以证明不存在运行时错误,例如除零错误。IEC Certification Kit提供用于Polyspace®产品的工具认证支持以及TÜV SÜD证书和报告。在编译和生成可执行代码后,可以利用PIL测试重用模型测试验证目标处理器上执行的代码(见图6)。

ISO 26262强烈推荐对ASIL C和D执行背对背测试。此外,还指出在目标硬件环境的替代环境下测试的重要性,并强调需要了解测试环境和硬件环境之间的差异。源代码或目标代码不同,例如处理器数据和地址的不同字长,可能导致测试环境和目标环境之间出现差异。事实上,跨平台存在许多潜在的数值误差,特别是浮点数据。某些数值误差起初很小随后逐渐累积和增大,这种情况在反馈控制系统中特别明显。因此,ISO 26262列出了各种适用于背对背测试的在环测试方法,可在不同环境下执行软件单元测试。

Simulink Test可以自动执行在环测试,包括使用Embedded Coder执行SIL和PIL,使用Simulink Real-Time™执行HIL,通过Simulink Coverage中的覆盖率度量功能提供通过/失败报告。

工具认证

ISO 26262-8还对其他流程进行介绍,包括版本控制、配置管理以及文件编制。同时,这些流程分别由Simulink Project,Simulink模型差异识别和合并,以及Simulink Report Generator™提供支持。

图7. 摘自IEC Certification Kit 中ISO 26262 至Simulink 的映射

此外,该标准还提供工具认证指南,不允许工具供应商认证自身工具,但要求用户对于特定项目认证工具。IEC Certification Kit通过提供典型使用案例、参考工作流程、工具分类分析、软件工具文档、工具认证报告和确认测试,从而对工具进行有效的预认证。

TÜV SÜD审查及审核MathWorks工具的开发和质量流程、错误报告功能,以及认证每次产品发布的结果。IEC Certification Kit包含这些TÜV SÜD证书和报告,可用于遵守适当的验证和确认工作流程的需要。该套件提供基于典型工具使用案例的参考工作流程。此外,该套件还提供将ISO 26262目标映射至Simulink的支持功能(见图7)。但需要注意的是,使用已认证的工具不能100%保证软件或系统的安全性。


收藏
推荐新闻