劉小蒙,郁永年,魯玉祥,徐保成
(西北機電工程研究所,陜西 咸陽 712099)
多體系統動力學優化設計的核心一方面是如何計算目標函數和約束函數對設計變量的靈敏度,常用的方法有:有限差分法、直接微分法、伴隨變量法[1];另一方面是如何選擇高效、穩定的優化算法,可以保證快速收斂的同時,盡量減少目標函數的計算次數。
火炮是一個十分復雜的機、電、液一體化系統,為了真實地反映火炮發射過程中的運動與受力,目前針對火炮發射動力學的建模多采用剛柔耦合多體動力學方法,對模型的求解采用數值迭代方法,因此需要耗費一定的計算時間。基于火炮發射動力學的優化設計主要采用遺傳算法[2]與SQP算法[3]。
遺傳算法需要多次計算動力學方程,因此效率較低,SQP算法具有超線性收斂、數值穩定等優點,因此在工程上得到很好的應用。然而,為了保證算法的全局收斂性,SQP算法需要選擇一個“效益函數”作為算法下降性的檢測,常用的一類“效益函數”為精確罰函數,然而采用精確罰函數時,罰函數因子的選取沒有確定的公式,需要根據經驗反復地調試[4]。SQP算法在多體動力學優化中的另外一個問題是采用線性搜索計算最佳迭代步長,而線性搜索需要進行多次迭代,每次迭代都要求解一次多體動力學模型,因此會增加計算負擔。
實際上即使不用罰函數和線性搜索,SQP算法仍然可能具有全局收斂性,Roger Fletcher和Sven Leyffer提出了不用罰函數的Filter-SQP算法,并且通過大量的數值試驗驗證了該算法的有效性[5]。……