國(guó)一兵 蘇一博
摘? 要:隨著計(jì)算機(jī)仿真技術(shù)的不斷發(fā)展,F(xiàn)MI聯(lián)合仿真已經(jīng)成為當(dāng)今系統(tǒng)性工程開發(fā)的必經(jīng)之路。針對(duì)FMI系統(tǒng)中串行仿真算法的仿真速度低的問(wèn)題,本文提出了基于FMI聯(lián)合仿真的并行仿真算法,主要研究了該算法的流程設(shè)計(jì)和仿真過(guò)程,并對(duì)比分析了使用并行仿真算法和串行仿真算法仿真得到的結(jié)果,證明了并行仿真仿真算法極大地提高了FMI系統(tǒng)的仿真速度。
關(guān)鍵詞:FMI系統(tǒng)? 并行仿真? 串行仿真? 仿真速度
中圖分類號(hào):TP391.9 ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? 文章編號(hào):1674-098X(2021)01(b)-0108-03
Research on Parallel Simulation Algorithm in FMI System
GUO Yibing? SU Yibo
(Shenyang Ligong University, Shenyang, Liaoning Province, 110159 China)
Abstract: With the continuous development of computer simulation technology,F(xiàn)MI co-simulation has become the only way for systematic engineering development.Aiming at the low simulation rate of serial simulation algorithm in FMI system,In this paper, a parallel simulation algorithm based on FMI co-simulation is proposed. The flow design and simulation process of the algorithm are mainly studied, and the simulation results obtained by using parallel simulation algorithm and serial simulation algorithm are compared and analyzed, which proves that the parallel simulation algorithm greatly improves the simulation rate of FMI system.
Key Words: FMI system; Parallel simulation; Serial simulation; Simulation rate
當(dāng)今FMI聯(lián)合仿真技術(shù)的高速發(fā)展,使得FMI系統(tǒng)的開發(fā)與應(yīng)用成為計(jì)算機(jī)仿真領(lǐng)域中的新趨勢(shì)。但是,隨著仿真任務(wù)、模型系統(tǒng)的復(fù)雜度以及仿真需求逐漸提高,通過(guò)研究和優(yōu)化聯(lián)合仿真算法來(lái)提高FMI系統(tǒng)的仿真效率變得越發(fā)重要[1-2]。
1? FMI系統(tǒng)概述
FMI系統(tǒng)是基于FMI聯(lián)合仿真[3]標(biāo)準(zhǔn)而設(shè)計(jì)的仿真系統(tǒng)。FMI定義了一種新的仿真模型打包標(biāo)準(zhǔn),用來(lái)支持跨學(xué)科的聯(lián)合仿真、測(cè)試以及嵌入式軟件的開發(fā)[4]。FMI系統(tǒng)支持外部導(dǎo)入或自身生成的以FMI標(biāo)注封裝接口的功能單元(FMU),將這些FMU以指定的關(guān)系連接起來(lái)組成仿真模型系統(tǒng),并將這些仿真模型系統(tǒng)以指定仿真算法進(jìn)行仿真得到仿真結(jié)果[5-6]。
2? 并行仿真算法的提出
在FMI系統(tǒng)中,傳統(tǒng)的串行仿真算法由于耦合程度較高,模型之間嚴(yán)格按照求解關(guān)系依次計(jì)算,并且每步計(jì)算都需要進(jìn)行判斂操作而導(dǎo)致仿真速度降低。由此,為了提高FMI系統(tǒng)的仿真速度,本文在串行仿真算法的基礎(chǔ)上進(jìn)行優(yōu)化設(shè)計(jì),采用并行調(diào)度的策略重新規(guī)劃仿真算法的執(zhí)行流程,在FMI系統(tǒng)中實(shí)現(xiàn)并行仿真算法。
3? 并行仿真算法的研究
以三個(gè)分別具備單個(gè)輸入輸出端口的仿真模型FMUA、FMUB、FMUC 組成的串聯(lián)仿真系統(tǒng)為例“FMUA.y-FMUB.u-FMUB.y-FMUC.u-FMUC.y-FMUA.u-FMUA.y”
并行仿真算法改變了串行仿真算法的執(zhí)行流程。以串行仿真算法中的三個(gè)FMU組成的耦合系統(tǒng)為例,他們的連接關(guān)系和參數(shù)配置保持不變,只是使用并行的方式來(lái)執(zhí)行仿真。仿真初始化之后,得到的FMU求解順序和端口的依賴關(guān)系與串行仿真算法相同,仿真開始后,仿真數(shù)據(jù)交互和FMU計(jì)算流程如圖1所示。
圖1描述了三個(gè)FMU第K步到第K+1步的并行仿真過(guò)程,按照FMU的連接關(guān)系進(jìn)行第K+1步的仿真,過(guò)程如下:
①耦合系統(tǒng)中每個(gè)FMU都將第K步計(jì)算得到的輸出值傳輸給有連接關(guān)系的FMU的輸入端口;
②各FMU得到輸入值后,進(jìn)行第K+1步的計(jì)算,得到第K+1步的輸出值,完成第K+1步的仿真。
依次類推,各FMU將第K+1步的輸出值傳給所連接FMU的輸入端口,各FMU進(jìn)行第K+2步的計(jì)算。按照此順序,直到仿真結(jié)束為止。
并行仿真算法與串行仿真算法不同的是,每個(gè)FMU只按照連接關(guān)系對(duì)相對(duì)應(yīng)的端口進(jìn)行賦值,賦值過(guò)程沒(méi)有先后順序,也沒(méi)有等待的機(jī)制,都是并行處理的。各FMU的輸入端口同時(shí)得到了所需數(shù)值,所有FMU計(jì)算一步,至此,整個(gè)耦合系統(tǒng)完成一步仿真。
該算法與串行仿真算法的另一個(gè)不同之處是,假設(shè)仿真執(zhí)行第K+1步,串行算法僅FMUB使用FMUA的第K步的輸出值參與計(jì)算,其他模型都會(huì)使用接收到的第K+1步的值參與計(jì)算。在并行仿真算法計(jì)算第K+1步過(guò)程中,由于所有FMU是并行運(yùn)行的,每個(gè)FMU都得不到來(lái)自第K+1步的值,故每個(gè)模型都是使用第K步的值進(jìn)行數(shù)據(jù)交互。
4? 仿真與分析
對(duì)由FMUA、FMUB、FMUC三個(gè)單輸入輸出端口的串聯(lián)仿真模型系統(tǒng)為例,分別使用串行仿真算法和并行仿真算法進(jìn)行仿真,取出FMUA.y輸出端口的仿真結(jié)果如圖2所示。
在圖2中,實(shí)心圓點(diǎn)用來(lái)標(biāo)注使用串行仿真算法進(jìn)行仿真得到的通信點(diǎn)上的仿真結(jié)果,星點(diǎn)用來(lái)標(biāo)記使用并行仿真算法進(jìn)行仿真得到的通信點(diǎn)上的仿真結(jié)果。對(duì)比上述兩條仿真結(jié)果曲線,可以看出:從第一步仿真開始,并行仿真算法的結(jié)果值始終比串行算法延遲一個(gè)步長(zhǎng),這也正是因?yàn)椴⑿兴惴ㄔ谶\(yùn)行第K步仿真時(shí)使用第K-1步計(jì)算得到的輸出結(jié)果作為輸入值而導(dǎo)致的。在實(shí)際仿真任務(wù)中,由于仿真步長(zhǎng)短、仿真時(shí)間長(zhǎng),這種有限且數(shù)量極少的延遲步數(shù)均可以忽略不計(jì),不會(huì)影響仿真的穩(wěn)定性與準(zhǔn)確性。
另外,讀取每個(gè)仿真通信點(diǎn)的詳細(xì)結(jié)果數(shù)據(jù)可以發(fā)現(xiàn),使用并行仿真算法仿真得到的數(shù)據(jù)與使用串行仿真算法仿真得到的數(shù)據(jù)相比只有微小的差別,說(shuō)明在誤差允許的條件下,使用并行仿真算法所計(jì)算的結(jié)果幾乎等同于使用串行仿真算法的仿真結(jié)果。
對(duì)比圖3中兩種仿真算法的執(zhí)行流程可以發(fā)現(xiàn),仿真任務(wù)為時(shí)長(zhǎng)1s,通信步長(zhǎng)0.1s,運(yùn)行10步,使用串行仿真算法的仿真總共用時(shí)0.2784s,而使用并行仿真算法的仿真總共用時(shí)0.0464s。說(shuō)明FMU的并行的計(jì)算,簡(jiǎn)化了數(shù)據(jù)通信的繁瑣流程,很大程度上提高了仿真速度。
5? 結(jié)語(yǔ)
本文主要對(duì)FMI系統(tǒng)中串行仿真算法仿真速度低的問(wèn)題進(jìn)行分析,提出并行仿真算法。本文從仿真控制流程的角度進(jìn)行分析,采用并行調(diào)度策略,對(duì)仿真流程進(jìn)行了重新設(shè)計(jì),實(shí)現(xiàn)了對(duì)FMU的并行計(jì)算,并成功地使用實(shí)例進(jìn)行仿真驗(yàn)證。仿真結(jié)果表明,使用并行仿真算法極大地提高了FMI系統(tǒng)的仿真效率,并且仿真結(jié)果正確可靠。
參考文獻(xiàn)
[1] 樊卿.基于FMI的飛行器聯(lián)合仿真技術(shù)研究[D].成都:電子科技大學(xué),2018.
[2] 羅茂春.基于FMI的航空發(fā)動(dòng)機(jī)控制系統(tǒng)多學(xué)科聯(lián)合仿真[D].南京:南京航空航天大學(xué),2019.
[3] 王鴻亮,廉東本,徐久強(qiáng).基于FMI的分布式聯(lián)合仿真技術(shù)研究[J].計(jì)算機(jī)仿真,2017(4):256-261.
[4] 陸冠華,郝明瑞,胡松,等.基于FMI的飛行器分系統(tǒng)多源異構(gòu)模型一體化仿真[J].導(dǎo)航定位與授時(shí), 2018(6):99-104.
[5] 蘇一博,臧晶,玉紹康.基于FMI的功能模擬單元?jiǎng)?chuàng)建與仿真分析[J].科技創(chuàng)新導(dǎo)報(bào),2019,16(14):1-2.
[6] 董政.基于FMI的Simulink模型到Modelica模型的轉(zhuǎn)換技術(shù)研究[D].武漢:華中科技大學(xué),2016.