董達(dá)善,毛慶蕉,翁武秀,朱元侃
(1.上海海事大學(xué) 物流工程學(xué)院,上海 201306;2.上海滬東造船閥門有限公司,上海 201913)
基于Matlab GUI的閥門強度校核程序設(shè)計
董達(dá)善1,毛慶蕉1,翁武秀2,朱元侃2
(1.上海海事大學(xué) 物流工程學(xué)院,上海 201306;2.上海滬東造船閥門有限公司,上海 201913)
針對閥門強度計算校核的重復(fù)性及機械性,為了降低公司企業(yè)的人力物力成本,提高工作效率,從閥門強度校核實際需求入手,提出將強度計算校核進(jìn)行程序化,利用Matlab語言的圖形用戶界面(GUI)功能,設(shè)計制作了閥門強度校核的輔助軟件。以編程思路為主線,通過介紹圖形用戶界面設(shè)計過程,包含了具體的制作用戶界面的框架結(jié)構(gòu)和設(shè)置其控件屬性及布局順序、心得,并介紹了相關(guān)內(nèi)容的處理要點,其中制作了集中體現(xiàn)程序?qū)嵱眯约叭诵曰墓δ苣K,并添加了生成報告功能。通過具體算例的程序及手工的對比,手工與程序結(jié)果一致,證明了該程序的有效性,大大提高了工作效率。同時也說明該軟件是一款集有效、省時、省力三大優(yōu)勢于一體的實用性軟件。
Matlab;圖形用戶界面;控件設(shè)計;閥門
閥門是石油、化工、電站、造紙、核工業(yè)、各種低溫工程、宇航及海洋采油等流體輸送系統(tǒng)中的主要控制部件[1],具有至關(guān)重要的作用。隨著LNG的迅速發(fā)展,低溫閥門的應(yīng)用越來越廣泛。超低溫閥門的工作溫度極低(77 K),因此在設(shè)計這類閥門時,為了保證閥門在低溫下安全可靠的運行,在設(shè)計時要求必須具有足夠的強度和剛度,以保證長期使用而不發(fā)生破裂或者產(chǎn)生變形。所以,強度應(yīng)力的設(shè)計校核是研發(fā)設(shè)計的重中之重。然而,大部分閥門的設(shè)計校核卻都是完全手工計算,計算量大、重復(fù)性高、機械性高、費時費力。因此,文中在手工計算校核的基礎(chǔ)上進(jìn)行二次開發(fā),實現(xiàn)程序化,替代傳統(tǒng)手工計算。
Matlab是由Mathwork公司開發(fā)的一款高性能的數(shù)值計算和可視化軟件,也是當(dāng)今科研領(lǐng)域最常用的應(yīng)用軟件之一,其全稱為Matrix Laboratory,亦稱矩陣實驗室[2-4]。它在數(shù)值分析、信號處理、系統(tǒng)辨識、特殊函數(shù)和圖形等方面具有廣泛的應(yīng)用。Matlab的突出特點是簡潔,利用豐富的函數(shù)資源,給用戶帶來最直觀的開發(fā)環(huán)境。其中的圖形用戶界面開發(fā)環(huán)境(GUI)功能強大,界面友好,編程效率高,可擴展性強,是一種簡易的、可擴展的系統(tǒng)開發(fā)環(huán)境和平臺,可以為不同領(lǐng)域的用戶提供強大的功能[5-7]。文中采用Matlab圖形用戶界面開發(fā)環(huán)境(GUIDE)設(shè)計開發(fā)了一套閥門強度校核的輔助軟件,旨在降低公司企業(yè)的人力物力成本,提高工作效率。
1.1 程序分析
文中做的是截止閥的強度校核,針對不同項目的內(nèi)容及程序要實現(xiàn)的功能,設(shè)計時大致需要經(jīng)過以下步驟:確定輸入、輸出參數(shù),進(jìn)行編號,構(gòu)思出草圖,然后通過控件布局、代碼編寫、調(diào)試運行及修改等工作不斷修改,直至符合要求。
1.2 界面布局思路
設(shè)計一個應(yīng)用程序界面時,應(yīng)先對整個系統(tǒng)界面進(jìn)行初步規(guī)劃。考慮多種實際需要,具體界面布局思路如圖1所示。
圖1 界面布局思路
具體如下:依據(jù)計算項目及其具體內(nèi)容評估工作量;根據(jù)項目內(nèi)容分配窗體數(shù)量;將計算項目分為輸入部分和輸出部分,此外,考慮到數(shù)據(jù)的使用頻率及相互關(guān)聯(lián),并依據(jù)面板大小及相關(guān)參數(shù)的多少將頻率較高的輸入輸出變量設(shè)置為獨立子程序;依據(jù)程序目的和要實現(xiàn)的功能規(guī)劃菜單命令,針對此內(nèi)容,對不同功能模塊,對話框與用戶交互方式及需要提供的幫助進(jìn)行規(guī)劃。
2.1 功能模塊
設(shè)計驗算超低溫閥門時以口徑為區(qū)分標(biāo)準(zhǔn),截止閥目前有20/25/32/40/50/65/80/100/125/150/200等11個口徑,有的項目的強度驗算輸入數(shù)據(jù)不僅數(shù)量多且重復(fù)使用率高,甚至其中一些作為固定的經(jīng)驗值,所以一次性將所需數(shù)據(jù)直接導(dǎo)入計算面板是要實現(xiàn)的目標(biāo)。文中制作了批量輸入模塊,實現(xiàn)一鍵導(dǎo)入數(shù)據(jù),不僅方便用戶操作,而且提高了操作效率和工作效率。此外,考慮到設(shè)計時可能會有數(shù)據(jù)修改,添加了批量修改數(shù)據(jù)的命令,可以針對相關(guān)的參數(shù)進(jìn)行數(shù)值修改。同時,由于輸出數(shù)據(jù)較多,設(shè)置批量輸出模塊,將所有的計算數(shù)據(jù)一鍵計算出結(jié)果并傳遞到面板上,這個模塊完全是適應(yīng)實際需要的現(xiàn)實創(chuàng)新和改良。為了更便于用戶理解和使用軟件,在相應(yīng)的界面上添加了圖片參考模塊,確保設(shè)計數(shù)據(jù)準(zhǔn)確無誤,也方便對超低溫閥門不是十分熟悉的用戶使用該軟件進(jìn)行校核。由于所有的超低溫閥門設(shè)計都是根據(jù)各類規(guī)范設(shè)計的,且參考了大量的表格,為了方便用戶對比計算結(jié)果與設(shè)計規(guī)范是否相符,文中的軟件還添加了參考模塊。將設(shè)計校核用到的所有的表格及校核公式都分別以Excel和Word的形式做到程序里[8-9],方便用戶隨時查閱,當(dāng)手冊不在手邊時同樣有權(quán)威參考。所有的程序中都還有單獨的一個清空模塊,用來一鍵清空界面中所有數(shù)據(jù),方便用戶連續(xù)直接使用,不必挨個刪除或修改數(shù)據(jù),節(jié)省了大量時間。在最下面添加參考的計算書,方便參考對比及版本及時隨著閥門手冊的更新而更新。表1是模塊說明。
表1 模塊說明
2.2 界面布局時處理要點
(1)調(diào)整控件位置時,合理使用位置調(diào)整工具(Alignment Tool),可以將選中控件左或右對齊并間隔設(shè)置的距離。該工具的使用可以準(zhǔn)確調(diào)整位置布局,提高效率。
(2)需要修改屬性時,可以將需要修改為相同屬性的控件全選,利用對象屬性編輯器(Property Editor)在相應(yīng)的板塊批量修改,可以大大節(jié)省時間,提高效率。
2.3 生成報告
由于每一次的計算校核數(shù)據(jù)都有其實際意義及參考價值,更是需要留存報告作為項目依據(jù),為了方便記錄每一次校核結(jié)果,文中專門制作了自動生成報告按鍵[10],可全面準(zhǔn)確地記錄各個計算項目的輸入結(jié)果及輸出結(jié)果。以截止閥的閥體密封面上總作用力及計算比壓為例,代碼如下:
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 程序?qū)嵗?/p>
利用Matlab,用戶可以非常方便和快捷地設(shè)計一個圖形用戶界面,如同在一張紙上繪圖??梢园褕D形界面的外觀,包括所有的按鈕以及圖形的位置確定下來,然后利用Matlab的回調(diào)程序編輯器來編寫其函數(shù)代碼,從而可以使該圖形界面完成預(yù)定的任務(wù)。
以口徑為80的截止閥的閥體密封面上總作用力及計算比壓程序的制作過程為例[11]。錐面密封結(jié)構(gòu)如圖2所示。
圖2 錐面密封結(jié)構(gòu)
(1)輸入數(shù)據(jù)如表2所示。
表2 輸入數(shù)據(jù)
注:所有表格均參考《實用閥門設(shè)計手冊》第三版。
(2)輸出數(shù)據(jù)。
密封面處介質(zhì)作用力為:
(1)
密封面上密封力為:
(2)
密封面上總作用力為:
FMZ=FMJ+FMF
(3)
密封面計算比壓為:
(4)
首先將所有相關(guān)參數(shù)分為輸入和輸出參數(shù),然后按照上述分類利用對象設(shè)計編輯器(LayoutEditor),包括復(fù)選框(Checkboxes)、可編輯文本框(Editabletext)、框架(Frames)、列表框(Listboxes)、彈出式菜單(Pop-upmenus)、命令按鈕(Pushbuttons)、單選按鈕(Radiobuttons)、滑標(biāo)(Sliders)、靜態(tài)文本框(Statictext)、開關(guān)按鈕(Togglebuttons),按照自己的需要在圖形上添加圖形控制對象;利用對象屬性編輯器(PropertyEditor)修改對象的屬性值,如String和Tag;通過位置調(diào)整工具(AlignmentTool)調(diào)整圖形窗口中各個圖形對象的位置;使用對象瀏覽編輯器(ObjectBrowser)可以最直觀高效地了解當(dāng)前設(shè)計階段的各個句柄圖形對象[12-14],以便后面相應(yīng)地編寫callback函數(shù),布局如圖3所示。
圖3 密封面上總作用力及計算比壓
3.2 程序結(jié)果及手工計算對比
同樣以截止閥的閥體密封面上總作用力及計算比壓為例,計算結(jié)果及用時對比如表3所示。
從表中可以看出,通過對設(shè)計圖紙校核驗算,手工與程序結(jié)果一致,說明程序是有效的;同時,程序運行出結(jié)果只需要29 s,專業(yè)人員手工計算卻需要十幾分鐘,說明程序是高效的。關(guān)鍵是計算機計算結(jié)果較客觀,避免了手工驗算的失誤及誤差。
表3 計算結(jié)果及用時對比
3.3 程序的實用性及人性化
這款軟件最大的特點就是實用性及人性化,如圖3所示:
(1)為了最大程度上減少操作次數(shù),提高用戶體驗,專門添加了批量輸入及批量輸出按鈕。
(2)考慮到設(shè)計時可能會有數(shù)據(jù)修改,便添加了批量修改的命令。通過該命令可以打開相應(yīng)的表格,即可對相應(yīng)的數(shù)據(jù)進(jìn)行批量修改。
(3)在所有涉及需要查表才能確定的參數(shù)前,都標(biāo)注了相應(yīng)的參考的表格;并將所有要參考的表格、計算書集中列為一個參考模塊。
(4)為了設(shè)計人員更方便準(zhǔn)確地理解參數(shù),對可能有歧義的參數(shù)添加了示意圖并集中形成了圖片參考模塊。
(5)為了方便參考對比以及版本及時更新,在最下面添加了參考的計算書。
(6)考慮到計算校核結(jié)果的參考價值及留檔等情況,添加了一鍵生成報告的功能,將面板中所有的參數(shù)及其數(shù)據(jù),全部保存到Excel表格中。這便是生成的報告,數(shù)據(jù)完整準(zhǔn)確記錄到Excel中。
(7)為了方便下一次計算,設(shè)置了一鍵清除鍵clear,點擊一下,即清除面板中所有數(shù)據(jù)。
文中詳細(xì)介紹了利用Matlab的GUI界面編寫具有實際工程意義的程序的具體過程,以及圖形用戶界面設(shè)計過程,包含了具體的布局心得,是學(xué)以致用的典型案例。
通過具體算例的程序及手工的對比,證明了該程序具有三大優(yōu)勢:通過對設(shè)計圖紙的校核驗算,結(jié)果表明手工與程序結(jié)果一致,說明程序有效;大量節(jié)省時間,3 min程序計算可趕超過去兩人30 h的手算工作量;人力資源優(yōu)勢:原來需要專業(yè)人員,現(xiàn)在只需會簡單計算機操作即可。大大提高了工作效率,節(jié)省了公司人力物力成本,具有重大的現(xiàn)實意義。
[1] 陸培文.實用閥門設(shè)計手冊[M].北京:機械工業(yè)出版社,2012.
[2] 顧 聞,周 飛,楊宏兵,等.基于C.NET與MATLAB混合編程的動態(tài)調(diào)度軟件系統(tǒng)開發(fā)[J].計算機應(yīng)用與軟件,2014,31(12):17-20.
[3] 嚴(yán)大考,李 猛,郭朋彥,等.基于Matlab的智能車軟件系統(tǒng)設(shè)計與仿真[J].計算機應(yīng)用與軟件,2014,31(1):256-259.
[4] 卜曉燕,蔡 萍,郭俊杰,等.基于MatlabGUI的復(fù)雜曲面輪廓度誤差評定系統(tǒng)[J].計算機應(yīng)用與軟件,2014,31(2):49-51.
[5] 田 雨,韓作振.MATLAB輔助GIS空間分析建模實驗設(shè)計與應(yīng)用[J].計算機工程與應(yīng)用,2010,46(2):69-70.
[6] 于中權(quán),趙海濤,梁仁仁,等.基于Matlab/Simulink的光纖陀螺系統(tǒng)建模與仿真[J].計算機應(yīng)用與軟件,2013,30(5):254-256.
[7] 程衛(wèi)國.MATLAB5.3應(yīng)用指南[M].北京:人民郵電出版社,2000.
[8] 陳垚光.精通MATLAB GUI設(shè)計[M].北京:電子工業(yè)出版社,2008.
[9] 竇穎艷.基于LabWindows/CVI和MATLAB的數(shù)據(jù)采集與控制系統(tǒng)[D].株洲:湖南工業(yè)大學(xué),2009.
[10] 劉會燈,朱 飛.MATLAB編程基礎(chǔ)與典型應(yīng)用[M].北京:人民郵電出版社,2008.
[11] 安 樹,閆英敏,劉正春.基于Matlab GUI的電力電子技術(shù)教學(xué)平臺設(shè)計[J].中國現(xiàn)代教育裝備,2012(7):16-18.
[12] 孫 萍.基于MATLAB編程的倒立擺實驗的實現(xiàn)[J].高效實驗室工作研究,2013(2):43-44.
[13] 吳堂榮,唐 勇.低溫閥門密封性能的研究與分析[J].閥門,2009(2):26-28.
[14] 徐俊文,王 強,金 珩.MATLAB環(huán)境下的GUI編程[J].內(nèi)蒙古民族大學(xué)學(xué)報:自然科學(xué)版,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
國家工業(yè)與信息化部重點計劃項目(2014162號)
董達(dá)善(1956-),男,博士,教授,碩士研究生導(dǎo)師,研究方向為現(xiàn)代設(shè)計理論與方法、焊接結(jié)構(gòu)分析與疲勞設(shè)計。
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