申宇皓,孟 晨,張 磊,傅振華,石 純
(軍械工程學院a.導彈工程系;b.科研部;c.政治部,河北石家莊050003)
由于模擬電路的元件參數容差大,且存在反饋回路和非線性問題,故障的快速檢測和準確定位歷來都是研究的熱點和難點。傳統的模擬電路故障診斷方法主要包括故障字典法、元件參數辨識法和故障驗證法等。這些診斷方法都具有一定的局限性,在實際應用中的診斷效率不高。支持向量機是在統計學習理論的基礎上發展起來的分類方法,其核心思想是選擇最小的結構風險,解決學習機的學習能力和泛化能力之間的矛盾。支持向量機克服了神經網絡的不足,在解決小樣本、非線性及高維模式識別問題中表現出結構簡單、全局最優、泛化能力強等許多特有的優勢。
當使用支持向量機解決模擬電路的故障診斷問題時,首先需要考慮特征提取。小波包變換在時頻域都具有表征信號局部特征的能力,并且對信號的低頻和高頻部分都可以進行細致的分解,與小波變換相比具有更高的時頻分辨率,成為特征提取的首選方法。但是,使用小波包變換的一個直接的問題就是小波函數的選擇問題,不同的小波函數會直接影響特征提取的效果,進而影響最終的診斷。其次,當把小波包變換提取的各頻帶能量作為故障特征時,需要選擇那些可以較好地反應電路故障狀態,有利于故障準確定位,以提高診斷精度的特征。最后,支持向量機參數的選取問題也直接影響診斷精度,由于它們之間相互緊密聯系,將幾個問題分開優化往往得不到滿意的效果。文獻[1-4]等僅對特征選擇和參數選取的同步優化進行了一定的研究。現已公開發表的文獻都未對這三個問題給出一致的分析和解決方案。筆者在他們的基礎上進一步將三者聯合起來考慮,通過基于改進的離散粒子群優化算法(Improved Discrete Particle Swarm Optimization,IDPSO)實現了同步優化。IDPSO將非線性慣性權重策略與遺傳操作相結合,在一定程度上克服了DPSO(Discrete Particle Swarm Optimization)在迭代前期全局搜索能力和后期局部搜索能力的不足,以及在迭代后期一旦陷入局部最優不易擺脫的問題。
小波分析是當前信號分析與處理中一個迅速發展的新領域,它在時頻域都具有表征信號局部特征的能力,是一種時間窗和頻率窗都可以改變的時頻局部化分析方法[5]。小波變換只對信號的低頻部分作進一步分解,對高頻部分不再繼續分解。而小波包變換可以對小波變換沒有細分的高頻部分作進一步分解,從而提高了時頻分辨率。信號S的三層小波包分解樹如圖1所示。圖中A表示低頻,D表示高頻,序號表示小波包分解的層數。
當模擬電路發生故障時,主要表現為對不同頻

圖1 小波包分解樹
帶信號具有不同的增強或抑制效果,進而表現為相應頻帶能量的增大或減小。不同的故障會通過頻帶能量的不同改變表現出來。因此,可以將信號各頻帶能量作為特征向量,以實現電路的故障定位。基于小波包變換的特征提取步驟如下。
X ij為原始信號S經過小波包分解后的第i層的第j個節點的小波包分解系數,對每個小波包分解系數進行單支重構,以Sij表示Xij的單支重構信號,則總信號S可以表示為:

設Sij對應的能量為Eij,則有:

式中:xijk表示重構信號S ij的離散點的幅值,n為S ij信號長度,k=1,2,…,n。
由此,特征向量T可構造如下:

為消除由于各頻帶能量相差較大從而對進一步診斷帶來的影響,需要對特征向量T進行歸一化處理。令:

則,歸一化的特征向量T*為:

在具體處理電路各故障模式所對應的信號時,均先逐一采用以上三步操作,之后把所有信號同一頻帶的能量進一步歸一化到[0,1]之間。
不同的小波函數具有不同的性質和一定的適用范圍,所以選用不同的小波函數對信號處理會產生不同的結果。目前,對小波函數的選擇尚缺乏完善的理論指導,在實際應用中,一般是根據信號處理目的不同,經驗性地選取一些小波。對于故障診斷問題一般選用db系列小波。
離散粒子群優化算法由Kennedy在1997年提出,他采用二進制編碼,即粒子的位置向量的每一維取值為0或1。粒子更新公式為:

慣性權重ω用于平衡粒子群的探索能力和開發能力,較大的ω有利于全局搜索,收斂速度快,且搜索時易跳出局部最優值,但不易得到精確的解;而較小的 ω有利于局部搜索,可以提高搜索精度,但收斂速度慢且有時會陷入局部最優值。為保證較快的收斂速度和較高的搜索精度,就希望算法搜索前期ω能較長時間保持較大值進行全局搜索,而在后期能較長時間的保持較小值,從而實現精確搜索。ω一般采用線性較少的方法,即設ω的取值范圍為:[ωmin,ωmax],最大迭代次數是 Imax,則:

