趁着还没“发霉”,把以前的知识在总结总结。本篇是基于MBD测试系列文章的第一篇,也不知道能写多少,且写且看吧。
01概述
在基于模型(MBD)开发的软件 中经常会涉及到MIL/SIL/PIL和HIL测试。
我们先来熟悉下以上几个术语的定义:
MIL-Model In Loop:验证控制算法模型是否满足设计功能需求;
SIL- Software InLoop:在PC上验证代码行为是否与模型一致;
PIL- ProcessorIn Loop:在目标处理器上验证代码实现的行为是否与模型一致;
HIL- Hardware InLoop:在整车或系统模拟外设上验证代码与控制器是否满足设计需求。
MIL就是对软件模型在模型的开发环境下(如Simulink)进行仿真,通过输入一系列的测试用例,验证模型是否满足了设计的功能需求。除此之外还需要做模型覆盖率度量:
ConditionCoverage(条件覆盖)
DecisionCoverage(判定覆盖)
Switch-caseCoverage(分支覆盖)
MIL测试结构图如下图所示:
1- 针对范围: 单元测试与集成测试; 功能模块和集成模块; 2- 功能: 验证算法模型是否满足设计的功能需求。 02MIL 测试过程
MIL测试除建立控制器模型外,还需建立被控对象模型,将控制器和被控对象连接起来进行闭环测试。但是在不少子模块中,例如输出为开关量或者在输入确定时输出是固定值,无需和受控对象一起组成闭环系统进行测试,而集成的系统则需要受控对象。因此,将 MIL测试分成两部分:带受控对象的MIL测试和不带受控对象的MIL测试。
1- 不带受控对象的MIL测试:
不带受控对象的MIL测试,设计人员可以很方便的通过设定输入并给出期望的输出,测试时将模型输入设定的输入值,观测模型的输出值是否和期望值保持一致,判定模型是否有效。具体测试过程如下:
设计测试用例
设计功能模型的测试用例。测试用例设计时应遵循以下原则:
1)- 确定输入和输出,并确定其取值范围。
2)- 按照边界值和其左右值,中间值的方式进行输入值的确定,根据确定的输入值,给出期望输出。
3)- 包含测试环境描述和测试步骤。
4)- 包含执行结果。
5)- 包含判定指标和判定结果。
建立测试环境
将搭好的功能模块模型建立输入、输出环境,设定模块的参数值。
执行测试
将设定的输入值输入模型,记录模型执行结果。
测试结果判定
结合判定标准,将执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。
输入输出保存
保存MIL在测试过程中的输入和输出值,用于后续的SIL、PIL的测试验证。
2- 不带受控对象的MIL测试:
带受控对象的MIL测试,一般为子功能模型集成后的模型,实现具体的需求功能。直接受控对象为电机模型,联合仿真(如下图所示),在给定输入条件的情况下,监控输出信号,判定输出结果的正确性。
测试系统模型在整车环境下的输出特性时,需要建立整车的模型,因整车模型的特殊性,一般从OEM或者整车模型软件(CarSim,CarMaker等)中获取。 带受控对象的MIL测试流程和不带受控对象的MIL测试流程基本保持一致。
设计测试用例
设计功能模型的测试用例。测试用例设计时应遵循以下原则:
1)确定输入和运行时间参数,确定输出范围。
2)包含测试环境描述和测试步骤。
3)包含执行结果。
4)包含判定指标和判定结果。
建立测试环境
将搭好的功能模块模型建立输入、输出环境,设定模块的参数值。
执行测试
将设定的输入值和时间输入模型,记录模型执行结果。
测试结果判定
结合判定标准,将执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。
03总结
MIL测试主要是验证模型功能的正确性,是否满足设计的功能需求。只有保证了建模的正确性,才能保证在此基础上生成的代码的正确。通过MIL测试,指定输入和期望结果,将仿真结果和期望结果进行比对,根据判定标准验证模型是否正确。
原文标题:基于模型的测试(壹)
文章出处:【微信公众号:汽车电子硬件设计】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
-
传感器
+关注
关注
2550文章
51035浏览量
753073 -
控制器
+关注
关注
112文章
16332浏览量
177806 -
模型
+关注
关注
1文章
3226浏览量
48807
原文标题:基于模型的测试(壹)
文章出处:【微信号:QCDZYJ,微信公众号:汽车电子工程知识体系】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论