基于AMESim、MATLAB与LabVIEW 的联合仿真虚拟平台技术

2023-10-31 11:39董壮壮王兆强孙令涛陆阳钧
软件导刊 2023年10期
关键词:作动筒界面报告

董壮壮,王兆强,孙令涛,陆阳钧

(上海工程技术大学 机械与汽车工程学院,上海 201620)

0 引言

目前,国内外仿真软件种类越来越多,仿真技术已经广泛地应用于汽车制造[1-4]、工程机械[5]、航空航天[6-7]等领域。每种仿真软件都有其擅长的功能,也有各自的不足,单一软件已经不能满足各行各业的仿真需求,联合仿真技术正在不断发展[8]。例如,针对基于接口的多物理域仿真效率低、应用范围小的问题,欧盟Modelisar 项目研发出体积小、结构简单且使用方便的FMI(Functional Mockup Interface)标准化接口[9-10];德国亚琛工业大学对液压仿真软件DSHplus 与多体动力学仿真软件ADAMS 进行了联合仿真研究[11];派克公司联合EASY5 和ADAMS 仿真软件建立虚拟样机[12];国一兵等[13]在仿真过程中设计了参数注入功能,并应用于FMI 联合仿真系统中;李伟林等[14]在多点飞机用电设备多物理域中实现了基于MATLAB/Simulink 平台与Dymola 平台的输入输出功能模型单元;齐海涛等[15]研究了基于AMESim、LabVIEW 与VC++联合仿真的机电液系统控制方法,但没有将MATLAB/Simulink 与AMESim 有效结合起来进行联合仿真,亦没有构建虚拟仿真平台来简化联合仿真步骤;郭一楠等[16]基于LabVIEW与MATLAB 的过程控制进行了研究;许灵骏等[17]基于Simulink、LabVIEW 与混合编程进行了电机系统仿真平台设计。然而,现有多软件联合仿真系统缺乏集成化输入输出数据管理的功能,对使用者的软件熟悉度要求较高,使得各行业多软件联合仿真的普及度不高。

为此,本文以电静液作动器(Electro-Hydrostatic Actuator,EHA)系统为例,联合AMESim、MATLAB/Simulink 与LabVIEW 软件开发一种基于FMI 接口的人机交互集成化多物理域联合虚拟仿真平台,以期为机电液系统联合仿真提供便利。

1 多物理域系统及控制系统建模

AMESim 是一种可以进行多物理域复杂系统建模的仿真平台,其元件库主要包含机械库、信号库、液压元件库、气动库、热库、热液压库、热气动库以及电磁库等,可用于建立单领域和多领域的系统模型。本文采用AMESim 软件构建了EHA 系统,并以此为例进行技术介绍。

EHA 作动系统主要由伺服控制的双向调速电机、定量柱塞泵、作动筒以及控制单元组成[18]。在AMESim 中构建的EHA 系统部分模型如图1 所示,其中转速ω、转矩T和位移信号χ 为主要传递参数。利用AMESim 搭建的模型与Simulink 搭建的永磁同步电机模型进行联合仿真,二者之间进行数据交互,EHA 作动系统中作动筒的速度变化、阶跃响应、频率响应等随着油液压力、输入信号的幅值和频率、弹簧劲度系数等参数变化而随之变化。

Fig.1 Partial model of the EHA system图1 EHA系统部分模型

控制系统模型基于MATLAB/Simulink 建立,对多物理域系统模型起到控制作用。图2 为在Simulink 中建立的永磁同步电机(Permanent Magnetic Synchronous Machine,PMSM)控制系统,主要对EHA 作动系统进行控制。未建立联合仿真模型前,将输入转矩设置为常量,进行联合仿真模型建立时与FMU(Functional Mock-up Unit)模型进行连接。

Fig.2 PMSM control system图2 PMSM控制系统

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 模型,保存该模型,以便后续搭建联合仿真模型时使用。

Fig.3 Creating a joint simulation interface图3 创建联合仿真接口

