蔣洋 楊建常
摘? 要:隨著現(xiàn)代科技的進(jìn)步與發(fā)展,計算機(jī)仿真的研究深度也在不斷擴(kuò)展,其復(fù)雜性也日益增加,采用的工程軟件越來越多、不同種類的工程數(shù)據(jù)格式也越來越多。此時FMI功能模擬接口標(biāo)準(zhǔn)的橫空出世,將不同軟件工具建立的仿真工程相互連接起來。在仿真過程中對模型間數(shù)據(jù)交互進(jìn)行分析,發(fā)現(xiàn)存在不同步長FMU模型數(shù)據(jù)交互情況,此時需要通過插值算法來減少結(jié)果誤差。該文通過牛頓插值法和三次樣條插值法進(jìn)行內(nèi)插實驗,對這兩種插值方法進(jìn)行比較,分析其適用性。
關(guān)鍵詞:FMI聯(lián)合仿真? ?數(shù)據(jù)交互? ?牛頓插值? ?三次樣條插值
中圖分類號:TP393.07? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A文章編號:1672-3791(2021)06(a)-0001-03
Analysis and Experiment of Interpolation Method in
Co-simulation Model
JIANG Yang1? ?YANG Jianchang2
(1.Shenyang Ligong University, Shenyang, Liaoning Province, 110159 China; 2.Unit 32683, Shenyang, Liaoning? Province, 110043? China)
Abstract: With the progress and development of modern science and technology, the research depth of computer simulation is also expanding, its complexity is also increasing, more and more engineering software and different types of engineering data formats are used. At this time, the FMI functional simulation interface standard was born, connecting the simulation projects established by different software tools. In the simulation process, the data interaction between models is analyzed, and it is found that there is FMU model data interaction with different steps. So interpolation algorithm is needed to reduce the result error. In this paper, Newton interpolation and Cubic spline interpolation method are used for interpolation experiments, the two interpolation methods are compared and their applicability is analyzed.
Key Words: FMI co-simulation; Data interaction; Cubic spline interpolation; Newton interpolation
隨著時代發(fā)展,建模與仿真技術(shù)越來越注重系統(tǒng)與模型的聯(lián)合開發(fā),在仿真上可實現(xiàn)多種學(xué)科的聯(lián)合應(yīng)用、多種仿真環(huán)境的集合以及多種仿真過程的結(jié)合[1]。除此之外,為使各模型間的數(shù)據(jù)可以正常傳輸處理,以及滿足不同模型的系統(tǒng)需求,需要通過標(biāo)準(zhǔn)的接口協(xié)議來對不同領(lǐng)域、不同層次的模型進(jìn)行集成處理。FMI功能模擬接口標(biāo)準(zhǔn)因此應(yīng)運而生[2]。然而在仿真過程中,不同步長的FMU模型間可能會出現(xiàn)數(shù)據(jù)丟失以及仿真結(jié)果不精確的問題[3]。這一問題可通過使用插值方法對仿真結(jié)果行優(yōu)化處理來解決。
該文主要描述針對仿真中牛頓插值法以及三次樣條插值法進(jìn)行內(nèi)插的分析與實驗,對這兩種常見的插值方法進(jìn)行比較,分析其適用性,得出結(jié)論。
1? 插值法
插值是指已知某函數(shù)的在若干離散點上的函數(shù)值,通過求解該函數(shù)中待定形式的插值函數(shù)以及待定系數(shù),在區(qū)間的其他點上用這特定函數(shù)的值作為函數(shù)f(x)的近似值。不同的插值方法求得多項式的方式不同。
1.1 牛頓插值法
牛頓插值法引入了差商的概念,大大減少了計算量,提高了計算精度[4]。同時,在添加或更新節(jié)點時,牛頓插值也具有承襲性,計算更為靈活[5]。已知函數(shù)f(x)在n+1個互不相同點處的函數(shù)取值為f(xi),高階差商與低階差商存在迭代關(guān)系。
f(x)在點xi,xj處的一階差商為:
xi,xj處的一階差商為
二階差商是一階差商的差商,f(x)在點xi,xj,xk處的二階差商為:
(2)
三階差商就是二階差商的差商,以此類推,f(x)在點x0,x1,…xn處的n階差商為:
(3)
牛頓插值法的基本表現(xiàn)形式為:
f(x)=f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-? ? ? ? ? x1)+…+f[x0,x1,…xn-1,xn](x-x0)(x-x1)…(x-xn-1)
(x-xn)(4)
1.2 三次樣條插值
有學(xué)者發(fā)現(xiàn)隨節(jié)點個數(shù)n的增加,多項式誤差不但沒減小,反而不斷增大。人們把這種節(jié)點加密但誤差增大的現(xiàn)象稱為Runge現(xiàn)象。該文的分段三次樣條插值就是克服Runge現(xiàn)象引入的一種插值方法[6]。
顧名思義,分段就是把整區(qū)間分成n個區(qū)間[(x0, x1), (x1, x2), …(xn-1, xn)],共有n+1個點,其中兩個端點x0=a, xn=b,三次樣條就是說每個小區(qū)間的曲線是一個三次方程,三次樣條方程滿足以下條件。
(1)在每個分段小區(qū)間[xi, xi+1]上,S(x)=Si(x)都是一個三次方程。
(2)滿足插值條件,即S(xi)=yi? (i=0, 1, 2, …, n)。
(3)曲線光滑,即S(x),S'(x),S''(x)連續(xù)。
則這個三次方程可以構(gòu)造成如下形式:
y=ai+bix+cix2+dix3(5)
這種形式下,稱這個方程為三次樣條函數(shù)[7]。
從公式(5)可以看出每個小區(qū)間有4個未知數(shù),有n個小區(qū)間,則有4n個未知數(shù),要解出這些未知數(shù),則需要4n個方程來求解。
首先,由于所有點必須滿足插值條件S(xi)=yi(i=0, 1, …, n),除了兩個端點,所有n-1個內(nèi)部點的每個點都滿足Si(xi+1)=yi+1,Si+1(xi+1)=yi+1前后兩個分段三次方程,則有2(n-1)個方程,再加上兩個端點分別滿足第一個和最后一個三次方程,則總共有2n個方程。
其次,n-1個內(nèi)部點的一階導(dǎo)數(shù)應(yīng)該是連續(xù)的,即在第i區(qū)間的末點和第i+1區(qū)間的起點是同一個點,它們的一階導(dǎo)數(shù)應(yīng)該也相等,即S'i(xi+1)= S'i+1(xi+1),則有n-1個方程。另外,內(nèi)部點的二階導(dǎo)數(shù)也要連續(xù),即S''i(xi+1)=S''i+1(xi+1),也有n-1個方程,現(xiàn)在總共有4n-2個方程了,還差兩個方程就可以解出所有未知數(shù)了,這兩個方程可通過邊界條件得到。
該文算法設(shè)計使用固定邊界條件(指定端點一階導(dǎo)數(shù)),這樣即構(gòu)造方程組解出所有未知數(shù)。
2? 基于python的仿真方法設(shè)計
2.1 牛頓插值法的設(shè)計流程
(1)輸入真實離散數(shù)值,插值點范圍及個數(shù)。
(2)調(diào)用函數(shù)獲取差商表。
(3)調(diào)用函數(shù)獲取差商表的對角線元素。
(4)設(shè)計newton函數(shù),輸出結(jié)果。
2.2 三次樣條插值法的設(shè)計流程
(1)輸入真實離散數(shù)值,插值點范圍及個數(shù)。
(2)計算步長,將數(shù)據(jù)節(jié)點和指定的首位端點條件帶入矩陣方程。
(3)解矩陣方程,計算樣條曲線的系數(shù)。
(4)在每個子區(qū)間創(chuàng)建方程,輸出結(jié)果。
3? 仿真結(jié)果與分析
分別對牛頓插值法和三次樣條插值法進(jìn)行實驗,得到結(jié)果見圖1。其中圖中小方塊點代表真實值,曲線為插值擬合曲線。
由實驗結(jié)果可看出,兩種插值方法得到的插值曲線較為接近,隨機(jī)取插值點得到的結(jié)果也誤差較小。但由于分段三次插值可以低代價獲得一階和二階導(dǎo)數(shù)的收斂性質(zhì),插值曲線更逼近真實曲線,因此當(dāng)插值節(jié)點較多的情況下,可優(yōu)先考慮三次樣條插值法。
4? 結(jié)語
隨著聯(lián)合仿真技術(shù)的飛速發(fā)展,工程人員在設(shè)計驗證相關(guān)產(chǎn)品時更方便快速。該文分析比較了牛頓插值法和三次樣條插值法的不同之處,對于仿真過程中不同步長的FMU模型間可能會出現(xiàn)仿真結(jié)果不精確的問題進(jìn)行優(yōu)化處理,具有一定的應(yīng)用價值。
參考文獻(xiàn)
[1] 羅茂春.基于FMI的航空發(fā)動機(jī)控制系統(tǒng)多學(xué)科聯(lián)合仿真[D].南京:南京航空航天大學(xué),2019.
[2] 樊卿.基于FMI的飛行器聯(lián)合仿真技術(shù)研究[D].成都:電子科技大學(xué),2018.
[3] 胡嘉悅,李廣文,章衛(wèi)國,等.面向有人/無人機(jī)協(xié)同遠(yuǎn)程作戰(zhàn)的IVMS架構(gòu)[J/OL].航空學(xué)報:1-12[2021-05-19].https://www.kns.cnki.net/kcms/detail/11.1929.V.20210326.1703.022.html.
[4] 李振昌.基于衛(wèi)星星歷的BDS衛(wèi)星軌道插值與擬合方法研究及精度分析[D].蘭州:蘭州交通大學(xué),2019.
[5] 楊偉.基于牛頓插值法的模擬信號采樣與重構(gòu)研究[D].蘭州:蘭州大學(xué),2017.
[6] 李文.移動機(jī)器人路徑規(guī)劃的改進(jìn)粒子群三次樣條插值算法[D].湘潭:湘潭大學(xué),2020.
[7] 魏媛.模糊三次樣條插值與模糊最小二乘逼近[D].蘭州:西北師范大學(xué),2020.