第三章 SIMULINK應用基礎
SIMULINK主要用來實現對工程問題的模型化及動態仿真。SIMULINK實現了模塊化設計和系統級訪仿真的構想,採用模塊組合的方法使用戶能夠快速、準確的創建動態系統的計算機模型,使得建模仿真如同搭積木一樣的簡單。SIMULINK已經成為仿真領域首選的計算機環境。
在SIMULINK環境中電力系統元件的模型都用圖框來表達,圖框之間的連線表示了信號流動的方向。對用戶而言,只要熟悉SIMULINK仿真平台的使用方法和模型庫的內容,就可以用滑鼠和鍵盤繪製和組織系統模型,並實現系統仿真,完全不必從頭設計模型函數或死記複雜的函數。
3.1.1 SIMULINK模塊庫瀏覽器
SIMULINK仿真環境包括SIMULINK模塊庫和SIMULINK仿真平台。開啟SIMULINK瀏覽器有二種方法:
在命令列輸入[SIMULINK]或點選工具列的圖示
![]() |
![]() |
SIMULINK瀏覽器

SIMULINK模塊庫包括標準模塊庫和專業模塊庫二大類。
標準模塊庫包括連續系統、非連續系統、離散系統、信號源、顯示等各類子模塊庫。
專業模塊庫包括通信系統、數字信號處理、電力系統、模糊控制、神經網路等。
3.1.2 SUMULINK仿真平台
從MATLAB窗口進入SIMULINK仿真平台的方法有二種:
(1) 點選MATLAB選單的[File][New][Model]
(2) 點選SIMULINK瀏覽器窗口的圖示
![]() |
![]() |
出現SIMULINK仿真平台

1. SIMULINK仿真平台的選單
![]()
2. 仿真平台工具
![]()
1. 模塊的基本操作
選取模塊
選取多個模塊
刪除模塊
調整模塊大小
移動模塊
旋轉模塊
複製內部模塊
改變標籤內容
改變標籤位置
2. 信號線的基本操作
在模塊之間連線
移動線段
移動節點
劃分支信號線
刪除信號線
信號線標籤
3.2.2 系統模型的基本操作
創建模型
開啟模型
保存模型
註釋模型
從SIMULINK的source拖曳sine wave到仿真平台
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Gain到仿真平台
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Constant到仿真平台
![]() |
![]() |
從SIMULINK的Math Operations拖曳Add到仿真平台
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Gain到仿真平台
![]() |
![]() |
連接模塊

3.2.3 子系統的建立與封裝
1. 子系統的建立
對於較大的系統,可以將一種功能或幾種功能的多個模塊組合成一個子系統,從而簡化模型。
在SIMULINK中創建子系統一般有二種方法:
1.a 通過子系統模塊的方法
在用戶的模型裡添加一個subsystem的子系統模塊,然後加入組成子系統的各類模塊。適合採用由上而下設計方式的用戶,具體實現步驟如下:
(1) 新建一個空白模塊
(2) 開啟"端口和子系統"模塊庫,選取其中的子系統模塊,複製到新建的仿真平台
(3) 雙擊子系統模塊,添加輸入和輸出端子
(4) 將組成子系統的所有模塊都添加到子系統編輯窗口
(5) 用信號線連接各模塊
(6) 修改外接端子標籤,重新定義子系統標籤
1.b 通過組合已經存在模塊的方法
(1) 開啟已經存在的模型
(2) 選取要組合到子系統的所有對象
(3) 點選[Edit][Create Subsystem]命令,模型自動轉換成子系統
(4) 修改外接端子標籤,重新定義子系統標籤
![]() ![]() ![]() |
在子系統雙擊
![]() ![]() |
點選out1將之修改為y
![]() ![]() |
點選Subsystem將之修改為=2*sin(x)+5
![]() ![]() |
2. 子系統的封裝
封裝就是將SIMULINK的子系統包裝成一個模塊,並隱藏全部的內部結構。模塊中所有需要設置的參數都可以通過參數設置對話框來設定。
創建一個子系統封裝模塊的主要步驟為:
(1) 創建一個子系統
(2) 選取目標子系統,點選[Edit][Mask Subsystem]選項,出現Mask編輯器窗口
![]() |
![]() |
![]() |
(3) 使用封裝編輯器對封裝圖標、參數、初始化、和本文的設置。
a. 圖標icon & Ports標籤頁:用來給封裝模塊設計自定義圖標。

