matlab 离散系统稳定性,基于LMI的离散系统非脆弱H∞滤波器设计(Matlab,程序)
时间: 2024-05-10 13:18:43 浏览: 139
以下是基于LMI的离散系统非脆弱H∞滤波器设计的Matlab程序,其中包括了稳定性判断:
```matlab
% 离散系统非脆弱H∞滤波器设计
% 基于线性矩阵不等式(LMI)的方法
% 作者:CSDN博主@ChitGPT
clear,clc
% 定义系统矩阵及噪声矩阵
A = [0.8 0.6; -0.7 0.3];
B = [1; 0.5];
C = [1 -1];
D = 0;
G = [0.5 0.2; -0.3 0.1];
Q = [1 0; 0 1];
% 定义LMI变量和参数
setlmis([])
P = lmivar(1,[2 1]);
gamma = lmivar(1,[1 0]);
alpha = lmivar(2,[1 1]);
% 定义LMI约束
lmiterm([1 1 1 P],1,1)
lmiterm([2 1 1 alpha],A,1,'s')
lmiterm([2 1 1 P],B*G',1)
lmiterm([2 1 2 alpha],1,Q)
lmiterm([2 2 2 P],-gamma,1)
% 求解LMI
lmisys = getlmis;
[tmin,xfeas] = feasp(lmisys);
% 判断是否存在可行解
if tmin < 0
disp('不存在可行解')
else
% 提取LMI变量值
P = dec2mat(lmisys,xfeas,P);
gamma = dec2mat(lmisys,xfeas,gamma);
alpha = dec2mat(lmisys,xfeas,alpha);
% 计算控制器增益矩阵
K = gamma*G'*inv(alpha);
% 判断系统稳定性
eig_AK = eig(A-K*C);
if max(abs(eig_AK)) < 1
disp('系统稳定')
else
disp('系统不稳定')
end
end
```
其中,LMI约束中的第一行表示 $P > 0$,第二行表示 $A^TP+PA+BGC^TPCGB^T<0$,第三行表示 $alpha\left(\begin{matrix} Q & KG \\ G^TK^T & P \end{matrix}\right)>0$。程序中使用了 `lmivar` 函数定义LMI变量,使用 `lmiterm` 函数定义LMI约束,使用 `getlmis` 函数获取LMI表达式,使用 `feasp` 函数求解LMI,使用 `dec2mat` 函数提取LMI变量值。最后,通过计算控制器增益矩阵 $K$ 和判断系统特征值是否在单位圆内来判断系统的稳定性。
阅读全文