高 楊,韓太林,王 磊,2,張永立
(1.長春理工大學 電子信息工程學院, 長春 130022; 2.中國人民解放軍63850部隊, 吉林 白城 137000)
火炮、導彈等武器裝備在發射時產生的沖擊波會導致人體器官損傷與武器周邊零部件損壞,因此需要準確測量沖擊波參數為評估沖擊波毀傷提供科學依據[1]。沖擊波屬于瞬態信號,它具有上升速度快,超壓峰值高,頻譜寬等特點。一般用于沖擊波測試的主要有壓電式和壓阻式傳感器,其中壓電式傳感器在使用上受濕度、電纜容性和裝配方式等條件影響較大[2],因此采用壓阻式傳感器進行沖擊波測試。而常規電測法使用的壓阻式壓力傳感器受制作工藝等條件限制,工作頻帶小于信號頻譜,導致信號失真,引入動態誤差,不滿足測量要求[3-4]。
為了使測試結果更加精確,須對傳感器的動態特性進行補償,提高傳感器的響應速度、抑制超調量、擴展頻譜。常用補償方法主要有兩類:一是依賴傳感器動態模型的零極點配置法、反卷積法等,此類方法需要確定傳感器動態模型,實現較復雜且受傳感器建模誤差影響較大;二是不依賴動態模型的神經網絡算法、群智能算法等,其中群智能算法補償精度高,體現出巨大優勢[5]。在基于群智能算法的動態補償方法研究中,粒子群優化算法(PSO)因為算法結構清晰,精度較高等優點應用最多[6-7],但PSO算法后期搜索速度慢,且易陷入局部最優。果蠅算法(FOA)依靠其簡單的個體行為和群體規則,對最優解信息更加敏感,因此具有更強的全局尋優能力和更快的計算速度。但因候選解為個體與原點距離的倒數,FOA算法不能解決最優值為負數的問題,適用范圍收到了限制[8-10]。因此,本文引入果蠅算法并對其進行改進,通過多次迭代確定最優補償系數,提高傳感器動態補償精度。
果蠅優化算法(Fruit-fly Optimization Algorithm,FOA)是Pan于2011年提出的一種用來尋求全局最優解的新方法[11],通過對果蠅覓食行為進行仿真模擬,演化成具有全局搜索能力的優化算法,具有可塑性好、全局搜索能力強、搜索速度快和求解精度高等優點[12]。果蠅個體利用其良好的嗅覺器官在空間中嗅探到食物源,然后飛近目標,其他同伴依靠敏銳的視覺系統迅速聚集到所獲食物味道最濃的果蠅位置。果蠅種群搜索食物的過程就是不斷從味道濃度小的地方轉移到味道濃度大的地方,直到找到食物。圖1展示了果蠅群體搜尋食物的迭代過程。

圖1 果蠅群體搜索食物過程
圖1中,初始點為果蠅種群的迭代起始點,其位置信息為隨機賦予。Dist為果蠅個體與原點之間的直線距離;S為其距離的倒數,代表果蠅個體的味道濃度判定值;Smell為果蠅個體所獲取的味道濃度值;Function函數作為算法的適應度函數,一般是尋優問題所對應的數學模型,被用于計算果蠅個體的味道濃度值。
果蠅優化算法將待優化問題的解空間對應為果蠅飛行的空間。在每一次的迭代尋優過程中,每個果蠅個體所在的位置信息都是待優化問題的一個可行解。通過對適應度函數進行計算獲取果蠅群體的味道濃度值,并找到味道濃度值最佳的果蠅個體的位置,其他果蠅都向著最優個體移動。經過一次又一次的尋優,所獲取到的味道濃度值越來越高,最優的味道濃度值對應的果蠅個體位置信息便是本次待優化問題的最優解。
FOA算法與PSO算法一樣,都依靠群體間的互相協作與信息共享。PSO算法依據個體最優與群體最優來更新粒子自身的速度,并且依靠慣性權重系數決定上次迭代速度保留多少。而FOA算法利用視覺搜索機制,當群體的單次迭代出現最優值時,與種群的歷史最優值進行比較,若本次迭代結果優于過去的解,則直接繼承該個體位置為種群下一次迭代搜索的空間位置。FOA算法較PSO算法而言,其所需參數更少,因此計算量更小,尋優速度更快,且減小了參數取值不當對算法造成的影響;對于上次迭代的最優解進行完全繼承的方式也使得FOA算法對最優解信息的獲取更加敏感,因此FOA算法的全局尋優能力比PSO更強,但是單次搜索陷入局部最優的概率也大于PSO。
然而在解決實際工程問題時,為了降低群智能算法隨機性對單次尋優結果的影響,總是采用多次尋優來確定更好的結果。計算速度快,對軟硬件要求低,具備連續優化能力的FOA算法在相同時間內可以進行更多次的尋優進程,既降低了算法隨機性的影響,又避免了單次搜索陷入局部最優的問題[13-14]。
FOA算法也存在一些缺陷需要改進:味道濃度判定值Si為果蠅個體到原點距離的倒數,Si一定是正數,不能解決定義域包含負數的問題,從而影響在壓阻傳感器動態補償上的應用;由于味道濃度判定值Si不是均勻分布的,導致FOA無法均勻地在解空間內進行全局搜索等等[15]。
針對上文所提果蠅優化算法的缺陷,將從算法本身完善和尋優策略優化這兩方面對果蠅算法進行改進,即改變候選解產生機制和采用動態步長搜索策略,使其能夠被更好地運用到壓阻傳感器的動態補償上。
FOA算法具有候選解只能為正數且逐漸趨向于0的缺陷,因此本文所改進的DFOA放棄原算法中味道濃度判定值Si為距離倒數的方式,在求解高維優化問題時,采用果蠅個體在立體空間內各維度上的坐標信息直接作為味道濃度判定值的候選解。
同時,優化算法的尋優能力在于全局尋優和局部尋優相結合。在優化過程初期,算法依靠大步長可以具備較強的全局搜索能力,而在優化過程后期,算法需要通過減小步長來增強局部搜索能力。因此本為引入步長調節系數ω
ω=k1-(k1-k2)*(gen/maxgen)2
(1)
經試驗,其中動態補償調節參數k1,k2的值分別設為1和0.1,gen為當前迭代次數,maxgen為最大迭代次數,補償調節系數ω隨著迭代次數的增加而減小,如圖2所示。