以下給出改進的離散粒子群優化算法。
線性減小ω使其保持較大值和較小值的時間都很短,不能滿足開始搜索速度快些,搜索后期速度慢些的要求。為此,給出慣性權值 ω隨著搜索的進行非線性下降的策略,如式8、圖2所示。這樣,ω在搜索前期能較長時間保持較大值以提高搜索效率,而在搜索后期又能較長時間保持較小值以提高搜索精度。


圖2 慣性權重非線性下降曲線
為進一步提高粒子群算法在迭代前期全局的搜索能力,并且克服算法在迭代后期一旦陷入局部最優不易擺脫的問題,在使用非線性慣性權重對基本粒子群改進的基礎之上,引入遺傳算法的選擇和變異的操作。在具體闡述遺傳操作之前,先定義兩個參數:變異比例F m為每次迭代過程中,實施變異的粒子占粒子總數的比例;變異率Pm為每次迭代過程中,粒子發生變異的可能性。具體的遺傳操作如下。
1)選擇。按照適應度值從高到低將粒子排隊,選擇最后Fm×100%的粒子實施變異,最后將產生等量的變異粒子。
2)變異。對于每個選擇實施變異的個體,按照Pm的概率進行變異。
具體的變異方法是:粒子位置取反,粒子速度在允許范圍之內重新初始化。例如:如式(9)所示,X,V分別為要進行變異的粒子的位置和速度,將X的每一維元素取反 ,由“1”變“0”,或由“0”變“1”;V 的每一位元素在最大速度的允許范圍[-4,4]之內重新初始化;Xm和Vm分別為最終形成的變異粒子的位置和速度。

IDPSO的基本流程如圖3所示。
1)初始化粒子群,即隨機設定各粒子的初始位置和初始速度;

圖3 IDPSO的基本流程
2)計算每個粒子的適應度值;
3)對于每個粒子,將其適應度值與所經歷的最好位置的適應度值進行比較,如果更好,則將其作為粒子的個體歷史最優值;
4)對于每個粒子,將其歷史最優適應值與群體內所經歷的最好位置的適應值進行比較,如果更好,則將其作為當前的全局最好位置;
5)按照改進的非線性慣性權重方法更新粒子的速度和位置;
6)進一步對群體實施選擇,變異操作;
7)若未到達終止條件,則轉第2)步,否則輸出全局最優位置。
本節主要介紹在實現IDPSO的同步優化方法時,涉及到的確定支持向量機核函數及參數的類型、粒子結構設計以及適應度函數的定義等問題。
在使用支持向量機訓練之前必須確定一些參數,主要包括核函數及其參數和懲罰因子。其中首要確定的就是核函數。從機器學習的角度,核函數決定分類函數集的復雜度,因此它控制支持向量機性能。核函數有兩種主要類型,即局部性核函數和全局性核函數。
多項式核函數是典型的全局性核函數:

式中:x,y是輸入空間的向量,q是階數。
徑向基核函數是典型的局部性核函數:

式中:β為徑向基核函數參數。
Smits指出,每一種核函數對提高支持向量機性能的能力有限。局部性核函數學習能力強、泛化性能較弱,而全局性核函數泛化性能強、學習能力較弱,因此考慮引入一個參數把這兩類核函數混合起來,構造混合核函數。
混合核函數:

其中,0≤λ≤1.本文選擇混合核函數,相應的需要優化的核參數包括q,β和λ。
粒子是一個二進制串,由三個部分組成。第一部分表示小波函數,第二部分表示頻帶能量特征的掩碼,第三部分是支持向量機參數。
小波函數的表示采用二進制數轉換到十進制的方式,并將其與各小波函數一一對應起來。例如在本文中:設置p=d+1,則wavelet=db p.其中,d表示二進制位串的十進制數,p是一個十進制值,對應于小波函數的序號。當d=2時,p=3,則wavelet=db 3。表示小波函數的二進制位串的長度是N w,它由表示的小波函數的范圍決定。
特征掩碼部分對應的二進制串的長度與待選擇的特征總數一致,且一一對應,如果某個特征被選中,則其對應位取1,否則取0。表示特征掩碼的二進值長度是N f。
支持向量機參數主要包括q,β,λ和C。q的編碼方法類似于小波函數,代表β,λ和C的位串可以通過式(13)轉換到十進制表示的實際參數。

式中:p表示參數的十進制值;p min表示參數的最小值;pmax表示參數的最大值;l表示參數二進制位串長度;d表示參數的二進制位串的十進制值。參數的精度由代表該參數的位串的長度l決定,其范圍由參數的最小值和最大值確定,二者都可以根據需要設定。表示q,β,λ和C的二進制位串長度分別是N q,Nβ,Nλ,ΝC。
一個粒子的二進制位串總長度:

同步優化的目標是通過選擇合適的小波函數、頻帶能量特征以及支持向量機參數以提高診斷精度,同時盡可能減少所選擇的特征。也就是說,適應度函數應該由兩部分組成,一部分反映診斷精度,精度越高,適應度值越高;另一部分反映特征數量,數量越少,適應度值也越高。在優化迭代的過程中,診斷精度是用在驗證集上的分類精度(驗證集精度)表示的。本文的適應度函數定義為:

