陸英棟,張 磊,項黎寧,曹平軍
(1.海軍工程大學 動力工程學院,湖北 武漢 430033;2.國防大學 政治學院,上海 201600;3.91257部隊,浙江 舟山 316000)
目前,在所有船舶動力裝置中,只有汽輪機能利用核能,由于核用汽輪機蒸汽初始參數低,汽輪機級組都在濕蒸汽區工作,所以將核用類汽輪機稱之為飽和蒸汽汽輪機,簡稱濕汽輪機[1]。濕汽輪機的變工況熱力計算對檢驗設計單位設計樣機的合理性、安全性以及已投產使用機組運行的穩定性、可靠性具有十分重要的意義[2]。變工況熱力計算作為掌握濕汽輪機性能最基礎、最重要的環節,其計算程序代碼復雜多樣。設計人員往往是通過程序源代碼直接進行計算,但對于實際操作汽輪機的使用者來說,掌握并使用源代碼進行變工況熱力計算是十分困難的,也降低了使用者的工作效率。為進一步提高工作效率,簡化操作過程,并為汽輪機工程相關領域工作人員提供方便簡單的參數輸入及結果輸出的友好操作界面,本文基于MATLAB GUI實現對濕汽輪機的變工況熱力計算的人機交互功能。
圖形用戶界面(GUI)是MATLAB的核心應用之一,是通過窗口、圖標、按鈕、菜單、文本等圖形對象構成的界面,利用句柄圖形用戶接口函數實現用戶和計算機之間的交互操作過程[3]。基本的圖形用戶對象可分為3類:用戶界面控件對象(Uicontrol)、下拉式菜單對象(Uimenu)和內容式菜單對象(Uicontextmenu)。為了更好理解用戶界面對象的層次結構,圖1為GUI圖形對象之間的層次樹表。

圖1 GUI圖形對象之間的層次樹表
MATLAB GUI 與VC++、VB等一系列計算機軟件開發語言相比具有強大的數據分析、矩陣運算、數學建模的的優勢,使用GUI開發人機交互平臺可以避免復雜的界面程序編寫,根據其內置的圖形界面開發模塊,通過拖移相關的圖形用戶對象,可以直觀的生成滿足開發者需要的控件要求。從開發者的角度,GUI的圖形語言具有較VC++、VB以及JAVA更簡便、高效的特點,可以利用強大的圖形開發環境(GUIDE)開發相應的應用程序[4]。表1為GUI主要控件屬性功能。

表1 GUI主要控件屬性功能
應用GUI開發一個完整的人機交互平臺的基本過程可分為以下3個步驟。
1)事先明確交互平臺設計任務、功能以及需要用到的控件對象類型,并添加到GUI中。
2)利用GUI自帶的布局工具,對前期添加的控件進行合理布局,布局時充分考慮使用方便性,符合使用者的行為邏輯,在滿足功能布局時,盡可能保證界面美觀。
3)設置控件屬性,編寫相關控件回調函數(Callback Function),內嵌計算程序,保證所設計的GUI能正確響應操作者的指令。
濕汽輪機變工況性能分析模塊類別較多,其中最重要、最核心的模塊是級的熱力計算模塊,該模塊中包括壓力級的熱力計算、調節級的變工況計算、級內超音速出口速度計算、水蒸氣性質計算模塊以及汽輪機整機變工況熱力計算。將所有腳本程序函數化是實現人機交互函數調用的基礎,本文以汽輪機調節級和壓力級耦合計算模塊為例,詳細敘述函數化過程。圖2是汽輪機整機耦合算法計算流程圖。
濕汽輪機整機的耦合計算是把調節級和壓力級作為一個整體來進行計算,調節級和壓力級單級都是根據逆順序算法,先從級后向級前計算,再由級前向級后計算,整個機組是先計算壓力級組,得到壓力級組的級前狀態,并作為調節級的起算點,再計算調節級。在計算過程中,每一級的級前計算狀態都是前一級的級后狀態,以此為相鄰兩級之間的數據耦合點[5]。
在計算開始前,我們單憑整機級后排汽點K的壓力值仍然無法確定該點的熱力狀態參數,必須事先估計汽輪機整機的內效率ηi,根據公式Δhi=ηiΔht計算整機的比焓降,其中Δht為汽輪機的理想等熵比焓降,以此確定整機級后排汽比焓,通過壓力和比焓值,確定K的狀態。圖3為整機耦合的熱力計算過程簡圖。


圖2 汽輪機整機耦合算法計算流程圖

