《現代控制系統設計與仿真:使用PIMCSD工具箱》內容分為上下兩篇,結合自主研發的PIMCSD工具箱講述LQG與H∞最優控制系統的基本理論,以及設計與仿真的實現。上篇講述了基于PIMCSD工具箱的無限長時間定常控制器(調節器)/濾波器的設計與仿真,包括基于MATLAB最優控制系統設計的傳統教材的大部分內容;下篇講述了有限長時間LQG與H∞最優控制系統設計與仿真在PIMCSD工具箱中的功能和實現,包括有限長時間LQG控制系統的時變軟/硬終端控制、跟蹤、濾波、平滑與估計,以及有限長時間H∞控制系統的臨界范數、時變H∞全狀態反饋控制、H∞濾波和H∞輸出反饋控制等內容。PIMCSD工具箱為相關領域有限長時間控制問題的分析與求解提供了強有力的支持,是目前MATLAB控制工具箱所不具備的,對它的介紹和使用也是《現代控制系統設計與仿真:使用PIMCSD工具箱》的主要特色。
《現代控制系統設計與仿真:使用PIMCSD工具箱》可作為大專院校力學、自動控制專業的高年級本科生和研究生的教材,也可供相關研究人員參考。
序
前言
PIMCSD工具箱函數說明
上篇 定常控制器設計與仿真
第1章 定常控制系統分析
1.1 線性系統的時域分析
1.1.1 零輸入響應
1.1.2 階躍響應
1.1.3 脈沖響應
1.1.4 斜坡響應
1.1.5 正弦響應
1.1.6 指數響應
1.1.7 任意輸入響應
1.2 連續系統的離散化
1.2.1 狀態方程和性能指標的精確離散
1.2.2 線性隨機系統的等效離散
1.3 可控性與可觀測性
第2章 LQ調節器
2.1 定常LQ控制器
2.1.1 狀態調節器
2.1.2 數字調節器
2.1.3 輸出調節器
2.1.4 矩陣代數Riccati方程
2.2 定常Kalman濾波器
2.2.1 Kalman濾波器
2.2.2 數字Kalman濾波器
2.3 定常LQG調節器
第3章 H∞調節器
3.1 無限長時間控制系統的H2和H∞范數
3.2 H∞全狀態反饋控制
3.3 H∞最優濾波
3.4 H∞輸出反饋控制
下篇 時變控制器設計與仿真
第4章 時變控制系統分析
4.1 線性時變系統仿真
4.2 矩陣微分方程(組)
4.2.1 對稱/非對稱微分Riccati方程(組)
4.2.2 對稱/非對稱微分Lyapunov方程
第5章 時變LQ控制器
5.1 LQ終端控制
5.1.1 軟終端控制器
5.1.2 硬終端控制器
5.2 分段線性定常系統的終端控制
5.3 時變LQ跟蹤-控制
第6章 時變濾波器
6.1 Kalman濾波(正向方差濾波)
6.2 正向信息濾波
6.3 反向方差濾波
6.4 反向信息濾波
第7章 時變濾波-平滑器
7.1 反向信息濾波-平滑
7.2 正向-反向信息濾波-平滑
7.3 小結
第8章 時變LQG控制器
8.1 LQG終端控制
8.1.1 軟終端控制器
8.1.2 硬終端控制器
8.2 時變LQG跟蹤-控制
第9章 時變H∞控制器
9.1 有限長時間控制系統的H2和H∞范數
9.2 H∞全狀態反饋控制
9.3 H∞最優濾波
9.4 H∞輸出反饋控制
參考文獻
上篇 定常控制器設計與仿真
第1章 定常控制系統分析
線性定常控制系統是最基本的,也是時變、非線性控制系統設計的基礎,值得花大力氣做好。對此,MATLAB工具箱提供了完善的、穩定的求解功能,可參考薛定宇基于MATLAB講述的《控制系統計算機輔助設計》等專著;PIMCSD 工具箱也提供了高效、高精度的控制系統設計與仿真功能。
通常,一個連續系統模型可以基于微分方程、傳遞函數以及狀態空間方程來描述,它們之間是可以互相轉換的。PIMCSD 工具箱是針對現代狀態空間控制理論進行設計的,本書也以狀態空間描述(1.1a,b)進行講述。
連續時間的線性系統模型基于狀態空間描述,一般可以寫成
其中, x和u分別是n維狀態向量和m維控制輸入向量; y是l 維量測(或輸出)向量是具有適當維數的系統矩陣,它們可以是時間t 的函數。對于定常系統,不隨時間而變化。
相應地,離散時間的線性系統模型基于狀態空間描述,一般可以寫成
其中, xk 和k u 分別是n維狀態向量和m維控制輸入向量; yk 是l 維量測(或輸出)向量;是具有適當維數的系統矩陣。
1.1 線性系統的時域分析
控制系統的動態特性通常用典型輸入下的時間響應來進行描述。典型的輸入函數有階躍函數、脈沖函數、斜坡函數、正弦函數,以及指數函數等。PIMCSD 工具箱也提供了任意輸入情況下的時域響應分析。
1.1.1 零輸入響應
1) 問題描述
所謂零輸入(即u(t) ≡ 0 )響應,就是控制系統由初始狀態引起的響應,又稱初值響應。對于連續系統,零輸入響應求解下面方程:
2) PIMCSD 工具箱中的實現
PIMCSD 工具箱中提供了零輸入響應求解的實現函數pim_initial(),其調用格式如下:參數簡單說明:返回參數中, ,y x t 分別為響應的量測值、狀態值和時間序列向量。輸入函數中A 和C 分別為系統的狀態矩陣和量測矩陣; 0x 為系統初值;tspan指定了仿真時間區段及仿真步長,
3) 設計實例
例1.1.1 考慮下面的控制系統,試求該系統的零輸入響應。解 分別采用PIMCSD和MATLAB工具箱提供的函數完成零輸入響應分析,代碼比較如表1.1.1 所示,可見二者的調用格式是相似的。圖1.1.1 給出了零輸入響應的結果,兩段代碼得到的結果完全一致。
1.1.2 階躍響應
1) 問題描述
所謂階躍響應,就是在零初值條件下,系統由單位階躍輸入引起的響應。階躍輸入用函數描述為
2) PIMCSD 工具箱中的實現
PIMCSD 工具箱中提供了階躍響應的實現函數pim_step(),其調用格式如下:
參數簡單說明:
返回參數中y,x,t 分別為響應的量測值、狀態值和時間序列向量。其中,y是一個三維數組,[no. of outputs, no. of specified input channels, length of t ]y(:, k,:)表示對第k 個輸入通道施加單位階躍輸入產生的響應;類似地,x也是
一個三維數組,[no. of states, no. of specified input channels, length of t ]
輸入參數中A,B,C,D表示系統矩陣,如式(1.1a,b)所示;tspan 指定了仿真時間區段及仿真步長,即0 s f tspan = [t :T :t ];iu 指定輸入u的通道號。
3) 設計實例
例1.1.2 考慮經典的二階有阻尼振蕩系統,引入狀態向量上述高階微分方程可轉化為狀態空間描述,試分析當無阻尼振蕩頻率1.0 n
ω = 時,在不同阻尼比下(? 0, 0.1, 0.3, , = 0.9, 1.0, 3, 5)的階躍響應。
解 分別采用PIMCSD 和MATLAB 工具箱提供的函數完成階躍響應分析,代碼比較如表1.1.2 所示,可見二者的調用格式是相似的。圖1.1.2 給出了階躍響應的結果,兩段代碼得到的結果完全一致。
1.1.3 脈沖響應
1) 問題描述
所謂脈沖響應,就是在零初值條件下,系統由單位脈沖輸入引起的響應。單位脈沖輸入用函數描述為
2) PIMCSD 工具箱中的實現
PIMCSD工具箱中提供了脈沖響應的實現函數pim_impulse(),其調用格式如下:
參數簡單說明:
返回參數中y,x,t 分別為響應的量測值,狀態值和時間序列向量。其中,y是一個三維數組,
[no. of outputs, no. of specified input channels, length of t ]
y(:, k,:)表示對第k 個輸入通道施加單位脈沖輸入產生的響應;類似地,x也是一個三維數組,
[no. of states, no. of specified input channels, length of t ]
輸入參數中A,B,C,D表示系統矩陣,如式(1.1a,b)所示;tspan 指定了仿真時間區段及仿真步長,即0 s f tspan = [t :T :t ];iu 指定輸入u的通道號。
3) 設計實例
例1.1.3 以示例1.1.2 中的二階有阻尼振蕩系統為例,試分析當阻尼比? 0.707 = 時,在不同特征頻率下0.1, 0.2, , 1.0 nω = ( )的脈沖響應。
解 分別采用PIMCSD 工具箱和MATLAB 工具箱提供的函數完成脈沖響應分析,表1.1.3 給出了程序比較,可以看出,二者的函數調用格式是很相似的。圖1.1.3 給出了脈沖響應結果,兩段代碼得到結果是完全一致的