薛 山, 李琳琳,2*, 喬 梁,2, 丁夢龍
1. 北京科技大學自動化學院, 北京 100083
2. 工業(yè)過程知識自動化教育部重點實驗室, 北京 100083
近年來,隨著集成電子技術(shù)和自動控制技術(shù)的發(fā)展,無人機技術(shù)已成為一種有效的主流應(yīng)用工具.無人機在搜索、救援、遙感、地理研究以及各種軍事和安全應(yīng)用等任務(wù)中發(fā)揮著重要的作用.目前,固定翼和多旋翼無人機是最受關(guān)注的類型.與固定翼不同,多旋翼無人機可以實現(xiàn)垂直起降和懸停,非常方便監(jiān)視、精準農(nóng)業(yè)、電力線路自動監(jiān)測和交付等應(yīng)用[1].本文主要研究四旋翼無人機的故障檢測問題.由于控制器失效、零部件磨損或其他原因,無人機可能發(fā)生故障,導致無法準確完成任務(wù).因此,需要及時對無人機進行故障檢測.
針對四旋翼無人機的非線性系統(tǒng),提出了基于性能驅(qū)動的故障檢測方法.其中,性能指標的設(shè)計是基于性能的故障檢測方法的核心部分.目前已經(jīng)出現(xiàn)了許多種設(shè)計性能指標的方法.例如文獻[2]中提出的Harris指標,文獻[3]提出的線性二次高斯(LQG)基準.隨著數(shù)據(jù)處理能力的不斷提高,涌現(xiàn)出了越來越多的基于性能的數(shù)據(jù)驅(qū)動故障檢測方法,例如基于數(shù)據(jù)融合、基于張量空間和基于迭代學習等方法[4-7].目前,基于數(shù)據(jù)驅(qū)動的方法已經(jīng)成為主流.然而,數(shù)據(jù)驅(qū)動的方法需要大量的數(shù)據(jù),當四旋翼無人機到達一個新的重力場時,會使得無人機的數(shù)據(jù)分布相比于之前的數(shù)據(jù)分布發(fā)生了變化.因此,現(xiàn)有的故障檢測系統(tǒng)可能無法直接使用,重新收集足夠的數(shù)據(jù)耗時耗力,從而使得在此新重力場下無人機的故障檢測面臨著數(shù)據(jù)稀缺的問題.
遷移學習是機器學習的一個分支,旨在通過一個或多個相關(guān)但不同的應(yīng)用場景中學習共同的知識,來幫助提高目標領(lǐng)域的性能,這已經(jīng)被證明是解決上述問題的有效方法[8].遷移學習在故障檢測和診斷領(lǐng)域也受到了廣泛的關(guān)注.文獻[9]通過保留和重用存儲在神經(jīng)網(wǎng)絡(luò)中的先前知識,提出了一種用于監(jiān)測動態(tài)系統(tǒng)中傳感器故障的遷移學習方法.文獻[10]通過遷移學習自適應(yīng)方法對基于殘差網(wǎng)絡(luò)的故障診斷模型進行參數(shù)重調(diào),實現(xiàn)了當前在軌的航天器故障診斷.
根據(jù)前面所述背景,提出了一種基于遷移學習的非線性四旋翼無人機性能驅(qū)動的故障檢測方法,首先通過神經(jīng)網(wǎng)絡(luò)擬合無人機性能評價函數(shù),結(jié)合Bellman方程以殘差的形式設(shè)計檢測指標.針對無人機在新的重力場中數(shù)據(jù)不足的問題將源域神經(jīng)網(wǎng)絡(luò)中的淺層知識遷移到目標域中.最后,源域數(shù)據(jù)通過布雷格曼散度在子空間中對齊目標域數(shù)據(jù),再通過神經(jīng)網(wǎng)絡(luò)將其反映射到目標域中,并得到檢測的閾值,最終實現(xiàn)了無人機的故障檢測.本文所提出基于遷移學習的性能驅(qū)動的故障檢測方法與其他方法不同,本文方法專注與任何引起系統(tǒng)性能下降的故障,而后者更多專注于一類故障,同時,通過神經(jīng)網(wǎng)絡(luò)的擬合來完成故障檢測,與基于模型的故障檢測方法相比,本文方法無需知道任何的系統(tǒng)動力學知識.考慮數(shù)據(jù)不足到的問題引入遷移學習,在數(shù)據(jù)對齊時與其他遷移學習中常用的MMD距離不同,所采用的布雷格曼散度是一種非線性的度量方式,避免了使用MMD距離可能會出現(xiàn)的樣本外的問題,另外,在遷移學習中我們不僅僅只關(guān)注于域之間的差異,也考慮到了域中數(shù)據(jù)間的聯(lián)系,通過構(gòu)造最近鄰圖來保證遷移后數(shù)據(jù)之間依然保持有相似信息.
四旋翼無人機顧名思義有4個旋轉(zhuǎn)翼,呈十字形分布,四旋翼無人機的中心在其幾何中心上,結(jié)構(gòu)如圖1所示.
圖1 四旋翼無人機結(jié)構(gòu)圖Fig.1 Structure diagram of quadrotor Unmanned Aerial Vehicle(UAV)
獲得無人機的數(shù)學模型首先要建立兩個基本坐標系,地理坐標系(OEXEYEZE)和機身坐標系 (OBXBYBZB),如圖2所示.
圖2 四旋翼無人機坐標系示意圖Fig.2 Quadrotor UAV coordinate system diagram
為了確定無人機的姿態(tài),定義俯仰角θ、橫滾角φ以及偏航角ψ3個歐拉角.
從地理坐標系到機體坐標系的旋轉(zhuǎn)矩陣為T,如式(1)所示
(1)
其中,T12=sinθsinφcosψ-sinψcosφ,
T13=sinψsinφ-sinθcosφcosψ,
T22=sinθsinφsinψ+cosφcosψ,
T23=sinθsinψcosφ-sinφcosψ.
無人機的所有動力由4個旋翼上的電機產(chǎn)生,每個電機產(chǎn)生向上的力,升力的大小與旋翼旋轉(zhuǎn)角速度成正比,各升力扭矩的大小如式(2)所示
(2)
式中,kt為升力系數(shù),kd為扭力系數(shù),ωi為4個旋翼的旋轉(zhuǎn)速度,U1為垂直方向輸入量,U2為橫滾控制輸入量,U3為俯仰控制輸入量,U4為偏航控制輸入量.
根據(jù)牛頓-歐拉公式,假設(shè)四旋翼無人機處于懸?;驘o風環(huán)境下小角度飛行,可以得出無人機的動態(tài)方程為
(3)
式中,g為重力加速度,m為四旋翼無人機的質(zhì)量,JX、JY和JZ分別是四旋翼無人機繞X軸、Y軸和Z軸的轉(zhuǎn)動慣量.
遷移學習是機器學習的一個分支,它屬于一種學習范式.該方法應(yīng)用于兩個或多個不同但相似的領(lǐng)域,其側(cè)重點在于如何遷移或重用之前已經(jīng)學習到的知識來處理新任務(wù).而遷移學習的成功實現(xiàn)則少不了神經(jīng)網(wǎng)絡(luò)的應(yīng)用.
遷移學習的應(yīng)用大多離不開神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)是一個多層的結(jié)構(gòu),它較淺的層提取低級別的特征,而較深的層可以學習特定于不同應(yīng)用領(lǐng)域更為抽象的表示[11],根據(jù)這個特點,神經(jīng)網(wǎng)絡(luò)淺層提取到的較低層次的知識可以進行遷移,只需要在目標域中學習較高層次的知識,從而提高所需模型的性能.另外,通過一種分布度量來衡量源域與目標域的相似性,找到一種映射使得映射到子空間的源域與目標域的分布接近于相同,從而借助子空間來完成目標域的相關(guān)任務(wù)[12-13].
由于使四旋翼無人機到達執(zhí)行任務(wù)的空間位置是通過旋翼旋轉(zhuǎn)產(chǎn)生推力完成的,而旋翼的旋轉(zhuǎn)產(chǎn)生的推力受無人機所處重力場的影響.當無人機到一個新的重力場執(zhí)行任務(wù)時,無人機的故障檢測面臨著數(shù)據(jù)不足的問題,因此,本文利用遷移學習實現(xiàn)無人機在新的重力場的故障檢測.
選擇四旋翼無人機的狀態(tài)變量、輸出和輸入分別為
(4)
四旋翼無人機的動態(tài)方程如等式(4)所示,它是一個具有強耦合、非線性的特點的系統(tǒng),也是一個靈敏度非常高的系統(tǒng),這就要求當無人機發(fā)生故障時需要及時的檢測出來,通常采用系統(tǒng)的輸入輸出構(gòu)成的函數(shù)作為一個系統(tǒng)的性能評價函數(shù)
(5)
式中,l為衰減因子,π(ui,yi)≥0表示為獎勵函數(shù),定義為系統(tǒng)輸入輸出信號的二次型的形式,如下所示:
(6)
式中,Q和R為正定矩陣.
顯然,對于每個可允許的控制策略,都會有對應(yīng)的性能評價函數(shù)(5)從應(yīng)用的角度來說,保證系統(tǒng)運行以實現(xiàn)所需的性能是至關(guān)重要的,在實際中,過程操作和系統(tǒng)參數(shù)的變化,以及系統(tǒng)組件的老化,執(zhí)行器傳感器故障都會導致系統(tǒng)發(fā)生故障,進而可能改變評價函數(shù)(5)的值,因此采用上述評價函數(shù)通過性能實現(xiàn)無人機的故障檢測是合理的.
眾所周知,對于給定的反饋控制策略.在無故障情況下的性能評價函數(shù)滿足以下Bellman方程:
?(xk)=π(ui,yi)+l?(xk+1)
(7)
通常,四旋翼無人機系統(tǒng)的值函數(shù)包含高階非線性,為了通過評估性能來進行故障檢測,通常會用存在一組稠密基函數(shù)的Weierstrass高階近似定理來逼近值函數(shù)[13],如下所示:
(8)
其中,Φ(xk)=[φ1(xk)φ2(xk) …φL(xk)]表示基向量,N=[ν1ν2…νL]表示權(quán)重系數(shù)矩陣,誤差ε(xk)隨著保留項L趨于無窮而趨于0.事實上,性能指標(8)是單層神經(jīng)結(jié)構(gòu),然而在神經(jīng)網(wǎng)絡(luò)的研究中,淺層神經(jīng)網(wǎng)絡(luò)的神經(jīng)元需要指數(shù)式的增長才有可能達到深層神經(jīng)網(wǎng)絡(luò)的擬合效果[11].同時在文獻[15]中實現(xiàn)了以系統(tǒng)的I/O數(shù)據(jù)為輸入而不是傳統(tǒng)的以系統(tǒng)的狀態(tài)為輸入的方法來計算值函數(shù).因此在基于性能驅(qū)動的故障檢測中的近似函數(shù)被一個以系統(tǒng)I/O數(shù)據(jù)為輸入的深層神經(jīng)網(wǎng)絡(luò)來代替.當無人機出現(xiàn)故障時,Bellman等式(7)不再成立,因此,根據(jù)這個特點,出于檢測的目的在時刻k處定義基于性能驅(qū)動的故障檢測指標
κ(k)=|Λ(zk)-π(uk,yk)-lΛ(zk+1)|
(9)
其中,zk=[ukyk]T表示四旋翼無人機系統(tǒng)的輸入輸出數(shù)據(jù), Λ(·)表示神經(jīng)網(wǎng)絡(luò).明顯可以看出系統(tǒng)任何的變化都會引起檢測指標(10)的變化,由此執(zhí)行以下檢測邏輯
(10)
其中,δ>0為檢測指標的容忍閾值,故障檢測可以通過式(9)和(10)來執(zhí)行.對于故障檢測指標中所采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
圖3 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Neural network structure diagram
圖3中,x為神經(jīng)網(wǎng)絡(luò)的輸入,w為權(quán)重系數(shù),n為當前神經(jīng)元激活前的輸出,s為神經(jīng)元的數(shù)量,a為當前神經(jīng)元激活后的輸出,y為神經(jīng)網(wǎng)絡(luò)的輸出.在神經(jīng)網(wǎng)絡(luò)中,選擇均方誤差作為損失函數(shù),雙曲正切函數(shù)作為激活函數(shù),雙曲正切函數(shù)是在sigmoid函數(shù)上改良而來的,有著比sigmoid導數(shù)更容易計算,求最優(yōu)解更迅速等優(yōu)點[16].最后通過反向傳播更新神經(jīng)網(wǎng)絡(luò)的權(quán)重系數(shù),以最右側(cè)路徑為例,從輸出層到輸入層的每一層神經(jīng)元的權(quán)重系數(shù)更新規(guī)則如下:
(11)
(12)
(13)
(14)
(15)
其中,?表示真實的值函數(shù),每個字母上標表示神經(jīng)網(wǎng)絡(luò)層的索引,下標為所在層的神經(jīng)元索引,γ表示學習率.經(jīng)過對神經(jīng)網(wǎng)絡(luò)的訓練和更新,可以通過無人機系統(tǒng)的輸入輸出數(shù)據(jù)實現(xiàn)無故障情況下的值函數(shù)擬合.
基于模型的方法是遷移學習中最常用的方法.它側(cè)重于假設(shè)源域和目標域之間在模型層面共享一些共同知識,并通過從源域遷移這些共享知識到目標域中,從而提高目標域模型的性能[17].在神經(jīng)網(wǎng)絡(luò)中,淺層網(wǎng)絡(luò)提取到的知識更為一般,而越深層提取到的知識越為特殊.一般來說,神經(jīng)網(wǎng)絡(luò)可以劃分為3部分:第1部分提取的特征通常非常一般,第2部分包含了一般的特征以及獨有的特征,第3部分提取的特征是本領(lǐng)域獨有的特征.因此,將第1部分的參數(shù)凍結(jié),并與第2部分的參數(shù)遷移到目標域中的模型中,第2部分的參數(shù)再進行微調(diào),而目標域中的第3部分則需要重新訓練.遷移過程如圖4所示.
圖4 神經(jīng)網(wǎng)絡(luò)遷移過程圖Fig.4 Neural network transfer process diagram
通過式(10),可以看出對無人機的故障檢測關(guān)鍵在于設(shè)置一個合理的閾值.將這個閾值定義為檢測指標的最大值.然而,在目標域中,數(shù)據(jù)稀缺,僅僅通過目標域訓練出的閾值不具有說服力.因此,采用遷移子空間的方式,將源域與目標域在子空間中對齊,然后將子空間中的數(shù)據(jù)反映射回目標域,從而最終獲得閾值.定義的閾值如等式(16)所示
(16)
為了在子空間中對齊源域和目標域的數(shù)據(jù)樣本,需要一個距離度量來衡量兩個域之間的差異.在本文中,采用布雷格曼散度作為子空間中Ys和Yt的距離度量,如式(17)所示
(17)
其中,GΣ表示高斯核,對于布雷格曼散度具體推導可以參考文獻[18].目標是通過映射矩陣Pt,Ps使子空間中源域與目標域的布雷格曼散度最小.
在將數(shù)據(jù)映射到子空間時,為了保證數(shù)據(jù)之間的局部相似信息不被丟失,引入拉普拉斯正則化項[19],通過構(gòu)造最近鄰圖來表示單個域中兩點zi和zj之間的相似性,從數(shù)學的角度,該公式可以表示為
(18)
其中,Wij表示數(shù)據(jù)點zi與zj之間相似性的鄰接矩陣,可以通過等式(18)計算,式中Nk(zi)、Nk(zj)分別表示zi和zj的k近鄰集合,t一般取為均方距離
(19)
在將數(shù)據(jù)映射到自己空間時,需要提高單個域中點之間的相似性,可以通過最小化公式(18)來實現(xiàn),優(yōu)化函數(shù)可以寫為
(20)
式中,L為拉普拉斯矩陣,可以通過L=G-W計算,其中Gij為度矩陣,通過式(21)計算
(21)
通過最小化布雷格曼散度使兩個域之間的分布接近,同時最小化拉普拉斯矩陣來保持數(shù)據(jù)之間的局部相似性,為了保證映射矩陣不為零矩陣,需要對兩個映射矩陣施加正則化約束,那么最終的的優(yōu)化函數(shù)為
(22)
(23)
(24)
最后,通過梯度下降來求解兩個映射矩陣Ps和Pt,即
(25)
(26)
獲得閾值后,使用檢測邏輯(10)對到達新重力場的無人機進行故障檢測.提出的基于遷移學習的四旋翼無人機性能驅(qū)動的故障檢測方法的步驟如算法1所示.
在本章中,通過四旋翼無人機在到達一個新的重力場下設(shè)置兩種故障來驗證提出方法的有效性.
對于四旋翼無人機狀態(tài)方程如第1章節(jié)中式(3)所示,其中四旋翼無人機的輸入為u=[U1U2U3U4],輸出為y=[XYZ],四旋翼無人機的各個參數(shù)值如表1所示。
本文中四旋翼無人機的控制器采用文獻[20]中的PID控制器,并將采樣時間設(shè)置為0.02 s.通過算法1實現(xiàn)對無人機到達新的重力場的故障檢測時,需要在一個低維子空間中對齊源域數(shù)據(jù)和目標域數(shù)據(jù).選擇一個三維子空間,在該空間中歸一化后的源域數(shù)據(jù)與目標域數(shù)據(jù)的分布如圖5所示.
圖5 子空間數(shù)據(jù)分布圖Fig.5 Subspace data distribution diagram
在神經(jīng)網(wǎng)絡(luò)的梯度下降訓練中,算法1步驟2神經(jīng)網(wǎng)絡(luò)的訓練遷移與不遷移神經(jīng)網(wǎng)絡(luò)損失函數(shù)對比如圖6所示,遷移學習后神經(jīng)網(wǎng)絡(luò)訓練比不遷移收斂的更快,在故障檢測中,由于數(shù)據(jù)稀缺,通過式(16)獲得的檢測閾值不具有一般性,通過將數(shù)據(jù)遷移解決數(shù)據(jù)稀缺的問題,從而使閾值更具說服力.
圖6 遷移與未遷移損失函數(shù)對比Fig.6 Comparison of loss function between transfer and non-transfer
首先考慮在四旋翼無人機的執(zhí)行器發(fā)生故障,模擬現(xiàn)實中四旋翼無人機的推力系統(tǒng)發(fā)生故障,我們設(shè)置在第2 000個樣本時發(fā)生故障,檢測結(jié)果如圖7所示.
圖7 執(zhí)行器故障檢測結(jié)果Fig.7 Fault detection result for the actuator
其次考慮在四旋翼無人機的內(nèi)部參數(shù)發(fā)生變化,模擬現(xiàn)實中四旋翼無人機的內(nèi)部某個元器件發(fā)生故障,同樣設(shè)置在第2 000個樣本時發(fā)生故障,檢測結(jié)果如圖8所示.
圖8 執(zhí)行器故障檢測結(jié)果Fig.8 Fault detection result for the actuator
上述兩個實驗驗證了本文方法的有效性.通過神經(jīng)網(wǎng)絡(luò)擬合了四旋翼無人機系統(tǒng)的值函數(shù),并通過遷移學習解決了在目標域中數(shù)據(jù)稀缺的問題.當無人機到達一個新的重力場執(zhí)行任務(wù)時,能夠?qū)崿F(xiàn)基于性能驅(qū)動的四旋翼無人機故障檢測.
本文旨在實現(xiàn)四旋翼無人機的性能驅(qū)動故障檢測方法,通過神經(jīng)網(wǎng)絡(luò)擬合無人機系統(tǒng)的性能評價函數(shù).同時,考慮到無人機到達一個新的重力場數(shù)據(jù)稀缺的問題,通過子空間遷移和布雷格曼散度方法完成數(shù)據(jù)對齊,神經(jīng)網(wǎng)絡(luò)的參數(shù)遷移以及閾值的設(shè)定,從而實現(xiàn)了基于遷移學習的無人機性能驅(qū)動故障檢測.目前,對于四旋翼無人機的故障檢測在到達一個新重力場的情況尚未受到足夠的關(guān)注.而本文方法考慮到了這種情況,未來的工作將集中在研究如何在無人機發(fā)生故障后實現(xiàn)性能恢復.