趙 偉,侯保林,鮑 丹
(1.南京理工大學(xué) 機(jī)械工程學(xué)院,南京 210094;2.南京理工大學(xué) 瞬態(tài)物理國家重點(diǎn)實(shí)驗(yàn)室,南京 210094)
火炮軟后坐技術(shù)是一種減小火炮發(fā)射后坐力的專項(xiàng)新技術(shù)。(常規(guī)火炮在發(fā)射過程中伴隨有劇烈的沖擊與振動現(xiàn)象,與常規(guī)火炮不同,軟后坐火炮是在后坐部分向前運(yùn)動的過程中進(jìn)行擊發(fā),這種擊發(fā)模式利用火炮的前沖動能抵消了部分后坐能量,不僅減小火炮發(fā)射過程中的后坐力,而且同時(shí)減小火炮發(fā)射過程中的沖擊與振動。為進(jìn)一步研究軟后坐火炮發(fā)射過程的運(yùn)動特性,對其進(jìn)行大量試驗(yàn)來研究發(fā)射過程的運(yùn)動特性是十分不經(jīng)濟(jì)的,因此采用構(gòu)建動力學(xué)模型進(jìn)行數(shù)值仿真及試驗(yàn)數(shù)據(jù)修正的方法來研究軟后坐火炮發(fā)射過程中的動力學(xué)特性是十分有優(yōu)勢的且已經(jīng)成為了首要方法[1]。但是由于軟后坐火炮的復(fù)雜結(jié)構(gòu),其發(fā)射過程的動力學(xué)模型中存在大量的未知參數(shù),并且這些未知參數(shù)的選取決定了所建立動力學(xué)模型與實(shí)際系統(tǒng)的相似程度和準(zhǔn)確程度,因此如何準(zhǔn)確的確定這些未知參數(shù)成為了關(guān)鍵問題。傳統(tǒng)的、單一的優(yōu)化算法在多參數(shù)辨識問題上的求解存在辨識精度低的現(xiàn)象。近些年發(fā)展出來許多辨識算法和策略來提高辨識效果。文獻(xiàn)[2]采用改進(jìn)粒子群算法進(jìn)行參數(shù)辨識,提高辨識精度;文獻(xiàn)[3]提出自適應(yīng)混沌變異粒子群優(yōu)化辨識方法,提高了辨識效率,縮短計(jì)算時(shí)間;但是上述算法并不能高效求解發(fā)射過程種的多參數(shù)辨識問題。
為求解軟后坐火炮發(fā)射過程的多參數(shù)辨識問題,本文提出了一種適用于求解多參數(shù)辨識問題的算法,即改進(jìn)型免疫克隆布谷鳥算法(improved immune clone cuckoo algorithm,IICCA)。免疫克隆選擇算法是基于免疫系統(tǒng)的克隆選擇理論發(fā)展出來的一種智能算法[4]?;诿庖呖寺∵x擇算法的種群刷新操作和克隆操作,該算法在求解多參數(shù)尋優(yōu)問題上具有明顯優(yōu)勢[5-6]。但是傳統(tǒng)的免疫克隆算法存在計(jì)算量大、后期收斂速度慢、存在冗余迭代等缺點(diǎn)。引入其他的選擇策略,結(jié)合其他算法的優(yōu)勢,可有效進(jìn)一步提高免疫克隆選擇算法的優(yōu)越性。
本文針對免疫克隆選擇算法克隆種群多樣性低的問題,在更新過程中引入隨機(jī)雜交策略和高頻變異[7],提高克隆種群的局部搜索能力。針對傳統(tǒng)免疫克隆選擇算法變異概率為固定值,算法不易取得最佳概率值的問題,引入了文獻(xiàn)[8]的自適應(yīng)算子,自適應(yīng)算子增強(qiáng)了計(jì)算初期的全局搜索能力與計(jì)算后期的局部搜索能力。針對冗余計(jì)算的問題,引入精英抗體的提取算子,提高了計(jì)算效率。針對算法收斂速度慢的問題,引入疫苗接種策略[9]來提高算法的收斂速度,對疫苗接種后的抗體種群采用Lévy飛行策略和巢寄生行為[10]進(jìn)行二次搜索,提高疫苗接種后種群的多樣性,從而避免由于疫苗接種策略導(dǎo)致的抗體種群多樣性下降而陷入局部最優(yōu)。同時(shí)Lévy飛行相比其余隨機(jī)搜索具有更優(yōu)秀的全局搜索能力[11],在疫苗接種后的高質(zhì)量抗體群的基礎(chǔ)上進(jìn)行全局搜索,更加有利于種群向最優(yōu)解附近聚集。并且巢寄生行為本質(zhì)上是一種局部搜索行為,在高質(zhì)量的種群基礎(chǔ)上進(jìn)行局部搜索,更加利于算法收斂。布谷鳥算法相比粒子群優(yōu)化算法與遺傳算法具有更高的搜索效率[12],因此將免疫克隆選擇算法與布谷鳥算法相結(jié)合比與其他算法結(jié)合將具有更高的求解效率。為驗(yàn)證改進(jìn)后算法的有效性,選用5個多峰測試函數(shù)對其進(jìn)行驗(yàn)證,將IICCA與免疫克隆選擇算法(immune clone select algorithm,ICSA)、免疫遺傳算法(immune genetic algorithm,IGA)[13]、自適應(yīng)粒子群算法(adaptive particle swarm optimizer,APSO)[14]和改進(jìn)型布谷鳥算法(improved cuckoo search,ICS)[15]進(jìn)行尋優(yōu)性能對比測試。
本文對軟后坐火炮發(fā)射過程進(jìn)行動力學(xué)分析,建立軟后坐炮在發(fā)射過程中的動力學(xué)模型。在此基礎(chǔ)上,對動力學(xué)模型中的多參數(shù)采用IICCA算法進(jìn)行辨識,并與其他4種辨識算法進(jìn)行收斂速度和精度的比較,驗(yàn)證IICCA算法在求解軟后坐火炮發(fā)射過程多參數(shù)辨識問題的有效性和準(zhǔn)確性。
軟后坐火炮的后坐緩沖裝置由兩個制退機(jī)和兩個前沖機(jī)組成。設(shè)定炮口方向?yàn)檎较?其后坐部分發(fā)射過程的運(yùn)動方程為
mgsinθ-Fpt
(1)
式中:Fq為前沖機(jī)力;Fz為制退機(jī)力;Ff為由于密封裝置,前沖活塞桿與制退桿所受到的摩擦力總和;x為后坐部分的位移;sign(·)為符號函數(shù);m為后坐部分的質(zhì)量;θ為火炮射角;μ為導(dǎo)軌摩擦因數(shù);Fpt為炮膛合力。
前沖機(jī)共有兩類腔室,分別為氣體腔和液體腔。其中,液體腔又分為液體腔Ⅰ、液體腔Ⅱ和液體腔Ⅲ,前沖機(jī)結(jié)構(gòu)如圖1所示。前沖機(jī)的運(yùn)動形式為桿后坐形式,即前沖活塞桿隨炮身一起運(yùn)動。
圖1 前沖機(jī)結(jié)構(gòu)示意圖
前沖機(jī)力由液體腔Ⅲ的液體壓強(qiáng)提供,因此前沖機(jī)力的方程如式(2)所示
Fq=2pqAq
(2)
式中:pq為液體腔Ⅲ的壓強(qiáng);Aq為前沖活塞的面積。
(1) 前沖過程:記圖1中前沖活塞桿的活塞尾端與流液孔Ⅰ之間的距離為L。當(dāng)前沖位移x小于L時(shí),氣體腔的壓縮氣體向右推動游動活塞,液體腔Ⅰ中液體經(jīng)由流液孔Ⅰ和流液孔Ⅲ進(jìn)入液體腔Ⅱ,然后經(jīng)由流液孔Ⅱ進(jìn)入液體腔Ⅲ,從而推動前沖活塞向前運(yùn)動。分別列出前沖位移小于L時(shí)液體流經(jīng)流液孔Ⅰ、流液孔Ⅱ、流液孔Ⅲ時(shí)的伯努利方程如下
(3)
式中:vq1為液體在流液孔Ⅰ的絕對速度;vq2為液體在流液孔Ⅱ的絕對速度;vq3為液體在流液孔Ⅲ的絕對速度;py為液體腔Ⅰ的液體壓強(qiáng);pq為液體腔Ⅲ的液體壓強(qiáng);p1為液流流經(jīng)流液孔Ⅰ后的壓強(qiáng);p2為液流流經(jīng)流液孔Ⅲ后的壓強(qiáng);ρ為液體密度;ξq1,ξq2,ξq為前沖距離小于L時(shí)液體流過流液孔Ⅰ、流液孔Ⅱ、流液孔Ⅲ的能量損失系數(shù)。
根據(jù)連續(xù)性方程計(jì)算流各液孔的流速。
(4)
將式(3)、式(4)聯(lián)立即可求得前沖位移小于L時(shí)液體腔Ⅲ的壓強(qiáng)。
(5)
式中:Kq1為前沖位移小于L時(shí)液體流過流液孔Ⅱ的液壓阻力系數(shù),且Kq1=ξq+1;Aq1~Aq3分別為流液孔Ⅰ~流液孔Ⅲ的面積;Ay為游動活塞工作面積。
由于液體腔Ⅰ的壓強(qiáng)py仍是未知,因此需要對py進(jìn)行求解。根據(jù)氣體腔的狀態(tài)方程、游動活塞的牛頓運(yùn)動定律以及液體連續(xù)性方程推導(dǎo)液體腔Ⅰ的壓強(qiáng)如式(6)所示。
(6)
式中:n為氣體腔的氣體非線性指數(shù);fy為游動活塞與筒壁的摩擦力;my為游動活塞的質(zhì)量;lq0為氣體腔的初始長度;p0為氣體腔壓強(qiáng)。
當(dāng)前沖位移x>L時(shí),液體腔Ⅰ中的液體直接流經(jīng)流液孔Ⅰ進(jìn)入液體腔Ⅲ。此時(shí)液體腔Ⅲ中壓強(qiáng)的公式推導(dǎo)與式(5)同理。此處推導(dǎo)過程省略,液體腔Ⅲ的壓強(qiáng)為
(7)
式中,Kq2為前沖位移大于L時(shí)液體流過流液孔Ⅰ的液壓阻力系數(shù)。
軟后坐火炮的復(fù)進(jìn)過程與前沖過程前沖機(jī)的運(yùn)動一致,方程完全相同,因此不再贅述。
(2) 后坐過程:當(dāng)后坐運(yùn)動剛開始時(shí),后坐部分的位移x仍大于L,所以此時(shí)在前沖活塞的推動下,液體腔Ⅲ中的液體直接流經(jīng)流液孔Ⅰ進(jìn)入液體腔Ⅰ。根據(jù)伯努利方程與連續(xù)性方程推導(dǎo)出液體腔Ⅲ的壓強(qiáng)為
(8)
式中,Kq3為后坐位移大于L時(shí)的液壓阻力系數(shù)。
當(dāng)后坐一定距離,即后坐部分位移x (9) 式中:Kq4為后坐位移小于L時(shí),液體流過流體孔Ⅰ的液壓阻力系數(shù);ξq3,ξq4為后坐位移小于L時(shí),液體流過流體孔Ⅱ、流體孔Ⅳ的能量損失系數(shù);Aq4為流液孔Ⅳ的面積。 制退機(jī)由液體腔Ⅰ和液體腔Ⅱ兩個腔室組成,具體如圖2所示。制退機(jī)的運(yùn)動形式為桿后坐形式,即制退桿隨炮身一起運(yùn)動。 圖2 制退機(jī)結(jié)構(gòu)示意圖 制退機(jī)方程的假設(shè)條件與前沖機(jī)一致。制退機(jī)力由液體腔Ⅰ和液體腔Ⅱ的液體壓強(qiáng)差提供,因此制退機(jī)力的方程為 (10) 式中:Δpz為液體腔壓強(qiáng)差;Az為制退活塞的面積。 (1) 前沖過程:液體腔Ⅰ中的液體受到擠壓,單向閥處于打開狀態(tài),液體腔Ⅰ中的液體分兩股液流分別流入液體腔Ⅱ。一股經(jīng)單向閥的活塞口流入液體腔Ⅱ,另一股經(jīng)由筒壁溝槽流入液體腔Ⅱ。由于筒壁溝槽流口與單向閥流口的面積比接近于1∶1,因此為簡化計(jì)算,采用平均流速進(jìn)行等效。根據(jù)伯努利方程推導(dǎo)制退機(jī)內(nèi)部產(chǎn)生的壓強(qiáng)差如下 (11) 式中:Kz1為前沖過程制退機(jī)的液壓阻力系數(shù);Az1為溝槽的流口面積;Az2為單向閥的流口面積。 (2) 后坐過程:單向閥關(guān)閉,此時(shí)液體腔Ⅱ中的液體只能經(jīng)由筒壁溝槽流入液體腔Ⅰ。筒壁溝槽在后坐部分位移x>0時(shí)是等齊溝槽,但當(dāng)后坐位移x<0時(shí),筒壁溝槽是斜坡形狀。后坐過程制退機(jī)內(nèi)部產(chǎn)生的壓強(qiáng)差如式(12)所示 (12) 式中:Kz2,Kz3為后坐過程液體流經(jīng)筒壁溝槽的液壓阻力系數(shù);K為制退機(jī)斜坡溝槽的形狀比例系數(shù)。 (3) 復(fù)進(jìn)過程:此時(shí)制退機(jī)內(nèi)部液體流動狀態(tài)與前沖過程相同,但復(fù)進(jìn)過程中的溝槽為斜面溝槽。 (13) 式中,Kz4為復(fù)進(jìn)過程制退機(jī)的液壓阻力系數(shù)。 后坐部分運(yùn)動方程中需要辨識的參數(shù)有導(dǎo)軌摩擦因數(shù)μ和前沖活塞桿與制退桿所受到的摩擦力Ff,參數(shù)μ和Ff的數(shù)值正確與否影響著火炮發(fā)射過程中能量損失項(xiàng)的計(jì)算準(zhǔn)確性。 前沖機(jī)方程中的待辨識參數(shù)包括:前沖機(jī)的液壓阻力系數(shù)Kq1,Kq2,Kq3,Kq4,前沖機(jī)的損失系數(shù)ξq1,ξq2,ξq3,ξq4,氣體非線性指數(shù)n以及游動活塞的摩擦力fy。前沖機(jī)的液壓阻力系數(shù)和能量損失系數(shù)代表著液體流動過程中的沿程損失和局部損失。液壓阻力系數(shù)Kq1,Kq2,Kq3,Kq4和前沖機(jī)的損失系數(shù)ξq1,ξq2,ξq3,ξq4取值的準(zhǔn)確與否影響著液體腔Ⅲ中壓強(qiáng)變化規(guī)律計(jì)算的準(zhǔn)確性。n的取值影響著氣體腔壓強(qiáng)變化規(guī)律的求解,fy取值是否準(zhǔn)確影響著游動活塞運(yùn)動規(guī)律求解結(jié)果的準(zhǔn)確性進(jìn)而影響液體腔Ⅰ中壓強(qiáng)求解的正確性。 制退機(jī)方程中的待辨識參數(shù)包括:制退機(jī)液壓阻力系數(shù)Kz1,Kz2,Kz3,Kz4,制退機(jī)的液壓阻力系數(shù)取值是否準(zhǔn)確直接決定了制退機(jī)液體腔壓強(qiáng)差解算結(jié)果的準(zhǔn)確性,對火炮發(fā)射過程中制退機(jī)力的計(jì)算起著至關(guān)重要的作用。 待辨識的參數(shù)有16個,分別為Kq1,Kq2,Kq3,Kq4,Kz1,Kz2,Kz3,Kz4,ξq1,ξq2,ξq3,ξq4,n,fy,Ff,μ。待辨識參數(shù)的初始范圍如表1。 表1 待辨識參數(shù)的初始區(qū)間 參數(shù)辨識以尋優(yōu)算法為基礎(chǔ),尋找一組參數(shù)使得動力學(xué)模型的計(jì)算數(shù)據(jù)與試驗(yàn)所獲得的數(shù)據(jù)的時(shí)間序列相似度的值最大,即數(shù)值仿真數(shù)據(jù)與實(shí)測數(shù)據(jù)之間的誤差最小。為了與本文算法結(jié)合,將參數(shù)辨識模型做一定轉(zhuǎn)換,轉(zhuǎn)化為求最小值的問題。其數(shù)學(xué)模型為 (14) 式中:xd為第d個待辨識參數(shù);f(xi)為仿真輸出的第i個曲線;Di為第i個試驗(yàn)數(shù)據(jù)曲線;S(fi(X),Di)為第i組數(shù)據(jù)的相似度;αi為第i組數(shù)據(jù)相似度的權(quán)重系數(shù);F為性能函數(shù)。本文需要進(jìn)行相似度擬合的數(shù)據(jù)一共有兩組,分別為速度和位移,因此n=2。 式(14)中相似度S綜合考慮了曲線的數(shù)值相似度與形狀相似度兩部分,相似度S的范圍為[0,1]。S=0表示兩個組數(shù)據(jù)的所有特性均不相同;S=1表示兩組數(shù)據(jù)的所有特性高度一致。曲線數(shù)值相似度是計(jì)算的兩點(diǎn)間的歐氏距離,曲線形狀相似度的計(jì)算依據(jù)的是界標(biāo)分界法[16]。 3.1.1 算法描述 隨機(jī)產(chǎn)生規(guī)模為N的初始抗體種群X(0)= {X1,X2,…,XN}在d維搜索空間中進(jìn)行搜索計(jì)算,記第i個抗體為Xi={x1i,x2i,…,xdi},i=1,2,…,N。當(dāng)前抗體種群的親和度為aff={aff1,aff2,…,affN},抗體濃度den={den1,den2,…,denN},激勵度為sim={sim1,sim2,…,simN}。該算法通過對抗體種群按照激勵度從小到大排序,根據(jù)克隆算子對每個抗體逐一進(jìn)行克隆,克隆完成后進(jìn)行抗體隨機(jī)交叉、高頻變異、精英抗體提取、疫苗接種、免疫選擇、Lévy飛行策略、巢寄生行為和種群刷新,逐次迭代直至完成計(jì)算。算法描述如圖3所示。 圖3 算法描述 3.1.2 激勵度計(jì)算 激勵度是對抗體質(zhì)量的評價(jià),需要綜合考慮抗體的親和度和濃度,通常親和度高和濃度低的算子激勵度較大。 simi=a·affi-b·deni (15) 式中:simi為第i個抗體Xi的激勵度;a為親和度系數(shù);b為濃度系數(shù)。對于本文參數(shù)辨識問題,親和度即為性能函數(shù)F,如式(14)。 (16) (17) 式中:N為抗體種群規(guī)模;f(Xi,Xj)為抗體相似度;δ為相似度閾值。 3.1.3 克隆算子 (18) 根據(jù)文獻(xiàn)[17]定義克隆規(guī)模函數(shù)。式中:Nc為克隆后的抗體種群規(guī)模;k為克隆倍數(shù),用來決定克隆種群的規(guī)模 ,k越大克隆種群數(shù)量越多;[·]為取整函數(shù)。定義克隆后的抗體種群為Xc。 3.1.4 隨機(jī)交叉、高頻變異與自適應(yīng)操作 對克隆抗體種群進(jìn)行隨機(jī)交叉有利于增強(qiáng)種群的多樣性,為后續(xù)的變異操作提供更多的搜索中心,增強(qiáng)跳出局部最優(yōu)的能力。高頻變異則是在交叉運(yùn)算得到的更優(yōu)抗體的基礎(chǔ)上再進(jìn)行一遍局部隨機(jī)搜索。高頻變異操作的搜索范圍隨著迭代次數(shù)的增加而減小,從而使后期的搜索空間更小,提高收斂精度。針對交叉、變異概率為固定值,算法不易取得最佳概率值的問題,引入了張玲等的自適應(yīng)算子。 (1) 隨機(jī)交叉算子 (19) (2) 高頻變異算子 (20) (21) (22) 式中:rd1,rd2,rd3,rd4為隨機(jī)數(shù);P一般取0.5;pc為交叉概率;pm為變異概率;t為當(dāng)前迭代數(shù);T為總迭代數(shù);r與b1為正常數(shù)。從式(22)可以看出,隨著進(jìn)化,t接近于T時(shí),η(t)≈0,從而在進(jìn)化后期進(jìn)行精細(xì)搜索。 (3) 自適應(yīng)算子 (23) (24) 式中:Pc_max為交叉概率最大值;Pc_min為交叉概率最小值;Pm_max為變異概率最大值;Pm_min為變異概率最小值;affavg為平均親和度。 3.1.5 精英抗體提取算子 對變異后的抗體種群Xm進(jìn)行優(yōu)質(zhì)抗體的提取,當(dāng)前種群Xm中的抗體數(shù)目為Nc,從中提取依據(jù)抗體親和度排序后的前N個精英抗體參與后續(xù)的計(jì)算,提取操作避免劣質(zhì)的冗余計(jì)算,縮短計(jì)算時(shí)間。 (25) 3.1.6 疫苗接種與免疫選擇 待接種的疫苗是根據(jù)先驗(yàn)知識和問題背景從克隆抗體種群中提取出來的最優(yōu)抗體,將其存儲在記憶細(xì)胞中備用,記為V=(V1,V2,…,Vd)。疫苗接種是將待接種疫苗依據(jù)接種概率與精英抗體上部分基因進(jìn)行替換。免疫選擇即對比子代與父代抗體的親和度,若抗體親和度提升,則保留,反之舍棄。 疫苗接種如式(26)所示 (26) 3.1.7 Lévy飛行策略和巢寄生行為 引入布谷鳥搜索算法(cuckoo search,CS)的Lévy飛行策略和巢寄生行為將有利于提高疫苗接種后種群的多樣性,避免陷入局部最優(yōu),同時(shí)在高質(zhì)量種群基礎(chǔ)上的二次搜索更有利于向最優(yōu)解靠近。 (1) Lévy飛行策略 XLi=Xvi+αLévy(λ)·(Xvi-Xbest) (27) (28) (2) 巢寄生行為 Xi=XLi+r(XLj-XLk)?H(pa-r) (29) 式中:r~U(0,1)為隨機(jī)縮放因子;?為點(diǎn)乘積;H(·)為Heaviside函數(shù);pa為發(fā)現(xiàn)概率,通常取0.25;XLj,XLk為隨機(jī)選取的互不相同的抗體。 3.1.8 抗體種群刷新與合并 抗體種群的刷新為在全局范圍內(nèi)隨機(jī)生成N個抗體組成一個新種群Xn,從而達(dá)到大范圍全局搜索的目的,防止抗體種群陷入局部最優(yōu)。新生成的新種群,按照親和度排序,取前N/2個與巢寄生行為更新后的抗體種群X中的前N/2個進(jìn)行融合。 步驟1初始化,生成初始抗體種群X。 步驟2計(jì)算初始抗體種群X的激勵度。 步驟3按照激勵度對X抗體中進(jìn)行排序,然后進(jìn)行克隆操作,生成克隆抗體種群Xc,提取疫苗V。 步驟4對克隆抗體群Xc進(jìn)行隨機(jī)雜交和自適應(yīng)變異操作,得到新抗體種群Xm。 步驟5對抗體種群Xm進(jìn)行精英抗體提取操作得到新的抗體種群Xe。 步驟6對抗體群Xe進(jìn)行疫苗接種操作,獲得Xv,然后對其進(jìn)行免疫選擇。 步驟7對Xv進(jìn)行Lévy飛行全局搜索更新操作生成新的種群XL,對XL進(jìn)行巢寄生行為局部搜索操作生成抗體中群X。 步驟8種群刷新生成Xn,將Xn與X抗體種群按親和度進(jìn)行排序,將各自前N/2個抗體進(jìn)行融合,生成最終的混合種群X。 步驟9判斷是否滿足停止條件,不滿足執(zhí)行。 IICCA算法的流程框圖,如圖4所示。 圖4 IICCA算法的流程框圖 為了驗(yàn)證所提出的IICCA的性能,將IICCA與ICSA,IGA,APSO和ICS進(jìn)行對比。5個多峰標(biāo)準(zhǔn)測試函數(shù)如表2所示。各算法的仿真參數(shù)如下:IICCAPm_max=0.7,Pm_min=0.1,Pc_max=0.7,Pc_min=0.3,a=2,b=1,δ=0.3,k=0.5,pv=0.6,b1=2,r=0.5,α=1;在ICSA中,pm=0.7,δ=0.3,k=0.5,a=2,b=1,pa=0.25,α=1;在IGA中pm=0.7,pc=0.2,pv=0.6,δ=0.3,k=0.5,a=2,b=1;在APSO中c1=c2=2,wmax=0.7,wmin=0.4;在ICS中αmax=0.5,αmax=0.01,pαmax=0.5,pαmin=0.005。各算法的最大迭代步均為300,尋優(yōu)維數(shù)為15維。將5種優(yōu)化算法在5個標(biāo)準(zhǔn)測試函數(shù)上進(jìn)行50次尋優(yōu),測試結(jié)果如表3所示,進(jìn)化曲線如圖5~圖9所示。上述5個測試函數(shù)形態(tài)復(fù)雜,都是較為復(fù)雜優(yōu)化問題,具有很好的測試性能,可以有效的驗(yàn)證IICCA的收斂速度和精度、全局收斂性能和多峰尋優(yōu)能力。 表2 標(biāo)準(zhǔn)測試函數(shù) 表3 算法測試結(jié)果 圖5 Ackley函數(shù)的動態(tài)尋優(yōu)過程 圖6 Griewank函數(shù)的動態(tài)尋優(yōu)過程 圖7 Lévy函數(shù)的動態(tài)尋優(yōu)過程 圖8 Rastrigin函數(shù)的動態(tài)尋優(yōu)過程 圖9 Schwefel函數(shù)的動態(tài)尋優(yōu)過程 由表3中數(shù)據(jù)可以分析出IICCA算法對上述5種多峰尋優(yōu)函數(shù)均具有較高的計(jì)算精度,且計(jì)算時(shí)間明顯低于IGA,計(jì)算精度明顯高于其他4種算法。相比經(jīng)典ICSA,本文提出的算法計(jì)算精度得到了明顯提升。雖然對于免疫克隆選擇算法引入了疫苗接種、高頻變異、布谷鳥算法等,但是算法的計(jì)算時(shí)間并未明顯增加,表明該算法在滿足計(jì)算快速性的同時(shí)提高了收斂速度和精度。由表中的標(biāo)準(zhǔn)差分析可知,IICCA算法的穩(wěn)定性很好,同比其他4種算法穩(wěn)定性具有明顯優(yōu)勢。 由圖5~圖9可知,IICCA的全局尋優(yōu)性能優(yōu)于其他4種算法,且收斂速度更快。IICCA尋優(yōu)時(shí)20代之內(nèi)就可收斂。在圖7中,對于Levy函數(shù),雖然IICCA前期的下降速度比IGA慢,但是150代之后,IGA的收斂速度明顯趨于平緩,IICCA仍然處于快速收斂狀態(tài),最終IICCA的收斂精度明顯高于IGA。在圖9中,對于Schwefel函數(shù),IICCA算法的精度明顯高于其他4種算法。本文算法將ICSA進(jìn)行改進(jìn)后與CS算法進(jìn)行融合,顯著提升了算法的性能,新算法IICCA明顯優(yōu)于原本的ICSA與CS算法,同時(shí)也優(yōu)于一些其他的改進(jìn)算法。 綜上所述,本文所提出的IICCA算法具有更高的收斂精度,更快的收斂速度,以及更優(yōu)的全局尋優(yōu)能力,完全符合工程實(shí)踐的精度要求。 本文以某大口徑軟后坐火炮發(fā)射試驗(yàn)為例,設(shè)定軟后坐火炮初始位置為原點(diǎn),炮口方向?yàn)樗俣日?采樣頻率為10 000 Hz。試驗(yàn)采集到的數(shù)據(jù)有后坐部分的位移和后坐部分的速度。測試結(jié)果曲線如圖10、圖11所示。測試數(shù)據(jù)1和測試數(shù)據(jù)2為同種試驗(yàn)條件下測得的數(shù)據(jù),測試數(shù)據(jù)1和測試數(shù)據(jù)3為不同前沖擊發(fā)位置條件下測得的數(shù)據(jù)。 圖10 后坐部分速度測試曲線 圖11 后坐部分位移測試曲線 將IICCA用于軟后坐火炮發(fā)射過程參數(shù)辨識時(shí),利用測試數(shù)據(jù)1為辨識目標(biāo)值,測試數(shù)據(jù)3的用于辨識驗(yàn)證,獨(dú)立進(jìn)行5次參數(shù)辨識。根據(jù)式(14),參數(shù)辨識后速度曲線與位移曲線的性能函數(shù)F的平均值為0.029 8,相似度為97.02%。經(jīng)過辨識后得到上述16個參數(shù)的辨識結(jié)果如表4所示,參數(shù)辨識后的后坐部分速度曲線見圖12,位移曲線如圖13所示。由圖12和圖13可知,辨識曲線與測試曲線具有較高的相似度,辨識結(jié)果可靠。 表4 辨識參數(shù)結(jié)果 圖12 測試速度與辨識速度對比曲線 圖13 測試位移與辨識位移對比曲線 為了進(jìn)一步驗(yàn)證本文提出算法的優(yōu)越性,將ICSA,IGA,ICS,APSO與IICCA分別用于軟后坐火炮試驗(yàn)數(shù)據(jù)的參數(shù)辨識,分別獨(dú)立運(yùn)行10次后取均值,進(jìn)化代數(shù)300代,其余參數(shù)均與前文選取一致。獲得的各算法參數(shù)辨識性能函數(shù)進(jìn)化曲線如圖14。由圖14可知,IICCA收斂速度比其他4種算法快,收斂精度也是最高的。因此本文的IICCA較于其他算法更適用于多參數(shù)辨識的問題。 圖14 性能函數(shù)收斂曲線對比 根據(jù)牛頓動力學(xué)方程和伯努利方程建立了軟后坐火炮發(fā)射過程的動力學(xué)模型,針對火炮發(fā)射過程中,未知參數(shù)多,辨識困難的問題,對免疫克隆選擇算法引入自適應(yīng)算子,疫苗接種策略、高頻變異、隨機(jī)交叉和精英提取算子,提高了原算法的收斂速度和計(jì)算精度,再與布谷鳥算法相結(jié)合,提出了一種新算法,即改進(jìn)型免疫克隆布谷鳥算法。通過對IICCA算法的研究和軟后坐火炮發(fā)射過程的參數(shù)辨識,獲得了以下結(jié)論: (1) IICCA算法在求解測試函數(shù)時(shí),計(jì)算結(jié)果表示,IICCA算法尋優(yōu)能力明顯優(yōu)于其他4種算法和單一類型的尋優(yōu)算法,IICCA算法具有收斂速度快,計(jì)算精度高、全局搜索能力強(qiáng)的特點(diǎn)。測試結(jié)果還表明該算法的計(jì)算時(shí)間并沒有明顯的增加,因此滿足計(jì)算快速性的要求。 (2) 辨識結(jié)果表明,IICCA算法在求解軟后坐火炮多參數(shù)辨識問題時(shí),收斂速度明顯快于其他4種算法,收斂精度也較高。因此該算法在求解多參數(shù)辨識問題時(shí),具有明顯的優(yōu)勢。1.3 制退機(jī)動力學(xué)模型建立
2 軟后坐火炮發(fā)射過程參數(shù)辨識問題描述
2.1 軟后坐火炮待辨識參數(shù)描述
2.2 參數(shù)辨識問題數(shù)學(xué)模型
3 改進(jìn)型免疫克隆布谷鳥算法模型及流程
3.1 改進(jìn)型免疫克隆布谷鳥算法模型
3.2 改進(jìn)型免疫克隆布谷鳥算法流程
4 IICCA性能分析與對比
5 基于試驗(yàn)數(shù)據(jù)的參數(shù)辨識驗(yàn)證
5.1 軟后坐火炮發(fā)射試驗(yàn)
5.2 參數(shù)辨識結(jié)果
5.3 參數(shù)辨識算法比較
6 結(jié) 論