(西北工業(yè)大學(xué) 自動(dòng)化學(xué)院, 西安 710072)
飛機(jī)在飛行過程中,由于燃油消耗、武器投擲等因素影響,機(jī)體的重心和重量都會(huì)隨之發(fā)生變化。其變化程度直接影響到所設(shè)計(jì)控制律的控制性能,這一變化輕則使得飛機(jī)飛行品質(zhì)下降,重則使得飛機(jī)墜毀。例如,2013年美軍波音747貨機(jī)因軍車沒有固定好,使得重心改變,最終導(dǎo)致飛機(jī)墜毀;2010年,剛果飛機(jī)一架A330飛機(jī)因客艙出現(xiàn)鱷魚導(dǎo)致人員恐慌,最終飛機(jī)因失去平衡而墜毀。從以上空難實(shí)例能看出,飛機(jī)重心的變化對(duì)飛機(jī)飛行影響極為嚴(yán)重,因此要求控制工作者在設(shè)計(jì)飛機(jī)飛行控制律的過程中必須要考慮重心變化對(duì)飛機(jī)的影響。飛機(jī)在飛行時(shí)很難實(shí)時(shí)測(cè)量出飛機(jī)重心的變化,因此,飛機(jī)重心變化帶給飛機(jī)的不利影響通常情況下是由所設(shè)計(jì)控制律的魯棒性和自適應(yīng)能力來克服,可以通過提高控制律的魯棒性來進(jìn)一步減小飛機(jī)在飛行過程中重心對(duì)飛機(jī)造成的影響。
Backstepping是近年來發(fā)展起來的處理飛機(jī)非線性控制律設(shè)計(jì)的方法,可以很好進(jìn)行飛機(jī)參數(shù)不確定條件下的自適應(yīng)控制。其控制思想是采用代數(shù)運(yùn)算選擇反饋函數(shù)的方法來用期望的動(dòng)態(tài)去消除系統(tǒng)中不期望的動(dòng)態(tài)。由于Backstepping方法采用代數(shù)求逆的方式來消除模型中不期望動(dòng)態(tài),因此需要提前獲取被控對(duì)象精確的數(shù)學(xué)模型,針對(duì)飛機(jī)重心變化對(duì)模型參數(shù)的影響,需要原有Backstepping控制方法具有魯棒性或者自適應(yīng)能力,使得所設(shè)計(jì)的控制器達(dá)到期望性能的同時(shí)降低控制器對(duì)飛機(jī)模型的依賴。文獻(xiàn)[1-3]介紹了Backstepping在無人機(jī)上的應(yīng)用;文獻(xiàn)[4]介紹了帶神經(jīng)網(wǎng)絡(luò)Backstepping的控制方法在編隊(duì)飛行中的應(yīng)用;文獻(xiàn)[5]介紹了自適應(yīng)Backstepping在帶推力矢量發(fā)動(dòng)機(jī)的F16模型上的應(yīng)用;文獻(xiàn)[6]利用自適應(yīng)增量Backstepping通過消除對(duì)模型的依賴,從而解決高性能飛機(jī)上的不確定性問題;文獻(xiàn)[7]介紹了基于F18飛機(jī)的Backstepping控制方法的魯棒控制器設(shè)計(jì),主要為使用自適應(yīng)Backstepping設(shè)計(jì)控制律,然后使用魯棒控制分配方法進(jìn)行解算,并對(duì)比了魯棒控制分配與最小二乘控制分配。文獻(xiàn)[8]介紹了自適應(yīng)Backstepping在縱向通道的應(yīng)用。
考慮到飛機(jī)在飛行過程中燃油消耗、武器投擲等因素對(duì)飛機(jī)重心的影響,本文主要在Backstepping控制的基礎(chǔ)上,結(jié)合自適應(yīng)控制方法的思想,針對(duì)重心變化對(duì)飛機(jī)產(chǎn)生的建模誤差和干擾,完成自適應(yīng)Backstepping控制律的設(shè)計(jì),從而提高飛機(jī)飛行控制律的自適應(yīng)能力。
飛機(jī)角速率回路動(dòng)力學(xué)模型如下所示:
(1)
M=Ma+Mc
N=Na+Nc
(2)
(3)
其中:
(4)
式中,α、β分別為迎角、側(cè)滑角,CD、CY、CL分別為阻力系數(shù)、側(cè)力系數(shù)和升力系數(shù),CT、CC、CN分別為氣動(dòng)力在機(jī)體坐標(biāo)軸系下沿x、y、z軸上的分力系數(shù)。
對(duì)于F16飛機(jī),其縱向通道俯仰力矩M無法寫成仿射形式,例如Cm=f(α,β,δe),無法寫成Cm=f(α,β)δe,針對(duì)這類問題,本文使用牛頓迭代法來避開原本需要的仿射形式。
(5)
而對(duì)于縱向通道,用下式表示:
(6)
設(shè)gδe(δe)為:
gδe(δe)=Cm+Cz(xcgr-xcg)
(7)
u=[gδe(δe),δa,δr]T
(8)
可以將(1)改成成下面形式:
(9)
其中:
x=[p,q,r]T
(10)
u=[gδe(δe),δa,δr]T
(11)
f2(x)=
(12)
(13)
當(dāng)飛機(jī)重量或者重心發(fā)生變化的時(shí)候,影響到飛機(jī)的氣動(dòng)力矩系數(shù),可以在控制律設(shè)計(jì)中通過自適應(yīng)估計(jì)完成對(duì)參數(shù)擾動(dòng)的消除。
Backstepping方法是一種通過Lyapunov穩(wěn)定性理論反推出控制律的一種方法。該方法在非線性系統(tǒng)中有著獨(dú)特的優(yōu)勢(shì),能夠保證系統(tǒng)的穩(wěn)定性,同時(shí)系統(tǒng)的性能也十分優(yōu)秀。但缺點(diǎn)是,第一,backstepping方法需要知道被控對(duì)象的精確的運(yùn)動(dòng)模型;第二backstepping在通常情況下需要系統(tǒng)可以寫成仿射形式。本文通過設(shè)計(jì)了系統(tǒng)建模誤差的自適應(yīng)律,同時(shí)使用牛頓迭代法求解控制律來規(guī)避了上述的兩個(gè)缺點(diǎn)。
常規(guī)Backstepping控制律對(duì)模型的精度有比較高的要求。然而實(shí)際情況中,重量或者重心位置變化時(shí)會(huì)產(chǎn)生偏差,這些偏差累積起來可能會(huì)對(duì)飛機(jī)模型產(chǎn)生較大的偏差,進(jìn)而會(huì)影響到系統(tǒng)的動(dòng)態(tài)性能,甚至導(dǎo)致系統(tǒng)發(fā)散。
自適應(yīng)Backstepping控制律在設(shè)計(jì)過程中,就已經(jīng)考慮到了系統(tǒng)模型的偏差,通過自適應(yīng)律對(duì)這些偏差進(jìn)行估計(jì),并修正控制律,以達(dá)到減小這些建模誤差帶來的影響。
首先由重心位置變化引起的模型的不確定誤差對(duì)原模型(9)進(jìn)行修正得:
(14)
其中:δ(t)為各個(gè)干擾和建模誤差的總和,包含重心變化導(dǎo)致的模型不確定引起的誤差和外界干擾等。
首先可設(shè):
(15)
其中:xref為歐拉角速率的指令信號(hào),則可以設(shè)Lyapunov函數(shù)為:
(16)
則可以看出該Lyapunov函數(shù)滿足V≥0,兩邊求導(dǎo)得:
(17)
將(14)帶入上式得:
(18)
要想系統(tǒng)穩(wěn)定,則需要使Lyapunov函數(shù)的導(dǎo)數(shù)小于0,則可以設(shè)K為對(duì)角陣,且對(duì)角線上的每個(gè)元素都大于0,使得下式成立:
(19)
(20)
(21)
(22)
其中:Γ為3×3對(duì)角陣,且各元素大于零,為自適應(yīng)律增益系數(shù),Γ每個(gè)元素越大,相應(yīng)通道的自適應(yīng)律跟蹤得越快。
將(22)對(duì)時(shí)間求導(dǎo)得:
(23)
(24)
通過前面控制律和自適應(yīng)律設(shè)計(jì)過程,可以總結(jié)成下面框圖。
圖1 角速率自適應(yīng)Backstepping控制結(jié)構(gòu)框圖
由(20)可知控制律中有指令信號(hào)的導(dǎo)數(shù)這一項(xiàng)。在指令的導(dǎo)數(shù)在某時(shí)刻很大時(shí),比如階躍信號(hào),會(huì)導(dǎo)致此時(shí)的控制律解算溢出,進(jìn)而影響系統(tǒng)的穩(wěn)定性。因此通常在指令信號(hào)后加一個(gè)臨界阻尼的二階濾波器。這里我們可以取阻尼比為1,無阻尼自然頻率為5 rad/s,濾波器傳遞函數(shù)為:
(25)
對(duì)于解一元函數(shù)的數(shù)值解的方法有牛頓迭代法,割線法[9],二分法等,其中這些方法有著各自的優(yōu)勢(shì)和局限性。對(duì)于割線法,在一定程度上可視為牛頓迭代的弱化版,收斂條件和牛頓法相同,但收斂速度會(huì)比牛頓法要弱;牛頓法在收斂速度上比其他方法更快,在精度上,比重新對(duì)氣動(dòng)插值的精度更高。牛頓法在解算過程中基本上一到兩次迭代就能夠達(dá)到精度要求,而且牛頓法中導(dǎo)數(shù)可以用差分近似代替,因此運(yùn)算量較小。
由式(8)和式(20)可以看出,在滾轉(zhuǎn)和偏航通道上,控制律解算出的結(jié)果是舵面輸入;在俯仰通道上,控制律解算的結(jié)果還不是最終的舵面輸入,而是關(guān)于升降舵輸入δe的一個(gè)函數(shù)gδe(δe),其定義由(7)給出。因此需要解一元方程,求出δe。下面給出牛頓迭代法的算法過程。
首先直接給出牛頓迭代法的基本公式:
(26)
因?yàn)榕nD迭代法是求解f(x)的零解,因此設(shè)f(x)=-u(1)+gδe(δe),自變量x為δe。
1)給定迭代初值δe0,即飛機(jī)上一時(shí)刻升降舵偏轉(zhuǎn)角度。根據(jù)(7)中對(duì)gδe(δe)的定義,設(shè)f(δe)=-u(1)+Cm+Cz(xcgr-xcg),并計(jì)算出f(δe0)。
2)判斷f(δei)<ε,i=0,1,…是否成立,其中ε表示精度,比如0.000 000 1。如果不等式成立,則ui為所得解,如果不成立,進(jìn)行3)。
仿真驗(yàn)證中,飛機(jī)高度為3 000 m,速度為150 m/s,給到的每個(gè)角速率指令信號(hào)具體如下:
(27)
其中:ph=3,pl=-3,qh=3,ql=-3,rh=1,rl=-1,單位°/s,并且指令信號(hào)經(jīng)過一個(gè)二階的指令濾波器。取控制器增益K=diag(10,10,10),自適應(yīng)律增益為Γ=diag(20,20,20),仿真結(jié)果如下。
在正常條件下仿真的重心位置保持不變,仿真結(jié)果如圖2~5。
圖2 正常情況下常規(guī)Backstepping與自適應(yīng)Backstepping滾轉(zhuǎn)角速率比較
圖3 正常情況下常規(guī)Backstepping與自適應(yīng)Backstepping俯仰角速率比較
圖4 正常情況下常規(guī)Backstepping與自適應(yīng)Backstepping偏航角速率比較
圖5 正常情況下常規(guī)Backstepping與自適應(yīng)Backstepping舵面輸出比較
從仿真結(jié)果可以看出,在正常情況下,常規(guī)Backstepping與自適應(yīng)Backstepping的動(dòng)態(tài)性能性能和穩(wěn)態(tài)性能都十分良好。兩種控制律的舵面輸出量也基本一致。
4.2.1 重心突變時(shí)
對(duì)于特定的飛機(jī),在飛行過程中會(huì)投擲彈藥或空投等負(fù)載,這樣會(huì)導(dǎo)致重心發(fā)生突變,在這一條件下,我們?cè)趖≥3時(shí),將模型重心位置加一個(gè)階躍信號(hào),仿真結(jié)果如圖6~9。
圖6 重心突變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping滾轉(zhuǎn)角速率比較
圖7 重心突變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping俯仰角速率比較
圖8 重心突變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping偏航角速率比較
圖9 重心突變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping舵面輸出比較
在重心突變時(shí),仿真這里只改變重心縱向的位置,因此滾轉(zhuǎn)通道影響較小,偏航通道有一定的影響,俯仰通道影響最大。
從仿真結(jié)果可看出,對(duì)于常規(guī)Backstepping,滾轉(zhuǎn)角速率表現(xiàn)良好,而俯仰和偏航角速率已經(jīng)不能穩(wěn)定了;對(duì)于自適應(yīng)Backstepping,滾轉(zhuǎn)角速率性能更好,而且俯仰角速率和升降舵在重心剛變化時(shí),會(huì)有一定的偏差,后面很快穩(wěn)定下來。兩種控制律解算的舵面輸出量也存在一定的偏差。由此可得出結(jié)論:自適應(yīng)backstepping在解算過程中考慮了建模誤差,并實(shí)時(shí)估計(jì)這類誤差,因此在模型發(fā)生突變時(shí),能夠在后面的解算中抵消這類干擾,使得系統(tǒng)穩(wěn)定。
4.2.2 重心漸變時(shí)
在飛行過程中,油耗會(huì)導(dǎo)致重心有一個(gè)緩慢的變化過程[10],在這一過程中,我們?cè)趖≥3時(shí),將模型重心位置加一個(gè)斜坡信號(hào),仿真結(jié)果如圖10~13。
圖10 重心漸變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping滾轉(zhuǎn)角速率比較
圖11 重心漸變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping俯仰角速率比較
圖12 重心漸變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping偏航角速率比較
圖13 重心漸變時(shí)常規(guī)Backstepping與自適應(yīng)Backstepping舵面輸出比較
在重心漸變時(shí),仿真這里只改變重心縱向的位置,因此滾轉(zhuǎn)通道影響較小,偏航通道有一定的影響,俯仰通道影響最大。
從仿真結(jié)果可看出,即使是重心變化是漸變過程,常規(guī)backstepping仍然會(huì)受到模型不準(zhǔn)確帶來的影響,而自適應(yīng)backstepping中,三軸角速率都能很好的跟蹤上指令信號(hào)。兩種控制律的舵面輸出也存在較大的差異。
由以上3種仿真可以得出結(jié)論:
1)常規(guī)backstepping在模型很精確時(shí),有著很好的性能。但是模型不準(zhǔn)確后,性能表現(xiàn)較差。
2)自適應(yīng)backstepping不管是在理想情況下,還是有各種干擾情況下,性能表現(xiàn)都比常規(guī)方法更好。
本文針對(duì)于重心變化對(duì)飛機(jī)模型的影響,設(shè)計(jì)了自適應(yīng)Backstepping控制律。在解算的過程中,首先根據(jù)李雅普諾夫穩(wěn)定性設(shè)計(jì)出控制律構(gòu)型,同時(shí)對(duì)模型中的建模誤差進(jìn)行自適應(yīng)估計(jì);然后設(shè)計(jì)了指令濾波器來解決控制律中指令微分項(xiàng)的問題;最后由于系統(tǒng)方程在縱向?yàn)榉欠律湫问?,本文使用牛頓迭代法求得其數(shù)值解。
從仿真結(jié)果可以看出,在通常情況下,自適應(yīng)Backstepping和常規(guī)Backstepping的效果近乎一樣,二者的仿真效果良好;在重心發(fā)生變化時(shí),自適應(yīng)Backstepping的優(yōu)勢(shì)明顯。常規(guī)Backstepping在模型出錯(cuò)的情況下,俯仰和偏航通道都不穩(wěn)定,自適應(yīng)Backstepping則會(huì)實(shí)時(shí)估計(jì)建模誤差,并對(duì)控制律進(jìn)行補(bǔ)償,使得結(jié)果能夠很好的跟蹤上模型誤差并加以抵消,有很強(qiáng)的抗干擾能力。仿真結(jié)果表明自適應(yīng)Backstepping具有良好的魯棒性能[11]。