圖3 汽輪機整機耦合算法熱力過程簡圖
濕汽輪機整機的變工況熱力計算函數命名為wet_steam.m,用于對汽輪機整個機組進行額定工況和變工況下的熱力計算,其基本結構是將函數Pressure.m、Control.m和Supersonic.m進行耦合,其中函數Pressure.m、Control.m和Supersonic.m分別為壓力級單級熱力計算函數、調節級單級熱力計算函數和級內超音速出口速度計算函數[6]。
計算開始前,同樣事先通過xlsread將整機的通流部分結構尺寸讀入MATLAB數據庫,再在計算時調用相應級的通流部分結構尺寸。函數wet_steam.m的輸入參數有:進汽質量流量qm、水蒸氣進汽壓力P0、水蒸氣進汽溫度t0、級組排汽壓力P2、預估排汽比焓值h1、轉速n、軸端汽封效率ηe和發電機發電效率ηm。函數wet_steam.m的輸出參數為汽輪機組的整機性能參數。
根據事先確定的濕汽輪機熱力計算平臺的設計任務和功能要求,為實現各個功能單獨運行,且實現數據共享,采用GUI對各個功能部分進行圖形用戶界面設計,編寫相應GUI對象控件的回調函數。整個計算平臺由1個主界面和4個子模塊界面(調節級單級計算模塊、壓力級單級計算模塊、整機熱力計算模塊和水蒸氣性質計算器模塊)構成。用戶根據功能需求可以通過界面上的按鈕在主界面和子界面模塊中切換。
主界面是操作者進入計算平臺的第一個用戶界面,包括平臺標題、功能選擇列表、計算平臺使用說明和退出系統按鈕。功能選擇列表中包括4個子界面按鈕,分別對應4個不同計算模塊,用戶任意點擊其中一個按鈕,界面就會切換到相應的子界面模塊中。主界面布局如圖4所示。

圖4 計算平臺主界面布局
為實現點擊鼠標單擊功能按鈕,系統能準確切換到對應的模塊中,需要編寫相應按鈕的回調函數。以按鈕“調節級單級計算”為例,找到按鈕的回調函數,并對其進行修改,修改內容如下:
function pushbutton1_Callback(hObject, eventdata, handles)
%hObject handle to pushbutton1 (see GCBO)
%eventdata reserved - to be defined in a future version of MATLAB
%handles structure with handles and user data (see GUIDATA)
clc; % 當單擊按鈕時,清空所有MATLAB輸入面上的錯誤信息,并關閉當前窗口
clear all;
delete(gcf);
run(′Control.m′)
此時,當鼠標單擊“調節級單級計算”按鈕,MATLAB后臺執行上述命令,實現系統自動進入子模塊“調節級單級計算平臺”,如圖5所示。

圖5 調節級單級熱力計算平臺界面圖
濕汽輪機熱力計算平臺實際實現計算功能是在子模塊界面中,每一個子模塊中有可能還有一層子模塊。每個子模塊中的控件對象類型和其實現的功能均相似,區別在于其調用的計算函數不同。因此,本文以“汽輪機整機耦合熱力計算平臺”這個子模塊的GUI設計為例說明其實現過程。汽輪機整機耦合熱力計算平臺界面控件對象大致可分為4類:靜態文本,包括標題和輸入、輸出參數名稱以及輸出計算結果的顯示欄;可編輯文本,主要是輸入參數框中的初始參數輸入欄;按鈕類,包括繪圖按鈕以及功能型按鈕;按鈕組,包括整機輸入參數組、整機熱力參數匯總組和曲線圖組。
通過修改、編寫控件對象的回調函數,實現各個控件的顯示和功能實現。具體實現過程如下:
1)靜態文本修改字符串String為需要顯示的字符,輸出結果處String清空,如修改靜態文本text1的String為“進汽流量”,將輸出結果處的text18的String清空。
2)輸入框中的可編輯文本的字符串String可根據用戶輸入值改變,如在進汽流量后輸入數字19,可編輯文本Edit1的String自動變成19。
3)編輯按鈕的回調函數,使當鼠標單擊按鈕時實現預定功能,以按鈕“開始計算”為例,當點擊按鈕“開始計算”后,系統自動讀取輸入框中的數據,并開始計算,截取部分回調函數源代碼如下:
function pushbutton2_Callback(hObject, eventdata, handles)
%hObject handle to pushbutton2 (see GCBO)
%eventdata reserved - to be defined in a future version of MATLAB
%handles structure with handles and user data (see GUIDATA)
G_S=get(handles.edit1,′String′); %讀入整機蒸汽進汽流量
. . .
G_S=str2num(G_S); %字符轉數字
. . .
global RHO %設置反動度矩陣為全局變量
. . .
run(′wet_steam.m′) %執行汽輪機整機熱力計算
set(handles.text11,′String′,XXX); %輸出計算結果
圖6為用戶利用計算平臺對汽輪機進行變工況熱力計算的可視化結果。
本文基于已有汽輪機各類型級的熱力計算編寫的腳本程序,通過輸入輸出參數提取,將其改寫為函數程序,并通過MATLAB GUI開發了汽輪機變工況熱力計算平臺,主要總結如下。
1)介紹了MATLAB圖形用戶界面的構成及使用說明,描述了各個GUI控件對象的功能及使用時機,并規劃了軟件的開發步驟。

圖6 變工況下整機熱力計算平臺可視化結果
2)將汽輪機各個級類型的熱力計算模塊函數化,使其可以相互調用,簡化控件對象回調函數的編程步驟,使程序更具有可讀性。
3)詳細介紹了計算平臺主界面和子界面的編寫過程,實現主界面和子界面模塊相互自由切換,舉例介紹了控件對象回調函數的編寫方法,并通過實例計算,證明軟件的可行性,操作平臺具有友好的人機交互界面和良好的用戶體驗。