测试AUTOSAR组合

运行AUTOSAR的组合模型背到后端的测试。版权所有2017年MathWorks公司

该实施例表明测试工具的功能和后端到回测试工作流用于AUTOSAR组合模型。切换到具有写入权限的目录。

该示例使用节气门位置控制器的模型用于汽车。这是密切基础上,导入AUTOSAR组成到Simulink中万博1manbetx(AUTOSAR模块组)的例子。

打开AUTOSAR组合模型

AUTOSAR组合物模型包含互连模型块的网络,其中每一个表示原子AUTOSAR软件组件(ASWC)。节气门位置控制器组合物是由一个AUTOSAR创作工具(AAT)创建并使用描述所述组合物的ARXML文件导入到Simulink。万博1manbetx

该组合物模型包含六个组件模型,一个用于在该组合物每个原子软件组件。万博1manbetxSimulink的inports和outports代表AUTOSAR端口和信号线代表AUTOSAR部件的连接器。

MDL =完整文件(matlabroot,'工具箱''万博1manbetxsimulinktest''万博1manbetxsimulinktestdemos'...'sltestThrottlePositionControlCompositionExample.slx');open_system(MDL);

开放测试工具

的测试工具的模型已经产生,并且可以使用在编辑器画布的右下角的透视控制被打开。或者,使用:

sltest.harness.open('sltestThrottlePositionControlCompositionExample'...'BasicSchedulerTest');

测试序列块被用作源极。被测组件需要加速踏板位置传感器输入APP_HwIO_Value,这是在测试程序块使用一个简单的三步顺序建模:

初始化步骤设置输入到一个标称值和步骤模型950毫秒的稳定的加速指令。加速度指令复位为在标称值终止步。被测组件需要两个附加输入捕获初级和次级节气门位置传感器读数。这些输入用外部时间序列输入模型化,并通过测试程序块被直接供给而无需修改。当一些刺激的投入可以建模和其他人只能作为外部采集的数据这造型风格是非常有用的。

测试工具的导出功能

被测组件是AUTOSAR组合模型,它使用了出口函数建模风格。当您创建导出的函数模型测试工具,线束将包含用于调用每个root级别的Simulink功能块和发送触发事件模型中的每个函数调用子系统的测试序列块。万博1manbetx所生成的测试程序块可以作为一个方便的起点用于建模的调度器。

在这个例子中,由于也由一个测试程序源块生成的输入信号数据,代码发送触发事件已被合并成一个单一的测试程序块和嵌入在每个步骤已生成的刺激波之后。触发事件的呼叫顺序使用从合成模型编译的信息来计算。

  1. 发送(TPS_Primary_Run_0005)

  2. 发送(TPS_Secondary_Run_0005)

  3. 发送(Monitor_Run_0005)

  4. 发送(APPSnsr_Run_0005)

  5. 发送(Controller_Run_0005)

  6. 发送(Actuator_Run_0005)

模拟模型看从被测成分指令输出油门。

SIM('BasicSchedulerTest');open_system('BasicSchedulerTest /范围');

返回到后端测试

测试管理程序可以用来锁定仿真行为和软件在环(SIL)模式验证等效性。打开测试文件并运行等价检测。

close_system(MDL,0);文件路径=完整文件(matlabroot,'工具箱''万博1manbetxsimulinktest'...'万博1manbetxsimulinktestdemos''sltestThrottlePositionControlTests.mldatx');开放(文件路径);sltest.testmanager.run;

测试用例验证节气门位置控制器ASWC的组成模型内的开环特性。等价测试用例的第一部分运行含有在正常模拟模式下的组合物中的测试装置。测试的第二部分使用后负荷回调到节气门位置控制器ASWC切换到与软件合环(SIL)模式超模代码接口。两个模拟的结果表明,该行为等同。

清理

明确sltestThrottlePositionControlDataHBridgeCmd_LkupTbl...SensorSelectionSetpointPercent_LkupTblTPSPrimaryPercent_LkupTbl...TPSSecondaryPercent_LkupTblTPSPercent_LkupTbl兜售logsoutMDL文件路径;sltest.testmanager.clear;sltest.testmanager.clearResults;sltest.testmanager.close;