馬亞磊,付亮,蔡遠利
(西安交通大學控制工程研究所,陜西西安710049)
為了提高對高速、大機動再入目標及其他現代空襲武器的攔截概率,攔截彈必須具備足夠強的機動能力和靈活性[1]。傳統的氣動舵控制方式在高空中受攔截彈舵機、飛行速度及環境的影響,攔截彈的響應速度、法向過載均不能滿足要求,導致攔截精度受到影響。近年來,對末端制導精度有更高要求的直接碰撞殺傷技術[2-3]得到了廣泛的應用,采用該技術的新一代攔截彈通過引入直接側向力控制,增大可用法向過載、縮短過載響應時間,提高了高空攔截的制導精度。常見的直接力控制形式是在彈體質心處或彈體前端安裝脈沖發動機陣列,通過點火在俯仰或偏航方向上產生脈沖推力,使導彈的軌跡或者姿態發生變化。但考慮到脈沖發動機數量有限,小噴管噴完一次后無法繼續使用,不可能在整個末制導段持續開啟。因此,研究有效的脈沖發動機點火控制方法,使其達到最優組合點火狀態具有重要理論意義和工程應用價值。
近年來,部分學者對姿控脈沖發動機的點火邏輯控制問題開展了若干研究。文獻[4]基于矢量分解的原則,結合噴管周向原則和徑向原則對點火發動機進行選擇,但沒有進行必要的優化。文獻[5]將姿控發動機的點火問題轉化為0-1規劃問題,利用貪心算法進行求解,但只能獲得局部最優解。文獻[6]應用離線遺傳算法對脈沖推力器的開啟數量及位置進行優化,以減小對控制指令的跟蹤誤差,但其要求的離線表較難設計。
1998年,Joslin等[7]在基于光纖電纜生產中調度問題和著色問題試驗的基礎上,提出了吱呀輪優化(Squeaky-Wheel Optimization,SWO)算法,但沒有引起應有的重視。該算法是一種大鄰域空間的啟發式搜索算法,不同于直接在解空間搜索的傳統算法,該方法在兩個空間進行操作,通過調整優先級改變待搜索空間引導算法迅速跳出無效搜索區域,從而快速地取得滿意的解,尤其適用于實時性要求較高的優化問題。
本文以姿控式直接力/氣動力復合控制攔截彈為對象,采用SWO算法對姿控發動機組的點火邏輯優化問題進行了研究。在分析脈沖發動機數學模型和點火控制約束條件的基礎上,提出了基于SWO的點火控制算法,并與貪心算法和遺傳算法進行仿真比較,驗證了本文算法的有效性和可行性。
本文以PAC-3攔截彈為對象進行分析建模,彈體前部有10圈脈沖發動機,每圈等角度分配18個,相鄰圈采用交錯排列的方式。第一圈脈沖推力發動機到彈體質心的距離為L,相鄰圈的距離為d,在彈體上的布局如圖1所示。由于脈沖發動機燃料質量很小,設計中假設開啟脈沖發動機不會引起導彈質心位置的顯著改變。

圖1 脈沖發動機空間布局Fig.1 Layout of pulse engine
直接力系統的每個脈沖發動機噴射一次后不能再次使用,所產生的推力以脈沖力的形式作用在攔截彈上,大小固定,方向垂直于彈體坐標系下的x軸,通過產生的力矩對攔截彈姿態進行調整和控制。脈沖發動機工作方式如圖2所示,每個發動機平均噴流力大小為T,平均工作時間為τ。為了防止連續工作的不同發動機之間產生對噴現象,兩次脈沖噴力間設有一定的時間間隔Δτ。

圖2 脈沖發動機工作方式Fig.2 Working style of pulse engine
由于脈沖發動機相鄰圈互相交錯排列,因此設定脈沖發動機按照5×36的方式排列。從彈尾沿彈體坐標系x軸將所有層上的發動機投影到一個圓周上,得到一個投影圓。將此圓從參考基準開始順時針沿環向編號分別為0,1,2,…,M,其中 M=35。參考基準為彈體坐標系中的y軸,并隨彈體旋轉而改變。發動機在縱向平面內的環向投影如圖3所示。每一列脈沖發動機與y軸的角度為:

式中:“%”表示浮點型取余。

圖3 發動機縱向平面投影Fig.3 Longitudinal plane projection of engine
考慮到導彈旋轉和點火指令延遲時間,第j 列發動機對應的實際點火角度θact為:

式中:θd為脈沖發動機工作過程中彈體旋轉的平均角度;θt為點火指令延時時間t內彈體旋轉的角度。
脈沖發動機的狀態可用5×36的二維數組表示,設定1表示未點火狀態,0表示正在點火狀態,-1表示點火完成。由式(2)可知,點火發動機在y軸和z軸方向上的噴流合力分別為:

由于姿控發動機數目有限,且一次性使用,一次點火發動機數目過多可能會引起導彈質心的快速漂移等問題[8],需要對點火邏輯進行約束以保證姿控發動機的使用效率及攔截彈的控制精度。其主要約束如下:
(1)多個姿控脈沖發動機同時點火會引起側向噴流干擾效應,同時點火的脈沖發動機數量不宜過多,本文設定最多允許10個脈沖發動機同時工作;
(2)點火控制算法應滿足能夠在短時間內快速尋找到脈沖發動機組合并給出點火指令,即必須滿足快速性要求;
(3)姿控發動機數量是一定的,只有在攔截彈末端雷達導引頭捕獲到目標時,即彈-目距離小于R時,姿控發動機與氣動舵開始協同工作;
(4)脈沖發動機與氣動舵產生的法向過載不能大于彈體的最大可用過載;
(5)當法向過載指令誤差大于一定閾值時,脈沖發動機允許點火,即為縱向過載誤差指令為橫向過載誤差指令。
本文脈沖發動機采用開關控制的方式工作,其控制策略也稱為點火邏輯,目前對點火邏輯設計主要采用基于矢量合成的方法、0-1規劃等。通過將發動機的點火問題轉化為對發動機的優化調度問題,利用SWO算法的大鄰域導向式搜索特點,設計基于SWO的點火控制算法,在短時間內搜索到最佳點火組合。
SWO算法是一種啟發式優化算法,目前已有學者將其應用于空軍衛星控制網絡調度[9]、多衛星數傳調度[10]等。該算法主要由構造器、分析器、優先排序器三部分組成,其核心思想是“構造-分析-優先級排序”的循環過程[7]。首先,將調度問題中的每個任務賦予一定的優先級并根據優先級進行排序;構造器利用貪婪算法等方法得到一個初始解;分析器對構造器生成的問題解進行分析,按照一定的規則確定各任務的責罰值,并進行分析,改變相應的責罰值;優先級排序器根據責罰值修改任務的優先級,并對任務按照優先級重新排序。構造器在下一次構造解的過程中給予高優先級任務更多關注,重新產生問題解。整個循環過程SWO算法可以認為在優先級空間(P)和解空間(f(P))兩個空間上交替操作進行搜索,如圖4所示。

圖4 耦合搜索空間Fig.4 Coupled search spaces
通過優先級空間的改變使得解空間的解發生較大變化,再根據對解的分析調整優先級空間,如此迭代直到找到滿意解或者滿足迭代條件退出。
(1)構造初始解
首先確定點火中心。給出點火指令角θc,設編號為M列發動機為點火中心,則有:

式中:[˙]表示四舍五入取整。
以M為參考基準,選取±90°內不同位置的發動機進行任務規劃,由發動機任務組成任務集合每個包含兩個元素,其中為該發動機的編碼值為其優先級。
脈沖發動機點火組合優化的目的是在短時間內找到最優點火發動機組,使該發動機組產生的噴流合力與指令合力的矢量差最小。將指令合力與噴流合力的誤差作為尋找最優解的判斷條件,令

式中:Fcy,Fy,Fcz,Fz分別為指令合力和噴流合力在參考坐標系y軸和z軸方向上的分力。由于最多允許10個發動機同時點火,從前10個優先級最高的任務中貪婪地選取矢量誤差最小的組合存入最優解集合AS,作為優化算法的初始解。
(2)分析當前解
分析器的主要任務是對構造器產生的問題解進行分析,根據各任務對結果的影響大小產生責罰值,通過責罰值改變優先級。對于點火邏輯優化問題,產生最優解時的誤差Err與優先級排序在10之后的發動機做矢量差,取責罰值為:

(3)調整優先級
采用排序算法對發動機任務集合A中的元素按照優先級從大到小進行排序,進而更新搜索空間。如果優先級相同,選擇靠近點火中心的發動機任務排在前面;如果是相同列,選擇i值小的排在前面。
(4)重新構造解
根據優先級從A集合中選擇最優的發動機組合,計算當前發動機組合產生的合力與期望力的矢量誤差,并將所得誤差值與歷史最優解進行誤差值比較。如果該誤差值更小,則以此值作為最優解來更新歷史最優解,并存入集合AS中;如果誤差不滿足最小誤差條件,繼續重復步驟(2)~(4),直到算法達到最大迭代次數或滿足最小誤差條件,并退出循環。將集合AS中的元素進行解碼,得到優化后的發動機點火組合。
本文未考慮大氣層內噴流與外部流場相互作用產生的干擾作用力[8],設定每個脈沖發動機平均噴流力為T=5 115 N,平均工作時間為 τA=10 ms。SWO點火控制算法滿足迭代次數(50次)或發動機點火產生的合力與期望合力矢量誤差小于0.5%時退出。
貪心算法和遺傳算法是解決優化問題的常用方法。為了驗證本文點火邏輯優化控制算法的可行性,引入了貪心算法和遺傳算法,并與SWO算法進行對比仿真。貪心算法的實現過程為:每次從當前可行解中增加一個發動機,直到誤差變大或滿足最小誤差條件時退出;遺傳算法采用文獻[6]思想設計,算法迭代次數設為50代。
三種算法均在VC++6.0環境下編程實現,并在AMD Phenom Triple-Core處理器、2.29GHz主頻,Windows XP系統的計算機中進行仿真。記錄點火指令角為θc=0.1 rad時不同點火指令合力F下SWO算法、貪心算法和不同種群大小N的遺傳算法的仿真結果,分別如表1和表2所示。表中nm為所開發動機數。
分析表1、表2可知,對于不同點火指令合力,三種算法在消耗脈沖發動機相當的情況下,SWO算法與遺傳算法的誤差大大小于貪心算法。尤其當貪心算法產生的合力誤差較大時,SWO算法有更明顯的優化效果,接近遺傳算法的最優解。當貪心算法產生的合力誤差較小時,三種算法得到的合力誤差結果比較接近。由于SWO是一種大鄰域局部搜索算法,而遺傳算法是一種全局搜索算法,通過誤差分析可知,當種群規模為200時的遺傳算法結果雖優于SWO,但是差距不大。遺傳算法初始種群為50時,由于算法在個別值時出現早熟收斂,產生的誤差不如SWO算法和200種群時的遺傳算法。

表1 SWO和貪心算法仿真結果Table 1 Results of SWO and greedy algorithm

表2 遺傳算法不同種群大小仿真結果Table 2 Results of GA with different population size
圖5為三種算法在點火指令角θc=0 rad時誤差值的柱狀圖,驗證了不同點火指令角下由表1、表2所得結論的正確性。

圖5 不同算法誤差Fig.5 Error of different algorithms
圖6 為點火指令角為0 rad時SWO算法與貪心算法和遺傳算法計算時間比較。可以看出,遺傳算法種群為50時耗時15 ms左右,種群為200時耗時200 ms左右,耗時遠遠大于SWO算法和貪心算法,且遺傳算法隨著種群規模的擴大,耗時成指數增長。貪心算法的計算時間為10-5級,隨著指令合力增大,計算時間呈線性增加。SWO算法整體比貪心算法耗時長一些,但均能在0.35 ms以內完成優化,提前退出迭代,耗時更短。直接控制系統給出點火指令到發動機點火時間約為5 ms,加上SWO算法耗時,仍然比氣動力控制時舵機的反應時間 (約22 ms)小很多,因此,該算法滿足實時性要求。

圖6 不同算法計算時間Fig.6 Computing time of different algorithms
本文針對姿控式直接力/氣動力復合控制系統的脈沖組合發動機點火問題,設計了一種基于SWO的優化控制方法。在VC++6.0環境下對設計的算法進行了仿真,并與典型的貪心算法和遺傳算法進行了比較。結果表明,SWO算法能夠滿足控制精度和實時性要求,具有一定的理論意義和工程應用價值。本文主要對點火邏輯優化算法進行設計,尚未考慮復合控制系統的控制分配問題,下一步的工作是將本文設計算法與控制分配相結合,進行更深入的研究。
[1] Fenghua H,Kemao M,Yu Y.Firing logic optimization design of lateral jets in missile attitude control systems[C]//CCA 2008 IEEE International Conference on Control Applications.NJ:IEEE,2008:936-941.
[2] Herman R D,Butler J H.Subsystems for the extended range interceptor(ERINT-1)missile[C]//AIAA and SDIO,Annual Interceptor Technology Conference.Huntsville:AL,1992.
[3] Walters E D,Butler J H.Extended range interceptor(ERINT-1)flight test program[C]//AIAA and SDIO,Annual Interceptor Technology Conference.Huntsville:AL,1992.
[4] 朱京.姿控發動機點火邏輯研究[J].現代防御技術,2007,35(3):42-45.
[5] 楊銳,徐敏,陳士櫓.動能攔截彈姿控發動機組合點火算法研究[J].西北工業大學學報,2006,24(1):15-18.
[6] 尹永鑫,楊明,王子才.基于遺傳算法的脈沖推力器控制方法研究[J].哈爾濱工業大學學報,2007,39(5):721-724.
[7] Joslin D E,Clements D P.Squeaky wheel optimization[J].Journal of Artificial Intelligence Research,1999,10:353-373.
[8] 程鳳舟,萬自明,陳士櫓,等.防空導彈直接力與氣動力復合控制系統設計[J].飛行力學,2003,21(2):49-52.
[9] Barbulescu L,Howe A E,Whitley L D.Understanding algorithm performance on an oversubscribed scheduling application [J].Journal of Artificial Intelligence Research,2006,27:577-615.
[10]經飛,王鈞,李軍,等.基于吱呀輪優化的多衛星數傳調度問題求解方法[J].宇航學報,2011,32(4):863-870.