邱聚能,李 輝
(電子科技大學航空航天學院,成都 611731)
基于dSPACE的無人機電動舵機故障檢測*
邱聚能,李 輝
(電子科技大學航空航天學院,成都 611731)
傳統(tǒng)的舵機故障檢測通?;诙鏅C參數(shù)已知,但實際中大多數(shù)舵機的內部參數(shù)是未知的。文中采用搭建故障觀測器的思路,提出了一種基于子空間辨識的卡爾曼濾波故障檢測方法;借助于dSPACE半實物仿真工具,搭建了電動舵機故障檢測半實物仿真平臺,實現(xiàn)了未知參數(shù)電動舵機的在線故障檢測和快速故障分析。實驗表明,該方法不但能有效檢測故障發(fā)生時間,而且能快速辯識故障類型和程度,為無人機舵機故障快速檢測的工程化應用提供了一種解決方案。
dSPACE;電動舵機;故障檢測;卡爾曼濾波
民用無人機大多使用電動舵機來控制其姿態(tài)。電動舵機的故障診斷分為故障監(jiān)測和故障分析兩個部分,其目的是為了最終進行故障的排除[1]。故障診斷的理論體系已經比較成熟,從最初的硬件冗余到解析冗余[2],從簡單模型到結合專家知識、神經網(wǎng)絡的智能診斷系統(tǒng)[3],但是在實際工程中,很多時候無法獲得電動舵機的內部參數(shù),傳統(tǒng)的故障診斷方法不再適用。針對這種情況,文中提出了基于dSPACE半實物仿真系統(tǒng)的電動舵機故障檢測方法,利用dSPACE系統(tǒng)的實物在環(huán)功能實現(xiàn)了對未知參數(shù)舵機的觀測和分析。
1.1 dSPACE系統(tǒng)
dSPACE系統(tǒng)主要實現(xiàn)快速控制原型(rapid control prototyping,RCP)驗證和硬件在環(huán)仿真(hardware-in-the-loop simulation,HILS)即半實物仿真[4]兩大功能。
RCP技術能夠實現(xiàn)控制對象原型和控制算法模型的快速建模,并允許反復修改模型設計,進行多次離線的及在線的仿真試驗以驗證控制方案的可行性。HILS引入實物對象來替代一些復雜的試驗對象仿真模型,使得存在于系統(tǒng)中的許多復雜建模或無法建模難題迎刃而解,同時提高了仿真的逼真性,使得試驗仿真測試更加方便、準確。
1.2 故障檢測流程設計
針對未知參數(shù)的電動舵機,利用PC、驅動板及電動舵機構成開環(huán)控制回路,測量反饋電壓與角度的關系。根據(jù)此關系設計舵機閉環(huán)測試回路,以卡爾曼濾波器作為觀測器,將其模型與舵機實物并聯(lián),依托dSPACE系統(tǒng)的實物在環(huán)及實時仿真功能,實現(xiàn)電動舵機的在線故障檢測。整個檢測過程包括檢測平臺搭建、觀測器模型建立以及故障診斷策略設計3個步驟。
1.3 檢測平臺搭建
根據(jù)流程設計中需要實現(xiàn)的功能,設計檢測平臺結構如圖1所示。
圖1 檢測系統(tǒng)結構圖
測試平臺由dSPACE半實物仿真系統(tǒng)、電動舵機、驅動板以及外部電源構成。其中驅動板采用能提供32路PWM輸出的Arduino板,外部電源為5 V直流電源。
1.4 基于子空間辨識的卡爾曼濾波故障檢測
文中以卡爾曼濾波器[5]作為電動舵機的故障觀測器,搭建能夠準確預測下一狀態(tài)輸出的卡爾曼濾波器需要兩個基本條件:正常系統(tǒng)的狀態(tài)方程以及觀測值。在舵機參數(shù)未知時,觀測值可以通過實驗得到,但狀態(tài)方程需要進行辨識。所以,設計卡爾曼濾波器模型建立流程如圖2所示。
圖2 卡爾曼濾波算法流程圖
1)舵機狀態(tài)方程辨識
采用子空間辨識法(N4SID)[6]對舵機系統(tǒng)進行辨識,得到其狀態(tài)方程。設在t(k)時刻,系統(tǒng)輸入信號為u(k)(假設輸入信號已經經過變換從PWM信號變換為了目標角度),而卡爾曼濾波器對當前輸出的估計為x(k),其數(shù)學關系表達式為:
x(k)=Ax(k-1)+Bu(k-1)+w(k-1)
(1)
對x(k)的量測滿足線性關系,觀測方程為:
y(k)=Cx(k)+Du(k)+ν(k)
(2)
式中:A∈Rn×n,B∈Rn×m,C∈Rl×n,D∈Rl×m,w(k)∈Rn是電動舵機系統(tǒng)中的過程噪聲,ν(k)∈Rl是對輸出角度進行觀測時引入的噪聲。m是輸入信號的個數(shù),l是輸出信號的個數(shù),n是舵機系統(tǒng)的階數(shù)。
因為電動舵機是單輸入單輸出的線性系統(tǒng),其系統(tǒng)階數(shù)為2[7],所以N4SID的基本參數(shù)為m=1,l=1,n=2。于是可以得到:A∈R2×2,B∈R2×1,C∈R1×2,D∈R1×1,對線性方程組:
(3)
使用最小二乘法求出A、B、C、D:
(4)
由此辨識出狀態(tài)方程所需的矩陣A、B、C、D,從而得到舵機的狀態(tài)方程。
2)卡爾曼濾波殘差構建
(5)
預測誤差計算:
(6)
一步預測均方誤差陣:
(7)
濾波增益陣:
K(k)=P(k|k-1)CT[CP(k|k-1)CT+R(k)]-1
(8)
估計誤差方差陣:
P(k)=[I-K(k)C]P(k|k-1)
(9)
狀態(tài)估計:
(10)
3)卡爾曼濾波器Simulink模型搭建
構建卡爾曼濾波器模型如圖3所示,在進行故障的監(jiān)測時,實時采集實際輸出y和卡爾曼濾波器的輸出y1,將他們之間的差作為故障殘差。
圖3 卡爾曼濾波器Simulink模型設計
4)模型的驗證
在進行模型的驗證時,只用檢測兩個方面:
①卡爾曼濾波器輸出對正常舵機輸出的跟隨效果;
②殘差是否是一個均值為0、方差較小的序列。
2.5 故障診斷策略
1)故障閾值的設置
為了減少檢測系統(tǒng)的虛警率,使用殘差r的峰值函數(shù)作為故障閾值。在[T,T+Δt]的時間段之內:
(11)
而對于離散函數(shù)r(k)在[N,N+n]上的峰值可以表達為:
(12)
運用r的無窮范數(shù),判決條件可以定義為:
Jpeak>Jth,peak,報警
Jpeak≤Jth,peak,不報警,系統(tǒng)正常
其中:Jth,peak是此時的判決閾值,而Jpeak通過下面的公式進行定義:
Jpeak=|r(t)|
(13)
或是
Jpeak=|r(k)|
(14)
2)舵機故障分析
由于舵機是單反饋系統(tǒng),在研究其完全故障分離問題時,只討論同一時間發(fā)生一種故障的情況。先建立故障特征表達式和故障分離邏輯表實現(xiàn)故障的分離,再進行故障的估計[8]。舵機的角度輸入uk和角度輸出yk的故障特征表達式[9]近似地表示為:
yk=skuk+dk
(15)
式中:sk是用于表征系統(tǒng)的乘性故障的增益因子;dk是用于表征加性故障的偏差因子,在沒有故障發(fā)生的時候dk的理論值為0。
表1 舵機故障分離邏輯表
注:sn代表故障值;d代表卡死位置的反饋值;dn代表加性故障的反饋值。
在分離出故障的情況下,通過采集舵機的輸入輸出數(shù)據(jù)對線性增益sk和偏差值dk進行估計就能夠檢測出故障的類型和程度。
(16)
(17)
(18)
由此可得:
(19)
圖4 測試平臺實物圖
2.1 平臺搭建與數(shù)據(jù)采集
以dSPACE為核心搭建的測試平臺實物圖如圖4所示,其中1部分為電動舵機,2部分為Arduino舵機驅動板[10],3部分為供電電源,4部分為dSPACE外圍接口,5部分為dSPACE主機。
在實驗時,采用德國volz型舵機,其參數(shù)如表2所示。
表2 volz型舵機參數(shù)表
首先測得舵機反饋電壓與偏轉角度之間的關系如圖5所示。
圖5 反饋電壓與偏轉角度關系
根據(jù)反饋變換關系,在dSPACE平臺上建立測試模型如圖6所示。模型包括了PWM波的產生,模數(shù)的轉換、電壓角度的變換以及低通濾波等過程。
圖6 dSPACE仿真測試模型
輸入信號采用振幅為65°的正弦信號,在模型上設置好相應的參數(shù)之后,通過dSPACE軟件系統(tǒng)中的實時工作窗口(real-time workshop,RTW)把模型轉換成在硬件平臺上能夠運行的系統(tǒng)代碼并將其下載到硬件板卡上,使得舵機偏轉并采集反饋信號,經過濾波和變換之后的輸出信號如圖7所示。
圖7 舵機角度輸出曲線圖
2.2 卡爾曼模型驗證
使用chirp信號作為辨識正常舵機的激勵信號,其頻率范圍為1 Hz到100 Hz,變換周期為50 s,經過辨識得到狀態(tài)方程參數(shù)為:
將狀態(tài)方程參數(shù)導入卡爾曼濾波模型后,經過調試,將初值設置為:
的時候能夠快速達到穩(wěn)定狀態(tài)。
完成模型的設置后,首先驗證其對正常舵機輸出的跟隨狀況,在測試回路上,輸入一個幅度為45°的正弦輸入信號,其周期為10 s,即同時給卡爾曼濾波器和舵機輸入一個激勵信號,在系統(tǒng)穩(wěn)定后,統(tǒng)計卡爾曼濾波器和舵機實際輸出,結果如圖8所示。并統(tǒng)計此時的殘差值,如圖9所示。
從圖上可以看出,輸出曲線重合度很高,且殘差比較密集的聚集在0值附近,滿足驗證卡爾曼濾波模型的要求。
圖8 輸出對比
圖9 正常狀態(tài)下的殘差值
2.3 故障在線監(jiān)測效果驗證
正常狀態(tài)下殘差值的Jth,peak值是一個變化的量,為了盡量避免虛警情況的發(fā)生,統(tǒng)計100個周期內的系統(tǒng)正常殘差,得到此時的Jth,peak值等于0.986 4,所以采用如下判決策略:
Jpeak>1,報警
Jpeak≤1,不報警,系統(tǒng)正常
為了驗證檢測方法的正確性和其故障監(jiān)測效果,設置故障實驗:在30 s時人為引入故障,而后迅速恢復得到殘差圖,如圖10所示。從圖中可以看出,檢測系統(tǒng)能夠有效的檢測出故障發(fā)生的時間。
圖10 殘差變化圖
為了進一步驗證檢測系統(tǒng)的虛警和漏檢情況,對同樣的舵機進行100次故障監(jiān)測實驗,其中98次故障殘差變大到了超過故障閾值的程度,有兩次發(fā)生了故障但沒超過閾值,即測試得到的漏檢率為2%;另外,控制正常舵機在正弦激勵信號的控制下運行5 h,系統(tǒng)并沒有產生虛警,達到需求的效果。
2.4 故障分析方法驗證
通過最小二乘法估計舵機正常情況(理論值:增益為1,偏差為0°)下的增益為0.947,偏差值為0.64°。實驗需要故障分離和估計,所以對幾種故障情況進行實驗驗證:首先在轉子卡死在33°時,輸入和輸出數(shù)據(jù)如圖11所示,通過估計算法,可以計算得到這時的線性增益為0,偏差為33.412°。
圖11 轉子卡死
而當其增益發(fā)生變化(變?yōu)?.8)的時候,輸出信號無法完全響應輸入信號,其輸入輸出數(shù)據(jù)圖如圖12所示。通過對數(shù)據(jù)進行采集和計算,可以得到這時候的增益值為0.821 3,偏差值為0.245 8°。
圖12 增益發(fā)生變化
在輸出發(fā)生了固定偏差(偏差值為15°)的時候,其輸入輸出如圖13所示,得到其增益值為1.048 1,偏差值為13.893 1°。值得注意的是,發(fā)生固定偏差使得舵機的輸出達到極限的時候,比如圖14所示的情況(其實際偏差為32°),這時候需要對辨識的數(shù)據(jù)進行處理,僅對其有效部分進行篩選和對比,采集圖14中的波谷部分,對其計算得到增益為0.989 1,偏差值為31.541 2°。同理,當故障的增益過大時也采取同樣的處理方式,找到有效分析部分。
圖13 發(fā)生固定偏差
圖14 偏差值過大
文中依托dSPACE半實物仿真系統(tǒng)搭建了無人機電動舵機系統(tǒng)的測試平臺,在搭建的平臺上實現(xiàn)了基于卡爾曼濾波器的未知參數(shù)舵機故障在線監(jiān)測,并研究了電動舵機故障分離和故障估計的方法。實驗結果表明,文中提出的電動舵機故障檢測方法不僅能夠實現(xiàn)故障在線監(jiān)測,同時也能夠有效的對故障進行分離和估計。
[1] 楊秉巖,程紹成,朱偉,等.基于傳遞函數(shù)識別的導彈電動舵機故障診斷 [J].海軍航空工程學院學報,2012,27(5):494-498.
[2] QIU Ziyang,GERTLER J J.Robust FDI systems and H∞optimization:Tall-fault case[C]// Proceedings of 32nd IEEE Conference on Decision and Control.New York:IEEE,1993:1710-1715.
[3] 鄭佳焜,楊雅君,廖瑛.基于遺傳算法的導彈控制系統(tǒng)設計與仿真 [J].彈箭與制導學報,2014,34(5):33-36.
[4] 楊凱.混合動力汽車電驅動單元伺服控制仿真驗證平臺設計與實現(xiàn) [D].成都:電子科技大學,2015:4-16.
[5] 楊丹.卡爾曼濾波器設計及其應用研究 [D].湘潭:湘潭大學,2014:2-18.
[6] 羅小鎖,周國清,鄒濤.基于子空間辨識的狀態(tài)空間模型預測控制 [J].計算機工程與應用,2012,48(19):234-237.
[7] 劉敏,劉藻珍,王金柱.某型電動舵機建模與仿真研究 [J].彈箭與制導學報,2004,24(3):123-125.
[8] 魏秀琨,秦勇,賈利民.魯棒故障檢測與故障估計理論及應用 [M].北京:科學出版社,2012:14-60.
[9] 王鵬,張瞿輝,金波,等.基于一元線性回歸分析的舵機故障診斷算法 [J].火力與指揮控制,2009,34(7):20-23.
[10] 陳呂洲.Arduino程序設計基礎 [M].北京:北京航空航天大學出版社,2014:2-45.
FaultDetectionofUAVElectricSteeringEngineBasedondSPACE
QIU Juneng,LI Hui
(School of Astronautics and Aeronautic,University of Electronic Science and Technology of China,Chengdu 611731,China)
The traditional steering engine fault detection was usually based on the known parameters of steering engine,but in practice,most of the internal parameters of the steering engine were unknown.A Kalman filter for filtering fault detection method based on subspace identification was proposed with the thought of establishing fault observer in this paper.At the same time,based on hardware-in-the-loop simulation tool dSPACE,a semi-phisical simulation platform for electric steering engine fault detection was set up,through which the fault on-line detection and fast fault analysis of unknown-parameters steering engine were realized.The experimental results showed that this method could not only detect the fault occurence time effectively,but also identify the fault types and degree quickly,and the achievement provided a solution for the engineering application rapid fault detection of steering engine in UAV.
dSPACE; electric steering engine; fault detection; Kalman filtering
10.15892/j.cnki.djzdxb.2017.02.031
2016-05-13
四川省科技支撐計劃(產業(yè)類)(2015GZ0002)資助
邱聚能(1991-),男,四川成都人,碩士研究生,研究方向:信號與圖像處理、故障診斷。
V19
A