劉小蒙,郁永年,魯玉祥,徐保成
(西北機(jī)電工程研究所,陜西 咸陽 712099)
多體系統(tǒng)動(dòng)力學(xué)優(yōu)化設(shè)計(jì)的核心一方面是如何計(jì)算目標(biāo)函數(shù)和約束函數(shù)對(duì)設(shè)計(jì)變量的靈敏度,常用的方法有:有限差分法、直接微分法、伴隨變量法[1];另一方面是如何選擇高效、穩(wěn)定的優(yōu)化算法,可以保證快速收斂的同時(shí),盡量減少目標(biāo)函數(shù)的計(jì)算次數(shù)。
火炮是一個(gè)十分復(fù)雜的機(jī)、電、液一體化系統(tǒng),為了真實(shí)地反映火炮發(fā)射過程中的運(yùn)動(dòng)與受力,目前針對(duì)火炮發(fā)射動(dòng)力學(xué)的建模多采用剛?cè)狁詈隙囿w動(dòng)力學(xué)方法,對(duì)模型的求解采用數(shù)值迭代方法,因此需要耗費(fèi)一定的計(jì)算時(shí)間?;诨鹋诎l(fā)射動(dòng)力學(xué)的優(yōu)化設(shè)計(jì)主要采用遺傳算法[2]與SQP算法[3]。
遺傳算法需要多次計(jì)算動(dòng)力學(xué)方程,因此效率較低,SQP算法具有超線性收斂、數(shù)值穩(wěn)定等優(yōu)點(diǎn),因此在工程上得到很好的應(yīng)用。然而,為了保證算法的全局收斂性,SQP算法需要選擇一個(gè)“效益函數(shù)”作為算法下降性的檢測,常用的一類“效益函數(shù)”為精確罰函數(shù),然而采用精確罰函數(shù)時(shí),罰函數(shù)因子的選取沒有確定的公式,需要根據(jù)經(jīng)驗(yàn)反復(fù)地調(diào)試[4]。SQP算法在多體動(dòng)力學(xué)優(yōu)化中的另外一個(gè)問題是采用線性搜索計(jì)算最佳迭代步長,而線性搜索需要進(jìn)行多次迭代,每次迭代都要求解一次多體動(dòng)力學(xué)模型,因此會(huì)增加計(jì)算負(fù)擔(dān)。
實(shí)際上即使不用罰函數(shù)和線性搜索,SQP算法仍然可能具有全局收斂性,Roger Fletcher和Sven Leyffer提出了不用罰函數(shù)的Filter-SQP算法,并且通過大量的數(shù)值試驗(yàn)驗(yàn)證了該算法的有效性[5]。Filter-SQP算法在火炮發(fā)射動(dòng)力學(xué)的優(yōu)化設(shè)計(jì)上也有著明顯的優(yōu)勢(shì)。本文以某車載火炮為例,采用自主開發(fā)的Filter-SQP算法,研究其在火炮發(fā)射動(dòng)力學(xué)優(yōu)化中的應(yīng)用。
“慮子(Filter)”的概念是由Fletcher和Leyffer提出的用來求解非線性規(guī)劃問題的一類有效的數(shù)值方法,它回避了“價(jià)值函數(shù)”的概念,而且避免了罰因子的選取問題。
考慮一般的約束優(yōu)化問題:
(1)
在求解非線性優(yōu)化問題時(shí),不僅要求目標(biāo)函數(shù)最小,而且還要滿足可行域的條件,在罰函數(shù)中把這兩個(gè)條件聯(lián)合在一起,而在Filter算法中這兩個(gè)相互沖突的目標(biāo)可以改寫成多目標(biāo)優(yōu)化的形式:
(2)
其中:
(3)
這里:
(4)
把(f(x),h(x))作為一個(gè)坐標(biāo)點(diǎn),有如下兩個(gè)定義:
定義1(f(k),h(k))控制(f(l),h(l))當(dāng)且僅當(dāng)f(k)≤f(l),并且h(k)≤h(l)。
定義2Filter是由一系列的(f(l),h(l))構(gòu)成,F(xiàn)ilter中的每一個(gè)點(diǎn)都不相互控制,新點(diǎn)(f(k),h(k))不被Filter中的任何一個(gè)點(diǎn)所控制時(shí),就接受這一點(diǎn),并且把(f(k),h(k))控制的所有點(diǎn)從Filter中除去。
將Filter方法與SQP算法結(jié)合,可以得到很好的Filter-SQP算法,算法步驟如下:
1)給定初始值x(0)和ρ置k=0。
2)判斷二次規(guī)劃(QP)子問題是否可行,若不可行,選取新的迭代點(diǎn)x(k)重新計(jì)算;若可行,計(jì)算QP子問題:
s.t.A(k)Td+c(k)=0
‖d‖∞≤ρ
得到d(k),判斷是否滿足收斂性條件,若滿足,進(jìn)入步驟 6);否則,把d(k)作為搜索方向,置x(k+1)=x(k)+d(k)。
3)計(jì)算f(k+1),h(k+1),判斷(f(k+1),h(k+1))是否被Filter接受,若接受進(jìn)入 4),否則進(jìn)入 5)。
4)接受x(k+1)并把(f(k+1),h(k+1))加入到Filter中,移除被(f(k+1),h(k+1))控制的點(diǎn),增大ρ,置k=k+1。
5)拒絕本次迭代,置x(k+1)=x(k),減小ρ,回到步驟 2)。
6)完成迭代,輸出最終的x和目標(biāo)函數(shù)值f(x)。
由于Filter-SQP算法沒有采用線性搜索策略,因此大大減少目標(biāo)函數(shù)的求解次數(shù)。另外,該算法中ρ的值動(dòng)態(tài)調(diào)整,因此對(duì)初值的依賴比較小。
車載火炮發(fā)射過程中,身管與炮尾受到炮膛合力的作用,沿?fù)u架后坐運(yùn)動(dòng)。在后坐過程中,連接在炮尾與搖架上的復(fù)進(jìn)機(jī)與駐退機(jī)對(duì)炮膛合力起到緩沖作用,并將復(fù)進(jìn)機(jī)力與駐退機(jī)力傳遞給搖架。搖架通過耳軸將力傳遞給上架,上架與座圈固結(jié),進(jìn)一步將力傳遞到車體,最終通過駐鋤與車輪傳遞給地面,完成一次發(fā)射過程。
根據(jù)車載火炮的發(fā)射過程,將其簡化為由車體、駐鋤、火力部分、反后坐裝置構(gòu)成的機(jī)構(gòu),其拓?fù)浣Y(jié)構(gòu)如圖1所示。其中,高低機(jī)與方向機(jī)用阻尼彈簧代替;輪胎與地面、炮尾與搖架為接觸/碰撞模型,其余各個(gè)構(gòu)件的連接均為基本的固定副、旋轉(zhuǎn)副和滑移副;身管、搖架與上架是載荷的主要作用受體,在實(shí)際發(fā)射過程會(huì)發(fā)生小的變形,進(jìn)而影響整車的運(yùn)動(dòng)特性,因此將身管、搖架與上架當(dāng)作柔性體處理。
基于上述分析,對(duì)全炮動(dòng)力學(xué)做如下假設(shè):
1)車載火炮射擊條件為:水平硬地面上射擊,高低射角為65°,方位射角為0°。
2)將車載火炮簡化為主要構(gòu)件組成的剛?cè)狁詈隙囿w動(dòng)力學(xué)系統(tǒng),其中身管、搖架與上架為柔性體。
3)不考慮彈丸在身管中的運(yùn)動(dòng)。
4)不考慮地面對(duì)發(fā)射過程的影響,將駐鋤與地面之間的作用力用剛度阻尼彈簧代替。
5)方向機(jī)、駐退機(jī)和復(fù)進(jìn)機(jī)等均為廣義坐標(biāo)、廣義速率和結(jié)構(gòu)參數(shù)的函數(shù)。
在ADAMS中建立車載火炮的剛?cè)狁詈隙囿w系統(tǒng)動(dòng)力學(xué)模型,設(shè)置好仿真時(shí)間與步長、求解微分-代數(shù)方程所用的算法,即可對(duì)該模型進(jìn)行仿真分析。圖2和圖3分別為仿真得到的炮口垂向與水平振動(dòng)角速度曲線,圖4為身管上某點(diǎn)垂向振動(dòng)位移的測試與仿真結(jié)果對(duì)比曲線,可以看出,仿真結(jié)果與實(shí)際測量結(jié)果十分相似,從而驗(yàn)證了該模型的正確性。
本節(jié)主要對(duì)駐退機(jī)力進(jìn)行優(yōu)化分析。將駐退機(jī)流液孔的節(jié)制桿分為若干段,每兩段之間的節(jié)制桿截面直徑均勻變化,而節(jié)制桿面積的變化會(huì)引起流液孔面積的變化。駐退機(jī)力公式:
(5)
式中:v為后坐運(yùn)動(dòng)速度;K1、K2為主流和支流液壓阻力系數(shù);A0為后坐時(shí)活塞工作面積;Ap為駐退機(jī)節(jié)制環(huán)孔面積;Afj為復(fù)進(jìn)節(jié)制器工作面積;A1為支流最小截面積;ρ為液體密度;ax為流液孔面積。
流液孔面積的變化最終會(huì)改變駐退機(jī)力的大小,因此將各段的流液孔面積取為設(shè)計(jì)變量。火炮從發(fā)射到彈丸出炮口這一過程大概持續(xù)0.015 s的時(shí)間,在這一段時(shí)間內(nèi)后坐運(yùn)動(dòng)的位移大概為0.1 m。因此將后坐位移在0~0.1 m范圍的流液孔分成4段共5個(gè)截面面積,選取這5個(gè)截面面積A1~A5為設(shè)計(jì)變量[6],如圖5所示。
由圖2和圖3可以看出,彈丸出炮口瞬時(shí)炮口振動(dòng)的垂向與水平角速度振動(dòng)比較劇烈,因此會(huì)對(duì)炮口擾動(dòng)產(chǎn)生較大的影響。本文選取彈丸出炮口瞬時(shí)的垂向與水平角速度的組合為目標(biāo)函數(shù),并對(duì)其進(jìn)行歸一化處理,根據(jù)垂向與水平角速度對(duì)炮口擾動(dòng)的影響大小不同,可以通過加權(quán)因子進(jìn)行調(diào)節(jié)。目標(biāo)函數(shù)可以表示為:
(6)
式中:ωy0為初始垂向振動(dòng)角速度;ωz0為初始水平振動(dòng)角速度;α,β為加權(quán)因子,且滿足0≤α≤1,0≤β≤1,α+β=1。
由于駐退機(jī)結(jié)構(gòu)設(shè)計(jì)時(shí),已經(jīng)滿足火炮射擊時(shí)的各種約束條件,而對(duì)流液孔面積進(jìn)行優(yōu)化時(shí),只是進(jìn)行局部微調(diào)。因此只將各個(gè)設(shè)計(jì)變量在其初始值附近的浮動(dòng)值作為約束條件,取設(shè)計(jì)變量的±10%作為上下界,約束函數(shù)可以表示為:
Ai-(1+10%)Ai0≤0
(1-10%)Ai0-Ai≤0i=1,2,…,5
式中:Ai0為設(shè)計(jì)變量的初始值。
由于ADAMS軟件自帶的優(yōu)化算法只有SQP與GRG,因此需要對(duì)ADAMS軟件進(jìn)行二次開發(fā),把Filter-SQP算法以動(dòng)態(tài)庫的形式加載到自定義優(yōu)化算法中。采用Filter-SQP算法對(duì)上節(jié)的模型進(jìn)行優(yōu)化,并與SQP算法進(jìn)行對(duì)比分析。
采用兩種算法得到的目標(biāo)函數(shù)隨迭代次數(shù)變化的曲線如圖6所示,具體的優(yōu)化結(jié)果見表1。兩種算法優(yōu)化后得到的設(shè)計(jì)變量如表2所示,彈丸出炮口瞬時(shí)的水平、垂向角速度如表3所示。
表1 優(yōu)化結(jié)果對(duì)比
表2 優(yōu)化后的設(shè)計(jì)變量對(duì)比
表3 優(yōu)化后的水平、垂向角速度對(duì)比
通過對(duì)比可以看出,采用Filter-SQP算法與SQP算法對(duì)炮口擾動(dòng)進(jìn)行優(yōu)化均取得一定的效果,兩者優(yōu)化后的結(jié)果十分相近。SQP算法迭代6次,共計(jì)算模型56次,而Filter-SQP算法迭代10次,共計(jì)算模型35次。Filter-SQP算法雖然迭代次數(shù)多一些,但是歸結(jié)到目標(biāo)函數(shù)的計(jì)算卻大大小于SQP算法,主要原因是SQP算法在每一個(gè)迭代步,除了要計(jì)算靈敏度,還要進(jìn)行線性搜索,因此SQP算法下降比較快,而對(duì)目標(biāo)函數(shù)的計(jì)算次數(shù)卻大于Filter-SQP算法。
由此可以看出,采用Filter-SQP算法在達(dá)到相同的優(yōu)化效果的同時(shí),顯著減少優(yōu)化所需要的時(shí)間。而且,該算法不僅針對(duì)車載火炮發(fā)射動(dòng)力學(xué)問題,對(duì)其他復(fù)雜的火炮發(fā)射動(dòng)力學(xué)優(yōu)化問題也同樣適用。
本文以某車載火炮為例,采用Filter-SQP算法對(duì)火炮發(fā)射動(dòng)力學(xué)模型進(jìn)行優(yōu)化,并與SQP算法進(jìn)行了對(duì)比分析。結(jié)果表明,該算法可以顯著降低模型的求解次數(shù),減少優(yōu)化所需的時(shí)間,比較適用于復(fù)雜的火炮發(fā)射動(dòng)力學(xué)優(yōu)化問題。
[1] 潘振寬,丁潔玉,高磊,等.多體系統(tǒng)動(dòng)力學(xué)動(dòng)態(tài)最優(yōu)化設(shè)計(jì)與靈敏度分析[J].力學(xué)學(xué)報(bào),2005,37(5):611-618.
PAN Zhen-kuan, DING Jie-yu, GAO Lei,et al. Dynamic optimiziation of multi-body system dynamics and design sensitivity analysis[J]. Chinese Journal of Theoretical and Applied Mechanics, 2005,37(5):611-618.(in Chinese)
[2] 于子平,錢林芳,徐亞東.基于動(dòng)力學(xué)仿真的車載火炮射擊穩(wěn)定性優(yōu)化[J].火炮發(fā)射與控制學(xué)報(bào),2006(3):36-40.
YU Zi-ping, QIAN Lin-fang,XU Ya-dong.Firing stability optimization of truck mounted gun system based on dynamic simulation[J].Journal of Gun Launch & Control, 2006(3):36-40.(in Chinese)
[3] 賈長治,鄭堅(jiān).結(jié)構(gòu)設(shè)計(jì)參數(shù)對(duì)火炮炮口振動(dòng)影響的仿真及基于SQP方法的優(yōu)化[J].機(jī)械工程學(xué)報(bào),2006,42(9):130-134.
JIA Chang-zhi, ZHENG Jian. Effect simulation of design parameters on muzzle vibration of guns and optimization with SQP method[J].Chinese Journal of Mechanical Engineering,2006,42(9):130-134.(in Chinese)
[4] 李董輝,童小嬌,萬中.數(shù)值最優(yōu)化算法與理論[M].北京:科學(xué)出版社,2010.
LI Dong-hui,TONG Xiao-jiao,WAN Zhong. Numerical optimization algorithm and theory[M]. Beijing:Science Press, 2010.(in Chinese)
[5] ROGER FLETCHER,SVEN LEYFFER. Nonlinear programming without a penalty function[J].Mathematical Programming, 2002,91(2):239-269.
[6] 高樹滋,陳運(yùn)生,張?jiān)铝?等.火炮反后坐裝置設(shè)計(jì)[M].北京:兵器工業(yè)出版社,1995.
GAO Shu-zi, CHEN Yun-sheng, ZHANG Yue-lin,et al. Design of recoil system for guns[M]. Beijing:The Publishing House of Ordance Industry,1995.(in Chinese)