董達善,毛慶蕉,翁武秀,朱元侃
(1.上海海事大學 物流工程學院,上海 201306;2.上海滬東造船閥門有限公司,上海 201913)
基于Matlab GUI的閥門強度校核程序設計
董達善1,毛慶蕉1,翁武秀2,朱元侃2
(1.上海海事大學 物流工程學院,上海 201306;2.上海滬東造船閥門有限公司,上海 201913)
針對閥門強度計算校核的重復性及機械性,為了降低公司企業的人力物力成本,提高工作效率,從閥門強度校核實際需求入手,提出將強度計算校核進行程序化,利用Matlab語言的圖形用戶界面(GUI)功能,設計制作了閥門強度校核的輔助軟件。以編程思路為主線,通過介紹圖形用戶界面設計過程,包含了具體的制作用戶界面的框架結構和設置其控件屬性及布局順序、心得,并介紹了相關內容的處理要點,其中制作了集中體現程序實用性及人性化的功能模塊,并添加了生成報告功能。通過具體算例的程序及手工的對比,手工與程序結果一致,證明了該程序的有效性,大大提高了工作效率。同時也說明該軟件是一款集有效、省時、省力三大優勢于一體的實用性軟件。
Matlab;圖形用戶界面;控件設計;閥門
閥門是石油、化工、電站、造紙、核工業、各種低溫工程、宇航及海洋采油等流體輸送系統中的主要控制部件[1],具有至關重要的作用。隨著LNG的迅速發展,低溫閥門的應用越來越廣泛。超低溫閥門的工作溫度極低(77 K),因此在設計這類閥門時,為了保證閥門在低溫下安全可靠的運行,在設計時要求必須具有足夠的強度和剛度,以保證長期使用而不發生破裂或者產生變形。所以,強度應力的設計校核是研發設計的重中之重。然而,大部分閥門的設計校核卻都是完全手工計算,計算量大、重復性高、機械性高、費時費力。因此,文中在手工計算校核的基礎上進行二次開發,實現程序化,替代傳統手工計算。
Matlab是由Mathwork公司開發的一款高性能的數值計算和可視化軟件,也是當今科研領域最常用的應用軟件之一,其全稱為Matrix Laboratory,亦稱矩陣實驗室[2-4]。它在數值分析、信號處理、系統辨識、特殊函數和圖形等方面具有廣泛的應用。Matlab的突出特點是簡潔,利用豐富的函數資源,給用戶帶來最直觀的開發環境。其中的圖形用戶界面開發環境(GUI)功能強大,界面友好,編程效率高,可擴展性強,是一種簡易的、可擴展的系統開發環境和平臺,可以為不同領域的用戶提供強大的功能[5-7]。文中采用Matlab圖形用戶界面開發環境(GUIDE)設計開發了一套閥門強度校核的輔助軟件,旨在降低公司企業的人力物力成本,提高工作效率。
1.1 程序分析
文中做的是截止閥的強度校核,針對不同項目的內容及程序要實現的功能,設計時大致需要經過以下步驟:確定輸入、輸出參數,進行編號,構思出草圖,然后通過控件布局、代碼編寫、調試運行及修改等工作不斷修改,直至符合要求。
1.2 界面布局思路
設計一個應用程序界面時,應先對整個系統界面進行初步規劃。考慮多種實際需要,具體界面布局思路如圖1所示。

圖1 界面布局思路
具體如下:依據計算項目及其具體內容評估工作量;根據項目內容分配窗體數量;將計算項目分為輸入部分和輸出部分,此外,考慮到數據的使用頻率及相互關聯,并依據面板大小及相關參數的多少將頻率較高的輸入輸出變量設置為獨立子程序;依據程序目的和要實現的功能規劃菜單命令,針對此內容,對不同功能模塊,對話框與用戶交互方式及需要提供的幫助進行規劃。
2.1 功能模塊
設計驗算超低溫閥門時以口徑為區分標準,截止閥目前有20/25/32/40/50/65/80/100/125/150/200等11個口徑,有的項目的強度驗算輸入數據不僅數量多且重復使用率高,甚至其中一些作為固定的經驗值,所以一次性將所需數據直接導入計算面板是要實現的目標。文中制作了批量輸入模塊,實現一鍵導入數據,不僅方便用戶操作,而且提高了操作效率和工作效率。此外,考慮到設計時可能會有數據修改,添加了批量修改數據的命令,可以針對相關的參數進行數值修改。同時,由于輸出數據較多,設置批量輸出模塊,將所有的計算數據一鍵計算出結果并傳遞到面板上,這個模塊完全是適應實際需要的現實創新和改良。為了更便于用戶理解和使用軟件,在相應的界面上添加了圖片參考模塊,確保設計數據準確無誤,也方便對超低溫閥門不是十分熟悉的用戶使用該軟件進行校核。由于所有的超低溫閥門設計都是根據各類規范設計的,且參考了大量的表格,為了方便用戶對比計算結果與設計規范是否相符,文中的軟件還添加了參考模塊。將設計校核用到的所有的表格及校核公式都分別以Excel和Word的形式做到程序里[8-9],方便用戶隨時查閱,當手冊不在手邊時同樣有權威參考。所有的程序中都還有單獨的一個清空模塊,用來一鍵清空界面中所有數據,方便用戶連續直接使用,不必挨個刪除或修改數據,節省了大量時間。在最下面添加參考的計算書,方便參考對比及版本及時隨著閥門手冊的更新而更新。表1是模塊說明。