其中:Acc是驗證集精度;ωa是其相對于特征數量的權重;如果第i個特征被選擇,f i則取1,否則取0;N f表示特征的總數;ωf是特征數量相對于驗證集精度的權重,ωa+ωf=1。
實驗中,把各類樣本分成3份,1/3用作訓練,1/3用作驗證,1/3用作測試。在優化算法的每次迭代中,對所選擇的小波函數、頻帶能量和支持向量機參數,先訓練再驗證,把驗證結果作為選擇最優解的部分依據(如式(15)所示)。最后,根據優化結果,用剩余1/3樣本進行測試,給出在測試集上的分類精度。
下面以圖4的信號產生電路為例,驗證基于IDPSO的同步優化支持向量機故障診斷方法。

圖4 被測電路
在被測電路中,R1=100 kΩ,R2=R10=R11=R12=10 kΩ,R3=R4=12 kΩ,R5=360 kΩ,R6=1.3 kΩ,R7=100Ω,R8=R9=150 kΩ,電阻容差 5%;C1=0.01μF,C2=C3=0.022 μF,電容容差 5%;U1,U2和U 3為μA741,電源±15 V。假設電路的所有故障均為單軟故障,分別為R1,R3,R9,C1正負偏50%,C2負偏50%,包括電路正常,共10種故障模式。采用Cadence PSD 15.0/PSpice進行瞬態和Monte Carlo分析。對Out端電壓信號在68~76 ms范圍,以4e-6s的周期進行采樣。設置元件參數變化符合獨立高斯分布,對于每種故障模式共進行60次分析,每次仿真中除了故障元件外,其余元件在容差范圍內變化。
采用支持向量機一對一分類方法,共需構建45個分類器。
選擇db1-db10小波,作為候選小波函數集,在粒子中對應的二進制串長度 Nw=4。當迭代過程中有的粒子所表示的小波函數不在db1-db10范圍內時,將對該粒子的位置和速度重新初始化。對Out端采集信號采用4層小波包分解,提取第4層各頻帶能量作為待選擇的特征向量集合,所以對應的二進制串長度N f=16。采用混合核函數,多項式分類器的階數取1~4,對應的二進制串長度Nq=2。

種群規模

IDPSO和DPSO的最佳適應度變化曲線如圖5所示。

圖5 IDPSO和DPSO最佳適應度值變化曲線
在迭代前期IDPSO具備更好的探索能力,IDPSO在第20代的時候,就已經達到DPSO在80代獲得的最優值。隨著迭代的進行逐步向最優解靠近,在算法后期也體現出了跳出局部最優的能力。相比較DPSO前期的全局搜索能力不足,并且較早地陷入了局部最優。
通過IDPSO得到最優解是,小波函數為db4,選擇了四個特征,分別為第3,6,7和15頻帶的能量 ;q=2,β=3.22,λ=0.2,C=1 811.25,驗證集精度為97.5%,適應度值為0.83。利用IDPSO獲得的最優解,在測試集上獲得的分類精度為98%。
通過DPSO得到的最優解是,小波函數為db3,選擇10個特征分別為第1,3,4,5,6,7,8,9,11和14頻帶的能量,q=3,β=4.33,λ=0.4,C=2893.75,驗證集精度為93%,適應度值為0.764。利用DPSO獲得的最優解,在測試集上獲得的分類精度為94.5%。
實驗結果顯示,使用IDPSO可以選擇更少的特征,并且獲得了更高的診斷精度,同時證明了同步優化方法在解決模擬電路故障診斷中的有效性。
針對基于支持向量機模擬電路故障診斷的實際問題,提出了一種對特征提取、特征選擇和參數優化的同步優化方法。同時,針對傳統離散粒子群算法的不足,提出了一種結合非線性慣性權重和遺傳操作的改進方法。通過模擬電路的仿真實驗,證明了同步優化方法的有效性,并且驗證了改進的粒子群算法具有更好的全局搜索和跳出局部最優的能力。
[1] Huang C L,Wang C J.A GA-based Feature Selection and Parameters Optimization for Support Vector Machines[J].Expert Systems with Applications,2006,31(2):231-240.
[2] M uni D P,Pa1 N R,Das J.Genetic Programming for Simultaneous Feature Selection and Classifier Design[C]∥IEEE.Transactions on Systems,M an and Cybernetics-Part B,2006,36(1):106-117.
[3] 任江濤,趙少東,許盛燦,等.基于二進制PSO算法的特征選擇及SVM參數同步優化[J].計算機科學,2007,34(6):179-182.
[4] 陳光英,張千里,李星.特征選擇和SVM訓練模型的聯合優化[J].清華大學學報(自然科學版),2004,44(1):9-12.
[5] 董長虹.Matlab小波分析工具箱原理與應用[M].北京:國防工業出版社,2004.