王慧雙 李琳琳
摘? 要:FMI聯(lián)合仿真標(biāo)準(zhǔn),用來(lái)作為不同學(xué)科仿真工具的數(shù)據(jù)交互接口,將這些系統(tǒng)中由不同仿真工具建立的仿真過(guò)程以數(shù)據(jù)形式連接起來(lái),形成統(tǒng)一的仿真耦合系統(tǒng)。反饋回路是許多復(fù)雜仿真系統(tǒng)在運(yùn)用計(jì)算機(jī)技術(shù)進(jìn)行系統(tǒng)仿真模擬時(shí),由于計(jì)算機(jī)是按照一定的時(shí)序進(jìn)行計(jì)算的,所以存在反饋回路的仿真系統(tǒng)就會(huì)產(chǎn)生代數(shù)環(huán)結(jié)構(gòu)。該文通過(guò)引入解非線(xiàn)性方程組的方法解決FMI聯(lián)合仿真系統(tǒng)中的代數(shù)環(huán)問(wèn)題。
關(guān)鍵詞:FMI聯(lián)合仿真技術(shù)? 代數(shù)環(huán)? tarjan算法? 牛頓迭代法
中圖分類(lèi)號(hào):O151? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3791(2021)05(a)-0038-03
Abstract: FMI joint simulation standard is used as the data interaction interface of simulation tools of different disciplines, which connects the simulation processes established by different simulation tools in these systems in the form of data to form a unified simulation coupling system. Feedback loop is a complex simulation system. When computer technology is used to simulate the system, because the computer calculates according to a certain time sequence, the simulation system with feedback loop will produce algebraic loop structure. In this paper, the algebraic loop problem in FMI joint simulation system is solved by introducing the method of solving nonlinear equations.
Key Words: FMI joint simulation technology; Algebraic rings; Tarjan algorithm; Newton's method
利用仿真模擬實(shí)際系統(tǒng)中的運(yùn)行情況,進(jìn)而實(shí)現(xiàn)系統(tǒng)的優(yōu)化??紤]到各學(xué)科的耦合作用和影響,為了實(shí)現(xiàn)對(duì)研究對(duì)象在實(shí)際情況中更為精確、高效,多學(xué)科聯(lián)合仿真的概念應(yīng)運(yùn)而生[1]。FMI聯(lián)合仿真標(biāo)準(zhǔn)為多學(xué)科聯(lián)合仿真模型提供了數(shù)據(jù)交互接口和通信協(xié)議。聯(lián)合仿真系統(tǒng)中的代數(shù)環(huán)問(wèn)題,影響著聯(lián)合仿真的仿真精度與速度,該文應(yīng)用DFS理論對(duì)各聯(lián)合仿真模型之間的控制信息進(jìn)行檢索,并提出了一種基于解非線(xiàn)性方程的方法對(duì)聯(lián)合仿真模型中的代數(shù)環(huán)結(jié)構(gòu)進(jìn)行求解。
1? 基于tarjan算法的代數(shù)環(huán)檢測(cè)
1.1 圖論基礎(chǔ)知識(shí)
1.1.1 強(qiáng)連通圖
由有向邊構(gòu)成的圖成為有向圖,并且在有向圖中的任意一頂點(diǎn)都有到達(dá)其他頂點(diǎn)的路徑,則稱(chēng)為強(qiáng)連通圖[2]。
1.1.2 強(qiáng)連通分量
在非強(qiáng)連通圖中的連通部分。其中,獨(dú)立的頂點(diǎn)也稱(chēng)為一個(gè)強(qiáng)連通分量。
1.2 Tarjan算法
Tarjan算法是基于對(duì)圖深度優(yōu)先搜索的算法,用于求解圖的連通性問(wèn)題,每個(gè)強(qiáng)連通分量為搜索樹(shù)中的一顆子樹(shù),搜索時(shí),把當(dāng)前搜索樹(shù)中未處理的頂點(diǎn)加入一個(gè)堆棧,回溯時(shí)可以判斷棧頂?shù)綏V械墓?jié)點(diǎn)是否為一個(gè)強(qiáng)連通分量[3]。
該文利用Tarjan算法分析耦合系統(tǒng)形成的有向圖,不僅可以檢測(cè)出有向圖中的強(qiáng)連通分量也就是耦合系統(tǒng)中的代數(shù)環(huán),還可以計(jì)算出有向圖中各個(gè)節(jié)點(diǎn)的賦值順序,利用這個(gè)賦值順序可以進(jìn)行仿真初始化過(guò)程。
1.2.1 定義
DFN(u)為節(jié)點(diǎn)u搜索的次序編號(hào)(時(shí)間戳);LOW(u)為u或u的子樹(shù)能夠追溯到最早的棧中節(jié)點(diǎn)的次序號(hào)。
由定義可以得出,當(dāng)DFN(u)= LOW(u)時(shí),以u(píng)為根的搜索子樹(shù)上所有節(jié)點(diǎn)為一個(gè)強(qiáng)連通分量[4]。
1.2.2 算法實(shí)現(xiàn)過(guò)程
(1)當(dāng)檢索到未被記錄的點(diǎn)u時(shí),DFN[u]=LOW[u]=time。
(2)每當(dāng)搜索到一個(gè)點(diǎn),把該點(diǎn)壓入棧頂,當(dāng)u和v有邊相連時(shí):
如果v不在棧中,DFS(v),并且LOW[u] = min{LOW(u),LOW(v)};
如果v在棧中,此時(shí)LOW[u] = min{LOW[u],DFN[v]}。
(3)當(dāng)DFN[u]=LOW[u]時(shí),將它以及在它之上的元素彈出棧,此時(shí),彈出棧的結(jié)點(diǎn)構(gòu)成一個(gè)強(qiáng)連通分量。
(4)繼續(xù)搜索,直到圖被遍歷完畢。
2? 基于牛頓法解代數(shù)環(huán)
牛頓法是將非線(xiàn)性方程線(xiàn)性化的過(guò)程[5]。其核心思想是利用泰勒級(jí)數(shù)展開(kāi)(忽略二階以上的項(xiàng)),通過(guò)不斷迭代尋找導(dǎo)數(shù)為0的解,求得近似解。
首先針對(duì)一元函數(shù)利用牛頓法進(jìn)行求解進(jìn)行簡(jiǎn)單介紹。
2.1 一元函數(shù)推導(dǎo)過(guò)程
對(duì)于一元函數(shù)f(x)=0,將(x)在點(diǎn)x0處用泰勒公式進(jìn)行展開(kāi)(忽略二階以上的項(xiàng)):
不斷進(jìn)行迭代,當(dāng)梯度的模等于零或者函數(shù)值下降小于指定閾值,得到函數(shù)解X*。
牛頓法利用逐次逼近的方法,計(jì)算機(jī)運(yùn)算速度快、適合做重復(fù)性操作,讓計(jì)算機(jī)對(duì)一組指令進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令時(shí),都從變量的原值推出一個(gè)新值[6]。
牛頓法屬于二階收斂連,迭代速度相比簡(jiǎn)單迭代要快很多。但是,牛頓法對(duì)初值比較敏感,若初值不合適,系統(tǒng)很有可能會(huì)出現(xiàn)不收斂的情況,使得求解效率降低;另外,函數(shù)必須具有二階偏導(dǎo),計(jì)算量比較復(fù)雜。
3? 實(shí)驗(yàn)結(jié)果對(duì)比
該次實(shí)驗(yàn)案例中采用的實(shí)驗(yàn)FMU模型有6個(gè),分別為:衛(wèi)星動(dòng)力學(xué)模型、姿態(tài)軌道控制器模型、動(dòng)量輪安裝矩陣模型以及3個(gè)干擾模型。該實(shí)驗(yàn)中選擇了動(dòng)力學(xué)模型的3個(gè)輸出端口參數(shù)attitude_a[1]、attitude_a[2]、attitude_a[3]作為參考數(shù)據(jù),這3個(gè)參數(shù)分別代表了衛(wèi)星在X軸、Y軸、Z軸3個(gè)方向的姿態(tài)角。
通過(guò)比較圖1實(shí)驗(yàn)結(jié)果可以看出,解代數(shù)環(huán)的聯(lián)合仿真模型仿真結(jié)果和未進(jìn)行解代數(shù)環(huán)的聯(lián)合模型仿真結(jié)果明顯不同,經(jīng)過(guò)求解代數(shù)環(huán)的系統(tǒng)仿真過(guò)程更穩(wěn)定,仿真模型曲線(xiàn)更平滑,其所得結(jié)果也更精確。圖1仿真結(jié)果對(duì)比驗(yàn)證了該文所述的代數(shù)環(huán)檢測(cè)和求解算法的有效性。在未來(lái)面對(duì)多學(xué)科模型耦合的之間存在的代數(shù)環(huán)問(wèn)題提出了效果較好的解決方案。
4? 結(jié)語(yǔ)
隨著聯(lián)合仿真技術(shù)的快速發(fā)展,多學(xué)科之間的聯(lián)合仿真驗(yàn)證過(guò)程,已經(jīng)是開(kāi)發(fā)系統(tǒng)性工程的必經(jīng)之路。FMI聯(lián)合仿真標(biāo)準(zhǔn)定義了多學(xué)科聯(lián)合仿真的數(shù)據(jù)接口,打破了各學(xué)科仿真數(shù)據(jù)交互的壁壘。產(chǎn)品設(shè)計(jì)前的仿真可以有效降低產(chǎn)品開(kāi)發(fā)成本和風(fēng)險(xiǎn),同時(shí)可以促進(jìn)各個(gè)學(xué)科領(lǐng)域的融合,提升科研成果轉(zhuǎn)化為生產(chǎn)力的速度。
該文闡述代數(shù)環(huán)解析算法在該分布式FMI聯(lián)合仿真系統(tǒng)中的應(yīng)用實(shí)現(xiàn)過(guò)程,包括使用Tarjan算法進(jìn)行代數(shù)環(huán)的檢測(cè)、基于牛頓迭代法求解代數(shù)環(huán)的應(yīng)用。通過(guò)衛(wèi)星控制系統(tǒng)中相關(guān)仿真模型在系統(tǒng)中的仿真應(yīng)用,驗(yàn)證了該文所論述的代數(shù)環(huán)檢測(cè)和求解算法在分布式FMI仿真系統(tǒng)中的有效性和正確性。
參考文獻(xiàn)
[1] 姚逸程.基于FMI標(biāo)準(zhǔn)的動(dòng)力總成模型在環(huán)虛擬車(chē)輛仿真研究[D].浙江大學(xué),2017.
[2] 徐泰華.社交網(wǎng)絡(luò)中的子圖結(jié)構(gòu)挖掘研究[D].西南交通大學(xué),2019.
[3] 胡全義.基于鍵合圖的多領(lǐng)域統(tǒng)一建模與仿真技術(shù)研究[D].大連理工大學(xué),2017.
[4] 楊維維.非線(xiàn)性方程組的算法及其在張量特征值的應(yīng)用研究[D].南京航空航天大學(xué),2017.
[5] 任露,黃穎為.基于牛頓迭代法的分形圖像研究[J].西安理工大學(xué)學(xué)報(bào),2016(2):247.
[6] 武海妮.改進(jìn)的粒子群算法在求解非線(xiàn)性方程組中的應(yīng)用[D].延安大學(xué),2019.