張少應(yīng), 陳明哲
(1. 西安航空學(xué)院計(jì)算機(jī)學(xué)院, 陜西 西安 710077; 2. 西安電子工程研究所, 陜西 西安 710100)
在對舵機(jī)系統(tǒng)施加正弦激勵(lì)信號(hào),進(jìn)行頻率特性測試過程中,舵機(jī)指令的密度往往對測試結(jié)果起到了至關(guān)重要的作用。指令越密集,舵機(jī)位置反饋測試曲線越平滑,跟隨指令的實(shí)時(shí)性越好。反之,指令越稀疏,低頻時(shí)舵機(jī)系統(tǒng)的相位延遲越大,高頻時(shí)舵機(jī)位置反饋測試曲線的失真度越高。
為了適應(yīng)不同密度的舵機(jī)指令,保持舵機(jī)系統(tǒng)頻率特性測試數(shù)據(jù)的一致性,可以利用插值的方法對指令進(jìn)行插值計(jì)算[1]。插值法種類較多,包括拉格朗日多項(xiàng)式插值、分段線性插值及三次樣條插值[2]。在實(shí)際應(yīng)用中,往往要綜合考慮插值的精度、效率、運(yùn)算量等因素來選擇合適的插值方法。
本文采用拉格朗日(Lagrange)外插法估算舵機(jī)的位置指令,替代接收到的位置指令,通過增加指令點(diǎn)數(shù),注入更加平滑的位置參考輸入,從而改善系統(tǒng)的動(dòng)態(tài)響應(yīng)性能[3]。
根據(jù)給定的函數(shù)表構(gòu)造一個(gè)既能反映函數(shù)f(x)的特性,又便于計(jì)算的簡單函數(shù)p(x)來近似f(x),并使得p(xi)=f(xi),(i= 0,1,2,…,n),這就是插值法[4]。
Lagrange插值是n次多項(xiàng)式插值方法,可以給出一個(gè)恰好穿過二維平面上若干個(gè)已知點(diǎn)的多項(xiàng)式函數(shù)。
對某個(gè)多項(xiàng)式函數(shù),已知有給定的n+1個(gè)取值點(diǎn)為式(1)。
(x0,y0), (x1,y1),…, (xi,yi),…,(xn,yn)
(1)
其中,xi對應(yīng)著自變量的位置,而yi對應(yīng)著函數(shù)在這個(gè)位置的取值。
假設(shè)任意兩個(gè)不同的xi都互不相同,那么應(yīng)用Lagrange插值公式所得到的Lagrange插值多項(xiàng)式為式(2)。
(2)
其中,每個(gè)li(x)(i=0,1,2,…,n)為Lagrange基本多項(xiàng)式(或稱插值基函數(shù)),其表達(dá)式為式(3)。
(3)
當(dāng)n=1時(shí),Lagrange多項(xiàng)式插值為線性插值,表示為式(4)。
L1(x)=y0l0(x)+y1l1(x)
(4)
用通過兩點(diǎn)(x0,y0)、(x1,y1)的直線y=L1(x)來近似代替曲線y=f(x),其中插值基函數(shù)為式(5)、式(6)。
(5)
(6)
當(dāng)n=2時(shí),Lagrange項(xiàng)式插值為拋物線插值,表示為式(7)。
L2(x)=y0l0(x)+y1l1(x)+y2l2(x)
(7)
用通過三點(diǎn)(x0,y0)、(x1,y1)、(x2,y2)的拋物線y=L2(x)來近似代替曲線y=f(x),其中插值基函數(shù)為式(8)—式(10)。
(8)
(9)
(10)
插值包括內(nèi)插(Interpolate)和外推(Extrapolate)兩種算法。內(nèi)插算法:通過已知點(diǎn)的數(shù)據(jù)推求同一曲線上未知點(diǎn)數(shù)據(jù)。外推算法:通過已知曲線上的數(shù)據(jù),推求曲線之外區(qū)域的數(shù)據(jù)[5]。Lagrange插值公式內(nèi)插算法和外推算法都適用。
頻率特性測試時(shí),舵機(jī)系統(tǒng)指令的幅度為1°的離散正弦指令,即式(11)。
y=f(t)=1°sin(ωt)
(11)
其中,ω為角頻率,單位rad/s;指令間隔時(shí)間ΔT為5 ms。為提高指令密度,在每2個(gè)5 ms指令之間插入4個(gè)指令,將指令間隔時(shí)間ΔT縮小到1 ms。
為提高舵機(jī)指令的實(shí)時(shí)性,可采用外推算法對指令進(jìn)行預(yù)測,預(yù)測算法可以有效減小延遲影響[6]。根據(jù)已知的前幾個(gè)時(shí)刻的指令及當(dāng)前時(shí)刻的指令,分別用線性外推法和拋物線外推法來預(yù)測下一個(gè)5 ms內(nèi)的正弦指令變化趨勢。
(1) 線性外推
線性外推法是最簡單的預(yù)測法,根據(jù)已知兩點(diǎn)確定的直線來推斷事物未來的變化。設(shè)(x0,y0)、(x1,y1)分別為-5 ms、0 ms時(shí)刻的指令坐標(biāo),根據(jù)式(5)、式(6)計(jì)算直線的插值基函數(shù),為式(12)、式(13)。
(12)
(13)
根據(jù)式(4)得線性外推的指令計(jì)算式為式(14)。
(14)
(2) 拋物線外推
拋物線外推法根據(jù)已知3點(diǎn)確定的拋物線來推斷事物未來的變化。設(shè)(x0,y0)、(x1,y1)、(x2,y2)分別為-10 ms、-5 ms、0 ms時(shí)刻的指令坐標(biāo),根據(jù)式(8)—式(10)計(jì)算拋物線的插值基函數(shù),為式(15)—式(17)。
(15)
(16)
(17)
根據(jù)式(7)得拋物線外推的指令計(jì)算式為式(18)。
(18)
在式(14)、式(18)中,x為時(shí)間變量,單位ms,取值為0,1,2,3,4。
軟件中設(shè)置1 ms中斷定時(shí)器,用于插值計(jì)算。實(shí)現(xiàn)方法如下。
(1) 當(dāng)接收到新的舵機(jī)位置指令時(shí),將插值計(jì)數(shù)值清零,即x=0;并將當(dāng)前的新指令(0m時(shí)刻)作為掃頻指令;同時(shí)進(jìn)行指令迭代,更新并保存最近2次(線性外推法)或3次(拋物線外推法)的指令;
(2) 當(dāng)定時(shí)器中斷發(fā)生時(shí),插值計(jì)數(shù)值x加1,即當(dāng)x等于1,2,3或4時(shí),根據(jù)式(14)或式(18)計(jì)算插值后的指令,并將該指令作為本次的掃頻指令;
(3) 當(dāng)插值計(jì)數(shù)值x等于5時(shí),將計(jì)數(shù)值x清零,即x=0;
(4) 重復(fù)前面的步驟1—3,可實(shí)現(xiàn)指令插值。
在MATLAB/Simulink下,編寫用戶自定義的線性外推和拋物線外推函數(shù),對5 ms正弦掃頻指令進(jìn)行1 ms插值。1°,3 Hz離散正弦指令的插值仿真圖如圖1所示。1°,10 Hz離散正弦指令的插值仿真圖如圖2所示。
(a) 3 Hz線性插值
從圖1、圖2中可以看出,指令經(jīng)過插值曲線更加平滑;指令插值后正弦曲線的相位整體前移;指令頻率較低(3 Hz)時(shí),線性插值和拋物線插值效果一致,當(dāng)指令頻率較高(10 Hz)時(shí),拋物線插值的效果明顯優(yōu)于線性插值,因此高頻時(shí)優(yōu)選拋物線插值。
在Simulink下,保持某舵機(jī)系統(tǒng)所有控制參數(shù)不變的條件下,將拋物線插值后的指令作為正弦激勵(lì)信號(hào),對舵機(jī)系統(tǒng)的頻率特性進(jìn)行仿真。1°,3 Hz正弦指令插值前后舵機(jī)系統(tǒng)的動(dòng)態(tài)響應(yīng)情況,如圖3所示。
從圖3中可以看出,指令插值后,舵反饋信號(hào)跟隨指令信號(hào)的實(shí)時(shí)性更好;當(dāng)指令過零點(diǎn)時(shí),舵反饋信號(hào)過零點(diǎn)的時(shí)間在插值前是0.352 s,而在插值后是0.344 s,滯后時(shí)間減小了8 ms。
(a) 10 Hz線性插值
(a) 插值前頻率特性
針對某舵機(jī)系統(tǒng)頻率特性測試時(shí),低頻相位超差問題,在不改變系統(tǒng)物理特性的條件下,僅更改了控制軟件,對5 ms測試指令采取了1 ms拋物線插值處理。經(jīng)測試,舵機(jī)系統(tǒng)相位延遲明顯改善,測試結(jié)果如表1所示。
表1 頻率特性測試比對表
控制軟件增加插值后,對軟件進(jìn)行回歸測試,分別施加正弦、方波及三角波指令對舵機(jī)系統(tǒng)的功能及性能進(jìn)行測試。測試發(fā)現(xiàn):當(dāng)正弦指令的頻率大于10 Hz時(shí),指令插值對系統(tǒng)相移指標(biāo)沒有影響。因此,增加了指令插值的限定條件,僅當(dāng)指令變化不大于0.3°時(shí)進(jìn)行插值,這樣有效降低了高頻正弦指令在波峰和波谷處的失真度。
對舵機(jī)系統(tǒng)位置指令進(jìn)行外推插值細(xì)分,獲得在時(shí)間上更加密集的指令數(shù)據(jù),是減小舵機(jī)系統(tǒng)低頻相位延遲行之有效的方法。它不需要更改舵機(jī)系統(tǒng)的硬件,只需對軟件進(jìn)行局部更改,就能顯著提高系統(tǒng)的頻率特性。該方法具有計(jì)算簡單、易于工程實(shí)現(xiàn)的特點(diǎn),既可以有效消除系統(tǒng)的延遲,又不會(huì)因?yàn)樗惴ū旧淼膹?fù)雜性而產(chǎn)生新的系統(tǒng)延時(shí)。