《信息與通信系統(tǒng)仿真》課件7 Simulink 基礎_第1頁
《信息與通信系統(tǒng)仿真》課件7 Simulink 基礎_第2頁
《信息與通信系統(tǒng)仿真》課件7 Simulink 基礎_第3頁
《信息與通信系統(tǒng)仿真》課件7 Simulink 基礎_第4頁
《信息與通信系統(tǒng)仿真》課件7 Simulink 基礎_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、別志松 Simulink 基礎2主要內(nèi)容Simulink功能概述簡單Simulink模型的建立Simulink工作原理子系統(tǒng)Simulink模型調(diào)試方法S-函數(shù)3SIMULINK概述MATLAB作為科學計算工具,已經(jīng)幾乎完美。但作為仿真工具,還有不足。SIMULINK是MATLAB軟件的擴展,它是實現(xiàn)動態(tài)系統(tǒng)建模和仿真的一個軟件包。提供了大量的內(nèi)置模塊能夠完成大部分系統(tǒng)的動態(tài)仿真,用戶只需要知道模塊的輸入輸出、參數(shù)配置等少數(shù)外部接口即可,不必關心內(nèi)部實現(xiàn)方式。這些模塊都是圖形化的。整個Simulink的建模過程都是在圖形用戶界面上完成的。4SIMULINK概述使得用戶可以把更多的精力投入到系統(tǒng)

2、模型的構(gòu)建,而非語言的編程上。微分方程和差分方程的求解等復雜的數(shù)值計算問題都由Simulink本身來實現(xiàn),用戶只需要根據(jù)問題類型及精度要求對求解器類型進行配置即可。通過對這些基本模塊的調(diào)用,再將它們連接起來就可以構(gòu)成所需要的系統(tǒng)模型,進而進行仿真與分析。采用類似于繪圖的方法建立系統(tǒng)框圖模型。(建模過程與Visio非常類似)5SIMULINK概述SIMULINK與MATLAB是相對獨立的,但是兩者之間可以相互傳遞數(shù)據(jù)。交互性動態(tài)仿真:用戶可以在仿真的同時修改系統(tǒng)參數(shù),仿真輸出結(jié)果隨著參數(shù)的改變而改變。層次化建模為了使模型結(jié)構(gòu)更加清楚,Simulink支持層次化建模的方法。支持自頂向下和自底向上兩

3、種層次化建模方法。6主要內(nèi)容Simulink功能概述簡單Simulink模型的建立Simulink工作原理子系統(tǒng)Simulink模型調(diào)試方法S-函數(shù)舉例7打開Simulink命令窗口輸入Simulink或new or open a model(.mdl file),然后在Simulink中啟動library browser或點擊Matlab工具欄的Simulink按鈕。Simulink主要工作環(huán)境Library BrowserModel Editor8繪圖Simulink繪圖操作找到需要的模塊拖動到相應位置連線連線操作連接兩個模塊:拖動或Ctrl+左鍵連線分支:按著ctrl鍵從線上某一點開始拖

4、動刪除將一個模塊從連線處斷開:按著Shift鍵拖動模塊9標注雙擊線、空白分別可添加對線和模型的文本描述。字體等可調(diào)整有回調(diào)函數(shù)。10修改模塊參數(shù)通常雙擊模塊可以打開參數(shù)修改界面。不同的模塊可修改參數(shù)不同多參閱幫助,獲得關于模塊的使用說明和參數(shù)配置方法。11選擇求解器在Simultion菜單中選擇Configuration Parameters,所打開的窗口中第一個選項就是Solver。在這里可以設置起止時間、步長、求解器類型等各種用于控制仿真的參數(shù)。12執(zhí)行仿真一般在模型中應包含顯示、分析數(shù)據(jù)或?qū)?shù)據(jù)輸出到Matlab工作區(qū)等模塊。執(zhí)行仿真后則能在相應部分觀察輸出結(jié)果并分析正確性。1314Si

