尹紅升,劉金林,曾凡明
(海軍工程大學 動力工程學院,湖北 武漢 430033)
船舶動力裝置模擬器是基于實船動力裝置系統,人工建立與之相似的系統,訓練人員可以操作、控制、管理模擬器系統,達到代替實船設備進行訓練的目的。對于船舶而言,其動力裝置系統較結構較復雜,實船訓練受投入的人力、物力成本高,影響設備的壽命等因素的限制,而成本低、訓練周期短的動力裝置模擬器在對相關人員的培訓、教學等方面優勢明顯。船舶模擬器起源于20世紀60年代,并隨著與之依賴的虛擬現實技術的發展不斷成熟,其實際應用經歷單機仿真、分布式仿真、全系統大任務仿真幾個發展歷程后已經趨于成熟。虛擬現實因其獨特的交互性、沉浸性和想象性[1],以視景仿真為主被越來越多應用到模擬器中。在船舶模擬器方面,波蘭Unitest公司、挪威Kongsberg和英國Transas公司都曾先后開發過基于視景的仿真軟件。在國內,虛擬現實技術引入到船舶模擬器中可以追溯到20世紀90年代。隨著模擬器以及虛擬現實技術應用程度的不斷提高,船舶模擬訓練過程對訓練過程真實感及沉浸感要求越來越高[2]。以數學模型為主要建模對象的模擬器系統,難以準確地描述模型運算過程,在實際訓練過程中得到的仿真結果及船舶運動的變化也難以直觀、準確地體現,影響操作人員及時對下一步操作及時進行判斷和決策。建立視景仿真與數學模型的實時交互,可以將仿真中的數學參數轉化為圖像顯示,從而使操作人員快速直觀觀察到參數變化引起的外部環境的變化,較快地對產生的變化進行相應的操作。實現虛擬現實與動力裝置的協同仿真,需要建立虛擬視景引擎與動力裝置數學模型接口之間的通道,目前主流的視景仿真引擎主要還是在C++或C#語言平臺進行程序設計,使動力學數學模型的參數在視景仿真系統及編程平臺的接口之間相互傳遞。這其中既要數學模型的計算精度、可靠性,也要考慮到參數在視景引擎接口間傳遞速度。從船舶領域來講,我國對應用于模擬器的視景仿真也做過多次研究,文獻[3]對救助船舶進行過基于Virtools軟件的視景仿真,文獻[4]基于Creator和Vega進行艦船航行的視景仿真,文獻[5]基于Vega Prime對水下航行器進行視景仿真,文獻[6]對超大型雙槳雙舵類型船舶進行船舶運動數學模型與Vega的協同仿真,類似相關文獻還有很多,大多是基于運動模型、版本較早的Vega模型進行視景仿真設計,畫面友好程度及模型的實用性上都有待改進。在此基礎上,基于噴水推進船舶的動力裝置系統,使用Vega Prime進行視景仿真。本文首先建立船舶的動力裝置仿真模型實現動力裝置性能仿真,基于光柵圖像法及傳統方法中使用的terrain vista和creator建模的方法,對以上3種地形建模方法進行改進,實現大地形快速建模。通過Vega Prime及VC++平臺進行虛擬視景可視化仿真的程序開發,通過C++平臺調用后臺運行的Simulink模型的變化參數,將參數變化轉化為Vega Prime中的物體屬性變化,最終實現動力裝置性能仿真與船舶航行可視化仿真的實時交互。
針對船體為噴水推進船舶,其動力裝置仿真系統主要包括控制系統、柴油機、傳動系、噴泵以及船體運動仿真模型。圖1為船舶動力裝置仿真模型結構。

圖 1 船舶動力裝置系統模型簡圖Fig. 1 Framework of the power plant system
柴油機的建模技術比較成熟,傳統的柴油機建模方法主要有線性化模型、準穩態非線性模型、容積法柴油機模型和壓力波模型4類[7]。基于模擬器中計算精度、速度兼顧、能較準確反映內、外部性能參數變換、參數能及時傳遞的要求,采用準穩態法對柴油機進行建模,柴油機模型結構圖如圖2所示。

圖 2 柴油機模型結構圖Fig. 2 Structure diagram of the diesel
準穩態模型把動態過程看成一系列穩態過程組成,其基礎是柴油機各部分的穩態特性、基本的動力學和熱力學方程以及基于試驗的經驗公式。柴油機本體模型要應用牛頓第二定律,利用柴油機輸出扭矩、負載扭矩和摩擦扭矩之間的平衡,得到柴油機的轉速等參數。
根據船型和航行工況,通過求解運動微分方程,獲得船舶運動參數。運動模型簡圖如圖3所示。

