PiL测试实战(下)| PiL阶段的闭环测试

作者:酷兔本兔小编:吃不饱
上篇我们介绍了单元级软件的pil测试,对于集成级的pil测试,其流程和单元阶段基本一致。然而,对于一些带有反馈控制逻辑的集成测试(如电机控制器mcu),pil阶段会将控制算法(controller model)刷入目标板,那如何带着位于pc端的plant model一起进行闭环测试呢?
图1 pil阶段的闭环测试流程
下面我会为以一个座舱温度控制(climatecontrol)软件为例,为大家展示基于tpt fusion-platform的pil阶段闭环测试解决方案。
01climatecontrol软件功能介绍
climatecontrol软件可以通过设定温度和当前座舱温度自动的控制汽车座舱的空调、暖风开启/关闭以及风机的转速,从而实现自动调节座舱温度的功能。其中controller model为主要控制逻辑的实现。
为了对controller model的功能在仿真条件下进行验证,我们搭建了模拟座舱环境的plant model,plant model通过一些预设条件以及controller model的控制来模拟座舱温度的变化。其中plant model输出的座舱温度信号会反馈到controller model实现反馈控制。
图2 climatecontrol控制逻辑示意图
在进行pil测试时,我们会将controller model进行代码生成、编译并刷入目标板,而plant model依然在pc端运行。那么如何实现不同环境下的controller model和plant model之间的通讯呢?
02tpt fusion-platform
fusion-platform是tpt提供的控制软件的软件集成平台。它允许将多个软件模块(称为“节点”)相互连接,并将它们作为单个系统执行。fusion节点一个接一个地处理,共享fusion平台内存,进行数据交换。
这些节点可以支持dll、ude、trace32、xil api、can等类型的平台,因此可以很方便的实现不同环境下的软件间的通讯。
图3 tpt fusion-platform
基于tpt fusion-platform的强大功能,我们可以很方便的实现climatecontrol软件的闭环测试,即:位于目标板的controller model(pls ude节点)+位于pc端的plant model(dll节点)。
03测试环境配置
首先我们需要在tpt中新建一个fusion-platform。并对运行步长、最大运行时间进行简单的配置。
custom node dll节点配置
对于plant model,由于需要在pc端运行,我们可以将其转成dll的格式(tpt提供了把模型生成dll的tlc文件,并且可以在tpt端实现从模型到dll的一键生成)。在fusion-platform新建一个custom node dll节点,并加载dll文件,导入接口信号。
图4 custom node dll节点配置
图5 plant model的接口信息
pls ude节点配置
controller model我们需要将其进行代码生成、编译后刷入目标板。tpt可以通过uad与目标板进行通讯,因此我们需要在fusion-platform中再新建一个pls ude节点。pls ude节点中的接口信号可以通过c文件导入,其他配置过程和我们上篇中的pls ude platform的配置过程完全一致。
图6 pls ude节点配置
04不同环境间的信号mapping
在我们配置好fusion-platform的节点之后,便可以实现不同节点之间的信号交互。但是由于不同节点之间的信号接口数量、接口名称存在不一致的情况,因此我们需要做一些简单的信号mapping工作:
①仅在一个节点中存在的信号(例如发动机转速信号,仅存在于plant model):需在另一个节点中对该信号进行hidden;
②两个节点中均存在但名称不同的信号(例如反馈信号,controller model中为“inttemp_k”,plant model中为“inttemp_k_”):需要在“external_name”中设置其外部名称进行rename。
图7 信号mapping
05闭环测试的实现
做好这些配置工作之后,我们便可以在tpt中搭建测试用例,来进行闭环测试了。tpt会同时调起两个不同环境下的节点,实现pil阶段的闭环测试。
这里我在tpt中搭建了一个简单的测试场景:外界温度-5摄氏度,座舱设定温度18摄氏度。我们可以运行测试用例在tpt中观测各信号的变化情况。
图8 “-5到18摄氏度”升温测试
图9 信号变化情况
通过信号窗口可以看出,当座舱温度低于设定温度时,controller model会控制暖风机使能信号使能,打开暖风机。与此同时,plant model会通过发动机转速、扭矩等信息计算出座舱温度变化并反馈至controller model,实现闭环反馈控制。
so...这个方案是不是很完美?感兴趣的小伙伴快来试一试吧。

精益管理是实现智能制造的基石
广州数据交易所正式揭牌!广电计量成为全省首批会员企业
光纤UL1651认证(OFNP, OFNR, OFN, OFC)
全控型功率器MOSFET涨价成因重点分析
无人药店机器人打理,人工智能未来将在社会药店实现三大功能
PiL测试实战(下)| PiL阶段的闭环测试
除了监控摄像头,AI安防还能怎么玩?
2通道TFT偏置满足汽车LTPS显示需求
微机开关电源的工作原理及故障检修
调谐器的作用及主要性能指标
蓝动夏日自在畅享 vivo 5G夏日购机好礼送不停
设备驱动冲突导致蓝屏,找到并强制删除该驱动的方法解析
勃肯特直驱并联机器人计划推向市场,看看它有哪些特点?
面对IOT生态圈,传统行业如何应对这股浪潮
用于MCU和FPGA的LED图文显示屏控制系统现
雨量传感器的工作原理解析
纳雷科技发布水域卫士系列最新产品WTC261-3000水面监视雷达
物联网网关助力打造煤矿安全监控系统
索尼公布PS5 Logo 将延续PS3及PS4的风格
简述石墨烯纳米结构的原子级精准构造