MATLAB代做  | MATLAB代寫  | MATLAB有償編程
首 頁
當前位置:MATLAB代做|MATLAB代寫|MATLAB有償編程matlab源碼Simulink仿真
仿真環境基礎學習        [↓跳到下載地址]
官方主頁:源碼共享網站:www.kggbzb.tw

聯系方式:客服QQ:1747812398 買代碼源碼軟件站,歡迎咨詢

運行環境:Win9X/2000/XP/2003/

源碼語言:簡體中文

源碼類型:源碼程序 - Simulink仿真

推薦星級:

更新時間:2012-11-21 23:40:41

源碼簡介

【例 7.1】創建一個正弦信號的仿真模型。
步驟如下:
(1) 在 MATLAB的命令窗口運行 simulink 命令,或單擊工具欄中的 圖標,就可以打開Simulink 模塊庫瀏覽器(Simulink Library Browser)  窗口,如圖 7.1 所示。
(2) 單擊工具欄上的 圖標或選擇菜單“File”——“New”——“Model”,新建一個名為“untitled”的空白模型窗口。
(3) 在上圖的右側子模塊窗口中,單擊“Source”子模塊庫前的“+”(或雙擊 Source),或者直接在左側模塊和工具箱欄單擊 Simulink 下的 Source子模塊庫,便可看
到各種輸入源模塊。
(4) 用鼠標單擊所需要的輸入信號源模塊“Sine Wave”(正弦信號),將其拖放到的空白模型窗口“untitled”,則“Sine Wave”模塊就被添加到 untitled 窗口;也可
以用鼠標選中“Sine Wave”模塊,單擊鼠標右鍵,在快捷菜單中選擇“add to 'untitled'”命令,就可以將“Sine Wave”模塊添加到untitled 窗口,如圖 7.2 所示。
圖 7.1 Simulink 界面
(5) 用同樣的方法打開接收模塊庫“Sinks”,選擇其中的“Scope”模塊(示波器)拖放到“untitled”窗口中。
(6) 在“untitled”窗口中,用鼠標指向“Sine Wave”右側的輸出端,當光標變為十字符時,按住鼠標拖向“Scope”模塊的輸入端,松開鼠標按鍵,就完成了兩個
模塊間的信號線連接,一個簡單模型已經建成。如圖7.3 所示。
(7) 開始仿真,單擊“untitled”模型窗口中“開始仿真”圖標 ,或者選擇菜單“Simulink”——“Start”,則仿真開始。雙擊“Scope”模塊出現示波器顯示屏,
可以看到黃色的正弦波形。如圖7.4 所示。
圖 7.2 Simulink 界面
(8) 保存模型,單擊工具欄的 圖標,將該模型保存為 “Ex0701.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. 打開文件
打開仿真模型文件有幾種操作:
?  在 MATLAB的命令窗口輸入不加擴展名的文件名,該文件必須在當前搜索路徑中,例如輸入“Ex0701”。
?  在 MATLAB的命令窗口選擇菜單“File”?Open…”或者單擊工具欄的 圖標打開文件。
?  在圖7.1的 Simulink 模塊庫瀏覽器窗口選擇菜單“File”?“Open…”或者單擊工具欄的 圖標打開“.mdl”文件。
圖 7.3 Simulink 模型窗口
圖 7.4  示波器窗口
?  在圖7.3的 Simulink 模型窗口中選擇菜單“File”?“Open…”或者單擊工具欄的 圖標打開文件。
7.2.2 Simulink的模型窗口
模型窗口由菜單、工具欄、模型瀏覽器窗口、模型框圖窗口以及狀態欄組成。
 

正弦波輸出
Signal Generator
 
信號發生器,可以產生正弦、方波、鋸齒波和隨機波信號
From File
 
從文件獲取數據
From Workspace
 
從當前工作空間定義的矩陣讀數據
Clock
 
仿真時鐘,輸出每個仿真步點的時間
In
 
輸入模塊
 
2. 接收模塊庫(Sinks)
接收模塊是用來接收模塊信號的,常用的接收模塊如表 7.3 所示。
表 7.3  常用的接收模塊表
名稱  模塊形狀  功能說明
Scope
 
示波器,顯示實時信號
Display
 
實時數值顯示
XY Graph
 
