基于DDS的民机机电系统分布式建模与仿真研究

2021-06-21 01:53张伟业
计算机应用与软件 2021年6期
关键词:端口液压机电

张 鹏 张伟业 刘 涛

1(中国民航大学适航学院 天津 300300)2(中国民航大学电子信息与自动化学院 天津 300300)

0 引 言

飞机机电系统规模庞大且结构复杂[1],导致单机仿真效率较低[2],因此针对复杂系统研究分布式建模与仿真方法具有重要意义[3]。文献[4-6]应用数据分发服务(Data Distribution Service,DDS)解决了分布式仿真中数据流的可靠交互问题,以及仿真节点之间的通信问题,证明了使用DDS能满足机电系统对于多物理量数据流的交互要求。文献[7-8]利用分布式建模方法拓展了仿真规模,解决了单机仿真拓展性差的问题,但还未应用在民机机电系统的仿真拓展中。文献[9-10]使用分布式建模与仿真方法获得了比非分布式方法更好的仿真性能,分布式方法对于仿真整体性能的提升具有明显优势,但现有的分布式方法主要集中在同步性的研究,对于并行计算的加速性研究较少。

本文在上述研究的基础上,基于DDS分布式互联架构平台,通过设计仿真数据交互接口,针对性地研究了民机机电系统分布式并行建模与仿真,改善了民机电系统仿真的可拓展性以及数据的可交互性,减少了仿真解算时间,提高了机电系统仿真的计算效率,增强了民机协同仿真的实时性。

1 分布式仿真技术基础

1.1 DDS技术分析

数据传输是分布式仿真中各节点通信的基础,DDS是由OMG(Object Management Group)定义的一种以数据为中心的发布/订阅式通信模式[11],提供了一个与平台无关的数据模型,简化了数据在分布式系统中的可靠、高效发布[12]。DDS通信实体主要包括域、发布者、订阅者、数据写者、数据读者和主题[13],同一域中的DDS实体通信模型如图1所示。

图1 同一域中的DDS实体通信模型

一个发布者可以创建和管理多个包含主题的数据写者,然后向全局数据空间发布带有不同主题的数据,一个订阅者可以创建和管理多个数据读者,通过匹配全局数据空间的主题来读取所需要的数据,这样就实现了DDS实体之间的数据通信过程。

1.2 分布式机电系统数据交互过程

以本文的AMESim机电系统分布式仿真为例,给出基于DDS发布/订阅的通信过程,如图2所示。由于AMESim建模与仿真是基于功率键合图的图形化仿真,元器件之间的连接有前后逻辑关系,即前一组状态方程的输出与后一组状态方程的输入要有正确的对应关系,并且每一个仿真步长均会计算大量数据,所以在分布式仿真时,仿真元器件之间要交换大量特定的数据,符合DDS多主题传输、自动发现并匹配所需数据的通信特点。将AMESim视作发布/订阅节点,节点通过仿真数据接口向DDS创建连接和注册数据类型,然后发布带有相应服务质量的主题信息,另一AMESim节点收听到请求后,在全局数据空间中对比相应的发布/订阅主题以及服务质量,如果两者均相同则进行通信,再通过仿真数据接口传输到AMESim节点。

图2 发布/订阅过程

1.3 分布式平台总体框架

分布式互联架构能实现多应用软件的协同仿真,但AMESim应用的集成还未实现,且飞机系统设计与集成测试需要专业的机械液压设计软件,故本文设计了AMESim与DDS平台的数据交互接口,其总体框架图如图3所示。架构分为七个部分:仿真运行管理环境、仿真主引擎、仿真子引擎、仿真软总线、仿真辅助服务、数据存储及记录、数据接口。仿真数据接口通过初始化、定义输入/输出接口列表,以及调用嵌入到仿真数据接口内部的仿真子引擎,将仿真模型与DDS连接,以实现数据交互、分布式仿真模型的求解控制。

图3 分布式仿真总体框架图

2 分布式仿真接口设计

2.1 接口模块的功能

数据接口模块负责与AMESim仿真软件搭建的机电系统模型输入/输出端口进行衔接、初始化、控制模型的解算、模型与子引擎之间的数据交互、系统资源回收等。封装好的AMESim接口模块位于AMESim Library中,图标为P_in、T_in、P_out和T_out,它们是四个功能结构相同的物理接口模块,目的是为了防止进油油路和回油油路混淆,Adapter模块为系统的适配模块,其功能为求解器频率范围适配和求解器幅值范围适配。通过拖拽图形化的接口完成AMESim分布式仿真能力的扩展,使AMESim机电系统分布式建模与仿真成为可能。

2.2 接口模块的设计

在现有架构和开源RTI_DDS基础上进行二次开发,通过对相关的函数进行封装,形成了AMESim分布式仿真的通用接口,使每一个带有AMESim的分布式节点都可以借助DDS分布式架构进行发布和订阅的相关操作,从而实现数据的实时交互。下面介绍通用接口里的几个主要函数以及具体实现过程:

