基于LMI工具箱设计状态反馈H无穷控制器
时间: 2023-08-03 14:06:55 浏览: 243
基于LMI的输出反馈H_∞控制在matlab的仿真(M文件)
基于LMI(线性矩阵不等式)工具箱设计状态反馈H无穷控制器的步骤如下:
1. 定义系统模型:使用“ss”函数定义系统的状态空间模型。
2. 定义加权函数:使用“augw”函数定义系统加权函数,其中包括控制器加权函数、传感器加权函数和外部加权函数。
3. 构造LMI约束:使用“lmis”函数构造LMI约束,其中包括状态反馈增益矩阵、Lyapunov矩阵和gamma值等。
4. 解决LMI问题:使用“lmi”函数解决LMI问题,得到状态反馈增益矩阵。
5. 构造闭环系统:使用“feedback”函数构造闭环系统。
以下是一个简单的MATLAB代码示例:
```
% 定义系统模型
sys = ss(A,B,C,D);
% 定义加权函数
Wc = tf([1 2],[1 3]);
Ws = tf([1 1],[1 5]);
Wu = tf([1 1],[1 10]);
L = augw(sys,Wu,Ws,Wc);
% 构造LMI约束
setlmis([]);
gamma = lmivar(1,[1 0]);
P = lmivar(1,[n 1]);
Lm = lmivar(2,[n m]);
lmiterm([1 1 1 P],1,1);
lmiterm([-2 1 1 P],1,1);
lmiterm([3 1 1 Lm],1,B);
lmiterm([3 1 1 P],A',-1,'s');
lmiterm([3 1 2 0],C);
lmiterm([3 1 3 0],Lm*Wc);
lmiterm([-4 1 1 gamma],1,1);
lmis = getlmis;
[tmin,xfeas] = feasp(lmis);
% 解决LMI问题
P = dec2mat(lmis,xfeas,P);
Lm = dec2mat(lmis,xfeas,Lm);
% 构造闭环系统
K = Lm/P;
sys_cl = feedback(K*L,sys);
```
其中,A、B、C、D分别为系统的状态空间矩阵,n和m分别为输入和输出的数量。Wc、Ws和Wu分别为控制器加权函数、传感器加权函数和外部加权函数,可以根据具体问题进行定义。最终得到的状态反馈增益矩阵为K,闭环系统为sys_cl,gamma值为解决LMI问题得到的最小值。
阅读全文