楊光宇,陳國光,王 捷,朱豪坤
(中北大學 機電工程學院, 太原 030051)
空地導彈是軍事戰爭中使用范圍廣、消耗量大、用途多的武器類型[1]。隨著作戰任務及打擊目標的多樣化,對空地導彈彈道軌跡也提出了更高的要求。彈道優化設計是現代導彈設計中的重要內容,有利于提高導彈飛行品質以滿足既定任務要求。對導彈設計有著十分重要的意義及實際工程價值[2-3]。
彈道優化設計,實質就是求解在滿足各種約束條件下的最優控制問題,同時也是一個動態優化問題。彈道優化的方法主要分為直接法和間接法兩大類[4-5]。直接法是將連續的優化問題直接離散并進行參數化,不需要求解出最優值的條件。間接法是基于極大值原理將最優控制問題轉換為哈密頓邊值問題[6]。偽譜法是數值法的典型代表方法,大多數配點是基于高斯積分規則[7]。高斯偽譜法作為一種基于全局插值多項式的直接配點法,它相對于一般直接配點法的優勢是可以用較少的節點獲得較高的精度[8]。
本文利用高斯偽譜法將最優控制問題(動態優化問題)轉化為非線性規劃問題,SQP算法因其穩定性和精度優勢在求解此類問題上應用最為廣泛。但SQP算法對初值依賴度很高,如若隨意選取初值,很難求得最優解[9]。粒子群算法對目標函數和應用條件的限制較少,而且收斂速度快,具有更大的靈活性和適應性[10],因此本文利用全局尋優能力較強的粒子群算法快速求解一條優化彈道作為初值,而后代入SQP算法求解該問題。
空地導彈彈道優化設計問題是一類復雜的多約束動態優化問題,問題描述包括目標函數、約束條件和優化變量等。一般最優控制問題的Bolza形式描述如下式:

(1)
其中,u(t)∈Rm為控制變量;x(t)∈Rn為狀態變量;t0和tf為時間的初值和末值,可固定也可自由。
系統滿足的動力學約束、邊界條件約束和路徑約束分別為

(2)
期望得到一條用時最短且滿足約束的彈道,故目標函數選取終端時刻,即
minJ=tf
(3)
方案彈道初步設計過程中簡化了運動模型,將導彈描述為理想的質點,暫時不考慮彈體繞質心轉動的影響,以縱向平面內的質心運動方程為動力學約束[11]。
動力學約束方程如式(4)所示,式中:m為導彈質量;P為發動機推力;ISP為發動機比沖;mc為質量流量;X=qsCx、Y=qsCy分別為阻力和升力,q為動壓,s為參考面積,Cx、Cy分別為阻力和升力系數,兩者均是馬赫數Ma和攻角α的函數,可由吹風試驗和數值計算獲得;?為導彈俯仰角;θ為彈道傾角;x、y分別為射程和飛行高度。

(4)
邊界約束條件主要包括終端時刻的射程x和飛行高度y。
(5)
路徑約束條件主要包括飛行過程中的動壓q、法向過載ny和控制變量(攻角)α的約束。

(6)
高斯偽譜法以Legendre多項式的根為離散點,將連續最優控制問題的狀態變量和控制變量離散化,并以離散點為節點采用全區間Lagrange插值多項式來近似狀態變量和控制變量,從而將動力學方程等約束轉化為代數約束,形成非線性規劃問題[12-13]。
高斯偽譜法的基本算法過程如下:
1) 對時間變量t作變換到τ∈[-1,1]上。

(7)
動力學方程約束式(2)轉化為
(8)
2) 取N階Legendre多項式N的個根τk∈(-1,1),k=1,2,…,N;再令τ0=-1,τf=1,則τ0,τk,τf構成彈道的N+2個離散點。
3) 將狀態變量與控制變量在離散點上離散化,從而將動力學方程約束、邊界條件約束和路徑約束轉化為代數約束。
由高斯偽譜法的算法過程可得:
(9)

對式(9)求導:
(10)
將式(10)代入式(8),得到狀態向量在配點上應滿足的代數約束:

(11)
由式(8)可得:
(12)
采用高斯積分公式近似式(12)中的積分項,可得離散化終端邊界條件:
(13)

把邊界條件和過程約束也離散化,將彈道優化問題轉化為非線性規劃問題。其一般形式描述如下式:

(14)
其中,c為非線性不等式約束;ceq為非線性等式約束。
粒子群算法是計算智能領域,除了蟻群算法、魚群算法之外的一種群體智能的優化算法。該算法最早由Kennedy和Eberhart在1995年提出的。粒子群算法源于對鳥類捕食行為的研究,鳥類捕食時,找到食物最簡單有效的策略就是搜尋當前距離食物最近的鳥的周圍區域。
粒子群尋優算法中每個粒子追隨個體極值和全局極值的過程進行信息更新[14],同時也代表優化問題的一個潛在解,用位置、速度和適應度值三項指標表示該粒子特征。
粒子的適應度值由適應度函數決定,其值表示了粒子的優劣。粒子的速度決定了粒子移動的方向和距離,速度隨自身及其他粒子的移動經驗進行動態調整。粒子的位置隨著自身位置及速度進行動態調整。從而實現個體在可行解空間中的尋優。
粒子的速度和位置更新公式分別為[15]:
(15)