5、mulink建模一般步驟16主要內(nèi)容Simulink功能概述簡單Simulink模型的建立與運行Simulink工作原理Simulink模型的建立、運行與調(diào)試S-函數(shù)的編寫Simulink的本質(zhì)特點Simulink是一個動態(tài)仿真工具,它能夠適用于連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)仿真。Simulink中模型由模塊和線構(gòu)成,模塊隨著時間的變化不斷改變它們的狀態(tài)和輸出,所產(chǎn)生的數(shù)據(jù)(信號)通過線進行傳遞。Simulink的模塊和線從形式上來看非常類似于Microsoft Visio等軟件繪制的框圖或數(shù)據(jù)流圖,但是它不同于一般的框圖或數(shù)據(jù)流圖。其本質(zhì)特點在于其內(nèi)部包含了各模塊屬性、輸入、狀態(tài)和輸出等要素隨

6、時間變化的關系,這種特點體現(xiàn)了Simulink的動態(tài)性。Simulink模塊的含義Simulink 框圖定義了信號和狀態(tài)變量之間的關系,這種關系與時間有關。Simulink仿真就是對這種“關系”在指定的時間段內(nèi)進行求解,該過程是通過對多個時間點上分別進行求解來實現(xiàn)的。對這些關系的每次求值稱為一個“時間步”.信號和狀態(tài)變量之間的關系由一組方程定義,這一組方程由模塊表示。每個模塊包含一組方程,給出輸出信號、輸入信號和狀態(tài)變量之間的關系18Simulink中的時間時間是Simulink模型中隱含著的、固定存在的一個量。時間從設定的初始時間開始,按照時間步變化,直到設定的結(jié)束時間為止。各個模塊在各個時

7、間步對它所代表的方程進行求解.這些方程可能是隨時間發(fā)生變化的,體現(xiàn)了模型的動態(tài)性。19Simulink中的狀態(tài)大部分模塊需要將當前時間步的一些變量保存下來,供下一時刻計算輸出使用。這些變量就是狀態(tài)。有些情況下狀態(tài)是隱式定義的。在仿真的編譯階段Simulink會在模型的各個模塊中找到所有狀態(tài)量。狀態(tài)分為兩種:連續(xù)狀態(tài)離散狀態(tài)20連續(xù)狀態(tài)連續(xù)系統(tǒng)的多種模塊都包含有連續(xù)狀態(tài)的計算問題。連續(xù)狀態(tài)的計算需要知道狀態(tài)的變化率,即導數(shù)。連續(xù)狀態(tài)的計算問題用積分來實現(xiàn)。本質(zhì)上是常微分方程(ODE)的求解問題,通過數(shù)值積分來實現(xiàn)。數(shù)值積分的執(zhí)行過程不是在模塊內(nèi)部完成的,屬于Simulink仿真引擎范疇。21連續(xù)

8、狀態(tài)的求解數(shù)值積分的精度取決于:算法步長Simulink提供了一系列數(shù)值積分算法供使用者根據(jù)對速度、精度的需求以及系統(tǒng)特征等因素選擇適當?shù)臄?shù)值積分算法。Solver選項用于算法選擇和步長設置。22Solver類型變步長Solver步長可以根據(jù)狀態(tài)的變化情況以及所要求的精度要求進行調(diào)整,為了降低仿真復雜度,通常要求在滿足精度要求的條件下使得步長盡可能大。固定步長Solver用戶可設定步長,在仿真過程中步長不發(fā)生變化。23離散狀態(tài)離散狀態(tài)值的計算需要知道當前時間步狀態(tài)值與前一時間步狀態(tài)值和當前輸入之間的關系:狀態(tài)更新函數(shù)。Simulink自帶的離散模塊和Simulink的通信工具箱基本上都屬于這一