圖2 補償調節系數變化
N維尋優問題的表達式可歸結為FOA(f(x1,x2,x3,x4,…,xn)),設定果蠅種群大小sizepop和迭代次數iter_times,每個果蠅個體的位置信息為X(i, j),其中i=1,2,3,…,sizepop為個體標號,j=1,2,3,…,n為維度標號。
1) 第一次尋優過程中,隨機初始化果蠅群體位置X_axis(, j),下式中Rand(, j)[LR,UR]為各維度所設初始區間內的某個隨機位置。
InitalizeX_axis(i, j)=Rand(, j)[LR,UR]
(2)
2) 賦予果蠅個體利用嗅覺搜尋食物所需的各維度上的隨機距離與方向,并將其作為味道濃度判定值(Si)
S(i, j)=X(i, j)=X_axis(, j)+ω*LBj*(2*rand-1)
(3)
ω=k1-(k1-k2)*(gen/maxgen)2
(4)
3) 將味道濃度判定值(S(i, j))代入味道濃度判定函數(或稱為Fitnessfunction)以求出該果蠅個體所在位置的味道濃度(Smelli)。
Smelli=Function(S(i, j))
(5)
4) 找出該果蠅群體中味道濃度最高的果蠅(求極優值)。
[bestSmellbestIndex]=best(Smelli)
(6)
5) 保留最佳味道濃度值與位置坐標,此時果蠅種群利用視覺向該位置飛去。
Smellbest=bestSmell
(7)
X_axis(i, j)=X(bestIndex)
(8)
6) 進入迭代尋優,重復執行步驟2)~4),并判斷味道濃度是否優于前一迭代味道濃度,若是則實行步驟5)。
為研究DFOA算法實際效果,采用4個標準的測試函數進行最小值尋優測試,并且與FOA算法及PSO算法的性能進行對比試驗,其中標準測試函數如下,其中-30 1) Ackley函數: (9) 2) Sphere函數: (10) 3)Rastrigrin函數: (11) 4)Griewank函數: (12) 將n設為2,xi取(-8,8),4個尋優測試函數如圖3所示。其中,Sphere為單峰函數,Ackley函數,Rastrigin函數和Griewank函數都是典型的多峰極值函數,常被用于算法函數性能的測試。 圖3 標準尋優測試函數 在以上各函數的測試中,變量維數均設置為30,果蠅種群大小和粒子群大小都取為50,最大迭代次數為2 000。3種算法對于每個測試函數都獨立進行20次重復測試后計算均值,衡量指標為尋優結果和運行時間。結果如表1和表2所示。 由于算法所求最優值精度較高,為了更加清晰直觀表示,將3種算法對4種測試函數連續20次的平均適應度值進行取對數操作,并將其指數在表2中呈現出來。 從3種算法對測試函數的適應度值尋優結果來看,通過表2的指數形式可知,FOA算法略優于PSO,而DFOA算法的精度數量級則遠遠高于前兩者,這表明DFOA的尋優精度要優于FOA和PSO算法;在程序運行耗時方面,DFOA與FOA迭代2000次的耗時均遠小于PSO,表明FOA及其改進算法具有運算量較小,硬件要求較低的特點;同時,在Rastrigrin函數的優化上,DFOA有效解決了FOA算法因為候選解只能是正數所導致的尋優失敗問題。因此,本文在果蠅優化算法上所提出的改進是有效的,DFOA在尋優問題中較FOA與PSO而言,具有更高的搜索精度和搜索效率。同時,適用性變得更加廣泛的DFOA優化算法也能夠被更好地運用于壓阻式壓力傳感器的動態補償研究中去。 表1 標準測試函數結果 表2 尋優結果精度 在沖擊波所產生的瞬態信號測試過程中,由于傳感器動態性能不足導致所測瞬態信號發生畸變,引入動態誤差,因此需要對傳感器實測數據進行動態補償,消除誤差,盡可能地還原出原始信號[16]。壓阻壓力傳感器動態補償原理如圖4所示。 圖4 動態補償原理框圖 其中,X(n)為原始被測信號,經過傳感器系統G(z)后,得到傳感器所測信號為Y(n)。由于傳感器測試系統的工作帶寬有限且在傳感器諧振頻率左右的頻率分量被失真放大,從而引入了動態誤差,而為了盡量減小誤差,構建補償系統H(z),既可以拓寬測試系統的工作帶寬,也可以使得實測信號經過補償系統后的信號Y′(n)可以消弭動態誤差[17]。因此,只需要求取最優的系統H(z)的傳遞函數使得經過補償后的Y′(n)盡量接近原始信號X(n),并且動態性能最佳。以實測信號Y(n)作為輸入數據,X(n)作為輸出數據構成差分方程: A(z)X(n)=B(z)Y(n) (13) (14) 式(13)中:a0,a1,…,an,b0,b1,…,bn為補償系統所需系數;n為補償系統的階數。為了獲得最佳的補償系統的傳遞函數,采用DFOA算法尋優獲得最佳的參數組合。以n階補償系統為例,其所需參數為2n+2個,即2n+2維變量尋優,每個果蠅個體的位置信息為2n+2維X(,2n+2),每個果蠅個體都表示一個可行的傳遞函數。 在動態補償系統中常用的適應度函數如下: (15) 式中:y′(n)為補償后數據;x(n)為原始數據,二者的最小二乘誤差越小,則代表尋優個體的適應度值越好,經過此個體所代表的補償系統后,補償數據更加接近原始輸入信號。基于DFOA的壓阻傳感器動態補償原理如圖5所示。 圖5 基于DFOA的壓阻傳感器動態補償原理框圖 激波管是在壓阻傳感器的動態校準中常用的設備,它通過高低壓室的壓差使得其分隔薄膜破裂,產生激波快速傳播并在低壓室末端產生標準階躍壓力信號作為傳感器的輸入信號。由于前文所述的傳感器諸多缺陷帶來的動態誤差,標準階躍壓力信號經過傳感器系統后所得的實測信號如圖6虛線部分所示。 圖6 激波管壓力測試信號及補償信號 繪制激波管校準實測數據的頻譜如圖7虛線所示,可見傳感器在其頻率諧振點74.33 kHz附近對輸入信號進行了異常放大,引入了動態誤差,所測得信號嚴重失真。 圖7 激波管實測信號及補償信號頻譜 本研究采用10階線性系統作為動態補償系統,以傳感器系統的激波管實測信號作為輸入,使用前文所提出的改進后果蠅優化算法(DFOA)對傳遞函數的參數組合進行尋優,果蠅種群設為300,經過500次迭代尋優后最終確定的補償系統的傳遞函數為: (16) 所得補償系統對實測數據進行動態補償后的效果如圖6實線所示。經過動態補償后,其上生時間提升至11 μs,超調量下降到3%,通過圖7補償后信號的頻譜可見,諧振頻率點74.33 kHz處的高倍異常放大被有效抑制,使得補償后信號更加接近原始階躍信號。 在實際的沖擊波測試系統中,先在實驗室內用壓阻傳感器測試激波管信號并依此求解出其動態補償系統傳遞函數,再將傳感器所實測到的炮口沖擊波信號通過傳感器的補償系統,最終便能夠得到動態誤差較小的信號數據。 在某次火炮炮口沖擊波的測試中,某型號壓阻傳感器所測得的沖擊波信號和補償后的數據如圖8所示。 圖8 沖擊波實測信號補償前后 沖擊波信號到達之后,由于傳感器的諧振頻率較低,測試結果中疊加了幅度較高的振蕩波形,信號嚴重失真。所需的沖擊波超壓峰值和正壓作用時間等測試指標無法得到。然而經過DFOA尋優所得動態補償系統后,諧振頻率處的高倍異常放大被明顯抑制,超調量降低,補償后的信號更加接近于真實沖擊波信號。 在沖擊波測試系統中,為了提高傳感器的動態特性,引入了基于DFOA算法的壓阻式壓力傳感器動態補償系統。DFOA在候選解生成和搜索步長兩方面對FOA進行改進,在搜索精度和搜索效率上優于FOA和PSO。通過DFOA算法求解出補償器參數,構建的補償系統使激波管校準數據超調量降低到3%,擴展了傳感器頻譜,降低了諧振頻率的影響。對實測沖擊波信號的實驗表明,基于DFOA的傳感器動態補償系統能夠有效提高傳感器系統的動態性能。


3 基于DFOA的傳感器動態補償
3.1 動態補償原理


3.2 DFOA對激波管數據補償


3.3 實測沖擊波信號補償

4 結論