本書在MATLAB 2016a的基礎上由淺入深地講解了MATLAB/Simulink軟件的知識,內容涉及面廣、涵蓋了用戶需要使用的各種功能。本書編排合理,自始至終采用實例描述; 內容完整且各章相對獨立,是一本具有參考價值的MATLAB/Simulink參考書。 本書分為三大部分共16章。部分主要介紹了MATLAB基礎知識、Simulink仿真入門、Simulink模型建立與仿真以及Simulink常用命令庫等; 第二部分主要介紹SFunction的應用、控制系統仿真和PID控制仿真等; 第三部分則涉及Simulink高級應用,包括模糊邏輯控制、電力系統仿真、通信系統仿真、神經網絡控制仿真、滑模控制、車輛系統仿真、群智能算法仿真和圖像處理仿真等。 本書以工程應用為目標,深入淺出,實例引導,講解翔實,適合作為理工科高等院校本科生和研究生的教學用書,也可作為廣大科研工程技術人員的參考用書。
(1) 博學作者編著,圖書質量更有保障:一線博學工程師執筆,系統歸納和總結了智能算法的實戰經驗。(2) 提供配套源碼,便于讀者動手實踐:理論必須聯系實踐,本書提供源代碼下載,方便讀者學習使用。(3) 內含豐富實例,利于讀者二次開發:書中提供了十幾個智能算法的典型實例,讀者可以據此二次開發。(4) 提供配套課件,便于教師備課使用:配套提供了完整的教學課件資料,便于廣大教師備課使用。配套學習資源下載地址為清華大學出版社網站本書頁面。系列暢銷圖書如下:MATLAB 編程指南——計算、編程、仿真、算法及應用MATLAB/Simulink系統仿真MATLAB GUI程序設計MATLAB智能算法MATLAB數學建模MATLAB科學計算MATLAB信號處理MATLAB圖像處理
李獻 畢業于中國科學院研究生院,博士學位,碩士畢業于華中科技大學。畢業后留在中科院電工研究所應用超導重點實驗室工作。主要從事電磁推進、脈沖強磁場以及脈沖功率電源的相關研究工作。在國內外期刊多篇,出版多部暢銷圖書。
目錄
第1章MATLAB基礎知識
1.1MATLAB簡介
1.2MATLAB的通用命令
1.2.1MATLAB菜單說明
1.2.2MATLAB路徑設置
1.2.3MATLAB系統常量說明
1.2.4MATLAB程序注解符說明
1.3MATLAB的計算基礎
1.3.1MATLAB的預定義變量
1.3.2常用運算和基本數學函數
1.3.3數值的輸出格式
1.4MATLAB程序設計基礎
1.4.1MATLAB基本程序設計
1.4.2MATLAB程序控制語句的運用
1.5MATLAB的繪圖功能
1.5.1離散數據圖形繪制
1.5.2函數圖形繪制
1.5.3網格圖繪制
1.5.4曲面圖的繪制
1.5.5特殊圖形繪制
1.6微積分問題的MATLAB求解
1.6.1符號微積分
1.6.2微分方程的數值解
1.6.3龍貝格積分法微積分運算
1.6.4有限差分方法求邊值問題
1.6.5樣條函數求積分
1.6.6常微分方程符號解
1.7非線性方程與線性規劃問題求解
1.7.1非線性方程組求解
1.7.2無約束化問題求解
1.7.3線性規劃問題
1.7.4二次型規劃問題
1.8本章小結
第2章Simulink仿真入門
2.1Simulink基本操作
2.1.1運行Simulink
2.1.2Simulink模塊庫
2.1.3Simulink模塊的操作
2.2運行仿真及參數設置簡介
2.2.1模型的創建
2.2.2模塊的連接與簡單處理
2.2.3仿真參數設置簡介
2.3子系統及其封裝
2.3.1創建子系統
2.3.2使能子系統
2.3.3觸發子系統
2.3.4使能觸發子系統
2.3.5封裝子系統
2.4用MATLAB命令創建和運行Simulink模型
2.4.1創建Simulink模型與文件
2.4.2添加模塊和信號線
2.4.3設置模型和模塊屬性
2.4.4仿真
2.5本章小結
第3章Simulink模型的建立與仿真
3.1Simulink模塊庫簡介
3.2信號源模塊組
3.2.1Clock模塊
3.2.2Digital Clock模塊
3.2.3Constant模塊
3.2.4BandLimited White Noise模塊
3.2.5Chirp Signal模塊
3.2.6Sine Wave模塊
3.2.7Pulse Generator模塊
3.2.8Random Number模塊
3.2.9Step模塊
3.2.10Uniform Random Number模塊
3.3連續模塊組
3.3.1Derivative模塊
3.3.2Integrator模塊
3.3.3Transfer Fcn模塊
3.3.4Transport Delay模塊
3.3.5ZeroPole模塊
3.3.6StateSpace模塊
3.4離散模塊組
3.4.1Discrete Transfer Fcn模塊
3.4.2Discrete Filter模塊
3.4.3Unit Delay模塊
3.4.4Memory模塊
3.4.5Discrete ZeroPole模塊
3.4.6Discrete StateSpace模塊
3.4.7ZeroOrder Hold模塊
3.5查表模塊組
3.5.11D Lookup Table模塊
3.5.22D Lookup Table模塊
3.6用戶自定義函數模塊組
3.6.1Fcn模塊
3.6.2MATLAB Fcn模塊
3.6.3SFunction模塊
3.7數學運算模塊組
3.7.1Abs模塊
3.7.2Add模塊
3.7.3Divide模塊
3.7.4Dot Product模塊
3.7.5Gain模塊
3.7.6Complex to MagnitudeAngle模塊
3.7.7MagnitudeAngle to Complex模塊
3.8非線性模塊組
3.8.1Backlash模塊
3.8.2Coulomb & Viscous Friction模塊
3.8.3Dead Zone模塊
3.8.4Quantizer模塊
3.8.5Rate Limiter模塊
3.8.6Saturation模塊
3.9信號與系統模塊組
3.9.1Bus Selector模塊
3.9.2Bus Creator模塊
3.9.3Mux模塊
3.9.4Demux模塊
3.9.5Data Store Memory模塊
3.9.6Data Store Read模塊
3.9.7Data Store Write模塊
3.9.8Enable模塊
3.9.9Ground模塊
3.10本章小結
第4章Simulink常用命令庫分析
4.1Simulink中常用的模塊庫
4.2Simulink命令代碼
4.2.1Simulink系統路徑
4.2.2獲取Simulink模型參數值
4.3Simulink系統創建命令
4.3.1simulink命令
4.3.2simulink3命令
4.3.3find_system命令
4.3.4new_system命令
4.3.5open_system命令
4.3.6save_system命令
4.3.7bdclose命令
4.4Simulink模型模塊操作命令
4.4.1add_block命令
4.4.2delete_block命令
4.4.3add_line命令
4.4.4delete_line命令
4.4.5replace_block命令
4.5獲取Simulink文件路徑
4.5.1gcb命令
4.5.2gcbh命令
4.5.3gcs命令
4.5.4bdroot命令
4.6獲取Simulink模型參數命令
4.6.1get_param命令
4.6.2set_param命令
4.7Simulink代碼建模
4.8本章小結
第5章基于Simulink的S函數建模
5.1Simulink S函數仿真應用
5.1.1Simulink S函數仿真過程
5.1.2S函數的回調方法
5.2Mfile S函數應用
5.3Mfile S函數模板
5.3.1S函數工作方式
5.3.2S函數仿真過程
5.3.3S函數的編寫
5.3.4M文件S函數的模塊化
5.4Mfile S函數實現
5.5本章小結
第6章控制系統Simulink仿真
6.1控制系統頻域分析
6.1.1頻率特性的定義
6.1.2頻率特性和傳遞函數的關系
6.1.3頻率特性的圖形表示方法
6.2幅相頻率特性
6.2.1比例環節
6.2.2微分環節
6.2.3積分環節
6.2.4慣性環節
6.2.5一階復合微分環節
6.2.6二階振蕩環節
6.2.7二階復合微分環節
6.2.8延遲環節
6.2.9開環系統的幅相特性曲線
6.3對數頻率特性
6.3.1比例環節
6.3.2微分環節
6.3.3積分環節
6.3.4慣性環節
6.3.5一階復合微分環節
6.3.6二階振蕩環節
6.3.7二階復合微分環節
6.3.8延遲環節
6.4開環系統的Bode圖
6.5最小相角系統和非最小相角系統
6.6奈奎斯特頻域穩定判據
6.7頻域對數穩定判據
6.8穩定裕度
6.8.1穩定裕度的定義
6.8.2穩定裕度的計算
6.9本章小結
第7章基于PID的Simulink控制系統仿真
7.1PID控制原理
7.2基于PID的控制仿真
7.3基于S函數的PID控制系統仿真
7.4基于PID的倒立擺小車控制仿真
7.5本章小結
第8章模糊邏輯控制仿真
8.1模糊邏輯概述
8.1.1高斯型隸屬函數
8.1.2三角形隸屬函數
8.2模糊邏輯控制箱圖形界面
8.2.1基本FIS編輯器
8.2.2隸屬函數編輯器
8.2.3繪制FIS
8.2.4設置模糊系統屬性
8.2.5規則編輯器和語法編輯器
8.2.6規則觀察器和模糊推理框圖
8.3模糊聚類分析
8.3.1FIS曲面
8.3.2FIS結構
8.3.3模糊均值聚類
8.3.4模糊聚類工具箱
8.4模糊與PID控制器仿真設計
8.4.1模糊邏輯工具箱
8.4.2PID控制
8.4.3模糊控制器設計
8.4.4模糊與PID控制仿真
8.5本章小結
第9章Simulink在電力系統中的應用
9.1同步發電機原理分析
9.2簡化同步電機模塊使用
9.3同步電機模塊使用
9.4負荷模型
9.4.1靜態負荷模塊
9.4.2三相動態負荷模塊
9.5異步電動機模塊
9.6直流電機模塊
9.7本章小結
第10章電力系統穩定性分析
10.1Powergui模塊
10.1.1仿真類型
10.1.2分析工具
10.2二極管模塊
10.3晶閘管模塊
10.4電力系統穩態仿真
10.4.1連續系統仿真
10.4.2離散系統仿真
10.5電力系統電磁暫態仿真
10.5.1斷路器模塊
10.5.2三相斷路器模塊
10.5.3三相故障模塊
10.5.4暫態仿真分析
10.6本章小結
第11章通信系統仿真設計
11.1通信系統仿真概述
11.2信源與信道模型
11.2.1隨機數產生器
11.2.2泊松分布產生器
11.2.3伯努利二進制信號產生器
11.2.4加性噪聲產生器
11.3濾波器分析
11.4調制與解調
11.4.1基帶模型與調制通帶分析
11.4.2解調與模擬調制模型分析
11.4.3數字調制解調器模型分析
11.5本章小結
第12章神經網絡控制
12.1神經網絡簡介
12.2人工神經元模型
12.3神經網絡的學習規則
12.4MATLAB神經網絡工具箱
12.5基于BP神經網絡的PID自適應控制
12.6基于Simulink的神經網絡模塊仿真
12.6.1模塊的設置
12.6.2模塊的生成
12.7基于Simulink的神經網絡控制系統
12.8反饋線性化控制
12.9本章小結
第13章滑模控制
13.1基于名義模型的滑模控制
13.1.1名義控制系統結構
13.1.2基于名義模型的控制
13.1.3基于名義模型的滑模控制器的設計
13.1.4基于名義模型的滑模控制仿真
13.2全局滑模控制
13.2.1全局滑模控制系統
13.2.2全局滑模控制器的設計
13.2.3基于全局滑模控制的仿真
第3章Simulink模型的建立與仿真
Simulink是MATLAB的仿真工具箱,它是面向框圖的仿真軟件。Simulink能用繪制方框圖代替程序,結構和流程清晰; 利用Simulink可智能化地建立和運行仿真,仿真精細、貼近實際。Simulink適應面廣。可應用于線性、非線性系統,連續、離散及混合系統,以及單任務、多任務離散事件系統。采用Simulink模塊庫能夠方便地進行模型的編輯和仿真構建。學習目標: (1) 學習Simulink基本庫原件; (2) 學習Simulink各模塊的使用; (3) 學習Simulink各模塊的參數配置; (4) 學習使用Simulink各模塊搭建仿真框圖。3.1Simulink模塊庫簡介在MATLAB命令行窗口輸入simulink,打開Simulink工具箱,進行Simulink工具箱模塊庫的學習。Simulink模塊庫很龐大,以下將主要介紹常規的Simulink應用模塊,包括信號源模塊組、連續模塊組、離散模塊組、查表模塊組、用戶自定義函數模塊組、數學運算模塊組、非線性模塊組、輸出池模塊組、信號與系統模塊組、子系統模塊組、常用模塊組、其他工具箱與模塊集等。3.2信號源模塊組Simulink模塊庫中提供了豐富的信號源模塊組,下面逐一介紹。3.2.1Clock模塊時鐘模塊以及時鐘模塊的屬性如圖31所示。
圖31時鐘模塊
時鐘模塊如圖31所示,在Simulink仿真中,時鐘模塊主要用于計時,效果很直觀。在時鐘模塊的屬性窗口中: (1) Display time: 如果該復選框被選中,則該時鐘模塊在仿真過程中,界面將顯示時間,如果不顯示,則可將其輸入到工作區中。(2) Decimation: 默認為10,Decimation的數值可以為任意整數,在仿真過程中,隨著時鐘不斷地更新,其數值不斷增加,例如對于10s的仿真,系統Decimation默認為10,則表示系統將以1s、2s、3s、…、10s依次遞增。搭建時鐘模塊如圖32所示。運行仿真文件,輸出結果如圖33所示。
圖32時鐘使用
圖33時鐘模塊示波器時鐘變化圖
3.2.2Digital Clock模塊數字時鐘模塊以及數字時鐘模塊的屬性如圖34所示。
圖34數字時鐘模塊
圖35Digital Clock模塊使用
在Simulink仿真中,數字時鐘模塊主要用于離散系統的計時,該模塊能夠輸出保持前一次的值不變。對于其屬性窗口: Sample time表示采樣時間,默認值為1s。搭建Digital Clock模塊如圖35所示。運行仿真文件,輸出結果如圖36所示。
圖36Digital Clock模塊示波器時鐘變化圖
3.2.3Constant模塊Constant模塊,表示常數輸入,其模塊屬性如圖37所示。
圖37Constant模塊
在Simulink仿真中,常數模塊主要用在輸入的量為定值的情況。對于其屬性窗口: (1) Constant value: 表示常數值,由用戶指定。(2) Sample time: 表示采樣時間,默認值為inf,也可以設置為與系統的采樣時間相一致。搭建Constant模塊如圖38所示。
圖38Constant模塊使用
運行仿真文件,輸出結果如圖39所示。
圖39Constant模塊示波器時鐘變化圖
3.2.4BandLimited White Noise模塊BandLimited White Noise模塊產生服從正態分布的隨機數,用于混合系統或者連續系統,用戶可以采樣該模塊產生比系統最小時間常數更小的相關時間的隨機序列來模擬白噪聲的效果,通常噪聲的相關時間t可計算如下:
t=2π100fmax
其中,fmax(rad/s)表示系統的帶寬。采用時間t作為換算因子,保障了一個連續系統對我們需要近似模擬的白噪聲應具有的系統方差(系統噪聲),BandLimited White Noise模塊屬性如圖310所示。
圖310BandLimited White Noise模塊
對于其屬性窗口: (1) Noise power: 表示白噪聲PSD的幅度,默認值為0.1。(2) Sample time: 表示采樣時間,默認值為0.1。(3) Seed: 表示隨機數信號發生器的初始種子,默認值為[23341]。搭建BandLimited White Noise模塊如圖311所示。
圖311BandLimited White Noise模塊使用
運行仿真文件,輸出結果如圖312所示。
圖312BandLimited White Noise模塊示波器時鐘變化圖
3.2.5Chirp Signal模塊Chirp Signal模塊產生頻率隨時間線性增加的正弦信號,即調頻信號,該模塊可用于非線性系統的譜分析,且以矢量或標量輸出。Chirp Signal模塊的模塊屬性如圖313所示。
圖313Chirp Signal模塊
對于其屬性窗口: (1) Initial frequency(Hz): 表示信號的初始化頻率,指定為標量或矢量,默認值為0.1。(2) Target time(secs): 表示頻率變化的較大時間,默認值為100。(3) Frequency at target time(Hz): 表示對應目標時間的信號頻率,輸入為矢量或標量,默認值為1。搭建Chirp Signal模塊如圖314所示。
圖314Chirp Signal模塊使用
運行仿真文件,輸出結果如圖315所示。
圖315Chirp Signal模塊示波器時鐘變化圖
3.2.6Sine Wave模塊Sine Wave正弦波模塊,產生如下形式的正弦波:
f(t)=Amp sin(Freq t Phase) Bias
其中,Amp為正弦波振幅,Freq為正弦波的頻率,Phase為初始相位,Bias為正弦波上下移動的常量。Sine Wave正弦波的模塊屬性如圖316所示。
圖316Sine Wave正弦波模塊
對于其屬性窗口: (1) Amplitude: 表示正弦信號的振幅,指定為標量或矢量,默認值為1。(2) Bias: 表示正弦信號離0均值線的偏移量,默認值為0。(3) Frequency(rad/sec): 表示對應目標信號頻率,輸入為矢量或標量,默認值為1。(4) Phase(rad): 表示信號的初始相位,默認值為0。(5) Sample time: 表示系統采樣時間。(6) Inter vector parameters as 1D: 該復選框可以選中,也可以不選,選中表示信號按照一行的數據矢量進行輸出; 不勾選,則信號以列向量存儲。搭建Sine Wave模塊如圖317所示。
圖317Sine Wave模塊使用
運行仿真文件,輸出結果如圖318所示。
圖318Sine Wave模塊示波器時鐘變化圖
3.2.7Pulse Generator模塊Pulse Generator模塊產生等間隔的脈沖波形,脈沖寬度就是脈沖持續高電平期間的數字采樣周期數,脈沖周期等于脈沖持續高電平、低電平的數字采樣周期之和,相位延遲則是起始脈沖所對應的數字采樣周期數。Pulse Generator的模塊屬性如圖319所示。
圖319Pulse Generator模塊
對于其屬性窗口: (1) Amplitude: 表示脈沖信號的振幅,指定為標量或矢量,默認值為1。(2) Period(secs): 表示脈沖數字采樣周期,默認值為10。(3) Pulse width(%of period): 表示脈沖寬度,輸入為矢量或標量,默認值為5。(4) Phase delay(secs): 表示信號的相位延遲,默認值為0。(5) Inter vector parameters as 1D: 該復選框可以選中,也可以不選,選中表示信號按照一行的數據矢量進行輸出; 不勾選,則信號以列向量存儲。搭建Pulse Generator模塊如圖320所示。
圖320Pulse Generator模塊使用
運行仿真文件,輸出結果如圖321所示。
圖321Pulse Generator模塊示波器時鐘變化圖
3.2.8Random Number模塊Random Number模塊產生服從正態分布的隨機信號,在每次仿真開始時,種子都設置為指定的值,默認的情況下,產生方差為1、均值為0的隨機信號。如果想獲得均勻分布的隨機信號,則可以使用Uniform Random Number模塊; 如果仿真器對于比較平滑的信號能夠積分,那么對于隨機波動的信號進行積分運算,則需要采用BandLimited White Noise信號。Random Number的模塊屬性如圖322所示。對于其屬性窗口: (1) Mean: 表示隨機信號的均值,指定為標量或矢量,默認值為0。(2) Variance: 表示隨機信號的方差,默認值為1。(3) Seed: 表示隨機種子,輸入為矢量或標量,默認值為0。(4) Sample time: 表示信號的采樣時間,默認值為0.1。搭建Random Number模塊如圖323所示。運行仿真文件,輸出結果如圖324所示。
圖322Random Number模塊
圖323Random Number模塊使用
圖324Random Number模塊示波器時鐘變化圖
3.2.9Step模塊Step模塊產生階躍信號,Step常用于控制系統仿真中,用于測試系統的穩定性和斂散性。Step模塊在指定時間產生一個可定義上、下電平的階躍信號,Step產生一個矢量或標量進行輸出。Step的模塊屬性如圖325所示。
圖325Step模塊
對于其屬性窗口: (1) Step time: 表示初始階躍的時間,指定為標量或矢量,系統默認值為1。(2) Initial value: 表示仿真的初始時間,系統默認值為0。(3) Final time: 表示仿真的結束時間,輸入為矢量或標量,系統默認值為1。(4) Sample time: 表示信號的采樣時間,系統默認值為0。搭建Step模塊如圖326所示。運行仿真文件,輸出結果如圖327所示。
圖326Step模塊使用
圖327Step模塊示波器時鐘變化圖
3.2.10Uniform Random Number模塊Uniform Random Number模塊產生在整個指定時間周期內均勻分布的隨機信號,信號的起始種子可由用戶指定。將Seed種子指定為矢量,可以產生矢量隨機數序列。Uniform Random Number的模塊屬性如圖328所示。
圖328Uniform Random Number模塊
對于其屬性窗口: (1) Minimum: 表示時間間隔的最小值,指定為標量或矢量,系統默認值為-1。(2) Maximum: 表示時間間隔的較大值,指定為標量或矢量,系統默認值為1。(3) Seed: 表示隨機序列發生器的初始種子,輸入為矢量或標量,系統默認值為0。(4) Sample time: 表示信號的采樣時間,系統默認值為0.1。搭建Uniform Random Number模塊如圖329所示。運行仿真文件,輸出結果如圖330所示。
圖329Uniform Random Number
模塊使用
圖330Uniform Random Number模塊示波器
時鐘變化圖
3.3連續模塊組連續模塊仿真主要用于系統的積分分析。對于一個系統而言,傳遞函數的構建顯得尤為重要。3.3.1Derivative模塊Derivative模塊表示微分環節,為時間的一階導數ΔuΔt,其中,Δu為輸入的變化量,Δt為前兩次仿真時間點之差。Derivative模塊的仿真精度取決于時間步長Δt,步長越小,結果越平滑,相應的結果越。如果輸入為離散信號,當輸入變化時,輸入的連續導數是沖擊信號,否則為0。為得到離散型系統的離散導數,可采用
y(k)=1Δt[u(k)-u(k-1)]
相應的Z變換為
Y(z)u(z)=1-z-1Δt=z-1Δt z
Derivative的模塊屬性如圖331所示。
圖331Derivative模塊
對于其屬性窗口: Coefficient c in the transfer function approximation s/(cs 1) used for linearization表示步長的設置,指定為標量或矢量,默認值為inf(無窮大)。搭建Derivative模塊如圖332所示。運行仿真文件,輸出結果如圖333所示。
圖332Derivative模塊使用
圖333Derivative模塊示波器時鐘變化圖
3.3.2Integrator模塊Integrator模塊表示積分環節,為時間的一階導數∫udt,其中,u為輸入的變化量,dt為前兩次仿真時間點之差。Integrator的模塊屬性如圖334所示。
圖334Integrator模塊
對于其屬性窗口: (1) External reset: 設置信號的觸發事件(rising、falling、either、level、level hold和none),默認設置為none,即保持系統原態。(2) Initial condition source: 表示參數輸入的狀態,分為外部輸入external和內部輸入internal,通常默認設置為internal。(3) Initial condition: 表示狀態的初始條件,用于設置Initial condition source的參數。(4) Limit output: 若選中,則可以設置積分的上界(Upper saturation limit)和下界(Lower saturation limit)。(5) Upper saturation limit: 表示積分上界,默認值為inf。(6) Lower saturation limit: 表示積分下界,默認值為inf。(7) Show saturation port: 若選中,則表示模塊增加一個飽和輸出端口。(8) Show state port: 若選中,則表示模塊增加一個輸出端口。(9) Absolute tolerance: 表示模塊狀態的容限,默認值為auto。(10) Ignore limit and reset when linearizing: 若勾選此選項,則表示當系統為線性化系統時,前面的積分上下限制和觸發事件無效,默認為不勾選。(11) Enable zerocrossing detection: 使系統通過零點檢驗,默認勾選。搭建Integrator模塊如圖335所示。運行仿真文件,輸出結果如圖336所示。
圖335Integrator模塊使用
圖336Integrator模塊示波器時鐘變化圖
3.3.3Transfer Fcn模塊Transfer Fcn模塊用于表征傳遞函數,具體的傳遞函數的表達式如下:
H(s)=y(s)u(s)=ansn an-1sn-1 … a1s a0bmsm bm-1sm-1 … b1s b0
其中,y(s)為系統輸出,u(s)為系統輸入,傳遞函數的計算則通過用戶得到的系統模型而來,對于一個收斂性系統而言,分母中s的較高次冪大于分子中s的較高次冪。Transfer Fcn的模塊屬性如圖337所示。
圖337Transfer Fcn模塊
對于其屬性窗口: (1) Numerator coefficients: 表示傳遞函數分子系數,系統默認值為[1]。(2) Denominator coefficients: 表示傳遞函數分母系數,系統默認值為[1 1]。(3) Absolute tolerance: 表示模塊狀態的容限,默認值為auto。(4) State Name(e.g., 'position'): 表示狀態空間的名字,用戶可以不加以定義。搭建Transfer Fcn模塊如圖338所示。運行仿真文件,輸出結果如圖339所示。
圖338Transfer Fcn模塊使用
圖339Transfer Fcn模塊示波器時鐘變化圖
3.3.4Transport Delay模塊Transport Delay模塊用于延時系統的輸入,延時的時間可以由用戶指定。在仿真過程中,模塊將輸入點和仿真時間存儲在一個緩沖器內,該緩沖器的容量由Initial buffer size參數指定。若輸入點數超出緩沖器的容量,模塊將配置額外的存儲區。Transport Delay模塊不能對離散信號進行插值計算,模塊返回區間t-tdelay(當前時間減去時間延遲)對應的離散值。Transport Delay的模塊屬性如圖340所示。
圖340Transport Delay模塊
對于其屬性窗口: (1) Time delay: 表示系統延時量,系統默認值為1。(2) Initial output: 表示系統在開始仿真和Time delay之間產生的輸出,系統默認值為0。(3) Initial buffer size: 表示儲存點數的初始存儲區配置,系統默認值為auto。(4) Use fixed buffer size: 儲存點數的初始存儲區配置為固定值,用戶可以不加以定義。搭建Transport Delay模塊如圖341所示。運行仿真文件,輸出結果如圖342所示。
圖341Transport Delay模塊使用
圖342Transport Delay模塊示波器時鐘變化圖
3.3.5ZeroPole模塊ZeroPole模塊用于表征一個以Laplace算子s為變量的零點、極點和增益的系統,其傳遞函數可表示為:
H(s)=y(s)u(s)=ansn an-1sn-1 … a1s a0bmsm bm-1sm-1 … b1s b0
它的變形為以s為變量的零點、極點和增益的系統,如下:
H(s)=KZ(s)P(s)=K(s-Z(1))(s-Z(2))…(s-Z(n))(s-P(1))(s-P(2))…(s-P(m))
其中,Z代表零點; P為極點矢量; K為增益。ZeroPole模塊的輸入和輸出寬度等于零點矩陣的行數。ZeroPole的模塊屬性如圖343所示。
圖343ZeroPole模塊
對于其屬性窗口: (1) Zeros: 表示系統傳遞函數零點向量,系統默認值為[1]。(2) Poles: 表示系統傳遞函數極點向量,系統默認值為[0 -1]。(3) Gain: 表示系統傳遞函數增益向量,系統默認值為[1]。(4) Absolute tolerance: 表示模塊狀態的容限,系統默認值為auto。(5) State Name(e.g., 'position'): 表示狀態空間的名字,用戶可以不加以定義。搭建ZeroPole模塊如圖344所示。運行仿真文件,輸出結果如圖345所示。
圖344ZeroPole模塊使用
圖345ZeroPole模塊示波器時鐘變化圖
3.3.6StateSpace模塊StateSpace模塊用于表征一個控制系統的狀態空間,具體的狀態空間的表達式如下:
x =Ax Bu
y=Cx Du
其中,x為狀態矢量; u為輸入矢量; y為輸出矢量。StateSpace的模塊屬性如圖346所示。
圖346StateSpace模塊
對于其屬性窗口:
(1) A: 表示系統狀態空間矩陣系數,必須是一個n×n矩陣,n為狀態數,系統默認值為1。(2) B: 表示系統狀態空間矩陣系數,必須是一個n×m矩陣,m為狀態數,系統默認值為1。(3) C: 表示系統狀態空間矩陣系數,必須是一個r×n矩陣,r為狀態數,系統默認值為1。(4) D: 表示系統狀態空間矩陣系數,必須是一個r×m矩陣,系統默認值為1。(5) Initial conditions: 表示初始狀態矢量,系統默認值為0。(6) Absolute tolerance: 表示模塊狀態的容限,系統默認值為auto。(7) State Name(e.g., 'position'): 表示狀態空間的名字,用戶可以不加以定義。搭建StateSpace模塊如圖347所示。運行仿真文件,輸出結果如圖348所示。
圖347StateSpace模塊使用
圖348StateSpace模塊示波器時鐘變化圖
3.4離散模塊組現實系統中有很多系統都是離散系統,系統根據采樣時間點進行數據采集分析,Simulink中離散系統的表征主要是根據Z變換進行系統仿真建模。3.4.1Discrete Transfer Fcn模塊對于Discrete Transfer Fcn模塊,由通常的拉普拉斯變換后,得到相應的傳遞函數,再經過Z變換,得到離散系統傳遞函數,具體如下:
H(z)=num(z)den(z)=anzn an-1zn-1 … a0z0bmzm bm-1zm-1 … b0z0
其中,num(z)為離散系統傳遞函數的分子系數,den(z)為離散系統傳遞函數的分母系數。Discrete Transfer Fcn的模塊屬性如圖349所示。
圖349Discrete Transfer Fcn模塊
對于其屬性窗口: (1) Numerator: 表示系統分子系數矢量,系統默認值為[1]。(2) Denominator: 表示系統分母系數矢量,系統默認值為[1 2]。(3) Sample time(-1 for inherited): 表示系統采樣時間,系統默認值為[-1]。(4) Initial states: 表示系統初始狀態矩陣,系統默認值為0。搭建Discrete Transfer Fcn模塊,設置采樣時間為0.1s,如圖350所示。運行仿真文件,輸出結果如圖351所示。
圖350Discrete Transfer Fcn模塊使用
圖351Discrete Transfer Fcn模塊示波器時
專家評論“科學與工程計算技術叢書”系列主題反映了MATLAB和Simulink匯集的領域——大規模編程、機器學習、科學計算、機器人等。我們高興地看到“科學與工程計算技術叢書”支持MathWorks一直以來追求的目標:助您加速工程技術和科學研究。——Jim Tung (MathWorks Fellow) 《MATLAB/Simulink系統仿真》本書通過綜合應用案例,透徹詳盡的講解了MATLAB/Simulink在各方面的應用。通過學習實際工程應用案例的具體操作,可以使讀者快速的掌握MATLAB/Simulink系統仿真方法。——劉成龍(中國科學院) 《MATLAB/Simulink系統仿真》一書涉及面廣,涵蓋了一般用戶需要使用的各種功能,并詳細介紹了MATLAB/Simulink的使用。本書按邏輯編排,自始至終采用實例描述;內容完整且每章相對獨立,是一本詳細的MATLAB/Simulink參考書。——王 廣(北京化工大學) 《MATLAB/Simulink系統仿真》全書結合作者多年MATLAB/Simulink使用經驗與實際工程應用案例,將MATLAB/Simulink軟件的使用方法與技巧到詳細地講解給讀者。本書在講解過程中步驟詳盡、內容新穎,講解過程輔以相應的圖片,使讀者在閱讀時一目了然,從而快速掌握書中所講內容。——溫 正(航天科技集團某研究所) 過學習實際工程應用案例的具體操作是掌握MATLAB/Simulink好的方式。本書通過綜合應用案例,透徹詳盡的講解了MATLAB/Simulink在各方面的應用。《MATLAB Simulink系統仿真》詳細講解了MATLAB/Simulink的基礎知識和核心內容,圍繞MATLAB/Simulink在工程問題中的應用進行仿真運算。對于從事Simulink開發的技術人員,該書具有較高的參考價值。——張 巖(北京航空航天大學) MATLAB/Simulink是用于動態系統和嵌入式系統的多領域仿真和基于模型的設計工具。《MATLAB/Simulink系統仿真》從MATLAB使用基礎講起,再輔以MATLAB/Simulink在工程中的應用案例,可以幫助讀者盡快掌握MATLAB/Simulink進行工程應用分析的技能。——李 昕(天津光電集團) 《MATLAB/Simulink系統仿真》以MATLAB 2016a版為基礎,由淺入深地講解了MATLAB/Simulink軟件的知識,內容涉及面廣,涵蓋了一般用戶需要使用的各種功能。本書按邏輯編排,自始至終采用實例描述;內容完整且每章相對獨立,是一本較為有參考價值的MATLAB/Simulink參考書。——付文利 (烽火通信集團)