顯示X-Y兩個信號的關系圖
To File
 
把數據保存為文件
To Workspace
 
把數據寫成矩陣輸出到工作空間
Stop Simulation
 
輸入不為零時終止仿真,常與關系模塊配合使用
Out
 
輸出模塊
 
3. 連續系統模塊庫(Continuous)
連續系統模塊是構成連續系統的環節,常用的連續系統模塊如表 7.4所示。
表 7.4  常用的連續系統模塊表
名稱  模塊形狀  功能說明
Integrator
 
積分環節
Derivative
 
微分環節
State-Space
 
狀態方程模型
Transfer Fcn
 
傳遞函數模型
Zero-Pole
 
零—極點增益模型
Transport Delay
 
把輸入信號按給定的時間做延時
 
4. 離散系統模塊庫(Discrete)
離散系統模塊是用來構成離散系統的環節,常用的離散系統模塊如表 7.5 所示。
 
表 7.5  常用的離散系統模塊表
名稱  模塊形狀  功能說明
Discrete Transfer Fcn
 
離散傳遞函數模型
Discrete Zero-Pole
 
離散零極點增益模型
Discrete State-Space
 
離散狀態方程模型
Discrete Filter
 
離散濾波器
Zero-Order Hold
 
零階保持器
First-Order Hold
 
一階保持器
Unit Delay
 
采樣保持,延遲一個周期
7.4.2 常用模塊的參數和屬性設置
1. 模塊參數設置
(1) 正弦信號源(Sine Wave)
雙擊正弦信號源模塊,會出現如圖7.13所示的 參數設置對話框。
圖 7.13的上部分為參數說明,仔細閱讀可以幫 助用戶設置參數。Sine type 為正弦類型,包括 Time-based 和
Sample-based;Amplitude為正弦幅值;Bias 為幅值 偏移值;Frequency為正弦頻率;Phrase為初始相角;Sample time 為采
樣時間。
 
(2) 階躍信號源(Step)
階躍信號模塊是輸入信號源,其模塊參數對話 框如圖7.14所示。
其中: Step time 為階躍信號的變化時刻, initial  value為初始值,Final value 為終止值,Sample time 為采樣時間。
(3) 從工作空間獲取數據(From workspace)
從工作空間獲取數據模塊的輸入信號源為工 作空間。
【例 7.2】在工作空間計算變量 t 和 y,將其運算的結果作為系統
的輸入。
 t=0:0.1:10;
 y=sin(t);
 t=t';
 y=y';   
圖 7.14  階躍信號模塊的參數
圖 7.13  模塊的參數設置
然后將“From Workspace”模塊的參數設置對話框打開,如圖7.15(a)所示,在“Data”欄填寫“[t,y]”,單擊“OK”按鈕完成。則在模型窗口中該模塊就顯示為圖
7.15(b)。用示波器作為接收模塊,可以查看輸出波形為正弦波。
“Data”的輸入有幾種,可以是矩陣、包含時間數據的結構數組。“From Workspace”模塊的接收模塊必須有輸入端口,“Data”矩陣的列數應等于輸入端口的個
數+1,第一列自動當成時間向量,后面幾列依次對應各端口。
  t=0:0.1:2*pi;
  y=sin(t);
  y1=[t;y];
  save Ex0702 y1         %保存在“Ex0702.mat”文件中
(4) 從文件獲取數據(From file)
從文件獲取數據模塊是指從 mat數據文件中獲取數據為系統的輸入。
將【例7.2】中的數據保存到.mat 文件:
 t=0:0.1:2*pi;
 y=sin(t);
 y1=[t;y];
 save Ex0702 y1       %保存在 “Ex0702.mat”文件中
然后將“From File”模塊的參數設置對話框 打開,如圖7.16 所示,在“File name”欄填寫“Ex0702.mat”,單
擊“OK”按鈕完成。用示波器作為接收模塊,可 以查看輸出波形。
 
(5) 傳遞函數(Transfer function)
圖 7.15 (a)  模塊參數設置               (b)  從工作空間獲取數據模塊
圖 7.16 From File 參數設置
傳遞函數模塊是用來構成連續系統結構的模塊,其模塊參數對話框如圖 7.17所示。
 
