第 22卷第 10期2023年 10月
Vol.22 No.10
Oct.2023软件导刊
Software Guide
基于AMESim、MATLAB与LabVIEW的联合
仿真虚拟平台技术
董壮壮,王兆强,孙令涛,陆阳钧
(上海工程技术大学机械与汽车工程学院,上海 201620)
摘要:针对AMESim和MATLAB/Simulink的机电液系统联合仿真过程中参数设置较为繁琐、仿真结果可视化效果
不够直观等问题,基于FMI标准化接口和ActiveX技术,利用LabVIEW进行人机交互界面设计与数据交互,研究了
一种可定制化、参数设置集中化且仿真结果可视化的仿真虚拟平台技术。初步应用实验结果表明,该虚拟平台可
简便地对联合仿真模型进行参数设置与数据交互,结果准确、仿真效果直观,且仿真报告可自动化输出,有利于提
高工作效率。
关键词:联合仿真;人机交互;多物理域;虚拟平台;数据交互
DOI:10.11907/rjdk.231493开放科学(资源服务)标识码(OSID):
中图分类号:TP391.9 文献标识码:A文章编号:1672-7800(2023)010-0042-07
Joint Simulation Virtual Platform Technology Based on AMESim,
MATLAB and LabVIEW
DONG Zhuangzhuang, WANG Zhaoqiang, SUN Lingtao, LU Yangjun
(School of Mechanical and Automotive Engineering, Shanghai University of Engineering Science,
Shanghai 201620, China)Abstract:In response to the problem of cumbersome parameter settings and insufficient visualization of simulation results in the joint simu⁃lation process of AMESim and MATLAB/Simulink electromechanical hydraulic systems,a customizable,centralized parameter settings,and visualized simulation results simulation virtual platform technology was studied using LabVIEW based on the standardized interface of FMI (Functional Mock up Interface) and ActiveX technology for human-machine interaction interface design and data exchange. The pre⁃liminary application experimental results showed that the virtual platform can easily set parameters and interact with data for joint simula⁃tion models, with accurate results and intuitive simulation effects. The simulation report can be automatically output, which is conducive to improving work efficiency.
Key Words:joint simulation; human-computer interaction; multi-physical domain; virtual platform; data interaction
0 引言
目前,国内外仿真软件种类越来越多,仿真技术已经广泛地应用于汽车制造[1-4]、工程机械[5]、航空航天[6-7]等领域。每种仿真软件都有其擅长的功能,也有各自的不足,单一软件已经不能满足各行各业的仿真需求,联合仿真技术正在不断发展[8]。例如,针对基于接口的多物理域仿真效率低、
应用范围小的问题,欧盟Modelisar项目研发出体积小、结构简单且使用方便的FMI(Functional Mock-up Interface)标准化接口[9-10];德国亚琛工业大学对液压仿真软件DSHplus与多体动力学仿真软件ADAMS进行了联合仿真研究[11];派克公司联合EASY5和ADAMS仿真软件建立虚拟样机[12];国一兵等[13]在仿真过程中设计了参数注入功能,并应用于FMI联合仿真系统中;李伟林等[14]在多点飞机用电设备多物理域中实现了基于MATLAB/ Simulink平台与Dymola平台的输入输出功能模型单元;齐海涛等[15]研究了基于AMESim、LabVIEW与VC++联合仿
收稿日期:2023-05-12
基金项目:国家自然科学基金项目(51505272,51505274,51876113)
作者简介:董壮壮(1998-),男,上海工程技术大学机械与汽车工程学院硕士研究生,研究方向为流体传动与控制;王兆强(1981-),男,博士,上海工程技术大学机械与汽车工程学院副教授,研究方向为流体传动与控制。本文通讯作者:王兆强。
第 10 期董壮壮,王兆强,孙令涛,等:基于AMESim、MATLAB与LabVIEW的联合仿真虚拟平台技术
真的机电液系统控制方法,但没有将MATLAB/Simulink与AMESim有效结合起来进行联合仿真,亦没有构建虚拟仿真平台来简化联合仿真步骤;郭一楠等[16]基于LabVIEW 与MATLAB的过程控制进行了
研究;许灵骏等[17]基于Simulink、LabVIEW与混合编程进行了电机系统仿真平台设计。然而,现有多软件联合仿真系统缺乏集成化输入输出数据管理的功能,对使用者的软件熟悉度要求较高,使得各行业多软件联合仿真的普及度不高。
为此,本文以电静液作动器(Electro-Hydrostatic Actu⁃ator,EHA)系统为例,联合AMESim、MATLAB/Simulink与LabVIEW软件开发一种基于FMI接口的人机交互集成化多物理域联合虚拟仿真平台,以期为机电液系统联合仿真提供便利。
1 多物理域系统及控制系统建模AMESim是一种可以进行多物理域复杂系统建模的仿真平台,其元件库主要包含机械库、信号库、液压元件库、气动库、热库、热液压库、热气动库以及电磁库等,可用于建立单领域和多领域的系统模型。本文采用AMESim软件构建了EHA系统,并以此为例进行技术介绍。
EHA作动系统主要由伺服控制的双向调速电机、定量柱塞泵、作动筒以及控制单元组成[18]。在AMESim中构建的EHA系统部分模型如图1所示,其中转速ω、转矩T和位移信号χ为主要传递参数。利用AMESim搭建的模型与Simulink搭建的永磁同步电机模型进行联合仿真,二者之间进行数据交互,EHA作动系统中作动筒的速度变化、阶跃响应、频率响应等随着油液压力、输入信号的幅值和频率、弹簧劲度系数等参数变化而随之变化。
控制系统模型基于MATLAB/Simulink建立,对多物理域系统模型起到控制作用。图2为在Simulink中建立
的永磁同步电机(Permanent Magnetic Synchronous Machine,PMSM)控制系统,主要对EHA作动系统进行控制。未建立联合仿真模型前,将输入转矩设置为常量,进行联合仿真模型建立时与FMU(Functional Mock-up Unit)模型进行连接。
Fig. 1 Partial model of the EHA system 图1 EHA
系统部分模型
Fig. 2 PMSM control system
图2 PMSM控制系统
··43
2023 年
软件导刊2 FMI 接口
2.1 FMI 标准
FMI 标准定义了一个全球性的通用软件接口,其是在
欧盟的Modelisar 项目中被开发出来。FMI 标准是一个不依赖于工具的标准,主要通过“.xml ”文件和已编译的C 代码组合支持动态模型的模型交换和联合仿真[19]。FMI 标
准有效解决了不同建模与仿真软件之间文件格式和数据存储方式不统一而导致的数据交互困难问题。基于FMI 标准,不同仿真工具可以将建立的仿真模型通过FMI 接口标准导出为FMU 文件,也可称为FMU 模型。该模型包含描述模型信息和数据的“.xml ”文件,还包括用于模型动态交互的C 文件和DLL (Dynamic Link Library )动态链接库文件等[20-21]。导出的FMU 模型可以导入到支持FMI 标准的其他仿真建模软件中,仿真软件通过自动解析FMU 模型中的文件可达到联合仿真的目的。
2.2 AMESim 导出FMU 模型
本文以AMESim 中建立的EHA 作动系统为例,介绍从
AMESim 中导出FMU 模型的技术路线,并对相关设置进行
说明。需要注意的是,不同仿真工具的版本兼容性问题应参考工具使用手册。本文使用的是AMESim2019.2版本,具体导出流程总结如下。
2.2.1 创建联合仿真接口
在AMESim 中将所需交互仿真接口预留出来,在
SKETCH 模式下依次点击Interfaces > Create interface block ,在Interface Icon Creation 中设置仿真接口内容。如图3所示,首先将接口类型设置为Functional Mock-up Interface (FMI ),然后设置输入输出接口数量,并为之命名。需要注意的是,此处设置的输入输出接口数量必须与模型中预留出的仿真接口数量一致。设置完成后即可生成FMU 模型,保存该模型,以便后续搭建联合仿真模型时使用。
2.2.2 连接FMU 模型与多物理域模型
如图4所示,在SKETCH 模式下,将FMU 模型与多物
理域模型预留的接口进行连接,保证FMU 单元的输出、输入参数与组件一一对应,形成完整的多物理域联合仿真模型。
2.2.3 导出FMU 模型
模型连接完成后进入PARAMETER 界面,对系统中各
元件进行进一步的参数设置,完成参数设置后即可导出
FMU 模型文件。进入Simulation 界面后,点击Interfaces > FMU Export Assistant 开始进行FMU 导出设置。在Export
settings 界面设置FMU type and version 为Co-simulation2.0;Visibility level :exposed elements 设置的是所生成FMU 单元的参数可见等级,可根据需求进行等级选择。需要注意的是,参数可视化等级不同,导出的FMU 模型在Simulink 中
能够设置的AMESim 元件参数也不同。可视化等级越高,可设置的参数越多,并且可以将参数以变量的形式进行赋值,便于在程序中对仿真模型参数进行更改与设置。Out⁃
put directory 用于设置FMU 单元文件的输出目录,避免生
成的文件丢失。在编译器选择界面,由于AMESim 和Simu⁃link 均支持GNU GCC 编译器,本文选择该编译器进行研究。设置完成后即可导出FMU 单元,在输出目录中可得
到FMU 文件。
2.2.4 MATLAB/Simulink 导入FMU 模型
启动MATLAB/Simulink 后,在构建好的控制系统模型
中添加FMU 模型。需要注意的是,MATLAB2016b 之前的版本需要单独使用FMI Kit for Simulink 工具包对FMU 模型进行激活和导入,2016b 之后版本的MATLAB/Simulink 软件自身具有FMU 模型导入模块,可以直接使用。本研究使用的是MATLAB/Simulink2014a 版本,需要FMI Kit
for
Fig. 3 Creating a joint simulation interface
图3 创建联合仿真接口
Fig. 4 Multi-physics domain co-simulation model
图4 多物理域联合仿真模型
··44
第 10 期董壮壮,王兆强,孙令涛,等:基于AMESim 、MATLAB 与LabVIEW 的联合仿真虚拟平台技术Simulink 工具包进行FMU 模型导入,FMI Kit for Simulink 工
具包文件和子文件需添加到MATLAB 路径中。使用时在MATLAB 命令行中输入FMIKit.initialize ()命令,以激活FMI Kit for Simulink 工具。如图5所示,利用FMI Kit for Simulink 工具包将EHA 作动系统模
型导出的FMU 模型导入PMSM 控制系统,以实现联合仿真功能。
3 人机交互界面开发
人机交互界面基于LabVIEW 开发,主要包括前台用户界面设计和后台程序开发。前台界面的元件与后台程序的组件是成对出现和使用的,保证了前后台组件数据的一致性。二者相互配合,实现联合仿真的简易化功能。
3.1 前台用户界面设计
联合仿真过程中,同一仿真模型通常具有多种仿真需求,在开发过程中对参数进行规范化管理,可实现
不同功能的仿真。图6为设计的前台用户主界面,左上角为不同功能界面的选择区域,点击即可切换到对应功能的用户界面。使用复选框组件构建功能选择模块,进而选择所需仿真功能,用户可对单独功能、部分功能或全部功能进行仿真。在不同功能界面中,通过输入控件和输出控件可完成对仿真参数的输入与仿真结果的输出。在通用参数模块中,文件路径模块提供模型选择功能,用户可快速到所需仿真模型。在布尔模块设置开始和退出按钮,控制仿真的开始和结束。前处理模块可保存仿真数据,并对历史仿真数据进行记录和读取,便于不同仿真结果之间进行比较。工作日志模块可以记录每次仿真结果的保存时间和路径,便于核对操作记录。通过当前进度可查看仿真功能进度,通过总进度条可查看所有功能仿真的总进度。前台不同功能界面的设计简化了用户对不同仿真功能参数设置的繁琐操作,提高了仿真效率。
3.2 后台程序开发3.2.1 数据交互
后台程序设计决定着前台用户界面的功能能否实现,
而程序设计中最关键的问题就是数据交互接口。AMESim
的数据交互通过FMU 模型实现;在LabVIEW
ActiveX
技术,使用MATLAB script 模块调用MAT⁃MATLAB 语言所编写的脚本。根据所需设置的仿真参数,在MATLAB script 模块中添加输入和输出变量,其中输入变量包括幅值、频率、仿真
时间、仿真步长、弹簧劲度系数等,输出变量包括示波器数据、最大速度值及其时间、最小速度值及其时间。需要注意的是,所添加的输入变量名称必须与MATLAB/Simulink 元件、求解器及FMU 单元中对应的参数变量名称一致。 图7为联合仿真实例中作动器最大速度功能的部分程序框图,其中MATLAB script 模块左边添加了可以设置模型名称、输入信号频率、幅值等参数的输入变量,右边为仿真数据的输出变量。在MATLAB script 中编写脚本语句,以实现仿真已得出数据的赋值和提取。本例主要利用for 循环和if 语句对仿真得到的作动筒速度曲线进行数据处理并输出,同时将速度曲线、最大速度值及其时间、最小速度
值及其时间在前台用户界面中显示处理。
3.2.2 仿真报告自动化生成
在实际工程项目中,一个模型往往有多种仿真需求需
要实现,仿真结果会因仿真功能的多元化而变得复杂,可视化效果不佳。本文建立的虚拟仿真平台针对不同仿真功能开发了相应的显示界面,提前设置好Word 仿真报告空白模板,以书签的形式对不同功能
的仿真结果数据和图片输入位置进行标记,有效提高了仿真结果的可视化效果。图8为仿真报告自动化生成的主要程序框图,在Lab⁃VIEW 中使用添加报表模块提前导入设置好的报告模板,利用For 循环、添加报表文本和设置报表字体模块实现报表数据交互、字体设置以及仿真曲线图片在仿真报告中的
输出功能,大大节省人工整理时间。仿真报告的命名通过获取日期时间模块实现,以点击生成报告按钮的时间对仿真报告进行命名,以保证之前的仿真报告文件不会被覆盖掉。同时,在虚拟平台主界面设置工作日志显示框,可以查看历史仿真记录,通过数据读取程序可以在平台复现历
Fig. 5 FMU models are imported into MATLAB/Simulink
图5 FMU 模型导入MATLAB/Simulink
Fig. 6 Foreground user main interface
图6 前台用户主界面
·
·45
2023 年
软件导刊史数据以及该次仿真对应的参数设置,以便研究人员针对不同仿真结果进行比较,从而获得最佳仿真参数。
4 作动器速度联合仿真结果
将输入信号设置为频率0.2 Hz 、幅值10 V 的方波信号,仿真时间为1 s ,其余参数均为默认值,进行仿真验证。图9、图10分别为Simulink 模型中示波器显示的作动筒位移曲线和速度曲线。可以看出,在1 s 内作动筒位移逐渐增大,作动筒速度在启动阶段波动较大,0.2 s 左右开始趋于稳定,前0.2 s 位移曲线的斜率产生变化,0.2s 后随着速度的稳定,位移曲线斜率也趋于稳定。
图11为虚拟平台中对仿真数据进行处理后的可视化作动筒速度曲线,通过与图10进行比较可知,二者峰值与
Fig. 7 Block diagram of the MATLAB script
mockplus怎么导出图片图7
MATLAB script 程序框图
Fig. 8 Simulation report automation main program
图8 仿真报告自动化主要程序
Fig. 9 Actuator displacement curve
图9 作动筒位移曲线
··46
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论