Simulink工具箱_第1頁
Simulink工具箱_第2頁
Simulink工具箱_第3頁
Simulink工具箱_第4頁
Simulink工具箱_第5頁
已閱讀5頁,還剩114頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、湖南大學電氣與信息工程學院湖南大學電氣與信息工程學院 第第7講講 7.1 Simulink簡介簡介7.2 模塊庫及簡單建模模塊庫及簡單建模 7.3 仿真運行及參數調整仿真運行及參數調整7.4 子系統子系統7.5 S函數函數1. Simulink簡介 Simulink 中的中的“Simu”一詞表示可用于計算機仿真,而一詞表示可用于計算機仿真,而“Link”一詞表示它能進行系統連接,即把一系列模塊連一詞表示它能進行系統連接,即把一系列模塊連接起來,構成復雜的系統模型。接起來,構成復雜的系統模型。 Simulink是一個用來對動態系統進行建模、仿真和分析是一個用來對動態系統進行建模、仿真和分析的軟件

2、包。它讓用戶把精力從編程轉向模型的構造的軟件包。它讓用戶把精力從編程轉向模型的構造.使用使用Simulink來建模、分析和仿真各種動態系統來建模、分析和仿真各種動態系統(包括包括連續系連續系統統、離散系統離散系統和和混合系統混合系統),將是一件非常輕松的事情。,將是一件非常輕松的事情。 利用利用Simulink進行系統的建模仿真,其最大的優點是易學、進行系統的建模仿真,其最大的優點是易學、易用,并能依托易用,并能依托MATLAB提供的豐富的仿真資源。提供的豐富的仿真資源。 近幾年來,在學術界和工業領域,Simulink已經成為動態系統建模和仿真領域中應用最為廣泛的軟件之一。Simulink可以

3、很方便地創建和維護一個完整地模塊,評估不同地算法和結構,并驗證系統的性能。由于Simulink是采用模塊組合方式來建模,從而可以使得用戶能夠快速、準確地創建動態系統的計算機仿真模型,特別是對復雜的不確定非線性系統,更為方便。 Simulink模型可以用來模擬線性和非線性、連續和離散或者兩者的混合系統,也就是說它可以用來模擬幾乎所有可能遇到動態系統。另外Simulink還提供一套圖形動畫的處理方法,使用戶可以方便的觀察到仿真的整個過程。 Simulink沒有單獨的語言,但是它提供了S函數規則。所謂的S函數可以是一個M函數文件、FORTRAN程序、C或C+語言程序等,通過特殊的語法規則使之能夠被S

4、imulink模型或模塊調用。S函數使Simulink更加充實、完備,具有更強的處理能力。 提供了仿真庫的擴充和定制機制提供了仿真庫的擴充和定制機制 Simulink的開放式結構允許用戶擴展仿真環境的開放式結構允許用戶擴展仿真環境的功能:采用的功能:采用MATLAB、FORTRAN和和C代碼代碼生成自定義模塊庫,并擁有自己的圖標和界面。生成自定義模塊庫,并擁有自己的圖標和界面。 與與MATLAB工具箱的集成工具箱的集成 由于由于Simulink可以直接利用可以直接利用MATLAB的諸多資的諸多資源與功能,因而用戶可以直接在源與功能,因而用戶可以直接在 Simulink下完下完成諸如數據分析、過

5、程自動化、優化參數等工成諸如數據分析、過程自動化、優化參數等工作。作。Simulink應用領域應用領域simulink在在matlab家族中的位置家族中的位置Toolboxes MATLAB compilerBlockset simulink RTWStateflowcoder Simulink的啟動主要有以下兩種方法:的啟動主要有以下兩種方法: 在在MATLAB的命令窗口中輸入的命令窗口中輸入simulink,結果結果是在桌面上出現一個是在桌面上出現一個Simulink Library Browser的窗口。的窗口。 單擊單擊MATLAB主窗口的快捷按鈕主窗口的快捷按鈕 ,打開,打開Simu

6、link Library Browser窗口窗口 。matlabmatlab函數仿真與函數仿真與simulinksimulink仿真的區別仿真的區別1 1、數據流仿真、數據流仿真按照數據流的順序,依次執行,即處理的數據首先通過一按照數據流的順序,依次執行,即處理的數據首先通過一個運算階后在激活下一個運算階。個運算階后在激活下一個運算階。例如:m=16;n=15;k=11;fc=10000;fd=1000;fs=100000;msg=randint(k*100,1);code=encode(msg,n,k,bch);modu=dmod(code,fc,fd,fs,qask,m);modu_noi

7、se=modu+randn(length(modu),1);demo=ddemod(modu_noise,fc,fd,fs,qask,m);msg_r=decode(demo,n,k,bch);rate=biterr(msg,msg_r);2 2、時間流仿真時間流仿真所有模塊在同一時間步長上同時執行。所有模塊在同一時間步長上同時執行。信號發生信號發生差錯控制編碼差錯控制編碼數字調制數字調制差錯控制譯碼差錯控制譯碼信宿信宿時間時間數據數據Simulink模型窗口的建立模型窗口的建立 在在Simulink中打開一個空白的模型窗口的方法:中打開一個空白的模型窗口的方法: 選中選中Simulink菜單