在上圖中設置“Denominator”為“[1 1.414 1]”,則在模型窗口中顯
示為如圖 7.18 所示。
(6) 示波器(Scope)
示波器模塊是用來接收輸入信號并實時顯示信號波形曲線,示波器窗
口的工具欄可以調整顯示的波形,顯示正弦信號的示波器如圖7.19所示。
 
2. 模塊屬性設置
每個模塊的屬性對話框的內容都相同,如圖 7.22所示。
圖 7.17  傳遞函數模塊參數設置
圖 7.18  
打開參數對話框
縱坐標
的自動
 
X-Y坐標變焦
X坐標變焦
圖 7.19  示波器窗口
把當前的坐
標設置保存
浮動示波器
恢復保存過
的坐標設置
Y坐標變焦
(1) 說明(Description)
對模塊在模型中用法的注釋。
(2) 優先級(Priority)
規定該模塊在模型中相對于其它模塊執行的優先順序。
(3) 標記(Tag)
用戶為模塊添加的文本格式標記。
(4) 調用函數(Open function)
當用戶雙擊該模塊時調用的 MATLAB函數。
(5) 屬性格式字符串(Attributes format string)
指定在該模塊的圖標下顯示模塊的哪個參數和格 式。
7.5復雜系統的仿真與分析
Simulink 的模型實際上是定義了仿真系統的微分或差分方程組,而仿真則是用數值解算法來求解方程。
圖 7.22  模塊的屬性設置
圖 7.23  模塊的屬性格式字符串
7.5.1 仿真的設置
在模型窗口選擇菜單“Simulation”?“Simulation parameters…”,則會打開參數設置對話框,如圖7.24 所示。
1. Solver頁的參數設置
(1) 仿真的起始和結束時間
仿真的起始時間(Start time)
仿真的結束時間(Stop time)
(2) 仿真步長
仿真的過程一般是求解微分方程組,“Solve options”的內容是針對解微分方程組的設置。
(3) 仿真解法
Type 的右邊:設置仿真解法的具體算法類型。
(4) 輸出模式
根據需要選擇輸出模式(Output options),可以達到不同的輸出效果。
 
2. Workspace I/O(工作空間輸入輸出)頁的設置
如圖7.25 所示,可以設置 Simulink從工作空間輸入數據、初始化狀態模塊,也可以把仿真的結果、狀態模塊數據保存到當前工作空間。
圖 7.24 Solver 參數設置
(1) 從工作空間裝載數據(Load from workspace)
(2) 保存數據到工作空間(Save to workspace)  
?    Time 欄
勾選 Time 欄后,模型將把(時間)變量以在右邊空白欄填寫的變量名(默認名為 tout)存放于工作空間。
?  States 欄
勾選 States欄后,模型將把其狀態變量在右邊空白欄填寫的變量名(默認名為 xout)存放于工作空間。
?  Output欄
如果模型窗口中使用輸出模塊“Out”,那么就必須勾選 Output欄,并填寫在工作空間中的輸出數據變量名(默認名為 yout)。
?  Final state 欄
Final state 欄的勾選,將向工作空間以在右邊空白欄填寫的名稱(默認名為xFinal),存放最終狀態值。
(3) 變量存放選項(Save options)
Save options必須與Save to workspace配合使用。
7.5.2 連續系統仿真
【例 7.3】建立二階系統的仿真模型。
方法一:
輸入信號源使用階躍信號,系統使用開環傳遞函數 s 6 . 0 s
1
2
+
,接受模塊使用示波器來構成模型。
圖 7.25 Workspace I/O 參數設置
(1) 在“Sources”模塊庫選擇“Step”模塊,在“Continuous”模塊庫選擇“Transfer Fcn”模塊,在“Math Operations”模塊庫選擇“Sum”模塊,在“Sinks”模塊
庫選擇“Scope”。
(2) 連接各模塊,從信號線引出分支點,構成閉環系統。
(3) 設置模塊參數,打開“Sum”模塊參數設置對話框,如圖7.26所示。將“Icon shape”設置為“rectangular”,將“List of signs”設置為“|+-”,其中“|”表示
上面的入口為空。
“Transfer Fcn”模塊的參數設置對話框中,將分母多項式“Denominator”設置為“[1 0.6 0]”。
將“Step”模塊的參數設置對話框中,將“Step time”修改為0。
(4) 添加信號線文本注釋
雙擊信號線,出現編輯框后,就輸入文本。則模型如圖 7.27所示。
(5) 仿真并分析
單擊工具欄的“Start simulation”按鈕,開始仿真,在示波器上就顯示出階躍響應。
在 Simulink 模型窗口,選擇菜單“Simulation”——“Simulation parameters…”命令,在“Solver”頁將“Stop time”設置為15,然后單擊“Start simulation”按鈕,
示波器顯示的就到15 秒結束。
打開示波器的Y 坐標設置對話框,將Y 坐標的“Y-min”改為 0,“Y-max”改為2,將“Title”設置為“二階系統時域響應”,則示波器如圖 7.28所示。
圖 7.27  二階系統模型
圖 7.26 Sum 參數設置
方法二:
(1) 系統使用積分模塊(Integrator)和零極點模塊(zero-pole)串聯,反饋使用“Math Operations”模塊庫中的“Gain”模塊構成反饋環的增益為-1。
(2) 連接模塊,由于“Gain”模塊在反饋環中,因此需要使用“Flip Block”翻轉該模塊。
(3) 設置模塊參數,將“zero-pole”模塊參數對話框中的“Zeros”欄改為“[]”,將“Poles”欄改為[-0.6]。
將“Gain”模塊的“Gain”參數改為-1。模型如圖 7.29 所示。
如果將示波器換成“Sinks”模塊庫中的“Out”模塊 ;然后在仿真參數設置對話框的“Workspace I/O”  頁(工作空間輸入輸出),將“Time”和“Output”
欄勾選,并分別設置保存在工作空間的時間量和輸出變量為“tout”和“yout”。仿真后在工作空間就可以使用這兩個變量來繪制曲線,如圖7.30 所示:
  plot(tout,yout)
