1 给出倒立摆系统简化模型

[公式]

2 Riccati等式

[公式]

求出其正定解X>0,则闭环系统反馈控制器

[公式]

转换为Matlab可以求解的形式如下

[公式]

Matlab求解命令

[公式]

3 绘制Simulink仿真图

4 在扰动情况下的求解结果

反馈矩阵计算结果

[公式]

5 参数求解程序

function [A,B1,B2,K]=Parameters()
   clear,clc
    M=1; %小车质量
    m=0.1; %倒立摆质量 
    L=0.5; %摆的长度
    g=9.8 ;%重力加速度
    J=m*L^2/3; %转动惯量
    
    k=J*(M+m)+m*M*L^2 ;
    k1=(M+m)*m*g*L/k ;
    k2=-m^2*g*L^2/k ; 
    k3=-m*L/k ;
    k4=( J+m*L^2 ) /k ; %中间变量

    %------PlantA------------
    
    A=[0,0,1,0 ;0,0,0,1 ;k1,0,0,0 ;k2,0,0,0];
    B1=[0; 0; 0.09; 0.11 ];
%     B1=[0;0;0.5;0.5] ;
    B2=[0; 0; k3; k4];
    C=[1,0,0,0; 0,1,0,0; 0,0,1,0; 0,0,0,1; ] ;
%     C=[1,0,0,0;0,0,0,0] ;
    N=length(A);
    D11=0;
%     D12=[0; 0; 0;0; 1]; %状态方程各个矩阵
    D12=0;
    
    
%     A=[0,1,0,0;10.78,0,0,0;0,0,0,1;-0.98,0,0,0];
%     B1=[0;0;0.09;0.11];
%     B2=[0;-1;0;0.5];
%     N=length(A);
%     D12=[0];
%     C=[1,0,0,0];
%     D11=[];
    
    gamma=1;
    %-----LMI求解------------
%     gamma=2;
    
%      K=LMIB(A,B1,B2,C,D11,D12,gamma,N)  %LMI求解
    %-------------------

%     K=[51.1721, 3.6803, 9.2785, 7.9564];
    %------PlantB------------
%     A=[0  1       0       0;
%        0 -0.0883  0.6293  0; 
%        0  0       0       1;
%        0 -0.2357  27.8285 0] ; 
%     B1=[0 2.3566  0 104.2027]'; 
%     B2=[0 0.8832  0 2.3566]'; 
%     C=[0.064 0   0    0;
%         0     1e-3  0    0;
%         0     0   0.11 0;
%         0     0   0    0.01;
%         0     0   0    0];
%     D12=[0;0;0;0;1];
    %-----Raccati方程求解---可行--------
    B=[B1,B2];
    R=[-1, 0; 0, 1];
    X=care(A, B, C'*C, R)  ;
    K=-B2'*X  %控制器 

%     K=[  112.1078   99.9032 -364.5474  -72.8227];
% X=[0.1253,0.0042,-0.6266,-0.0266;
%       0.0042,0.565,0.0156,-0.3558;
%       -0.6266,0.0156,3.6427,-0.1747;
%       -0.0266,-0.3558,-0.1747,0.5286];
%   W=[0.4583,0.0057,-0.1069,-0.8101];
%   K=W*inv(X)

end