1. 程式人生 > 其它 >魯棒控制(Ⅰ)—LMI處理方法

魯棒控制(Ⅰ)—LMI處理方法

技術標籤:matlab控制系統

系統的H∞範數對應於bode圖中幅值曲線的峰值,而系統的H2範數則對應於bode圖中幅值曲線下方的面積。
H∞範數不超過一個上界,H2範數儘可能小,以保證系統對於不確定性具有魯棒穩定性,並表現出更好的效能。
在狀態反饋情況下,閉環系統的H∞效能並不能通過增加控制器的階數來加以改進,因此,系統的H∞狀態反饋控制器,總是能夠選擇一個靜態控制律。
Matlab中計算Hinf最優控制器命令為:hinfsyn 或者 hinflmi。
連續系統控制器求解舉例:

% hinflmi
clear;clc;
A = [0];
B = [1 2];
C = [1;-1];
D =
[0 0;1 0]; P = ltisys(A,B,C,D); % 計算效能指標,和最優控制器K的系統矩陣 [gopt,K] = hinflmi(P,[1,1]) % 計算控制器K的狀態空間實現 [Ak,Bk,Ck,Dk] = ltiss(K) % 如果要求滿足Hoo效能gama<10的一個次優Hoo控制器,輸入為: % [g,K] = hinflmi(P,[1,1],10) % 可以求出滿足線性矩陣不等式矩陣X = y1,Y = x1 % [g,k,x1,x2,y1,y2] = hinflmi(P,[1,1],10); %得到控制器矩陣K之後,計算閉環系統: clsys = slft(P,K)
% 檢測系統閉環穩定性,spol返回系統的閉環極點 spol(clsys) % 從外部擾動w到被調輸出z的閉環系統的RMS增益為: norminf(clsys) % 繪製閉環響應曲線 splot(clsys,'bo'); splot(clsys,'st');
% hinfsyn
Gp = ss(A,B,C,D);
[Kp,CL,gamma] = hinfsyn(Gp,1,1);
% CL相當於閉環之後的系統,也可以用下面語句求閉環系統
Gpc = lft(Gp,Kp);
step(CL)
% 閉環系統的奇異值圖,以確定最大奇異值不超過gamma
sigma(CL,ss(gamma))
% 限制gamma的範圍
ncont =
1; nmeas = 1; gamRange = [1.4 1.6]; [K,CL,gamma,info] = hinfsyn(Gp,nmeas,ncont,'GMIN',1.4,'GMAX',1.6) step(CL) % 如果嘗試獲得任何控制器都無法達到的效能水平,則會通知目標太小, % 並返回空控制器和閉環系統。

為以下控制物件設計混合靈敏度控制器
在這裡插入圖片描述
Hinf控制器設計的關鍵是構建動態系統模型,系統模型具有以下形式:
在這裡插入圖片描述
如果P是具有不確定或可調控制設計塊的廣義狀態空間模型,則hinfsyn將使用這些元素的標稱值或當前值。
H∞控制的一種應用是直接對控制系統的閉環奇異值圖進行整形。在此類應用中,可以通過加權函式(環路整形濾波器)來擴充控制物件的輸入和輸出,這些加權函式表示希望H∞控制器滿足的控制目標。控制物件必須是能控和能觀的。
預設情況下,hinfsyn會自動想控制物件中新增額外的干擾或者誤差,以確保滿足對P12,P21的限制,稱為正則化。
CL是下面結構的閉環傳遞函式,也可以由CL = lft(P,K)得到。
在這裡插入圖片描述

演算法:求解下述線性矩陣不等式:
在這裡插入圖片描述
hinfsyn提供了狀態反饋增益和觀測器增益,可以使用它們以觀測器形式表達控制器。控制器K的觀測器形式為:(其中Kx,Kw,Lx,Lu可以有info結構體得到)
在這裡插入圖片描述

% 定義控制物件,權重函式
s = zpk('s');
G = (s-1)/(s+1);
W1 = 0.1*(s+100)/(100*s+1); 
W2 = 0.1; 
W3 = [];
P = augw(G,W1,W2,W3);
% 控制器綜合
[K,CL,gamma] = hinfsyn(P,1,1);
gamma
% 檢查閉環奇異值
sigma(CL,ss(gamma))