1) 初始化处理阶段主要函数。

void AddInPort(char* name, int size, porttype type, portmode mode, void* initvalue),功能是加入输入端口,定义了端口名称、端口维数、端口类型、端口模式、端口初始值5个参数。void AddOutPort(char* name, int size, porttype type, portmode mode, void* initvalue),功能是加入输出端口,参数含义同上。int initPortList(int dir, portlist**sq),功能为初始化端口列表。BOOL InitSubEng(),初始化子引擎。

2) 仿真接口调度阶段主要函数。int hwaMakeMdf(),其功能是在模型工程路径下生成后缀名为.mdf的模型描述文件,是整个接口设计环节的核心,返回值为0或1。void GetCoSimPortData (portnode* ptnd),得到当前协同仿真端口数据,返回当前端口节点指针。void SetCoSimPortData(const portnode* ptnd, const double* timestamp),向数据软总线写入当前端口和当前模型解算时间戳。int getCV(CurVar* cv, void* value, porttype eletype, int arraysize, portmode mode),获取端口数据值。void getPortDataById (portlist* sq, int id ,void *value ),通过端口ID号设置端口数据。

3) 仿真结束阶段主要函数。void ProcessModelSimulateTerminate(int portDir),在仿真结束时调用子引擎终止函数,在仿真过程中安全退出。void TerminateSubEng(const int dir),dir是端口输入/输出方向参数。

实现过程分成三个阶段处理,实现的流程示意图如图4所示。

图4 接口实现示意图

(1) 接口初始化处理阶段。调用AMESim API获取仿真信息,包括仿真起始时间、模型解算步长、模型名称、系统工程名称及路径等;初始化端口列表;加入所有输入输出端口;获取输入端口个数以及输出端口个数;调用AMESim回调函数AmeInstallAtEnd()注册仿真结束处理函数,函数第一个参数为需要注册的函数名,第二个参数为注册函数的参数列表。

(2) 仿真运行接口调度阶段。在指定路径下寻找模型描述文件,如果没有.mdf文件,则生成模型描述文件,然后结束仿真。如果有.mdf文件,则进入仿真,等待同步时钟。然后初始化子引擎,等待子引擎给出开始解算信号。此时从接口函数处获取对应输入端口的数据,赋值给模型输入变量,再进行模型解算,将获取的模型输出变量赋值给对应的接口函数输出端口,此过程与仿真子引擎进行交互并更新端口计数器。

(3) 仿真结束处理。调用子引擎终止函数,设置参数为输入或输出;调用仿真终止函数等。

3 民机机电系统分布式建模

利用上述DDS分布式互联架构和设计的仿真数据交互接口,可以让熟悉不同系统的仿真人员分别设计各个子系统,只需要预留出系统的输入/输出端口,通过连接协同仿真数据接口完成分布式仿真建模,最后再集成到仿真平台上进行分布式仿真。由于篇幅原因,下面以典型的升降舵系统与液压能源系统为例说明分布式建模过程。

3.1 升降舵分布式建模

某型飞机升降舵有左右两个舵面,左升降舵由中央液压能源系统和左液压能源系统供油,右升降舵由中央液压能源系统和右液压能源系统供油。由于左右两侧功能与结构相同,每一侧有两套作动装置,故只选取一套系统进行建模。升降舵单侧液压回路主要由远程电子单元、电液伺服阀、旁通阻尼阀、模式选择阀和阻断电磁阀等组成。信号经过一个PI环节和舵偏角限幅环节送到动力控制单元(Power Controller Unit,PCU)中的电液伺服阀中,再由电液伺服阀驱动液压缸完成方向舵偏转,其过程可由图5升降舵控制框图描述。

图5 升降舵控制框图

参考某型飞机手册,在升降舵建模过程中设置如下仿真参数:电液伺服阀内流量5 L/min,液压缸活塞直径82.3 mm,液压缸行程长度0.254 m,液压缸活塞杆直径44.45 mm,作动筒活塞直径0.1 m,作动筒行程0.025 m,作动筒活塞杆直径0.013 m,控制器PI参数设置为-2和0,最大值40,最小值-40,延迟时间0.001 s,建立如图6所示的分布式升降舵模型。

图6 分布式升降舵系统建模

3.2 液压能源系统分布式建模

某型飞机液压能源系统有左中右三套,左和右液压能源分别由一个发动机驱动泵、一个电动泵组成,中间液压能源系统由两台电动泵和一台冲压空气涡轮驱动泵组成,参考手册中液压能源系统原理图,回路中还应有液压油箱、高压滤油器、漏油滤油器、蓄能器等。

飞机液压系统的设计指标之一是能够满足全飞行过程的负载流量需求[14],参考某型飞机北京-上海航段数据,模型精细度及参数设置如下:

(1) 液压泵为恒压变量泵,压力位5 000 PSI(压力变化范围为4 775 PSI~5 050 PSI),流量27 GPM~34 GPM;额定流量25 GPM(94.625 L/min)。