9、類。離散狀態(tài)的更新也有步長方面的要求,離散狀態(tài)步長的管理由離散Solver來實現(xiàn)。也分為變步長和定步長兩類。定步長確定了一個時間步之后,每一個時間步不管狀態(tài)是否發(fā)生變化都會執(zhí)行一次仿真步變步長只有離散狀態(tài)發(fā)生變化時是才會觸發(fā)仿真步24混和狀態(tài)如果模型中既存在連續(xù)狀態(tài)又存在不連續(xù)狀態(tài),Simulink的變步長控制按如下準則進行時間步管理:離散求解器根據(jù)離散狀態(tài)的要求給出一個關于時間步的限制。連續(xù)求解器把這個條件作為一個約束條件,再根據(jù)連續(xù)狀態(tài)可變步長的準則計算步長。Solver選擇時不能選擇discrete Solver。25Simulink仿真引擎工作過程26Simulink仿真的不同階段模型

10、編譯階段Simulink引擎調(diào)用模型編譯器,將模型編譯成執(zhí)行的形式。編譯器主要完成以下任務:對模塊參數(shù)中的表達式求值;確定信號屬性,如名字、數(shù)據(jù)類型等。傳遞信號屬性以確定未定義信號的屬性;優(yōu)化模塊;展平模塊的繼承關系;確定模塊運行的優(yōu)先級;確定模塊的采樣時間;27Simulink仿真的不同階段連接階段Simulink引擎按執(zhí)行的次序排列方法(函數(shù))運行列表,同時定位和初始化存儲每個模塊運行信息的存儲器;28Simulink仿真的不同階段仿真環(huán)階段分為兩個子階段:仿真環(huán)初始化階段和仿真環(huán)迭代階段。仿真環(huán)初始化階段只運行一次,用于初始化系統(tǒng)的狀態(tài)和輸出。 仿真迭代環(huán)階段,Simulink引擎在設定

11、的仿真開始時間到結(jié)束時間內(nèi),在每一個時間步按順序計算系統(tǒng)的狀態(tài)和輸出,并更新模型使它能反映系統(tǒng)最新的計算值。29仿真環(huán)迭代階段1、計算模型輸出面向?qū)ο蟮母拍钣嬎隳P洼敵龇椒?計算系統(tǒng)輸出方法-計算模塊輸出方法。其中計算模塊輸出方法中各個模塊計算的先后順序在連接階段確定。2、計算模型狀態(tài)解法器-計算模型狀態(tài)方法-計算系統(tǒng)狀態(tài)方法-計算模塊狀態(tài)方法狀態(tài)更新順序在連接階段確定。30仿真環(huán)迭代階段3、(可選)對連續(xù)狀態(tài)模塊檢查其不連續(xù)性。4、計算下一個仿真步(時間步)的時間。重復這四個步驟直到達到設定的仿真終止時間。3132主要內(nèi)容Simulink功能概述簡單Simulink模型的建立Simulink

12、工作原理子系統(tǒng)Simulink模型調(diào)試方法S-函數(shù)子系統(tǒng)當模型的規(guī)模較大或較復雜時,用戶可以將多個模塊組合成一個新的模塊,這樣的組合模塊稱為子系統(tǒng)。子系統(tǒng)可以把功能上密切相關的模塊集中到一起進行管理,能夠減少系統(tǒng)中模塊的數(shù)目,便于系統(tǒng)建模和調(diào)試,體現(xiàn)了層次化建模的特點。子系統(tǒng)創(chuàng)建可以通過兩種方法來創(chuàng)建子系統(tǒng)。第一種方法可以看做是自頂向下的方法,即在上一級模型中增加一個子系統(tǒng)模塊,然后打開這個模塊添加要包含的模塊到子系統(tǒng)窗口。第二種方法是自底向上的形式,先添加組成子系統(tǒng)的模塊,然后將這些模塊組成一個子系統(tǒng)。也可以將已經(jīng)建好的模型中的一部分模塊組成子系統(tǒng)子系統(tǒng)的條件執(zhí)行一個子系統(tǒng)是否執(zhí)行可以由輸入