表1 模塊說明
2.2 界面布局時處理要點
(1)調整控件位置時,合理使用位置調整工具(Alignment Tool),可以將選中控件左或右對齊并間隔設置的距離。該工具的使用可以準確調整位置布局,提高效率。
(2)需要修改屬性時,可以將需要修改為相同屬性的控件全選,利用對象屬性編輯器(Property Editor)在相應的板塊批量修改,可以大大節省時間,提高效率。
2.3 生成報告
由于每一次的計算校核數據都有其實際意義及參考價值,更是需要留存報告作為項目依據,為了方便記錄每一次校核結果,文中專門制作了自動生成報告按鍵[10],可全面準確地記錄各個計算項目的輸入結果及輸出結果。以截止閥的閥體密封面上總作用力及計算比壓為例,代碼如下:
a=str2double(get(handles.edit1,'string'));
b=str2double(get(handles.edit2,'string'));
c=str2double(get(handles.edit3,'string'));
……
A=[a,b,c,…]
filename='密封面總作用力及計算比壓.xlsx';
sheet=1;
xlRange='G3';
xlswrite(filename,A',sheet,xlRange);
xlRange='B15';
z=char(get(handles.edit13,'string'));
xlswrite(filename,{z},sheet,xlRange);
winopen('密封面總作用力及計算比壓.xlsx');
3.1 程序實例
利用Matlab,用戶可以非常方便和快捷地設計一個圖形用戶界面,如同在一張紙上繪圖。可以把圖形界面的外觀,包括所有的按鈕以及圖形的位置確定下來,然后利用Matlab的回調程序編輯器來編寫其函數代碼,從而可以使該圖形界面完成預定的任務。
以口徑為80的截止閥的閥體密封面上總作用力及計算比壓程序的制作過程為例[11]。錐面密封結構如圖2所示。

圖2 錐面密封結構
(1)輸入數據如表2所示。

表2 輸入數據
注:所有表格均參考《實用閥門設計手冊》第三版。
(2)輸出數據。
密封面處介質作用力為:
(1)
密封面上密封力為:

(2)
密封面上總作用力為:
FMZ=FMJ+FMF
(3)
密封面計算比壓為:
(4)
首先將所有相關參數分為輸入和輸出參數,然后按照上述分類利用對象設計編輯器(LayoutEditor),包括復選框(Checkboxes)、可編輯文本框(Editabletext)、框架(Frames)、列表框(Listboxes)、彈出式菜單(Pop-upmenus)、命令按鈕(Pushbuttons)、單選按鈕(Radiobuttons)、滑標(Sliders)、靜態文本框(Statictext)、開關按鈕(Togglebuttons),按照自己的需要在圖形上添加圖形控制對象;利用對象屬性編輯器(PropertyEditor)修改對象的屬性值,如String和Tag;通過位置調整工具(AlignmentTool)調整圖形窗口中各個圖形對象的位置;使用對象瀏覽編輯器(ObjectBrowser)可以最直觀高效地了解當前設計階段的各個句柄圖形對象[12-14],以便后面相應地編寫callback函數,布局如圖3所示。

圖3 密封面上總作用力及計算比壓
3.2 程序結果及手工計算對比
同樣以截止閥的閥體密封面上總作用力及計算比壓為例,計算結果及用時對比如表3所示。
從表中可以看出,通過對設計圖紙校核驗算,手工與程序結果一致,說明程序是有效的;同時,程序運行出結果只需要29 s,專業人員手工計算卻需要十幾分鐘,說明程序是高效的。關鍵是計算機計算結果較客觀,避免了手工驗算的失誤及誤差。

表3 計算結果及用時對比
3.3 程序的實用性及人性化
這款軟件最大的特點就是實用性及人性化,如圖3所示:
(1)為了最大程度上減少操作次數,提高用戶體驗,專門添加了批量輸入及批量輸出按鈕。
(2)考慮到設計時可能會有數據修改,便添加了批量修改的命令。通過該命令可以打開相應的表格,即可對相應的數據進行批量修改。
(3)在所有涉及需要查表才能確定的參數前,都標注了相應的參考的表格;并將所有要參考的表格、計算書集中列為一個參考模塊。
(4)為了設計人員更方便準確地理解參數,對可能有歧義的參數添加了示意圖并集中形成了圖片參考模塊。
(5)為了方便參考對比以及版本及時更新,在最下面添加了參考的計算書。
(6)考慮到計算校核結果的參考價值及留檔等情況,添加了一鍵生成報告的功能,將面板中所有的參數及其數據,全部保存到Excel表格中。這便是生成的報告,數據完整準確記錄到Excel中。
(7)為了方便下一次計算,設置了一鍵清除鍵clear,點擊一下,即清除面板中所有數據。
文中詳細介紹了利用Matlab的GUI界面編寫具有實際工程意義的程序的具體過程,以及圖形用戶界面設計過程,包含了具體的布局心得,是學以致用的典型案例。
通過具體算例的程序及手工的對比,證明了該程序具有三大優勢:通過對設計圖紙的校核驗算,結果表明手工與程序結果一致,說明程序有效;大量節省時間,3 min程序計算可趕超過去兩人30 h的手算工作量;人力資源優勢:原來需要專業人員,現在只需會簡單計算機操作即可。大大提高了工作效率,節省了公司人力物力成本,具有重大的現實意義。
[1] 陸培文.實用閥門設計手冊[M].北京:機械工業出版社,2012.
[2] 顧 聞,周 飛,楊宏兵,等.基于C.NET與MATLAB混合編程的動態調度軟件系統開發[J].計算機應用與軟件,2014,31(12):17-20.
[3] 嚴大考,李 猛,郭朋彥,等.基于Matlab的智能車軟件系統設計與仿真[J].計算機應用與軟件,2014,31(1):256-259.
[4] 卜曉燕,蔡 萍,郭俊杰,等.基于MatlabGUI的復雜曲面輪廓度誤差評定系統[J].計算機應用與軟件,2014,31(2):49-51.
[5] 田 雨,韓作振.MATLAB輔助GIS空間分析建模實驗設計與應用[J].計算機工程與應用,2010,46(2):69-70.
[6] 于中權,趙海濤,梁仁仁,等.基于Matlab/Simulink的光纖陀螺系統建模與仿真[J].計算機應用與軟件,2013,30(5):254-256.
[7] 程衛國.MATLAB5.3應用指南[M].北京:人民郵電出版社,2000.
[8] 陳垚光.精通MATLAB GUI設計[M].北京:電子工業出版社,2008.
[9] 竇穎艷.基于LabWindows/CVI和MATLAB的數據采集與控制系統[D].株洲:湖南工業大學,2009.
[10] 劉會燈,朱 飛.MATLAB編程基礎與典型應用[M].北京:人民郵電出版社,2008.
[11] 安 樹,閆英敏,劉正春.基于Matlab GUI的電力電子技術教學平臺設計[J].中國現代教育裝備,2012(7):16-18.
[12] 孫 萍.基于MATLAB編程的倒立擺實驗的實現[J].高效實驗室工作研究,2013(2):43-44.
[13] 吳堂榮,唐 勇.低溫閥門密封性能的研究與分析[J].閥門,2009(2):26-28.
[14] 徐俊文,王 強,金 珩.MATLAB環境下的GUI編程[J].內蒙古民族大學學報:自然科學版,2006,21(6):640-641.
Matlab GUI-based Design of Valve’s Strength Checking
DONG Da-shan1,MAO Qing-jiao1,WENG Wu-xiu2,ZHU Yuan-kan2
(1.School of Logistics Engineering,Shanghai Maritime University,Shanghai 201306,China;2.Shanghai Hudong Marine Valve Co.,Ltd.,Shanghai 201913,China)
The repeated and mechanical strength is calculated aiming to check valve in the company.In order to reduce the cost of human and material resources and improve work efficiency in the company,from the actual needs of the valve strength checking,the strength calculation is proposed to be procedural using Matlab language Graphical User Interface (GUI) features,designing supporting software of strength checking valve.The main line is sequence in the programming,by making the user interface framework and setting its control properties,and this section describes procedures for the preparation of order and tips and introduces the key points.A function module of concentrated reflection of program practicality and personalization is constructed,and the function of generating reports is added.Through comparing examples of procedures and manual,the results of manual and application are consistent,which proves the effectiveness of the program,greatly improving the work efficiency.Thus,the software is effective,time-saving and energy-saving,with a great practice.
Matlab;GUI;control design;valve
2016-02-19
2016-06-09
時間:2016-11-22
國家工業與信息化部重點計劃項目(2014162號)
董達善(1956-),男,博士,教授,碩士研究生導師,研究方向為現代設計理論與方法、焊接結構分析與疲勞設計。
http://www.cnki.net/kcms/detail/61.1450.TP.20161122.1227.024.html
TP31
A
1673-629X(2016)12-0182-04
10.3969/j.issn.1673-629X.2016.12.039