國(guó)一兵 玉少康
摘? 要:隨著對(duì)飛行器的研究以及開(kāi)發(fā)水平的不斷提高,飛行器地面仿真系統(tǒng)的研究已成為必然。為了完善仿真飛行器的飛行過(guò)程及實(shí)驗(yàn),該文在分析立即注入和定時(shí)注入兩種技術(shù)的基礎(chǔ)上,在仿真過(guò)程中設(shè)計(jì)了參數(shù)注入功能,并應(yīng)用在FMI聯(lián)合仿真系統(tǒng)中。利用Redis通信中間件實(shí)現(xiàn)控制參數(shù)注入過(guò)程,并在仿真系統(tǒng)進(jìn)行測(cè)試與結(jié)果分析,成功驗(yàn)證了參數(shù)注入技術(shù)的有效性與實(shí)用性。
關(guān)鍵詞:FMI仿真系統(tǒng)? 參數(shù)注入? Redis? FMU
中圖分類(lèi)號(hào):G64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ?文章編號(hào):1672-3791(2021)02(c)-0023-03
Research on Parameter Injection Based on FMI Simulation System
GUO Yibing? YU Shaokang
(Shenyang Ligong University, Shenyang, Liaoning Province, 110159 China)
Abstract: With the continuous improvement of aircraft, the research of aircraft ground simulation system has become inevitable. In order to simulate the flight process of aircraft completely, the parameter injection function is designed and applied in FMI simulation system based on the analysis of the two techniques of immediate injection and timing injection. Using Redis communication middleware to realize the process of control parameter injection, the simulation system is tested and the results are analyzed, which successfully verifies the effectiveness and practicability of parameter injection technology.
Key Words: FMI Simulation System; Parameter injection; Redis; FMU
目前,許多仿真軟件可以利用FMI標(biāo)準(zhǔn)進(jìn)行聯(lián)合仿真,但是在飛行器的飛行過(guò)程中,需要多次改變飛行器的飛行狀態(tài),現(xiàn)有的仿真軟件無(wú)法滿(mǎn)足。該文通過(guò)設(shè)計(jì)仿真過(guò)程中的參數(shù)注入技術(shù),并應(yīng)用到FMI仿真系統(tǒng)中,使仿真系統(tǒng)更加逼近飛行器飛行過(guò)程[1-3]。
1? FMI仿真系統(tǒng)
FMI仿真系統(tǒng)由仿真調(diào)度子系統(tǒng)和仿真執(zhí)行子系統(tǒng)組成。仿真執(zhí)行過(guò)程通過(guò)部署在不同計(jì)算機(jī)上的仿真執(zhí)行子系統(tǒng)及運(yùn)行在其上的FMU模型共同完成,仿真執(zhí)行子系統(tǒng)之間通過(guò)中間件Redis通信,仿真流程通過(guò)中間件通信同步,由仿真調(diào)度子系統(tǒng)協(xié)同控制。
仿真調(diào)度子系統(tǒng)主要進(jìn)行資源管理、任務(wù)管理、實(shí)施仿真過(guò)程控制,提供仿真開(kāi)始、暫停、繼續(xù)、停止與參數(shù)注入等功能;其中,仿真參數(shù)注入功能是根據(jù)仿真需求,注入模型參數(shù)并通過(guò)通信中間件Redis發(fā)送控制指令來(lái)控制仿真過(guò)程[4]。
2? 仿真參數(shù)注入功能的設(shè)計(jì)
為了使FMI仿真系統(tǒng)對(duì)飛行器的仿真逐漸逼近實(shí)際的飛行過(guò)程,在仿真過(guò)程中需要進(jìn)行參數(shù)注入,模擬真實(shí)飛行狀態(tài)的改變,如改變衛(wèi)星姿態(tài)和軌跡、調(diào)節(jié)太陽(yáng)能帆板角度等。在該系統(tǒng)中,參數(shù)注入分為立即注入和定時(shí)注入兩種形式。其中立即注入指的是參數(shù)注入命令下達(dá)后立即在指定端口寫(xiě)入注入值,而定時(shí)注入指的是當(dāng)仿真運(yùn)行到指定時(shí)刻后才進(jìn)行參數(shù)注入。
仿真調(diào)度子系統(tǒng)利用Redis[5-6]向仿真執(zhí)行子系統(tǒng)發(fā)送仿真數(shù)據(jù),發(fā)送的數(shù)據(jù)包括仿真控制命令、仿真參數(shù)信息和模型連接總圖信息。具體的數(shù)據(jù)包封裝成Json格式如下。
2.1 仿真控制命令
{"command": "UpdateSimParam","from":"controller","to":"all"};其中key字段依次為控制命令、發(fā)送方、接收方。
2.2 仿真參數(shù)
{"params":{"taskid": "ABCDEFG","simtime":4.399}};其中key字段依次為參數(shù)、任務(wù)ID、仿真時(shí)間。
2.3 仿真模型連接總圖
{"SF_001":{"mmrus":{"phi2":{"runtime":-1,"holdstep":100,"basevalue":"0.5","overvalue":"0""type":"double"}}}},其中key字段依次為子圖ID、模型ID、參數(shù)名、注入時(shí)間(-1為立即注入)、運(yùn)行周期、基礎(chǔ)值、疊加值、數(shù)據(jù)類(lèi)型。
通過(guò)上述仿真協(xié)議,當(dāng)仿真進(jìn)行參數(shù)注入時(shí),仿真調(diào)度子系統(tǒng)將參數(shù)注入控制命令"UpdateSimParam"通過(guò)Redis發(fā)送給仿真執(zhí)行子系統(tǒng),執(zhí)行子系統(tǒng)調(diào)用參數(shù)注入算法將基礎(chǔ)值"basevalue"和疊加值"overvalue"改變,從而達(dá)到參數(shù)注入的效果。
3? 仿真與分析
為了驗(yàn)證該文研究的參數(shù)注入技術(shù)在FMI仿真系統(tǒng)中的有效性,利用FMI仿真系統(tǒng)進(jìn)行仿真,并對(duì)仿真結(jié)果進(jìn)行分析判斷。
此次實(shí)驗(yàn)案例中采用的FMU模型分別為Driver、Controller、Environment、Variant_actuator和Spacecraft。模型系統(tǒng)設(shè)計(jì)圖如圖2所示。仿真模型輸出端口為spacecraft模型的PitchRate和Alpath端口。參數(shù)注入窗口如圖3所示。
首先,啟動(dòng)FMI仿真系統(tǒng)進(jìn)行無(wú)參數(shù)注入的仿真,仿真結(jié)果分別如圖4、圖5所示。
再次啟動(dòng)FMI仿真系統(tǒng),然后打開(kāi)參數(shù)注入窗口如圖3所示,設(shè)置參數(shù)進(jìn)行參數(shù)注入,仿真結(jié)果如圖6、圖7所示。
對(duì)比兩次仿真結(jié)果,發(fā)現(xiàn)在進(jìn)行參數(shù)注入時(shí)兩個(gè)端口立即發(fā)生輪變化,說(shuō)明通過(guò)參數(shù)注入通過(guò)改變了飛行器模型的控制命令,進(jìn)而改變了飛行器的運(yùn)動(dòng)速度和角度。參數(shù)注入持續(xù)了100個(gè)通信步長(zhǎng)后,即1s,結(jié)束注入?yún)?shù),各仿真模型經(jīng)過(guò)系統(tǒng)自身調(diào)整,逐漸恢復(fù)了注入前的正常狀態(tài)。故可驗(yàn)證該文設(shè)計(jì)的基于FMI仿真系統(tǒng)的參數(shù)注入技術(shù)的有效性和實(shí)用性。
4? 結(jié)語(yǔ)
該文首先闡述了FMI仿真系統(tǒng)的整體架構(gòu),并針對(duì)該仿真系統(tǒng)設(shè)計(jì)出參數(shù)注入功能,并通過(guò)Redis通信的方式控制參數(shù)注入技術(shù)的實(shí)現(xiàn)。最后利用仿真模型在FMI仿真系統(tǒng)上進(jìn)行仿真測(cè)試,并對(duì)仿真結(jié)果進(jìn)行對(duì)比分析,從而驗(yàn)證參數(shù)注入技術(shù)在FMI仿真系統(tǒng)中的有效性和實(shí)用性。
參考文獻(xiàn)
[1] 王鴻亮,廉東本,徐久強(qiáng).基于FMI的分布式聯(lián)合仿真技術(shù)研究[J].計(jì)算機(jī)仿真,2017(4):256-261.
[2] 黃志勇.基FMI的無(wú)人機(jī)多源導(dǎo)航系統(tǒng)仿真技術(shù)研究[D].電子科技大學(xué),2017.
[3] 陸冠華,郝明瑞,胡松,等.基于FMI的飛行器分系統(tǒng)多源異構(gòu)模型一體化仿真[J].導(dǎo)航定位與授時(shí), 2018(6):99-104.
[4] 玉紹康,關(guān)世杰,蘇一博.基于Java環(huán)境下的Redis發(fā)布訂閱的設(shè)計(jì)與實(shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào),2019, 16(14):3,5.
[5] 郎泓鈺,任永功.基于Redis內(nèi)存數(shù)據(jù)庫(kù)的快速查找算法[J].計(jì)算機(jī)應(yīng)用與軟件,2016(5):40-43,52.
[6] 陳永恒,韓東奇.利用Redis進(jìn)行數(shù)據(jù)通信的研究與測(cè)試[J].科技創(chuàng)新導(dǎo)報(bào),2018,15(14):173-174.