陳艷鋒
(海軍駐廣州廣船公司軍事代表室,廣東廣州 510000)
船舶模擬訓(xùn)練是基于實(shí)船裝置,人為構(gòu)建與之相仿的環(huán)境,訓(xùn)練人員通過在此環(huán)境中對系統(tǒng)、設(shè)備等進(jìn)行操作,實(shí)現(xiàn)相關(guān)科目的訓(xùn)練。對于船舶而言,其系統(tǒng)結(jié)構(gòu)較復(fù)雜,實(shí)船訓(xùn)練成本高,動力裝置模擬訓(xùn)練成本相對低、訓(xùn)練針對性強(qiáng)、訓(xùn)練周期短,在對船員培訓(xùn)、教學(xué)等方面具有優(yōu)勢[1]。協(xié)同仿真技術(shù)指對復(fù)雜系統(tǒng)中的子系統(tǒng)進(jìn)行各自領(lǐng)域?qū)I(yè)建模,在統(tǒng)一規(guī)則環(huán)境下實(shí)現(xiàn)耦合參數(shù)協(xié)同交互,實(shí)現(xiàn)子系統(tǒng)模型協(xié)同運(yùn)行,總系統(tǒng)交互仿真的狀態(tài)?;谝蕴W(wǎng)通訊進(jìn)行模擬訓(xùn)練系統(tǒng)搭建具有通訊速度快、實(shí)時性高、交互參數(shù)多的優(yōu)勢,利于多參數(shù)耦合、多參數(shù)協(xié)同。以數(shù)學(xué)模型為基礎(chǔ)的模擬訓(xùn)練系統(tǒng),難以直觀體現(xiàn)模型仿真進(jìn)程,實(shí)際訓(xùn)練過程缺乏沉浸體驗(yàn),因此引入虛擬現(xiàn)實(shí)仿真并與動態(tài)仿真模型的協(xié)同交互,可以增強(qiáng)參訓(xùn)人員直觀體驗(yàn),較快的應(yīng)對科目操作,從而提高訓(xùn)練效果,如圖1所示。
圖1 基于網(wǎng)絡(luò)通信的模擬訓(xùn)練協(xié)同仿真體系圖
船舶動力裝置模擬訓(xùn)練仿真進(jìn)程內(nèi)容包括:穩(wěn)態(tài)性能仿真、加速性能仿真、減速性能仿真、操縱性仿真。該動力裝置仿真模型輸入是車令Lever,輸出是性能仿真各輸出參數(shù)及視景仿真輸出,控制系統(tǒng)的仿真參數(shù)如表1所示。
動態(tài)性能仿真是以穩(wěn)態(tài)性能仿真為基礎(chǔ),因此要先對穩(wěn)態(tài)性能進(jìn)行仿真。穩(wěn)態(tài)性能仿真以表1中輸入?yún)?shù)中的一項(xiàng)為變量,其它參數(shù)保持與實(shí)際船舶初始狀態(tài)一致,穩(wěn)態(tài)特性參數(shù)耦合如圖2所示。
表1 控制系統(tǒng)參數(shù)
圖2 穩(wěn)態(tài)特性參數(shù)耦合
動力裝置性能仿真中穩(wěn)態(tài)性能是在穩(wěn)態(tài)特性仿真的基礎(chǔ)上進(jìn)行的,目的是分析船舶在航行時,其推進(jìn)系統(tǒng)采取不同的控制規(guī)律時該船舶機(jī)動性響應(yīng),進(jìn)而改善控制規(guī)律,保證推進(jìn)系統(tǒng)在各種機(jī)動工況下配合合理性、運(yùn)行可靠性,合理地平衡噴水推進(jìn)系統(tǒng)的可靠性和該船舶機(jī)動性之間的矛盾。在動態(tài)性能仿真中,首先選定一組基準(zhǔn)控制參數(shù),并結(jié)合噴水推進(jìn)系統(tǒng)的具體參數(shù)范圍,固定這組參數(shù)并選取其中的一個主要的控制參數(shù)在一定范圍內(nèi)變化來觀察動態(tài)響應(yīng)情況,逐一確定每個控制參數(shù)的動態(tài)響應(yīng),從而確定船舶的動態(tài)特性。根據(jù)模擬器的訓(xùn)練需求,船舶的動態(tài)特性仿真包括以下4種。
1)不同推進(jìn)方式船舶加速/減速性能仿真。
2)全速正車前進(jìn)至全速后退過程中以柴油機(jī)減速速率、放倒航斗轉(zhuǎn)速為變量對船換向過程機(jī)動性能進(jìn)行仿真。
3)全速后退至全速正車前進(jìn)過程中以柴油機(jī)反向加速速率、倒航斗位置為變量對船舶換向過程的機(jī)動性能進(jìn)行仿真。
4)不同級海況下,不同推進(jìn)方式,對船舶回轉(zhuǎn)運(yùn)動時的操縱性能進(jìn)行仿真。
對性能仿真模型與系統(tǒng)仿真的協(xié)同參數(shù)進(jìn)行分析,經(jīng)過歸納其協(xié)同參數(shù)耦合如圖3所示。海況、排水量、船舶初始坐標(biāo)、噴泵偏轉(zhuǎn)速率及初始偏角是預(yù)設(shè)值在仿真前設(shè)定,整個協(xié)同的過程輸入量就是對控制系統(tǒng)的輸入;推進(jìn)方式選擇由動力裝置系統(tǒng)模型中的一個開關(guān)量來控制[1];傳統(tǒng)在虛擬視景坐標(biāo)系的位置由三自由度運(yùn)動模型輸出軌跡參數(shù)經(jīng)坐標(biāo)轉(zhuǎn)化后進(jìn)行控制;船舶姿態(tài)一方面由艏向角控制,一方面由海浪和平滑因子(包括俯仰因子和橫搖因子)控制;推進(jìn)器的DOF節(jié)點(diǎn)已經(jīng)在建模過程中進(jìn)行設(shè)置,這里需要初始偏轉(zhuǎn)角、偏轉(zhuǎn)速率及噴泵偏角δ協(xié)同進(jìn)行控制;協(xié)同仿真輸出是過程中各項(xiàng)參數(shù)的仿真曲線和視景仿真輸出[3]。
圖3 動態(tài)特性協(xié)同參數(shù)耦合圖
協(xié)同仿真時性能仿真模型在后臺運(yùn)行,使用面向?qū)ο蟮某绦蛟O(shè)計(jì)編寫調(diào)用動力裝置動態(tài)性能仿真模型輸出三自由度模型參數(shù),通過程序設(shè)計(jì)調(diào)用仿真模型輸出參數(shù)數(shù)據(jù)庫,數(shù)據(jù)庫中的數(shù)值就是性能仿真用作協(xié)同參數(shù)的數(shù)值。
用于船舶在視景中位置定位方法有2種,第一種是調(diào)用三自由度模型輸出參數(shù)中船舶在固定坐標(biāo)系中的位置[4]X0(t) 和 Y0(t),建立 X0(t) 和Y0(t)和視景中船體模型的位置屬性X、Y的對應(yīng)關(guān)系,完成位置的實(shí)時預(yù)測,由于此場景中應(yīng)用的坐標(biāo)系是地心坐標(biāo)系WGS84,而實(shí)際船舶的航行是在笛卡兒坐標(biāo)系下的,因此需在視景仿真模型中進(jìn)行坐標(biāo)轉(zhuǎn)化,并在代碼編寫過程中對虛擬視景中單位距離比例與實(shí)際距離比例進(jìn)行調(diào)節(jié)、設(shè)定。對于姿態(tài)參數(shù),同樣根據(jù)前一步長調(diào)用的數(shù)據(jù),預(yù)測艏向角變化量并據(jù)此改變船舶的姿態(tài)屬性,其過程如圖4所示,其中Position為位置屬性,Heading為姿態(tài)屬性[5]。
圖4 船舶模型坐標(biāo)驅(qū)動過程圖
海況及排水量等其它耦合參數(shù)由性能仿真模型控制,以海況為例,協(xié)同運(yùn)行時,通過判定海況輸入量從而對虛擬視景模型海況參數(shù)進(jìn)行設(shè)置,設(shè)置機(jī)制如圖5所示。
圖5 協(xié)同仿真中海況設(shè)定策略
對控制船舶運(yùn)動方向的推進(jìn)器設(shè)置自由度(DOF)節(jié)點(diǎn),可以實(shí)現(xiàn)該定義部件的鉸鏈型關(guān)節(jié)及運(yùn)動范圍,實(shí)現(xiàn)推進(jìn)器模型的移動和旋轉(zhuǎn)。
通過動力裝置性能模型仿真運(yùn)行,利用程序語言接口功能可以實(shí)時獲得三自由度運(yùn)動模型[3]各個時刻輸出的船舶位置坐標(biāo)、速度、艏向角數(shù)據(jù)?;诔绦蛘Z言進(jìn)行混合編程可以實(shí)現(xiàn)參數(shù)的讀取、轉(zhuǎn)化,驅(qū)動視景中船舶模型的運(yùn)動。
實(shí)現(xiàn)方法為:編寫調(diào)用Matlab引擎的C++程序語言,在語言設(shè)計(jì)程序中實(shí)現(xiàn)對性能仿真模型輸出量的調(diào)用,Matlab有可供C和Fortan調(diào)用的引擎接口,視景仿真引擎運(yùn)行時,單獨(dú)占用一個線程對動態(tài)性能仿真輸出的參數(shù)矩陣進(jìn)行讀取,并轉(zhuǎn)化為語言程序中的數(shù)據(jù)格式從而解決語言程序和Matlab的混合編程問題,實(shí)現(xiàn)性能仿真模型、操縱模型、虛擬現(xiàn)實(shí)模型的協(xié)同仿真實(shí)現(xiàn)。
協(xié)同調(diào)用過程首先要啟動Matlab引擎,然后啟動視景模型線程,最后開始性能仿真過程,將協(xié)同參數(shù)傳遞給程序設(shè)計(jì)平臺的運(yùn)行代碼,實(shí)現(xiàn)協(xié)同運(yùn)行,如圖6所示。
性能仿真引擎中有可供參數(shù)輸出的模塊數(shù)據(jù)庫,將仿真實(shí)時參數(shù)存儲到數(shù)據(jù)庫文件夾,可供協(xié)同仿真調(diào)用。調(diào)用數(shù)據(jù)庫文件中參數(shù)矩陣中數(shù)據(jù)的關(guān)鍵代碼如下。
Engine* ep;
ep=engOpen(NULL);//啟動引擎
engSetVisible(ep,false);
engEvalString(ep,"cd D:\dev");//數(shù)據(jù)庫位置索引
engEvalString(ep,"sim('acceration.mdl',10)");//數(shù)據(jù)位置選取
mxArray*A=engGetVariable(ep,"y");
double* ayy=mxGetPr(A);//定義數(shù)據(jù)結(jié)構(gòu)
double test=ayy [];//數(shù)據(jù)調(diào)用
此外,通過線程鎖對視景運(yùn)行線程以及數(shù)據(jù)調(diào)用線程進(jìn)行線程同步處理,保證了調(diào)用參數(shù)與視景幀循環(huán)的線程同步。
圖6 耦合參數(shù)協(xié)同過程
通過耦合參數(shù)分析、協(xié)同建模、協(xié)同仿真實(shí)現(xiàn),建立用于測試的協(xié)同仿真運(yùn)行軟件界面[6],如圖7。
圖7 協(xié)同仿真軟件界面
以雙機(jī)雙推進(jìn)器為例,以船舶柴油機(jī)加速率為變量,對船舶直航時加速性能及減速性能進(jìn)行協(xié)同仿真。仿真包括3個過程:①在前進(jìn)一車令下加速,船舶從靜止?fàn)顟B(tài)加速至最大穩(wěn)定航速;再在后退一車令下減速至船舶航速為0;②在前進(jìn)三車令下加速,船舶從靜止?fàn)顟B(tài)加速至最大穩(wěn)定航速;再在后退二車令下減速至船舶航速為0;③在前進(jìn)四車令下加速,船舶從靜止?fàn)顟B(tài)加速至最大穩(wěn)定航速;再在后退三車令下減速至船舶航速為0。
3個過程通過一次協(xié)同仿真完成,協(xié)同運(yùn)行過程圖如圖8。
圖8 直航加速、減速性能仿真結(jié)果
協(xié)同仿真軟件繪圖模塊繪制了船舶在視景坐標(biāo)系的運(yùn)行軌跡,為了便于分析,在代碼編寫過程中根據(jù)之前的坐標(biāo)對應(yīng)關(guān)系對視景引擎中坐標(biāo)進(jìn)行比例縮放使其橫坐標(biāo)和縱坐標(biāo)對應(yīng)實(shí)際坐標(biāo)。
船舶初始艏向角為0(坐標(biāo)系轉(zhuǎn)化后船舶朝視景中坐標(biāo)系的X方向),從原點(diǎn)到1過程,前進(jìn)一車令的柴油機(jī)加速速率使船舶加速并在1點(diǎn)處達(dá)到雙機(jī)雙泵推進(jìn)方式、標(biāo)準(zhǔn)排水量、正常海況下的最大穩(wěn)定航速15 kn,之后船舶以穩(wěn)定航速行至2點(diǎn),自2到3點(diǎn)以后退一車令的柴油機(jī)降速速率使船舶減速至靜止?fàn)顟B(tài),至此在直航狀態(tài)下完成協(xié)同仿真過程1);3點(diǎn)到6點(diǎn)之間完成仿真過程2),6點(diǎn)到9點(diǎn)完成仿真過程3)。
虛擬視景中的船舶航行距離按照比例換算后與性能仿真中輸出的加速到最大穩(wěn)定轉(zhuǎn)速和減速時滑行距離在數(shù)值上接近,因此可以認(rèn)為視景中船舶的運(yùn)動基本符合實(shí)際狀況;加速過程中,船舶模型航行距離小于性能仿真中得出的距離參數(shù),而減速過程則相反,這是由于調(diào)用參數(shù)的延遲性和基于引擎調(diào)用的協(xié)同仿真效率不高,但總的來說其誤差在可以接受的范圍之內(nèi)。
以船在三級海況下、雙機(jī)推進(jìn)器推進(jìn)方式、正常排水量轉(zhuǎn)彎工況下船舶操縱性的協(xié)同仿真運(yùn)動參數(shù)驗(yàn)證,曲線繪制過程與直航狀態(tài)時相同,柴油機(jī)轉(zhuǎn)速加速到額定轉(zhuǎn)速時,將推進(jìn)器角度偏轉(zhuǎn)30°,其仿真運(yùn)行及仿真輸出曲線如圖9所示。
圖9 協(xié)同仿真輸出的回轉(zhuǎn)特性曲線
將操縱性協(xié)同仿真界面輸出的轉(zhuǎn)彎特性曲線進(jìn)行對比,發(fā)現(xiàn)由于協(xié)同的實(shí)時性受交互方式影響,同一時刻視景中船舶的運(yùn)動速度略延遲于性能仿真中船舶的運(yùn)動速度,因此視景仿真輸出曲線中船舶轉(zhuǎn)彎半徑略大于性能仿真中的半徑,調(diào)用過程實(shí)時性上滿足模擬訓(xùn)練的要求,與性能仿真誤差在可接受范圍之內(nèi),可認(rèn)為仿真結(jié)果在置信度范圍內(nèi)。以上取2個具有代表性的特例驗(yàn)證了基于航速和艏向角的參數(shù)調(diào)用實(shí)現(xiàn)的協(xié)同仿真,其運(yùn)行結(jié)果中的運(yùn)動參數(shù)及操縱性指標(biāo)與性能仿真近似相等,從而驗(yàn)證了操縱性仿真的準(zhǔn)確性。