江俊良+遲春燕+王鉞仁+谷登科+田軍超+李振鵬
(吉林建筑大學(xué)土木工程學(xué)院 吉林 長(zhǎng)春 130118)
【摘要】針對(duì)傳統(tǒng)設(shè)計(jì)方法過(guò)程復(fù)雜,邏輯性差,修改不便的特點(diǎn),利用圖像用戶(hù)界面的人機(jī)交互性,實(shí)現(xiàn)了基于matlab/GUI的裝載機(jī)設(shè)計(jì)平臺(tái)的搭建與實(shí)現(xiàn)。選取鏟斗設(shè)計(jì)為例,闡述GUI的具體設(shè)計(jì)過(guò)程。結(jié)果表明,設(shè)計(jì)平臺(tái)運(yùn)行良好,設(shè)計(jì)過(guò)程清晰簡(jiǎn)明,此平臺(tái)作為理論教學(xué)的輔助手段,可加深學(xué)生對(duì)設(shè)計(jì)過(guò)程的理解和運(yùn)用,也可作為工程設(shè)計(jì)人員的輔助設(shè)計(jì)工具。
【關(guān)鍵詞】裝載機(jī)設(shè)計(jì) 人機(jī)交互界面 matlab/GUI
一、引言
隨著社會(huì)發(fā)展與經(jīng)濟(jì)水平的提高的需求,工程機(jī)械呈現(xiàn)種類(lèi)多,覆蓋面寬,功能齊全的蓬勃發(fā)展局面。而設(shè)計(jì)作為整個(gè)機(jī)械生產(chǎn)流程的第一步可以說(shuō)是至關(guān)重要的,但是傳統(tǒng)的設(shè)計(jì)過(guò)程基本沒(méi)有用戶(hù)界面,或者僅僅靠簡(jiǎn)單的文字信息和 屏幕顯示與用戶(hù)進(jìn)行交互,過(guò)程繁雜、工作量大,容易出現(xiàn)較大的錯(cuò)誤且不便于修改,這極大的制約著設(shè)計(jì)師推出更優(yōu)秀的產(chǎn)品。而GUI設(shè)計(jì)具有用戶(hù)界面友好性,圖標(biāo)識(shí)別平衡性,圖標(biāo)功能的一致性等特點(diǎn),能夠建立起友好的交互界面便于在設(shè)計(jì)過(guò)程中與用戶(hù)進(jìn)行交流。
因此本文利用MATLAB強(qiáng)大的圖像處理和圖形表現(xiàn)能力,良好的GUI設(shè)計(jì)環(huán)境,針對(duì)工程機(jī)械的設(shè)計(jì)特點(diǎn),以裝載機(jī)為例,將GUI設(shè)計(jì)應(yīng)用于其設(shè)計(jì)過(guò)程、關(guān)鍵參數(shù)確定等的設(shè)計(jì)過(guò)程,來(lái)建立良好的人機(jī)交互界面,從而在繁雜的設(shè)計(jì)過(guò)程中,減輕設(shè)計(jì)人員的工作量,降低設(shè)計(jì)的錯(cuò)誤率,從而提高工作效率。
二、設(shè)計(jì)思路
設(shè)計(jì)平臺(tái)的布局是先設(shè)計(jì)GUI總界面,然后設(shè)計(jì)子界面,再在子界面上設(shè)置按鈕、菜單、文本框等一系列控件,最后借助于callback函數(shù)調(diào)用程序,在函數(shù)調(diào)用程序的設(shè)計(jì)中先編寫(xiě)各個(gè)子界面中的回調(diào)函數(shù)下的程序,再編寫(xiě)GUI界面的回調(diào)函數(shù)下的程序。
在設(shè)計(jì)人機(jī)交互操作界面時(shí),在MATLAB命令行中輸入guide或者選擇MATLAB主界面File菜單New子菜單下的GUI項(xiàng),打開(kāi)GUIDE啟動(dòng)對(duì)話(huà)框,在GUIDEtemplates 菜單下4個(gè)選項(xiàng)中選擇空白模板BlankGUI(Default),在點(diǎn)擊OK后進(jìn)入GUI編輯界面。在GUIDE設(shè)計(jì)界面下,通過(guò)單擊或者拖拽鼠標(biāo)的方式創(chuàng)建自己的GUI程序界面。
三、裝載機(jī)設(shè)計(jì)平臺(tái)的具體實(shí)現(xiàn)
裝載機(jī)設(shè)計(jì)過(guò)程復(fù)雜,設(shè)計(jì)內(nèi)容繁多,該設(shè)計(jì)平臺(tái)的建立采用一個(gè)總設(shè)計(jì)界面與若干個(gè)子設(shè)計(jì)界面相互回調(diào),每個(gè)子界面都可以實(shí)現(xiàn)一個(gè)具體的設(shè)計(jì)內(nèi)容,并且可以切換回主界面,進(jìn)行其他內(nèi)容的設(shè)計(jì)。
(一)總界面的設(shè)計(jì)
打開(kāi)Matlab,打開(kāi)NEW中的GUI,新建一個(gè)主界面,添加一個(gè)Static Text控件用于顯示參數(shù)的名稱(chēng),并命名為“裝載機(jī)設(shè)計(jì)”; 添加一個(gè)Axes控件用于顯示參數(shù)的細(xì)則圖像,并添加裝載機(jī)圖片;同時(shí)再創(chuàng)建9個(gè)Push Button控件用于完成程序在后臺(tái)的實(shí)現(xiàn),并分別命名為“總體設(shè)計(jì)”、“工作裝置設(shè)計(jì)”、“動(dòng)力系統(tǒng)設(shè)計(jì)”、“傳動(dòng)系統(tǒng)設(shè)計(jì)”、“制動(dòng)系統(tǒng)設(shè)計(jì)”、“行走系統(tǒng)設(shè)計(jì)”、“液壓系統(tǒng)設(shè)計(jì)”、“電氣系統(tǒng)設(shè)計(jì)”以及“退出”;點(diǎn)擊運(yùn)行按鈕,運(yùn)行結(jié)果如1所示。
(二)子界面的設(shè)計(jì)
針對(duì)總結(jié)面中8個(gè)按鈕所對(duì)應(yīng)的設(shè)計(jì)內(nèi)容分別設(shè)置多級(jí)子界面,以工作裝置設(shè)計(jì)中的鏟斗設(shè)計(jì)為例進(jìn)行說(shuō)明。
(1)新建工作裝置設(shè)計(jì)一級(jí)子界面。添加Panel控件,并命名為“工作裝置設(shè)計(jì)”;添加5個(gè)Push Button控件,并分別命名為“鏟斗設(shè)計(jì)”、“連桿系統(tǒng)設(shè)計(jì)”、“靜力學(xué)計(jì)算及強(qiáng)度校核”、“結(jié)構(gòu)動(dòng)力分析”以及“退出”,點(diǎn)擊運(yùn)行按鈕,運(yùn)行結(jié)果如圖2所示。
(2)新建鏟斗設(shè)計(jì)二級(jí)子界面。由4個(gè)面板(Panel)、2個(gè)觸控按鈕(Push Button)、34個(gè)靜態(tài)文本(Static Text)、9個(gè)可編輯文本框(Edit Text)、4個(gè)彈出式菜單(Pop-up Menu)組成。4個(gè)面板(Panel),分別命名為“鏟斗設(shè)計(jì)”、“確認(rèn)基本參數(shù)”、“計(jì)算”以及“斗容計(jì)算”;2個(gè)觸控按鈕(Push Button)用于實(shí)現(xiàn)相關(guān)計(jì)算,分別命名為“計(jì)算”、“計(jì)算”;34個(gè)靜態(tài)文本(Static Text)用于顯示部分計(jì)算結(jié)果的值,分別為“mr”、“vr”、“cxvs”、“寬度m”、“內(nèi)側(cè)寬度m”、“斗底長(zhǎng)度系數(shù)1.40-1.53”、“后壁長(zhǎng)度系數(shù)1.1-1.2”、“擋板高度系數(shù)0.12-0.14”、“圓弧半徑系數(shù)0.35-0.45”、“張開(kāi)角45°-52°”、“擋板與后壁間的夾角5°-10°”、“下鉸接點(diǎn)與斗底高系數(shù)0.06-0.12”、“鏟斗回轉(zhuǎn)半徑m”、“鏟斗圓弧半徑m”、“斗底長(zhǎng)度m”、“后斗壁長(zhǎng)度m”、“擋板高度m”、“下鉸接點(diǎn)與斗底高度”、“r0”、“r1”、“l(fā)g”、“l(fā)z”、“l(fā)k”、“homega”、“橫截面積”、“鏟斗開(kāi)口長(zhǎng)m”、“堆積高度m”、“平裝容量計(jì)算”、“額定容量計(jì)算”、“sa”、“bt”、“c”、“vs”、“vrr”;9個(gè)可編輯文本框(Edit Text),分別命名為“edit1”、“b0”、“l(fā)ambdag”、“l(fā)ambdaz”、“l(fā)ambdak”、“l(fā)ambdar”、“gamma0”、“gamma1”、“hr”;4個(gè)彈出式菜單(Pop-up Menu)用于同類(lèi)數(shù)值的選取,并命名為“選擇裝載機(jī)的型號(hào)(ZL10、ZL15、ZL20、ZL25、ZL30、ZL40、ZL50、ZL80、ZL100、ZL160、ZL200、ZL240)”、“請(qǐng)選擇切削刃形狀(直線(xiàn)型切削刃和非直線(xiàn)型切削刃)”、“請(qǐng)選擇斗齒(整體式和分體式)”和“請(qǐng)選擇側(cè)刃(弧線(xiàn)測(cè)刃和折線(xiàn)測(cè)刃)”,并擺放于合適位置,如圖3所示。
點(diǎn)擊下拉菜單,選擇ZL80輪式裝載機(jī)為例,點(diǎn)擊運(yùn)行按鈕,然后輸入相應(yīng)的參數(shù)時(shí)可得到如下結(jié)果,如圖4所示。
由圖4可知,在下拉菜單中選擇不同型號(hào)的鏟斗,在文本輸入框中輸入不同的條件參數(shù),即可得到不同的鏟斗設(shè)計(jì)參數(shù),設(shè)計(jì)過(guò)程直觀(guān)明了,不同的條件參數(shù)對(duì)設(shè)計(jì)結(jié)果的影響一目了然,方便了設(shè)計(jì)人員修改更正,使得設(shè)計(jì)過(guò)程更為簡(jiǎn)單有效。endprint
鏟斗設(shè)計(jì)結(jié)束后,可通過(guò)界面跳轉(zhuǎn)返回一級(jí)子界面,點(diǎn)擊其他按鈕進(jìn)入相應(yīng)設(shè)計(jì)內(nèi)容的二級(jí)子界面進(jìn)行設(shè)計(jì),界面及功能的實(shí)現(xiàn)過(guò)程與鏟斗類(lèi)似,在此不一一贅述。
(三)界面的跳轉(zhuǎn)及退出
在設(shè)計(jì)過(guò)程中,每一個(gè)界面之間還存在一定的聯(lián)系,因此需要界面的跳轉(zhuǎn),以圖2跳轉(zhuǎn)到圖3界面為例,設(shè)計(jì)過(guò)程為:打開(kāi)裝載機(jī)設(shè)計(jì)的fig文件,右鍵單擊工作裝置設(shè)計(jì),然后點(diǎn)擊View Callbacks中的Callback,彈出回調(diào)函數(shù)如下:
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
(1)此時(shí)如在此程序后面輸入要跳轉(zhuǎn)到下一界面的m文件程序名稱(chēng),如:Gongzuozhuangzhisheji即可從主界面跳轉(zhuǎn)到工作裝置設(shè)計(jì)一級(jí)子界面。
(2)如在此程序后面輸入close(gcf),即可退出此界面。
四、結(jié)論
本文應(yīng)用可視化編程能力的圖形用戶(hù)界面GUI,實(shí)現(xiàn)了裝載機(jī)設(shè)計(jì)平臺(tái)的建立,該設(shè)計(jì)平臺(tái)將裝載機(jī)的設(shè)計(jì)過(guò)程加載在平臺(tái)界面中,通過(guò)總界面與子界面不同的回調(diào)函數(shù)進(jìn)行鏈接,實(shí)現(xiàn)了圖形用戶(hù)界面人機(jī)交互式的設(shè)計(jì)過(guò)程,增加了設(shè)計(jì)過(guò)程的直觀(guān)性,便于設(shè)計(jì)人員修改更正,既可作為教學(xué)輔助軟件幫助學(xué)生理解理論知識(shí),提高教學(xué)質(zhì)量,也可作為專(zhuān)業(yè)設(shè)計(jì)人員的輔助設(shè)計(jì)工具,同時(shí)也為其他工程機(jī)械的可視化設(shè)計(jì)奠定了良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 張春慧,宗哲英,王蒙等.基于Matlab GUI的自動(dòng)控制原理虛擬實(shí)驗(yàn)平臺(tái)的開(kāi)發(fā)與研究[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2015.
[2] 溫淑煥,佟永正,劉福才,馬鍇.基于Matlab GUI的計(jì)算機(jī)控制技術(shù)教學(xué)演示系統(tǒng)設(shè)計(jì)[J].高教研究與實(shí)踐,2016.
[3] 羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手機(jī)(第2版)[M]. 北京:航空航天大學(xué)出版社,2011.
[4]施曉紅,周佳.精通GUI圖形界面編程[M].北京:北京大學(xué)出版社,2003.endprint