simulinkmatlab教程_第1頁
simulinkmatlab教程_第2頁
simulinkmatlab教程_第3頁
simulinkmatlab教程_第4頁
simulinkmatlab教程_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第7章 Simulink仿真環(huán)境Simulink是面向框圖的仿真軟件。7.1演示一個Simulink的簡單程序【例7.1】創(chuàng)建一個正弦信號的仿真模型。步驟如下:(1) 在MATLAB的命令窗口運行simulink命令,或單擊工具欄中的圖標,就可以打開Simulink模塊庫瀏覽器(Simulink Library Browser) 窗口,如圖7.1所示。圖7.1 Simulink界面(2) 單擊工具欄上的圖標或選擇菜單“File”“New”“Model”,新建一個名為“untitled”的空白模型窗口。(3) 在上圖的右側子模塊窗口中,單擊“Source”子模塊庫前的“+”(或雙擊Source)

2、,或者直接在左側模塊和工具箱欄單擊Simulink下的Source子模塊庫,便可看到各種輸入源模塊。(4) 用鼠標單擊所需要的輸入信號源模塊“Sine Wave”(正弦信號),將其拖放到的空白模型窗口“untitled”,則“Sine Wave”模塊就被添加到untitled窗口;也可以用鼠標選中“Sine Wave”模塊,單擊鼠標右鍵,在快捷菜單中選擇“add to 'untitled'”命令,就可以將“Sine Wave”模塊添加到untitled窗口,如圖7.2所示。圖7.2 Simulink界面(5) 用同樣的方法打開接收模塊庫“Sinks”,選擇其中的“Scope”模

3、塊(示波器)拖放到“untitled”窗口中。(6) 在“untitled”窗口中,用鼠標指向“Sine Wave”右側的輸出端,當光標變?yōu)槭址麜r,按住鼠標拖向“Scope”模塊的輸入端,松開鼠標按鍵,就完成了兩個模塊間的信號線連接,一個簡單模型已經(jīng)建成。如圖7.3所示。(7) 開始仿真,單擊“untitled”模型窗口中“開始仿真”圖標,或者選擇菜單“Simulink”“Start”,則仿真開始。雙擊“Scope”模塊出現(xiàn)示波器顯示屏,可以看到黃色的正弦波形。如圖7.4所示。圖7.3 Simulink模型窗口圖7.4 示波器窗口(8) 保存模型,單擊工具欄的圖標,將該模型保存為“Ex070

4、1.mdl”文件。7.2 Simulink的文件操作和模型窗口7.2.1 Simulink的文件操作1. 新建文件新建仿真模型文件有幾種操作:§ 在MATLAB的命令窗口選擇菜單“File”à“New”à“Model”。§ 在圖7.1的Simulink模塊庫瀏覽器窗口選擇菜單“File”à“New”à“Model”,或者單擊工具欄的圖標。§ 在圖7.3的Simulink模型窗口選擇菜單“File”à“New”à“Model”,或者單擊工具欄的圖標。2. 打開文件打開仿真模型文件有幾種操作:§ 在

5、MATLAB的命令窗口輸入不加擴展名的文件名,該文件必須在當前搜索路徑中,例如輸入“Ex0701”。§ 在MATLAB的命令窗口選擇菜單“File”àOpen”或者單擊工具欄的圖標打開文件。§ 在圖7.1的Simulink模塊庫瀏覽器窗口選擇菜單“File”à“Open”或者單擊工具欄的圖標打開“.mdl”文件。§ 在圖7.3的Simulink模型窗口中選擇菜單“File”à“Open”或者單擊工具欄的圖標打開文件。7.2.2 Simulink的模型窗口模型窗口由菜單、工具欄、模型瀏覽器窗口、模型框圖窗口以及狀態(tài)欄組成。狀態(tài)欄菜單模型

6、框圖模型瀏覽器圖7.5 雙窗口模型窗口工具欄1. 狀態(tài)欄2. 工具欄模型窗口工具欄如圖7.6所示。開始仿真打開庫瀏覽器結束仿真打開調(diào)試器展示父系統(tǒng)單雙窗口切換圖7.6 工具欄仿真模型更新模塊框圖創(chuàng)建并編譯生成exe文件3. 菜單Simulink的模型窗口的常用菜單如表7.1所示。表7.1模型窗口常用菜單表菜單名菜單項功能FileNewModel新建模型Model properties模型屬性PreferencesSIMULINK界面的默認設置選項Print打印模型Close關閉當前Simulink窗口Exit MATLAB退出MATLAB系統(tǒng)EditCreate subsystem創(chuàng)建子系統(tǒng)M

7、ask subsystem封裝子系統(tǒng)Look under mask查看封裝子系統(tǒng)的內(nèi)部結構Update diagram更新模型框圖的外觀ViewGo to parent顯示當前系統(tǒng)的父系統(tǒng)Model browser options模型瀏覽器設置Block data tips options鼠標位于模塊上方時顯示模塊內(nèi)部數(shù)據(jù)Library browser顯示庫瀏覽器Fit system to view自動選擇最合適的顯示比例Normal以正常比例(100%)顯示模型SimulationStartStop啟動停止仿真PauseContinue暫停繼續(xù)仿真Simulation Parameters設

