Simulink 簡介SIMULINK是MATLAB軟體的擴展

Download Report

Transcript Simulink 簡介SIMULINK是MATLAB軟體的擴展

Matlab_simulink_fuzzy
S.C. Chen
2011/11/29
References
•
•
•
•
•
成大工程科學所教學資料
中國安徽工業大學教學資料
清大資工系張智星教授教學資料
Matlab官方教學網站
Matlab7 程式設計 旗標出版社
Outline
• Simulink basic concept
• Fuzzy toolbox
MATLAB/ Simulink 簡介
• SIMULINK是MATLAB軟體的擴展:
– 它實現動態系統建模與模擬的一個套件,與MATLAB主要區別在於,
良好的windows 溝通設計界面並有模型化的圖型輸出, 能讓使用
者專注於系統模型的建構.
• 模型化圖型輸入:
– 它提供了一些按功能分類的基本的系统模組,使用者只需要知道
這些模組的輸入輸出及模組的功能,而不必考察模組内部是如何
實現的,通過對這些基本模組的調用,再將它們連接起來就可以
構成所需要的系统模型(以.mdl檔案進行存取),進而進行模擬
與分析.
MATLAB/ Simulink 簡介
• Simulink在MATLAB的分析工具中,就分析的特性而言是個非常方便
之工具,不管是線性系統、數位控制、非線性系統、信號處理的分析
與驗證、通訊系統、模糊系統以及RF設計皆是非常方便的工具。
• 採用圖形輸入方式,只要知道訊號流程圖或是系統方塊圖,不管是線
性或是非線性系統皆能建立連續時間或離散時間或者兩者混合的系統
模型,系統也能夠是多取樣頻率(multirate),即不同的系統能夠以不
同的取樣頻率組合起來進行分析模樣。
• 採用開放式的架構,可方便去發展副程式供MATLAB使用或是轉成C
或C++程式碼。
• Simulink使用基本上分為:(1)模型的定義(建立);(2)模型的分析。
這兩種程序可以交互使用,藉由不斷的修改模型,改變模型方塊圖的
參數值,再不斷的模擬以得到所需系統的性能規格。
Simulink 介面說明
Simulink 的環境標示說明。
搜尋
功能表
工具列
Simulink函
數庫
Simulink下之
工具夾
元件的基
本使用說
明
Simulink
函數庫之
元件圖示
與內容
Simulink
之元件目
錄
Simulink 元件庫說明
圖
示
名稱
說明
Commonly
Used Blocks
常用元件
Continuous
連續性線性系統分析元件
DisContinuous
非連續性線性系統分析元件
Discrete
離散型線性系統的分析元件
Logic and Bit
Operation
邏輯和位元運算元件
Lookup Table
一般查表功能元件
Math
Operation
數學函數運算元件
Model
Verification
模型驗證元件
Simulink 模組庫介紹
• Simulink 模組庫依功能可分為下列8種子模組:
 Continuous(連續模組)
 Discrete(離散膜組)
 Function&Tables(函數與平台模組)
 Math(數學模組)
 Nonlinear(非線性模組)
 Signals&Systems(訊號與系統模組)
 Sinks(接收器模組)
 Sources(輸入訊號模組)
連續模組(Continuous)continuous.mdl
 Integrator:輸入訊號積分
 Derivative:輸入訊號微分
 State-Space:線性狀態空間系统模型
 Transfer-Fcn:線性傳遞函數模型
 Zero-Pole:以零極點表示的傳遞函數模型
 Memory:存儲上一時間的狀態值
 Transport Delay:輸入訊號delay一固定時間後再
輸出
 Variable Transport Delay:輸入訊號delay一可變
時間後再輸出
離散模組(Discrete) discrete.mdl
 Discrete-time Integrator:離散時間積分器
 Discrete Filter:IIR, FIR 率波器
 Discrete State-Space:離散狀態空間系统模型
 Discrete Transfer-Fcn:離散傳遞函数模型
 Discrete Zero-Pole:以零極點表示的離散傳遞函
數模型
 First-Order Hold:一階採樣,保持器
 Zero-Order Hold:零階採樣,保持器
 Unit Delay:一個採樣週期的delay
函數和平台模組(Function&Tables) function.mdl
 Fcn:用自定義的函数(表達式)進行運算
 MATLAB Fcn:利用matlab的現有函數進行運算
 S-Function:使用自編的S函數的程序進行運算
 Look-Up Table:建立輸入信號的查詢表(線性峰
值匹配)
 Look-Up Table(2-D):建立兩個输入訊號的查询
表(線性峰值匹配)
數學模組( Math ) math.mdl









Sum:加减運算
Product:乘運算
Dot Product:點乘運算
Gain:比例運算
Math Function:包括指數函數、對數函數、求平方、開
根號等常用數學函數
Trigonometric Function:三角函數,包括正弦、餘弦、正
切等
MinMax:極值運算
Abs:取绝對值
Sign:符號函數
 Logical Operator:邏輯運算
 Relational Operator:關係運算
 Complex to Magnitude-Angle:由複數輸入轉為幅值和相角
輸出
 Magnitude-Angle to Complex:由幅值和相角輸入合成複數
輸出
 Complex to Real-Imag:由複數輸入轉為實部和虛部輸出
 Real-Imag to Complex:由實部和虛部輸入合成複數輸出
非線性模組( Nonlinear ) nonlinear.mdl
 Saturation:飽和輸出,讓輸出超過某一值時能夠
飽和。
 Relay:滯環比較器,限制輸出值在某一範圍内變
化。
 Switch:開關選擇,當第二個輸入端大於臨界值
