效果如下图所示:
共有两个.m文件
第一个:start.m
% % 参数设置
global M m l g k
M=2;
m=0.5;
l=0.3;
g=9.81;
wheel_damping=1e-5;
joint_damping=1e-5;
x_0=0;
y_0=0.125;
q_0=10;
% 系统矩阵 A 和 B
A = [0 0 1 0;
0 0 0 1;
0 (m*g)/M 0 0;
0 (M + m)*g/(M*l) 0 0];
B = [0; 0; 1/M; 1/(M*l)];
% % 输出矩阵 C 和 D
C=eye(4);
D=0;
carpole=ss(A,B,C,D);% 状态空间系统定义
Q=diag([50 20 1 20]); % 设置状态权重 x q dx dq
R=0.1;% 设置控制输入权重
[k,s,p]=lqr(carpole,Q,R);%LQR 控制增益矩阵 K
y=eig(A-B*k); %李雅普诺夫第一法
第二个:LQRControl.m
function Fx =LQRControl(states)
global k
X_des = [0;0;0;0];
Fx=k*( X_des- states );
end
simulink中模块搭建如下:
其中control system:
model:
最后附上.slx文件:
小车倒立摆111111111111111111111111资源-CSDN文库
标签:simulink,Fx,global,矩阵,LQR,states,摆杆 From: https://blog.csdn.net/weixin_47816096/article/details/143268219