圖 7.28  示波器顯示
圖 7.29  二階系統模型
7.5.3 離散系統仿真
【例 7.4】控制部分為離散環節,被控對象為兩個連續環節,其中一個有反饋環,反饋環引入了零階保持器,輸入為階躍信號。
創建模型并仿真:
(1) 選擇一個“Step”模塊,選擇兩個“Transfer Fcn”模塊,選擇兩個“Sum”模塊,選擇兩個“Scope”模塊,選擇一個“Gain”模塊,在“Discrete”模塊庫選擇
一個“Discrete  Filter”和一個“Zero-Order Hold”模塊。
(2) 連接模塊,將反饋環的“Gain”模塊和“Zero-Order Hold”模塊翻轉。
(3) 設置參數,“Discrete Filter”和“Zero-Order Hold”模塊的“Sample time”都設置為0.1s。
(4) 添加文本注釋,系統框圖如圖7.31所示。
圖 7.30  plot繪制的時域響應波形
圖 7.31 離散系統框圖
(5) 設置顏色, Simulink 為幫助用戶方便地跟蹤不同采樣頻率的運作范圍和信號流向,可以采用不同的顏色表示不同的采樣頻率,選擇菜單“Format” ? “Sample time
color”,就可以看到不同采樣頻率的模塊顏色不同。
(6) 開始仿真,在Simulink模型窗口,選擇菜單“Simulation”?“Simulation parameters…”,將“Max step size”設置為0.05s,則兩個示波器“Scope”和“Scope1”
的顯示如圖7.32 所示。
可以看出當 T=Tk=0.1 時系統的輸出響應較平穩。
(7) 修改參數,將“Discrete Filter”模塊的“Sample time”設置為 0.6s,“Zero-Order Hold”模塊的“Sample time”不變;選擇菜單“Edit”?“Update diagram”命
令修改顏色,就可以看到“Discrete Filter”模塊的顏色變化了;然后開始仿真,則示波器顯示如圖 7.33所示。
可以看出當 T=0.6而 Tk=0.1 時,系統出現振蕩。
(8) 修改參數,將“Discrete Filter” 和“Zero-Order Hold”模塊的“Sample time”都設置為0.6s,更新框圖顏色,開始仿真,則示波器顯示如圖 7.34 所示。
圖 7.32 T=Tk=0.1 (a) d(k)示波器顯示                                   (b) y(t)示波器顯示
圖 7.33 T=0.6 Tk=0.1 (a) d(k)示波器顯示                             (b) y(t)示波器顯示
當 T=Tk=0.6時,系統出現強烈的振蕩。
7.5.4 仿真結構參數化
當系統參數需要經常改變或由函數得出時,可以使用變量來作為模塊的參數。
【例 7.5】將【例 7.4】中的模塊結構參數用變量表示,結構圖如圖 7.35所示。
將參數設置放在 Ex0705_1.m文件中:
% Ex0705_1    參數設置
T=0.1;                %控制環節采樣時間
圖 7.34 T=0.6 Tk=0.1 (a) d(k)示波器顯示                          (b) y(t)示波器顯示
圖 7.35 離散系統框圖
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子系統與封裝
 