圖 3 船舶運動模型簡圖Fig. 3 Framework of motion model
對于回轉運動,建立運動坐標系OXYZ,以船舶的重心為原點,OX軸取船縱向軸指向船首為正,OY軸與縱剖面垂直指向右舷為正,OZ軸垂直于水平面向下為正。運動方程為:

船舶運動三自由度操縱方程[8–9]為:

式中:H為船體;P及R為推進和操縱系統;λ為附加質量;X為作用于船舶的水動力合力沿OX方向的分量;Y為作用于船舶的水動力合力沿OY方向的分量;N為作用于船舶的水動力合力對OZ軸的力矩。運用龍格庫塔數值計算方法,可解得操縱運動參數u(t),v(t),r(t),則可求出船舶在固定坐標系中軌跡和首向角。

對于船體的直線運動,其數學模型可以由下面的運動學方程表示:

式中:MS為船體總質量;MSAD為船體的附連水質量;TP為噴水泵提供推力;TS為船舶的阻力。船舶總的運動,由直線運動及回轉運動構成。
噴水推進系統的穩定運行依賴于3個平衡:噴泵吸收扭矩、功率與柴油機輸出相平衡;噴泵揚程與系統所需揚程平衡;噴泵產生推力與船體所有阻力之和相平衡。噴泵吸收功率與柴油機輸出功率平衡方程如下:

式中:γ為水的重度;Q為噴泵流量;H為噴泵揚程;Nε為柴油機發出功率;Np為噴泵吸收功率。由動量定理,噴泵理想推力Tideal為水的動量增量:

式中:α為邊界層對進流的影響系數。噴泵產生總揚程與產生射流和克服系統管路損失所需揚程以及來流揚程的平衡方程式為:

式中:kj為噴口損失系數;β為進口動能損失系數;k1為管道損失系數。根據噴泵中水流的連續性方程可得

其中:ηm為軸系機械傳動效率;ηr為相對旋轉效率;ηp為噴泵效率。
對以上各子系統模型封裝后,最終的動力裝置仿真模型可以對單機單泵、多機多泵的直線加、減速,回轉運動及換向運動等工作方式進行性能仿真。圖4為整個動力裝置系統的Simulink模型圖。

圖 4 動力裝置仿真Simulink模型Fig. 4 Power plant simulation model based on Simulink
虛擬場景的建立主要是虛擬物體的實體模型,其中實體模型可分為地形模型、復雜實體模型、地物模型,根據建模的過程,實體建模包括幾何建模、運動建模、物理建模、對象行為建模及模型分割。船體建模就屬于復雜實體建模[10]。
船體建模可以用傳統的CAD、Catia及3DMAX進行建模。Multigen-Creator建立船體模型,是基于Open-Flight數據格式實時渲染時占用內存少、具有多層次細節(LOD)及自由度控制節點方便控制等一系列優點,此種方法建立的船體模型能夠較完善的將模型數據庫的層次視圖與建模環境集成在一起,在使用外部引用技術時,只需要將指向引用模型的指針粘貼到本場景中以節省計算機內存和空間,同時Creator本身的多種插件和模塊能高效地生成實時三維數據庫,能夠與視景仿真軟件Vega Prime緊密集合。
對控制船舶運動方向的倒車斗設置自由度(DOF)節點,可以實現該定義部件的鉸鏈型關節及運動范圍,實現模型的移動和旋轉,設置由DOF節點的倒車斗運動裝置及部分船體模型如圖5所示。

圖 5 倒車斗及船體模型Fig. 5 Ship and reversing bucket model established on creator
地形建模技術是實體建模的一個重要分支[10],基于Openflight格式的傳統地形建模方法有光柵灰度法、Terrain及基于高程數據的Creator建模。針對大地形及群島型的地形建模分塊貼圖復雜的問題,以上方法中都需要面對的問題是大地行分塊及紋理貼圖分塊處理,采用先建模、處理紋理再將已經處理好的地形轉化為OpenFlight的方法,有效減少了Creator在分塊處理大地形冗余點線面過多及紋理處理的問題,大大減少了地形建模的時間。地形模型建立流程圖如圖6所示。
地形建模過程中主要需要解決的問題是預先采用非Creator建模所建立的模型在Creator中會產生許多冗余面,導致點線面錯誤,解決的方法是采用初始模型二次轉化的方式,先將地形進行平滑處理,有效減少不規則面的個數,再轉化為Openflight格式的地形。圖7為處理后的地形模型。

