張曉焱,劉 永
ZHANG Xiaoyan1,2,LIU Yong1
1.南京理工大學 計算機科學與工程學院,南京 210094
2.南京交通職業(yè)技術學院,南京 211188
1.School of Computer Science and Engineering,Nanjing University of Science and Technology,Nanjing 210094,China
2.Nanjing Vocational Institute of Transport Technology,Nanjing 211188,China
故障診斷技術對汽油發(fā)動機的動力性、經濟性、排放、工作壽命以及行車安全都有著非常重要的意義。雖然OBD(車載自診斷系統(tǒng))能夠對電控系統(tǒng)器件的異常進行檢測和診斷,但是對于一些微小的機械故障卻難以給出及時準確的診斷結果。鑒于汽油發(fā)動機復雜的非線性時變特性,難以通過建立精確模型的方式來識別故障。目前,直接通過對發(fā)動機電控系統(tǒng)產生的工況數據流進行分析的方法得到了越來越廣泛的應用[1-2]。常見方法有基于時域趨勢和頻譜分析的信號處理法,基于支持向量機、神經網絡、聚類和隱馬爾科夫的模式識別法等。近年來,稀疏編碼技術的逐漸興起為數據分析提供了新的渠道。Wright等基于稀疏理論提出了稀疏分類算法(Sparse Representations Classification,SRC),并在故障識別領域取得了很好的效果[3-7]。由于數據流是時間序列,具有一次讀取、持續(xù)處理、存儲有限的特點,一般在滑動時間窗內對其進行分析。但是發(fā)動機故障發(fā)生的時機是不確定的,造成故障在時間窗內的位置也是不確定的。這說明同一故障模式樣本的稀疏編碼也需要考慮其位置信息。
Smith[8]在《自然》雜志上發(fā)表了移不變稀疏編碼算法(Shift Invariant Sparse Coding,SISC)。該算法通過字典原子在時間窗范圍的平移來匹配信號樣本提高了稀疏編碼的準確率,并具有出色的自適應性和魯棒性等優(yōu)點,有效解決了數據流的稀疏表示問題[9-10]。然而,字典原子的平移操作會降低整個編碼模型的學習和解碼效率,增加了發(fā)動機在線故障識別系統(tǒng)的計算復雜度,這對其運行實時性和計算資源成本構成了壓力。Tang H等[11]采用基于梯度優(yōu)化的字典學習算法,在改善學習效率的同時也犧牲了一定的精度。
本文在已有SRC和SISC理論的基礎上,提出了一種快速移不變稀疏分類算法(Fast Sparse Representations Classification,FSRC)。該算法通過特征標記法和拉格朗日對偶法對移不變稀疏編碼問題進行快速求解,在保證精度的前提下提高了模型的學習速度和實時性能。通過使用FSRC算法對汽油發(fā)動機中幾種機械故障進行在線識別,來驗證其實際的運行性能。
SRC直接使用訓練樣本集S={sm×1}來構造冗余的分類字典 Dm×n=[D1,D2,…,DC],m?n,其中C為類別數,Di是由第i個類別的樣本構成的子字典。基于樣本只能由所屬同類子字典中的原子進行線性表出的假設,分類問題可以通過以下步驟來實現:
(1)對于測試樣本t,求解式(1)的優(yōu)化問題以獲得其在分類字典D上的稀疏編碼:
其中,s為樣本t的稀疏表示系數向量,β為懲罰因子。
(2)用向量s在字典D上重構樣本t,并根據最小重構誤差進行分類:
其中,si是S中對應第i個分類的非零系數。
SISC是SRC算法在時域上的擴展。樣本tm×1可以按式(3)進行表示:
其中,Tl是讓字典 Dm×n中的原子di偏移l的平移操作,l∈[-L,L],si,l是與產生偏移l的原子di相對應的稀疏表示系數,μ是服從高斯分布的誤差。也就是說,SISC算法通過讓字典原子在整個信號范圍內進行平移來提高模型對數據流信號的匹配效果。
針對樣本集T={tk}k=1,2,…,K的移不變稀疏編碼求解問題可表達為:
其中,si,k為信號tk在原子di上的稀疏表示系數,°為卷積運算符。由于式(4)是非凸優(yōu)化問題,所以一般通過反復迭代法分別對D和si,l進行求解。即先固定si,l后求解D,再固定D后求解si,l,重復這個過程直到滿足停止條件。
稀疏表示系數s的求解是在固定字典D的前提下進行的,也就是將式(4)轉換為:
鑒于卷積在時頻域上的計算特性,可將式(5)變換到頻域中進行求解[12]:
式(6)的常見解法主要有基追蹤法(BP)、正交匹配法(OMP)[13]等貪婪迭代法。為了進一步提高效率,本文基于特征標記法[14]進行求解。該算法通過對稀疏表示系數向量中的元素進行標記,有選擇地迭代更新稀疏表示系數的子集,有效降低了整個求解過程的計算量,其具體步驟如下:
步驟1初始化s′和其對應的標記向量θ為零向量,活動集A=?。
步驟2
步驟3設D′sub是D′中與活動集A中元素對應的原子組成的子字典,s′sub和θsub分別是s′和θ中與活動集A相對應的元素組成的子向量。采用凸二次規(guī)劃算法對式(8)進行求解:
可得s′sub的更新結果為:
在s′sub更新前后的差值范圍內搜索標記發(fā)生變化的元素,然后從活動集A中移除0元素并更新s′的特征標記θ =sign(s′)。
步驟4
步驟5對s′進行傅里葉逆變換獲得稀疏系數s。
OMP算法每次迭代都需要在所有原子上進行投影計算,其時間復雜度為O(kmn)(k為稀疏度,m為測量次數,n為樣本維度)[15]。BP算法把式(6)的L0范數問題轉化為L1范數問題,一般可以找到全局最優(yōu)解,但其計算復雜度要高于OMP[15]。FSRC的稀疏系數求解算法依據活動集對稀疏表示系數中的非零元素進行標記。通過對子集s′sub的迭代更新,完成s′的求解,其時間復雜度僅為O(km×lbn)。此外,該在線求解算法只需要在迭代算法所需空間的基礎上再增加n個單元來存儲活動集A,其空間復雜度為O(n)。這對于目前的車載處理器來說并不會構成負擔。
在固定稀疏系數的情況下對字典進行學習,即對以下問題進行求解:
但直接求解式(10)的計算量較大,需要進行優(yōu)化處理。為了計算方便,同樣需要將其變換到頻域進行求解。則式(10)所述問題可轉換為:
其中,T′={t′k},S={s′i,k},D′={d′i}。 t′k、s′i,k和 d′i分別是tk、si,k和di的傅里葉變換,c為一常數。式(11)是一個典型的約束最小二乘優(yōu)化問題,一般直接采用梯度下降法進行求解,但其求解速度要受到迭代次數的影響。為了提高求解速度,本文基于拉格朗日對偶法進行求解。
設式(11)的拉格朗日目標函數為:
其中,λj>0為對偶變量。其拉格朗日對偶問題為:
其中,φ=diag(λ)。則 Du()λ的梯度為:
其中,ei∈Rn是第i個單位向量。可以采用共軛梯度法等直接對式(13)進行求解。
對Du(λ)最大化后,就可以得到最優(yōu)字典D′為:
接著對D′進行傅里葉逆變換即可獲得最優(yōu)字典D。
由式(12)和式(16)可知,字典 D′的學習過程實際上就是n個對偶變量λ的求解過程。也就是說,上述基于對偶求解的字典學習算法平均只需要優(yōu)化n規(guī)模的數據量即可完成對m×n字典的優(yōu)化。而傳統(tǒng)基于梯度下降法的字典學習算法需要處理m×n規(guī)模的數據量。
基于上述討論,本文設計了一種能夠對汽油發(fā)動機故障進行在線快速識別的算法(FSRC)。該算法基于SRC算法框架對發(fā)動機工況數據流的故障模式進行識別??紤]到故障發(fā)生時刻的不確定性,采用SISI算法對數據流進行移不變稀疏編碼。通過字典原子與對應稀疏表示系數的卷積操作來提高編碼效率。整個FSRC算法分為離線訓練和在線識別兩部分。其中離線部分的主要任務是學習分類字典,其中每個分類子字典由同類故障樣本進行訓練。在線部分的任務是在學習完成的字典上求取稀疏表達系數并完成分類,其結構如圖1所示。
圖1 FSRC算法結構示意圖
FSRC算法的具體實現步驟如下:
(1)初始化分類字典以及算法參數;
(2)用第2章的算法求稀疏表示系數;
(3)用第3章的算法學習字典;
(4)反復運行步驟(2)~(4)直到滿足停止條件;
(5)在學習獲得的模型上對故障樣本進行稀疏分類,實現故障類型的識別。
實驗對象采用長安福特2013款嘉年華手動時尚型配備的1.5 L Duratec型發(fā)動機。數據流樣本通過診斷儀(VCM)從OBD接口直接采集,如圖2所示。
圖2 樣本采集方法示意圖
采用人工設置方法來模擬五種故障,分別有真空管漏氣(VLF)、一缸噴油器堵塞無法全開(ISF)、EGR閥漏氣(ELF)、進氣計量孔堵塞(MAFS)和節(jié)氣門卡滯(TSF)。表1所示的是發(fā)動機處于正常狀態(tài)和故障狀態(tài)下所采集樣本的數量。
表1 發(fā)動機數據流實驗樣本
所有數據流的采樣頻率為20 Hz,采樣時間為35 s。每一組數據流樣本包含發(fā)動機轉速信號(rpm)、負荷量(load)、油門踏板位置信號(ap)、節(jié)氣門位置信號(tp)、進氣流量信號(maf)、點火提前角(adv)和短期燃油修正值(STFT),形成了一個7維向量。圖3所示的是所采集的一組VLF故障的數據流樣本。
圖3 VLF數據流樣本
發(fā)動機的工作狀態(tài)會受到負荷、外界環(huán)境、駕駛行為等因素的影響,所以其各個工況參數的變化幅度很大。此外,在采集相同故障類型的樣本時,發(fā)動機工況參數也會發(fā)生變化。這意味著直接以原始數據流作為故障識別系統(tǒng)的輸入樣本難以獲得理想的效果。因此有必要根據故障機理在原始樣本基礎上提取故障特征樣本。本文中每個故障樣本包含10個特征,包括rpm、tp和adv的能量;ap、maf、adv和STFT的均值;rpm和load的相關系數、rpm 和maf的相關系數、rpm 和tp的相關系數。上述特征都在滑動窗范圍內求得,其模型如圖4所示。
圖4 滑動窗模型示意圖
由于發(fā)動機發(fā)生故障后閉環(huán)系統(tǒng)會對故障進行修正,所以滑動窗的寬度不能太大,以免故障特征被掩蓋。設每個滑動窗的寬度都為35個樣本點,則字典原子的偏移范圍為20。
對特征樣本進行歸一化后作為FSRC算法的輸入樣本。分類字典為10×120的矩陣,其中包含6個分類子字典 D1,D2,…,D6,分別對應無故障、VLF、ISF、ELF、MAFS和TSF共6種狀態(tài),每個子字典的規(guī)模相同,都為10×20。設懲罰因子β=0.1,終止條件為1E-5。
根據10折交叉驗證法將所采集的全部1 080組樣本按照9∶1的比例隨機分成訓練樣本集和驗證樣本集兩類。在其上共進行10次實驗,以考察FSRC算法模型的識別效率和平均訓練時間。同時和基于SISC的稀疏分類算法(SSRC)、基于OMP的稀疏分類算法(OSRC)以及梯度下降的稀疏分類算法(GSRC)進行比較。所有算法在Matlab2010b上運行,處理器為Intel i5 3210M,內存4 GB。
表2所示的是三種算法在各個時間窗內對樣本數據流進行移不變稀疏分類求解的平均時間。
表2 各算法的平均在線分類時間 ms
可以看到,基于傳統(tǒng)移不變稀疏分類的SSRC算法的時間復雜度最高,而FSRC算法的在線求解速度明顯優(yōu)于其他三種算法,這能夠明顯提高車載在線故障識別系統(tǒng)的運行效率。表3所示為各算法在相同樣本上的平均訓練時間。
表3 各算法的平均訓練時間s
由表3可知FSRC算法的訓練速度是其他三種算法的2~3倍。圖5所示的是一次故障識別過程中某個ISF故障特征樣本在分類字典上的投影分布結果。
圖5 稀疏表達系數在字典上的投影分布
從圖5中可以看到,該樣本在D3子字典上的稀疏投影系數值最大,說明其與該字典中原子的匹配度最好,這與事實是相符的。表4所示的是三種故障識別算法的平均識別精度。
表4 各算法的平均識別精度 %
顯然,FSRC的識別精度和其他三種算法相當。這表明FSRC沒有因為學習效率的提高而犧牲故障識別的準確率。此外,注意到上述算法在怠速工況下的識別精度略高于1 500~2 000 r/min工況下,這是因為上述五種故障在怠速下的特征比發(fā)動機中速運行時要明顯一些。
本文提出了一種基于快速移不變稀疏編碼和稀疏分類的汽油發(fā)動機故障在線識別算法(FSRC)。該算法首先將移不變優(yōu)化問題轉換到頻域上進行處理,接著分別通過特征標記法降低求解稀疏表示系數的計算量,拉格朗日對偶法代替?zhèn)鹘y(tǒng)的梯度下降法對字典進行快速優(yōu)化。通過循環(huán)迭代逐漸逼近最優(yōu)的稀疏系數和分類字典。將學習所得稀疏編碼模型用于在線識別汽油發(fā)動機故障。對長安福特嘉年華1.5 L Duratec型發(fā)動機的五種常見機械故障進行在線識別的實驗結果表明,FSRC算法在怠速和1 500~2 000 r/min工況下都取得了更快的在線稀疏求解速度,而且其在線識別精度沒有受到任何影響,這表明其具有較好的應用前景。
參考文獻:
[1]周東華,劉洋,何瀟.閉環(huán)系統(tǒng)故障診斷技術綜述[J].自動化學報,2013,39(11):1933-1943.
[2]李哲洙,高培鑫,佟琨,等.基于HHT的液壓管路裂紋故障診斷方法研究[J].計算機工程與應用,2016,52(20):221-226.
[3]Wright J,Yang A Y,Ganesh A.Robust face recognition via sparse representation[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2009,31(2):210-227.
[4]Scholkopf B,Platt J,Hofmann T.Sparse representation for signal classification[C]//Conf on Advances in Neural Information Processing Systems,2006.
[5]Zhang Baochang,Perina A,Murino V,et al.Sparse representation classification with manifold constraints transfer[C]//The IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2015:4557-4565.
[6]馬小虎,譚延琪.基于鑒別稀疏保持嵌入的人臉識別算法[J].自動化學報,2014(1).
[7]Plenge,Klein S,Niessen,et al.Multiple sparse representations classification[J].Plos One,2015,10(7).
[8]Smith E C,Lewicki M S.Efficeient audiotory coding[J].Nature,2006,439(7079):978-982.
[9]Liu H,Liu C,Huang Y.Adaptive feature extraction using sparse coding for machinery fault diagnosis[J].Machanical Systems and Signal Processing,2011,25(2):558-574.
[10]Blumensath T,Davies M.Sparse and shift-invariant representations of music[J].IEEE Transactions on Audio,Speech and Language Processing,2006,14(1):50-57.
[11]Tang H,Chen J,Dong G.Sparse representation based latent components analysis for machinery weak fault detection[J].Mechanical Systems and Signal Processing,2014,46(2):373-388.
[12]Grosse R,Raina R,Kwong H.Shift-invariant sparse coding for audio classification[C]//Conference on Uncertainty in AI,2007:149-158.
[13]Needell D,Vershynin R.Uniform uncertainty principle and signal recovery via regularized orthogonal matching pursuit[J].Foundations of Computational Mathematics,2007,9(3):317-334.
[14]Lee H,Battle A,Raina R,et al.Efficient sparse coding algorithms[J].Advances in Neural Information Processing Systems,2006,19:801-808.
[15]孫林慧,楊震.語音壓縮感知研究進展與展望[J].數據采集與處理,2015,30(2):275-288.