趙新華,段廣仁,蘭賀,孫堯
(1.哈爾濱工業(yè)大學(xué)航天學(xué)院,黑龍江哈爾濱150001;2.哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱150001)
目前,對(duì)于超空泡航行體控制問(wèn)題的研究主要有2種方法[1-3]:射彈實(shí)驗(yàn)和數(shù)值模擬.這2種方法都存在一定的不足,數(shù)值模擬方法以理論研究為基礎(chǔ),根據(jù)計(jì)算得到超空泡航行體的各個(gè)狀態(tài)參量,其研究結(jié)果多以仿真曲線或者統(tǒng)計(jì)數(shù)據(jù)的形式出現(xiàn),相對(duì)抽象.而射彈實(shí)驗(yàn)的方法是通過(guò)樣彈實(shí)體,在水洞或水池中進(jìn)行射彈試驗(yàn),該方法能夠直觀地觀察控制效果及航行體運(yùn)動(dòng)形態(tài),但是風(fēng)險(xiǎn)高、成本高、可重復(fù)性差.因此,完全依賴實(shí)驗(yàn)的手段獲得超空泡航行體的動(dòng)力學(xué)特性及控制規(guī)律是不現(xiàn)實(shí)的.開(kāi)發(fā)一種既能數(shù)值計(jì)算控制結(jié)果又能將結(jié)果直觀顯示的虛擬現(xiàn)實(shí)系統(tǒng)仿真軟件具有重要的意義.
本文采用虛擬現(xiàn)實(shí)技術(shù)開(kāi)展了超空泡航行體控制效果的可視化仿真研究,并開(kāi)發(fā)了相應(yīng)的仿真軟件平臺(tái).基于OpenGL的標(biāo)準(zhǔn)3-D圖形接口,將在3Dmax中繪制的三維航行體模型,加載到OpenGL中;在超空泡航行體動(dòng)力學(xué)模型的基礎(chǔ)上,設(shè)計(jì)多種控制方案并編制了相應(yīng)的控制模塊.通過(guò)友好的用戶界面,操作人員可以自主選擇控制方案,更改控制參數(shù),并繪制仿真曲線;利用虛擬現(xiàn)實(shí)技術(shù)對(duì)海洋、海底環(huán)境進(jìn)行渲染,對(duì)航行體的航行姿態(tài)及空泡狀態(tài)進(jìn)行繪制,通過(guò)按鍵控制,實(shí)時(shí)觀測(cè)航行體尾部與空泡位置的相對(duì)變化以及航行體尾部煙霧的變化等.
開(kāi)發(fā)一個(gè)基于OpenGL的虛擬現(xiàn)實(shí)系統(tǒng).系統(tǒng)中,將超空泡的數(shù)學(xué)模型及控制算法應(yīng)用于控制對(duì)象,在計(jì)算機(jī)平臺(tái)上重復(fù)模擬實(shí)驗(yàn),檢驗(yàn)并分析實(shí)驗(yàn)結(jié)果,協(xié)助完成控制方案的設(shè)計(jì)、驗(yàn)證及篩選.可以縮短研發(fā)周期,節(jié)省實(shí)驗(yàn)及研發(fā)經(jīng)費(fèi).并對(duì)航行體的運(yùn)行環(huán)境進(jìn)行渲染,使視覺(jué)效果更加真實(shí).這樣的系統(tǒng)具有現(xiàn)場(chǎng)化、可視化、安全性、經(jīng)濟(jì)性、可控性及無(wú)破壞性等優(yōu)點(diǎn).
通過(guò)參考國(guó)內(nèi)外大量超空泡控制問(wèn)題的研究文獻(xiàn)及基于OpenGL的虛擬現(xiàn)實(shí)仿真技術(shù)的文獻(xiàn)資料,針對(duì)仿真平臺(tái)的開(kāi)發(fā)目的,該虛擬現(xiàn)實(shí)仿真系統(tǒng)應(yīng)滿足下面的需求:
1)友好的用戶操作界面.
2)仿真平臺(tái)提供視覺(jué)感良好、真實(shí)生動(dòng)的水下環(huán)境,包括海底的顯示、海面的顯示及海洋環(huán)境的顯示等,可供研究其他水下潛器之用,省去了渲染環(huán)境所耗費(fèi)的時(shí)間.
3)超空泡航行體周圍空泡的形成過(guò)程及最終的穩(wěn)定形態(tài)應(yīng)按照經(jīng)過(guò)試驗(yàn)驗(yàn)證的公式進(jìn)行仿真,而不是簡(jiǎn)單的動(dòng)畫(huà)效果.
4)為仿真平臺(tái)中的超空泡航行體建立動(dòng)力學(xué)模型,設(shè)計(jì)控制方案,在屏幕上觀察控制效果,篩選正確的控制方案.在控制算法的選擇處留有接口,以便添加其他控制算法,實(shí)現(xiàn)軟件平臺(tái)的可擴(kuò)展性.
根據(jù)超空泡航行體的實(shí)際物理外觀,在3Dmax中繪制三維模型,經(jīng)MilkShape軟件轉(zhuǎn)換成可以加載到OpenGL中的Ms3d格式,并放入工程目錄下.在屏幕上顯示加載模型,并對(duì)其進(jìn)行建模、控制方案的設(shè)計(jì)、周圍環(huán)境的渲染及空泡的動(dòng)態(tài)生成等操作,其基本組成框架如圖1所示.
圖1 系統(tǒng)組成Fig.1 Block diagramof the system
平臺(tái)中超空泡航行體模型是實(shí)際模型的近似,由圓錐段和圓柱段組成.圓錐段的長(zhǎng)度為L(zhǎng)con,圓柱段的長(zhǎng)度為L(zhǎng)cyl.圓柱段的長(zhǎng)度為圓錐段長(zhǎng)度的2倍,整個(gè)航行體的長(zhǎng)度為L(zhǎng)=Lcon+Lcyl,圓柱截面的半徑為R,空化器的半徑為Rn.
參考坐標(biāo)系原點(diǎn)為空化器的壓力中心,x軸沿著航行體的對(duì)稱軸指向前方,w為航行體垂直速度,V為航前向速度,z軸與航行體平面垂直,俯仰角由θ表示,q為俯仰角速度.超空泡航行體的動(dòng)力學(xué)模型為
式(1)中參數(shù)的含義詳見(jiàn)參考文獻(xiàn)[4].
利用空泡截面獨(dú)立擴(kuò)張?jiān)恚⒏鶕?jù)國(guó)內(nèi)外大量的實(shí)驗(yàn)數(shù)據(jù)得到未受擾動(dòng)的空泡經(jīng)驗(yàn)計(jì)算
公式[5]:
式中:RC為空泡中截面半徑,σ =0.03,Cx0=0.82,x1=2Rn,L 是超空泡的長(zhǎng)度,y是距離空化器x處的空泡半徑.經(jīng)MATLAB仿真,空泡形狀如圖2所示.可見(jiàn),無(wú)擾動(dòng)空泡形狀為兩端開(kāi)口的對(duì)稱橢圓.
圖2 空泡外形仿真Fig.2 Simulation of the cavity shape
但在實(shí)際航行過(guò)程中,空化器攻角、航行體重力、空泡自身浮力等均對(duì)空泡形狀產(chǎn)生影響,導(dǎo)致空泡變形.引入空泡軸向高度變量hf,描述攻角導(dǎo)致空泡形態(tài)變化,如圖3所示.
圖3 攻角引起的空泡外形變化Fig.3 Deformation of the cavity for angle of attack
應(yīng)用攝動(dòng)研究方法,得出hf為[6]
式中:Cy=2Fy/ρV2πR2n,F(xiàn)y為作用在空化器上的升力[7],=2x/L.
當(dāng)航行速度較低時(shí),空泡軸線會(huì)在重力的作用下向上偏移,當(dāng)航行速度較高時(shí),可以忽略重力對(duì)空泡形態(tài)影響,計(jì)算出不對(duì)稱空泡的上下邊界:式中:yc1、yc2分別為非對(duì)稱空泡的上、下邊界,xc為重心位置,α為攻角,R(x)為空泡半徑.空泡受到浮力作用,使中心線向上偏轉(zhuǎn),有經(jīng)驗(yàn)公式如下:
式中:
式中:x為航行體中心線上的某點(diǎn),Ok為x橫截面處閉合的空泡容積,R(x)為空泡半徑.
基于超空泡航行體的動(dòng)力學(xué)模型,設(shè)計(jì)了6種控制方案,分別為狀態(tài)反饋控制、反饋線性化控制、滑??刂啤⒆顑?yōu)控制、突變控制及開(kāi)環(huán)控制等.運(yùn)用VC++編程顯示二維動(dòng)態(tài)控制效果.
操作人員通過(guò)用戶友好界面,裝訂航行體結(jié)構(gòu)參數(shù),主要流體動(dòng)力參數(shù),選擇控制方案,對(duì)控制器參數(shù)進(jìn)行裝訂,最后動(dòng)態(tài)觀測(cè)航行體運(yùn)動(dòng)姿態(tài),比較控制效果.軟件的運(yùn)行邏輯如圖4所示.
程序運(yùn)行時(shí),先在屏幕上確定出航行體重心的位置,以其為基準(zhǔn),按照航行體各部分的比例關(guān)系,確定其頭部、尾部、尾翼等位置,使用畫(huà)圖函數(shù),畫(huà)出航行體.解算航行體的運(yùn)動(dòng)方程及相應(yīng)控制算法,并設(shè)定定時(shí)器,動(dòng)態(tài)顯示航行體的運(yùn)動(dòng)形態(tài).
圖4 軟件邏輯數(shù)據(jù)流Fig.4 The software logic data stream
以狀態(tài)反饋控制及滑??刂茷槔瑢?duì)超空泡航行體的控制方案進(jìn)行對(duì)比.狀態(tài)反饋控制及滑??刂频姆抡娼Y(jié)果如圖5及6所示.
從圖中可以看出,超空泡航行體的航行狀態(tài)在狀態(tài)反饋控制方案下,響應(yīng)較快、穩(wěn)定時(shí)間長(zhǎng)、狀態(tài)響應(yīng)較平穩(wěn).可見(jiàn)狀態(tài)反饋控制的控制效果較好.與此類似,其余4種控制方案的控制效果也可以通過(guò)相同的方法比較得出.
圖5 狀態(tài)反饋控制效果的界面示意Fig.5 Diagramof interface for state feedback control
圖6 滑??刂菩Ч慕缑媸疽釬ig.6 Diagramof interface for slidemode control
根據(jù)超空泡航行體的實(shí)際物理外觀,在3Dmax中繪制三維航行體模型,經(jīng)MilkShape軟件轉(zhuǎn)換成可以加載到OpenGL中的Ms3d格式,并放入工程目錄下.在屏幕上顯示加載的模型,并對(duì)其進(jìn)行運(yùn)動(dòng)建模及控制方案的實(shí)施、周圍環(huán)境的渲染及空泡動(dòng)態(tài)生成等操作,仿真系統(tǒng)的驅(qū)動(dòng)過(guò)程如圖7所示.
圖7 系統(tǒng)仿真驅(qū)動(dòng)過(guò)程Fig.7 Systemsimulation diagramof driving process
為展現(xiàn)超空泡航行體真實(shí)的運(yùn)行場(chǎng)景,需要對(duì)海洋和海底環(huán)境進(jìn)行渲染.由于該視景仿真系統(tǒng),對(duì)海洋及海底的真實(shí)度要求不高,所以均采用紋理映射技術(shù)[8].先設(shè)置實(shí)現(xiàn)航行體飛越大面積海底環(huán)境的矩陣,然后對(duì)這些矩陣進(jìn)行紋理貼圖,紋理的選取應(yīng)滿足對(duì)視覺(jué)效果的要求.
此外,對(duì)海面波浪進(jìn)行模擬,使視覺(jué)效果更加逼真.通過(guò)實(shí)現(xiàn)一個(gè)正弦波方式運(yùn)動(dòng)的圖像,模擬海面波浪.
為使視覺(jué)效果更加逼真,在海底添加了障礙物.障礙物的繪制采用了OpenGL中二次曲面的繪制方法.通過(guò)繪制球體、三角柱、四角柱等幾何體的組合體,實(shí)現(xiàn)對(duì)障礙物的繪制.繪制步驟如圖8所示.該系統(tǒng)中,根據(jù)視點(diǎn)坐標(biāo)及目標(biāo)移動(dòng)的規(guī)律設(shè)置障礙物的位置和大小.障礙物的數(shù)據(jù)在記事本文件中設(shè)置并讀取.
圖8 OpenGL中二次曲面的繪制步驟Fig.8 mapping steps of quadric surface in OpenGL
由于OpenGL中沒(méi)有繪制三維模型的函數(shù),如用OpenGL中的基本圖元繪制,不僅實(shí)現(xiàn)困難,并且渲染時(shí)間長(zhǎng),模型真實(shí)度欠缺.所以,經(jīng)常使用三維繪圖軟件繪制模型,加載到OpenGL中,再對(duì)其進(jìn)行控制等一系列操作[9].
本系統(tǒng)中使用3Dmax軟件繪制航行體模型,包括尾翼及空化器.繪制過(guò)程中,用到了多邊形圓滑、材質(zhì)貼圖、布爾運(yùn)算等功能.最后,將繪制好的模型保存為“.max”格式,為方便將它載入 OpenGL中,使用Ms3d軟件將該文件轉(zhuǎn)換為Ms3d格式.圖8為3Dmax中航行體模型的實(shí)現(xiàn).
圖9 3Dmax中航行體模型的實(shí)現(xiàn)Fig.9 Vehiclemodel implementation in 3Dmax
在OpenGL中實(shí)現(xiàn)Ms3d模型的加載要經(jīng)過(guò)讀入文件和調(diào)用OpenGL圖形庫(kù)2個(gè)步驟.將Ms3d格式文件添加到OpenGL工程目錄下,但是文件格式并不能成功加載一個(gè)模型,必須定義一個(gè)保存數(shù)據(jù)的結(jié)構(gòu),然后把數(shù)據(jù)讀入這個(gè)結(jié)構(gòu).結(jié)構(gòu)定義在model.h中,分別定義頂點(diǎn)結(jié)構(gòu)、三角形結(jié)構(gòu)、網(wǎng)格結(jié)構(gòu)和材質(zhì)屬性.
超空泡航行體在水下運(yùn)行時(shí),當(dāng)速度超過(guò)一定的范圍,就會(huì)在周圍產(chǎn)生空泡,根據(jù)式(2)及第2節(jié)給出的模型尺寸與其周圍形成的空泡尺寸的比例,在屏幕上顯示同樣比例的航行體及其周圍產(chǎn)生的空泡.在z=0平面上,以空化器上下邊緣為基準(zhǔn),上下各取100個(gè)點(diǎn),畫(huà)出空泡的輪廓,再由這100個(gè)點(diǎn)繪制出三維空泡.如圖10所示.
圖10 空泡的繪制過(guò)程Fig.10 Diagramof drawing process of cavity
利用三角形拼接空泡的外形,即在OpenGL的函數(shù)glBegin(GL_TRIANGLES)及glEnd()之間加入glVertex3f()函數(shù),函數(shù)參數(shù)為以坐標(biāo)方式描述的三角形頂點(diǎn)數(shù)據(jù).
采用OpenGL完成的超空泡的三維視景顯示,超空泡的形成過(guò)程如圖11所示.
圖11 超空泡形成過(guò)程示意Fig.11 Diagramof the supercavity developing
航行體尾部煙霧的實(shí)現(xiàn)要借助于OpenGL粒子系統(tǒng).粒子系統(tǒng)采用的設(shè)計(jì)思想是由大量的具有一定形狀和大小、速度和運(yùn)動(dòng)方向、生命周期和屬性的微小粒子作為基本元素,繪制各種不規(guī)則的模糊對(duì)象,如動(dòng)態(tài)不規(guī)則的雨、雪、煙霧及火焰等自然場(chǎng)景[10-11].
實(shí)現(xiàn)航行體尾部煙霧效果時(shí),首先需要定義粒子基本參量的數(shù)據(jù)結(jié)構(gòu),對(duì)粒子的初始屬性進(jìn)行初始的設(shè)置時(shí)會(huì)用到這些數(shù)據(jù).包括粒子的位置坐標(biāo)、生命周期、粒子運(yùn)動(dòng)速度的大小及方向等參數(shù).仿真效果見(jiàn)圖12所示.
圖12 尾部煙霧的效果Fig.12 Effect chart of the tail smoke
超空泡航行體運(yùn)動(dòng)過(guò)程中俯仰角不斷變化,為動(dòng)態(tài)顯示這一過(guò)程,應(yīng)用OpenGL中的旋轉(zhuǎn)函數(shù)gl-Rotatef().該函數(shù)的作用是將物體繞原點(diǎn)到點(diǎn)(x,y,z)的連線逆時(shí)針旋轉(zhuǎn)angle角度,x,y,z值非零即1,為局部坐標(biāo)系.由于航行體俯仰角的變化可以理解為航行體繞其前端的旋轉(zhuǎn)過(guò)程,旋轉(zhuǎn)的角度即為由動(dòng)態(tài)方程解算出來(lái)的俯仰角.因此,直接應(yīng)用該函數(shù)實(shí)現(xiàn)上述功能還不夠,需要先將航行體平移,平移的坐標(biāo)為航行體所繞行的位置處的坐標(biāo),然后進(jìn)行旋轉(zhuǎn)操作后,再將航行體平移至原來(lái)的位置.局部坐標(biāo)系下,航行體的坐標(biāo)原點(diǎn)已經(jīng)設(shè)定在位置(aereo.x,aereo.y,aereo.z)處,由于這里需要將航行體繞行部位設(shè)置為航行體頭部,頭部位置處的屏幕坐標(biāo)為(aereo.x-13,aereo.y,aereo.z),需要經(jīng)過(guò)如下處理:
glTranslatef(aereo.x-13,aereo.y,aereo.z);
glRotatef(angle,0.0f,0.0f,1.0f);
glTranslatef(13,0.0,0.0);
此時(shí),將已有的數(shù)據(jù)信息轉(zhuǎn)換成代碼,便可以解算出俯仰角數(shù)組,將其作為參數(shù)傳入函數(shù)glRotatef().為對(duì)航行過(guò)程進(jìn)行實(shí)時(shí)模擬,使用VC++時(shí)鐘,時(shí)鐘響應(yīng)的時(shí)間間隔設(shè)置太大,會(huì)造成水下高速運(yùn)行體的運(yùn)行產(chǎn)生跳躍感.經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,本系統(tǒng)設(shè)置20 ms,可以真實(shí)反映出航行體的實(shí)時(shí)俯仰角變化情況及其與空泡的接觸情況,如圖13所示.
圖13 航行體動(dòng)態(tài)運(yùn)行效果Fig.13 Effect chart of themoving vehicle
仿真系統(tǒng)中,通過(guò)鍵盤操作,實(shí)現(xiàn)了視角變換的功能.
程序中,添加WM_KEYDOWN消息響應(yīng)函數(shù),系統(tǒng)便可捕捉用戶的鍵盤操作.然后通OpenGL中的視點(diǎn)變換函數(shù)gluLookAt()即可實(shí)現(xiàn)視角的變換功能.如圖14所示,可以清晰的觀察到航行體的尾部與空泡的接觸情況,即滑行力的變化情況.
圖14 仿真系統(tǒng)視角變換效果Fig.14 Effect chart of changing visual angle
本文在已有超空泡航行體動(dòng)力學(xué)模型的基礎(chǔ)上,設(shè)計(jì)控制方案,利用虛擬現(xiàn)實(shí)技術(shù)對(duì)控制效果進(jìn)行三維視景仿真研究.完成了對(duì)超空泡航行體運(yùn)行環(huán)境的視景仿真,包括海面波浪、海底環(huán)境、海底障礙物、三維航行體模型、空泡的形成過(guò)程、尾部煙霧的形成、控制效果的動(dòng)態(tài)演示、視角變換等.對(duì)該軟件平臺(tái)的測(cè)試表明,可以完成超空泡航行體控制方案的選擇與控制效果分析,空泡形態(tài)變化、航行體運(yùn)動(dòng)姿態(tài)變化三維視景仿真等任務(wù).
本文建立的航行體物理模型為實(shí)際超空泡模型的簡(jiǎn)化模型,逼真程度較高.控制方案參數(shù)修改靈活,航行體動(dòng)態(tài)效果模擬較準(zhǔn)確,能夠?yàn)榭蒲腥藛T在超空泡航行體控制問(wèn)題的研究中,提供方便快捷的有效途徑,獲得直觀、清晰的認(rèn)識(shí).
[1]SAVCHENKO Y N.Control of supercavitation flowand stability of supercavitatingmotion of bodies[C]//VKISpecial Course on Supercavitating Flows.Brussel,Belgium,2001:313-329.
[2]楊莉,張慶明.超空泡技術(shù)的應(yīng)用現(xiàn)狀和發(fā)展趨勢(shì)[J].戰(zhàn)術(shù)導(dǎo)彈技術(shù),2006(5):6-10.YANG Li,ZHANG Qingming.Current application and perspectives on supercavitation technology research[J].Tactical Missile Technology,2006(5):6-10.
[3]曹偉,魏英杰,王聰,等.超空泡技術(shù)現(xiàn)狀、問(wèn)題與應(yīng)用[J].力學(xué)進(jìn)展,2006,36(4):571-579.CAOWei,WEI Yingjie,WANG Cong,et al.Current status,problems and applications of supercavitation technology[J].Advances in Mechanics,2006,36(4):571-579.
[4]DZIELSKIJ,KURDILA A J.A benchmark control problemfor supercavitating vehicles and an initial investigation of solutions[J].Journal of Vibration and Control,2003,6(9):791-804.
[5]ANUKUL G.Robust control of supercavitating vehicles in the presence of dynamic and uncertain cavity[D].Orlando:University of Florida,2005:79-86.
[6]馬宏男.高速水下航行體半實(shí)物實(shí)時(shí)仿真系統(tǒng)研究[D].哈爾濱:哈爾濱工程大學(xué),2010:53-60.MA Hongnan.Semi-physical real-time simulation systemresearch of super highspeed underwater vehicle[D].Harbin:Harbin Engineering University,2010:53-60.
[7]趙新華,孫堯,莫宏偉,等.水下超高速航行體縱向運(yùn)動(dòng)的控制方法研究[J].工程力學(xué),2009,26(2):242-246.ZHAO Xinhua,SUN Yao,MO Hongwei,et al.Longitudinalmotion control of underwater high-speed vehicle[J].Engineering Mechanics,2009,26(2):242-246.
[8]宋志明,康鳳舉,閻晉屯,等.海洋環(huán)境視景仿真方法研究[J].計(jì)算機(jī)仿真,2004,21(6):131-134.SONG Zhiming,KANG Fengju,YAN Jintun,et al.Research on themethods of ocean scene simulation[J].Computer Simulation,2004,21(6):131-134.
[9]殷明均,鄭一露.基于MilkShape 3D的建模設(shè)計(jì)應(yīng)用[J].電腦知識(shí)與技術(shù),2009,5(17):4543-4546.YINMingjun,ZHENGYilu.Modeling and realization of threedimensional object based on MilkShape 3D[J].Computer Knowledge and Technology,2009,5(17):4543-4546.
[10]徐利明,姜昱明.基于粒子系統(tǒng)與OpenGL的實(shí)時(shí)雨雪模擬[J].計(jì)算機(jī)仿真,2005,22(7):242-245.XU Liming,JIANG Yuming.Realtime simulation of rain and snowbased on particle systemand OpenGL[J].Computer Simulation,2005,22(7):242-245.
[11]胡春,田金文,明德烈.多機(jī)協(xié)同的分布式海上攻防視景仿真[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2008,36(2):62-66.HU Chun,TIAN Jinwen,MING Delie.Collaborative distributed ocean attack-defense scene simulation[J].Journal of Huazhong University of Science and Technology:Nature Science Edition,2008,36(2):62-66.