8、置仿真參數(shù)Normal普通Simulink模型Accelerator產(chǎn)生加速Simulink模型FormatText alignment標注文字對齊工具Filp name翻轉模塊名ShowHide name顯示隱藏模塊名Filp block翻轉模塊Rotate Block旋轉模塊Library link display顯示庫鏈接ShowHide drop shadow顯示隱藏陰影效果Sample time colors設置不同的采樣時間序列的顏色Wide nonscalar lines粗線表示多信號構成的向量信號線Signal dimensions注明向量信號線的信號數(shù)Port data ty

9、pes標明端口數(shù)據(jù)的類型Storage class顯示存儲類型ToolsData explorer數(shù)據(jù)瀏覽器Simulink debuggerSimulink調(diào)試器Data class designer用戶定義數(shù)據(jù)類型設計器Linear Analysis線性化分析工具 7.3 模型的創(chuàng)建7.3.1模塊的操作1. 對象的選定§ 選定單個對象選定對象只要在對象上單擊鼠標,被選定的對象的四角處會出現(xiàn)小黑塊編輯框。§ 選定多個對象如果選定多個對象,可以按下Shift鍵,然后再單擊所需選定的模塊;或者用鼠標拉出矩形虛線框,將所有待選模塊框在其中,則矩形框中所有的對象均被選中,如圖7.

10、7所示。圖7.7 選定多個對象§ 選定所有對象如果要選定所有對象,可以選擇菜單“Edit”à“Select all”。2. 模塊的復制(1) 不同模型窗口(包括模型庫窗口)之間的模塊復制§ 選定模塊,用鼠標將其拖到另一模型窗口。§ 選定模塊,使用菜單的“Copy”和“Paste”命令。§ 選定模塊,使用工具欄的“Copy”和“Paste”按鈕。(2) 在同一模型窗口內(nèi)的復制模塊(如圖7.8所示)§ 選定模塊,按下鼠標右鍵,拖動模塊到合適的地方,釋放鼠標。§ 選定模塊,按住Ctrl鍵,再用鼠標拖動對象到合適的地方,釋放鼠標。圖

11、7.8 在同一模型窗口復制對象§ 使用菜單和工具欄中的“Copy”和“Paste”按鈕。3. 模塊的移動§ 在同一模型窗口移動模塊選定需要移動模塊,用鼠標將模塊拖到合適的地方。§ 在不同模型窗之間移動模塊在不同模型窗之間移動模塊,在用鼠標移動的同時按下Shift鍵。當模塊移動時,與之相連的連線也隨之移動。 4. 模塊的刪除要刪除模塊,應選定待刪除模塊,按Delete鍵;或者用菜單“Edit”à“Clear”或“Cut”;或者用工具欄的“Cut”按鈕。 5. 改變模塊大小選定需要改變大小的模塊,出現(xiàn)小黑塊編輯框后,用鼠標拖動編輯框,可以實現(xiàn)放大或縮小。6.

12、 模塊的翻轉§ 模塊翻轉180度選定模塊,選擇菜單“Format”à“Flip Block”可以將模塊旋轉180度,如同7.9中間為翻轉180度示波器模塊。§ 模塊翻轉90度圖7.9 翻轉模塊選定模塊,選擇菜單“Format”à“RotateBlock”可以將模塊旋轉90度,如圖7.9右邊示波器所示。如果一次翻轉不能達到要求,可以多次翻轉來實現(xiàn)。7. 模塊名的編輯§ 修改模塊名單擊模塊下面或旁邊的模塊名,出現(xiàn)虛線編輯框就可對模塊名進行修改。§ 模塊名字體設置選定模塊,選擇菜單“Format”à“Font”,打開字體對話框設置

13、字體。§ 模塊名的顯示和隱藏選定模塊,選擇菜單“Format”à“Hide /Show name”,可以隱藏或顯示模塊名。§ 模塊名的翻轉選定模塊,選擇菜單“Format”à“Flip name”,可以翻轉模塊名。7.3.2信號線的操作1. 模塊間連線先將光標指向一個模塊的輸出端,待光標變?yōu)槭址螅聪率髽随I并拖動,直到另一模塊的輸入端。2. 信號線的分支和折曲(1) 分支的產(chǎn)生將光標指向信號線的分支點上,按鼠標右鍵,光標變?yōu)槭址蟿邮髽酥钡椒种Ь€的終點,釋放鼠標;或者按住Ctrl鍵,同時按下鼠標左鍵拖動鼠標到分支線的終點,如圖7.10所示。圖7.