13、信號控制,用于控制子系統(tǒng)執(zhí)行的信號稱為控制信號,而這種受控制信號控制的子系統(tǒng)稱為條件執(zhí)行子系統(tǒng)。在復雜模型中,有的模塊執(zhí)行依賴于其他模塊,這種情況下,條件執(zhí)行子系統(tǒng)是非常有用的。根據(jù)控制信號對條件執(zhí)行子系統(tǒng)的控制方式不同,可以將條件執(zhí)行子系統(tǒng)劃分為4種基本類型:使能子系統(tǒng)、觸發(fā)子系統(tǒng)、觸發(fā)使能子系統(tǒng)和控制流子系統(tǒng)。條件執(zhí)行子系統(tǒng)的類型使能子系統(tǒng)包含一個使能控制信號,當這個信號從負值經(jīng)過經(jīng)過零點變?yōu)檎禃r,子系統(tǒng)開始執(zhí)行,直到控制信號重新回到零或負值。觸發(fā)子系統(tǒng)包含一個觸發(fā)信號,當觸發(fā)信號的符號發(fā)生改變,即出現(xiàn)過零現(xiàn)象時開始執(zhí)行,按不同的執(zhí)行條件還可以分為上升沿觸發(fā)、下降沿觸發(fā)和雙沿觸發(fā)子系統(tǒng)。

14、某些條件執(zhí)行子系統(tǒng)的執(zhí)行條件比較復雜,其控制信號可能不止一個,同時具有觸發(fā)控制信號和使能控制信號,這樣的條件執(zhí)行子系統(tǒng)稱為觸發(fā)使能子系統(tǒng),只有觸發(fā)條件和使能條件同時滿足子系統(tǒng)才執(zhí)行。控制流子系統(tǒng)類似于編程語言中的for、while、if和switch語句等,其中for循環(huán)子系統(tǒng)和while循環(huán)子系統(tǒng)能控制在一個仿真步長內(nèi)循環(huán)執(zhí)行子系統(tǒng);表達式條件執(zhí)行子系統(tǒng)和選擇執(zhí)行子系統(tǒng)用于根據(jù)輸入的不同取值執(zhí)行不同的分支,這兩種分支子系統(tǒng)需要與switchcase模塊和if模塊配合使用。封裝(mask)子系統(tǒng) 所謂子系統(tǒng)封裝,就是為子系統(tǒng)自定義對話框和圖標,隱藏了子系統(tǒng)的內(nèi)容,使子系統(tǒng)看起來像一個普通的模塊

15、一樣。有一個獨立的操作界面,在使用時不必打開子系統(tǒng)中各模塊的對話框進行參數(shù)設置。子系統(tǒng)封裝還可以隱藏各個模塊的內(nèi)容以防無意識的修改,還能夠把常用的子系統(tǒng)加入到自定義的模塊庫實現(xiàn)設計重用。38主要內(nèi)容Simulink功能概述簡單Simulink模型的建立Simulink工作原理子系統(tǒng)Simulink模型調(diào)試方法S-函數(shù)Simulink 調(diào)試器功能Simulink調(diào)試器是分步驟檢測仿真結(jié)果,定位并診斷Simulink模型所包含的問題的交互式工具。Simulink調(diào)試器允許用戶設置斷點、控制仿真的執(zhí)行以及顯示模型的信息。Simulink調(diào)試器有一個圖形用戶界面和一個命令行用戶界面。圖形用戶界面可以使

16、用大部分常用的調(diào)試器的功能命令行用戶界面允許你使用所有調(diào)試器的功能。圖形用戶界面可以清晰看出形式觀察模型的執(zhí)行狀態(tài),并使用顏色標識的,模型仿真的同時,可以顯示模塊狀態(tài)的信息,模塊的輸入輸出信息以及模塊執(zhí)行的動態(tài)過程等其他信息。Simulink Debugger選擇模型窗口中Tools-Simulink Debugger可以打開Simulink調(diào)試器的圖形用戶界面。Simulink Debugger在這個界面下可以實現(xiàn)斷點設置、逐方法調(diào)試等各種調(diào)試方法,在每一步執(zhí)行結(jié)束都可以在右側(cè)的Outputs和Status選項卡中觀察各模塊輸出和狀態(tài)量的變化情況。調(diào)試器支持動畫調(diào)試模式,像放動畫一樣一個方法