Icon Drawing commands命令窗口以MATLAB語句來繪製圖標的編輯,在Icon Drawing command命令窗口中填寫函數設置封裝模塊的圖標。常用的繪製命令
| 命令 | 說明 |
| plot(x_vector,y_vector) | 在圖標上繪製曲線 |
| disp(string) | 在圖標的中心顯示文字 |
| text(x,y,string) | 在(x,y)座標處顯示字串 |
| image(picture.jpg) | 在圖標上嵌入目標圖片(jpg)格式 |
| dpoly(num,den) | 在圖標的中心顯示傳遞函數 |
b. 參數Parameters標籤頁:可增加或減少子系統參數對話框的變數和屬性。

其中Variable必須和子系統中對應模塊內設置的變數名稱一致,才能建立封裝內部模塊和封裝對話框之間的聯繫。
變數可分成三個類型Type:
可編輯型edit:
複選框型checkbox:
下拉選單型popup:
c. 初始initialization標籤頁:對子系統的參數設定初值

d.本文documentation標籤頁:
設定封裝子系統的類型、描述、和輔助的文字說明。

例3.1 創建一個子系統,並將其封裝,要求子系統實現的功能為:y=m sin(x)+n。
解:
從SIMULINK的source拖曳sine wave到仿真平台
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Gain到仿真平台
![]() |
![]() |
雙擊Gain,設定Gain的值為m
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Constant到仿真平台
![]() |
![]() |
雙擊Constant,設定Constant value的值為n
![]() |
![]() |
從SIMULINK的Math Operations拖曳Add到仿真平台
![]() |
![]() |
從SIMULINK的Commonly Used Blocks拖曳Gain到仿真平台
![]() |
![]() |
連接模塊

選取子系統,[Edit][Create Subsystem]
![]() |
![]() |
![]() |
更改標示:將Subsystem改成y=m*sin(x)+n
![]() ![]() |
開啟子系統:雙擊子系統圖示
![]() ![]() |
更改標示:將In1改成x
![]() ![]() |
更改標示:將In1改成x
![]() ![]() |
(2) 設定標籤頁:選取子系統,點選 [Edit][Mask Subsystem]
![]() |
![]() |
a. 初始標籤頁:點選Initialization,輸入繪圖向量的初始化命令

b. 圖標標籤頁:點選Icon & Ports,輸入繪圖命令

c. 參數標籤頁:點選Parameters,輸入變數m,n

d.本文標籤頁:點選Documentation

設定完成後的圖示

雙擊封裝模塊,彈出該模塊的參數對話框,在gain輸入0.5,constant輸入2
![]() ![]() |
點選[start simulation],開始仿真,完畢後,雙擊示波器,出現波形。
![]() |
![]() |
![]() |
SIMULINK系統建模的步驟:
(1) 分析待仿真系統,確定待建模型的功能需求和結構。
(2)啟動模塊瀏覽庫窗口,選擇[File][New][Model]選項,新建一個模型文件。
(3) 在模塊瀏覽庫窗口尋找模型所需要的各模塊,分別將其拖曳到新建的仿真平台窗口。
(4) 將各模塊適當排列,用信號線將其正確連接,並注意
a. 模塊的輸入端只能和上級模塊的輸出端連接
b. 模塊的輸入端必須要有指定的輸入信號,輸出端可以空置。
(5) 對模塊和信號線重新標註
(6) 依據實際需要設定模塊的參數值
(7) 對模型進行子系統建立和封裝處理
(8) 保存模型文件
例3.2 工業控制領域常用的溫度傳送器其功能是將現場的溫度轉換為信號傳給監控設備。假設溫度傳送器的溫度測量範圍是Tmin-Tmax 度C,對應的輸出為4-20mA電流信號。試用SIMULINK創建能夠反應該系統工作特性的仿真模型。
解
(1) 確定待建模型的功能需求:
溫度傳送器的輸入和輸出關係為
T=(I-4)*(Tmax-Tmin)/16+Tmin
其中I為電流4-20mA,T為量測的溫度
(2) 創建SIMULINK模型文件。
Ramp 來自 Simulink > Sources > Ramp
Constant 來自 Simulink > Sources > Constant
Add 來自 Simulink > Math Operations > Add
Gain 來自 Simulink > Math Operations > Gain
Product 來自 Simulink > Math Operations > Product
Scope 來自 Simulink > Sinks > Scope

