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