7.6.1 建立子系統
子系統類似于編程語言中的子函數。建立子系統有兩種方法:在模型中新建子系統和在已有的子系統基礎上建立。
1. 在已建立的模型中新建子系統
【例 7.6】打開【例 7.4】建立的模型,將控制對象中的第一個連續環節中的反饋環建立為一個子系統。
在模型窗口中,將控制對象中的第一個連續環節的反饋環用鼠標拖出的虛線框框住,選擇菜單“Edit”?“Create subsystem”,則系統如圖 7.36所示。
雙擊子系統,則會出現“Subsystem”模型窗口,如圖 7.37所示。可以看到子系統模型除了用鼠標框住的兩個環節,還自動添加了一個輸入模塊“In1”和一個輸出
模塊“Out1”。
 
2. 在已有的子系統基礎上建立
【例 7.7】在【例 7.6】的基礎上建立新子系統,將【例 7.6】模型的控制對象中的第一個對象環節整個作為一個子系統。
圖 7.36  子系統建立
將圖7.36 中的所有對象都復制到新的空白模型窗口中,雙擊打開子系統“Subsystem”,則出現如圖7.37所示的子系統模型窗口,添加模型構成反饋環形成閉環系
統,如圖 7.38 所示。
然后將系統模型修改為如圖 7.39所示的系統。
創建的子系統可以打開和修改,但不能再解除子系統設置。
7.6.2 條件執行子系統
1. 使能子系統(Enabled Subsystem)
圖 7.39  包含子系統的模型
圖 7.38  子系統模塊窗口
圖 7.37  子系統模型窗口
【例 7.8】建立一個用使能子系統控制正弦信號為半波整流信號的模型。
模型由正弦信號“Sine wave”為輸入信號源,示波器“Scope”為接收模塊,使能子系統“Enabled Subsystem”為控制模塊,
連接模塊,將“Sine wave”模塊的輸出作為“Enabled Subsystem”的控制信號,模型如圖7.42(a)所示。
開始仿真,由于“Enabled Subsystem”的控制為正弦信號,大于零時執行輸出,小于零時就停止,則示波器顯示為半波整流信號,示波器的顯示如圖7.42(b)所示。
 
2. 觸發子系統(Triggered Subsystem)
【例 7.9】建立一個用觸發子系統控制正弦信號輸出階梯波形的模型。
圖 7.42 (a)  使能子系統模型                        (b)  示波器顯示
圖 7.43 (a)  觸發子系統模型                           (b)  示波器顯示
圖 7.41 (a)  “Enable”模塊參數設置                     (b)  “Out1”模塊參數設置
模型由正弦信號“Sine wave”為輸入信號源,示波器“Scope”為接收模塊,觸發子系統“Triggered Subsystem”為控制模塊,選擇“Sources”模塊庫中的“Pulse Generator”
模塊為控制信號。
連接模塊,將“Pulse Generator”模塊的輸出作為“Triggered Subsystem”的控制信號,模型如圖 7.43(a)所示。
開始仿真,由于“Triggered Subsystem”的控制為“Pulse Generator”模塊的輸出,示波器輸出如圖7.43(b)所示。
 
3. 使能觸發子系統(Enabled and Triggered Subsystem)
使能觸發子系統就是觸發子系統和使能子系統的組合,含有觸發信號和使能信號兩個控制信號輸入端,觸發事件發生后,Simulink 檢查使能信號是否大于 0,大于
0 就開始執行。
7.6.3 子系統的封裝
1. 封裝子系統的步驟
(1) 選中子系統雙擊打開,給需要進行賦值的參數指定一個變量名;
(2) 選擇菜單“Edit”?“Mask subsystem”,出現封裝對話框;
(3) 在封裝對話框中的設置參數,主要有“Icon”、“Parameters”、“Initialization”和“Documentation”四個選項卡。
 
