7.2.2 Simulink基礎
1.Simulink簡介
Simulink是MATALB中的一種可視化仿真工具,廣泛用于線性系統、數字控制以及數字信號處理的建模和仿真中。Simulink采用模塊化的建模方式,每個模塊都有自己的輸入、輸出端口,并能實現一定的功能。在Simulink中,模型表現為若干個仿真模塊的集合以及各個模塊之間的連接關系, 并且這些模塊可以組織成具有同等結構的子系統,具有內在的模塊化設計要求。
根據輸出信號和輸入信號的關系,Simulink提供了3種類型的模塊:連續模塊、離散模塊和混合模塊。連續模塊指輸出信號發生連續變化的模塊,離散模塊則是輸出信號以固定間隔變化的模塊;混合模塊是根據輸入信號的類型來確定輸出信號類型的,既能產生連續輸出信號,也能夠產生離散輸出信號。如果一個仿真模型中只包括離散模塊,Simulink采用固定步長方式進行仿真;如果模型中只有連續模塊,Simulink將采用連續方式對模型繼續仿真。如果模塊中包含連續模塊和離散模塊,則采用兩種仿真步長進行仿真。
2.Simulink軟件的安裝
Simulink可以隨著MATLAB一起安裝到計算機內,在MATLAB安裝選項中選中Simulink組件,安裝程序會自動將其安裝到MATLAB目錄下;如果已安裝了MATLAB而沒有安裝Simulink的話,也可以繼續使用安裝程序將Simulink安裝到計算機內。兩者的安裝方法是基本一樣的。需要注意的是,Simulink的運行需要MATLAB后臺的支持,因此必須要安裝MATLAB軟件。
3.Simulink的工作原理
Simulink的工作包括兩個階段:初始化階段和模型執行階段。
1)模型初始化階段
在初始化階段,Simulink主要完成以下工作:
(1)將模型參數傳遞給MATLAB進行估值,得到的數值結果將作為模型的實際參數;
(2)展開模型的各個層次,每一個非條件執行的子系統將被它所包含的模塊代替;
(3)模型中的模塊按更新的次序進行排序;
(4)決定模型中有無顯示設定的信號屬性,如:名稱、數據類型等,并且檢查各個模塊是否能連接到其相應的輸入信號;
(5)決定所有未設定采樣時間的模塊的采樣時間;
(6)分配和初始化用于存儲每個模塊的狀態和輸入當前值的存儲空間。
完成上述工作后,就可以進入模型執行階段。
2)模型執行
一般模型是使用數值積分來進行仿真的,所運用的仿真解法器依賴于模型提供的連續積分能力。計算微分可以分為兩步來進行:首先,按照排序所確定的次序計算每個模塊的輸出;其次,根據當前時刻的輸入和狀態來決定狀態的微分,得到微分向量后再把它返回給解法器,再用其來計算下一時刻采樣點的狀態向量,一旦新的狀態向量計算完畢,被采樣的數據源模塊和接收模塊才被更新。
在仿真開始時,模型設定待仿真系統的初始狀態和輸出。在每一個時間步長中,Simulink計算系統的輸入、狀態和輸出,并更新模型來反映計算出的值。在仿真結束時,模型得出系統的輸入、狀態和輸出。
4.Simulink設計簡單舉例
作為本節的最后一部分,給出一個Simulink的應用實例,增加讀者對Simulink建模的直觀印象。
例8-1 建立一個調幅(AM)系統,信號頻率為100KMHz,載波頻率為1MHz,調幅系數為0.5,并在示波器中顯示出來。
具體的操作步驟如下:
1)打開MATLAB,在工具欄點擊 圖標,啟動Simulink(也可以直接在MATLAB命令窗口直接敲入simulink)。
2)在Simulink環境下新建一個模型,在Simulink工具欄點擊圖標實現或通過菜單“File”中的“New Model”命令來實現,將新模型保存為am.mdl。
3)從Simulink library Browser中加入基本模塊。首先從“Simulink Source”庫中選中“Sine Wave”模塊,直接將其拖拽到am.mdl的界面中,并復制該模塊;然后雙擊“Sine Wave”模塊,設定載波頻率和幅度。再按照同樣的方法將“Sine Wave1”模塊設定為信號產生模塊;再從“Simulink Math Operations”庫中選擇乘法器模塊Product,最后從“Simulink Sink”庫中選擇示波器Scope。
4)連接各個模塊,選中目標模塊,按住Ctrl鍵,再點擊要連接的模塊,Simulink即可自動將兩個模塊連接起來,最終
|