(2) 电动泵额定输出流量为27 GPM,输出压力为4 750 PSI,最大输出值37 GPM,电机转速5 500 r/min。电动泵主要在起飞及爬升高度在2 000 ft以内使用,当高度超过2 000 ft以后,襟翼收回,电动泵转速变为2 700 r/min。当降落时,电机转速5 500 r/min,起落架放下;当发动机反推时,电机转速6 800 r/min。

(3) 其他参数设置:液压油箱为自增压油箱,增压压力为75 PSI,共三个油箱,左右油箱容积为19 L,中央油箱容积为42 L。油箱指示使用的参考温度80 F(26.7 ℃)热补偿计算。蓄能器压力为5 000 PSI,预压压力为2 000 PSI。高压滤油器:通过减压阀保护,当压力大于6 000 PSI时,减压阀工作。同时并联单向阀,防止油液回流。参考某型飞机液压能源系统原理图,建立如图7所示的分布式液压能源系统模型。

图7 分布式液压能源系统建模

4 仿真与结果分析

4.1 分布式仿真过程

本文选取Windows 7系统作为实验平台的操作系统,其硬件的主要参数如下:CPU型号为Intel(R) Core(TM) i7-7700K,CPU主频为4.20 GHz,内存16.0 GB;其软件环境主要为LMS AMESim R15,DDS分布式互联架构。将建模完成后的两个模型分别进行编译与仿真,此时会在仿真工程路径下生成模型描述文件。通过把生成的描述文件导入到DDS互联架构的模型库中,实现分布式模型在架构中的调度与运行。

4.2 仿真性能分析

根据AMESim的help文件:对系统分布式建模后,每个分布式模型都会被另一个模型视为发散,故会存在系统不稳定、仿真结果不收敛的情况。这在求解器耦合求解时很常见,所以对分布式建模的系统稳定性以及性能分析是非常有必要的。由于机电系统是非线性的,故按照文献[15]设置仿真变量的状态,对系统进行线性化分析,图8所示是分布式升降舵系统的Nyquist曲线,由Nyquist判据可知:绕(-1, j0)一圈,系统稳定。由于飞控系统中对指令响应速度有要求,故使用阶跃信号来测试作动筒跟随的快速性,仿真结果如图9所示,过渡过程时间为2.73 s(5%误差带),超调量为0,稳态误差为0。对于不同幅度指令的作动响应如图10所示,与阶跃响应一致。

图8 Nyquist曲线

图9 阶跃响应

图10 不同幅度的指令偏转响应

4.3 分布式仿真的同步性分析

通过对比关键仿真元件使用分布式仿真方法与集中仿真方法的位移、压力、流量等物理量的误差,来验证分布式仿真变量的一致性,选取伺服阀进油回路质量流率、液压缸进油口的压力、作动筒的位移进行比较,图11-图13所示为伺服阀进油回路流量、液压缸进油口的压力、作动筒位移分布式仿真前后一致性对比图,其中流量值和位移值几乎完全重合,压力值的瞬时最大误差为14%,平均误差不超过10%,对仿真结果几乎无影响。

图11 伺服阀进油回路流量对比图

图12 液压缸进油口压力对比图

图13 作动筒位移对比图

4.4 分布式仿真的加速性分析

把基于数据接口的分布式仿真模型还原为集成仿真模型,可以得到如图14的分布式仿真前后CPU时间对比图,可以看出分布式仿真前为5.27 s,分布式仿真后的液压能源系统为0.20 s,升降舵系统为1.19 s,明显缩短了仿真计算时间,导入到互联架构平台中的仿真时间为6.97 s,时间稍有增加,原因是DDS通信时间在本次仿真时间中占比很大。故对三套液压能源系统和两侧升降舵均进行仿真,分布式前后时间如图15所示,分布式之前时间是32.39 s,分布式之后为28.28 s,时间缩短了4.11 s,加速性能良好。

图14 仿真时间对比图

图15 复杂系统时间对比图

5 结 语

分布式仿真是分析大规模复杂机电系统仿真的有效方法,本文通过研究DDS数据通信机制以及现有的DDS分布式互联架构平台,设计了AMESim与DDS平台的仿真数据接口,建立了民机机电系统分布式仿真模型,实现了并行建模、分布式仿真以及复杂系统的仿真加速。仿真结果表明:使用DDS作为通信中间件,在保证仿真同步精度的同时实现了仿真加速,为民机复杂系统的集成测试与验证提供了新的工程思路。

猜你喜欢
端口液压机电
基于AMESim液压挖掘机回转系统仿真分析
基于仿真的液压传动课程教学改革
温度对圆柱壳结构应力及端口变形影响研究
华为交换机端口Hybrid 模式的应用
北京空间机电研究所
液压系统常见污染及控制措施的探讨
自制液压储气式氢氧燃料电池
北京空间机电研究所
一种有源二端口网络参数计算方法
一种端口故障的解决方案