,,,,
(海軍工程大學 動力工程學院,武漢 430033)
艦船動力裝置訓練模擬器是模擬實船動力設備操作、培養艦員專業技能的有效器材。目前岸基動力裝置訓練模擬器普遍采用工控機、大量信號I/O卡及專用仿真軟件平臺的基本架構[1-3],其復雜的仿真模型及信號傳輸有賴于微機及復雜的信號采集系統。該類動力裝置訓練模擬器存在開發周期長、成本高、占用場地大、靈活性差以及不便大規模推廣應用等缺陷,不適合構建實船訓練系統。國外實船訓練系統研究較早,已有相關產品裝備艦上,而國內研究起步較晚,目前只有一些方案構想,來實現實船驗證。
為此,引入基于模型的代碼生成技術和分布式仿真技術,提出艦船柴油機推進系統分布式嵌入仿真技術方案,以噴水推進系統為對象,設計仿真樣機,驗證方案的可行性和通用性。其關鍵技術問題在于系統模塊化分解建模、嵌入式代碼生成與集成、分布式嵌入實現以及各MCU單元的通訊設計。
噴水推進系統的整體模型見圖1。根據圖中的船體-柴油機-噴泵系統間的相互作用關系,通過2個積分環節分別計算柴油機轉速ne和船速Vs。

圖1 噴水推進系統模型
根據剛體繞定軸轉動的動量矩定理,有:
(1)
式中:Me和Mp分別為柴油機輸出轉矩和推進器負載轉矩;Ie、Ip和Iew分別為柴油機、推進器和推進器附連水的轉動慣量。
實際船體模型由三自由度運動方程組成,由于橫向和垂直方向的運動對本研究內容影響不大,為簡化模型,這里僅考慮船體縱向運動。
(2)
式中:Tp、Ts分別為噴泵產生的推力和有效推力;Rs為船體阻力,可簡化為航速Vs的函數或由實船試驗數據得出;t為推力減額系數;Ms、Mew分別為船體質量和附連水質量。
柴油機推進系統動力參數的仿真計算參見文獻[4]和[5]。對于噴水推進裝置而言,根據其結構和工作機理[6],由流體力學原理可得泵的揚程H、流量Q、轉矩Mp的計算式。
(3)
Q=AjVj
(4)
(5)
式中:kj為噴口損失系數;k為管道損失系數;Δh為噴泵內水位差值;g為重力加速度;Aj為噴口面
積;Vj為噴嘴截面積噴射速度;ρ為進水密度;np為噴泵的轉速;η為有效效率。
推力T為:
T=ρQ(Vj-Vs)
(6)
調速環節采用PID算法框圖,見圖2。在閉環調速控制環節增加了一個轉速設定的前饋環節,設經過PID調節后的輸出柴油機油量為G,則閉環轉速控制環節油量調節的PID 算法如下。
(7)
e(t)=kf(net-net-1)
(8)
式中:G(t)為當前采樣時刻油量控制輸出;kf為前饋增益系數;net和net-1為轉速設定值和當前轉速反饋值;kp為比例增益系數;Ti、Td是積分時間常數和微分時間常數;e(t)為本次采樣的偏差值。
采用Simulink仿真工具建立噴水推進系統整體仿真模型見圖2,用作下文代碼生成模型。該模型控制系統包括機旁、集控室和駕駛室控制3個子系統,推進系統包括柴油機、齒輪箱、噴水推進器和船體等幾個模塊。
對噴水推進系統模型進行仿真驗證,利用建立的模型進行雙機雙泵加速工況仿真計算,結果見圖3。圖中所有穩態數據與試驗數據之間的平均誤差均在6%以內,說明建立的模型能夠模擬推進系統總體工作情況,可用做下文代碼生成模型。

圖3 雙機雙泵加速工況仿真結果
動力裝置控制系統一般包括駕駛室控制、集控控制和機旁控制。操作部位轉換設計時必須具有一定的優先級,其轉換的優先原則是:(1)機旁優于遙控操縱;(2)遙控操作時,集控優于駕駛室操縱。機旁、遙控轉換(R_L_Control),用于切換遙控和機旁控制的控制單元信號;駕駛室、集控室的轉換(B_E_Control),用于切換駕駛室操縱器(或集控室遙控操縱器)輸向遙控控制單元的信號,任何時候只能有一個操縱器輸入信號有效[7]??刂茩嘞捱壿嬣D換Simulink模型見圖4。

圖4 控制權限轉換Simulink模型
對于建立的Simulink仿真模型,利用RTW(實時工作間)工具分2步將其轉化為純C代碼:①配置RTW參數;②設置Simulink模型中的某些參數或變量為全局變量。
模型相關參數設置見表1。為匹配目標機運行環境,設置定步長采樣頻率,設置步長0.01 s,采用Ode3解算算法,選擇嵌入式目標代碼類型的ert.tlc,將Simulink模型的輸入輸出參數信號屬性設置為全局變量[8-10]。