(3) 設置模塊參數
|
![]() |
| Imin=4 | Tamx=T2 |
![]() |
![]() |
| Tmin=T1 | K=1/16 |
|
|
| Add的輸入從++改成+- |
(4) 創建子系統並進行封裝處理
除了I和T二個模塊外,建立子系統。
![]() |
![]() |
![]() |
點選子系統,Edit > Mask Subsystem
在Ion & Ports標籤頁:在 Icon Drawing Commands 輸入disp('I2T')
在Parameters標籤頁:輸入參數T2和T1

在Documentations標籤頁:
在Mask type輸入I2T Mask Block
在Mask description輸入Models the equation for a formula: T=(I-4)*(T2-T1)/16+T1.
The Tmax value(T2) and Tmin value(T1) are masked block parameters.

雙擊子系統封裝模塊,輸入Tmax和Tmin
![]() |
![]() |
3.4.1 運行仿真過程
SIMULINK一般使用窗口menu命令進行仿真,由於人機交互性強,用戶容易進行仿真解法及仿真參數的選擇,定義和修改等操作。
1. 設置仿真參數
simulation > Configuration Parameters

顯示

(1) Solver: 設置仿真的起始和終止時間
(2) Data import/Export: 工作間數據的輸入和輸出設定
(3) Diagnostics: 選擇仿真過程中警告信息的顯示等級
2. 啟動仿真
從選單的simulation > start或

3. 顯示仿真結果
雙擊模型中輸出的模塊,例scope,可觀察結果。
4. 停止仿真
對於時間較長的仿真,可選擇sumulation stop
5. 仿真診斷
若仿真過程發生錯誤,會出現error dialog。
3.4.2 仿真參數的設置
選擇simulation > configuration Parameters
1. 設置仿真時間
2. 選擇仿真方法
SIMULINK提供的常微分方程式數值計算法大致可分成二類:
(1) variable step: 可變步長類算法,在仿真過程可以自動調整步長,並通過減小步長來提高精度。
(2) fixed step: 固定步長類算法,在仿真過程採取基準採樣時間作為固定步長。
3.4.3 示波器的使用
示波器的屬性對觀察和分析仿真結果的影響很大,並需設定適當的屬性才能顯示滿意的結果。

1. 示波器參數
點選示波器參數,出現對話框
![]() |
![]() |
(1) General標籤頁
a. Number of axes: 坐標軸數目
b. time range: 設定時間軸的最大值
c. tick labels: 標籤的貼放位置
d. sampling: decimation從每n個輸入顯示一個數據
sampling time取樣的時間間隔
(2) Data History
Linit data points to last:
Save data to workspace:
2. 圖形縮放
a. 區域放大按鍵
b. x軸放大按鍵
c. y軸放大按鍵
d. 自動尺寸按鍵
3. 座標軸範圍
SIMULINK目的是讓使用者將重心放在系統模型的結構和算法研究,用戶只需知道模塊的輸入、輸出、功能和內部參數的意義。只要選擇適合的模塊,正確的聯接,即可輕鬆有效的完成仿真工作。
模塊庫瀏覽器顯示所有的模塊庫,對於電力系統而言,常用的模塊庫有二個:標準SIMULINK模塊庫和電力系統模塊庫。

3.5.1 標準模塊庫
標準模塊庫在瀏覽器窗口命名為Simulink。底下簡介各模塊子庫:

1.信號源模塊庫
提供常用的信號產生器,用於產生系統的信號。
2.接收器模塊庫
提供常用的顯示和紀錄儀表,用於觀察信號的波形或紀錄信號數據。
3.連續系統模塊庫
提供常用的連續系統仿真模型模塊。
4.模塊庫
提供常用的離散系統仿真模型模塊。
5.非連續系統模塊庫
提供常用的各種非線性環境。
6.數學運算模塊庫
提供常用的數學運算。
7.邏輯與位操作模塊庫
提供常用的邏輯與位操作。
8.信號數據流模塊庫
提供常用的仿真系統中信號和數據流向控制操作的模塊。
9.端口和子系統模塊庫
提供常用的條件判斷執行的致能和觸發。
10.用戶自訂模塊庫
提供用戶在系統中插入M函數、S函數、或字定義函數等。
11.常用模塊庫
將上述子庫最常用的模塊放在一起,方便使用。
12.其他模塊庫
一些較少始用的子庫。
3.5.2 電力系統模塊庫
電力系統模塊庫是專用於RLC電路、電力電子電路、電機傳動控制、和電力系統仿真的模塊庫。
利用這些模塊庫可以模擬電力系統運行、故障的各種狀態,並[進行仿真和分析。

1. Electrical Sources
提供各種電源。
2. Elements
提供各種電氣元件。
3. Machines
提供各種電機模型。
4.Power Electronics
提供各種電力電子模塊。
5. Measurements
提供各種測量模塊。
6. Application Libraries
提供各種子庫。
7. Extra Library
提供其他電氣元件模塊。
8.Powergui
3.6.1 一般控制系統中的仿真應用
例3.4 對控制系統進行建模仿真,求系統的響應特性。

解:
(1) 選擇SUMULINK瀏覽器窗口,開啟新的仿真平台窗口。
(2) 從Simulink的Source拖曳Step到仿真平台窗口。

從Simulink的Math Operations拖曳Sum到仿真平台窗口。

從Simulink的Continuous拖曳Transfer fcn到仿真平台窗口。

從Simulink的Continuous拖曳Integrator到仿真平台窗口。

從Simulink的Sinks拖曳Scope到仿真平台窗口。

模塊庫的配置如下

雙擊Sum模塊庫

將List of signs:改成+-

正確的設定連接線,點選transfer fcn1

點選又鍵,選取Format的Flip Blcok將模塊轉向,以便連線

正確的設定剩餘連接線

雙擊transfer fcn

修改Numerator coefficients:和Denominator coefficients:

雙擊transfer fcn1

修改Numerator coefficients:和Denominator coefficients:

設定simulation stop time

點選start simulation

雙擊示波器模塊,

觀察結果

例3.5 設某一用傳遞函數表示的值流電機拖動系統已經通過SIMULINK工具完成建模,要求對該系統仿真分析,提出改進意見。
解:

(1) 進行系統建模
從Simulink的Sources將step拖曳到仿真平台。

從Simulink的continuous將transfer fcn拖曳到仿真平台。

從Simulink的math operations將gain拖曳到仿真平台。

從Simulink的continuous將sum拖曳到仿真平台。

從Simulink的Sinks將Scope拖曳到仿真平台。

連接所有模塊

設定模塊的參數

開始仿真,開啟示波器,觀察波形。

從響應曲線看,超越量太大,穩定所需時間太久。
將外環的PI控制器參數調整為(fs+1)/0.085s,分別選擇f為0.17,0.5,1,1.5進行仿真,對應的響應曲線如下。

例3.6 某一直流RC電路結構及參數如下。求當開關閉合後,電容電壓和電流的暫態過程。

從SimPowerSystems的powergui拖曳到仿真平台。

從SimPowerSystems的Electrical Sources將DC Voltage Source拖曳到仿真平台。

從SimPowerSystems的Elements將Breaker拖曳到仿真平台。

從SimPowerSystems的Elements將Series RLC Branch拖曳到仿真平台。

從SimPowerSystems的Elements將Ground拖曳到仿真平台。

從SimPowerSystems的Eeasurements將Current Measurement拖曳到仿真平台。

從SimPowerSystems的Eeasurements將Voltage Measurement拖曳到仿真平台。

從Simulink的Sinks將Scope拖曳到仿真平台。

設定直流電壓

設定Breaker

設定R=5

設定C=150uF

雙擊示波器,點選Parameters,在Number of axes:輸入2
![]() |
![]() |
連接各模塊,修改魔快的標籤。

設置仿真參數
將stop time改成0.01
將Solver改成ode23tb

點選start simulation仿真,雙擊示波器
當斷路器在0.003s閉合,在電容器的電壓逐漸上升,電流在導通時瞬間最大,逐漸變小。
