魏智輝,梁 言
(中國飛行試驗研究院?發動機所,陜西?西安?710089)
航空發動機模型在航空發動機設計、性能分析、健康管理以及控制研制中都發揮著重要作用。好的模型能大幅度縮短研制周期,節約成本。求解發動機數學模型,在數學上可等價為求解非線性最小二乘問題。傳統優化算法往往需要目標函數連續可導,而發動機部件級模型本身非常復雜,傳統的優化算法對迭代的初值依賴過高、易陷入局部最小等問題非常突出,制約了精確的發動機模型與仿真的發展[1]。近年來,以粒子群為代表的各種基于隨機搜索的現代化算法得到迅速發展,該算法無需目標函數梯度信息,具有結構簡單、易于實現和參數少等優點,在求解一些復雜的多維問題上比傳統優化算法具有更大的優勢[2-3]。
粒子群算法從隨機解出發,通過迭代尋找最優解,并通過適應度函數評價解的品質。在每次迭代中,粒子通過跟蹤兩個極值來更新自己的位置。第一個極值是整個種群目前找到的最優解,另一個極值是整個種群目前找到的最優解,為全局極值。粒子在運動的過程中每個個體都會參照全局最優位置的粒子,粒子的獨立性較差,所有的粒子都去追隨優秀個體,很容易使算法陷入局部最優,而當前的標準粒子群算法并沒有避免這一問題。在粒子搜索過程中,如果其解空間較小,維度低情況下,可存在的局部最優較小,標準粒子群算法能很有效率地解決問題,但當遇到復雜的高維問題,會使計算復雜度爆炸式增長,導致計算無法求解。為了改進粒子群算法的隨機性和搜索能力,有國外學者提出,將進化算法的“變異、重組”等思想引進粒子群算法,為進化粒子群算法(EPSO)。許多實例已經證明,進化粒子群算法優于其他經典方法[4-5]。本文將進化粒子群算法應用于典型的渦扇發動機部件級非線性模型求解中,顯著地提高了計算的精度和收斂性。
進化粒子群算法(EPSO)是一種混合方法,將進化算法的“變異、重組”等思想引進粒子群算法。
進化粒子群算法的基本操作是:
(1)復制:將種群內的每個粒子復制r次;
(2)變異:種群中每個粒子都有它的變異策略參數;
(3)生殖:每一個變異粒子通過粒子群算法的移動規則重組產生一個后代;
(4)評估:每一個后代都有它的適應度函數;
(5)選擇:通過隨機對比或者其他選擇程序,留下最佳的粒子,所有的粒子的最優后代集合在一起,成為下一代種群。
生殖過程中所采用的粒子重組和移動規則如下:
給出一個在k代的粒子,k+1代粒子由式(1)給出:

其中:pi是粒子i從開始到當前這一代的最佳點,pg是整個種群的粒子從開始到當前代的最佳點,xi(k)是處于k代的粒子i,vi(k)是粒子i在k代的速度,wi1是粒子的慣性權重因子,wi2是粒子記憶權重因子,wi3是粒子信息交換權重因子,P是交流因子,p值是一個外部參數,控制種群信息的通路,通常其值為1。公式中符號*代表那些參數處于演化階段。
參數的變異基本規則與進化算法的規則相似:

權重的變化由學習參數τ調節。
全局最優解也被隨機打亂:

wi4是每個粒子的第四個策略參數,該參數控制當前全局最優的分布,假設真正的全局最優還沒有找到時可以使得它的鄰域可以被搜索到。
在EPSO算法中,復制時期生成的r個克隆粒子,它們的策略參數處于變異中,然后再進行重新組合操作(移動規則同PSO算法),在r個不同位置生成r個后代,對這些后代進行選擇操作并且選擇一個最優的后代存活下來作為下一代種群中的粒子。對原種群中每個個體重復這一過程。算法流程如圖1所示。

圖1 進化粒子群算法流程圖
發動機處于某一穩態工作狀態時,需要同時滿足流量、功率、轉速平衡等包含6個非線性共同工作方程組,要獲得共同工作方程,需要從進氣道入口至尾噴管出口截面按氣流流過的順序進行一次完整的計算。穩態工作點求解的數學問題實質是求解獨立變量為未知數的非線性隱式方程組。
本文以通用雙轉子渦扇發動機為例,取低壓百分比轉速(PCNF)、風扇工作點位置參數(ZF)、高壓百分比轉速(PCNC)、壓氣機工作點位置參數(ZC)、高壓渦輪流量函數(TFFHP)、低壓渦輪流量函數(TFFLP)為獨立變量,通過部件級熱力學方程聯立求解共同工作方程組:

當共同工作方程6個殘差值趨于0時,認為模型獲得可靠解。在應用進化粒子群算法求解時,同經典方法一樣,需要設計點參數和初值。計算流程如圖2所示。

圖2 應用進化粒子群算法求解發動機模型流程圖
輸入外界大氣條件和初值,進行發動機各部件熱力學計算,之后求解共同工作方程,計算殘差,計算進化粒子群算法的適應度函數值,根據適應度值或迭代次數判斷是否終止計算。如不滿足終止條件,則根據進化粒子群算法產生新的一組獨立變量(ZF,ZC,PCNF,PCNC,TFFLP,TFFHP),再重復進行發動機各部件計算,直到滿足終止條件,輸出計算結果。
本文選取了在某次部件法建模過程中N-R算法迭代不收斂情況的算例來驗證進化粒子群算法在發動機建模中的應用效果。
兩種計算方法給出相同的設計點參數和初值。表1為進化粒子群算法的參數設置。

表1 算法初始參數設置
計算結果如圖3所示。

圖3 殘差平均平方根隨迭代次數的變化
在相同初值的情況下,N-R法求解發動機模型時往往需要好的初猜想值,初猜值選取不合適經常會導致迭代過程中趨于發散,無法求解。而進化粒子群算法很快達到收斂,計算的殘差平均誤差平方根為6.8×10-5,達到很高的精度。
經典算法在求解發動機模型時往往需要好的初猜想值,初猜值選取不合適經常會導致迭代計算發散。在建模過程中,調整初猜值往往沒有好的辦法,一般憑借經驗試取,造成建模工作量大。進化粒子群算法不需要精確的初猜值,可以很快地對發動機模型求解,且有很高的精度。本文應用算例驗證了基于隨機搜索的現代化算法求解非線性模型具有良好的效果,具有一定的工程應用價值。