Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 理工论文 > 正文

基于 DDS 的分布式仿真平台接口设计论文

发布时间:2024-07-16 17:34:56 文章来源:SCI论文网 我要评论














  摘要:为了充分利用MATLAB/Simulink仿真软件的建模功能并与其他仿真软件建立的机电系统模型进行数据交互,从而实现对分布在不同仿真节点的多电飞机各机电系统进行分布式协同仿真。详细介绍了分布式仿真平台的运行管理机制与DDS数学通信模型,建立了MATLAB/Simulink仿真软件接口架构,通过编程设计将MATLAB/Simulink软件集成于基于DDS的分布式仿真平台上,并利用该仿真软件对其他机电系统仿真模型进行算法控制建模,从而实现多电飞机各机电系统的联合仿真。验证结果表明,该数据接口能够实现MATLAB/Simulink仿真模型与分布式仿真平台上其他仿真模型的数据交互与指令调控,进一步拓宽了分布式仿真平台的规模,完善了多电飞机的系统功能,为接下来实现对多电飞机机电系统分布式协同仿真虚拟监控打下坚实基础。
 
  关键词:分布式协同仿真,DDS,MATLAB/Simulink,接口设计
 
  0引言
 
  近几年随着航空技术的快速发展,尤其是B787和A320的投入使用,使得多电飞机[1-3]成为国内外研究的新趋势,但机电系统规模大,结构越来越复杂,维修难度越来越大,研制成本也越发高昂。分布式仿真利用计算机网络将各个仿真节点的机器设备连接在一起共同完成指定的仿真任务,可以提供良好的灵活性与便捷性,在航空领域得到广泛应用[4-5]。采用分布式仿真技术对飞机各系统建模进行飞行模拟可以有效降低运行成本,提高工作效率[6]。但由于飞机机电系统众多,且系统间存在复杂交联关系,为了达到更好的仿真效果,故需使用不同专业仿真软件(AMESim、FlightSIM、PROOSIS)对其进行建模处理,同时使用数据分发服务(Data Distri⁃bution Service,DDS)[7-9]软总线将不同仿真软件建立的仿真模型进行连接,将多源数据进行融合,让分布在不同仿真节点的仿真模型进行实时、可靠地数据传输,从而实现多电飞机各机电系统的协同仿真。
 
  本文通过设计MATLAB/Simulink仿真软件接口,将MATLAB/Simulink仿真软件集成于分布式仿真平台上,充分利用MATLAB/Simulink仿真软件的算法建模功能,对仿真平台上的液压、起落架、燃油等其他仿真模型建立算法控制模型,从而实现对各仿真模型的逻辑控制以及通过数据接口与分布式仿真平台上的其他模型进行数据交互与指令调控等操作,进一步完善多电飞机的系统规模,优化系统集成和扩展,实现飞机能够进行分布式仿真的功能,为接下来实现对飞机分布式协同仿真的虚拟监控奠定坚实基础。
 
  1分布式仿真平台
 
  基于DDS的分布式仿真组态监控平台如图1所示,分布式仿真平台[10]已提供多种仿真建模软件及软件接口,并通过DDS软总线将不同仿真节点的计算机进行连接,以便对其进行统一管理。

\
 
  平台不仅将所有模型对外的交互数据分为输入量、输出量、参数量、信号量4种类型;同时又将DDS内部传输的数据分为时钟流(仿真时钟同步)、数据流(仿真软件之间通过模型接口进行数据交互)和控制流(仿真调度)3种类型[11]。DDS结构如图2所示。其中仿真引擎分为主引擎和子引擎,仿真主引擎包括网络表解析模块、仿真时钟模块、仿真模型框架、仿真引擎自适应模块、仿真软总线和通信模块6大模块,既可对多个仿真模型进行调度管理,也可对仿真状态进行监控;仿真子引擎内嵌于仿真模型接口中,与主引擎相互配合,控制着仿真时钟和各仿真模型的推进。

\
 
  2接口设计数学模型
 
  在DDS中,每一个主题(Topic)在域内都定义了唯一的主题名称(topic name)、数据类型(data type)以及与数据本身相关的QoS策略,来控制着发布者与订阅者的行为[12-14],结合DDS通信标准,在这里给出分布式仿真平台与MATLAB模型之间数据交互的数学模型定义。

