《過程控制工程及仿真--基于MATLAB Simulink》的課件 第3章 Simulink高級仿真技術(shù)_第1頁
《過程控制工程及仿真--基于MATLAB Simulink》的課件 第3章 Simulink高級仿真技術(shù)_第2頁
《過程控制工程及仿真--基于MATLAB Simulink》的課件 第3章 Simulink高級仿真技術(shù)_第3頁
《過程控制工程及仿真--基于MATLAB Simulink》的課件 第3章 Simulink高級仿真技術(shù)_第4頁
《過程控制工程及仿真--基于MATLAB Simulink》的課件 第3章 Simulink高級仿真技術(shù)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、過程控制工程及仿真基于MATLAB/Simulink電子工業(yè)出版社 出版 2009.43.1 Simulink子系統(tǒng)及其封裝3.2 S函數(shù)設(shè)計與應(yīng)用3.3 使用Simulink仿真命令3.4 Simulink仿真建模的要求3.5 Simulink控制系統(tǒng)仿真實例3.6 本章小結(jié)習(xí)題與思考第 3章 Simulink高級仿真技術(shù) 內(nèi)容提要前面講述了使用Simulink中現(xiàn)有的模塊進行仿真,然而隨著模型越來越復(fù)雜,用這些基本操作創(chuàng)建的Simulink模變得越來越龐大而難以讀懂;而且,在實際中,可能有些需要用到的模塊在Simulink中沒有,因此需要掌握一些高級仿真技術(shù),對Simulink的模塊進行擴

2、展,以用于高級仿真應(yīng)用。3.1 Simulink子系統(tǒng)及其封裝3.1.1 創(chuàng)建子系統(tǒng)子系統(tǒng)的創(chuàng)建有以下兩種方法:1通過Subsystem模塊建立子系統(tǒng)即采用Signal & Systems 模塊庫中的Subsystem功能模塊,利用其編輯區(qū)設(shè)計組合新的功能模塊?;静僮鞑襟E為:(1)打開Simulink模塊庫瀏覽器,新建一個仿真模型。(2)打開Simulink模塊庫中的Ports & Subsystems模塊庫,將Subsystem模塊添加到模型編輯窗口中。(3)雙擊Subsystem模塊打開一個空白的Subsystem窗口,將要組合的模塊添加到該窗口中,另外還要根據(jù)需要添加輸入模塊和輸出模塊

3、,表示子系統(tǒng)的輸入端口和輸出端口。這樣,一個子系統(tǒng)就建好了。2通過已有的模塊建立子系統(tǒng)即將現(xiàn)有的多個功能模塊組合起來,形成新的功能模塊?;静僮鞑襟E為:(1)選擇要建立子系統(tǒng)的模塊,不包括輸入端口和輸出端口。(2)選擇模型編輯窗口中的【Edit】【Create Subsystem】命令,這樣,子系統(tǒng)就建好了。在這種情況下,系統(tǒng)會自動把輸入模塊和輸出模塊添加到子系統(tǒng)中,并把原來的模塊變?yōu)樽酉到y(tǒng)的圖標(biāo)。3.1.2 封裝子系統(tǒng)所謂子系統(tǒng)的封裝(Masking),就是為子系統(tǒng)定制對話框和圖標(biāo),使子系統(tǒng)本身有一個獨立的操作界面,把子系統(tǒng)中的各模塊的參數(shù)對話框合成一個參數(shù)設(shè)置對話框,在使用時不必打開每個模

4、塊進行參數(shù)設(shè)置,這樣使子系統(tǒng)的使用更加方便。子系統(tǒng)封裝的基本步驟為:(1)創(chuàng)建一個子系統(tǒng)。(2)選中子系統(tǒng),選擇模型窗口菜單中的【Edit】【Mask subsystem】選項生成封裝模塊。(3)使用封裝編輯器(Mask Editor)進行設(shè)置。Mask Editor對話框的選項卡 Mask Editor對話框中共包括4個選項卡:Icon、Parameters、Initialization和Documentation。子系統(tǒng)的封裝主要就是對這4頁參數(shù)進行設(shè)置。3.1.4 子系統(tǒng)實例PID模塊為例,講述子系統(tǒng)的創(chuàng)建及封裝。基本步驟如下 : 在本例中,需要正弦信號、余弦函數(shù)、積分模塊、觀測結(jié)果的模

