付軍泉, 史志偉, 陳 坤, 朱佳晨, 陳 杰, 董益章
(南京航空航天大學(xué) 航空宇航學(xué)院, 江蘇 南京 210016)
飛機在大迎角過失速機動飛行時,氣動力具有非定常和非線性的特性,而非線性、非定常氣動力的預(yù)測,對新一代戰(zhàn)斗機設(shè)計具有十分重要的意義。隨著人工智能技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)在非線性系統(tǒng)辨識中得到了一定應(yīng)用,如徑向基神經(jīng)網(wǎng)絡(luò)[1]、模糊神經(jīng)網(wǎng)絡(luò)[2]和自適應(yīng)神經(jīng)網(wǎng)絡(luò)[3]。但這些網(wǎng)絡(luò)本質(zhì)上都是前向的靜態(tài)網(wǎng)絡(luò),并不能很好的反映系統(tǒng)的動態(tài)特性。而循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有反饋結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),可以反映系統(tǒng)隨時間變化的動態(tài)特性,并且可以儲存信息。網(wǎng)絡(luò)的輸出不僅與當(dāng)前的網(wǎng)絡(luò)輸入和權(quán)值有關(guān),還與網(wǎng)絡(luò)之前的輸入有關(guān),從而可以表現(xiàn)出非線性系統(tǒng)的動態(tài)特性。循環(huán)神經(jīng)網(wǎng)絡(luò)在非線性系統(tǒng)辨識中已得到應(yīng)用[4-6],能夠?qū)Υ蟛糠址蔷€性系統(tǒng)進行建模,但找到一種權(quán)值修正的方法使其收斂到有效的模型仍是一個亟待解決的問題。
EKF算法具有較快的收斂速度,但是收斂精度
不高[7],已經(jīng)被用在循環(huán)神經(jīng)網(wǎng)絡(luò)[8],而實時遞歸學(xué)習(xí)算法[9]作為一種在線訓(xùn)練算法,對于樣本數(shù)據(jù)可以進行不斷的學(xué)習(xí),在每一時間節(jié)點都對網(wǎng)絡(luò)權(quán)值進行調(diào)整,對復(fù)雜非線性問題的處理具有一定優(yōu)勢,能更精確的模擬非線性系統(tǒng)的動態(tài)特性,但是其計算量大,訓(xùn)練速度較慢[10]。
本文采用循環(huán)神經(jīng)網(wǎng)絡(luò),結(jié)合EKF和實時遞歸學(xué)習(xí)算法的特點,提出一種基于EKF的實時遞歸學(xué)習(xí)算法,該算法既具有較快的收斂速度又具有較高的收斂精度, 十分適合于非線性動力學(xué)系統(tǒng)的辨識。文中給出了循環(huán)神經(jīng)網(wǎng)絡(luò)在應(yīng)用此學(xué)習(xí)算法下的仿真結(jié)果,驗證了本文所提算法的有效性。
本文中循環(huán)神經(jīng)網(wǎng)絡(luò)是一種全聯(lián)接的Elman網(wǎng)絡(luò)[11],一般由輸入層、隱含層、關(guān)聯(lián)層和輸出層組成,如圖1。
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The structure of RNN
第一層是輸入層,輸入層中的第i個節(jié)點的輸入為:
關(guān)聯(lián)層的輸入為隱含層上一時刻的輸出,輸出等于輸入,其第i個節(jié)點的輸入輸出分別為
第三層為輸出層,其第i個節(jié)點的輸入輸出分別為:
實時遞歸學(xué)習(xí)算法是一種基于梯度下降法的學(xué)習(xí)算法,屬于在線學(xué)習(xí),對k時刻的網(wǎng)絡(luò)誤差函數(shù)進行定義:
e(k)=yd(k)-y(k)(9)
yd(k)為k時刻的期望輸出,e(k)即為k時刻期望輸出與網(wǎng)絡(luò)實際輸出之間的誤差。則網(wǎng)絡(luò)權(quán)值修正的誤差梯度為:
ω可表示輸入層、隱含層和輸出層的權(quán)值。實時遞歸學(xué)習(xí)算法在每一時間節(jié)點都通過誤差梯度對網(wǎng)絡(luò)權(quán)值進行修正,是一種實時計算,計算量極大。本文引入擴展卡爾曼濾波計算網(wǎng)絡(luò)權(quán)值誤差協(xié)方差矩陣P,每次計算只保留卡爾曼增益K和誤差協(xié)方差矩陣P,用來對網(wǎng)絡(luò)權(quán)值進行修正,因此網(wǎng)絡(luò)的運行速度很快,可以很好的解決實時計算帶來的計算量大的問題。對網(wǎng)絡(luò)權(quán)值的變化由文獻[12]確定:
ω(k)=ω(k-1)+Δω(11)
ω(k)不僅與k時刻的期望值和網(wǎng)絡(luò)輸出值之間的誤差有關(guān),還與上一時刻的網(wǎng)絡(luò)權(quán)值有關(guān),其學(xué)習(xí)過程根據(jù)文獻[13]進行:
K(k)=P(k-1)HT(k)·
[H(k)P(k-1)HT(k)+R(k)]-1(12)
Δω=Ke(k)(13)
P(k)=P(k-1)-K(k)H(k)P(k-1)+Q(k)(14)
其中,Q(k)為網(wǎng)絡(luò)噪聲的協(xié)方差矩陣,R(k)為實驗噪聲的協(xié)方差矩陣。K時刻網(wǎng)絡(luò)權(quán)值的修正值Δω由此時的卡爾曼增益K(k)和誤差e(k)求得,接下來對該時刻的誤差協(xié)方差矩陣P(k)進行更新,以便用到對下一時刻的網(wǎng)絡(luò)權(quán)值的預(yù)測。由此不斷把誤差協(xié)方差矩陣進行遞歸,每一次運算都只保留上一時刻的P,如此自回歸運算下去,使得網(wǎng)絡(luò)運行速度快。H可由網(wǎng)絡(luò)誤差梯度確定。
對于輸出層:
隱含層:
同理,關(guān)聯(lián)層:
在EKF-RTRL學(xué)習(xí)算法中,網(wǎng)絡(luò)噪聲協(xié)方差矩陣Q(k)、實驗噪聲協(xié)方差矩陣R(k)、網(wǎng)絡(luò)權(quán)值誤差協(xié)方差矩陣初始值P(1)對算法收斂性是有影響的。根據(jù)參考文獻[14],初始方差矩陣P(1)對濾波效果影響很小,算法都能較快收斂,所以P(1)可以任意取一個不為零的矩陣,本文中P(1)取為單位對角陣。網(wǎng)絡(luò)噪聲協(xié)方差矩陣對結(jié)果誤差影響較大,隨著Q(K)增大而增大,變換較為顯著。所以網(wǎng)絡(luò)噪聲協(xié)方差矩陣的取值越小越好,可以使用一個很小但不為零的矩陣,本文取Q(K)=10-4×diag([1,1])。實驗噪聲協(xié)方差矩陣R(K)的取值變大或變小,效果不一定好,在計算時進行了多次的選值調(diào)整,使結(jié)果最好。
本文實驗動態(tài)機構(gòu)如圖2,由支撐機構(gòu)、振蕩機構(gòu)、運動控制機構(gòu)和數(shù)據(jù)采集系統(tǒng)組成。支撐機構(gòu)運動由計算機通過液壓傳動機構(gòu)控制,可按任意規(guī)律變化。該機構(gòu)可以實現(xiàn)偏航、滾轉(zhuǎn)以及偏航滾轉(zhuǎn)耦合運動。③和⑧分別是模型偏航角φ和滾轉(zhuǎn)角φ的角度編碼器??蓽y量模型運動的偏航角和滾轉(zhuǎn)角。模型迎角θ人工測量。
可得迎角α和側(cè)滑角β:
sinβ=sinθsinφcosφ+sinφcosφ(20)
該實驗在南京航空航天大學(xué)NH-2低速風(fēng)洞進行。
圖2 動態(tài)試驗機構(gòu)Fig.2 Dynamic testing mechanism
該神經(jīng)網(wǎng)絡(luò)的建模數(shù)據(jù)來自于某飛機模型支撐迎角為50°時,不同振動頻率下的大振幅動態(tài)實驗數(shù)據(jù),包括單自由度的偏航、滾轉(zhuǎn)運動和兩自由度的偏航滾轉(zhuǎn)耦合運動。其中單自由度偏航和兩自由度偏航滾轉(zhuǎn)耦合運動的動態(tài)實驗頻率為0.2、0.4、0.6、0.8,將0.2、0.4和0.8三組數(shù)據(jù)作為訓(xùn)練樣本進行建模,0.6頻率數(shù)據(jù)作為模型仿真驗證;單獨滾轉(zhuǎn)運動的動態(tài)實驗頻率為0.4、0.8、1.2、1.6,將0.4、0.8、1.6三組數(shù)據(jù)作為訓(xùn)練樣本進行建模,1.2頻率數(shù)據(jù)作為模型的仿真驗證。
本文實驗數(shù)據(jù)較多,數(shù)據(jù)跨度較大,各變量間的量級相差較大,為了使實驗數(shù)據(jù)跨度縮小,便于建模仿真,對實驗數(shù)據(jù)進行了歸一化處理,將其處理為[-1,1]之間的數(shù)據(jù),采用如下公式:
本文在運用循環(huán)神經(jīng)網(wǎng)絡(luò)對非定常氣動力建模時,將單自由度偏航、滾轉(zhuǎn)以及偏航滾轉(zhuǎn)耦合運動數(shù)據(jù)放在一起進行網(wǎng)絡(luò)訓(xùn)練,建立統(tǒng)一的模型,對于橫航向運動,主要考慮其滾轉(zhuǎn)力矩系數(shù)和偏航力矩系數(shù),具體模型為:
Mx=F(β,p,r,f),My=F(β,p,r,f),其中p為滾轉(zhuǎn)角速度,r為偏航角速度,f為振動頻率。
對于單自由度偏航運動,f=0.4的實驗數(shù)據(jù)在建模時已經(jīng)作為訓(xùn)練樣本使用,圖3是建模結(jié)束后,使用建立好的神經(jīng)網(wǎng)絡(luò)模型重新對此頻率數(shù)據(jù)進行仿真的結(jié)果。圖4是建模時未使用的f=0.6的實驗數(shù)據(jù)在此神經(jīng)網(wǎng)絡(luò)模型下的仿真預(yù)測結(jié)果。對于單自由度的滾轉(zhuǎn)運動,圖5、圖6為仿真結(jié)果與仿真預(yù)測結(jié)果同實驗結(jié)果的比較。對于兩自由度的偏航滾轉(zhuǎn)耦合運動,圖7、圖8為仿真結(jié)果與仿真預(yù)測結(jié)果同實驗結(jié)果的比較。
由以上各對比結(jié)果圖可以看出,不管是對訓(xùn)練時使用過的數(shù)據(jù)進行仿真,還是用訓(xùn)練時未使用過的數(shù)據(jù)進行仿真預(yù)測,其得到的偏航力矩系數(shù)和滾轉(zhuǎn)力矩
圖3 偏航運動仿真結(jié)果與實驗結(jié)果對比(f=0.4)Fig.3 The comparison between the simulation results and the testing results in yaw motion (f=0.4)
圖4 偏航運動仿真預(yù)測結(jié)果與實驗結(jié)果對比(f=0.6)Fig.4 The comparison between the simulation prediction results and the testing results in yaw motion (f=0.6)
圖5 滾轉(zhuǎn)運動仿真結(jié)果與實驗結(jié)果對比(f=0.8)Fig.5 The comparison between the simulation results and the testing results in roll motion (f=0.8)
系數(shù)與實驗所得的數(shù)據(jù)都幾乎重合,這充分證明了該神經(jīng)網(wǎng)絡(luò)模型在非定常氣動力建模上的可行性。
本文建模采用大振幅動態(tài)數(shù)據(jù),得到了很好的結(jié)果,為進一步驗證該神經(jīng)網(wǎng)絡(luò)模型適用性,將大振幅下建立好的模型運用到對小振幅數(shù)據(jù)的仿真預(yù)測。圖9、圖10分別是小振幅單獨偏航(f=0.4)、滾轉(zhuǎn)(f=0.8)運動的仿真預(yù)測結(jié)果和實驗結(jié)果的對比。
圖6 滾轉(zhuǎn)運動仿真預(yù)測結(jié)果與實驗結(jié)果對比(f=1.2)Fig.6 The comparison between the simulation prediction results and the testing results in roll motion (f=1.2)
圖7 偏航滾轉(zhuǎn)耦合運動仿真結(jié)果與實驗結(jié)果對比(f=0.4)Fig.7 The comparison between the simulation results and the testing results in yaw-roll motion (f=0.4)
圖8 偏航滾轉(zhuǎn)耦合運動仿真預(yù)測結(jié)果與實驗結(jié)果對比(f=0.6)Fig.8 The comparison between the simulation prediction results and the testing results in yaw-roll motion (f=0.6)
由圖9和圖10可以看出,小振幅下實驗結(jié)果和仿真預(yù)測結(jié)果的擬合程度較好,說明用大振幅數(shù)據(jù)建立的神經(jīng)網(wǎng)絡(luò)模型在小振幅情況下可以較好的適用。
圖9 小振幅偏航運動(f=0.4)Fig.9 Small-amplitude yaw motion(f=0.4)
圖10 小振幅滾轉(zhuǎn)運動(f=0.8)Fig.10 Small-amplitude roll motion(f=0.8)
以單自由度滾轉(zhuǎn)運動為例,對于相同的單自由度滾轉(zhuǎn)運動的實驗數(shù)據(jù),我們再采用文獻[2]中基于RTRL算法的循環(huán)神經(jīng)網(wǎng)絡(luò)對其滾轉(zhuǎn)力矩系數(shù)進行建模,模型訓(xùn)練次數(shù)與本文所提EKF-RTRL循環(huán)神經(jīng)網(wǎng)絡(luò)一樣。比較兩種算法在相同的訓(xùn)練次數(shù)下的擬合程度和誤差值。圖11是分別采用兩種算法時對滾轉(zhuǎn)力矩系數(shù)的仿真預(yù)測結(jié)果與實驗結(jié)果的比較,圖12是兩種算法的誤差曲線比較。
圖11 兩種算法仿真預(yù)測結(jié)果與實驗結(jié)果對比Fig.11 The comparison between the simulation results of two algorithms and the testing results
圖12 兩種算法的誤差曲線對比Fig.12 The error curves of two algorithms
由圖11可以看出,EKF-RTRL算法比RTRL算法的擬合程度更高,同時由圖12的誤差曲線可以看出,EKF-RTRL算法相對于RTRL算法,具有更快的收斂速度和更高的收斂精度,說明本文所提EKF-RTRL的循環(huán)神經(jīng)網(wǎng)絡(luò)模型在非定常氣動力建模上的有效性。
本文討論了循環(huán)神經(jīng)網(wǎng)絡(luò)在非定常氣動力建模中的應(yīng)用,結(jié)合擴展卡爾曼濾波與實時遞歸學(xué)習(xí)算法提出一種EKF-RTRL算法。利用飛機大迎角大振幅單自由度滾轉(zhuǎn)、偏航以及兩自由度滾轉(zhuǎn)偏航耦合運動實驗數(shù)據(jù)驗證了該循環(huán)神經(jīng)網(wǎng)絡(luò)模型在對一些非定常氣動力建模上的可行性。運用大振幅運動數(shù)據(jù)建立的神經(jīng)網(wǎng)絡(luò)模型在對小振幅運動進行仿真驗證時,也同樣具有較好的結(jié)果,表明該循環(huán)神經(jīng)網(wǎng)絡(luò)具有一定的適用性。而通過與RTRL算法的對比,說明其既具有RTRL算法收斂精度高的特點,又具備EKF收斂速度快的優(yōu)點,可以很好的應(yīng)用在飛機復(fù)雜機動的非定常氣動力建模上。