\
 
  式(1)~(2)中:A为分布式仿真平台;B为MATLAB模型;D为A与B中所有域(Domain)的集合,D={D 1,D2,⋯,Dn};T为A与B中所有主题信息(Topic)的集合,T={T1,T2,⋯,Tn};P为A与B中所有发布者(Publisher)的集合,假设有P个发布者,P={P 1,P2,⋯,Pp};S为A与B中所有订阅者(Subscriber)的集合,假设有S个订阅者,S={S 1,S2,⋯,S s};Q(x)为A与B中所涉及的服务质量QoS的集合,其中x表示通信实体,Q={q 1(x),q2(x),⋯,q n(x)};F为A与B中参数数据写入者与发布主题的对应关系,F(Dw ij)=Tn,Tn∈T;G为A与B中参数数据读取者与订阅主题的对应关系,G(Drij)=Tm,Tm∈T;Dwij为A与B中发布者Pi创建的所有数据写入者(Datawriter)的集合,Dw ij={w 11,w 12,⋯,wpn},Dwij为第i个发布者创建的第j个数据写入者;同理Drij为A与B中订阅者Si创建的所有数据读取者(Datareader)的集合,Drij={r11,r 12,⋯,rsn},其中Drij表示第i个订阅者创建的第j个数据读取者。
 
  根据定义可知,当满足以下3个条件时,分布式仿真平台与MATLAB仿真模型即可实现数据交互。(1)D(Dw ij)=(Drij),数据写入者与数据读取者的发布/订阅过程在同一个域内;(2)F(Dw ij)=G(Drij),数据写入者与数据读取者的发布/订阅主题相同;(3)Q(Pi)=Q(Sj),Q(Dw ij)=Q(Drij),Q(Ti)=Q(Tj)。
 
  3仿真接口设计

       3.1接口设计架构
 
  MATLAB/Simulink接口模块主要用于为MATLAB/Simulink开发的模型提供与外部程序协同仿真的能力,Simulink接口模块位于Simulink Libraries中,通过拖拽的方式图形化的完成Simulink模型协同仿真能力的扩展。MATLAB/Simulink接口模块功能架构如图3所示。
 
\
 
  在MATLAB/Simulink模型,通过将模型中的输入输出端口设置为与分布式仿真平台对应的端口,实现仿真模型的封装;通过在模型设计环境中新建Simulink仿真模型实现仿真模型的导入,数据流架构如图4所示。

\
 
  仿真运行管理模块对MATLAB/Simulink仿真模型的控制如图5所示,首先利用MATLAB/Simulink仿真软件设置仿真模型信息(端口参数等),并在建立好的仿真模型中嵌入模型接口,仿真子引擎也内嵌于模型接口中。在仿真初始化时,该模型接口收到仿真指令后启动仿真子引擎,仿真子引擎接收仿真管理模块下达的控制指令后通过模型接口控制仿真模型的解算进程,同时接收仿真主引擎发送的时钟基频,并根据建立的模型信息及仿真软总线数据传输周期进行模型解算控制及将模型解算的数据向总线传输[15]。

\
 
  仿真子引擎接收指令流获取指令数据,从而改变当前运行状态,当仿真模型切换到指令要求的仿真状态后,再由仿真子引擎将当前仿真状态发送回仿真运行管理模块,具体流程如图6所示。
 

\
 
       3.2上位机函数库
 
  本仿真平台软件针对仿真平台控制及仿真软件总线数据提供了接入函数库,分别实现对仿真的初始化、运行、暂停、恢复、单步和停止等控制功能函数库和仿真软件总线数据读取的数据接入功能函数库。
 
  仿真平台包括两套不同的API函数库:(1)仿真控制功能函数库,其主要提供对仿真任务的控制功能,部分重要函数库如表1所示;(2)仿真软总线数据接入库函数,其主要提供对仿真软件数据接入功能,可以获取当前仿真时刻上输入、输出、信号、参数、仿真时间戳等仿真参数,部分重要函数库如表2所示。