5、塊,分別將Simulink Library Browser中的以下模塊依次拖到untitled窗口中; 將對應(yīng)的模塊相連,并將運算結(jié)果相加連接。 創(chuàng)建子系統(tǒng)。選定模型,單擊Simulink的Library窗口中的【Edit】【Creat Subsystem】,便生產(chǎn)了子系統(tǒng),為了更加明了,單擊模型中的“Subsystem”,將其改為“PID”。 進行系統(tǒng)封裝。選定如圖3.5的PID子系統(tǒng)部分,選擇Simulink的Library窗口中的【Edit】【Mask Subsystem】命令進行子系統(tǒng)的封裝,在彈出的對話框中可以進行一些封裝的設(shè)置。3.2 S函數(shù)設(shè)計與應(yīng)用Simulink提供了一個功能

6、強大的對模塊庫進行擴展的新工具S-Function,它依然是基于Simulink原來提供的內(nèi)置模塊,通過對那些經(jīng)常使用的模塊進行組合并封裝而構(gòu)建出可重復(fù)使用的新模塊。S-Function是系統(tǒng)函數(shù)(System Function)的簡稱,也叫做S函數(shù),是一個動態(tài)系統(tǒng)的計算機語言描述。在MATLAB中,用戶可以選擇用M文件編寫,也可以用C或mex文件編寫。S函數(shù)提供了擴展Simulink模塊庫的有力工具,它采用一種特定的調(diào)用語法,實現(xiàn)函數(shù)和Simulink解法器之間的交互。S函數(shù)最廣泛的用途是定制用戶自己的Simulink模塊。它的形式十分通用,能夠支持連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)。3.2.1

7、S函數(shù)設(shè)計模板1M文件格式的S函數(shù)模板及結(jié)構(gòu)MATLAB提供了一個模板文件,方便了S函數(shù)的編寫,該模板文件位于MATLAB根目錄toolbox/Simulink/blocks下:2模板的使用概括說來,建立S函數(shù)可以分成兩個分離的任務(wù):初始化模塊特性,包括輸入/輸出信號的寬度、離散連續(xù)狀態(tài)的初始條件和采樣時間。將算法放到合適的S函數(shù)子函數(shù)中去。3S函數(shù)模板文件的輸入輸出參數(shù)S函數(shù)默認(rèn)的4個輸入?yún)?shù)為t、x、u和flag,它們的次序不能變動;S函數(shù)默認(rèn)的4個輸出參數(shù)為sys、x0、str和ts,它們的次序不能變動;使用模板編寫S函數(shù),用戶只需把S函數(shù)名換成期望的函數(shù)名稱,如果需要額外的輸入?yún)⒘?,還

8、需在輸入?yún)?shù)列表的后面增加這些參數(shù),因為前面的4個參數(shù)是Simulink調(diào)用S函數(shù)時自動傳入的。Simulink在每個仿真階段都會對S函數(shù)進行調(diào)用,在調(diào)用時,Simulink會根據(jù)所處的仿真階段為flag傳入不同的值,而且還會為sys這個返回參數(shù)指定不同的角色,即盡管是相同的sys變量,但在不同的仿真階段其意義卻不相同,這種變化由Simulink自動完成。3.2.2 S函數(shù)設(shè)計舉例基本步驟如下: 步驟1:獲取狀態(tài)空間表達(dá)式。步驟2:建立S函數(shù)的M文件。具體的修改過程如下:(1)重新命名函數(shù)名。(2)修改“初始化”子函數(shù)部分的代碼。(3)修改“計算模塊導(dǎo)數(shù)”子函數(shù)部分的代碼。(4)修改“更新模塊