8、系統中的菜單系統中的File | New | Model菜單項后,菜單項后,會生成一個會生成一個Simulink窗口;窗口; 單擊單擊Simulink工具欄中的工具欄中的“新建模型新建模型”圖標;圖標; 在在MATLAB的命令窗口中選擇的命令窗口中選擇File | New | New Model菜菜單項;單項; 2.模塊庫及簡單建模模塊庫及簡單建模 第七章 Simulink建模和仿真 7.1 Simulink的概述和基本操作圖7.1.1 Simulink模型元素關聯圖 第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 Simulink模型并不一定要包含全部的三種元素,

9、在實際應用中通常可以缺少其中的一個或兩個。例如,若要模擬一個系統偏離平衡位置后的恢復行為,就可以建立一個沒有輸入而只有系統模塊加一個顯示模塊的模型。在某種情況下,也可以建立一個只有源模塊和顯示模塊的系統。若需要一個由幾個函數復合的特殊信號,則可以使用源模塊生成信號并將其送入Matlab工作間或文件中。二、仿真運行原理二、仿真運行原理 Simulink仿真包括兩個階段;初始化階段和模型執行階段 (1) (1) 模塊初始化模塊初始化 在初始化階段主要完成以下工作在初始化階段主要完成以下工作: 模型參數傳給Matlab進行估值,得到的數值結果將作為模型的實際參數; 展開模型的各個層次,每一個非條件執

10、行的子系統被它所包含的模塊所代替; 第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 模型中的模塊按更新的次序進行排序。排序算法產生一個列表以確保具有代數環的模塊在產生它的驅動輸入的模塊被更新后才更新。當然,這一步要先檢測出模型中存在的代數環。 決定模型中有無顯示設定的信號屬性,例如名稱、數據類型、數值類型以及大小等,并且檢查每個模塊是否能夠接受連接到它輸入端的信號。Simulink使用屬性傳遞的過程來確定未被設定的屬性,這個過程將源信號的屬性傳遞到它所驅動的模塊的輸入信號; 決定所有無顯示設定采樣時間的模塊的采樣時間; 分配和初始化用于存儲每個模塊的狀態和輸入當前值

11、的存儲空間。 完成這些工作后就可以進行仿真了。2) 2) 模型執行模型執行 一般模型是使用數值積分來進行仿真的。所運用的仿真解法器(仿真算法)依賴于模型提供它的連續狀態微分能力。計算微分可以分兩步進行:第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 首先,按照排序所決定的次序計算每個模塊的輸出。 然后,根據當前時刻的輸入和狀態來決定狀態的微分;得到微分向量后再把它返回給解法器;后者用來計算下一個采樣點的狀態向量。一旦新的狀態向量計算完畢,被采樣的數據源模塊和接受模塊才被更新。在仿真開始時模型設定待仿真系統的初始狀態和輸出。在每一個時間步中,Simulink計算系統的

12、輸入、狀態和輸出,并更新模型來反映計算出的值。在仿真結束時,模型得出系統的輸入、狀態和輸出。在每個時間步中,Simulink所采取的動作依次為: 按排列好的次序更新模型中模塊的輸出。Simulink通過調用模塊的輸出函數計算模塊的輸出。Simulink只把當前值、模塊的輸入以及狀態量傳給這些函數計算模塊的輸出。對于離散系統,Simulink只有在當前時間是模塊采樣時間的整數倍時,才會更新模塊的輸出。第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 按排列好的次序更新模型中模塊的狀態,Simulink計算一個模塊的離散狀態的方法時調用模塊的離散狀態更新函數。而對于連續狀

13、態,則對連續狀態的微分(在模塊可調用的函數里,有一個用于計算連續微分的函數)進行數值積分來獲得當前的連續狀態。 檢查模塊連續狀態的不連續點。Simulink使用過零檢測來檢測連續狀態的不連續點。 計算下一個仿真時間步的時間。這是通過調用模塊獲得下一個采樣時間函數來完成的。 (3) (3) 定模塊更新次序定模塊更新次序 在仿真中,Simulink更新狀態和輸出都要根據事先確定的模塊更新次序,而更新次序對方針結果的有效性來說非常關鍵。特別當模塊的輸出是當前輸入值的函數時,這個模塊必須在驅動它的模塊被更新之后才能被更新,否則,模塊的輸出將沒有意義。 第七章Simulink建模和仿真 7.1 Simu

14、link的概述和基本操作 注意:注意:不要把模塊保存到模塊文件的次序與仿真過程模塊被更新的次序相混淆。Simulink在模塊初始化時以將模塊排好正確的次序。 為了建立有效的更新次序,Simulink根據輸入和輸出的關系將模塊分類。其中,當前輸出依賴于當前輸入的模塊稱為直接饋入模塊,所有其他的模塊都稱為非虛擬模塊。直接饋入模塊的例子有Gain、Product和Sum模塊;非直接饋入模塊的例子有Integrator模塊(它的輸出只依賴于它的狀態),Constant模塊(沒有輸入)和Memory模塊(它的輸出只依賴于前一個模塊的輸入)。 基于上述分類,Simulink使用下面兩個基本規則對模塊進行排

15、序: 每個模塊必須在它驅動的所有模塊更新之前被更新。這條規則確保了模塊被更新時輸入有效。 若非直接饋入模塊在直接饋入模塊之前更新,則它們的更新次序可以是任意的。這條規則允許Simulink在排序過程中忽略非虛擬模塊。 另外一個約束模塊更新次序的因素是用戶給模塊設定優先級,Simulink在低優先級模塊之前更新高優先級模塊。 SIMULINK模型模型 外表:直觀的方框圖 文件:MDL文件 數學:微分方程或差分方程 行為:模擬物理過程的動態性狀Simulink動態仿真動態仿真Simulink 基本操作基本操作n利用Simulink進行系統仿真的步驟是: 啟動Simulink,打開Simulink模