14、10 信號線的分支(2) 信號線的折線選中已存在的信號線,將光標指向折點處,按住Shift鍵,同時按下鼠標左鍵,當光標變成小圓圈時,用鼠標拖動小圓圈將折點拉至合適處,釋放鼠標,如圖7.11所示。圖7.11 信號線的折線3. 信號線文本注釋(label)§ 添加文本注釋雙擊需要添加文本注釋的信號線,則出現(xiàn)一個空的文字填寫框,在其中輸入文本。§ 修改文本注釋單擊需要修改的文本注釋,出現(xiàn)虛線編輯框即可修改文本。§ 移動文本注釋單擊標識,出現(xiàn)編輯框后,就可以移動編輯框。§ 復制文本注釋單擊需要復制的文本注釋,按下Ctrl鍵同時移動文本注釋,或者用菜單和工具欄的復

15、制操作。4. 在信號線中插入模塊如果模塊只有一個輸入端口和一個輸出端口,則該模塊可以直接被插入到一條信號線中。7.3.3給模型添加文本注釋(1) 添加模型的文本注釋在需要當作注釋區(qū)的中心位置,雙擊鼠標左鍵,就會出現(xiàn)編輯框,在編輯框中就可以輸入文字注釋。(2) 注釋的移動在注釋文字處單擊鼠標左鍵,當出現(xiàn)文本編輯框后,用鼠標就可以拖動該文本編輯框。7.4 Simulink的基本模塊7.4.1基本模塊Simulink的基本模塊包括9個子模塊庫。1. 輸入信號源模塊庫(Sources)輸入信號源模塊是用來向模型提供輸入信號。常用的輸入信號源模塊源如表7.2所示。表7.2 常用的輸入信號源模塊表名稱模塊

16、形狀功能說明Constant恒值常數(shù),可設置數(shù)值Step階躍信號Ramp線性增加或減小的信號Sine Wave正弦波輸出Signal Generator信號發(fā)生器,可以產(chǎn)生正弦、方波、鋸齒波和隨機波信號From File從文件獲取數(shù)據(jù)From Workspace從當前工作空間定義的矩陣讀數(shù)據(jù)Clock仿真時鐘,輸出每個仿真步點的時間In輸入模塊2. 接收模塊庫(Sinks)接收模塊是用來接收模塊信號的,常用的接收模塊如表7.3所示。表7.3 常用的接收模塊表名稱模塊形狀功能說明Scope示波器,顯示實時信號Display實時數(shù)值顯示XY Graph顯示X-Y兩個信號的關系圖To File把數(shù)據(jù)

17、保存為文件To Workspace把數(shù)據(jù)寫成矩陣輸出到工作空間Stop Simulation輸入不為零時終止仿真,常與關系模塊配合使用Out輸出模塊3. 連續(xù)系統(tǒng)模塊庫(Continuous)連續(xù)系統(tǒng)模塊是構成連續(xù)系統(tǒng)的環(huán)節(jié),常用的連續(xù)系統(tǒng)模塊如表7.4所示。表7.4 常用的連續(xù)系統(tǒng)模塊表名稱模塊形狀功能說明Integrator積分環(huán)節(jié)Derivative微分環(huán)節(jié)State-Space狀態(tài)方程模型Transfer Fcn傳遞函數(shù)模型Zero-Pole零極點增益模型Transport Delay把輸入信號按給定的時間做延時4. 離散系統(tǒng)模塊庫(Discrete)離散系統(tǒng)模塊是用來構成離散系統(tǒng)的環(huán)

18、節(jié),常用的離散系統(tǒng)模塊如表7.5所示。表7.5 常用的離散系統(tǒng)模塊表名稱模塊形狀功能說明Discrete Transfer Fcn離散傳遞函數(shù)模型Discrete Zero-Pole離散零極點增益模型Discrete State-Space離散狀態(tài)方程模型Discrete Filter離散濾波器Zero-Order Hold零階保持器First-Order Hold一階保持器Unit Delay采樣保持,延遲一個周期7.4.2常用模塊的參數(shù)和屬性設置圖7.13 模塊的參數(shù)設置1. 模塊參數(shù)設置(1) 正弦信號源(Sine Wave)雙擊正弦信號源模塊,會出現(xiàn)如圖7.13所示的參數(shù)設置對話框。圖

19、7.13的上部分為參數(shù)說明,仔細閱讀可以幫助用戶設置參數(shù)。Sine type為正弦類型,包括Time-based和Sample-based;Amplitude為正弦幅值;Bias為幅值偏移值;Frequency為正弦頻率;Phrase為初始相角;Sample time為采樣時間。(2) 階躍信號源(Step)階躍信號模塊是輸入信號源,其模塊參數(shù)對話框如圖7.14所示。圖7.14 階躍信號模塊的參數(shù)其中:Step time為階躍信號的變化時刻,initial value為初始值,F(xiàn)inal value為終止值,Sample time為采樣時間。(3) 從工作空間獲取數(shù)據(jù)(From workspa

20、ce)從工作空間獲取數(shù)據(jù)模塊的輸入信號源為工作空間。【例7.2】在工作空間計算變量t和y,將其運算的結果作為系統(tǒng)的輸入。 t=0:0.1:10; y=sin(t); t=t' y=y' 然后將“From Workspace”模塊的參數(shù)設置對話框打開,如圖7.15(a)所示,在“Data”欄填寫“t,y”,單擊“OK”按鈕完成。則在模型窗口中該模塊就顯示為圖7.15(b)。用示波器作為接收模塊,可以查看輸出波形為正弦波。圖7.15 (a) 模塊參數(shù)設置 (b) 從工作空間獲取數(shù)據(jù)模塊“Data”的輸入有幾種,可以是矩陣、包含時間數(shù)據(jù)的結構數(shù)組?!癋rom Workspace”模塊