17、接著一個方法連續(xù)進行仿真。對初學者而言,Simulink不僅是必不可少的調(diào)試調(diào)試工具,也是大家更好的理解Simulink仿真引擎的有效手段之一。仿真結(jié)果的可視化工具Simulink提供多個仿真結(jié)果可視化工具。42Simulink Debugger提供逐方法執(zhí)行、斷點設置等功能??梢詫敵觥顟B(tài)、方法執(zhí)行順序進行跟蹤。4344主要內(nèi)容Simulink功能概述簡單Simulink模型的建立Simulink工作原理子系統(tǒng)Simulink模型調(diào)試方法S-函數(shù)S函數(shù)子系統(tǒng)可以看做是用戶在Simulink現(xiàn)有模塊基礎上組合成自己所需模塊的一個過程,但是Simulink的現(xiàn)有模塊不可能實現(xiàn)用戶所需要的所有仿

18、真功能,這時用戶就需要根據(jù)Simulink的工作原理,從最底層編寫自定義模塊對Simulink的功能進行擴展。Simulink提供的進行這類二次開發(fā)的手段就是S函數(shù)。S函數(shù)最廣泛的用途是定制用戶自己的Simulink模塊。它的形式十分通用,能夠支持連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)。45S函數(shù)S函數(shù)是系統(tǒng)函數(shù)(System Function)的簡稱,是指采用非圖形化的方式(即計算機語言,區(qū)別于Simulink的系統(tǒng)模塊)描述的一個功能塊。用戶可以采用MATLAB,C,C+,F(xiàn)ORTRAN或Ada等語言編寫S-函數(shù)。S-函數(shù)由一種特定的語法構(gòu)成,用來描述并實現(xiàn)連續(xù)系統(tǒng)、離散系統(tǒng)以及復合系統(tǒng)等動態(tài)系統(tǒng),

19、S-函數(shù)提供的是關于模塊內(nèi)部模型的程序表示,如對連續(xù)系統(tǒng),S-函數(shù)中需要表示出該模塊常微分方程形式的狀態(tài)方程和相對應的輸出方程,對離散系統(tǒng)則給出差分狀態(tài)方程和相應的輸出方程。S-函數(shù)與仿真引擎的交互S-函數(shù)能夠接受來自Simulink求解器的相關信息,并對求解器發(fā)出的命令做出適當?shù)捻憫?,這種交互作用非常類似于Simulink系統(tǒng)模塊與求解器的交互作用。S-函數(shù)作為與其他語言相結(jié)合的接口,可以使用這些語言所提供的強大能力。例如,MATLAB語言編寫的S-函數(shù)可以充分利用MATLAB所提供的豐富資源,方便地調(diào)用各種工具箱函數(shù)和圖形函數(shù);使用C語言編寫的S-函數(shù)可以實現(xiàn)對操作系統(tǒng)的訪問,如實現(xiàn)與其它進程的通信和同步等。S-function如何工作描述一個Simulink模塊需要三個基本元素,即輸入向量u,狀態(tài)向量x和輸出向量y。S函數(shù)的計算步驟計算連續(xù)狀態(tài)微分計算輸出更新離散狀態(tài)計算連續(xù)狀態(tài)積分另外還需要加上初始化和結(jié)束任務兩個階段4849M文件S函數(shù)m文件形式的S函數(shù)又分為兩種類型,分別稱為level-1 m文件S函數(shù)和level-2m文件S函數(shù),兩者之間有密切的對應關系,而level-1 m文件S函數(shù)的概念更加清晰,因此我們重點介紹level-1 m文件S函數(shù)的編寫方法。在MATLAB安裝目錄的/toolbox/simulink/blocks/目錄下可以找

溫馨提示

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

評論

0/150

提交評論