9、離散狀態(tài)”子函數(shù)部分的代碼。(5)修改“計算模塊輸出”子函數(shù)部分代碼。(6)修改“計算下一個采樣時間點”子函數(shù)部分的代碼。(7)修改“仿真結(jié)束”子函數(shù)部分的代碼。步驟3:將sfunction_example創(chuàng)建成S函數(shù)模塊。步驟4:給狀態(tài)變量賦初始值。步驟5:參數(shù)設(shè)定之后,啟動Simulink仿真。3.3 使用Simulink仿真命令從命令窗口運行仿真的函數(shù)有4個,即sim、simset、simget和set_param。1sim函數(shù)其調(diào)用格式為:t, x, y =sim(modname,timespan,options,data);2simset函數(shù)simset 函數(shù)用來為sim函數(shù)建立或編

10、輯仿真參數(shù)或規(guī)定算法,并把設(shè)置結(jié)果保存在一個結(jié)構(gòu)變量中。3simget函數(shù)simget函數(shù)用來獲得模型的參數(shù)設(shè)置值。如果參數(shù)值是用一個變量名定義的,simget返回的也是該變量的值而不是變量名。如果該變量在工作空間中不存在(即變量未被賦值),則Simulink給出一個出錯信息。4set_param函數(shù)set_param函數(shù)的功能很多,這里只介紹如何用set_param函數(shù)設(shè)置Simulink仿真參數(shù)以及如何開始、暫停、終止仿真進程或者更新顯示一個仿真模型。(1)設(shè)置仿真參數(shù)調(diào)用格式為:set_param(modname,property,value,)(2)控制仿真進程調(diào)用格式為:set_pa

11、ram(modname,SimulationCommand,cmd)3.4 Simulink仿真建模的要求通常Simulink建模有以下基本要求:1子系統(tǒng)劃分要清晰2模型要有針對性3模型精度要恰當(dāng)4建模要從總體角度出發(fā)3.5 Simulink控制系統(tǒng)仿真實例Simulink求其二級系統(tǒng)的單位階躍響應(yīng) ?;厩蠼獠襟E如下: 1、利用Simulink的Library窗口中的【File】【New】菜單,打開一個新的模型窗口。 2、分別從信號源庫(Sourse)、輸出方式庫(Sink)、數(shù)學(xué)運算庫(Math)、連續(xù)系統(tǒng)庫(Continuous)中,用鼠標(biāo)把階躍信號發(fā)生器(Step)、示波器(Scope

12、)、傳遞函數(shù)(Transfer Fcn)、相加器(Sum)四個標(biāo)準(zhǔn)功能模塊選中,并將其拖至模型窗口。3、 按要求先將前向通道連接好,然后把相加器(Sum)的另一個端口與傳遞函數(shù)和示波器間的線段相連,形成閉環(huán)反饋。4、 雙擊傳遞函數(shù),打開其屬性設(shè)置對話框,并將其中的“numerator”設(shè)置為“10”,“Denominator”設(shè)置為“1 3 0”,同理,將相加器設(shè)置為“+-”。 5、繪制成功后,如圖3.13所示,并命名后保存。 6、對模型進行仿真。運行后,雙擊Scope,得到系統(tǒng)的階躍響應(yīng)曲線??刂葡到y(tǒng)仿真實例(續(xù))【例3-4】,基本求解步驟如下:1、利用Simulink的Library窗口中的【File】【New】菜單,打開一個新的模型窗口。2、分別將Simulink Library Browser中的以下模塊依次拖到untitled窗口中,連接后便得到整個控制系統(tǒng)的模型。3、選擇【Simulation】菜單下的【Start】命令,開始仿真。4、在MATLAB工作空間中,看到了變量y的數(shù)據(jù)。3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論