劉福康 楊光永 吳大飛 徐天奇
(云南民族大學電氣信息工程學院 昆明 650000)
粒子群算法(PSO)數學模型簡單、參數少、易于實現,已經被廣泛應用于參數尋優,路徑規劃等多方面。但其性能易受參數影響、極易陷入局部最優[1]。為此,諸多學者對PSO算法進行了改進,例如:為增強算法擺脫局部極值的能力,高鷹等將模擬退火思想引進PSO[2],在一定程度上改善了粒子群優化算法擺脫局部極值點的能力。為拓寬粒子的搜索空間,Liang等提出了學習粒子群算法[3],提高了算法的收斂速度。康嵐蘭等提出了無慣性自適應精英變異反向粒子群優化算法有效增加了種群多樣性[4];胥小波等提出了將混沌思想引入粒子運動的混沌粒子群優化算法,提高了算法計算精度和全局尋優能力[5];趙新超等提出了一種基于非均勻變異和多階段擾動的粒子群優化算法,兼顧了算法的多樣性和精英學習強度間的關系[6];夏學文等提出的一種具備反向學習能力和局部學習能力的粒子群優化算法,在高維函數優化中表現較好[7];為避免算法陷入局部最優,增強算法的局部搜索能力,劉超等將天牛須算法引入PSO[8];郭瑞等將混沌變異引入PSO[9]。為解決PSO易陷入局部最優問題,劉浩然等提出一種改進雁群擴展粒子群算法[10];張葉等提出一種將“概率突跳特性”引入PSO,并設定新的淘汰機制,提高了算法的全局尋優性能[11]。
上述改進策略都在一定程度上改善了PSO算法的性能,但同時大幅增加了算法復雜度。為此,本文提出一種粒子數和迭代數相結合的動態調整種群學習率的方法。為提高算法的收斂速度的同時降低算法復雜度,將該方法與胡旺等不含速度項的簡化粒子群算法(SPSO)[12]相結合,提出了改進簡化粒子群算法(ISPSO)。將ISPSO算法與變分模態分解(VMD)和最大相關峭度反卷積算法(MCKD)相結合,提出了一種新的提取亞像元峰值的方法。
PSO通過式(1)確定k+1次迭代時粒子i的位置xi(k+1)和速度vi(k+1):
其中:w為慣性因子,c1為個體學習率,c2為種群學習率,r1、r2為0~1的隨機數,Pi為第i個粒子當前尋找到的最好位置,Pg為所有粒子找到的最好位置,Δt為單位時間,k、k+1分別表示第k次迭代和第k+1次迭代。
而SPSO算法不含速度項,降低了PSO算法的復雜度[12],k+1次迭代時粒子i的位置xi(k+1)為

PSO和SPSO中第k次迭代時慣性因子w更新策略為,如:

其中kmax為最大迭代次數,wmin、wmax分別為人工預設的慣性因子的最大值和最小值。
為提高PSO的收斂速度,針對PSO中的固定種群學習率c2進行改進。提出k次迭代時粒子i的種群學習率c2更新公式:

其中:a1、a2為縮放因子,n為粒子群粒子個數。
將該更新策略引入PSO,提出IPSO。為使改進粒子群算法迭代速度加快,將上述種群學習率更新策略引入SPSO,提出改進簡化粒子群算法(ISPSO)。
至此,提出的兩種優化算法IPSO與ISPSO,具體步驟如下:
Step1初始化粒子群:給定慣性因子wmin、wmax等參數,初始化粒子位置;
Step2計算初始粒子適應度值;
Step3更新個體極值:將粒子i的當前適應度與個體極值適應度比較,若前者更優,則更新個體極值;
Step4更新全局極值:將粒子i的當前適應度與全局適應度比較,若前者更優,則更新全局極值;
Step5更新迭代種群學習率c2;
Step6更新慣性因子w;
Step7 IPSO更新粒子位置x和速度v或ISPSO更新粒子位置x;
Step8達到最大迭代次數退出算法,否則轉至Step2。
為確定種群更新公式中的兩個參數取值對算法的影響和驗證算法性能,尋取3個常用基準函數如表1所示。

表1 基準函數表
學習率更新公式中參數a1、a2是算法性能的重要影響因素之一,設當a1為自變量時a2=100,當a2為自變量時a1=0.6,以Drop-Wave函數在種群數n=30時,IPSO、ISPSO分別獨立運行1001次,計算算法收斂所需迭代次數平均和尋找到的最優值平均值。參數a1、a2的變化對算法平均收斂速度和準確度平均值的影響如圖1所示。