2.2.2 连接FMU模型与多物理域模型

如图4 所示,在SKETCH 模式下,将FMU 模型与多物理域模型预留的接口进行连接,保证FMU 单元的输出、输入参数与组件一一对应,形成完整的多物理域联合仿真模型。

Fig.4 Multi-physics domain co-simulation model图4 多物理域联合仿真模型

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 元件参数也不同。可视化等级越高,可设置的参数越多,并且可以将参数以变量的形式进行赋值,便于在程序中对仿真模型参数进行更改与设置。Output directory 用于设置FMU 单元文件的输出目录,避免生成的文件丢失。在编译器选择界面,由于AMESim 和Simulink 均支持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 Simulink 工具包进行FMU 模型导入,FMI Kit for Simulink 工具包文件和子文件需添加到MATLAB 路径中。使用时在MATLAB 命令行中输入FMIKit.initialize()命令,以激活FMI Kit for Simulink 工具。如图5 所示,利用FMI Kit for Simulink 工具包将EHA 作动系统模型导出的FMU 模型导入PMSM 控制系统,以实现联合仿真功能。

Fig.5 FMU models are imported into MATLAB/Simulink图5 FMU模型导入MATLAB/Simulink

3 人机交互界面开发

人机交互界面基于LabVIEW 开发,主要包括前台用户界面设计和后台程序开发。前台界面的元件与后台程序的组件是成对出现和使用的,保证了前后台组件数据的一致性。二者相互配合,实现联合仿真的简易化功能。

3.1 前台用户界面设计

联合仿真过程中,同一仿真模型通常具有多种仿真需求,在开发过程中对参数进行规范化管理,可实现不同功能的仿真。图6 为设计的前台用户主界面,左上角为不同功能界面的选择区域,点击即可切换到对应功能的用户界面。使用复选框组件构建功能选择模块,进而选择所需仿真功能,用户可对单独功能、部分功能或全部功能进行仿真。在不同功能界面中,通过输入控件和输出控件可完成对仿真参数的输入与仿真结果的输出。在通用参数模块中,文件路径模块提供模型选择功能,用户可快速找到所需仿真模型。在布尔模块设置开始和退出按钮,控制仿真的开始和结束。前处理模块可保存仿真数据,并对历史仿真数据进行记录和读取,便于不同仿真结果之间进行比较。工作日志模块可以记录每次仿真结果的保存时间和路径,便于核对操作记录。通过当前进度可查看仿真功能进度,通过总进度条可查看所有功能仿真的总进度。前台不同功能界面的设计简化了用户对不同仿真功能参数设置的繁琐操作,提高了仿真效率。

Fig.6 Foreground user main interface图6 前台用户主界面

3.2 后台程序开发

3.2.1 数据交互

后台程序设计决定着前台用户界面的功能能否实现,而程序设计中最关键的问题就是数据交互接口。AMESim与Simulink 的数据交互通过FMU 模型实现;在LabVIEW中,通过ActiveX 技术,使用MATLAB script 模块调用MATLAB 软件脚本服务器执行使用MATLAB 语言所编写的脚本。根据所需设置的仿真参数,在MATLAB script 模块中添加输入和输出变量,其中输入变量包括幅值、频率、仿真时间、仿真步长、弹簧劲度系数等,输出变量包括示波器数据、最大速度值及其时间、最小速度值及其时间。需要注意的是,所添加的输入变量名称必须与MATLAB/Simulink元件、求解器及FMU 单元中对应的参数变量名称一致。图7 为联合仿真实例中作动器最大速度功能的部分程序框图,其中MATLAB script 模块左边添加了可以设置模型名称、输入信号频率、幅值等参数的输入变量,右边为仿真数据的输出变量。在MATLAB script 中编写脚本语句,以实现仿真已得出数据的赋值和提取。本例主要利用for 循环和if 语句对仿真得到的作动筒速度曲线进行数据处理并输出,同时将速度曲线、最大速度值及其时间、最小速度值及其时间在前台用户界面中显示处理。