21、的接收模塊必須有輸入端口,“Data”矩陣的列數(shù)應等于輸入端口的個數(shù)+1,第一列自動當成時間向量,后面幾列依次對應各端口。 t=0:0.1:2*pi; y=sin(t); y1=t;y; save Ex0702 y1 %保存在“Ex0702.mat”文件中(4) 從文件獲取數(shù)據(jù)(From file)從文件獲取數(shù)據(jù)模塊是指從mat數(shù)據(jù)文件中獲取數(shù)據(jù)為系統(tǒng)的輸入。圖7.16 From File參數(shù)設置將【例7.2】中的數(shù)據(jù)保存到.mat文件: t=0:0.1:2*pi; y=sin(t); y1=t;y; save Ex0702 y1 %保存在“Ex0702.mat”文件中 然后將“From Fi

22、le”模塊的參數(shù)設置對話框打開,如圖7.16所示,在“File name”欄填寫“Ex0702.mat”,單擊“OK”按鈕完成。用示波器作為接收模塊,可以查看輸出波形。(5) 傳遞函數(shù)(Transfer function)圖7.18 圖7.17 傳遞函數(shù)模塊參數(shù)設置傳遞函數(shù)模塊是用來構成連續(xù)系統(tǒng)結構的模塊,其模塊參數(shù)對話框如圖7.17所示。在上圖中設置“Denominator”為“1 1.414 1”,則在模型窗口中顯示為如圖7.18所示。(6) 示波器(Scope)示波器模塊是用來接收輸入信號并實時顯示信號波形曲線,示波器窗口的工具欄可以調(diào)整顯示的波形,顯示正弦信號的示波器如圖7.19所示。

23、打開參數(shù)對話框縱坐標的自動刻度X-Y坐標變焦X坐標變焦圖7.19 示波器窗口把當前的坐標設置保存浮動示波器恢復保存過的坐標設置Y坐標變焦2. 模塊屬性設置每個模塊的屬性對話框的內(nèi)容都相同,如圖7.22所示。圖7.22 模塊的屬性設置(1) 說明(Description)對模塊在模型中用法的注釋。(2) 優(yōu)先級(Priority)規(guī)定該模塊在模型中相對于其它模塊執(zhí)行的優(yōu)先順序。(3) 標記(Tag)圖7.23 模塊的屬性格式字符串用戶為模塊添加的文本格式標記。(4) 調(diào)用函數(shù)(Open function)當用戶雙擊該模塊時調(diào)用的MATLAB函數(shù)。(5) 屬性格式字符串(Attributes fo

24、rmat string)指定在該模塊的圖標下顯示模塊的哪個參數(shù)和格式。7.5復雜系統(tǒng)的仿真與分析Simulink的模型實際上是定義了仿真系統(tǒng)的微分或差分方程組,而仿真則是用數(shù)值解算法來求解方程。仿真的設置在模型窗口選擇菜單“Simulation”à“Simulation parameters”,則會打開參數(shù)設置對話框,如圖7.24所示。圖7.24 Solver參數(shù)設置1. Solver頁的參數(shù)設置(1) 仿真的起始和結束時間仿真的起始時間(Start time)仿真的結束時間(Stop time)(2) 仿真步長仿真的過程一般是求解微分方程組,“Solve options”的內(nèi)容是針

25、對解微分方程組的設置。(3) 仿真解法Type的右邊:設置仿真解法的具體算法類型。(4) 輸出模式根據(jù)需要選擇輸出模式(Output options),可以達到不同的輸出效果。2. Workspace I/O(工作空間輸入輸出)頁的設置如圖7.25所示,可以設置Simulink從工作空間輸入數(shù)據(jù)、初始化狀態(tài)模塊,也可以把仿真的結果、狀態(tài)模塊數(shù)據(jù)保存到當前工作空間。圖7.25 Workspace I/O參數(shù)設置(1) 從工作空間裝載數(shù)據(jù)(Load from workspace)(2) 保存數(shù)據(jù)到工作空間(Save to workspace) § Time欄勾選Time欄后,模型將把(時

26、間)變量以在右邊空白欄填寫的變量名(默認名為tout)存放于工作空間。§ States欄勾選States欄后,模型將把其狀態(tài)變量在右邊空白欄填寫的變量名(默認名為xout)存放于工作空間。§ Output欄如果模型窗口中使用輸出模塊“Out”,那么就必須勾選Output欄,并填寫在工作空間中的輸出數(shù)據(jù)變量名(默認名為yout)。§ Final state欄Final state欄的勾選,將向工作空間以在右邊空白欄填寫的名稱(默認名為xFinal),存放最終狀態(tài)值。(3) 變量存放選項(Save options)Save options必須與Save to work

