嵌入式系统实时仿真解决方案

耗尽温柔 提交于 2020-03-17 11:09:15

ETest_RT是一款完全自主知识产权的半实物仿真测试平台(HIL)集成开发环境。该开发环境采用标准化的硬件模块和分层结构化的软件平台,实现了半实物仿真测试与验证环境搭建的功能,主要应用于装备嵌入式软件半实物仿真测试平台的快速开发与实施。
ETest_RT深度集成Simulink,提供Simulink模型的运行及验证环境。利用各种总线接口同外围其他设备连接搭建起半实物仿真环境,运行仿真模型验证功能,通过调参功能,能够自动提取模型内部的增益参数,在运行时调整参数值,可实时查看在不同参数条件下模型的运行情况。
下面就来看看ETest_RT是如何实现Simulink模型的设置和运行。
使用ETest_RT进行仿真,模型是运行在一台工控机上的。工控机预装了实时操作系统,并且能够接受运行在另一台主机上的“仿真执行器”下发的指令。这台工控机预装了一系列控制卡,可以支持各种通信接口。在半实物仿真环境中,这些通信接口都可以用来同系统的其他部件(或实物)进行连接。
执行环境准备好后,我们还需要使用ETest_RT进行模型的准备和设置。
打开ETest_RT,首先新建一个测试项目,后面的所有操作都将在这个项目中完成设置。
1 配置物理接口
从“仿真”工具栏中选择“外围系统”,“通道”添加在“外围系统”上。在“通道”上添加“协议”。协议具有数据描述功能,并且可以在运行时自动解包、打包。
在这里插入图片描述
图 1交联关系图
2 创建“Simulink任务”
在“实时任务”下创建Simulink任务。这个任务可以下发到工控机上,作为一个任务运行。
在这里插入图片描述
图 2 Simulink任务
在Simulink中设计模型。如图3所示。
在这里插入图片描述
图 3 Simulink模型设计
3 导入模型并生成代码
创建完成后,把在Simulink中设计好的模型导入到ETest_RT的Simulink任务中。(导入对象为slx文件。)
在这里插入图片描述
图 4导入模型
然后使用“生成C++”代码的功能,将Simulink模型生成为C++代码。
在这里插入图片描述
图 5生成C++代码
生成的代码包括多个cpp文件和h文件,其中entry.cpp为主文件,包含了main函数。Main函数包含下面两行代码:
/测试代码/
Simulink_T simu;
simu.start(10.0);
这两行代码声明了一个Simulink_T类型的对象,并且调用这个对象的start函数启动这个对象,运行时间为10秒。
4 设置接口
为了实现将Simulink模型的输入输出绑定到测试设备的通信接口上,能够和外围设备进行通信,从而达到半实物仿真的效果,需要调用设置工具对接口进行设置。设置工具的界面如图所示。
在这里插入图片描述
图 6设置接口
可以看到,界面中将Simulink模型的输入/输出接口对应到外围系统的协议字段上面。这样,模型在运行的时候,每一个step都将进行一次输入、输出操作,来获取、输出数据。
同时,如果模型中使用了m文件进行测试数据准备等操作,也可以导入m文件,这样生成代码的时候将包含相关数据。
5 执行模型并实时调参
代码生成完毕后,就可以使用ETest_RT包含的编译器进行模型代码的编译,并且编写调度程序,将模型代码下载到指定的下位机进行执行了。
在模型代码运行过程中,可以使用ETest_RT提供的实时任务调节工具进行任务的实时调参、控制。
实时任务调节工具可以查询到当前实时下位机中运行的实时任务,并且列出其参数(任务中的全局变量是可调参数)。可以输入参数的值,并将参数发送到下位机任务中,实时调节任务的运行情况;也可以使用“终止任务”功能,将任务终止掉。
在这里插入图片描述
图 7实时调节参数
在Simulink模型创建的任务中,ETest_RT能够自动识别Gain模块的增益系数,作为调节对象。因此ETest_RT能够方便地实现模型运行情况的调节。
6 小结
本文介绍了一种实时任务模型的仿真运行环境ETest_RT。主要实现功能:描述模型运行的外围接口环境;能够导入Simulink创建的模型并且生成代码;图形化配置模型的输入输出接口;下载模型到实时下位机中运行并实时参数调节。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!