高 楊,韓太林,王 磊,2,張永立
(1.長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院, 長(zhǎng)春 130022; 2.中國(guó)人民解放軍63850部隊(duì), 吉林 白城 137000)
火炮、導(dǎo)彈等武器裝備在發(fā)射時(shí)產(chǎn)生的沖擊波會(huì)導(dǎo)致人體器官損傷與武器周邊零部件損壞,因此需要準(zhǔn)確測(cè)量沖擊波參數(shù)為評(píng)估沖擊波毀傷提供科學(xué)依據(jù)[1]。沖擊波屬于瞬態(tài)信號(hào),它具有上升速度快,超壓峰值高,頻譜寬等特點(diǎn)。一般用于沖擊波測(cè)試的主要有壓電式和壓阻式傳感器,其中壓電式傳感器在使用上受濕度、電纜容性和裝配方式等條件影響較大[2],因此采用壓阻式傳感器進(jìn)行沖擊波測(cè)試。而常規(guī)電測(cè)法使用的壓阻式壓力傳感器受制作工藝等條件限制,工作頻帶小于信號(hào)頻譜,導(dǎo)致信號(hào)失真,引入動(dòng)態(tài)誤差,不滿足測(cè)量要求[3-4]。
為了使測(cè)試結(jié)果更加精確,須對(duì)傳感器的動(dòng)態(tài)特性進(jìn)行補(bǔ)償,提高傳感器的響應(yīng)速度、抑制超調(diào)量、擴(kuò)展頻譜。常用補(bǔ)償方法主要有兩類:一是依賴傳感器動(dòng)態(tài)模型的零極點(diǎn)配置法、反卷積法等,此類方法需要確定傳感器動(dòng)態(tài)模型,實(shí)現(xiàn)較復(fù)雜且受傳感器建模誤差影響較大;二是不依賴動(dòng)態(tài)模型的神經(jīng)網(wǎng)絡(luò)算法、群智能算法等,其中群智能算法補(bǔ)償精度高,體現(xiàn)出巨大優(yōu)勢(shì)[5]。在基于群智能算法的動(dòng)態(tài)補(bǔ)償方法研究中,粒子群優(yōu)化算法(PSO)因?yàn)樗惴ńY(jié)構(gòu)清晰,精度較高等優(yōu)點(diǎn)應(yīng)用最多[6-7],但PSO算法后期搜索速度慢,且易陷入局部最優(yōu)。果蠅算法(FOA)依靠其簡(jiǎn)單的個(gè)體行為和群體規(guī)則,對(duì)最優(yōu)解信息更加敏感,因此具有更強(qiáng)的全局尋優(yōu)能力和更快的計(jì)算速度。但因候選解為個(gè)體與原點(diǎn)距離的倒數(shù),F(xiàn)OA算法不能解決最優(yōu)值為負(fù)數(shù)的問(wèn)題,適用范圍收到了限制[8-10]。因此,本文引入果蠅算法并對(duì)其進(jìn)行改進(jìn),通過(guò)多次迭代確定最優(yōu)補(bǔ)償系數(shù),提高傳感器動(dòng)態(tài)補(bǔ)償精度。
果蠅優(yōu)化算法(Fruit-fly Optimization Algorithm,FOA)是Pan于2011年提出的一種用來(lái)尋求全局最優(yōu)解的新方法[11],通過(guò)對(duì)果蠅覓食行為進(jìn)行仿真模擬,演化成具有全局搜索能力的優(yōu)化算法,具有可塑性好、全局搜索能力強(qiáng)、搜索速度快和求解精度高等優(yōu)點(diǎn)[12]。果蠅個(gè)體利用其良好的嗅覺(jué)器官在空間中嗅探到食物源,然后飛近目標(biāo),其他同伴依靠敏銳的視覺(jué)系統(tǒng)迅速聚集到所獲食物味道最濃的果蠅位置。果蠅種群搜索食物的過(guò)程就是不斷從味道濃度小的地方轉(zhuǎn)移到味道濃度大的地方,直到找到食物。圖1展示了果蠅群體搜尋食物的迭代過(guò)程。
圖1 果蠅群體搜索食物過(guò)程
圖1中,初始點(diǎn)為果蠅種群的迭代起始點(diǎn),其位置信息為隨機(jī)賦予。Dist為果蠅個(gè)體與原點(diǎn)之間的直線距離;S為其距離的倒數(shù),代表果蠅個(gè)體的味道濃度判定值;Smell為果蠅個(gè)體所獲取的味道濃度值;Function函數(shù)作為算法的適應(yīng)度函數(shù),一般是尋優(yōu)問(wèn)題所對(duì)應(yīng)的數(shù)學(xué)模型,被用于計(jì)算果蠅個(gè)體的味道濃度值。
果蠅優(yōu)化算法將待優(yōu)化問(wèn)題的解空間對(duì)應(yīng)為果蠅飛行的空間。在每一次的迭代尋優(yōu)過(guò)程中,每個(gè)果蠅個(gè)體所在的位置信息都是待優(yōu)化問(wèn)題的一個(gè)可行解。通過(guò)對(duì)適應(yīng)度函數(shù)進(jìn)行計(jì)算獲取果蠅群體的味道濃度值,并找到味道濃度值最佳的果蠅個(gè)體的位置,其他果蠅都向著最優(yōu)個(gè)體移動(dòng)。經(jīng)過(guò)一次又一次的尋優(yōu),所獲取到的味道濃度值越來(lái)越高,最優(yōu)的味道濃度值對(duì)應(yīng)的果蠅個(gè)體位置信息便是本次待優(yōu)化問(wèn)題的最優(yōu)解。
FOA算法與PSO算法一樣,都依靠群體間的互相協(xié)作與信息共享。PSO算法依據(jù)個(gè)體最優(yōu)與群體最優(yōu)來(lái)更新粒子自身的速度,并且依靠慣性權(quán)重系數(shù)決定上次迭代速度保留多少。而FOA算法利用視覺(jué)搜索機(jī)制,當(dāng)群體的單次迭代出現(xiàn)最優(yōu)值時(shí),與種群的歷史最優(yōu)值進(jìn)行比較,若本次迭代結(jié)果優(yōu)于過(guò)去的解,則直接繼承該個(gè)體位置為種群下一次迭代搜索的空間位置。FOA算法較PSO算法而言,其所需參數(shù)更少,因此計(jì)算量更小,尋優(yōu)速度更快,且減小了參數(shù)取值不當(dāng)對(duì)算法造成的影響;對(duì)于上次迭代的最優(yōu)解進(jìn)行完全繼承的方式也使得FOA算法對(duì)最優(yōu)解信息的獲取更加敏感,因此FOA算法的全局尋優(yōu)能力比PSO更強(qiáng),但是單次搜索陷入局部最優(yōu)的概率也大于PSO。
然而在解決實(shí)際工程問(wèn)題時(shí),為了降低群智能算法隨機(jī)性對(duì)單次尋優(yōu)結(jié)果的影響,總是采用多次尋優(yōu)來(lái)確定更好的結(jié)果。計(jì)算速度快,對(duì)軟硬件要求低,具備連續(xù)優(yōu)化能力的FOA算法在相同時(shí)間內(nèi)可以進(jìn)行更多次的尋優(yōu)進(jìn)程,既降低了算法隨機(jī)性的影響,又避免了單次搜索陷入局部最優(yōu)的問(wèn)題[13-14]。
FOA算法也存在一些缺陷需要改進(jìn):味道濃度判定值Si為果蠅個(gè)體到原點(diǎn)距離的倒數(shù),Si一定是正數(shù),不能解決定義域包含負(fù)數(shù)的問(wèn)題,從而影響在壓阻傳感器動(dòng)態(tài)補(bǔ)償上的應(yīng)用;由于味道濃度判定值Si不是均勻分布的,導(dǎo)致FOA無(wú)法均勻地在解空間內(nèi)進(jìn)行全局搜索等等[15]。
針對(duì)上文所提果蠅優(yōu)化算法的缺陷,將從算法本身完善和尋優(yōu)策略優(yōu)化這兩方面對(duì)果蠅算法進(jìn)行改進(jìn),即改變候選解產(chǎn)生機(jī)制和采用動(dòng)態(tài)步長(zhǎng)搜索策略,使其能夠被更好地運(yùn)用到壓阻傳感器的動(dòng)態(tài)補(bǔ)償上。
FOA算法具有候選解只能為正數(shù)且逐漸趨向于0的缺陷,因此本文所改進(jìn)的DFOA放棄原算法中味道濃度判定值Si為距離倒數(shù)的方式,在求解高維優(yōu)化問(wèn)題時(shí),采用果蠅個(gè)體在立體空間內(nèi)各維度上的坐標(biāo)信息直接作為味道濃度判定值的候選解。
同時(shí),優(yōu)化算法的尋優(yōu)能力在于全局尋優(yōu)和局部尋優(yōu)相結(jié)合。在優(yōu)化過(guò)程初期,算法依靠大步長(zhǎng)可以具備較強(qiáng)的全局搜索能力,而在優(yōu)化過(guò)程后期,算法需要通過(guò)減小步長(zhǎng)來(lái)增強(qiáng)局部搜索能力。因此本為引入步長(zhǎng)調(diào)節(jié)系數(shù)ω
ω=k1-(k1-k2)*(gen/maxgen)2
(1)
經(jīng)試驗(yàn),其中動(dòng)態(tài)補(bǔ)償調(diào)節(jié)參數(shù)k1,k2的值分別設(shè)為1和0.1,gen為當(dāng)前迭代次數(shù),maxgen為最大迭代次數(shù),補(bǔ)償調(diào)節(jié)系數(shù)ω隨著迭代次數(shù)的增加而減小,如圖2所示。
圖2 補(bǔ)償調(diào)節(jié)系數(shù)變化
N維尋優(yōu)問(wèn)題的表達(dá)式可歸結(jié)為FOA(f(x1,x2,x3,x4,…,xn)),設(shè)定果蠅種群大小sizepop和迭代次數(shù)iter_times,每個(gè)果蠅個(gè)體的位置信息為X(i, j),其中i=1,2,3,…,sizepop為個(gè)體標(biāo)號(hào),j=1,2,3,…,n為維度標(biāo)號(hào)。
1) 第一次尋優(yōu)過(guò)程中,隨機(jī)初始化果蠅群體位置X_axis(, j),下式中Rand(, j)[LR,UR]為各維度所設(shè)初始區(qū)間內(nèi)的某個(gè)隨機(jī)位置。
InitalizeX_axis(i, j)=Rand(, j)[LR,UR]
(2)
2) 賦予果蠅個(gè)體利用嗅覺(jué)搜尋食物所需的各維度上的隨機(jī)距離與方向,并將其作為味道濃度判定值(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))代入味道濃度判定函數(shù)(或稱為Fitnessfunction)以求出該果蠅個(gè)體所在位置的味道濃度(Smelli)。
Smelli=Function(S(i, j))
(5)
4) 找出該果蠅群體中味道濃度最高的果蠅(求極優(yōu)值)。
[bestSmellbestIndex]=best(Smelli)
(6)
5) 保留最佳味道濃度值與位置坐標(biāo),此時(shí)果蠅種群利用視覺(jué)向該位置飛去。
Smellbest=bestSmell
(7)
X_axis(i, j)=X(bestIndex)
(8)
6) 進(jìn)入迭代尋優(yōu),重復(fù)執(zhí)行步驟2)~4),并判斷味道濃度是否優(yōu)于前一迭代味道濃度,若是則實(shí)行步驟5)。
為研究DFOA算法實(shí)際效果,采用4個(gè)標(biāo)準(zhǔn)的測(cè)試函數(shù)進(jìn)行最小值尋優(yōu)測(cè)試,并且與FOA算法及PSO算法的性能進(jìn)行對(duì)比試驗(yàn),其中標(biāo)準(zhǔn)測(cè)試函數(shù)如下,其中-30 1) Ackley函數(shù): (9) 2) Sphere函數(shù): (10) 3)Rastrigrin函數(shù): (11) 4)Griewank函數(shù): (12) 將n設(shè)為2,xi取(-8,8),4個(gè)尋優(yōu)測(cè)試函數(shù)如圖3所示。其中,Sphere為單峰函數(shù),Ackley函數(shù),Rastrigin函數(shù)和Griewank函數(shù)都是典型的多峰極值函數(shù),常被用于算法函數(shù)性能的測(cè)試。 圖3 標(biāo)準(zhǔn)尋優(yōu)測(cè)試函數(shù) 在以上各函數(shù)的測(cè)試中,變量維數(shù)均設(shè)置為30,果蠅種群大小和粒子群大小都取為50,最大迭代次數(shù)為2 000。3種算法對(duì)于每個(gè)測(cè)試函數(shù)都獨(dú)立進(jìn)行20次重復(fù)測(cè)試后計(jì)算均值,衡量指標(biāo)為尋優(yōu)結(jié)果和運(yùn)行時(shí)間。結(jié)果如表1和表2所示。 由于算法所求最優(yōu)值精度較高,為了更加清晰直觀表示,將3種算法對(duì)4種測(cè)試函數(shù)連續(xù)20次的平均適應(yīng)度值進(jìn)行取對(duì)數(shù)操作,并將其指數(shù)在表2中呈現(xiàn)出來(lái)。 從3種算法對(duì)測(cè)試函數(shù)的適應(yīng)度值尋優(yōu)結(jié)果來(lái)看,通過(guò)表2的指數(shù)形式可知,F(xiàn)OA算法略優(yōu)于PSO,而DFOA算法的精度數(shù)量級(jí)則遠(yuǎn)遠(yuǎn)高于前兩者,這表明DFOA的尋優(yōu)精度要優(yōu)于FOA和PSO算法;在程序運(yùn)行耗時(shí)方面,DFOA與FOA迭代2000次的耗時(shí)均遠(yuǎn)小于PSO,表明FOA及其改進(jìn)算法具有運(yùn)算量較小,硬件要求較低的特點(diǎn);同時(shí),在Rastrigrin函數(shù)的優(yōu)化上,DFOA有效解決了FOA算法因?yàn)楹蜻x解只能是正數(shù)所導(dǎo)致的尋優(yōu)失敗問(wèn)題。因此,本文在果蠅優(yōu)化算法上所提出的改進(jìn)是有效的,DFOA在尋優(yōu)問(wèn)題中較FOA與PSO而言,具有更高的搜索精度和搜索效率。同時(shí),適用性變得更加廣泛的DFOA優(yōu)化算法也能夠被更好地運(yùn)用于壓阻式壓力傳感器的動(dòng)態(tài)補(bǔ)償研究中去。 表1 標(biāo)準(zhǔn)測(cè)試函數(shù)結(jié)果 表2 尋優(yōu)結(jié)果精度 在沖擊波所產(chǎn)生的瞬態(tài)信號(hào)測(cè)試過(guò)程中,由于傳感器動(dòng)態(tài)性能不足導(dǎo)致所測(cè)瞬態(tài)信號(hào)發(fā)生畸變,引入動(dòng)態(tài)誤差,因此需要對(duì)傳感器實(shí)測(cè)數(shù)據(jù)進(jìn)行動(dòng)態(tài)補(bǔ)償,消除誤差,盡可能地還原出原始信號(hào)[16]。壓阻壓力傳感器動(dòng)態(tài)補(bǔ)償原理如圖4所示。 圖4 動(dòng)態(tài)補(bǔ)償原理框圖 其中,X(n)為原始被測(cè)信號(hào),經(jīng)過(guò)傳感器系統(tǒng)G(z)后,得到傳感器所測(cè)信號(hào)為Y(n)。由于傳感器測(cè)試系統(tǒng)的工作帶寬有限且在傳感器諧振頻率左右的頻率分量被失真放大,從而引入了動(dòng)態(tài)誤差,而為了盡量減小誤差,構(gòu)建補(bǔ)償系統(tǒng)H(z),既可以拓寬測(cè)試系統(tǒng)的工作帶寬,也可以使得實(shí)測(cè)信號(hào)經(jīng)過(guò)補(bǔ)償系統(tǒng)后的信號(hào)Y′(n)可以消弭動(dòng)態(tài)誤差[17]。因此,只需要求取最優(yōu)的系統(tǒng)H(z)的傳遞函數(shù)使得經(jīng)過(guò)補(bǔ)償后的Y′(n)盡量接近原始信號(hào)X(n),并且動(dòng)態(tài)性能最佳。以實(shí)測(cè)信號(hào)Y(n)作為輸入數(shù)據(jù),X(n)作為輸出數(shù)據(jù)構(gòu)成差分方程: A(z)X(n)=B(z)Y(n) (13) (14) 式(13)中:a0,a1,…,an,b0,b1,…,bn為補(bǔ)償系統(tǒng)所需系數(shù);n為補(bǔ)償系統(tǒng)的階數(shù)。為了獲得最佳的補(bǔ)償系統(tǒng)的傳遞函數(shù),采用DFOA算法尋優(yōu)獲得最佳的參數(shù)組合。以n階補(bǔ)償系統(tǒng)為例,其所需參數(shù)為2n+2個(gè),即2n+2維變量尋優(yōu),每個(gè)果蠅個(gè)體的位置信息為2n+2維X(,2n+2),每個(gè)果蠅個(gè)體都表示一個(gè)可行的傳遞函數(shù)。 在動(dòng)態(tài)補(bǔ)償系統(tǒng)中常用的適應(yīng)度函數(shù)如下: (15) 式中:y′(n)為補(bǔ)償后數(shù)據(jù);x(n)為原始數(shù)據(jù),二者的最小二乘誤差越小,則代表尋優(yōu)個(gè)體的適應(yīng)度值越好,經(jīng)過(guò)此個(gè)體所代表的補(bǔ)償系統(tǒng)后,補(bǔ)償數(shù)據(jù)更加接近原始輸入信號(hào)?;贒FOA的壓阻傳感器動(dòng)態(tài)補(bǔ)償原理如圖5所示。 圖5 基于DFOA的壓阻傳感器動(dòng)態(tài)補(bǔ)償原理框圖 激波管是在壓阻傳感器的動(dòng)態(tài)校準(zhǔn)中常用的設(shè)備,它通過(guò)高低壓室的壓差使得其分隔薄膜破裂,產(chǎn)生激波快速傳播并在低壓室末端產(chǎn)生標(biāo)準(zhǔn)階躍壓力信號(hào)作為傳感器的輸入信號(hào)。由于前文所述的傳感器諸多缺陷帶來(lái)的動(dòng)態(tài)誤差,標(biāo)準(zhǔn)階躍壓力信號(hào)經(jīng)過(guò)傳感器系統(tǒng)后所得的實(shí)測(cè)信號(hào)如圖6虛線部分所示。 圖6 激波管壓力測(cè)試信號(hào)及補(bǔ)償信號(hào) 繪制激波管校準(zhǔn)實(shí)測(cè)數(shù)據(jù)的頻譜如圖7虛線所示,可見(jiàn)傳感器在其頻率諧振點(diǎn)74.33 kHz附近對(duì)輸入信號(hào)進(jìn)行了異常放大,引入了動(dòng)態(tài)誤差,所測(cè)得信號(hào)嚴(yán)重失真。 圖7 激波管實(shí)測(cè)信號(hào)及補(bǔ)償信號(hào)頻譜 本研究采用10階線性系統(tǒng)作為動(dòng)態(tài)補(bǔ)償系統(tǒng),以傳感器系統(tǒng)的激波管實(shí)測(cè)信號(hào)作為輸入,使用前文所提出的改進(jìn)后果蠅優(yōu)化算法(DFOA)對(duì)傳遞函數(shù)的參數(shù)組合進(jìn)行尋優(yōu),果蠅種群設(shè)為300,經(jīng)過(guò)500次迭代尋優(yōu)后最終確定的補(bǔ)償系統(tǒng)的傳遞函數(shù)為: (16) 所得補(bǔ)償系統(tǒng)對(duì)實(shí)測(cè)數(shù)據(jù)進(jìn)行動(dòng)態(tài)補(bǔ)償后的效果如圖6實(shí)線所示。經(jīng)過(guò)動(dòng)態(tài)補(bǔ)償后,其上生時(shí)間提升至11 μs,超調(diào)量下降到3%,通過(guò)圖7補(bǔ)償后信號(hào)的頻譜可見(jiàn),諧振頻率點(diǎn)74.33 kHz處的高倍異常放大被有效抑制,使得補(bǔ)償后信號(hào)更加接近原始階躍信號(hào)。 在實(shí)際的沖擊波測(cè)試系統(tǒng)中,先在實(shí)驗(yàn)室內(nèi)用壓阻傳感器測(cè)試激波管信號(hào)并依此求解出其動(dòng)態(tài)補(bǔ)償系統(tǒng)傳遞函數(shù),再將傳感器所實(shí)測(cè)到的炮口沖擊波信號(hào)通過(guò)傳感器的補(bǔ)償系統(tǒng),最終便能夠得到動(dòng)態(tài)誤差較小的信號(hào)數(shù)據(jù)。 在某次火炮炮口沖擊波的測(cè)試中,某型號(hào)壓阻傳感器所測(cè)得的沖擊波信號(hào)和補(bǔ)償后的數(shù)據(jù)如圖8所示。 圖8 沖擊波實(shí)測(cè)信號(hào)補(bǔ)償前后 沖擊波信號(hào)到達(dá)之后,由于傳感器的諧振頻率較低,測(cè)試結(jié)果中疊加了幅度較高的振蕩波形,信號(hào)嚴(yán)重失真。所需的沖擊波超壓峰值和正壓作用時(shí)間等測(cè)試指標(biāo)無(wú)法得到。然而經(jīng)過(guò)DFOA尋優(yōu)所得動(dòng)態(tài)補(bǔ)償系統(tǒng)后,諧振頻率處的高倍異常放大被明顯抑制,超調(diào)量降低,補(bǔ)償后的信號(hào)更加接近于真實(shí)沖擊波信號(hào)。 在沖擊波測(cè)試系統(tǒng)中,為了提高傳感器的動(dòng)態(tài)特性,引入了基于DFOA算法的壓阻式壓力傳感器動(dòng)態(tài)補(bǔ)償系統(tǒng)。DFOA在候選解生成和搜索步長(zhǎng)兩方面對(duì)FOA進(jìn)行改進(jìn),在搜索精度和搜索效率上優(yōu)于FOA和PSO。通過(guò)DFOA算法求解出補(bǔ)償器參數(shù),構(gòu)建的補(bǔ)償系統(tǒng)使激波管校準(zhǔn)數(shù)據(jù)超調(diào)量降低到3%,擴(kuò)展了傳感器頻譜,降低了諧振頻率的影響。對(duì)實(shí)測(cè)沖擊波信號(hào)的實(shí)驗(yàn)表明,基于DFOA的傳感器動(dòng)態(tài)補(bǔ)償系統(tǒng)能夠有效提高傳感器系統(tǒng)的動(dòng)態(tài)性能。3 基于DFOA的傳感器動(dòng)態(tài)補(bǔ)償
3.1 動(dòng)態(tài)補(bǔ)償原理
3.2 DFOA對(duì)激波管數(shù)據(jù)補(bǔ)償
3.3 實(shí)測(cè)沖擊波信號(hào)補(bǔ)償
4 結(jié)論