27、space配合使用。7.5.2連續(xù)系統(tǒng)仿真【例7.3】建立二階系統(tǒng)的仿真模型。方法一:輸入信號源使用階躍信號,系統(tǒng)使用開環(huán)傳遞函數(shù),接受模塊使用示波器來構成模型。(1) 在“Sources”模塊庫選擇“Step”模塊,在“Continuous”模塊庫選擇“Transfer Fcn”模塊,在“Math Operations”模塊庫選擇“Sum”模塊,在“Sinks”模塊庫選擇“Scope”。(2) 連接各模塊,從信號線引出分支點,構成閉環(huán)系統(tǒng)。圖7.26 Sum參數(shù)設置(3) 設置模塊參數(shù),打開“Sum”模塊參數(shù)設置對話框,如圖7.26所示。將“Icon shape”設置為“rectangula

28、r”,將“List of signs”設置為“|+-”,其中“|”表示上面的入口為空?!癟ransfer Fcn”模塊的參數(shù)設置對話框中,將分母多項式“Denominator”設置為“1 0.6 0”。將“Step”模塊的參數(shù)設置對話框中,將“Step time”修改為0。(4) 添加信號線文本注釋雙擊信號線,出現(xiàn)編輯框后,就輸入文本。則模型如圖7.27所示。圖7.27 二階系統(tǒng)模型(5) 仿真并分析單擊工具欄的“Start simulation”按鈕,開始仿真,在示波器上就顯示出階躍響應。在Simulink模型窗口,選擇菜單“Simulation”“Simulation parameters

29、”命令,在“Solver”頁將“Stop time”設置為15,然后單擊“Start simulation”按鈕,示波器顯示的就到15秒結束。打開示波器的Y坐標設置對話框,將Y坐標的“Y-min”改為0,“Y-max”改為2,將“Title”設置為“二階系統(tǒng)時域響應”,則示波器如圖7.28所示。圖7.28 示波器顯示方法二:(1) 系統(tǒng)使用積分模塊(Integrator)和零極點模塊(zero-pole)串聯(lián),反饋使用“Math Operations”模塊庫中的“Gain”模塊構成反饋環(huán)的增益為-1。(2) 連接模塊,由于“Gain”模塊在反饋環(huán)中,因此需要使用“Flip Block”翻轉該模

30、塊。(3) 設置模塊參數(shù),將“zero-pole”模塊參數(shù)對話框中的“Zeros”欄改為“”,將“Poles”欄改為-0.6。圖7.29 二階系統(tǒng)模型將“Gain”模塊的“Gain”參數(shù)改為-1。模型如圖7.29所示。如果將示波器換成“Sinks”模塊庫中的“Out”模塊;然后在仿真參數(shù)設置對話框的“Workspace I/O” 頁(工作空間輸入輸出),將“Time”和“Output”欄勾選,并分別設置保存在工作空間的時間量和輸出變量為“tout”和“yout”。仿真后在工作空間就可以使用這兩個變量來繪制曲線,如圖7.30所示: plot(tout,yout)圖7.30 plot繪制的時域響應

31、波形7.5.3離散系統(tǒng)仿真【例7.4】控制部分為離散環(huán)節(jié),被控對象為兩個連續(xù)環(huán)節(jié),其中一個有反饋環(huán),反饋環(huán)引入了零階保持器,輸入為階躍信號。創(chuàng)建模型并仿真:(1) 選擇一個“Step”模塊,選擇兩個“Transfer Fcn”模塊,選擇兩個“Sum”模塊,選擇兩個“Scope”模塊,選擇一個“Gain”模塊,在“Discrete”模塊庫選擇一個“Discrete Filter”和一個“Zero-Order Hold”模塊。(2) 連接模塊,將反饋環(huán)的“Gain”模塊和“Zero-Order Hold”模塊翻轉。(3) 設置參數(shù),“Discrete Filter”和“Zero-Order Hol

32、d”模塊的“Sample time”都設置為0.1s。圖7.31離散系統(tǒng)框圖(4) 添加文本注釋,系統(tǒng)框圖如圖7.31所示。(5) 設置顏色,Simulink為幫助用戶方便地跟蹤不同采樣頻率的運作范圍和信號流向,可以采用不同的顏色表示不同的采樣頻率,選擇菜單“Format”à“Sample time color”,就可以看到不同采樣頻率的模塊顏色不同。(6) 開始仿真,在Simulink模型窗口,選擇菜單“Simulation”à“Simulation parameters”,將“Max step size”設置為0.05s,則兩個示波器“Scope”和“Scope1”的顯

