021-64886750

  • 实时目标机

    Simulink模型库

    Demo套件

info@yisuworld.com

Speedgoat基于AMESim-Simulink的实时仿真解决方案

网站首页    技术blog和使用技巧    Speedgoat基于AMESim-Simulink的实时仿真解决方案

 AMESim的实时仿真

AMESim(Advanced Modeling Environment for performing Simulation of engineering systems)是一个应用广泛的多学科领域复杂系统建模仿真平台。用户可以在这个平台上建立复杂的多学科领域的系统模型,例如燃油喷射、制动系统、动力传动、机电系统和冷却系统等,并在此基础上进行仿真计算和深入分析。

航空航天、汽车等领域的一些客户已经搭建了各自系统的AMESim模型,并希望基于该模型进行实时仿真测试,尤其是针对HILhardware-in-the-loop,硬件在环)测试。在这方面,AMESimSpeedgoat实时仿真目标机提供了实时仿真的接口,能够让客户方便地利用已有的AMESim模型开展实时仿真。

具体的方式是,AMESimSimulink导出AMESim模型对应的S-function,同时生成供实时仿真调用的文件Simulink集成该S-function并调用MATLAB CoderSimulink CoderVisual Studio将完整模型编译下载到Speedgoat实时仿真目标机。下文以HIL为例,着重描述整个实时仿真的操作流程。

 

  用户案例

在这方面,知名的德国农业设备制造商AGCO已有使用先例。AGCO开发Fendt Vario系列拖拉机的过程中,Speedgoat实时目标机为基础,搭建了HIL测试平台,其拖拉机模型就是由MATLABAMESim共同搭建

https://www.speedgoat.com/Portals/0/adam/Content/xPyrUSkxnUadhN9LP9gudw/Image/overviewHIL.GIF?maxwidth=1400&maxheight=990&quality=80

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模型)和一个电脑(用于与目标机交互,修改参数和查看信号等)。

img2

示例采用了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实时目标机CPUIntel Core i7 4.2 GHz 4cores

软件方面,基于AMESim的实时仿真对AMESimMATLABVisualStudio的版本匹配有严格的要求,建议的安装顺序是Visual StudioMATLABAMESim。本示例采用AMESim16,与之适用MATLAB版本是MATLAB R2017aVisual Studio版本是Visual Studio 2012

对于MATLAB,需要具备如下几个工具箱:

l                      MATLAB

l                      MATLAB Coder

l                      Simulink

l                      Simulink Coder

l                      Simulink Real-Time

软件安装完毕后,得将AMESimMATLAB的编译器都选择为Visual Studio 2012。除此之外,还得将AMESim安装路径下的libinterfacescripting文件夹及其子文件夹添加到MATLAB的搜索路径。

 

  实时仿真操作流程

 1.  AMESim建模

基于AMESim的实时仿真的第一步便是在AMESim中建立被控系统的模型。出于方便读者理解的目的,本示例直接采用了AMESim自带的一个液压demo模型——Pressure Regulator如下图,模块数量较少,模型层次清晰。

img3

 2.  生成Simulink接口

以上demo模型包括被控对象和控制算法,对于HIL,控制算法应该是由控制器来提供,所以我们需要删除demo模型中原有的控制算法,并添加上Simulink的接口。同时为了查看节流孔之后的流速,在节流孔之后添加一个流速传感器。

添加Simulink接口:在Interface工具栏下选择create interface block,设置相关的输入输出接口

img4

 

 3.  生成实时仿真所需文件

2步骤后,逐一点击Submodel ModeParameter ModeSimulation Mode。接着Simulation Mode生成实时仿真所需文件:在Interface工具栏下选择generate files for real-time,并在出现的窗口中选择xPC平台,点击Generate

img5

 

 4.  Simulink模型配置

新建一个Simulink模型,做好基本的配置,包括求解器的配置和代码生成的配置。求解器的配置请参见Speedgoat实时仿真系统公众号中《Speedgoat/Simulink Real-Time模型配置说明》一文。

代码生成的配置:

img6

1)       选择slrt.tlc作为目标文件

2)   填写适用于MATLAB R2017a实时仿真的tmf文件名:ame_slrt_vc_2017a.tmf(请提前在AMESim安装路径的lib文件夹下确认是否有该文件)

3)       填写make command,格式为make_rtw AMESIMMODEL=<Amesim model name>

 

 5AMESim模型导入Simulink

配置完成后,打开Simulink工具箱,将AMESim的接口模块拖入到Simulink模型中。

img7

之后Simulink中双击该模块,选择4.3步骤生成的mexw64文件,即可把AMESim模型以S-funtion的形式加载到Simulink中。

img8

我们可以发现,新生成的AMESim接口模块的输入输出与4.2中我们接口的设置是保持一致的。

 

 6.  添加Speedgoat硬件接口

打开Speedgoat驱动库,将当前使用的Baseline目标机所具备板卡的输入输出接口拖到Simulink模型,并与AMESim接口模块连接起来,如下图。

img9

 

之后,常规的流程是Speedgoat Baseline实时目标机与控制器连接起来,即可运行实时仿真了。因为本示例并没有真实的控制器,所以控制信号直接在Simulink中人为给定,Baseline实时目标机并不连接真实的控制器如下图。

img10

 

 7.  下载模型并运行

以上所有工作完成后,在Simulink中点击Build按钮,一键将模型编译下载到Baseline实时目标机中,然后运行模型。可以在Simulink Real-Time Explorer或者Simulation Data Inspector中观察观测信号,Flow_Rate的波形如下:

img11

 

 8.  调参观测信号

因为AMESim模型已经被转换成了S-function模型内部参数和信号被隐藏了,所以在实时仿真过程中是无法调节AMESim模型所有参数的,也观测所有信号。但是对于模型内部一些我们想要调节的参数和观测的信号,可以单独将它们做处理以能在实时仿真中修改或观测。

对于需要调节的参数,只要在AMESim的建模阶段将这些参数设置为Global Parameter即可。如下图,我们将压力调节阀内部弹簧的等效刚度、压力调节阀的开启压力和节流孔的最大开启直径设定为Global Parameter

img12

 

对应的,双击Simulink中的AMESim接口模块,点击Model Parameter按钮,即可查看到这些Global Parameter

img13

 

在实时仿真的过程中,我们打开MATLAB自带的上位机操作软件Simulink Real-Time Explorer进入调参页面,点击edit按钮即可修改这些参数。

img14

 

修改参数的流程:先停止仿真,修改参数,然后再启动仿真,无需重新编译下载模型。

对于需要观测的信号,在AMESim建模过程中添加相应的传感器即可,4.2中添加的流速传感器就是出于这个目的。

我们将压力调节阀内部弹簧的等效刚度修改为不同的值,可以观测到对应的Flow Rate的变化。

img15

 

 

2020年8月11日 14:29
浏览量:0