圖1 學習率參數變化對算法影響圖
圖1中四幅圖分別表示IPSO算法、ISPSO算法在不同縮放因子a1、a2下的學習曲線。從圖1(a)可以看出IPSO算法種群學習率縮放因子a1增加時收斂精度上升,但同時,收斂速度會有所降低;圖1(b)可以分析得出IPSO算法縮放因子a2增加時收斂精度降低,但收斂速度會上升。同理,圖1(c)、(d)可以得出ISPSO算法縮放因子a1增加時收斂精度上升,收斂速度降低;縮放因子a2增加時收斂精度降低,收斂速度會上升。
在本小節中,分別將PSO算法、IPSO算法、SPSO算法、ISPSO算法對三個常用基準函數進行1001次獨立尋優,設a1=0.01,a2=9,尋優結果如表2表示。由表2可知,4個算法中PSO的收斂精度更高,其次為ISPSO,但其他算法收斂精度較之PSO變化不大。各個算法在不同函數下收斂曲線變化圖如圖2所示。

表2 算法尋優結果均值和方差表
從圖2(a)、(b)、(c)的三幅收斂曲線圖可得,在四個算法中,PSO算法雖收斂精度較高,但收斂速度最慢。IPSO算法收斂精度最低,但收斂速度比PSO算法稍快一些。SPSO算法有著較快的收斂精度和收斂速度。收斂速度最快的是ISPSO算法,且其收斂精度僅次于PSO算法。

圖2 drop-wave、griewank、restrigin下不同算法收斂對比分析
VMD算法和MCKD算法的參數選擇對處理信號的結果影響較大,因此,合理對算法參數進行選擇至關重要。采用IPSO算法對VMD及MCKD參數進行尋優選擇是有效并且可靠的。
亞像元信號提取的主要任務是將激光位移測量系統(LDMS)的模擬前端(AFE)混合信號中的噪音信號抑制或消除,提取出激光位移信號分量或多重反射信號[13]。
線陣CCD激光位移傳感器測量物體的位移時,被測物體的位移、透明度、介質吸收系數、厚度、表面粗糙度、光點直徑和折射系數等因素均會對AFE的信號造成影響,使得AFE的輸出信號為包含激光位移信號、多重反射位移信號、高斯白噪聲、瑞利散射噪聲等的混合信號[14]。
變分模態分解(VMD)可將一個復雜信號分解為有限數量的IMF之和[15],首先利用VMD對AFE輸出信號進行信噪分離。由ISPSO尋找VMD的最優模態分解個數K和二次懲罰因子α。設定適應度函數:

混合信號經過VMD分解為K個IMF分量后,計算各個分量的峭度系數,噪聲分量的峭度系數相對較小,選取峭度系數高的IMF分量信號重構,再對重構信號進行MCKD分解。
MCKD以最大峭度作為目標函數,通過迭代尋找一系列的FIR濾波器,使得原始周期性沖擊序列的相關峭度最大[16],其結果受濾波器長度L、解卷積周期T、位移數M等的影響。利用ISPSO對MCKD尋最優濾波器長度L、解卷積周期T、位移數M。設適應度函數為

其中Q為處理后信號的包絡譜峰值因子,P為原信號最高值點經MCKD處理后的值。β3、β4為縮放因子。
采用基恩士的LK-081激光位移傳感器,測量試驗臺與激光位移傳感器之間的距離,實驗平臺如圖3所示,提取出的激光位移電信號如圖4所示。

圖3 實驗平臺圖

圖4 實驗采集激光位移信號圖
以式(5)中Ad為適應度函數,β1=0.5,β2=1,通過ISPSO算法對VMD參數的模態個數K和懲罰系數α進行尋優,得K=5,α=438激光位移信號經VMD分解得各IMF如圖5所示。

圖5 真實數據經VMD分解結果圖
得到IMF1~IMF5的峭度系數為IMF1=16.2845;IMF2=14.4154;IMF=33.3531IMF=43.2383;IMF5=3.3277。
判定IMF3~IMF5為無用噪聲信號,將IMF1和IMF2進行信號重構,得如圖6所示信號。

圖6 真實數據經VMD分解后重構結果圖
對重構后的信號進行ISPSO_MCKD算法處理,適應度函數式(6),β的取值為β3=0.4,β4=0.6,經過對MCKD算法參數進行尋優,得濾波器長度L=498,解卷積周期T=142,位移數M=8,處理后圖形如圖7所示。

圖7 預處理后真實數據經MCKD處理結果圖
可提取采樣序列峰值點,其采樣序列坐標為1996,將像元離散化后對應亞像元峰值點,再通過亞像元偏移補償,轉化為位移量等步驟即可得到位移量。
本文提出了一種粒子種群數與迭代次數相結合得動態更新種群學習率的策略,改進了粒子群算法和簡化粒子群算法,提出的ISPSO算法擁有更快的收斂速度,精度較之PSO減小不大。對于需要快速收斂、參數要求嚴格的場合,ISPSO更適用。同時,將算法應用于激光位移傳感器信號亞像元峰值提取相關算法參數尋優,驗證了該算法的可行性。
目前,該算法已成功應用于基于激光位移傳感器的汽車前束角的檢測與調整相關算法參數尋優,激光測量汽車前橋前束角系統構架如圖8所示。

圖8 IPSO_VMD_MCKD用于汽車前束角檢測圖
系統通過伺服電機驅動滑軌,利用激光位移傳感器測量位移,利用VMD與MCKD處理后,測得同一輪轂兩點距離,通過計算即可得到汽車前束角。