33、示如圖7.32所示。圖7.32 T=Tk=0.1 (a) d(k)示波器顯示 (b) y(t)示波器顯示可以看出當T=Tk=0.1時系統(tǒng)的輸出響應較平穩(wěn)。圖7.33 T=0.6 Tk=0.1 (a) d(k)示波器顯示 (b) y(t)示波器顯示(7) 修改參數(shù),將“Discrete Filter”模塊的“Sample time”設置為0.6s,“Zero-Order Hold”模塊的“Sample time”不變;選擇菜單“Edit”à“Update diagram”命令修改顏色,就可以看到“Discrete Filter”模塊的顏色變化了;然后開始仿真,則示波器顯示如圖7.33所

34、示。可以看出當T=0.6而Tk=0.1時,系統(tǒng)出現(xiàn)振蕩。(8) 修改參數(shù),將“Discrete Filter” 和“Zero-Order Hold”模塊的“Sample time”都設置為0.6s,更新框圖顏色,開始仿真,則示波器顯示如圖7.34所示。圖7.34 T=0.6 Tk=0.1 (a) d(k)示波器顯示 (b) y(t)示波器顯示當T=Tk=0.6時,系統(tǒng)出現(xiàn)強烈的振蕩。7.5.4仿真結構參數(shù)化當系統(tǒng)參數(shù)需要經(jīng)常改變或由函數(shù)得出時,可以使用變量來作為模塊的參數(shù)?!纠?.5】將【例7.4】中的模塊結構參數(shù)用變量表示,結構圖如圖7.35所示。圖7.35離散系統(tǒng)框圖將參數(shù)設置放在Ex07

35、05_1.m文件中:% Ex0705_1 參數(shù)設置T=0.1; %控制環(huán)節(jié)采樣時間Tk=0.6; %零階保持器采樣時間k=0.03; %Gain增益zt1=1.44;zt2=-1.26;zt3=1;zt4=-1;tf11=6.7;tf12=0.1;tf13=1;tf21=1;tf22=3;tf23=1在MATLAB工作空間運行該文件: Ex0705_1 7.6子系統(tǒng)與封裝7.6.1建立子系統(tǒng)子系統(tǒng)類似于編程語言中的子函數(shù)。建立子系統(tǒng)有兩種方法:在模型中新建子系統(tǒng)和在已有的子系統(tǒng)基礎上建立。1. 在已建立的模型中新建子系統(tǒng)【例7.6】打開【例7.4】建立的模型,將控制對象中的第一個連續(xù)環(huán)節(jié)中的反

36、饋環(huán)建立為一個子系統(tǒng)。在模型窗口中,將控制對象中的第一個連續(xù)環(huán)節(jié)的反饋環(huán)用鼠標拖出的虛線框框住,選擇菜單“Edit”à“Create subsystem”,則系統(tǒng)如圖7.36所示。圖7.36 子系統(tǒng)建立雙擊子系統(tǒng),則會出現(xiàn)“Subsystem”模型窗口,如圖7.37所示??梢钥吹阶酉到y(tǒng)模型除了用鼠標框住的兩個環(huán)節(jié),還自動添加了一個輸入模塊“In1”和一個輸出模塊“Out1”。2. 在已有的子系統(tǒng)基礎上建立【例7.7】在【例7.6】的基礎上建立新子系統(tǒng),將【例7.6】模型的控制對象中的第一個對象環(huán)節(jié)整個作為一個子系統(tǒng)。將圖7.36中的所有對象都復制到新的空白模型窗口中,雙擊打開子系統(tǒng)“

37、Subsystem”,則出現(xiàn)如圖7.37所示的子系統(tǒng)模型窗口,添加模型構成反饋環(huán)形成閉環(huán)系統(tǒng),如圖7.38所示。圖7.38 子系統(tǒng)模塊窗口圖7.37 子系統(tǒng)模型窗口然后將系統(tǒng)模型修改為如圖7.39所示的系統(tǒng)。圖7.39 包含子系統(tǒng)的模型創(chuàng)建的子系統(tǒng)可以打開和修改,但不能再解除子系統(tǒng)設置。7.6.2條件執(zhí)行子系統(tǒng)1. 使能子系統(tǒng)(Enabled Subsystem)圖7.41 (a) “Enable”模塊參數(shù)設置 (b) “Out1”模塊參數(shù)設置【例7.8】建立一個用使能子系統(tǒng)控制正弦信號為半波整流信號的模型。模型由正弦信號“Sine wave”為輸入信號源,示波器“Scope”為接收模塊,使能

38、子系統(tǒng)“Enabled Subsystem”為控制模塊,連接模塊,將“Sine wave”模塊的輸出作為“Enabled Subsystem”的控制信號,模型如圖7.42(a)所示。開始仿真,由于“Enabled Subsystem”的控制為正弦信號,大于零時執(zhí)行輸出,小于零時就停止,則示波器顯示為半波整流信號,示波器的顯示如圖7.42(b)所示。圖7.42 (a) 使能子系統(tǒng)模型 (b) 示波器顯示2. 觸發(fā)子系統(tǒng)(Triggered Subsystem)圖7.43 (a) 觸發(fā)子系統(tǒng)模型 (b) 示波器顯示【例7.9】建立一個用觸發(fā)子系統(tǒng)控制正弦信號輸出階梯波形的模型。模型由正弦信號“Si