表1 參數設置
將Simulink模型的某些參數或變量設置為全局變量,使模型自動生成的代碼在目標中運行時,可以方便與Simulink模型交互,實現在線參數和信號通信。該噴水推進系統仿真模型需要交互的參數很多,如機旁控制信號、集控室控制信號、駕駛室控制信號、柴油機轉速、航速等??刂葡到y相關全局變量設置見表2。
在Matlab中預先安裝好支持的編譯器VC++2012,在命令窗口輸入mex -setup,選擇當前安裝的編譯器。配置好相關參數后,點擊build按鈕可以生成模型代碼,系統自動產生一個DiselJetHull_ert_tlc文件夾,包含模型的源文件、頭文件和其他代碼說明文件。其中DiselJetHull.c是實現模型功能的代碼,DiselJetHull_data.c為模型的初始代碼。
參數數據,DiselJetHull.h是包含參數和狀態變量定義的頭文件,其他文件rt_look.h、rtwtypes.h、rtGetInf.h等為RTW所需的必要配置文件。
VC++2012/MDK與Simulink的集成是通過VC++2012/MDK編程驅動C++模型代碼

表2 控制系統全局變量
中的initialize、terminate和rt_OneStep3個函數來實現的,分別實現了模型的初始化、停止和單步運算[11]。在程序設計過程中,可以通過MDK ARM編寫接口函數,實現模型代碼與已有的軟件代碼的集成。主程序原理見圖5,在中斷未發生時,主程序循環調用rt_OneStep函數,并實時提取輸出結果;中斷發生時,進行中斷處理并刷新全局變量輸入。

圖5 主程序原理
系統總體結構如6所示,從上到下分為人機交互層、控制系統層和推進系統嵌入層。人機交互層以觸摸屏作為系統人機接口,分為駕駛臺、集控室和機旁交互單元,主要包括一些控制面板和指示面板[12-13]??刂葡到y層是以STM32作為嵌入式硬件平臺的邏輯控制單元,主要包括駕控、集控和機旁控制。推進系統層是以STM32為嵌入式硬件平臺的系統功能單元,將噴水推進系統模塊化分解為柴油機模塊、齒輪箱模塊、噴水推進器模塊和船體模塊,并將這些模塊嵌入到不同的STM32硬件平臺中,組成模塊化功能單元。

圖6 系統總體結構
人機交互層與控制系統層間通過串行通信的方式實現觸摸屏指令的發送與系統參數的讀取??刂葡到y層與推進系統層通過CAN網絡實現數據交互。本設計中,人機交互采用的觸摸屏僅具有串口通信功能,為了便于實現與上位PC機等其他監控系統的信息交互,在設計時通過以太網和交換機預留了網絡接口。
觸摸屏與控制系統間采用串口通信方式實現數據交互,根據觸摸屏熱區事件數據返回格式,在STM32處理器中采用中斷方式接收觸摸屏指令。觸摸屏發送指令:65 00 00 01 ff ff ff,第1個字節表示觸摸熱區事件,第2個字節表示界面id,第3個字節為控件id號,第4個字節表示按鍵按下事件,后面3個字節為結束符。根據單片機處理結果,將航速、轉速等信號通過串口發送給觸摸屏顯示。
嵌入式仿真平臺硬件選用基于ARMCortex-M3內核的STM32控制器+7in觸摸屏(分辨率800×480)的方案。電路板采用核心板+底板的形式,核心板搭載了STM32F103ZET處理器,提供了RS232、RS485、CAN接口、以太網接口和串口USART等硬件接口資源。
設計中選用7in觸摸屏作為推進系統人機接口,設計虛擬按鈕用于操作,集成虛擬指示儀表對相關參數進行指示。軟件交互界面采用上位機軟件usart hmi進行設計,并利用分布式開發方式與下位機各功能模塊進行通訊。
通過噴水推進系統仿真樣機試驗,驗證了分布式嵌入仿真方案的正確性與可行性,解決了岸基訓練模擬器無法大規模推廣應用的缺陷,為構建實船訓練系統做了進一步探索。對于其他大型復雜系統,分布式嵌入方案同樣適用,具有一定的通用性。限于時間和能力等因素,本文存在一定的不足:試驗樣機設計時對模型做了一定簡化,僅對轉速、航速等動力特性參數進行了仿真驗證,未能對系統溫度、壓力等參數進行仿真驗證;未能對各分布式MCU單元數據傳輸實時性進行探索;未能就具體實船訓練系統給出實船嵌入方案。這些缺點和不足,有待在下一步工作中改進和優化。