2.  Icon選項卡
Icon選項卡用于設定封裝模塊的名字和外觀,如圖 7.44 所示。
(1) Drawing commands 欄
用來建立用戶化的圖標,可以在圖標中顯示文本、圖像、圖形或傳遞函數等。在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.44 Icon 參數設置
(1) Add 、Delete 、Move up 和 Move down 按鈕
用于添加、刪除、上移和下移輸入變量。
(2) Dialog Parameters
?  Prompt:輸入變量的含義,其內容會顯示在輸入提示中。
?  Variable:輸入變量的名稱。
?  type:給用戶提供設計編輯區的選擇。“Edit”提供一個編輯框;“Checkbox”提供一個復選框;“Popup”提供一個彈出式菜單。
?  Evaluate:用于配合“type”的不同選項提供不同的變量值,有兩個選項“Evaluate”和“Literal”,其含義如表 7.6 所示。
表 7.6 Assignment 選項的不同含義
   Evaluate
type
on  off
Edit  輸入的文字是程序執行時所用的變量值  將輸入的內容作為字符串
Checkbox  輸出1和0  輸出為on或off
Popup  將選擇的序號作為數值,第一項則為1  將選擇的內容當作字符串
(3) Options for selected parameter
?  Pops:當“type”選擇“Popup”時,用于輸入下拉菜單項。
圖 7.45 Parameters 參數設置
?  Callback:用于輸入回調函數。
 
4. Initialization 選項卡
Initialization 選項卡用于初始化封裝子系統。
 
5. Documentation選項卡
Documentation 選項卡用于編寫與該封裝模塊對應的Help 和說明文字,分別有“Mask type”、“Mask Description”和“Mask help”欄。
(1) Mask type欄
用于設置模塊顯示的封裝類型。
(2) Mask Description 欄
用于輸入描述文本。
(3) Mask help 欄
用于輸入幫助文本。
 
6. 按鈕
設置參數設置對話框中的“Apply”按鈕用于將修改的設置應用于封裝模塊;“Unmask”按鈕用于將封裝撤銷,則雙擊該模塊就不會出現定制的對話框。
 
【例 7.10】創建一個二階系統,并將子系統進行封裝。
創建一個二階系統,將其閉環系統構成子系統,并封裝將阻尼系數 zeta 和無阻尼頻率 wn作為輸入參數。
(1) 創建模型,并將系統的阻尼系數用變量 zeta 表示,無阻尼頻率用變量wn 表示,如圖7.46所示。
(2) 用虛線框框住反饋環,選擇菜單“Edit”?“Create Subsystem”,則產生子系統,如圖 7.47 所示。
圖 7.46  二階系統模型
(3) 封裝子系統,選擇菜單“Edit”?“Mask subsystem”,出現封裝對話框,將 zeta 和wn作為輸入參數。
在 Icon 選項卡中設置的“Drawing commands”欄中寫文字并畫曲線,命令如下:
disp('二階系統')
plot([0 1 2 3 10],-exp(-[0 1 2 3 10]))
在 Parameters 選項卡中,單擊“Add” 按鈕添加兩個輸入參數,設置“Prompt”分別為“阻尼系數”和“無阻尼振蕩頻率”,并設置“type”欄分別為“Popup”
和“edit”,對應的“Variable”為“zeta”和“wn”  ,設置“Popups”為“0 0.3 0.5 0.707 1 2”,如圖 7.48(a)所示。
在 Initialization 選項卡初始化輸入參數,如圖7.48(b)所示。
在 Documentation 選項卡中輸入提示和幫助信息,如圖 7.48(c)所示。
圖 7.47  子系統模型
圖 7.48 (a) Parameters選項卡                           (b) Initialization 選項卡
單擊“OK”按鈕,完成參數設置,然后雙擊該封裝子系統,則出現如圖7.49(a)所示的封裝子系統,雙擊該子系統出現圖7.49(b)所示的輸入參數對話框,在對話框
中輸入“阻尼系數”zeta 和“無阻尼振蕩頻率”wn 的值,再不需要為子系統中的每個模塊分別打開參數設置對話框了。
 