Fig.7 Block diagram of the MATLAB script图7 MATLAB script程序框图

3.2.2 仿真报告自动化生成

在实际工程项目中,一个模型往往有多种仿真需求需要实现,仿真结果会因仿真功能的多元化而变得复杂,可视化效果不佳。本文建立的虚拟仿真平台针对不同仿真功能开发了相应的显示界面,提前设置好Word 仿真报告空白模板,以书签的形式对不同功能的仿真结果数据和图片输入位置进行标记,有效提高了仿真结果的可视化效果。图8 为仿真报告自动化生成的主要程序框图,在Lab-VIEW 中使用添加报表模块提前导入设置好的报告模板,利用For 循环、添加报表文本和设置报表字体模块实现报表数据交互、字体设置以及仿真曲线图片在仿真报告中的输出功能,大大节省人工整理时间。仿真报告的命名通过获取日期时间模块实现,以点击生成报告按钮的时间对仿真报告进行命名,以保证之前的仿真报告文件不会被覆盖掉。同时,在虚拟平台主界面设置工作日志显示框,可以查看历史仿真记录,通过数据读取程序可以在平台复现历史数据以及该次仿真对应的参数设置,以便研究人员针对不同仿真结果进行比较,从而获得最佳仿真参数。

Fig.8 Simulation report automation main program图8 仿真报告自动化主要程序

4 作动器速度联合仿真结果

将输入信号设置为频率0.2 Hz、幅值10 V 的方波信号,仿真时间为1 s,其余参数均为默认值,进行仿真验证。图9、图10 分别为Simulink 模型中示波器显示的作动筒位移曲线和速度曲线。可以看出,在1 s 内作动筒位移逐渐增大,作动筒速度在启动阶段波动较大,0.2 s 左右开始趋于稳定,前0.2 s 位移曲线的斜率产生变化,0.2s 后随着速度的稳定,位移曲线斜率也趋于稳定。

Fig.9 Actuator displacement curve图9 作动筒位移曲线

Fig.10 Actuator velocity curve图10 作动筒速度曲线

图11 为虚拟平台中对仿真数据进行处理后的可视化作动筒速度曲线,通过与图10 进行比较可知,二者峰值与趋势完全一致,验证了本文联合仿真虚拟平台的可行性和准确性。

Fig.11 Speed curve of actuator in the virtual platform图11 虚拟平台中的作动筒速度曲线

图12 为虚拟平台对预先制定好的待填报告模板所进行的参数设置。用户登录系统后可在人机交互界面的主菜单内输入报告参数,仿真完成后通过打印报告功能即可将该处输入的参数自动添加到待填报告的封面中,输出报告样式如图13 所示。图12 中对应的参数在输出报告中的相应位置得到了填充,验证了虚拟平台中仿真报告自动化输出的可行性与实用性。

Fig.13 Output report format图13 输出报告样式

5 结语

本文基于FMI 接口技术实现了AMESim 和MATLAB/Simulink 两种工具的联合仿真,在此基础上基于LabVIEW开发了一种联合虚拟仿真平台,用于对仿真参数进行规范化和简捷化设置,实现仿真结果的可视化以及仿真报告的自动化输出。后期在基于FMI 的EHA 作动系统和PMSM控制系统中验证了该虚拟仿真平台的应用价值。然而目前联合仿真功能仅能够实现支持FMI 标准的仿真软件之间的联合仿真,后续拟通过加入其他接口形式的联合仿真支持技术,在系统使用性和可操作性方面进一步优化。

猜你喜欢
作动筒界面报告
加调模拟作动筒缸体磨损修复工艺研究
仿真技术在发射装置气压作动筒故障分析中的应用
重载负荷下的燃气作动筒内弹道推力特性研究*
国企党委前置研究的“四个界面”
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
一图看懂十九大报告
人机交互界面发展趋势研究
手机界面中图形符号的发展趋向
六自由度液压伺服运动系统研究