16、塊庫 打開空白模型窗口; 建立Simulink仿真模型; 設置仿真參數,進行仿真; 輸出仿真結果。SimulinkSimulink仿真過程仿真過程1 1初始化階段初始化階段 對模型的參數進行估計,得到它們實際計算的值。對模型的參數進行估計,得到它們實際計算的值。 展開模型的各個層次;展開模型的各個層次; 按照更新的次序對模型進行排序;按照更新的次序對模型進行排序; 確定那些顯式化的信號屬性,并檢查每個模塊是否能夠接受連接它們輸入端的信號;確定那些顯式化的信號屬性,并檢查每個模塊是否能夠接受連接它們輸入端的信號; 確定所有非顯式的信號采樣時間模塊的采樣時間;確定所有非顯式的信號采樣時間模塊的采樣

17、時間; 分配和初始化存儲空間,以便存儲每個模塊的狀態和當前值的輸出。分配和初始化存儲空間,以便存儲每個模塊的狀態和當前值的輸出。2 2模型執行階段模型執行階段模型仿真是通過數值積分來進行完成的,計算數值積分可以采用以下兩步來進行:模型仿真是通過數值積分來進行完成的,計算數值積分可以采用以下兩步來進行: 按照秩序計算每個模塊的積分;按照秩序計算每個模塊的積分;根據當前輸入和狀態來決定狀態的微分,得到微分矢量,然后把它返回給解法器,根據當前輸入和狀態來決定狀態的微分,得到微分矢量,然后把它返回給解法器,以計算下一個采樣點的狀態矢量。在每一個時間步中,以計算下一個采樣點的狀態矢量。在每一個時間步中,

18、Simulink依次解決下列問題:依次解決下列問題: 按照秩序更新模塊的輸出;按照秩序更新模塊的輸出; 按照秩序更新模塊的狀態;按照秩序更新模塊的狀態; 檢查模塊連續狀態的不連續點;檢查模塊連續狀態的不連續點; 計算下一個仿真時間步的時間。計算下一個仿真時間步的時間。Simulink的模塊庫的模塊庫 Simulink的模塊庫能夠對系統模塊進行有效的管理與組織的模塊庫能夠對系統模塊進行有效的管理與組織可以直接將模塊庫中的模塊拖動或者拷貝到用戶的系統模可以直接將模塊庫中的模塊拖動或者拷貝到用戶的系統模型中以構建動態系統模型。型中以構建動態系統模型。 模塊搜索模塊搜索 模塊描述模塊描述 系統模塊系統

19、模塊 系統模塊庫系統模塊庫 Simulink公共模塊庫公共模塊庫Simulink中最為基礎、最為通用的模塊庫,它可以被應用到不同的專業領域中。 Simulink模塊庫按功能分為以下16類子模塊庫:(1)Commonly Used Blocks:仿真常用模塊庫(2)Continuous:連續系統模塊庫(3)Discontinuities:非線性系統模塊庫(4)Discrete:離散系統模塊庫(5)Logic and Bit Operations:邏輯運算和位運算模塊庫(6)Lookup Tables:查找表模塊庫(7)Math Operations:數學運算模塊庫(8)Model Verific

20、ation:模型驗證模塊庫(9)Model-Wide Utilities:進行模型擴充的實用模塊庫(10)Ports & Subsystems:端口和子系統模塊庫(11)Signals Attributes:信號屬性模塊庫(12)Signals Routing:提供用于輸入、輸出和控制的相關信號及相關處理的模塊庫(13)Sinks:仿真接收模塊庫(14)Sources:仿真輸入源模塊庫(15)User-defined Functions:用戶自定義函數模塊庫(16)Additional Math &Discrete:附加的數學和離散模塊庫Simulink的部分專業模塊庫的部分專

21、業模塊庫DSP Blockset數字信號處理工具包數字信號處理工具包Fixed-Point Blockset定點運算控制系統仿真工具包定點運算控制系統仿真工具包Power System Blockset電力電動系統工具包電力電動系統工具包Dials & Gauges Blockset交互圖形和控制面板設計工具包交互圖形和控制面板設計工具包Communications Blockset通訊系統工具包通訊系統工具包CDMA Reference Blockset CDMACDMA通訊系統設計和分析工具包通訊系統設計和分析工具包Nonlinear Control Design Blockset