\
 
 
  3.3接口设计函数
 
  基于RTI_DDS的分布式仿真平台,通过利用C++程序设计语言设计MATLAB/Simulink仿真软件接口,从而实现与软总线挂接实现仿真数据传输、仿真时钟事件传输以及仿真管理(仿真调度命令传输)功能[16]。子引擎线程与解算线程的过程如图7所示。整个接口模块设计分为3个阶段,具体如下。
 
  (1)仿真接口初始化
 
  首先在分布式仿真平台中设置仿真模型信息,如系统工程名称、系统路径、仿真启动、停止时间等;其次设计协同仿真输入、输出端口变量以及输入、参数端口初值变量,并为初值变量赋值;调用AddInput()、Add⁃Output()、AddParameter()、AddSignal()函数为模型添加分布式协同仿真输入、输出、参数、信号端口,注意端口的ID值不能重复。
 
  在对仿真模型完成设计后,初始化所有模型的输入输出端口,加入所有模型端口,明确输入输出端口个数。主要函数如表3所示。

\
 
  (2)仿真接口调度
 
  判断是否有模型描述文件[17]生成,若有,则进入仿真,等待仿真子引擎与主引擎进行控制流、指令流的交互,保证仿真时钟同步,仿真子引擎将从接口函数中调用GetCSInputData()和GetCSParaData()函数获取DDS总线上对应的输入和参数端口数据传送给模型输入、参数变量,触发仿真模型进行解算,若无,则模型转至空,结束仿真;最后等待模型一次解算完成,仿真子引擎通过模型接口获取模型输出端口数据并调用SetCSOutputData()和SetCSSignalData()函数向DDS总线发送输出和信号端口数据。主要函数如表4所示。

\
 
  (3)仿真结束
 
  调用子引擎终止函数void TerminateSubEng();调用仿真终止函数ProcessModelSimulateTerminate(),停止仿真。主要函数如表5所示。
 
  4仿真接口验证

       4.1控制算法建模
 
  分布式仿真平台利用Flightsim软件设置从北京到上海的航线,其中包括飞机从滑跑、起飞、爬升、巡航、下降、进近、降落等11个飞行阶段[18],并利用MATLAB Simulink模块对其他仿真软件建立的液压、起落架、燃油、环控、防冰、发动机反推、飞行操纵等系统模型进行机电综合控制算法建模,具体如下。
 
  (1)液压能源系统控制。飞机液压能源系统通常用来收放起落架、襟翼、减速板和操作机轮液压刹车以及操纵舵面的偏转,液压能源系统泵的控制逻辑在滑跑、起飞、巡航和降落等不同的飞行阶段会有不同的变化。建立液压能源系统综合管理模型,实现了液压能源系统的控制逻辑,综合管理系统由左能源系统EDP逻辑控制模块和EMP逻辑控制模块,中央能源系统EDP逻辑控制模块和EMP逻辑控制模块,右能源系统EDP控制模块和EMP逻辑控制模块组成。
 
  (2)起落架系统控制。起落架系统控制分为主轮收放、前轮收放、前轮转弯和防滑刹车4个功能控制模块[19],控制模型如图8所示。

\
\
 
 
  (3)燃油系统控制。燃油系统控制算法包括燃油存储与通气、加油、APU供油、发动机供油、放油和应急放油组成,在飞行任务中主要考虑的是供输油逻辑[20]。
 
  (4)发动机反推控制。发动机反推是在飞机降落时,落地后就打开发动机反推以达到快速减速的目的,当飞行的地面速度低于80节时关闭发动机反推,在发动机打开前需要先开锁,发动机反推关闭后要进行上锁控制。建立发动机反推逻辑模型,包括有使能打开、反推开锁和解锁、反推打开和反推关闭等功能。
 
  (5)座舱环境控制。建立座舱环境控制逻辑模型,座舱分为驾驶舱、前舱、中舱和后舱,两个外排口,建立座舱高度控制逻辑。
 
  (6)引气防冰控制。建立引气防冰逻辑模型,防冰系统包括机翼防冰和短舱防冰,建立简易的引气控制器(BMC)逻辑。
 
  (7)飞行操纵舵面控制。建立飞机飞行操纵指令控制模型,包括有主飞行控制中方向舵、升降舵、副翼和扰流板,高升力系统中的襟翼和缝翼。
 
  4.2仿真验证
 
  为了验证MATLAB/Simulink接口模块的数据传输效果,以起落架系统为例,把Simulink起落架控制模型与AMESim前起落架模型、主起落架模型、前轮转弯模型和刹车系统模型,以及flightSim飞行动力学环境模型进行系统集成测试验证,结果如图9所示。由图像可知,建立的起落架控制模型能够操纵各子系统按照规定指令进行正常的起落架收放工作,表明建立的MATLAB/Simulink仿真接口能够实现仿真模型与分布式仿真平台的数据交互与指令传送。
 
  然后将这28个机电子系统模型进行封装以及系统级关联,并下发到相应仿真节点上,如表6所示。

