本書介紹系統(tǒng)仿真基礎內容的算法原理和程序實現(xiàn),包括系統(tǒng)的各種數(shù)學模型表示和相互轉換、連續(xù)時間系統(tǒng)的數(shù)值積分法仿真、模型離散化方法和離散時間系統(tǒng)仿真、采樣控制系統(tǒng)仿真等。本書使用Python編程實現(xiàn)書中介紹的各種算法和示例,主要用到NumPy、SciPy、Matplotlib和python-control等第三方包。所有的示例都給出了Python程序實現(xiàn),通過理論與程序結合的方法演示算法原理和仿真效果,使讀者掌握用Python編寫系統(tǒng)仿真程序的方法。
閱讀本書需要先掌握自動控制原理、現(xiàn)代控制理論、信號與系統(tǒng)等課程的基礎知識。本書可作為高等院校系統(tǒng)仿真相關課程的教材,也可供想要了解如何使用Python進行動態(tài)系統(tǒng)仿真的讀者參考。
1.目前國內還缺少系統(tǒng)性介紹控制系統(tǒng)仿真原理和Python編程實現(xiàn)的圖書。
2.王維波是我社多本熱銷書作者,著有《STM32Cube高效開發(fā)教程(基礎篇)》《STM32Cube高效開發(fā)教程(高級篇)》和《Python Qt GUI與數(shù)據(jù)可視化編程》等圖書。
盛立,博士,中國石油大學(華東)控制科學與工程學院教授、博導、山東省優(yōu)青、山東省泰山學者青年專家。從事動態(tài)系統(tǒng)的控制、濾波與故障診斷等方面的研究。主持國家級項目 4 項,以第一完成人獲得省部級科研獎勵 3 項;發(fā)表高水平論文 100 余篇,出版學術專著1 部;授權國家發(fā)明專利 15 項。 高明,博士,中國石油大學(華東)控制科學與工程學院教授、博導。從事系統(tǒng)的故障診斷與容錯控制等方面的研究。主持國家自然科學基金項目 4 項;發(fā)表高水平論文 40 篇;授權國家發(fā)明專利10 項。 王維波,博士,中國石油大學(華東)控制科學與工程學院講師。從事儀器儀表、嵌入式系統(tǒng)開發(fā)方面的教學 和 研 究。 發(fā)表論文20余篇,出版《STM32Cube高效開發(fā)教程(基礎篇)》和《STM32Cube高效開發(fā)教程(高級篇)》等專業(yè)教材 5 部。
第 1章 系統(tǒng)仿真概述 1
1.1 系統(tǒng)和模型 1
1.1.1 系統(tǒng) 1
1.1.2 系統(tǒng)的模型 2
1.2 系統(tǒng)仿真 3
1.2.1 系統(tǒng)仿真的定義 3
1.2.2 系統(tǒng)仿真的作用 5
1.2.3 系統(tǒng)仿真的基本原則 5
1.2.4 系統(tǒng)仿真的類型 7
1.2.5 系統(tǒng)仿真的軟件實現(xiàn) 9
1.2.6 系統(tǒng)仿真的應用 10
1.3 系統(tǒng)仿真技術發(fā)展前沿 12
1.3.1 仿真技術難點和研究方向 12
1.3.2 仿真相關新興技術 13
練習題 16
第 2章 Python編程基礎 17
2.1 Anaconda的安裝和使用 17
2.1.1 Anaconda的安裝 17
2.1.2 Anaconda Navigator的界面和功能 19
2.1.3 在Anaconda Navigator中管理環(huán)境 24
2.1.4 在Anaconda Navigator中管理包 26
2.1.5 conda命令的使用 28
2.1.6 本書程序運行環(huán)境的建立 32
2.2 JupyterLab的基本使用 33
2.2.1 JupyterLab的界面組成 33
2.2.2 Notebook文件編輯和運行 39
2.2.3 Notebook文件程序調試 41
2.3 Python基礎 44
2.3.1 Python的特點 44
2.3.2 Python的基本規(guī)則 44
2.3.3 基本數(shù)據(jù)類型和運算符 45
2.3.4 序列數(shù)據(jù)類型 48
2.3.5 集合數(shù)據(jù)類型 51
2.3.6 邏輯運算與條件語句 53
2.3.7 循環(huán)語句 54
2.4 Python的函數(shù)式編程 56
2.4.1 函數(shù)的定義和使用 56
2.4.2 函數(shù)定義中的可變位置參數(shù)*args 58
2.4.3 函數(shù)定義中的可變關鍵字參數(shù)**kwargs 60
2.4.4 函數(shù)定義中同時使用可變參數(shù)*args和**kwargs 61
2.4.5 使用Python內置函數(shù)和標準庫中的函數(shù) 62
2.4.6 使用第三方的包和模塊 65
2.5 Python的面向對象編程 67
2.5.1 類的定義和主要組成部分 67
2.5.2 類的繼承 69
練習題 71
第3章 科學計算和數(shù)據(jù)可視化基礎 72
3.1 NumPy 72
3.1.1 數(shù)組的創(chuàng)建和常用屬性 72
3.1.2 其他創(chuàng)建數(shù)組的函數(shù) 75
3.1.3 數(shù)組的索引和切片 79
3.1.4 數(shù)組的拼接 81
3.1.5 數(shù)組計算與廣播 82
3.2 SciPy 83
3.2.1 SciPy功能簡介 84
3.2.2 線性代數(shù)計算 84
3.2.3 系統(tǒng)模型表示和仿真 87
3.3 Matplotlib 91
3.3.1 基本繪圖示例 91
3.3.2 圖的主要組成元素 96
3.3.3 繪圖的一些常用功能 98
3.3.4 常見類型的圖形繪制 103
練習題 109
第4章 python-control概述 111
4.1 python-control簡介 111
4.1.1 python-control的安裝 111
4.1.2 python-control的主要功能 112
4.2 python-control中主要的類和函數(shù) 112
4.2.1 python-control中主要的類 113
4.2.2 python-control中主要的函數(shù) 115
練習題 119
第5章 連續(xù)時間系統(tǒng)的模型 120
5.1 連續(xù)時間系統(tǒng)的模型概述 120
5.1.1 常微分方程模型 120
5.1.2 傳遞函數(shù)模型 121
5.1.3 傳遞函數(shù)模型的程序表示 121
5.1.4 脈沖響應函數(shù)模型 125
5.1.5 狀態(tài)空間模型 126
5.1.6 狀態(tài)空間模型的程序表示 127
5.1.7 I/O模型的表示 131
5.2 連續(xù)時間系統(tǒng)的模型轉換 136
5.2.1 傳遞函數(shù)的不同表示形式 137
5.2.2 傳遞函數(shù)的實現(xiàn)問題 139
5.2.3 傳遞函數(shù)無零點時的實現(xiàn) 140
5.2.4 傳遞函數(shù)有零點時的實現(xiàn) 142
5.2.5 狀態(tài)變量的線性變換 146
5.2.6 狀態(tài)空間模型的若爾當
標準型 147
5.2.7 傳遞函數(shù)到狀態(tài)空間模型
轉換的相關函數(shù) 149
5.2.8 最小實現(xiàn) 154
5.2.9 從狀態(tài)空間模型求傳遞
函數(shù) 156
5.3 非線性狀態(tài)空間模型的線性化 158
5.3.1 線性化原理 158
5.3.2 模型線性化的相關函數(shù) 160
5.4 結構圖模型 163
5.4.1 一階環(huán)節(jié)的狀態(tài)空間模型 163
5.4.2 二階環(huán)節(jié)的分解 164
5.4.3 結構圖的狀態(tài)空間模型 164
5.4.4 結構圖的程序化建模方法 168
5.4.5 面向結構圖的互聯(lián)系統(tǒng)建模方法 174
練習題 179
第6章 連續(xù)時間系統(tǒng)數(shù)值積分法仿真 182
6.1 系統(tǒng)的時域響應 182
6.1.1 典型輸入信號 182
6.1.2 系統(tǒng)響應的解析解 183
6.1.3 一般系統(tǒng)的輸入響應仿真計算 186
6.2 數(shù)值積分法基本原理 195
6.2.1 數(shù)值積分法基本原理 195
6.2.2 歐拉法 196
6.2.3 預估-校正法 201
6.3 龍格-庫塔法 201
6.3.1 二階龍格-庫塔法(RK2法) 201
6.3.2 四階龍格-庫塔法(RK4法) 205
6.3.3 幾種數(shù)值積分算法的總結 205
6.3.4 RK4法仿真編程 207
6.4 龍格-庫塔法的誤差估計與步長控制 210
6.4.1 龍格-庫塔法的誤差估計 211
6.4.2 步長控制 213
6.4.3 變步長仿真示例 214
6.5 算法穩(wěn)定性分析 217
6.5.1 算法穩(wěn)定性分析原理 217
6.5.2 算法穩(wěn)定性仿真示例 219
6.6 面向結構圖的連續(xù)時間系統(tǒng)仿真 222
6.6.1 全LTI環(huán)節(jié)的結構圖的建模與仿真 222
6.6.2 帶有非線性環(huán)節(jié)的結構圖模型仿真 227
練習題 230
第7章 時域模型的離散化和仿真 232
7.1 離散時間系統(tǒng)的模型 232
7.1.1 差分方程 232
7.1.2 脈沖傳遞函數(shù) 233
7.1.3 權序列 236
7.1.4 離散時間狀態(tài)空間模型 236
7.1.5 離散時間模型的仿真計算 239
7.2 時域離散相似法 242
7.2.1 連續(xù)時間LTI系統(tǒng)的解 242
7.2.2 連續(xù)時間LTI系統(tǒng)解的離散化 243
7.2.3 狀態(tài)轉移矩陣的計算 246
7.2.4 增廣矩陣法 253
7.3 面向結構圖的模型離散化和
仿真 256
7.3.1 典型線性環(huán)節(jié)的離散化模型 257
7.3.2 典型非線性環(huán)節(jié) 259
7.3.3 結構圖的模型離散化和
仿真方法 260
7.3.4 結構圖模型離散化與仿真示例 261
練習題 270
第8章 傳遞函數(shù)模型的離散化和仿真 272
8.1 替換法 272
8.1.1 替換法的原理和幾種
形式 272
8.1.2 雙線性變換的特性 274
8.1.3 雙線性變換和頻域分析相關函數(shù) 276
8.2 根匹配法 282
8.2.1 根匹配法原理 282
8.2.2 根匹配法計算示例 283
8.3 頻域離散相似法 287
8.3.1 頻域離散相似法原理 287
8.3.2 頻域離散相似法應用示例 288
8.3.3 帶補償?shù)碾x散相似法 291
練習題 296
第9章 采樣控制系統(tǒng)仿真 297
9.1 采樣控制系統(tǒng) 297
9.1.1 采樣控制系統(tǒng)的結構 297
9.1.2 采樣控制系統(tǒng)的數(shù)學模型 298
9.1.3 采樣周期與仿真步長的關系 299
9.2 采樣控制系統(tǒng)數(shù)字控制器設計 300
9.2.1 不同采樣周期下的控制器模型轉換 300
9.2.2 PID控制算法 302
9.2.3 無穩(wěn)態(tài)誤差最小拍控制器設計 303
9.2.4 采樣控制系統(tǒng)仿真示例 305
9.3 帶純延遲環(huán)節(jié)的系統(tǒng)的仿真 310
9.3.1 純延遲環(huán)節(jié)的仿真模型 310
9.3.2 帶純延遲環(huán)節(jié)的采樣控制系統(tǒng)仿真示例 312
練習題 315
附錄A 計算誤差基本原理 317
A.1 舍入誤差 317
A.2 截斷誤差 318
附錄B 常用函數(shù)的S變換和Z變換 320
附錄C 縮略詞 321
參考文獻 322