本書以MATLAB R2020a為基礎,由淺入深全面講解MATLAB/Simulink軟件的應用知識。本書基于認知邏輯編排內容,自始至終采用示例描述,內容完整且每章相對獨立,有較大的參考價值。
本書分為兩部分,共17章。部分(第1~8章)主要介紹MATLAB基礎知識、Simulink仿真基礎、公共模塊庫、仿真命令操作、子系統及其封裝、基于S函數建模、系統運行與調試等;第二部分(第9~17章)主要介紹控制系統仿真基礎、PID控制系統仿真、模糊邏輯控制仿真、電力系統仿真、機電系統仿真、通信系統仿真、神經網絡控制仿真、滑模控制仿真、汽車系統仿真等內容,并提供了仿真示例幫助讀者學習。
本書以工程應用為目標,講解深入淺出、內容翔實,可作為理工科高等院校研究生、本科生的教學用書,也可作為廣大科研人員和工程技術人員的參考用書。
配套資源:
微課視頻 提供講解MATLAB基礎應用的微課視頻,幫助讀者快速入門。
程序代碼 提供書中實例的程序代碼,這些代碼均已通過調試,幫助讀者快速動手實踐。
課件素材 提供大部分章節的課件素材,便于普通高校教師作為授課的講義素材。
測試題庫 提供MATLAB數學建模、科學計算方面的練習題庫,便于讀者鞏固知識。
算法代碼 提供MATLAB算法的程序代碼,幫助讀者深入掌握MATLAB數學建模知識。
關注人工智能科學與技術微信公眾號,獲取相關配套資源(或到清華大學出版社網站本書頁面獲取下載鏈接)。
Simulink是MATLAB中的一種可視化仿真工具,是一種基于MATLAB的框圖設計環境,是實現動態系統建模、仿真和分析的一個軟件包,廣泛應用于線性系統、非線性系統、數字控制及數字信號處理的建模和仿真中。
MATLAB/Simulink是用于動態系統和嵌入式系統的多領域仿真和基于模型的設計工具。對各種時變系統,包括通信、控制、信號處理、視頻處理和圖像處理系統,Simulink提供了交互式圖形化環境和可定制模塊庫對其進行設計、仿真、執行和測試。Simulink可以用連續采樣時間、離散采樣時間或二者混合的采樣時間進行建模,也支持多速率系統,即系統中的不同部分具有不同的采樣速率。
為了創建動態系統模型,Simulink提供了一個建立模型框圖的圖形用戶接口,整個創建過程只需單擊和拖動即可完成,使建模與仿真變得更加快捷,且用戶可以立即看到系統的仿真結果。
1.本書特點
本書有以下3個特點。
(1)由淺入深、循序漸進。本書以MATLAB愛好者為讀者對象,首先從MATLAB使用基礎講起,再輔以MATLAB/Simulink在工程中的應用案例幫助讀者盡快提高利用MATLAB/Simulink進行工程應用分析的技能。
(2)步驟詳盡、內容新穎。本書根據作者多年MATLAB/Simulink使用經驗,結合實際工程應用案例,將MATLAB/Simulink軟件的使用方法與技巧詳細地介紹給讀者。本書步驟詳盡、內容新穎,講解過程輔以相應的圖片,使讀者在閱讀時一目了然,從而快速掌握書中所講內容。
(3)實例典型、輕松易學。學習實際工程應用案例的具體操作是掌握MATLAB/Simulink好的方式。本書通過綜合應用案例,詳盡透徹地講解了MATLAB/Simulink在各方面的應用。
2.本書內容
本書基于MATLAB R2020a講解了MATLAB/Simulink的基礎知識和核心內容,主要圍繞MATLAB/ Simulink在工程問題中的應用進行仿真運算。
本書附錄部分為Simulink常用命令及模塊庫,包括常用的Simulink命令函數、常用的Simulink模塊庫。
3.讀者對象
本書適合MATLAB/Simulink初學者和研究算法并解決工程應用能力的讀者,包括MATLAB/Simulink愛好者、MATLAB/Simulink科技工作者、大中專院校的師生、相關培訓機構的教師和學員等。
4.讀者服務
讀者在學習過程中遇到與本書有關的問題,可以通過微信公眾號算法仿真與編者溝通,編者會盡快給予解答。書中所涉及的素材文件(程序代碼)已上傳到云盤,讀者可通過公眾號獲取下載鏈接或者更多學習資源。
5.本書編者
本書由李獻編著,雖然編者在本書的編寫過程中力求敘述準確、完善,但由于水平有限,書中疏漏之處在所難免,希望讀者能夠及時指出,共同促進本書質量的提高。后再次希望本書能為讀者的學習和工作提供幫助!
編 者
2023年3月
6
MATLAB/Simulink系統仿真(第2版)
5
前 言
李獻,畢業于華中科技大學,研究生學歷,高級職稱,現就職與中國科學院電工所,精通MATLAB、ANSYS等工程分析軟件,工作期間獲得授權國際、國內發明專利二十余項,發表論文多篇,出版計算機圖書多部,擁有豐富的工程實踐經驗。
部分 MATLAB/Simulink基礎知識
第1章 初識MATLAB 3
1.1 操作界面簡介 3
1.1.1 操作界面 3
1.1.2 當前文件夾 4
1.1.3 命令行窗口 4
1.1.4 工作區 5
1.1.5 命令歷史記錄窗口 6
1.2 通識命令 6
1.2.1 選項卡命令 6
1.2.2 路徑設置 7
1.2.3 無窮量和非數值量 8
1.2.4 注釋符及常用命令 9
1.3 基本概念 9
1.3.1 數據類型概述 9
1.3.2 常量與變量 13
1.3.3 字符型數據 14
1.3.4 運算符 14
1.4 幫助系統 17
1.4.1 純文本幫助 17
1.4.2 幫助導航 17
1.4.3 示例幫助 18
1.5 本章小結 18
第2章 MATLAB基本運算 19
2.1 數組運算 19
2.1.1 數組的創建與操作 19
2.1.2 數組的常見運算 22
2.2 矩陣運算 25
2.2.1 矩陣的生成 26
2.2.2 矩陣的加減運算 29
2.2.3 矩陣的乘法運算 30
2.2.4 矩陣的除法運算 31
2.2.5 矩陣的分解運算 32
2.3 符號運算 32
2.3.1 符號表達式的生成 33
2.3.2 符號矩陣 33
2.3.3 常用符號運算 34
2.4 復數運算 35
2.4.1 復數和復矩陣的生成 35
2.4.2 復數運算函數 37
2.5 本章小結 37
第3章 Simulink仿真基礎 38
3.1 基本操作 38
3.1.1 運行Simulink 38
3.1.2 模塊庫 39
3.1.3 打開系統模型 40
3.1.4 保存系統模型 40
3.1.5 打印模型框圖并生成報告 41
3.1.6 常用鼠標和鍵盤操作 42
3.1.7 環境設置 43
3.1.8 系統模型構建與運行 43
3.2 模塊與系統 45
3.2.1 模型文件的創建 45
3.2.2 模塊的連接與處理 46
3.2.3 仿真參數設置 47
3.2.4 系統封裝 51
3.3 管理模型版本 52
3.3.1 管理模型屬性 52
3.3.2 模型文件更改通知 53
3.3.3 指定當前用戶 54
3.3.4 查看和編輯模型的信息和歷史 54
3.3.5 修改日志 54
3.4 本章小結 55
第4章 公共模塊庫 56
4.1 模塊庫概述 56
4.1.1 模塊庫的基本操作 56
4.1.2 常用模塊庫 57
4.1.3 信號輸出模塊庫 57
4.1.4 專業模塊庫 58
4.2 信號源模塊庫 58
4.2.1 Clock模塊 59
4.2.2 Digital Clock模塊 59
4.2.3 Constant模塊 60
4.2.4 Band-Limited White Noise模塊 61
4.2.5 Chirp Signal模塊 62
4.2.6 Sine Wave模塊 62
4.2.7 Pulse Generator模塊 63
4.2.8 Random Number模塊 65
4.2.9 Step模塊 66
4.2.10 Uniform Random Number模塊 66
4.2.11 其他模塊 67
4.3 連續模塊庫 68
4.3.1 Derivative模塊 68
4.3.2 Integrator模塊 69
4.3.3 Transfer Fcn模塊 70
4.3.4 Transport Delay模塊 71
4.3.5 Zero-Pole模塊 72
4.3.6 State-Space模塊 73
4.4 離散模塊庫 74
4.4.1 Discrete Transfer Fcn模塊 75
4.4.2 Discrete Filter模塊 76
4.4.3 Unit Delay模塊 77
4.4.4 Memory模塊 77
4.4.5 Discrete Zero-Pole模塊 78
4.4.6 Discrete State-Space模塊 79
4.4.7 Zero-Order Hold模塊 80
4.4.8 Discrete-Time Integrator模塊 81
4.5 查表模塊庫 82
4.5.1 1-D Lookup Table模塊 82
4.5.2 2-D Lookup Table模塊 83
4.6 用戶自定義函數模塊庫 84
4.6.1 Fcn模塊 84
4.6.2 MATLAB Function模塊 85
4.6.3 S-Function模塊 86
4.7 數學運算模塊庫 89
4.7.1 Abs模塊 90
4.7.2 Add模塊 90
4.7.3 Divide模塊 91
4.7.4 Dot Product模塊 92
4.7.5 Gain模塊 93
4.7.6 Complex to Magnitude-Angle模塊 93
4.7.7 Magnitude-Angle to Complex模塊 94
4.7.8 其他模塊 95
4.8 非線性模塊庫 95
4.8.1 Backlash模塊 96
4.8.2 Coulomb & Viscous Friction模塊 97
4.8.3 Dead Zone模塊 97
4.8.4 Quantizer模塊 98
4.8.5 Rate Limiter模塊 99
4.8.6 Saturation模塊 100
4.9 信號路由模塊庫 101
4.9.1 Bus Selector模塊 102
4.9.2 Bus Creator模塊 102
4.9.3 Mux模塊 103
4.9.4 Demux模塊 104
4.9.5 Data Store Memory模塊 105
4.9.6 Data Store Read模塊 106
4.9.7 Data Store Write模塊 107
4.10 本章小結 108
第5章 仿真命令操作 109
5.1 操作命令概述 109
5.2 系統命令 110
5.2.1 simulink命令 110
5.2.2 simulink3命令 110
5.2.3 find_system命令 111
5.2.4 new_system命令 113
5.2.5 open_system命令 113
5.2.6 save_system命令 114
5.2.7 bdclose命令 115
5.3 模塊操作命令 115
5.3.1 add_block命令 115
5.3.2 delete_block命令 116
5.3.3 add_line命令 116
5.3.4 delete_line命令 118
5.3.5 replace_block命令 118
5.4 獲取文件路徑 120
5.4.1 gcb命令 120
5.4.2 gcbh命令 120
5.4.3 gcs命令 120
5.4.4 bdroot命令 121
5.5 模型參數命令 121
5.5.1 get_param獲取模型參數 121
5.5.2 set_param設置模型參數 123
5.5.3 simget獲取模型屬性 125
5.6 模型仿真 126
5.7 本章小結 128
第6章 子系統及其封裝 129
6.1 子系統介紹 129
6.1.1 子系統含義 129
6.1.2 創建子系統 130
6.1.3 模型瀏覽器 133
6.2 高級子系統 135
6.2.1 條件執行子系統 135
6.2.2 交替執行子系統 142
6.3 封裝子系統 145
6.3.1 封裝子系統特征 145
6.3.2 封裝選項設置 146
6.4 本章小結 151
第7章 基于S函數建模 152
7.1 S函數概述 152
7.1.1 模塊的數學含義 152
7.1.2 Simulink仿真過程 153
7.1.3 S函數回調方法 154
7.1.4 M文件S函數應用 154
7.2 編寫S函數 162
7.2.1 S函數模板 162
7.2.2 S函數工作方式 166
7.2.3 S函數控制流 167
7.2.4 S函數的模塊化 169
7.3 S函數應用 169
7.4 本章小結 175
第8章 系統運行與調試 176
8.1 仿真參數配置 176
8.1.1 求解器概述 176
8.1.2 仿真參數設置 177
8.2 模型調試 181
8.2.1 調試器GUI模式 182
8.2.2 調試器命令行模式 182
8.2.3 調試器命令 183
8.2.4 調試器控制 184
8.3 設置斷點 186
8.3.1 無條件斷點 187
8.3.2 有條件斷點 188
8.4 仿真信息顯示 190
8.4.1 顯示模塊I/O 190
8.4.2 顯示代數環信息 191
8.4.3 顯示系統狀態 191
8.4.4 顯示求解器信息 192
8.4.5 顯示模型中模塊的執行順序 193
8.4.6 顯示系統或模塊 194
8.5 本章小結 196
第二部分 Simulink系統仿真應用
第9章 控制系統仿真基礎 199
9.1 控制系統頻域分析 199
9.1.1 頻率特性的定義 199
9.1.2 頻率特性和傳遞函數的關系 201
9.1.3 頻率特性的圖形表示方法 202
9.2 幅相頻率特性 205
9.2.1 比例環節 205
9.2.2 微分環節 207
9.2.3 積分環節 208
9.2.4 慣性環節 209
9.2.5 一階復合微分環節 213
9.2.6 二階振蕩環節 215
9.2.7 二階復合微分環節 220
9.2.8 延遲環節 223
9.2.9 開環系統的幅相特性曲線 223
9.3 對數頻率特性(Bode圖) 228
9.3.1 比例環節 228
9.3.2 微分環節 228
9.3.3 積分環節 229
9.3.4 慣性環節 229
9.3.5 一階復合微分環節 230
9.3.6 二階振蕩環節 231
9.3.7 二階復合微分環節 233
9.3.8 延遲環節 233
9.4 開環系統 234
9.4.1 開環系統的Bode圖 234
9.4.2 小/非小相角系統 236
9.5 穩定判據 238
9.5.1 奈奎斯特頻域穩定判據 238
9.5.2 頻域對數穩定判據 243
9.5.3 穩定裕度 244
9.6 本章小結 247
第10章 PID控制系統仿真 248
10.1 PID控制原理 248
10.2 PID控制仿真示例 249
10.3 倒立擺小車控制仿真 258
10.4 本章小結 261
第11章 模糊邏輯控制仿真 262
11.1 模糊邏輯控制基礎 262
11.1.1 模糊邏輯控制的基本概念 262
11.1.2 模糊邏輯控制原理 263
11.1.3 模糊邏輯控制規則設計 263
11.2 模糊邏輯控制函數 264
11.2.1 模糊系統基本類型 264
11.2.2 模糊邏輯控制系統的構成 265
11.2.3 模糊推理系統的建立 266
11.2.4 模糊語言變量的隸屬度函數 268
11.2.5 模糊規則的建立與修改 271
11.2.6 模糊推理計算與去模糊化 273
11.3 模糊邏輯控制App 276
11.3.1 FIS編輯器 276
11.3.2 隸屬度函數編輯器 278
11.3.3 模糊規則編輯器 278
11.3.4 模糊規則瀏覽器 278
11.3.5 模糊推理輸入/輸出曲面視圖 278
11.4 模糊邏輯控制的經典應用 280
11.4.1 基于Simulink的模糊邏輯控制 280
11.4.2 模糊與PID控制器仿真設計 285
11.5 本章小結 290
第12章 電力系統仿真 291
12.1 電力系統模型環境模塊 291
12.1.1 模塊功能及仿真類型 292
12.1.2 分析工具 293
12.2 二極管與晶閘管 301
12.2.1 二極管 301
12.2.2 晶閘管 304
12.3 電力系統穩態仿真 307
12.3.1 連續系統仿真 308
12.3.2 離散系統仿真 312
12.4 電力系統電磁暫態仿真 314
12.4.1 斷路器模塊 315
12.4.2 三相斷路器模塊 316
12.4.3 三相故障模塊 317
12.4.4 暫態仿真分析 318
12.5 本章小結 322
第13章 機電系統仿真 323
13.1 同步電機 323
13.1.1 同步發電機原理分析 323
13.1.2 簡化同步電機模塊使用 324
13.1.3 同步電機模塊使用 329
13.2 負荷模型 337
13.2.1 靜態負荷模塊 338
13.2.2 三相動態負荷模塊 338
13.3 異步電機 339
13.3.1 異步電動機等效電路 339
13.3.2 異步電機模塊 340
13.4 直流電機模塊 347
13.5 本章小結 351
第14章 通信系統仿真 352
14.1 通信系統仿真概述 352
14.2 信源與信道模型 355
14.2.1 隨機整數發生器 355
14.2.2 泊松分布整數發生器 356
14.2.3 伯努利二進制信號發生器 357
14.3 濾波器 358
14.3.1 濾波器相關函數 359
14.3.2 濾波器分析與設計工具 361
14.3.3 濾波器設計模塊 363
14.4 調制與解調 365
14.4.1 基帶模型與調制通帶分析 365
14.4.2 模擬調制與解調器模塊 366
14.4.3 數字調制解調器模塊 376
14.5 本章小結 383
第15章 神經網絡控制仿真 384
15.1 神經網絡簡介 384
15.1.1 人工神經元模型 384
15.1.2 神經網絡的學習規則 386
15.1.3 神經網絡函數 387
15.2 神經網絡控制系統仿真 389
15.2.1 基于BP神經網絡的PID自適應控制 389
15.2.2 基于Simulink的神經網絡模塊仿真 395
15.2.3 基于Simulink的神經網絡控制系統仿真 398
15.2.4 反饋線性化控制 400
15.3 本章小結 402
第16章 滑模控制仿真 403
16.1 基于名義模型的滑模控制 403
16.1.1 名義控制系統結構 403
16.1.2 基于名義模型的控制 404
16.1.3 基于名義模型的滑模控制器的設計 404
16.1.4 基于名義模型的滑模控制仿真 406
16.2 全局滑模控制 411
16.2.1 全局滑模控制器的設計 411
16.2.2 基于全局滑模控制的仿真 412
16.3 基于線性化反饋的滑模控制 416
16.3.1 二階非線性確定系統的倒立擺仿真 416
16.3.2 二階非線性不確定系統的倒立擺仿真 420
16.3.3 輸入/輸出的反饋線性化控制 425
16.3.4 輸入/輸出的反饋線性化滑模控制 429
16.4 基于模型參考的滑模控制 433
16.5 本章小結 438
第17章 汽車系統仿真 439
17.1 汽車懸架系統仿真 439
17.1.1 運動方程建立 439
17.1.2 主被動懸架系統仿真 441
17.1.3 白噪聲路面模擬輸入仿真 447
17.2 汽車四輪轉向控制系統仿真 448
17.2.1 低速四輪轉向系統仿真 451
17.2.2 高速四輪轉向系統仿真 452
17.3 汽車制動系統仿真 454
17.3.1 數學模型 454
17.3.2 仿真模型 456
17.4 本章小結 459
附錄A Simulink常用命令 460
附錄B Simulink基本模塊庫 462
參考文獻 465
14
MATLAB/Simulink系統仿真(第2版)
15
目 錄