常書平,李昆鵬,姚丁元,羅東宏
(1.中國人民解放軍63983部隊,江蘇無錫214035;2.廣州船舶及海洋工程設計研究院,廣東廣州510250)
噴水推進在船舶推進領域應用日益廣泛,但在一些復雜機動操縱時,噴泵易進入氣蝕異常工作區,導致推力下降、葉片剝蝕、船體和泵體振動加劇等[1]。如何合理控制噴水推進船的操縱,使在加速、減速、回轉、倒車等復雜工況下,有效避免噴泵長時間在空化異常區運行,是需解決的關鍵問題。國內已有文獻對該問題進行了研究,得到了許多有用的結論[2–5],但較少闡述在操縱運動時防止噴泵空化的控制方法。本文將Simulink與MFC(Microsoft Foundation Class)混合編程的方法應用于解決該問題,取得了較好效果。
以某“四機-四泵”噴水推進船為研究對象,其仿真模型主要分為調速器、柴油機、噴水推進器、船體動力學模型等4部分,如圖1所示。由于4套推進器是相同的,故圖中只列出1套,其他3套推進器的仿真模型與第1套相似。
以柴油機的設定轉速和柴油機反饋的實際轉速作為調速器模型輸入,通過一個PID控制器輸出供油齒桿的位置[6]。PID控制器的數學描述為:

式中:U(t)為柴油機供油齒桿位置;e(t)為柴油機設定轉速與實際轉速之間的誤差。
通過柴油機外特性數據建模,采用BP神經網絡對輸入輸出進行訓練[7–8],以柴油機轉速和供油齒桿位置作為輸入,以柴油機功率、力矩作為輸出。
該模塊基于噴泵試驗數據建立,采用BP神經網絡對輸入輸出進行訓練而得到,以噴泵轉速和船體航速作為輸入,以噴水推進器產生的推力作為輸出。

圖1 噴水推進系統模型第1層Fig. 1 The first layer of waterjet propulsion
該模塊包括船體直航模型和船體回轉模型。其中回轉運動模型采用MMG分離模型[3],將船體的水動力特性與噴水推進器的推力特性獨自表達,相互干擾由干擾系數決定。噴泵噴出水流的反作用力產生使船前進的推力,操縱噴口的噴射角度可改變推力方向,實現船體回轉[9],噴水推進器模塊將噴泵推力傳遞給船體動力學模塊。
若噴射角為θ,則船體所受的縱向力Xj為:

船體所受的縱向力Yj為:

回轉力矩Nj為:

式中:ρ為水密度;Q為水體積流量;LjG為作用點到船重心的縱向距離。
基于船體水動力和噴泵回轉力的分析,建立噴水推進船的回轉性模型如下:

式中:m為船質量;R(V)i為直航阻力;Izz為船對Z軸的轉動慣量;Xvv,Xvr,Xrr為縱向水動力系數;Yv,Yr,Yv2r,Yvr2,Y|v|v,Y|r|r為 橫 向 水 動 力 系 數;Nv,Nv2r,Nvr2,N|v|v,N|r|r為回轉水動力系數。
Simulink雖有著強大的仿真功能,但在許多控制程序的設計方面要靠Matlab的用戶自定義函數來完成,然而程序設計卻并不是M a t l a b的長處,用MFC對Simulink進行二次開發有助于更好的發揮其仿真的功能。MFC對Simulink作二次開發的方法有很多[10],本研究選用RTW工具生成實時代碼的方法實現Simulink仿真程序與MFC的集成,主要步驟如圖2所示。

圖2 Simulink與MFC集成的主要步驟Fig.2 Theapproach of Simulink and MFCintegration
1)在仿真參數中對RTW選項進行相關的配置;
2)設定Simulink模型中需要觀測的量(柴油機轉速、軸轉速和航速),這可以在各條信號線的信號參數設定中配置RTW選項;
3)在RTW中的Generate Code選項中產生模型的C++程序代碼;
4)將產生的代碼加入到一個空的MFC工程中,在MFC中根據需要編寫相應的程序對生成的代碼進行驅動和控制,并對計算結果進行實時的監測。
基于RTW(Real Time Workshop)工具,把Simulink模型中的某些變量設置為全局變量,使模型實時代碼實現在線參數調整和信號通信,由此可將模型中需要調整、檢測的參數或者信號設置為全局變量,主要有柴油機轉速、軸轉速和航速等,該些變量構成了整個仿真程序中模塊間相互交互的橋梁。
模型代碼中的Initialize、Terminate和rt_OneStep三個函數分別用于實現模型的初始化、停止和單步運算。在程序設計過程中,Initialize和Terminate函數可以用WM_COMMAND類型的消息驅動;OneStep函數則用WM_TIMER消息驅動。每次在程序中調用一次WM_TIMER消息,計算出一組結果,并且可以在WM_TIMER消息相應函數中對計算結果進行實時的提取。在第4步中有大量的程序設計工作要做,包括人機交互界面的設計、實時仿真數據的提取與顯示、運行步長和時間的控制等。
在噴水推進系統中,觀測軸轉速隨航速的變化關系是判斷噴泵是否空化的一個重要標準。噴泵的工作區域劃分為3個區,如圖4所示。區域1是正常區,噴泵可在該區長時間穩定工作;區域2和區域3為異常區,噴泵性能會受空化影響而降低,噴泵在其中的工作時間也受限。將3條區域限制線編譯到程序中,將程序計算所得到的航速與軸轉速的值與3條限制線數據相比較,由此就可以確定出噴泵的運行狀態。