39、ne wave”為輸入信號源,示波器“Scope”為接收模塊,觸發(fā)子系統(tǒng)“Triggered Subsystem”為控制模塊,選擇“Sources”模塊庫中的“Pulse Generator”模塊為控制信號。連接模塊,將“Pulse Generator”模塊的輸出作為“Triggered Subsystem”的控制信號,模型如圖7.43(a)所示。開始仿真,由于“Triggered Subsystem”的控制為“Pulse Generator”模塊的輸出,示波器輸出如圖7.43(b)所示。3. 使能觸發(fā)子系統(tǒng)(Enabled and Triggered Subsystem)使能觸發(fā)子系統(tǒng)就是觸

40、發(fā)子系統(tǒng)和使能子系統(tǒng)的組合,含有觸發(fā)信號和使能信號兩個控制信號輸入端,觸發(fā)事件發(fā)生后,Simulink檢查使能信號是否大于0,大于0就開始執(zhí)行。7.6.3子系統(tǒng)的封裝1. 封裝子系統(tǒng)的步驟(1) 選中子系統(tǒng)雙擊打開,給需要進行賦值的參數(shù)指定一個變量名;(2) 選擇菜單“Edit”à“Mask subsystem”,出現(xiàn)封裝對話框;(3) 在封裝對話框中的設置參數(shù),主要有“Icon”、“Parameters”、“Initialization”和“Documentation”四個選項卡。2. Icon選項卡Icon選項卡用于設定封裝模塊的名字和外觀,如圖7.44所示。圖7.44 Icon

41、參數(shù)設置(1) Drawing commands欄用來建立用戶化的圖標,可以在圖標中顯示文本、圖像、圖形或傳遞函數(shù)等。在Drawing commands欄中的命令如上圖中“Examples of drawing commands”的下拉列表所示,包括plot、disp、text、port_label、image、patch、color、droots、dploy和fprintf。(2) Icon Options欄用于設置封裝模塊的外觀。3. Parameters選項卡Parameters選項卡用于輸入變量名稱和相應的提示,如圖7.45所示。圖7.45 Parameters參數(shù)設置(1) Add、

42、Delete、Move up和Move down按鈕用于添加、刪除、上移和下移輸入變量。(2) Dialog Parameters§ Prompt:輸入變量的含義,其內(nèi)容會顯示在輸入提示中。§ Variable:輸入變量的名稱。§ type:給用戶提供設計編輯區(qū)的選擇?!癊dit”提供一個編輯框;“Checkbox”提供一個復選框;“Popup”提供一個彈出式菜單。§ Evaluate:用于配合“type”的不同選項提供不同的變量值,有兩個選項“Evaluate”和“Literal”,其含義如表7.6所示。表7.6 Assignment選項的不同含義 E

43、valuatetypeonoffEdit輸入的文字是程序執(zhí)行時所用的變量值將輸入的內(nèi)容作為字符串Checkbox輸出1和0輸出為on或offPopup將選擇的序號作為數(shù)值,第一項則為1將選擇的內(nèi)容當作字符串(3) Options for selected parameter§ Pops:當“type”選擇“Popup”時,用于輸入下拉菜單項。§ Callback:用于輸入回調(diào)函數(shù)。4. Initialization選項卡Initialization選項卡用于初始化封裝子系統(tǒng)。5. Documentation選項卡Documentation選項卡用于編寫與該封裝模塊對應的He

44、lp和說明文字,分別有“Mask type”、“Mask Description”和“Mask help”欄。(1) Mask type欄用于設置模塊顯示的封裝類型。(2) Mask Description欄用于輸入描述文本。(3) Mask help欄用于輸入幫助文本。6. 按鈕設置參數(shù)設置對話框中的“Apply”按鈕用于將修改的設置應用于封裝模塊;“Unmask”按鈕用于將封裝撤銷,則雙擊該模塊就不會出現(xiàn)定制的對話框?!纠?.10】創(chuàng)建一個二階系統(tǒng),并將子系統(tǒng)進行封裝。創(chuàng)建一個二階系統(tǒng),將其閉環(huán)系統(tǒng)構成子系統(tǒng),并封裝將阻尼系數(shù)zeta和無阻尼頻率wn作為輸入?yún)?shù)。(1) 創(chuàng)建模型,并將系統(tǒng)

