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
评论(0)
您还未登录,请登录后发表或查看评论