何新佳,馬中亮,代淑蘭
(中北大學(xué)環(huán)境與安全工程學(xué)院,太原 030051)
火炮設(shè)計(jì)需要以內(nèi)彈道計(jì)算為基礎(chǔ),在火炮內(nèi)彈道計(jì)算中,火藥裝填條件以及膛內(nèi)構(gòu)造諸元的改變都會(huì)使內(nèi)彈道的計(jì)算結(jié)果大不相同。火炮武器系統(tǒng)的內(nèi)彈道設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的核心,其先進(jìn)性是衡量火炮武器系統(tǒng)先進(jìn)性的主要指標(biāo),因此內(nèi)彈道優(yōu)化設(shè)計(jì)成了火炮武器系統(tǒng)優(yōu)化設(shè)計(jì)的關(guān)鍵。對(duì)于加農(nóng)炮來(lái)說(shuō),身管長(zhǎng),射程遠(yuǎn),彈道低伸,因此追求其最大速度往往作為設(shè)計(jì)者考慮的首要目標(biāo),然而,當(dāng)彈丸離開(kāi)炮口后,膛內(nèi)火藥氣體仍然具有較高的壓力,并以很高的速度向外噴出,導(dǎo)致炮口壓力較高,為了盡量降低這種有害的影響,必須對(duì)其炮口壓力進(jìn)行限制。在衡量火炮內(nèi)彈道性能的指標(biāo)中,彈道效率往往作為一個(gè)重要指標(biāo)來(lái)考慮。因此在火炮內(nèi)彈道性能多目標(biāo)優(yōu)化過(guò)程中,實(shí)現(xiàn)多個(gè)目標(biāo)的均衡就成為一個(gè)重要的問(wèn)題。
近年來(lái),出現(xiàn)了很多典型的多目標(biāo)優(yōu)化算法,如NSGA-II、NSGA-III及MOEA/D等,這些算法采用的基本思想主要包括基于Pareto占優(yōu)關(guān)系的MOEA算法和基于分解機(jī)制的MOEA算法等,其中,基于Pareto占優(yōu)機(jī)制的原理對(duì)于處理低維多目標(biāo)問(wèn)題效果較好,可以得到分布更加均勻的Pareto最優(yōu)解。
蝙蝠算法是受蝙蝠回聲定位的特性啟發(fā)而提出的新算法,相比于遺傳算法和粒子群算法等,蝙蝠算法參數(shù)設(shè)置較少,收斂速度更快和求解精度更高,具有很大的應(yīng)用潛能,因此文中結(jié)合Pareto占優(yōu)機(jī)制,采用多目標(biāo)蝙蝠算法對(duì)加農(nóng)炮內(nèi)彈道性能進(jìn)行多目標(biāo)優(yōu)化,所得結(jié)果可為設(shè)計(jì)者根據(jù)實(shí)際需求提供相應(yīng)的優(yōu)化方案,并提高內(nèi)彈道性能及發(fā)射安全性。
內(nèi)彈道數(shù)學(xué)模型是彈丸在膛內(nèi)運(yùn)動(dòng)過(guò)程的簡(jiǎn)化數(shù)學(xué)描述。對(duì)于100 mm加農(nóng)炮,建立的基于管狀發(fā)射藥的內(nèi)彈道模型如下:
(1)
文中所研究的加農(nóng)炮原始數(shù)據(jù)可以參考文獻(xiàn)[1]。利用原始數(shù)據(jù),采用四階龍格-庫(kù)塔法對(duì)加農(nóng)炮內(nèi)彈道方程組進(jìn)行數(shù)值求解,得到的膛壓和彈丸速度曲線如圖1所示。由圖1知,曲線符合一般內(nèi)彈道曲線的特征,很好地再現(xiàn)了火炮膛內(nèi)的壓力變化及彈丸的運(yùn)動(dòng)規(guī)律。
圖1 膛壓和彈丸速度曲線
取特殊點(diǎn)值與火炮射擊實(shí)驗(yàn)數(shù)據(jù)進(jìn)行比較,如表1所示。由表1可得,計(jì)算數(shù)據(jù)與實(shí)驗(yàn)值吻合較好,說(shuō)明采用的加農(nóng)炮內(nèi)彈道數(shù)學(xué)模型可以準(zhǔn)確描述彈丸在火炮膛內(nèi)的運(yùn)動(dòng)規(guī)律,因此可以用來(lái)對(duì)加農(nóng)炮的內(nèi)彈道性能進(jìn)行多目標(biāo)優(yōu)化研究。
表1 計(jì)算值與實(shí)驗(yàn)值的比較
蝙蝠算法主要模擬了蝙蝠通過(guò)回聲定位系統(tǒng)來(lái)尋找食物的行為。每一個(gè)蝙蝠有4個(gè)屬性,當(dāng)前位置、當(dāng)前速度、回聲頻率以及回聲響度。蝙蝠算法中每只蝙蝠有2種行為:1)更新頻率,更新位置;2)隨機(jī)飛行。蝙蝠算法的假設(shè)如下:
1)全部蝙蝠都使用回聲定位來(lái)感知距離,并且都可以判斷出是食物還是障礙物。
2)響度從一個(gè)正值變化到最小值。
3)頻率在[,]范圍內(nèi),對(duì)應(yīng)的波長(zhǎng)在[,]范圍內(nèi)。
4)蝙蝠在一定位置以一定速度隨機(jī)飛行,且可以自動(dòng)調(diào)整發(fā)射脈沖頻率或波長(zhǎng),并根據(jù)相對(duì)距離調(diào)整脈沖發(fā)射頻率。
對(duì)于第一種行為,每只蝙蝠在速度更新之前會(huì)先隨機(jī)更新其超聲波頻率:
+1=(,)
(2)
式中:和分別為頻率的最小值和最大值;為0到1之間均勻分布的隨機(jī)數(shù);為當(dāng)前迭代次數(shù)。
每只蝙蝠依據(jù)自身當(dāng)前速度和當(dāng)前位置與最優(yōu)位置間的距離來(lái)更新其速度:
+1=++1(-)
(3)
式中,為蝙蝠在當(dāng)前空間中的最優(yōu)位置。
和粒子群算法一樣,每只蝙蝠會(huì)進(jìn)行位置的更新:
+1=++1
(4)
對(duì)于蝙蝠的第二種行為,蝙蝠會(huì)隨機(jī)選取某個(gè)數(shù),如果該數(shù)大于蝙蝠的脈沖頻率,蝙蝠就會(huì)選擇隨機(jī)飛行,其描述隨機(jī)行為的公式為:
=+
(5)
式中:代表搜索后的蝙蝠生成的新的解;代表搜索之前的最優(yōu)解;是[-1,1]內(nèi)的隨機(jī)數(shù);為該代的所有蝙蝠的響度的平均值。
位置更新完成后,蝙蝠會(huì)比較當(dāng)前位置與之前位置的優(yōu)劣,如果新位置更好,則飛行到新的位置,否則停留在原處,在飛行到新位置的同時(shí),蝙蝠會(huì)更新自己的響度和脈沖發(fā)射率:
=
(6)
+1=(1-e-)
(7)
式中,,為常數(shù)。
在多目標(biāo)函數(shù)優(yōu)化問(wèn)題中,目標(biāo)函數(shù)之間是相互沖突的,只能進(jìn)行折中處理,盡可能的都達(dá)到最優(yōu)。在單目標(biāo)優(yōu)化問(wèn)題中,可以通過(guò)大于或者小于這樣的簡(jiǎn)單關(guān)系對(duì)可行解中的解進(jìn)行評(píng)價(jià),但在多目標(biāo)優(yōu)化問(wèn)題中,由于多個(gè)目標(biāo)函數(shù)的存在,只能得到折中解,因此需要引入Pareto最優(yōu)的概念來(lái)對(duì)折中解進(jìn)行評(píng)價(jià)。
?∈(1,2,3,…,),()≤()∧?∈(1,2,3,…,),()≤()
(8)
式中,為子目標(biāo)函數(shù)的個(gè)數(shù)。
3)Pareto最優(yōu)解集和前沿面。全部Pareto最優(yōu)解的集合稱(chēng)為Pareto最優(yōu)解集,對(duì)應(yīng)的目標(biāo)函數(shù)的集合稱(chēng)為Pareto前沿面。
在采用的多目標(biāo)蝙蝠算法中,首先使用加權(quán)法將所有目標(biāo)函數(shù)轉(zhuǎn)化為一個(gè)目標(biāo)函數(shù),其轉(zhuǎn)化公式為:
(9)
式中,權(quán)重向量是通過(guò)均勻分布產(chǎn)生的一組隨機(jī)數(shù),因此可以保證Pareto前沿面的多樣性較好。然后與蝙蝠算法一樣,對(duì)每只蝙蝠進(jìn)行速度和位置的更新,以及響度和脈沖發(fā)射率的更新。
為了提高種群的搜索性能,在該多目標(biāo)蝙蝠算法中,采用Pareto占優(yōu)機(jī)制得到前沿面,通過(guò)前沿面得到的解集構(gòu)成最優(yōu)解的集合,該最優(yōu)解的集合即為子目標(biāo)函數(shù)折中解的集合。
對(duì)于加農(nóng)炮內(nèi)彈道性能多目標(biāo)優(yōu)化問(wèn)題,首先應(yīng)該建立優(yōu)化設(shè)計(jì)數(shù)學(xué)模型,并選取目標(biāo)函數(shù)、約束條件、優(yōu)化設(shè)計(jì)變量以及合理的優(yōu)化設(shè)計(jì)方法等,然后通過(guò)建立的數(shù)學(xué)模型計(jì)算出目標(biāo)變量值,最后利用優(yōu)化設(shè)計(jì)模型得到目標(biāo)變量的最優(yōu)解??紤]到加農(nóng)炮本身的作戰(zhàn)特點(diǎn)、發(fā)射安全性和火藥能量利用率等,文中將最大彈丸初速、最小炮口壓力以及最大彈道效率作為待優(yōu)化的目標(biāo)。設(shè)計(jì)變量選擇對(duì)內(nèi)彈道性能影響較大的1/2火藥弧厚、裝藥量及藥室容積,考慮到發(fā)射安全性以及發(fā)射藥燃燒的完全性等,將膛內(nèi)最大壓力和火藥相對(duì)燃燒結(jié)束點(diǎn)作為約束條件?;谏鲜鲆螅玫降募愚r(nóng)炮內(nèi)彈道多目標(biāo)優(yōu)化模型為:
(10)
式中,為彈道效率,定義為:
(11)
其中,=-1,為絕熱指數(shù)。
為火藥相對(duì)燃燒結(jié)束位置,定義為:
(12)
式中:為彈丸行程長(zhǎng);為火藥燃燒結(jié)束位置。
將上述多目標(biāo)蝙蝠算法與加農(nóng)炮內(nèi)彈道性能優(yōu)化相結(jié)合,得到基于多目標(biāo)蝙蝠算法的加農(nóng)炮內(nèi)彈道性能優(yōu)化過(guò)程:
步驟1:設(shè)置初始參數(shù),對(duì)蝙蝠種群位置進(jìn)行初始化。
步驟2:基于3個(gè)目標(biāo)函數(shù),利用Pareto占優(yōu)機(jī)制得到Pareto最優(yōu)解集,并將炮口速度、炮口壓力和彈道效率作為需要求解的目標(biāo)函數(shù),然后調(diào)用加農(nóng)炮內(nèi)彈道程序計(jì)算各個(gè)子目標(biāo)函數(shù)值。
步驟3:依據(jù)式(3)和式(4)對(duì)蝙蝠進(jìn)行速度和位置的更新,將更新后的個(gè)體位置與歷史最優(yōu)個(gè)體進(jìn)行比較,選擇將目標(biāo)函數(shù)值最優(yōu)的個(gè)體位置作為當(dāng)前種群的最優(yōu)位置。
步驟4:生成0~1之間正態(tài)分布的隨機(jī)數(shù),如果>,則參考式(5)選取一個(gè)新位置,否則蝙蝠隨機(jī)產(chǎn)生一個(gè)新位置。
步驟5:假設(shè)蝙蝠個(gè)體當(dāng)前位置優(yōu)于種群當(dāng)前位置,且滿足<,則將步驟4產(chǎn)生的新位置作為種群的最優(yōu)位置,否則將作為更新后的種群最優(yōu)位置。
步驟6:若當(dāng)前迭代次數(shù)大于最大迭代次數(shù),則輸出最優(yōu)位置,否則返回步驟2。
步驟7:根據(jù)步驟6得到的最優(yōu)位置,輸出Pareto最優(yōu)解集,進(jìn)而得到一系列優(yōu)化后的炮口初速值、炮口壓力值和彈道效率值。
對(duì)于多目標(biāo)蝙蝠算法,參考文獻(xiàn)[15],設(shè)置種群規(guī)模為150,算法最大迭代次數(shù)為300,響度從1減小到0,響度衰減系數(shù)為0.9,脈沖頻率在0~1之間變化。
利用多目標(biāo)蝙蝠算法對(duì)該加農(nóng)炮內(nèi)彈道性能進(jìn)行多目標(biāo)優(yōu)化,圖2顯示了在不同迭代次數(shù)下的子目標(biāo)的變化趨勢(shì),圖3為優(yōu)化設(shè)計(jì)變量在不同迭代次數(shù)下的變化。由圖2和圖3可以看出:隨著迭代次數(shù)增加,無(wú)論是子目標(biāo)函數(shù),還是優(yōu)化設(shè)計(jì)變量,都得到了顯著的改善。
圖2 子目標(biāo)優(yōu)化進(jìn)程
圖3 設(shè)計(jì)變量?jī)?yōu)化進(jìn)程
選擇炮口初速、炮口壓力和彈道效率這3個(gè)子目標(biāo),然后考察解集的分布以及子目標(biāo)之間的關(guān)系,如圖4所示。圖4(a)描述了炮口初速和炮口壓力之間的關(guān)系,由圖可以看出,炮口初速隨著炮口壓力的增加而增加,且目標(biāo)之間的相關(guān)性很高。圖4(b)和圖4(c)分別給出了彈道效率和炮口初速的關(guān)系以及彈道效率和炮口壓力之間的關(guān)系,其中,彈道效率與炮口初速以及彈道效率與炮口壓力之間存在著一定的負(fù)相關(guān)關(guān)系。原因在于,由彈道效率的公式可知,主裝藥量與彈道效率有最直接的關(guān)系,當(dāng)主裝藥量增加時(shí),彈道效率會(huì)減小,而隨著主裝藥量的增加,火藥釋放的能量就更多,對(duì)彈丸做的功就變多,而無(wú)論是炮口初速還是炮口壓力都會(huì)隨著裝藥量的增加而增加,因此可以得到上述的結(jié)論。
圖4 子目標(biāo)函數(shù)之間的關(guān)系
為了考察設(shè)計(jì)變量對(duì)目標(biāo)函數(shù)的影響,圖5、圖6和圖7分別給出了不同設(shè)計(jì)變量對(duì)炮口速度、炮口壓力和彈道效率的影響,圖中也顯示了給定目標(biāo)函數(shù)的不同變量的可行域。例如,圖5(a)、圖5(b)和圖5(c)顯示了管狀藥弧厚、藥室容積和裝藥量3個(gè)變量?jī)蓛芍g對(duì)炮口初速的影響,由圖5知,為了盡可能獲得較大的炮口初速,需要將藥室容積控制在8.2~8.5 dm,將1/2管狀藥弧厚控制在0.85~0.90 mm,將裝藥量控制在5.6~6.0 kg。
圖5 優(yōu)化設(shè)計(jì)變量對(duì)炮口初速的影響
圖6 優(yōu)化設(shè)計(jì)變量對(duì)炮口壓力的影響
圖7 優(yōu)化設(shè)計(jì)變量對(duì)彈道效率的影響
對(duì)于火炮設(shè)計(jì)者來(lái)說(shuō),在實(shí)際應(yīng)用中,通??紤]的是盡可能獲得較大的炮口初速和較小的炮口壓力,基于此,選擇圖4(a)中的一些特殊點(diǎn),如圖8所示。其中,點(diǎn)為多目標(biāo)優(yōu)化方案下的最大炮口初速點(diǎn),點(diǎn)為綜合考慮炮口初速和炮口壓力下選擇的較為合適的點(diǎn)。
圖8 炮口壓力和炮口初速關(guān)系圖
選擇基于點(diǎn)下的優(yōu)化方案,并與初始方案進(jìn)行比較,如表2所示。
表2 優(yōu)化方案與初始方案的比較
基于上述方案,得到的膛壓和初速隨時(shí)間的變化曲線如圖9和圖10所示。
圖9 p-t曲線
圖10 v-t曲線
由圖9和圖10可知,多目標(biāo)優(yōu)化方案下得到的炮口初速更大,但該方案下得到的炮口壓力也大,這進(jìn)一步說(shuō)明了在多目標(biāo)函數(shù)優(yōu)化問(wèn)題中,幾個(gè)目標(biāo)函數(shù)是相互沖突的,一般不會(huì)出現(xiàn)所有目標(biāo)函數(shù)都達(dá)到各自最優(yōu)的情況,然而由圖9和圖10可以得到,多目標(biāo)優(yōu)化方案改善了-曲線的梯度,并推遲了最大壓力點(diǎn)的出現(xiàn),因此該多目標(biāo)優(yōu)化方案明顯提升了內(nèi)彈道性能以及提高了發(fā)射安全性。
采用多目標(biāo)蝙蝠算法對(duì)加農(nóng)炮內(nèi)彈道性能進(jìn)行了多目標(biāo)優(yōu)化,通過(guò)選擇將炮口初速、炮口壓力和彈道效率作為擬優(yōu)化的子目標(biāo),對(duì)該加農(nóng)炮內(nèi)彈道性能進(jìn)行了真正的多目標(biāo)優(yōu)化,所得優(yōu)化結(jié)果為一系列的Pareto最優(yōu)解,可供火炮設(shè)計(jì)者根據(jù)需要進(jìn)行選擇。然后考察了不同設(shè)計(jì)變量對(duì)火炮內(nèi)彈道性能的影響及各自目標(biāo)函數(shù)下優(yōu)化設(shè)計(jì)變量的可行域。然而,由于目標(biāo)函數(shù)之間相互沖突,因此只能進(jìn)行折中處理,但從多目標(biāo)優(yōu)化方案與初始方案的比較來(lái)看,得到的多目標(biāo)優(yōu)化方案明顯提升了內(nèi)彈道性能及火炮發(fā)射安全性,因此可以為今后加農(nóng)炮的裝藥優(yōu)化和提高加農(nóng)炮發(fā)射安全性等提供一定的技術(shù)指導(dǎo)。