(16)
設向量X={α1,α2,…,αn,tf}為優化問題的一個潛在解,即為粒子群算法中的一個粒子。其中前n維為攻角的變化值,最后一維tf為終端飛行時間(粒子的維數為n+1),換言之每個粒子都代表了攻角隨時間變化的一種規律。
初始化粒子群,設定種群規模(Sizepop)、最大進化代數(Maxgen)、慣性權重、加速度常數、位置和速度的上下限等。通過適度函數計算出n維的所有狀態變量值,進而求出每個粒子的適度值,保存個體和群體經歷的最優位置,更新粒子的速度和位置,重復上述過程,直到滿足終止條件。將得到的最優值擬合成一條連續彈道,然后在得到的彈道曲線上用高斯偽譜法的取點規則取點,得到SQP算法的初值X0,代入求解非線性規劃問題,得到最終優化設計彈道,算法流程如圖1所示。

圖1 算法流程框圖
結合某型空地導彈彈道仿真結果和算法流程圖,粒子群算法各個參數的初值如下:Maxgen=50,Sizepop=20,c1=c2=1.45,ω=0.8,t0=0??盏貜椀婪桨竷灮O計條件為:x(τ0)=0,y(τ0)=7 000,m(τ0)=225,x(τf)=14 000,y(τf)=0,nymax=15,αmax=0.2 rad。適應度函數的功能是通過粒子X={α1,α2,…,αn,tf}計算出狀態變量的變化規律,最后適度值的大小表明了初始彈道最終與目標點距離的遠近。
粒子的維數為n+1,n的值可任意選取,但不宜過大或過小。
以n取為20、30和40為例,算法進化曲線如圖2所示,仿真結果如圖3和圖4所示。

圖2 粒子群算法進化曲線

圖3 n=20、n=30、n=40速度-時間仿真曲線

圖4 n=20、n=30、n=40高度-射程仿真曲線
圖2表明:通過粒子群算法可以較快的算出一條初始彈道,計算用時與n的大小有關。計算用時可以通過程序內的相應命令得到。當n分別取20、30和40時,平均用時為7.76 s、11.42 s和15.67 s。
圖3和圖4表明:初始彈道的可行性、精度和計算量也與n的大小有關。n的值太小會導致彈道不可行、精度較低,太大又會導致計算量增加。通過多次試驗發現,當n≤20時,彈道的可行性和精度都很差。n≥30發現再增加n的值所計算出的結果差別不大,而且繼續增加n的值,彈道的計算量會顯著的增加。這表明在滿足方案設計要求下,選取n=30為宜,可以做到初始彈道的可行性、精度和計算量三者兼顧。此外,由于粒子群算法的隨機性,每次解得的初始彈道也不完全相同。
以攻角為控制變量,選取n=30,得到初始彈道,利用高斯偽譜法的取點規則取點,得到SQP算法的初值,代入求解得到最終優化設計彈道。通過反復計算發現,取點數N取10到20之間為宜。為了更好的在圖上表現出高斯偽譜法的取點規則,這里選取N=12(加上τ0,τf,構成圖中彈道的14個離散點)。同等條件下,隨意選取SQP算法的初值(本文直接選用了一個初始化粒子),仿真結果如圖5、圖6、圖7所示。

圖5 攻角-時間仿真曲線

圖6 速度-時間仿真曲線

圖7 高度-射程仿真曲線
圖5、圖6、圖7表明:在滿足約束條件的前提下,使用PSO-SQP算法完全優于僅使用SQP算法計算出的彈道。此外通過比較圖3(n=30的速度曲線)和圖6(PSO-SQP的速度曲線),可以發現最終彈道相較于初始彈道,飛行時間從32.20 s縮短到了31.63 s。
仿真結果表明:僅用SQP算法求解彈道優化設計問題,由于選取問題,很難求得最優解,利用粒子群算法可以很好地解決SQP算法的初值依賴的問題,增加了得到最優解的可能性。并且計算出的最終設計彈道相較于初始彈道,也更好地符合了方案設計的預期效果。
針對空地導彈快速打擊地面目標的彈道優化設計問題,提出了一種基于PSO-SQP算法的優化方法,通過研究分析和仿真結果得出:利用高斯偽譜法離散約束條件,將最優控制問題轉化為非線性規劃問題,可以用較少的節點獲得較高的精度。利用粒子群算法可快速、有效的選取初始彈道。本文提出的算法流程可以更快更有效地解決彈道優化設計問題,可為工程設計提供參考。