圖 6 地形模型建立流程圖Fig. 6 Flow chart of terrain model establishment

圖 7 地形優化模型Fig. 7 Terrain optimization model
使用Vega Prime中的Lynx Prime對虛擬場景進行配置,為保證視景仿真運行及參數傳遞的實時性,Vega Prime經常通過多線程實現虛擬可視化平臺的設計。VP視景的驅動單獨占用一個線程,MFC主界面使用一個或者多個線程用來開啟、關閉和對VP參數進行控制。
上面已建立船舶動力裝置數學模型,根據各個仿真模塊進行封裝。根據已經建立的Simulink模型,可以實時的獲得各個時刻運動的位置、速度、舵角等數據。利用Visual C++接口功能,通過基于VC++混合編程,實現Simulink參數到Vega Prime圖像渲染的實時傳遞。
整個協同仿真系統由動力裝置仿真模、視景仿真模塊組成,視景仿真模塊又由Vega Prime程序模塊、調用Matlab引擎程序模塊以及船體運動策略模塊構成,如圖8所示。

圖 8 協同仿真系統結構圖Fig. 8 Structure diagram of collaborative simulation system
VP程序及調用Matlab模塊由VS2005中的C++模塊編寫,完成了虛擬場景的實時配置及參數更改,Simulink輸出參數的傳遞、獲取、賦值、參數轉換,船體的運動策略基于船舶運動模型進行構建,實現基于控制系統下各參數變化時船舶的協同仿真運行。整個仿真程序的流程圖如圖9所示。

圖 9 程序流程圖Fig. 9 Program flow chart
根據動力裝置參數對動力裝置進行操作,改變動力裝置的運行參數,實現各個工況下,船舶航行姿態的展示,最終協同交互仿真如圖10~圖12所示。

圖 10 船舶第一視角仿真效果圖Fig. 10 The first vision drawing

圖 11 船舶原地回轉運動仿真效果圖Fig. 11 The inverse motion drawing of ship

圖 12 轉向運動仿真效果圖Fig. 12 The turningmotion drawing of ship
通過調用Matlab引擎及Simulink仿真結果的方式,實現動力裝置與虛擬實景的實時交互,其結果能夠很好地反映出船舶的運動狀態,但基于這種方法的可視化協同仿真不能脫離數學模型的運行環境。
本文基于噴水推進型船舶的動力裝置仿真做了如下工作:
1)建立噴水推進動力裝置仿真模型,模型仿真結果與試驗數據準確。
2)以光柵圖像法為基礎,綜合當前地形建模方法,改善大地形建模快速性并進行虛擬視景中地形的建模。
3)基于Vega Prime視景引擎,在C++平臺進行混合編程,建立動力裝置模型仿真與視景仿真的血統運行。
4)實現了視景仿真在噴水推進動力裝置仿真的應用,工作原理及對進一步在噴水推進動力裝置模擬器實際應用有借鑒意義。
[1]BURDEA G C, COIFFET D. Virtual reality technology[R].New Jersey: Wiley–IEEE Press, 2003.
[2]吳家鑄, 黨崗, 劉華鋒, 等. 視景仿真技術及應用[M]. 西安:西安電子科技大學, 2001.
[3]王興昭. 基于救助船舶模擬器的視景仿真研究[D]. 大連: 大連海事大學, 2012.
[4]呂幫俊, 邢繼峰, 黃華斌, 等. 基于Mutigen和Vega的艦船航行視景仿真[J]. 仿真技術, 2006(05): 299–301.
[5]莫劍飛. 基于Vega Prime的水下航行器視景仿真[J]. 電子設計工程, 2015, 23(1): 13–15.
[6]郭晨, 焉麗飛, 沈海清. 超大型雙槳雙舵船舶運動數學模型與虛擬仿真[J]. 系統仿真學報, 2015, 27(9): 1976–1982.
[7]孔慶福, 吳家明, 曾凡明. 船舶噴水推進系統數學建模及仿真研究[J]. 船舶工程, 2006, 28(2): 12–16.
[8]趙希人, 陳虹麗, 艾曉庸. 船舶運動縱向受擾力和受擾力矩估算方法研究[J]. 哈爾濱工程大學學報, 2004, 25(2):167–170.
[9]LV Shu-ping, YANG Xue-jing, ZHAO Xi-ren. The application of modeling and prediction with MRA wavelet network[J].Journal of Marine Science and Application, 2004, 13(1):20–23.
[10]趙經國. 虛擬訓練系統導論[M]. 長沙: 國防工業大學出版社,2004.