圖4 噴泵工作區域圖Fig.4 Working area of waterjet propulsion system
WM_TIMER消息響應函數OnTimer的編寫是控制程序的主要部分,它可以看作一個定時器,MFC程序每隔特定的時間間隔就會調用該函數。即每隔一定的時間間隔,該函數內部就會進行計算并產生一組計算結果。利用這些結果,可以實時判斷,若仿真結果顯示噴泵工作在異常工作區,則修改程序設定的初始參數。控制程序的編制步驟如下,控制程序流程如圖3所示。

圖3 OnTimer函數內部的控制流程Fig.3 The control process of OnTimer function
1)在OnTimer函數中調用Initialize進行參數的初始化;
2)設置相關的初始參數并調用rt_OneStep函數進行計算;
3)提取計算結果中的航速和轉速值,判斷其是否在給定的區域內,如果不是則返回第1步,并在第2步中改變初始參數繼續計算,若果計算結果在給定的區域內,轉到第4步;
4)繼續循環并輸出計算結果。
根據上述集成方法與控制策略,編制噴水推進系統仿真計算軟件。該軟件有多項功能,此處簡要介紹回轉運動最大舵角(噴泵的噴射角度)計算和直航最大加速速率計算。
該計算模塊的功能是根據輸入的初始參數來計算對應工況下回轉運動允許的最大舵角。
初始參數包括主機轉速、工作的噴泵、船體的負荷、回轉泵以及工作區域限制。在計算時為了使舵角的調整朝著一個方向變化,一般將舵角初始值設為最大舵角30°,然后通過控制程序進行實時的調整。這里,模塊用于計算四機四泵操作的舵角,該處設定船體負荷為標準負荷,回轉運動限制在噴泵工作區域的一區。
表1 給出了四機四泵運行,四泵回轉工況下,主機轉速由0.73 Nmax(Nmax為柴油機的額定轉速)變化到最高轉速Nmax對應的最大舵角,實際上主機最低轉速還小于0.73 Nmax,但是圖中所給泵的工況限制線并沒有覆蓋整個工作區,故此處最小轉速取為0.73 Nmax,標中V表示柴油機轉速為0.73 Nmax時的直航穩定航速。

表1 四泵回轉條件下最大舵角計算結果Tab.1 The maximal rudder angle of 4-waterjets turning process
為了驗證計算結果的準確性,在仿真軟件中加入了工況曲線顯示模塊,并把噴泵工作區域限制線編譯到工況曲線中,此處僅對上表計算所得到的第一個結果(轉速為Nmax、舵角為8°)進行驗證,結果如圖5所示。圖中的數據已經經過等比例變化,可見圖中所示的回轉運動穩定點正好在第1區和第2區限制線上,這說明計算出的舵角即為把回轉運動限制在噴泵工作區域的一區對應的最大舵角。應用該模塊還可以計算多種不同初始工況、不同回轉泵、不同運行區域下的最大舵角。

圖5 回轉運動工況Fig.5 Results of turning process
該計算模塊的功能是根據初始設定的參數計算加速過程中,對應噴泵工作區限制條件下的最大主機加速速率。初始參數包括初始主機轉速、目標主機轉速、工作的噴泵、船體的負荷以及工作區域限制。在計算時為了使加速速率的調整朝著一個方向變化,一般將加速速率的初始值設為目標轉速和初始轉速之差,即將初始加速速率設定為最快的速率,然后通過控制程序進行實時的調整。利用該模塊對四機四泵工作情況下最大加速速率進行計算,該處設定船體負荷為標準負荷,加速運動限制在噴泵工作區域的一區。
設定初始主機轉速為0.73 Nmax,目標轉速由0.78 Nmax變化至Nmax,計算結果如表2所示。

表2 直航加速條件最大加速速率計算結果Tab.2 The maximal acceleration of 4-waterjets accelerating process
同上,僅對表2計算所得到的最后一個結果(初始轉速為0.73 Nmax,目標轉速為Nmax,加速速率為0.01 Nmax/s)進行工況曲線驗證,結果如圖6所示。圖中的數據已經經過等比例變化,可見加速過程由加速起始點到加速結束點的工況曲線在初始設定的區域即區域一中,而且加速曲線末端緊貼一區和二區分界線。這說明如果加速速率大于此加速速率0.0 1 Nmax/s,則加速工況曲線必然會越過分界線到達二區。此外,利用該模塊還可以計算任意初始轉速和目標轉速對應的最大加速速率。
本文基于對噴水推進系統組成部件和船體運動學模型的分析,建立了噴水推進系統的Simulink仿真模型,并考慮到MFC在控制程序編制以及在人機交互界面設計方面的優越性,利用Matlab的RTW工具箱將Simulink仿真程序轉換為實時C++代碼,并與MFC集成開發出了噴水推進系統仿真軟件。仿真計算程序可用于在加速、減速、回轉、倒車等工況下,制定噴水推進系統合理工作制,避免噴泵進入空化區運行。
主要得到如下結論:

圖6 加速運動工況Fig.6 Results of accelerating process
四機四泵全速運行四泵回轉時,如要將噴泵控制在一區運行,舵角不能大于8°;四機四泵運行主機轉速由0.73 Nmax分別加速至0.92 Nmax和Nmax,如要將噴泵控制在一區運行,加速速率不能大于0.02 Nmax/s和0.01 Nmax/s。