面向用Python進行控制系統(tǒng)設計的人,邊學邊用Python進行編程實踐。重點闡述以狀態(tài)空間模型為對象的現(xiàn)代控制系統(tǒng)的設計。全書分七章,包括: Pythhon環(huán)境的構建、數(shù)據(jù)和流控制、反饋控制、狀態(tài)空間模型、閉環(huán)系統(tǒng)的控制設計、開環(huán)系統(tǒng)的控制設計、PID控制相位進延遲補償,以及穩(wěn)健性控制數(shù)字實現(xiàn)的高級控制系統(tǒng)設計。
筆者在大學教授控制工程課程,深感對此課程感到苦惱的學生不在少數(shù)。造成學生不能充分理解本課程究竟在講些什么的主要原因是,課程中有很多與數(shù)學相關的抽象概念。鑒于此,筆者決定撰寫一本能讓學生通過運行程序來學習控制工程和控制系統(tǒng)設計的書。
本書涉及很多與機器學習和數(shù)據(jù)挖掘相關的內容,并使用熱門的編程語言Python。同時,本書致力于讓讀者能夠在運行Python程序的同時,通過邊學邊做來實際體驗控制工程。因此,對于想使用Python來設計控制系統(tǒng)的人來說,本書是絕佳選擇。此外,本書圖文并茂,盡可能以易于理解的方式進行講解,因此,對于控制工程的初學者以及曾經學過控制工程卻半途而廢,如今打算重拾書本的讀者而言,本書也是十分易讀的。
本書的內容不僅包含實際工作中經常使用的以傳遞函數(shù)模型為研究對象的經典控制理論,還涉及以狀態(tài)空間模型為研究對象的現(xiàn)代控制理論,以及魯棒控制的基礎知識。不過,本書盡可能地減少了數(shù)學方面的描述,取而代之的是大量的Python示例代碼,以及兩姐妹(姐姐希波和妹妹望結)的可愛插圖和對話,這使得本書風格輕松活潑,內容易于理解。
在網頁https://y373.sakura.ne.jp/minami/pyctrl(日文)中可以找到本書的補充內容和練習題的參考答案。讀者也可以在該網站找到示例代碼。
話說回來,筆者初接觸到控制理論是在高等專門學校四年級的時候(相當于大學一年級)。筆者依然記得當初自己曾被這一能夠自由操控被控對象的技術深深吸引。不僅如此,筆者深陷其中的另一個原因在于控制系統(tǒng)的解析和設計中用到了大量數(shù)學工具,并且通過使用控制工程的專門語言,能夠對之前所學的力學和電子電路的相關知識進行解釋說明?刂七@個概念在我們的日常生活中其實比比皆是,所謂久而不聞其香,能夠切實感受到其重要性是難能可貴的。其實,如果沒有控制,我們安心、安全而又舒適的生活就無法成立,此話所言非虛。此外,近年來各種智能化事物層出不窮,想要隨心所欲地對事物加以控制,改變世界的面貌,控制工程的知識是不可或缺的。由此可見,控制工程(控制理論加上控制技術)可以說是一門非常重要的學問。讀者倘若能夠通過本書喜歡上這門有魅力的學科,筆者將深感欣慰。
本書能夠成書離不開許多人的大力支持。本書的內容建立在一般社團法人系統(tǒng)控制信息學會主辦的教習講座的基礎之上。筆者深深感謝提出了用Python學習控制工程這一想法并托付筆者付諸實踐的大阪府立大學的原尚之老師以及學會事業(yè)委員會的各位同人。另外,筆者想感謝大阪大學的石川將人老師,以及同研究室的吉田侑史、田中颯樹、楠井大氣、奧田貴裕、平野貴裕、青木達朗等幫助審閱書稿的同學。謝謝你們。
后,感謝在家中默默支持筆者的賢妻和愛女。
南 裕樹
2019年4月
譯者序
前言
第1章 什么是控制 1
1.1 日常生活中的控制 3
1.2 反饋控制 4
1.3 控制工程的作用 6
1.4 本書概要 8
第2章 Python基礎 12
2.1 搭建Python環(huán)境 14
2.2 Jupyter Notebook的使用方法 14
2.3 Python基礎 18
2.3.1 數(shù)據(jù)和類型 19
2.3.2 流程控制 24
2.3.3 函數(shù)定義 27
2.3.4 閉包、lambda表達式、生成器、列表生成式 28
2.3.5 模塊 30
2.4 本書中用到的模塊 31
2.4.1 Numpy 31
2.4.2 Matplotlib 33
2.4.3 Scipy 37
2.4.4 Sympy 38
2.4.5 Python-Control 39
第3章 控制系統(tǒng)建模 43
3.1 描述動態(tài)系統(tǒng) 45
3.1.1 手推車的模型 46
3.1.2 垂直驅動機械臂的模型 46
3.1.3 RCL電路的模型 47
3.1.4 放大電路的模型 48
3.1.5 控制工程中使用的模型描述 49
3.2 傳遞函數(shù)模型 50
3.2.1 手推車和機械臂的傳遞函數(shù)模型 52
3.2.2 RCL電路和放大電路的傳遞函數(shù)模型 52
3.2.3 用Python表述模型 53
3.3 狀態(tài)空間模型 55
3.3.1 手推車和機械臂的狀態(tài)空間模型 57
3.3.2 RCL電路和放大電路的狀態(tài)空間模型 58
3.3.3 用Python表述模型 59
3.4 框圖 60
3.4.1 串聯(lián) 61
3.4.2 并聯(lián) 61
3.4.3 反饋 62
第4章 被控對象的行為 69
4.1 時域響應 71
4.1.1 一階滯后系統(tǒng) 72
4.1.2 二階滯后系統(tǒng) 77
4.2 狀態(tài)空間模型的時域響應 83
4.3 穩(wěn)定性 88
4.3.1 輸入輸出穩(wěn)定性 88
4.3.2 漸進穩(wěn)定性 91
4.4 極點與系統(tǒng)行為的關系 93
4.5 頻域響應 95
4.5.1 一階滯后系統(tǒng) 100
4.5.2 二階滯后系統(tǒng) 102
第5章 關注閉環(huán)系統(tǒng)的控制系統(tǒng)設計 109
5.1 閉環(huán)系統(tǒng)的設計規(guī)格 111
5.1.1 穩(wěn)定性 111
5.1.2 時域響應特性 113
5.1.3 頻域響應特性 113
5.1.4 閉環(huán)系統(tǒng)的設計規(guī)格 114
5.2 PID控制 115
5.2.1 P控制的性能分析 116
5.2.2 PD控制 119
5.2.3 PID控制 122
5.3 二自由度控制 127
5.4 使用臨界比例度法進行增益調整 131
5.5 使用模型匹配法進行增益調整 134
5.6 狀態(tài)反饋控制 138
5.6.1 極點配置法 139
5.6.2 調節(jié)器 142
第6章 關注開環(huán)系統(tǒng)的控制系統(tǒng)設計 152
6.1 開環(huán)系統(tǒng)的設計規(guī)格 154
6.1.1 穩(wěn)定性 154
6.1.2 快速性與阻尼特性 160
6.1.3 穩(wěn)態(tài)誤差 162
6.1.4 開環(huán)系統(tǒng)的設計規(guī)格 163
6.2 PID控制 163
6.2.1 P控制 163
6.2.2 PI控制 165
6.2.3 PID控制 167
6.3 相位超前校正和相位滯后校正 172
6.3.1 相位滯后校正 172
6.3.2 相位超前校正 174
6.3.3 垂直驅動機械臂的控制系統(tǒng)設計 175
第7章 高級控制系統(tǒng)設計 184
7.1 使用觀測器的輸出反饋控制 186
7.2 魯棒控制 193
7.3 數(shù)字化實現(xiàn) 200
7.3.1 使用零階保持的離散化 201
7.3.2 使用雙線性變換的離散化 202
附錄 數(shù)學補充內容 208