時,輸出由第一個輸入端而來,否則輸出由第三
個輸入端而來。
 Manual Switch:手動選擇開關
訊號與系統模組( Signal&Systems ) sigsys.mdl
 In1:輸入端。
 Out1:輸出端。
 Mux:將多個單一輸入轉化為一個複合輸出。
 Demux:將一個複合輸入轉化為多個單一輸出。
 Ground:連接到沒有連接到的輸入端。
 Terminator:連接到沒有連接到的輸出端。
 SubSystem:建立新的封裝(Mask)功能模組
接收器模組( Sinks ) sinks.mdl
 Scope:示波器。
 XY Graph:顯示二維圖型。
 To Workspace:將輸出寫入MATLAB的工作空間。
 To File(.mat):將輸出寫入檔案。
輸入源模組( Sources ) sources.mdl
 Constant:常數訊號。
 Clock:時間訊號。
 From Workspace:從MATLAB的工作空間。
 From File(.mat):從檔案文件。
 Pulse Generator:脈衝產生器。
 Repeating Sequence:重複訊號。
 Signal Generator:訊號產生器,可以產生正弦、
方波、鋸齒波及隨意波。
 Sine Wave:正弦波訊號。
 Step:單位步階訊號。
SIMULINK簡單模型的建立
• 簡單模型的建立
• (1)建立模型窗口
• (2)將功能模組由模組窗口複製到模型窗口
• (3)對模組進行連接,從而構建所需的系統模型
• 模型的特性
• 在SIMULINK裡提供了許多如Scope的接收器模組,使得用
SIMULNK進行模擬具有像做實驗一般的圖形化顯示效果。
• SIMULINK的模型具有層次性,通過底層子系統可以構建上層母系
統。
• SIMULINK提供了對子系統進行封裝的功能,使用者可以自行定義
子系统的圖標並設置參數對話框。
SIMULINK功能模組的處理
功能模組的基本操作,包含模組的移動, 複製, 刪除, 轉向, 改變大小, 模
組命名, 顏色設定, 參數設定, 屬性設定, 模組輸入輸出訊號。
 模組庫中的模組可以直接用滑鼠進行拖曳(選中模組,按住滑鼠左
键不放)而放到模型窗口中進行建構。
 在模型窗口中,選中模組,則其4個角會出現黑色標記。此時可以對
模組進行以下的基本操作。
1) 移動:選中模組,按住滑鼠左键將其拖曳到所需的位置即可。
若要脫離線而移動,可按住shift键,再進行拖曳。
2) 複製:選中模組,然后按住滑鼠右键進行拖曳即可複製同樣的
一個功能模組。
3) 删除:選中模組,按Delete键即可。若要删除多個模組,可以
同時按住Shift键,再用滑鼠選中多個模組,按Delete键即可。
也可以用滑鼠選取某區域,再按Delete键就可以把該區域中的
所有模組和線等全部删除。
4) 轉向:為了能够順序連接功能模組的輸入和輸出端, 功能模組
有時需要轉向. 在菜單Format中選擇Flip Block旋轉180度,
選擇Rotate Block順時針旋轉90度. 或者直接按 Ctrl+F 鍵執
行Flip Block, 按 Ctrl+R 鍵執行 Rotate Block.
5) 改變大小:選中模組, 對模組出現的四個黑色標記進行拖曳即
可.
6) 模組命名:先用滑鼠在需要更改的名稱上單擊一下,然后直接
更改即可。名稱在功能模組上的位置也可以變換180度,可以
用Format菜單中的Flip Name來實現,也可以直接通過滑鼠進
行拖曳。Hide Name可以隱藏模組名稱。
7) 顏色設定: Format菜单中的Foreground Color可以改變模組
的前景顏色,Background Color可以改變模組的背景顏色;而
模型窗口的顏色可以通過Screen Color來改變。
開啟Simulink及新檔案
新檔案
(工作視窗)
選取以及連接方塊圖
藉由拖曳之方式來收集方
塊建構模擬系統模型
使用滑鼠
左鍵連接
方塊
模擬參數Max step size 設定
Simulation 內
的
Configuration
Parameters
Simulink以數位(離散)方式計算與模擬類比(連續)系
統,其計算結果之時域解析度與模擬參數 (Max step
t stop  t start
size)息息相關,Max step size 通常設定為auto,內
h
建公式為
50
tstart
tstop
存檔
接下來再用File 下之Save As存檔,檔名的命名方式為英文或數字命
名(但不能以數字作為檔名之開頭),存檔可先做,或是編輯完系統後
再存檔均可,儲存完畢後的檔案為“XXX .mdl”。
建立子系統
建立子系統(subsystem):當所建構的模型,其組成
的block數目越來越多,則會增加模型的大小及複雜
度。我們可以將代表某一個功能目的之數個blocks組
合成一個子系統block(即以一個block表示),建立子
系統的好處有:
減少模型內的block的總數目。
允許將功能表上相關的block組合在一起,易於
除錯與修改。
所建構的系統模型有階層(hierarchical)的概念,
(次 系統內仍可建立次系統)。
建立子系統範例
典型的PID控制系統
R(s)
Ki
Kp 
 Kd s
s
s 3  7 s 2  24s  24
s 4  10s 3  35s 2  50s  24
Y(t)
Using fuzzy toolbox in simulink
• Step1. 在 command line下鍵入 “fuzzy”
• Step2. 使用 fuzzy toolbox 建立Input/output
membership function, 建立rules.
• Step3. 開啟simulink 使用 fuzzy tool 建立
fuzzy logic control system.
• Step4. 匯入 XXX.fis 到fuzzy logic control
module
• Step5. Simulating and debugging.