\
 
  各机电系统分布式仿真如图10所示,利用MATLAB/Simulink仿真软件对各机电系统建立控制模型,这些控制模型可以通过设计的数据接口与平台其他仿真软件建立的仿真模型进行数据交互与指令调控,从而实现多电飞机的分布式协同仿真。

\
 
  5结束语
 
  本文首先通过对分布式仿真平台的功能组成进行分析,其次建立分布式仿真平台与MATLAB/Simulink仿真模型的数学模型,确定MATLAB/Simulink仿真接口的设计架构,然后通过分布式仿真平台以及MATLAB/Simulink提供的API函数设计了仿真模型接口,将MATLAB/Simulink软件集成于分布式仿真平台上,最后利用MATLAB/Simulink软件建立液压、燃油、起落架等机电系统仿真模型的算法控制模型。通过实验验证,设计的数据接口能够实现MAT⁃LAB/Simulink算法仿真模型与其他仿真模型的数据交互与指令调控,进一步扩展了分布式仿真平台的规模与功能,为下一步实现对多电飞机分布式仿真的虚拟仿真监控以及将其他仿真软件集成于分布式仿真平台上奠定坚实基础。
 
  参考文献:
 
  [1]吴汉亭,邓健,周鑫.多电飞机高压直流电力系统稳定性分析[J].电光与控制,2021,28(2):106-110.
 
  [2]张栋善,谭涛.基于多电飞机概念下的飞机电气发展方向[J].电子测试,2018(6):125,124.
 
  [3]张佳.多电飞机起落架收放控制系统设计[J].自动化与仪表,2023,38(2):39-42,119.
 
  [4]王锦卿,杜政,欧阳伶俐,等.分布式交互仿真技术综述[J].系统仿真学报,1996(3):3-7,15.
 
  [5]徐昕,刘秀罗,贺汉根,等.DIS综合环境及其相关技术[J].系统仿真学报,2000(3):175-177,196.
 
  [6]孟益民.一种基于DDS协议的分布式仿真网络设计[J].电子科技,2015,28(8):71-73,76.
 
  [7]周平,苏银科,沈超.基于DDS的分布式数字仿真系统设计与实现[J].系统仿真学报,2014,26(8):1678-1683,1691.
 
  [8]周隽,刘海峰,林福良.数据分发服务在指控系统中的应用设想[J].计算机系统应用,2018,27(2):44-50.
 
  [9]山寿,郝明哲,孙伟.基于数据分发服务和WPF技术的试飞实时监控系统设计[J].计算机测量与控制,2020,28(3):119-122,143.
 
  [10]腾达.基于DDS的协同仿真平台飞行数据激励技术研究[D].天津:中国民航大学,2020.
 
  [11]樊智勇,张同,刘涛.基于DDS的飞机机电系统组态监控技术研究[J].计算机测量与控制,2021,29(8):104-108,113.
 
  [12]胡静,宋雪雁,孙济洲.航行通告分发服务中间件的研究与设计[J].计算机应用与软件,2016,33(2):7-11,41.
 
  [13]邹歌,刘云飞.实时数据分发服务的自动发现技术[J].计算机技术与发展,2017,27(1):25-29.
 
  [14]朱子杰,汪敏,李荣宽,等.基于DDS战术服务框架的实现机制[J].指挥信息系统与技术,2020,11(4):52-56.
 
  [15]张鹏,张伟业,刘涛.基于DDS的民机机电系统分布式建模与仿真研究[J].计算机应用与软件,2021,38(6):60-65.
 
  [16]张同.基于DDS的飞机前起落架组态监控建模设计[J].工业控制计算机,2022,35(9):1-4.
 
  [17]张伟业.飞机机电系统分布式仿真模型优化方法研究[D].天津:中国民航大学,2020.
 
  [18]张同.多电飞机分布式仿真组态化监控系统研究[D].天津:中国民航大学,2021.
 
  [19]王立纲.起落架收放系统典型故障研究[J].内燃机与配件,2022,(11):68-70.
 
  [20]杨宗卫.民航飞机燃油系统的分析[J].内燃机与配件,2019(17):44-45.

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/ligonglunwen/78163.html

相关内容

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml