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