圖 7.48(c) Documentation 選項卡                       
圖 7.49 (a)  封裝子系統外觀                       (b)  封裝子系統參數輸入對話框                        
7.7用 MATLAB命令創建和運行 Simulink 模型
7.7.1 用 MATLAB 命令創建 Simulink模型
1. Simulink模型與文件
(1) 創建新模型
new_system命令用來在 MATLAB的工作空間創建一個空白的 Simulink 模型。
語法:
    new_system(‘newmodel’,option)       %創建新模型
說明:‘newmodel’為模型名;option 選項可以是’Library’和’Model’兩種,也可以省略,默認為’Model’。
(2) 打開模型
open_system命令用來打開邏輯模型,在 Simulink 模型窗口顯示該模型。
語法:
    open_system(‘model’)           %打開模型
說明:‘model’為模型名。
(3) 保存模型
save_system命令用來保存模型為模型文件,擴展名為.mdl。
語法:
    save_system(‘model’,文件名)         %保存模型
說明:‘model’為模型名可省略,如果不給出模型名,則自動保存當前的模型;文件名指保存的文件名,是字符串,也可省略,如果不省略則保存為新文件。
【例 7.11】用 MATLAB命令創建新模型。
  new_system('Ex0711model')        %創建邏輯模型
  open_system('Ex0711model')         %打開模型
  save_system('Ex0711model','Ex0711')       %保存模型文件
 
2. 添加模塊和信號線
(1) 添加模塊
使用 add_block 命令在打開的模型窗口中添加新模塊。
語法:
    add_block(’源模塊名’,’目標模塊名’,’屬性名 1’,屬性值 1,’屬性名 2’,屬性值 2,…)
說明:’源模塊名’為一個已知的庫模塊名,或在其它模型窗口中定義的模塊名,Simulink 自帶的模塊為內在模塊,例如正弦信號模塊為’built-in/Sine Wave’;’目標模
塊名’為在模型窗口中使用的模塊名。
(2) 添加信號線
模塊需要用信號線連接起來,添加信號線使用 add_line命令。
語法:
    add_line(’模塊名’,’起始模塊名/輸出端口號’, ’終止模塊名/輸入端口號’)
  add_line(’模塊名’,m)
