




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、GUI指導教程系列9在GUI中調用Simulink模型- MATLAB技術論壇.2021-08-14 | 閱:1 轉:51| 分享修改MATLAB技術論壇標題:GUI指導教程系列在GUI中調用Simulink模型作者:dynamic時間:2021-3-25 22:40在GUI中調用Simulink模型本節教程主要向大家演示使用三種不同的方法,在GUIDE中嵌入Simulink模塊關 于原理 大家可 以參考:/mathworks/access/ . g_guisf6-8865.html在Simulink中能夠直觀快速的搭建系統模型,如果再聯合視化編程,可以說是錦上添花!將Simulink融入到G
2、UIDE中可以方便模型的 端用戶,很容易直接可視化的操控模型參數和顯示仿真結果,而此時并不需要進 入Simulink環境。構建Simulink模型該局部我們將快速的構建一個Simulink模型方便在后面的GUIDE中使用。本次 我們就使用一個簡單的二階 質量-彈簧-阻尼系統作為例如吧在使用該教程時,我們假定您已經具備Simulink相關建模根底和了解 質量-彈 阻尼系統的理論。因此在這里我就不深入介紹Simulink模型的建立和 質量-弓-阻尼系統的數學推導。如果確實需要,建議您參考標題:GUI指導教程系歹0GUIDE的面向對象可:/ 先下載論壇為您制作好的Simulink和GUI模型simu
3、link-gui.zip 13.04 KB,下載次數:338,包含simulink_gui.fig、simulink_gui.m、simulateButton.m和mass_spring.mdl四個文件,將其解壓到MATLAB工作目錄。2、在Simulink中翻開模型,框圖如下所示3、 請注意增益(Gain)模塊的增益使用的是變量1/m、c/m和k/m, 而不是數值。 因為Simulink默認使用根本狀態空間(Base WorkSpace)的數據,因此在仿真之前 必須先在狀態空間定義參數m、c和k,否那么將出錯。 當然我們可以 使用set_param()函數直接設置參數,這個將會在后面講解。4
4、、 由丁函數有自己的狀態空間(不是Base Workspace),因此在函數中使用sim()函數進行模型仿真,即使你在函數中定義了模型的必要參數,但是這些參數只存 在丁函數狀態空間中,模型在仿真是沒法獲取。比方下面的代碼將會導致錯誤function runSimulinkModel(m,c,k)2%即使在函數中有模型的參數輸入或定義,但是Simulink默認只使用基 本狀態空間的數據3sim(mass_spring);復制代碼5、 由丁函數狀態空間和根本狀態空間的變量和數據不兼容,這就增加了在GUIDE中調用Simulink模型的難度。在接下來的教程中,我們將討論使用三種方法來解 決這個問題!
5、GUIDE調用Simulink方法一:主要使用set_param函數設置仿真參數方法二:Simulink中提供的simset函數,可以讓用戶自定Simulink模型的運行空間默認 是Base Workspace,我們只要將Simulink設置為從當前工作空間運行就Ok了。 關丁simset的更多用法,感興趣的網友可以自己參考Matlab幫助!1、在GUIDE中翻開simulink_gui.fig文件不會使用GUIDE ,那先看下:/matlabsky/thread-5217-1-1.html , GUI布局如下所示文件定位到Simulate!按鈕的回調函數,在后面添加如下代碼2、翻開simul
6、ink_gui.msimulate_pushbutton_Callbackaxes(handles.axes1) %將axes1設置為當前坐標系,便丁繪制仿真結果5m=str2num(get(handles.mass_editText,String); %獲取質量6c=str2num(get(handles.damping_editText,String); %獲取阻尼7k=str2num(get(handles.spring_editText,String); %獲取勁度系數89%配置Simulink仿真選項,使其使用當前工作空間10 %設置Simulink從當前工作空間運行I l opti
7、ons = simset(SrcWorkspace,current);1213%使用sim()函數對模型進行仿真14%第一參數是模型名稱15%第二個參數是向量,指定仿真開始和結束時間16%如果設置為口,那么使用在Simulink中設置的始末時間17%第三個參數設置Simulink仿真選項IS sim(mass_spring,options);1920%繪制圖形模型中有一個OUT模塊,使用它我們可以設置輸出變量為tout和yout21%然后就可以直接調用Simulink的獲取仿真結果tout和yout進行繪圖了 plot(tout,yout)匚 3xlabel(Time): ylabel(Dis
8、placement) Title(2nd Order Mass Spring System):grid on復制代碼3、保存修改,再運行GUI。在文本框中輸入 質量-彈簧-阻尼系統的三個參數(注 意不要輸入字母、符號或負數),然后點擊Simulate !按鈕,看看我們的勞動成 果吧!方法三:1、同樣在GUIDE中翻開未經有修改的simulink_gui.fig文件2、雙擊Simulate !按鈕翻開屆性查看器,將Callback屆性 修改為simulateButton。以后每次點擊Simulate !按鈕時,那么GUI只響應simlateButton中定義的操作,而不是simulate_pus
9、hbutton_CallbackPorsmctliri;-PJVECL4-3rPJVECL4-3rE* BK*.、DM 弟g 到注意:simulateButton是另外編寫的一個M腳本文件,MATLAB中腳本文件(不 同丁函數文件)中的所有變量和數據共用根本狀態空間。3、其實simulateButton.m腳本的代碼如下2? %注意到simulateButton.m文件不是一個M函數(以function開頭的為M函數),而是M腳本!2S % Matlab腳本將在根本工作空間運行,它涉及到所有的變量和數據都保存 在根本工作空間!29 %而Simulink所有參數默認調用根本工作空間的數據,所以此
10、時我們就可以直接使用sim()函數進行模型仿真了!303】clear all3233%獲取當前GUI窗體的句柄3: h =gcf;35%獲取GUI的handles結構體,它包含了所有控件的信息3 handles = guidata(h);3738 %選擇當前坐標系,由丁后面的繪圖3“ axes(handles.axes1);4041%獲取文本框中的Simulink仿真參數42m=str2num(get(handles.mass_editText,String); %注意獲取的string是一個字符申,需要使用str2num將其轉換為數值43c=str2num(get(handles.dampi
11、ng_editText,String);44k=str2num(get(handles.spring_editText,String);4546%仿真系統47sim(mass_spring);4S49%繪制仿真結果圖形H plot(tout,yout)、一xlabel(Time)弋ylabel(Displacement)、3Tltle(2nd Order Mass Spring System)::.grid on復制代碼其實方法二的一種變形就是,跨空間計算Simulink模型所需要的參數,比方evalin(base,m=5),就表示在根本工作空間運行m=5這條命令。4、保存下對GUI的修改,驗
12、證下我們的成果吧!圖片附件:image001.gif (2021-3-25 22:42, 5.23 KB) /下載次數6:/matlabsky/forum.php?mod=attachment&aid=NDQ0NHwyYzg5 NTYyY3wxMzA0MDc3ODI0fDkwMDk5Fw laments - - - - LMassDwhping Costfof Cm時川MibulinkQIJ|I2nd OrderMRWESpring System1 5在Etc-Etc-l lrB_rB_rLrLs-s-_j_jx(t)圖片附件:image003.png (2021-3-25 22:42
13、, 12.78 KB) /下載次數9:/image28.360doc/DownloadImg/2021/04/2919/11332968_3圖片附件:image005.png (2021-3-25 22:42, 15.32 KB) /下載次數5:/image28.360doc/DownloadImg/2021/04/2919/11332968_4圖片附件:image007.png (2021-3-25 22:42, 11.16 KB) /下載次數4:/matlabsky/forum.php?mod=attachment&aid=NDQ0N3wzZDlkN zA3NHwxMzA0MDc3
14、ODI0fDkwMDk5圖片附件:image013.png (2021-3-25 22:42, 12.05 KB) /下載次數2:/image28.360doc/DownloadImg/2021/04/2919/11332968_5simulink_guiPeratnetersMass|20Damping Coeff.Spring Constant f,02nd Order Mass Spring System1 6_ ;!;附件:simulink-gui.zip (2021-3-25 22:44, 13.04 KB) /下載次數338:/matlabsky/forum.php?mod=attachment&aid=NDQ0OXw2ZDE0 NDQwNHwxMzA0MDc3ODI0fDkwMDk5圖片附件:image005.png (2021-3-25 23:09, 15.32 KB) /下載次數6:/image28.360doc/DownloadImg/2021/04/2919/11332968_6Simulate!J nl 2d寫E(DE(DE-dsE-dsQ Q圖片附件:image013.png (2021-3-25 23:09, 12.05 KB) /下載次數4:/image28.360doc/Downloa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國船用發動機支架行業市場發展趨勢與前景展望戰略研究報告
- 申請撤銷仲裁裁決申明書
- 2025-2030中國腰帶行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國脊柱加工同種異體骨行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國繡花床上用品行業市場發展分析及需求分析與投資研究報告
- 2025-2030中國紋身機行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國纖薄耐切割手套行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國糧食經銷行業市場深度發展趨勢與前景展望戰略研究報告
- 2025-2030中國空氣凈化器行業市場深度調研及發展潛力與投資研究報告
- 2025-2030中國移動醫療行業市場深度調研及競爭格局與投資研究報告
- 工程管理專業畢業論文——施工組織設計
- 最新國際貿易術語培訓
- 2021年高考真題--化學(江蘇卷)(附解析)
- 項目功能需求調研表通用精選文檔
- 基于節約里程法的大潤發超市濟南地區配送路徑優化研究
- 工廠個人簡歷登記表格
- JJG機動車檢測專用軸輪重儀檢定規程
- 用友U8數據字典
- 化工概論:典型化工工藝
- 國際酒店訂單樣本
- 快捷酒店安全現狀評價報告安全現狀評價
評論
0/150
提交評論