22、非線性控制設計工具箱非線性控制設計工具箱Motorola DSP Developers KitMotorola DSP開發工具箱開發工具箱TI DSP Developers KitTI DSP開發工具箱開發工具箱信源模塊(信源模塊(SourceSource)有限帶寬白噪聲有限帶寬白噪聲輸出頻率隨時間線性變換的正弦信輸出頻率隨時間線性變換的正弦信號號輸出當前仿真時間輸出當前仿真時間常數輸入常數輸入以固定速率輸出當前仿真時間以固定速率輸出當前仿真時間從從matlab工作空間中輸入數據工作空間中輸入數據從從.mat文件中輸入數據文件中輸入數據接地信號接地信號為子系統或其它模型提供輸入端口為子系統或其

23、它模型提供輸入端口輸入脈沖信號輸入脈沖信號輸入斜坡信號輸入斜坡信號輸入服從高斯分布的隨機信號輸入服從高斯分布的隨機信號輸入周期信號輸入周期信號信號發生器信號發生器信號產生信號產生正弦信號初始器正弦信號初始器輸入階躍信號輸入階躍信號輸入服從高斯分布的隨機信號輸入服從高斯分布的隨機信號信宿模塊(信宿模塊(SinksSinks)以數值形式顯示輸入信號以數值形式顯示輸入信號懸浮信號顯示器懸浮信號顯示器為子系統或模型提供輸出端口為子系統或模型提供輸出端口信號顯示器信號顯示器當輸入非零時停止仿真當輸入非零時停止仿真中斷輸出信號中斷輸出信號將仿真數據寫入將仿真數據寫入.mat文件文件將仿真數據輸出到將仿真數

24、據輸出到matlab工作工作空間空間使用使用matlab圖形顯示器圖形顯示器連續信號數值積分連續信號數值積分輸入信號連續時間積分輸入信號連續時間積分線性連續系統的狀態空間描述線性連續系統的狀態空間描述線性連續系統傳遞函數描述線性連續系統傳遞函數描述對輸入信號進行固定時間延遲對輸入信號進行固定時間延遲對輸入信號進行可變時間延遲對輸入信號進行可變時間延遲線性連續系統的零極點模型線性連續系統的零極點模型連續模塊庫(連續模塊庫(ContinuousContinuous)離散模塊庫(離散模塊庫(DiscreteDiscrete) 線性離散系統的傳遞函數描述線性離散系統的傳遞函數描述線性離散系統的零極點模

25、型描述線性離散系統的零極點模型描述線性離散系統的濾波器描述線性離散系統的濾波器描述線性離散系統的狀態空間描述線性離散系統的狀態空間描述離散時間積分器離散時間積分器離散信號的一階保持器離散信號的一階保持器單步積分延遲,輸出為前一輸入單步積分延遲,輸出為前一輸入單位延遲單位延遲離散信號的零階保持器離散信號的零階保持器非連續系統模塊庫(非連續系統模塊庫(DiscontinuitiesDiscontinuities)死區間歇死區間歇庫侖粘貼信號庫侖粘貼信號死區信號死區信號雙輸出選擇器(手動)雙輸出選擇器(手動)多端口輸出選擇器多端口輸出選擇器量化器量化器信號上升、下降速率控制器信號上升、下降速率控制器

26、信號延遲器信號延遲器飽和信號飽和信號三路選擇器(根據輸入三路選擇器(根據輸入2控制輸出)控制輸出)數學運算模塊庫數學運算模塊庫(Math operationsMath operations)求信號絕對值求信號絕對值輸出強制系統輸入為零的代數輸出強制系統輸入為零的代數狀態狀態按位邏輯運算按位邏輯運算邏輯真值查找邏輯真值查找輸出輸入復數的幅值與相位輸出輸入復數的幅值與相位輸出系統輸入的的實部或需部輸出系統輸入的的實部或需部點乘運算點乘運算信號增益信號增益信號邏輯運算信號邏輯運算幅值與相位轉化為復數形式幅值與相位轉化為復數形式特定的一些數學函數特定的一些數學函數矩陣增益矩陣增益求輸入的最小、大值求輸

27、入的最小、大值乘法或除法器乘法或除法器從輸入實部與虛部構從輸入實部與虛部構造復數造復數關系運算器關系運算器求整運算器求整運算器符號運算符號運算漸變增益漸變增益對輸入求和或差對輸入求和或差三角與雙曲函數三角與雙曲函數信號路由(信號路由(Signal RoutingSignal Routing)Goto模塊標記控制器模塊標記控制器將信號與特定的偏移值比將信號與特定的偏移值比較較初始化信號初始化信號矩陣串聯器矩陣串聯器合并輸入信號為一個輸出合并輸入信號為一個輸出模塊控制信息模塊控制信息信號組合器信號組合器信號探測器信號探測器信號維數改變器信號維數改變器選擇或重組信號選擇或重組信號信號屬性修改信號屬性

28、修改輸入信號寬度輸入信號寬度對信號進行分配對信號進行分配由輸入產生總線信號由輸入產生總線信號總線信號選擇器總線信號選擇器用戶定義的數據存儲區用戶定義的數據存儲區從數據存儲區中讀取數據從數據存儲區中讀取數據向數據存儲區寫數據向數據存儲區寫數據數據類型選擇器數據類型選擇器信號分解器信號分解器從從goto模塊中獲得信號模塊中獲得信號函數調用發生器函數調用發生器向向goto模塊傳遞信號模塊傳遞信號Signal Attributes (Signal Attributes (信號屬性信號屬性) )名稱功能說明Data Type Conversion數據類型轉換Data Type Conversion In

29、herited繼承的數據類型轉換Data Type Duplicate數據類型復制Data Type Propagation數據類型繼承Data Type Propagation Examples數據類型繼承例子端口及子系統庫(端口及子系統庫(Ports and SubsystemsPorts and Subsystems)可配置子系統原子子系統使能子系統使能觸發For循環函數調用If條件條件執行子系統條件執行子系統子系統輸入子系統輸入子系統輸出子系統輸出通用子系統通用子系統Switch-case子系統子系統Switch-case動作子系動作子系統統上升沿觸發上升沿觸發觸發子系統觸發子系統當型

30、循環子系統當型循環子系統表數據選擇器表數據選擇器(從表中選擇數據)(從表中選擇數據)對輸入信號進行內插運算對輸入信號進行內插運算輸入信號的一維線性內插輸入信號的一維線性內插輸入信號的二維線性內插輸入信號的二維線性內插輸入信號的輸入信號的n維線性內插維線性內插查找輸入信號所在范圍查找輸入信號所在范圍查表模塊庫(查表模塊庫(Look-Up TableLook-Up Table)求取輸入信號的數學函數值求取輸入信號的數學函數值M函數函數(對輸入進行運算輸出結果)(對輸入進行運算輸出結果)S-函數模塊函數模塊S-函數生成器函數生成器用戶定義函數模塊(用戶定義函數模塊(User-Defined Func

31、tionsUser-Defined Functions) Logic and Bit Operations Logic and Bit Operations(邏輯和位操作模塊)(邏輯和位操作模塊)名稱功能說明Bit Clear位清零Bit Set位置位Bitwise Operator逐位操作Combinatorial Logic組合邏輯Compare To Constant和常量比較Compare To Zero和零比較Detect Change檢測跳變Detect Decrease檢測遞減Detect Fall Negative檢測負下降沿Detect Fall Nonpositive檢測非

32、負下降沿Detect Increase檢測遞增Detect Rise Nonnegative檢測非負上升沿Detect Rise Positive檢測正上升沿Extract Bits提取位Interval Test檢測開區間Interval Test Dynamic動態檢測開區間Logical Operator邏輯操作符Relational Operator關系操作符Shift Arithmetic移位運算 Model Verification ( Model Verification (模型檢測模型檢測) ))名稱功能說明Assertion確定操作Check Discrete Gradien

33、t檢查離散梯度Check Dynamic Gap檢查動態偏差Check Dynamic Lower Bound檢查動態下限Check Dynamic Range檢查動態范圍Check Dynamic Upper Bound檢查動態上限Check Input Resolution檢查輸入精度Check Static Gap檢查靜態偏差Check Static Lower Bound檢查靜態下限Check Static Range檢查靜態范圍Check Static Upper Bound檢查靜態上限 Model-Wide Utilities ( Model-Wide Utilities (模型擴

34、充模型擴充) )名稱功能說明Block Support Table功能塊支持的表DocBlock文檔模塊Model Info模型信息Timed-Based Linearization時間線性分析Trigger-Based Linearization觸發線性分析對對Simulink庫瀏覽器的基本操作有:庫瀏覽器的基本操作有:(1) 使用鼠標左鍵單擊系統模塊庫,如果模塊庫為多層結構,使用鼠標左鍵單擊系統模塊庫,如果模塊庫為多層結構,則單擊則單擊“+”號載入庫。號載入庫。(2) 使用鼠標右鍵單擊系統模塊庫,使用鼠標右鍵單擊系統模塊庫,可在單獨的窗口可在單獨的窗口打開庫。打開庫。(3) 使用鼠標左鍵單

35、擊系統模塊,在模塊描述欄中使用鼠標左鍵單擊系統模塊,在模塊描述欄中顯示此模塊顯示此模塊的描述的描述。(4) 使用鼠標右鍵單擊系統模塊,可以得到:使用鼠標右鍵單擊系統模塊,可以得到:系統模塊的幫助系統模塊的幫助信息信息; 將系統模塊插入到系統模型中將系統模塊插入到系統模型中; 查看系統模塊的參數查看系統模塊的參數設置設置; 以及以及回到系統模塊的上一層庫回到系統模塊的上一層庫。 此外還可以進行以下操作此外還可以進行以下操作: (1) 使用鼠標左鍵選擇并拖動系統模塊,并將其拷貝到使用鼠標左鍵選擇并拖動系統模塊,并將其拷貝到系統模型中。系統模型中。 (2) 在模塊搜索欄中搜索所需的系統模塊。在模塊搜

36、索欄中搜索所需的系統模塊。 相關操作:相關操作: 模塊庫模塊庫 Sine Wave來自來自sources; Gain來自來自Math Operations;Scope來自來自Sinks 連接方法連接方法(1)拖動對應端口進行連接拖動對應端口進行連接(2)單擊起始模塊后,按單擊起始模塊后,按Ctrl鍵再單擊目標模塊鍵再單擊目標模塊 模塊復制模塊復制 傳統方式傳統方式Ctrl+C/Ctrl+V、或、或Ctrl鍵再拖動模塊鍵再拖動模塊 模塊插入模塊插入 對于單輸入單輸出模塊,只需將這個模塊移到線上就對于單輸入單輸出模塊,只需將這個模塊移到線上就可以自動連接。可以自動連接。SIMULINK模型模型 外

37、表:直觀的方框圖 文件:MDL文件 數學:微分方程或差分方程 行為:模擬物理過程的動態性狀建立私有模塊庫建立私有模塊庫步驟:步驟:1 1)在)在simulinksimulink中執行中執行ile/new/libraryile/new/library2 2)將用戶定義的模塊或是其它模塊庫將用戶定義的模塊或是其它模塊庫中的模塊移動到新的模塊庫中。中的模塊移動到新的模塊庫中。3 3)保存新的模塊庫)保存新的模塊庫模塊的基本操作模塊的基本操作1模塊選取(1)選取單個模塊;(2)選取多個模塊;2模塊復制(1)在同一窗口內復制(2)在不同的窗口之間復制3模塊刪除選中模塊,按Delete鍵即可。刪除多個模塊

38、,可以同時按住Shift鍵,再用鼠標選中多個模塊,再按Delete鍵;4模塊外形的調整(1)改變大小(2)轉向(3)給模塊加陰影5模塊名的處理(1)是否顯示模塊名(2)修改模塊名(3)改變模塊名的位置6模塊顏色設定【Format】菜單中的【Foreground Color】可以改變模塊的前景顏色,【Background Color】可以改變模塊的背景顏色,而模型窗口的顏色可以通過【Screen Color】來改變。7模塊屬性設定選中模塊,打開【Edit】【Block Properties】可以對模塊進行屬性設定,包括對Description、Priority、Tag、Open function

39、、Attributes format string等屬性的設定。連線操作連線操作1模塊間連線 在模塊間連線,有以下幾種情況: (1)連接兩個模塊 (2)模塊間連線的調整 (3)在連線之間插入模塊 (4)連線的分支2在連線上標示信息 在連線上標示的信息包括表示向量、顯示數據類型和標記等。 (1)標示向量 (2)顯示數據類型 (3)信號標記信號組合信號組合 在利用在利用Simulink進行系統仿真時,在很多進行系統仿真時,在很多情況下,需要將系統中某些模塊的輸出信號(一情況下,需要將系統中某些模塊的輸出信號(一般為標量)組合成一個向量信號,并將得到的信般為標量)組合成一個向量信號,并將得到的信號作

40、為另外一個模塊的輸入。號作為另外一個模塊的輸入。 來自來自Signal Routing的的Bus Creator簡單建模:簡單建模:支持向量顯示支持向量顯示Mux支持標量擴展支持標量擴展插入模塊插入模塊49例1 動態畫圓:(1) ; (用正弦波發生器Sine Wave) 雙擊圖標出現相應的模塊參數框, 可在其中設置參數.Sine Wave中Phase(相位)為pi/2, 實際為cos t; Sine Wave1中Phase為0.tytxsin,cos50(2) ; (用正弦波發生器Sine Wave和積分器Integrator)Sine Wave中Phase(相位)為pi/2, 實際為cos

41、t; Integrator中Initial condition(初始值)為0.XY Graph中, x的范圍為1.51.5, y的范圍為1.21.2. tdttxytx0)(,cos51(3) (用狀態空間State-Space)State-Space中, A=0,1;1,0, B=0;0, C=1,0;0,1, D=0;0. Initial conditions為1;0.雙擊XY Graph圖標, 可定x的范圍為1.51.5, y的范圍為1.21.2. Scope的y刻度可右擊示波器刻度區出現對話框, 進入Axes Propeties窗口確定. 0)0(,1)0(,yxyxyx52顯示結果如

42、下:積分模塊應用:復位積分積分模塊應用:復位積分負變正時負變正時強迫清零強迫清零微分方程微分方程)(2 . 04 . 02 . 0tuxxx 構造微分方程求解模型構造微分方程求解模型Simulink仿真舉例(續)仿真舉例(續)3. 仿真運行及參數調整仿真運行及參數調整 系統模塊參數設置與系統仿真參數設置系統模塊參數設置與系統仿真參數設置 雙擊系統模塊,打開系統模塊的參數設置對話框。雙擊系統模塊,打開系統模塊的參數設置對話框。 在參數設置對話框中設置合適的模塊參數。在參數設置對話框中設置合適的模塊參數。 設置合適的系統仿真參數以進行動態系統的仿真設置合適的系統仿真參數以進行動態系統的仿真 在在S

43、imulation菜單的菜單的Simulation parameters.子菜單子菜單中進行設置,如仿真時間等中進行設置,如仿真時間等 運行仿真運行仿真 單擊系統模型編輯器上的單擊系統模型編輯器上的Play圖標圖標(黑色三角黑色三角)或選擇或選擇Simulation菜單下的菜單下的Start便可以對系統進行仿真分析。便可以對系統進行仿真分析。 仿真結束后雙擊仿真結束后雙擊Scope模塊以顯示系統仿真的輸出結模塊以顯示系統仿真的輸出結果果圖圖2.11 Simulink設置窗口設置窗口仿真解法仿真解法變步長解法變步長解法定步長解法定步長解法discrere:針對無連續狀態系統的特殊解法針對無連續狀

44、態系統的特殊解法ode45:基于基于Dormand-Prince 4-5階的階的Runge-Kutta公式公式ode23:基于基于Bogachi-Shampine 2-3階的階的Runge-Kutta公式公式ode113:變階次變階次Adams-Bashforth-Moulton解法解法ode15s :剛性系統的變階次多步解法剛性系統的變階次多步解法ode23s :剛性系統的固定階次單步解法剛性系統的固定階次單步解法discrere:針對無連續狀態系統的特殊解法針對無連續狀態系統的特殊解法ode5: ode45確定步長的函數解法確定步長的函數解法ode4:使用固定步長的經典使用固定步長的經典4

45、階的階的Runge-Kutta公式的函數解法公式的函數解法ode3: ode25的確定步長的函數解法的確定步長的函數解法ode2 :使用固定步長的經典使用固定步長的經典2階的階的Runge-Kutta公式的函數解公式的函數解法法ode1 :固定步長的固定步長的Euler解法解法仿真器參數設置仿真器參數設置仿真器參數設置可用于選擇仿真開始時間、仿真結束時間、解法器及輸出項等。對于一般的仿真,使用默認設置即可。1仿真時間(Simulation time)設置需要設置的有仿真開始時間(Start time)和仿真結束時間(Stop time)。2仿真步長模式設置可供選擇的有“Variable-ste

46、p”(變步長)和“Fixed-step”(固定步長)方式。3解法器設置用戶在“Solver”后面的下拉選項中可以選擇變步長模式解法器或固定步長模式解法器。變步長模式解法器有:discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb。4變步長的參數設置對于變步長模式,用戶常用的設置有:最大和最小步長參數、相對誤差和絕對誤差、初始步長以及過零控制。默認情況下,步長自動確定,用auto值表示。5固定步長的參數設置對于固定步長模式,用戶常用的設置有:(1)Multitasking模式;(2)Singletasking模式;(3)Auto模式工作空

47、間數據導入工作空間數據導入/導出設置導出設置工作空間數據導入/導出(Data Import/Export)設置主要在Simulink與MATLAB工作空間交換數值時進行有關選項設置,可以設置以下三個選擇項。 (1)Load from workspace:選中前面的復選框即可從MATLAB工作空間獲取時間和輸入變量,一般時間變量定義為t,輸入變量定義為u。 (2)Save to workspace:用來設置保存在MATLAB工作空間的變量類型和變量名。 (3)Save options:用來設置存往工作空間的有關選項。Scope高級使用技術高級使用技術打印輸出打印輸出 參數設置參數設置 視圖整體縮

48、放視圖整體縮放 Y軸縮放軸縮放 視圖自動縮放視圖自動縮放 X軸縮放軸縮放 保存當前坐標軸設置保存當前坐標軸設置 恢復坐標軸設置恢復坐標軸設置 懸浮懸浮Scope開關開關 懸浮時信號選擇懸浮時信號選擇 去除坐標軸選擇去除坐標軸選擇 Scope模塊的模塊的General選項卡選項卡坐標系標簽坐標系標簽 坐標系數目坐標系數目 顯示時間范圍顯示時間范圍 懸浮懸浮Scope 開關開關 Scope模塊的模塊的Data history選項卡選項卡信號顯示點數限制信號顯示點數限制 保存信號至工作空保存信號至工作空間變量間變量 使用命令操作對系統進行仿真使用命令操作對系統進行仿真 支持命令窗口運行仿真的函數有支

49、持命令窗口運行仿真的函數有4個,即個,即sim、simset、simget和和set_param。(1)sim函數函數sim函數的作用是運行一個由函數的作用是運行一個由Simulink建立的模型,建立的模型,其調用格式為:其調用格式為:t, x, y =sim(modname,timespan,options,ut); 其中其中, t為返回的仿真時間向量;為返回的仿真時間向量; x為返回的狀態矩陣;為返回的狀態矩陣; y為返回的輸出矩陣;為返回的輸出矩陣; modname為系統為系統Simulink模型文件名;模型文件名; timespan為仿真時間;為仿真時間; options為仿真參數選擇

50、項,由為仿真參數選擇項,由simset設置;設置; ut為選擇外部產生輸入為選擇外部產生輸入,ut=T,u1,u2,un。說明說明上述參數中,若省略上述參數中,若省略timespan,options,ut則由框圖模型的則由框圖模型的對話框對話框Simulation Parameters設置仿真參數。設置仿真參數。(2)simset函數函數 simset 函數用來為函數用來為sim函數函數建立或編輯仿真參數或規定算建立或編輯仿真參數或規定算法,并把設置結果保存在一個結構變量中。它有如下法,并把設置結果保存在一個結構變量中。它有如下4種種用法:用法: (a) options=simset(prop

51、erty,value,):把:把property代代表的參數賦值為表的參數賦值為value,結果保存在結構,結果保存在結構options中。中。 (b) options=simset(old_opstruct,property,value,):把已有的結構把已有的結構old_opstruct(由由simset產生產生)中的參數中的參數property重新賦值為重新賦值為value,結果保存在新結構,結果保存在新結構options中。中。 (c) options=simset(old_opstruct,new_opstruct):用:用結構結構new_opstruct的值替代已經存在的結構的值替

52、代已經存在的結構old_opstruct的值。的值。 (d) simset:顯示所有的參數名和它們可能的值。:顯示所有的參數名和它們可能的值。(3) simget函數函數 simget函數用來獲得模型的參數設置值。如果參數值是函數用來獲得模型的參數設置值。如果參數值是用一個變量名定義的,用一個變量名定義的,simget返回的也是該變量的值而返回的也是該變量的值而不是變量名。如果該變量在工作空間中不存在不是變量名。如果該變量在工作空間中不存在(即變量未即變量未被賦值被賦值),則,則Simulink給出一個出錯信息。該函數有如下給出一個出錯信息。該函數有如下3種用法:種用法: (a) struct

53、=simget(modname):返回指定模型:返回指定模型model的的參數設置的參數設置的options結構。結構。 (b) value=simget(modname,property):返回指定模型:返回指定模型model的參數的參數property的值。的值。 (c) value=simget(options,property):獲取:獲取options結構結構中的參數中的參數property的值。如果在該結構中未指定該參數,的值。如果在該結構中未指定該參數,則返回一個空陣。則返回一個空陣。 用戶只需輸入能夠唯一識別它的那個參數名稱的前幾個字用戶只需輸入能夠唯一識別它的那個參數名稱的前

54、幾個字符即可,對參數名稱中字母的大小寫不作區別。符即可,對參數名稱中字母的大小寫不作區別。(4) set_param函數函數 set_param函數的功能很多,這里只介紹如何用函數的功能很多,這里只介紹如何用set_param函數設置函數設置Simulink仿真參數以及如何開始、暫仿真參數以及如何開始、暫停、終止仿真進程或者更新顯示一個仿真模型。停、終止仿真進程或者更新顯示一個仿真模型。 (a) 設置仿真參數設置仿真參數 調用格式為調用格式為: set_param(modname,property,value,) 其中其中modname為設置的模型名,為設置的模型名,property為要設置的

55、參為要設置的參數,數,value是設置值。這里設置的參數可以有很多種,而是設置值。這里設置的參數可以有很多種,而且和用且和用simset設置的內容不盡相同,相關參數的設置可以設置的內容不盡相同,相關參數的設置可以參考有關資料。參考有關資料。 (b) 控制仿真進程控制仿真進程 調用格式為調用格式為: set_param(modname,SimulationCommand,cmd) 其中其中mode為仿真模型名稱,而為仿真模型名稱,而cmd是控制仿真進程的各是控制仿真進程的各個命令,包括個命令,包括start、stop、pause、comtinue或或update。 在使用這兩個函數的時候,需要注

56、意必須先把模型打開。在使用這兩個函數的時候,需要注意必須先把模型打開。Simulink與與Matlab的接口的接口 由由MATLAB工作空間變量設置系統模塊參工作空間變量設置系統模塊參數數 模塊參數可以是常量也可以工作空間變量模塊參數可以是常量也可以工作空間變量 直接使用直接使用MATLAB工作空間中的變量設置模塊工作空間中的變量設置模塊參數。參數。 使用變量的表達式設置模塊參數。使用變量的表達式設置模塊參數。 例如,如果例如,如果a是定義在是定義在MATLAB中的變量,則表達中的變量,則表達式式a、a2+5、exp(a)等均可以作為系統模塊的參等均可以作為系統模塊的參數數 將信號輸出到將信號

57、輸出到MATLAB工作空間中工作空間中 使用示波器模塊使用示波器模塊Scope的輸出信號,可以的輸出信號,可以使用戶對輸出的信號進行簡單的定性分析。使用戶對輸出的信號進行簡單的定性分析。 使用使用Sinks模塊庫中的模塊庫中的To Workspace 模塊,模塊,可以輕易地將信號輸出到可以輕易地將信號輸出到MATLAB工作空間中。工作空間中。信號輸出的名稱在信號輸出的名稱在To Workspace模塊的對話模塊的對話框中設置,此對話框還可以設置輸出數據的點框中設置,此對話框還可以設置輸出數據的點數、輸出的間隔,以及輸出數據的類型等。其數、輸出的間隔,以及輸出數據的類型等。其中輸出類型有三種形式

58、:數組、結構以及帶有中輸出類型有三種形式:數組、結構以及帶有時間變量的結構。仿真結束或暫停時信號被輸時間變量的結構。仿真結束或暫停時信號被輸出到工作空間中。出到工作空間中。 使用工作空間變量作為系統輸入信號使用工作空間變量作為系統輸入信號 Simulink與與MATLAB的數據交互是相互的,除的數據交互是相互的,除了可以將信號輸出到了可以將信號輸出到MATLAB工作空間中之外,用工作空間中之外,用戶還可以使用戶還可以使用MATLAB工作空間中的變量作為系統工作空間中的變量作為系統模型的輸入信號。使用模型的輸入信號。使用Sources模塊庫中的模塊庫中的From Workspace模塊可以將模塊

59、可以將MATLAB工作空間中的變量工作空間中的變量作為系統模型的輸入信號。此變量的格式如下所示:作為系統模型的輸入信號。此變量的格式如下所示: t=0:0.1:10; x=sin(t); input=t,x; 系統輸入信號系統輸入信號input的作用相當于的作用相當于Sources模塊中的模塊中的Sine Wave模塊模塊 向量與矩陣向量與矩陣 Simulink所使用的信號可以是標量也能夠傳所使用的信號可以是標量也能夠傳遞和使用向量信號。例如,向量增益可以作遞和使用向量信號。例如,向量增益可以作用在一個標量信號上,產生一個向量輸出。用在一個標量信號上,產生一個向量輸出。 Simulink 最重

60、要的特性就是支持矩陣形式最重要的特性就是支持矩陣形式的信號,它可以區分行和列向量并傳遞矩陣。的信號,它可以區分行和列向量并傳遞矩陣。通過對模塊做適當的配置,可以使模塊能夠通過對模塊做適當的配置,可以使模塊能夠接受矩陣作為模塊參數。接受矩陣作為模塊參數。 MATLAB Function與與Function模塊模塊 除了使用上述的方式進行除了使用上述的方式進行Simulink與與MATLAB之間之間的數據交互,用戶還可以使用的數據交互,用戶還可以使用Functions and Tables 模塊模塊庫中的庫中的 Function模塊(簡稱為模塊(簡稱為Fcn模塊)或模塊)或Functions and Tables 模塊

溫馨提示

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

評論

0/150

提交評論