-
实时仿真用户案例
Crank-嵌入式GUI设计和开发用户案例
021-64886750
-
实时目标机
Simulink模型库
Demo套件
info@yisuworld.com
Speedgoat基于AMESim-Simulink的实时仿真解决方案
AMESim(Advanced Modeling Environment for performing Simulation of engineering systems)是一个应用广泛的多学科领域复杂系统建模仿真平台。用户可以在这个平台上建立复杂的多学科领域的系统模型,例如燃油喷射、制动系统、动力传动、机电系统和冷却系统等,并在此基础上进行仿真计算和深入分析。
航空航天、汽车等领域的一些客户已经搭建了各自系统的AMESim模型,并希望基于该模型进行实时仿真测试,尤其是针对HIL(hardware-in-the-loop,硬件在环)测试。在这方面,AMESim为Speedgoat实时仿真目标机提供了实时仿真的接口,能够让客户方便地利用已有的AMESim模型开展实时仿真。
具体的方式是,AMESim向Simulink导出AMESim模型对应的S-function,同时生成供实时仿真调用的文件;Simulink集成该S-function并调用MATLAB Coder、Simulink Coder和Visual Studio将完整模型编译下载到Speedgoat实时仿真目标机。下文以HIL为例,着重描述整个实时仿真的操作流程。
在这方面,知名的德国农业设备制造商AGCO已有使用先例。AGCO在开发Fendt Vario系列拖拉机的过程中,以Speedgoat实时目标机为基础,搭建了HIL测试平台,其拖拉机模型就是由MATLAB和AMESim共同搭建的。
AGCO工程师Jürgen Weinbuch评价道, "Simulink Real-Time and Speedgoat hardware are expressly designed to work together, enabling us to use latest MathWorks software with state-of-the-art Speedgoat hardware, seamlessly integrated and fully tested."
关于该用户案例的更详细说明,可以前往https://www.speedgoat.com/user-stories/speedgoat-user-stories/agco-fendt。
硬件在环仿真需要准备的硬件主要包括一个真实的控制器、一个实时仿真平台(用以运行AMESim导出的S-function模型)和一个电脑(用于与目标机交互,修改参数和查看信号等)。
本示例采用了Baseline实时目标机,该目标机的主要参数如下:
配置 |
规格 |
CPU |
Intel Celeron 2 GHz 4 cores |
实时操作系统 |
Simulink Real-Time™ |
内存 |
4GB DDR3 RAM |
存储空间 |
32GB SSD |
USB接口 |
1x USB 3.0 和2x USB 2.0 |
上位机接口 |
1*以太网接口 |
串行接口 |
2 x RS232(最高支持120 kb/s) |
视频接口 |
1 x DisplayPort. 支持分辨率: 1280x1024 |
千兆网口 |
2个(intel I210) 用于:real-time UDP, EtherCAT Master, XCP Master, TCP/IP, and PTP 1588 |
供电 |
9-36V |
如果用户的AMESim模型非常复杂,也可以采用性能更强的Performance实时目标机(CPU为Intel Core i7 4.2 GHz 4cores)。
软件方面,基于AMESim的实时仿真对AMESim、MATLAB和VisualStudio的版本匹配有严格的要求,建议的安装顺序是Visual Studio→MATLAB→AMESim。本示例采用AMESim16,与之适用的MATLAB版本是MATLAB R2017a,Visual Studio版本是Visual Studio 2012。
对于MATLAB,需要具备如下几个工具箱:
l MATLAB
l MATLAB Coder
l Simulink
l Simulink Coder
l Simulink Real-Time
软件安装完毕后,得将AMESim和MATLAB的编译器都选择为Visual Studio 2012。除此之外,还得将AMESim安装路径下的lib、interface和scripting文件夹及其子文件夹添加到MATLAB的搜索路径。
基于AMESim的实时仿真的第一步便是在AMESim中建立被控系统的模型。出于方便读者理解的目的,本示例直接采用了AMESim自带的一个液压demo模型——Pressure Regulator,如下图,模块数量较少,模型层次清晰。
以上demo模型包括被控对象和控制算法,对于HIL,控制算法应该是由控制器来提供,所以我们需要删除demo模型中原有的控制算法,并添加上Simulink的接口。同时为了查看节流孔之后的流速,在节流孔之后添加一个流速传感器。
添加Simulink接口:在Interface工具栏下选择create interface block,设置相关的输入输出接口。
第2步骤后,逐一点击Submodel Mode、Parameter Mode和Simulation Mode。接着在Simulation Mode下生成实时仿真所需文件:在Interface工具栏下选择generate files for real-time,并在出现的窗口中选择xPC平台,点击Generate。
新建一个Simulink模型,做好基本的配置,包括求解器的配置和代码生成的配置。求解器的配置请参见Speedgoat实时仿真系统公众号中《Speedgoat/Simulink Real-Time模型配置说明》一文。
代码生成的配置:
1) 选择slrt.tlc作为目标文件
2) 填写适用于MATLAB R2017a实时仿真的tmf文件名:ame_slrt_vc_2017a.tmf(请提前在AMESim安装路径的lib文件夹下确认是否有该文件)
3) 填写make command,格式为make_rtw AMESIMMODEL=<Amesim model name>
配置完成后,打开Simulink工具箱,将AMESim的接口模块拖入到Simulink模型中。
之后在Simulink中双击该模块,选择4.3步骤生成的mexw64文件,即可把AMESim模型以S-funtion的形式加载到Simulink中。
我们可以发现,新生成的AMESim接口模块的输入输出与4.2中我们对接口的设置是保持一致的。
打开Speedgoat驱动库,将当前使用的Baseline目标机所具备板卡的输入输出接口拖到Simulink模型,并与AMESim接口模块连接起来,如下图。
之后,常规的流程是将Speedgoat Baseline实时目标机与控制器连接起来,即可运行实时仿真了。因为本示例并没有真实的控制器,所以控制信号直接在Simulink中人为给定,Baseline实时目标机并不连接真实的控制器,如下图。
以上所有工作完成后,在Simulink中点击Build按钮,一键将模型编译下载到Baseline实时目标机中,然后运行模型。可以在Simulink Real-Time Explorer或者Simulation Data Inspector中观察观测信号,Flow_Rate的波形如下:
因为AMESim模型已经被转换成了S-function,模型内部参数和信号被隐藏了,所以在实时仿真过程中是无法调节AMESim模型中所有参数的,也观测所有信号。但是对于模型内部一些我们想要调节的参数和观测的信号,可以单独将它们做处理以能在实时仿真中修改或观测。
对于需要调节的参数,只要在AMESim的建模阶段将这些参数设置为Global Parameter即可。如下图,我们将压力调节阀内部弹簧的等效刚度、压力调节阀的开启压力和节流孔的最大开启直径设定为Global Parameter。
对应的,双击Simulink中的AMESim接口模块,点击Model Parameter按钮,即可查看到这些Global Parameter。
在实时仿真的过程中,我们打开MATLAB自带的上位机操作软件Simulink Real-Time Explorer,进入调参页面,点击edit按钮即可修改这些参数。
修改参数的流程:先停止仿真,修改参数,然后再启动仿真,无需重新编译下载模型。
对于需要观测的信号,在AMESim建模过程中添加相应的传感器即可,4.2中添加的流速传感器就是出于这个目的。
我们将压力调节阀内部弹簧的等效刚度修改为不同的值,可以观测到对应的Flow Rate的变化。
-
电力电子(含控制器和被控对象模型)
凭借多年在电力电子行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
轨道交通(含控制器和被控对象模型)
凭借多年在轨道交通行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
信号调理系统
在HIL测试中,硬件在环设备起到模拟被测ECU被控对象的作用。需要根据ECU的PIN脚信息,模拟相应信号。这类设备的核心为实时系统,实时系统会提供相应IO通道,处理信号的产生和采集。但这类IO通道一般为标准规格,比如数字通道为TTL规格,模拟通道只是测电压等;这与被测ECU所需的信号规格有较大差异,故需要一套信号调理系统,负责两者之间信号的转接。¥ 0.00立即购买
-
电机控制Demo套件
使用Simulink和Speedgoat转动无刷直流电机。¥ 0.00立即购买
实时目标机
仿真测试应用场景
学习与支持
关注熠速微信公众号
仿真测试解决方案
I/O接口模块
通讯协议模块
FPGA技术
被控部件仿真
Simulink模型库
Demo套件
测量测试解决方案