首页 > 其他分享 >(七)阶段性成果-simulink实现小车倒立摆,使用LQR控制,摆杆初始角度在平衡位置附近。

(七)阶段性成果-simulink实现小车倒立摆,使用LQR控制,摆杆初始角度在平衡位置附近。

时间:2024-10-27 14:16:12浏览次数:3  
标签:simulink Fx global 矩阵 LQR states 摆杆

效果如下图所示:

共有两个.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

相关文章