說明:’模塊名’為在模型窗口中的模塊名;m為有兩列元素的矩陣,每列給出一個轉折點坐標。
【例 7.11 續】用 MATLAB命令添加四個模塊連接成一個二階系統模型。
  add_block('built-in/Step','Ex0711/Step','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])   
%添加傳遞函數模塊
  add_block('built-in/Scope','Ex0711/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')
程序分析:'position'為位置屬性,模塊名為'Ex0711'。
則出現如圖7.50 所示的模型。
 
3. 設置模型和模塊屬性
(1) 模型屬性的獲得
【例 7.11 續】獲得模型屬性和各屬性的含義。
  f1=simget('Ex0711')
f1 =  
圖 7.50  二階系統模型
              AbsTol: 'auto'         %絕對允許誤差限
               Debug: 'off'         %是否允許跟蹤調試
          Decimation: 1           %輸出位數,每個1點輸出 1次
        DstWorkspace: 'current'       %輸出量工作空間
      FinalStateName: ''           %狀態變量名
           FixedStep: 'auto'         %定步長
        InitialState: []        %初始狀態向量
         InitialStep: 'auto'      %初始步長
            MaxOrder: 5      %最高算法階次
           SaveFormat: 'Array'    %變量類型
       MaxDataPoints: 1000    %最大返回點數
             MaxStep: 'auto'    %最大步長
             MinStep: []      %最小步長
        OutputPoints: 'all'      %輸出點
     OutputVariables: 'ty'      %輸出變量
              Refine: 1      %插值點
              RelTol: 0.0010    %相對誤差
              Solver: 'ode45'    %仿真算法
        SrcWorkspace: 'base'    %輸入量工作空間
               Trace: ''      %是否逐步顯示
           ZeroCross: 'on'      檢測過零點
(2) 設置模型屬性
(3) 設置模塊和信號線屬性
【例 7.11 續】設置各模塊的屬性,建立一個與【例7.3】模型參數相同的二階系統模型。
  set_param('Ex0711','StopTime','15')           %設置采樣停止時間
  set_param('Ex0711/Step','time','0')           %設置階躍信號上升時間
  set_param('Ex0711/Sum','Inputs','+-')         %設置Sum模塊信號的符號
  set_param('Ex0711/Fcn1','Denominator','[1 0.6 0]')     %設置傳遞函數分母
則系統模型框圖如圖7.51所示。
 
4. 刪除模塊和信號線
(1) 刪除模塊
例如刪除示波器模塊則使用:
  delete_block('Ex0711/Scope')
(2) 刪除信號線
7.7.2 用 MATLAB 命令運行 Simulink模塊
使用 sim命令來完成,在命令窗口就可以方便地對模型分析和仿真。
語法:
    [t,x,y]=sim(‘model’,timespan,options,ut)       %利用輸入參數進行仿真,輸出矩陣
    [t,x,y1,y2,…]=sim(‘model’,timespan,options,ut)%利用輸入參數進行仿真,逐個輸出
說明:‘model’為模型名;timespan是仿真時間區間,可以是[t0,tf]表示起始時間和終止時間,也可以是[],利用模型對話框設置時間,如果是標量則指終止仿真時間;
options 參數為模型控制參數;ut 為外部輸入向量。t 為時間列向量;x 為狀態變量構成的矩陣;y 為輸出信號構成的矩陣,每列對應一路輸出信號。timespan  、options
和 ut參數都可省略。
【例 7.11 續】運行二階系統的階躍響應,如圖7.50所示。
  [t,x,y]=sim('Ex0711',[0,15]);
  plot(t,x(:,2))
圖 7.51  二階系統模型
7.8以 Simulink為基礎的模塊工具箱簡介
在打開Simulink 時出現的界面中,如前面的圖7.1所示左側的模塊庫和工具箱(Block and Toolboxes)欄中列出了各領域開發的仿真環節庫。
主要的仿真環節庫有:
?  控制系統工具箱(Control System Toolbox)
?  通信模塊工具箱(Communications Blockset )
?  數字信號處理模塊工具箱(DSP Blockset)
?  非線性控制模塊工具箱(NCD Blockset)
?  定點處理模塊工具箱(Fixed-Point Blockset)
?  狀態流(StateFlow)
?  系統辨識模塊工具箱(System ID Blocks)
?  神經網絡模塊工具箱(Neural Network Blockset)
?  模糊邏輯工具箱(Fuzzy Logic Toolbox)
 

 


提 示:本站所有源碼只提供瀏覽,需要定制的朋友可以聯系在線客服!
注意:價格根據項目的難易程度來定價格業務咨詢

仿真環境基礎學習 --下載地址

注意:為避免不必要的誤會,本站項目里的源碼只公開部分需要的聯系在線客服

本站長期招聘程序代寫高手,歡迎加入華南地區matlab團隊

想創業卻沒有經驗的人

無論你是否有過網上開店的經驗,都可以隨時聯系在線客服,建立自己獨立的網站
想開網店卻不知道如何入手

淘寶創業成本低而且風險小,如果想開淘寶店的朋友可以聯系在線客服。
想兼職創業,卻不擅長交際與服務的人

在家創業月入5000元。網站程序+百套群發工具+網賺資料+域名+空間+本站終身代理資格,這樣你網賺的條件全具備了。每天3小時管理、推廣、收錢。
缺乏能快速贏利型產品的人

導入多種最新流行營銷軟件+網賺教程,讓入駐者輕松加盟、復制有效成交技巧、快速賺錢。

源碼評論評論內容只代表網友觀點,與本站立場無關!

   評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論

瀏覽說明

* 本站所有源碼全部公開,隨時隨地瀏覽!
* MATLAB軟件如用于商業用途,請購買正版!
* 如果您發現下載鏈接錯誤,請點擊報告錯誤謝謝!
* 站內提供的所有軟件包含破解及注冊碼均是由網上搜集,若侵犯了你的版權利益,敬請來信通知我們!
Copyright © 2008-2014 www.kggbzb.tw. All Rights Reserved.
頁面執行時間:250.00000 毫秒
安微25选5开奖号