




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MATLAB仿真實踐MATLABGUI程序設計初步
引言MATLAB的GUI程序設計可以用兩種方式實現(xiàn),一種是借助GUI開發(fā)工具GUIDE,一種是利用m文件代碼構建界面。采用GUIDE進行設計的方法所見即所得,直觀方便,很容易上手。本章主要介紹利用GUIDE方法進行設計的步驟。有興趣的用戶可以進一步了解學習全部利用m文件代碼構建界面及執(zhí)行程序的方法。本章主要內容6.1GUI設計工具Guide簡介6.1.1GUIDE的啟動6.1.2GUI界面的創(chuàng)立6.2GUI程序設計例如6.2.1“HelloWorld”程序的設計6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序6.1GUI設計工具Guide簡介MATLAB提供了用戶圖形界面開發(fā)程序GUIDE,支持可視化編輯。它是一種基于事件或者說是事件驅動的程序〔eventdriven〕,類似于方便易用的VisualBasic。6.1.1GUIDE的啟動可以如下不同方式啟動GUIDE:1.在命令窗口提示符下輸入guide;2.在工具欄選翻開;3.在Start菜單中選MATLAB>GUIDE(GUIBuilder);4.MATLABFile菜單中選New>GUI。6.1.1GUIDE的啟動以上面任一種方式翻開GUIDE后,即以下圖的啟動界面。GUIDE啟動界面6.1.2GUI界面的創(chuàng)立
用戶創(chuàng)立新的GUI,也可翻開已有的GUI。創(chuàng)立界面時還可在模板根底上進行,在選擇GUI模板時,啟動界面右側提供了預覽。以“GUIwithaxesandmenu”模板創(chuàng)立的GUI初始界面。6.2GUI程序設計例如概述本節(jié)通過2個例如,演示MATLAB的GUI程序設計。一個是“HelloWorld”程序,作為初步了解。一個用來演示控制系統(tǒng)傳遞函數(shù)典型環(huán)節(jié)的響應曲線,具有一定實用性。6.2.1“HelloWorld”程序的設計下面以一個類似于學習其它程序設計的第一個程序“HelloWorld”為例,講解GUIDE的有關知識。程序的目標是當按下按鈕時,由文本控件顯示“HelloWorld”。顯示控件名稱的設置界面對界面左側的控件如果不夠熟悉的話,可以通過File>Preferences選項,選中“Shownamesincomponentpalette”
GUI設計界面在顯示控制圖標的同時,還顯示控件名稱GUI設計界面6.2.1“HelloWorld”程序的設計1.“HelloWorld”程序界面設計2.“HelloWorld”程序的設計3.程序測試運行6.2.1“HelloWorld”程序的設計
——1.“HelloWorld”程序界面設計GUI設計中的界面設計局部比較容易。在窗口上添加一個按鈕控件〔PushButton〕和一個文本控件〔StaticText〕。可以雙擊控件調出屬性編輯器進行其屬性的設置。本例中,設按鈕控件的“String”屬性為“問候”,“Tag”屬性為“helloBt”,見右圖按鈕屬性設置設置文本控件的“String”屬性為空,表示初始狀態(tài)下不顯示任何信息,“Tag”屬性為“helloStr”,為顯示清楚,設其“FontSize”屬性為“28”。見右圖文本控件屬性設置6.2.1“HelloWorld”程序的設計
——1.“HelloWorld”程序界面設計需要注意的是,“Tag”屬性設置要唯一,因為“Tag”屬性是唯一標識控件的。至此,我們的界面設計工作完成。在保存時,會生成2個文件,一個是helloworld.fig,一個是helloworld.m。6.2.1“HelloWorld”程序的設計
——1.“HelloWorld”程序界面設計此外可通過Tools>MenuEditor進行類似于Windows程序的菜單設計。編輯窗口見左圖,效果見右圖。菜單設計的編輯窗口菜單效果圖6.2.1“HelloWorld”程序的設計
——2.“HelloWorld”程序的設計按照要求,我們可以給按鈕添加動作,即給它編寫一個回調函數(shù)〔Callback〕。右鍵單擊按鈕,選擇ViewCallbacks>Callback自動翻開helloworld.m文件并指向該回調函數(shù)。根據需要為其添加語句。程序將句柄集handles的helloStr〔即文本控件〕“String”屬性設置為“HelloWorld”,即完成了設計要求。6.2.1“HelloWorld”程序的設計
——2.“HelloWorld”程序的設計下面這段程序的意思是當點擊按鈕時,即由程序設置文本控件的“String”屬性值為“HelloWorld”。functionhelloBt_Callback(hObject,eventdata,handles)set(handles.helloStr,'String','HelloWorld!');6.2.1“HelloWorld”程序的設計
——2.“HelloWorld”程序的設計注意回調函數(shù)的概念,它指的是在對象的某一個事件發(fā)生時,MATLAB內部機制允許自動調用的函數(shù)。其幾個參數(shù)的意思分別為hObject表示當前窗口的句柄;eventdata表示事件代碼,為保存handles是該窗口中的所有句柄的集合?;卣{函數(shù)有的是針對窗口而言的,有的是對具體控件而言的,學會回調函數(shù)的編寫有助于高效編寫MATLABGUI程序6.2.1“HelloWorld”程序的設計
——3.程序測試運行在程序編輯窗口運行測試,或在命令窗口鍵入程序名稱“helloworld”,即可運行。如以下圖:helloworld程序運行界面6.2.1“HelloWorld”程序的設計
——3.程序測試運行注意:當不小心將helloworld.fig關掉后,再次編輯需要重新翻開。其方法可以通過File>New>GUI>OpenExistingGUI來翻開。如按照一般理解選擇File>Open項的話,只能翻開其運行窗口而不可編輯。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序1.程序功能描述2.程序界面設計3.程序代碼設計4.程序測試運行6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序1.程序功能描述進行控制系統(tǒng)典型環(huán)節(jié)的演示,包括了典型環(huán)節(jié)運行效果的演示與代碼的展示。也可以在代碼區(qū)輸入繪制曲線語句并通過點擊定制曲線按鈕繪制曲線。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序2.程序界面設計根據程序功能要求,添加不同控件,并設置控件各自的屬性。(1)Axes控件作用為顯示圖形,典型環(huán)節(jié)的階躍響應曲線及定制曲線都在此處進行顯示?!癟ag”屬性設為myAxes。(2)Panel控件用來盛放其它控件,這里盛放的是代碼區(qū)?!癟ag”屬性設為uipanel。“Title”屬性設為空。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序(3)EditText控件用于輸入和顯示文本。此處作為代碼區(qū),主要作用為展示典型環(huán)節(jié)的代碼、輸入用戶定制的曲線代碼?!癟ag”屬性設為:strCode?!癝tring”屬性設為:
Pleaseinputcommandforexample:x=0:0.1:4*pi;y=sin(x);這為用戶定制曲線提供了一個例程。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序(4)StaticText控件作為標識,提示位于其下方的ListBox控件選項是進行典型環(huán)節(jié)的演示的。“Tag”屬性設為txtDemo,“String”屬性設為典型環(huán)節(jié)演示。(5)ListBox控件類似于一組復選框,用戶可以從中選擇不同選項?!癟ag”屬性設為:lstBox“String”屬性設為:比例環(huán)節(jié)慣性環(huán)節(jié)比例微分環(huán)節(jié)比例積分環(huán)節(jié)表示此列表共有4項內容即4個典型環(huán)節(jié)可選。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序(6)PushButton控件表現(xiàn)為一個按鈕。本例中使用了兩個此控件。一個用于定制曲線的繪制。用戶在代碼區(qū)輸入繪制曲線語句后,點擊此按鈕進行曲線的繪制。“Tag”屬性設為btnDraw,“String”屬性設為定制曲線,“TooltipString”屬性設為在代碼區(qū)中輸入曲線參數(shù),繪制任意曲線。這樣當用戶將光標置于按鈕之上時,會有相應的提示信息。一個用于關閉運行窗口?!癟ag”屬性設為btnClose,“String”屬性設為關閉,“TooltipString”屬性設為關閉窗口。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序設定完成的界面草圖如右圖程序界面設計草圖6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序至此,本例所需的控件已設置完畢。在最初按照草圖添加部署了所有的控件后,往往不會排列得很整齊。此時可根據需要進行控件的排列。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序如在本例中,要將位于窗口右側的4個控件豎排整齊,那么可在窗口選Tool>AlignObjects彈出的窗口中進行選擇,如圖。界面控件布局設置6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序3.程序代碼設計根據要求,在選擇典型環(huán)節(jié)時需要設置回調函數(shù)。此外,對兩個按鈕控件也要設置回調函數(shù)?;卣{函數(shù)的生成在前一個例子已講過,這里不重復。這里只給出相應的代碼段供參考。6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序(1)定制曲線按鈕的回調函數(shù)functionbtnDraw_Callback(hObject,eventdata,handles)trystr=char(get(handles.strCode,'String'));%將在代碼區(qū)輸入的代碼轉換成數(shù)組str0=[];forii=1:size(str,1)%對str的每行操作str0=[str0,deblank(str(ii,:))];%將str第ii行去掉空格后作為向量str0的一個元素endeval(str0);%執(zhí)行代碼axes(handles.myAxes);%將myAxes設為當前坐標系plot(x,y);%繪制曲線catcherrordlg('請重新檢查輸入數(shù)據!');%如有數(shù)據錯誤,捕獲并給出提示end6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序(2)典型環(huán)節(jié)列表框的回調函數(shù)functionlstBox_Callback(hObject,eventdata,handles)v=get(handles.lstBox,'value');%取出所選項的值%對不同選項,進行對應環(huán)節(jié)曲線的繪制和代碼的展示switchvcase1,%比例環(huán)節(jié)str1='nump=3;denp=1;';%繪制比例環(huán)節(jié)曲線的代碼str2='t=0:0.1:10;';str3='[y,t,x]=step(nump,denp,t);';%將代碼作為數(shù)組賦值給代碼區(qū)的String屬性,即展示代碼set(handles.strCode,'String',char(str1,str2,str3));%將所選環(huán)節(jié)名稱顯示在panel控件上set(handles.uipanel,'Title','比例環(huán)節(jié)');case2,%慣性環(huán)節(jié)str1='numg=1;deng=[0.21];';str2='t=0:0.1:10;';str3='[y,t,x]=step(numg,deng,t);';set(handles.strCode,'String',char(str1,str2,str3));set(handles.uipanel,'Title','慣性環(huán)節(jié)')
6.2.2一個實用的GUI設計例如――控制系統(tǒng)典型環(huán)節(jié)的演示程序case3,%比例微分str1='K=2;T=0.1;N=5;numpd=[K*TK];denpd=[T/N1];';
str2='t=0:0.1:10;';str3='[y,t,x]=step(numpd,denpd,t);';set(handles.strCode,'String',char(str1,str2,str3));set(handles.uipanel,'Title','比例微分環(huán)節(jié)');case4,%比例積分
str1='K=4;T=0.2;numpi=[K*TK];denpi=[T0];';str2='t=0:0.1:10;';str3='[y,t,x]=step(numpi,denpi,t);';set(handles.strCode,'String',char(str1,str2,str3));set(handles.uip
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西北工業(yè)大學《工程訓練A(一)》2023-2024學年第二學期期末試卷
- 蘇州科技大學《食品質量與安全基礎實驗》2023-2024學年第二學期期末試卷
- 淮北職業(yè)技術學院《三字一話》2023-2024學年第一學期期末試卷
- 德州職業(yè)技術學院《數(shù)字品牌》2023-2024學年第一學期期末試卷
- 重慶城市科技學院《體育保健》2023-2024學年第一學期期末試卷
- 隴東學院《數(shù)據分析思維與方法》2023-2024學年第二學期期末試卷
- 珠海藝術職業(yè)學院《足球理論與實踐Ⅱ》2023-2024學年第一學期期末試卷
- 課題成果發(fā)布
- 河南農業(yè)職業(yè)學院《藥品生產質量管理工程理論與實踐1》2023-2024學年第一學期期末試卷
- 實驗室儀器設備管理
- 油氣藏產能預測模型-深度研究
- 2025年上海煙草集團上海新型煙草制品研究院限公司招聘8人高頻重點提升(共500題)附帶答案詳解
- 2025年中郵證券有限責任公司招聘筆試參考題庫含答案解析
- DB11-T 1754-2024 老年人能力綜合評估規(guī)范
- 2025年中考語文名著復習計劃
- 《鐵路軌道維護》課件-線路標志標識刷新作業(yè)
- 《鐵路軌道維護》課件-更換接頭夾板作業(yè)
- 成人慢性腎臟病食養(yǎng)指南(2024年版)
- 新概念英語第一冊Lesson67-(共69張課件)
- 羊傳染性膿皰病
- 醫(yī)學實驗室與臨床交流與溝通的方式和意義
評論
0/150
提交評論