45、的阻尼系數(shù)用變量zeta表示,無阻尼頻率用變量wn表示,如圖7.46所示。圖7.46 二階系統(tǒng)模型(2) 用虛線框框住反饋環(huán),選擇菜單“Edit”à“Create Subsystem”,則產(chǎn)生子系統(tǒng),如圖7.47所示。圖7.47 子系統(tǒng)模型(3) 封裝子系統(tǒng),選擇菜單“Edit”à“Mask subsystem”,出現(xiàn)封裝對話框,將zeta和wn作為輸入?yún)?shù)。在Icon選項卡中設置的“Drawing commands”欄中寫文字并畫曲線,命令如下:disp('二階系統(tǒng)')plot(0 1 2 3 10,-exp(-0 1 2 3 10)在Parameters

46、選項卡中,單擊“Add”按鈕添加兩個輸入?yún)?shù),設置“Prompt”分別為“阻尼系數(shù)”和“無阻尼振蕩頻率”,并設置“type”欄分別為“Popup”和“edit”,對應的“Variable”為“zeta”和“wn” ,設置“Popups”為“0 0.3 0.5 0.707 1 2”,如圖7.48(a)所示。在Initialization選項卡初始化輸入?yún)?shù),如圖7.48(b)所示。圖7.48 (a) Parameters選項卡 (b) Initialization選項卡在Documentation選項卡中輸入提示和幫助信息,如圖7.48(c)所示。圖7.48(c) Documentation選項

47、卡 單擊“OK”按鈕,完成參數(shù)設置,然后雙擊該封裝子系統(tǒng),則出現(xiàn)如圖7.49(a)所示的封裝子系統(tǒng),雙擊該子系統(tǒng)出現(xiàn)圖7.49(b)所示的輸入?yún)?shù)對話框,在對話框中輸入“阻尼系數(shù)”zeta和“無阻尼振蕩頻率”wn的值,再不需要為子系統(tǒng)中的每個模塊分別打開參數(shù)設置對話框了。圖7.49 (a) 封裝子系統(tǒng)外觀 (b) 封裝子系統(tǒng)參數(shù)輸入對話框 7.7用MATLAB命令創(chuàng)建和運行Simulink模型7.7.1用MATLAB命令創(chuàng)建Simulink模型1. Simulink模型與文件(1) 創(chuàng)建新模型new_system命令用來在MATLAB的工作空間創(chuàng)建一個空白的Simulink模型。語法:new_

48、system(newmodel,option) %創(chuàng)建新模型說明:newmodel為模型名;option選項可以是Library和Model兩種,也可以省略,默認為Model。(2) 打開模型open_system命令用來打開邏輯模型,在Simulink模型窗口顯示該模型。語法:open_system(model) %打開模型說明:model為模型名。(3) 保存模型save_system命令用來保存模型為模型文件,擴展名為.mdl。語法:save_system(model,文件名) %保存模型說明:model為模型名可省略,如果不給出模型名,則自動保存當前的模型;文件名指保存的文件名,是字符

49、串,也可省略,如果不省略則保存為新文件?!纠?.11】用MATLAB命令創(chuàng)建新模型。 new_system('Ex0711model') %創(chuàng)建邏輯模型 open_system('Ex0711model') %打開模型 save_system('Ex0711model','Ex0711') %保存模型文件2. 添加模塊和信號線(1) 添加模塊使用add_block命令在打開的模型窗口中添加新模塊。語法:add_block(源模塊名,目標模塊名,屬性名1,屬性值1,屬性名2,屬性值2,)說明:源模塊名為一個已知的庫模塊名,或在其它模

50、型窗口中定義的模塊名,Simulink自帶的模塊為內(nèi)在模塊,例如正弦信號模塊為built-in/Sine Wave;目標模塊名為在模型窗口中使用的模塊名。(2) 添加信號線模塊需要用信號線連接起來,添加信號線使用add_line命令。語法:add_line(模塊名,起始模塊名/輸出端口號, 終止模塊名/輸入端口號)add_line(模塊名,m)說明:模塊名為在模型窗口中的模塊名;m為有兩列元素的矩陣,每列給出一個轉折點坐標?!纠?.11續(xù)】用MATLAB命令添加四個模塊連接成一個二階系統(tǒng)模型。 add_block('built-in/Step','Ex0711/Step

51、','position',20,100,40,120) %添加階躍信號模塊 add_block('built-in/Sum','Ex0711/Sum','position',60,100,80,120) %添加Sum模塊 add_block('built-in/Transfer Fcn','Ex0711/Fcn1','position',120,90,200,130) %添加傳遞函數(shù)模塊 add_block('built-in/Scope','Ex07

52、11/Scope','position',240,100,260,120) %添加示波器模塊 add_line('Ex0711','Step/1','Sum/1') %添加連線 add_line('Ex0711','Sum/1','Fcn1/1') add_line('Ex0711','Fcn1/1','Scope/1') add_line('Ex0711','Fcn1/1','Sum/2

53、')程序分析:'position'為位置屬性,模塊名為'Ex0711'。則出現(xiàn)如圖7.50所示的模型。圖7.50 二階系統(tǒng)模型3. 設置模型和模塊屬性(1) 模型屬性的獲得【例7.11續(xù)】獲得模型屬性和各屬性的含義。 f1=simget('Ex0711')f1 = AbsTol: 'auto' %絕對允許誤差限 Debug: 'off' %是否允許跟蹤調(diào)試 Decimation: 1 %輸出位數(shù),每個1點輸出1次 DstWorkspace: 'current' %輸出量工作空間 FinalStateName: ''

溫馨提示

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

評論

0/150

提交評論