发布时间:2025-12-09 17:37:01 浏览次数:6
本文需要对LMI理论和H无穷控制理论具有一定的了解。
建立一个二阶系统
A = [ 1 2 − 2 3 ] A = \left[ \begin{matrix} 1 & 2 \\ -2 & 3 \end{matrix} \right] A=[1−223] B 1 = [ 1 0 ] , B 2 = [ 0 1 ] B_1 = \left[ \begin{matrix} 1 \\ 0 \end{matrix} \right], B_2 = \left[ \begin{matrix} 0 \\ 1 \end{matrix} \right] B1=[10],B2=[01] C 1 = [ 1 0 ] , C 2 = [ 1 1 ] , C_1 = \left[ \begin{matrix} 1 & 0 \end{matrix} \right], C_2 = \left[ \begin{matrix} 1 & 1 \end{matrix} \right], C1=[10],C2=[11], D 11 = 1 , D 12 = D 21 = D 22 = 0 D_{11} = 1,D_{12} = D_{21} = D_{22} = 0 D11=1,D12=D21=D22=0其方程表示为
x ˙ = A x + B 1 w + B 2 u z = C 1 x + D 11 w + D 12 u y = C 2 x + D 21 w + D 22 u \begin{aligned} \dot{x} &= Ax + B_1 w +B_2 u \\ z &= C_1 x + D_{11} w + D_{12} u \\ y &= C_2 x + D_{21} w + D_{22} u \end{aligned} x˙zy=Ax+B1w+B2u=C1x+D11w+D12u=C2x+D21w+D22u
利用代码
P = ltisys(A, [B1 B2], [C1; C2], [D11 D12; D21 D22]);把ABCD以系统矩阵的形式系统存储下来。
随后使用hinflmi代码得到系统的最优H无穷表现gopt和最优H无穷控制器K:
值得注意的是,若不设计最优H无穷控制器,而设计 γ \gamma γ-次优H无穷控制器,则需要在hinflmi中加入参数 γ \gamma γ:
[gopt, K] = hinflmi(P, [1 1], gamma);在H无穷控制器作用下,系统的EE增益不会超过gopt。
下一步,利用slft函数将P和K建立为闭环系统:
而splot函数则可以绘制闭环系统的阶跃或脉冲响应。这里以阶跃相应为例:
splot(close, 'st');其中'st'表示阶跃响应。
得到的H无穷控制下的阶跃响应如下图所示:
查看系统的EE增益:
得到
ans = 1.1695MATLAB代码附下:
A = [1 2;-2 3];B1 = [1; 0];B2 = [0; 1];C1 = [1 0];C2 = [1 1];D11 = 1;D12 = 0;D21 = 0;D22 = 0;P = ltisys(A, [B1 B2], [C1; C2], [D11 D12; D21 D22]);[gopt, K] = hinflmi(P, [1 1]);close = slft(P, K); % 组成闭环系统norminf(close) % 返回闭环系统的EE增益splot(close, 'st'); % 绘制闭环系统的阶跃响应grid on;grid minor;