本次笔记总结:
倒立摆的最优控制
倒立摆被控对象
仿真结果
仿真代码
M0 = 3.0037;
M1 = 0.4994;
M2 = 0.3131;
l1 = 0.2503;
l2 = 0.2054;
L1 = l1+l2;
f0 = 20.1567;
f1 = 0.00864;
f2 = 0.00798;
G0 = 10.24;
I1 = (M1*(2*l1)^2)/3;
I2 = (M2*(2*l2)^2)/3;
T0 = [1 0 0;0 1 0;0 -1 1];
M = [M0+M1+M2 M2*L1+M1*l1 M2*l2;
M2*L1+M1*l1 I1+M1*l1^2+M2*L1^2 M1*L1*l2;
M2*l2 M1*L1*l2 l2+M2*l2^2];
N = [0 0 0;0 (M1*l1+M2*L1)*9.8 0;0 0 M2*l2*9.8];
F=[-f0 0 0;0 -(f1+f2) f2;0 f2 -f2];
G = [G0 0 0]';
A11 = zeros (3);
A12 = eye(3);
A21 = T0*(M^-1)*N*(T0^-1);
A22 = T0* (M^-1) *F* (T0^-1) ;
B1 = zeros(3,1);
B2 = T0*(M^-1)*G;
C1 = eye(3) ;
C2 = zeros(3) ;
A= [A11 A12;A21 A22];
B = [B1;B2];
C = [C1 C2];
D = [0 0 0]';
r1 = eig (A)
Q = [100 0 0 0 0 0;0 10 0 0 0 0;0 0 5000 0 0 0; 0 0 0 0 0 0; 0 0 0 0 0 0;0 0 0 0 0 0];
R = 1;
[K,P,r2] = lqr (A,B,Q,R)
Ac = [A-B*K];
Bc=[B];
Cc=[C];
Dc=[D];
Time = 0:0.001:20;
U = zeros(size(Time));
x0 = [0 -0.05 0.1 0 0 0]';
[Y,X] = lsim(Ac,Bc,Cc,Dc,U,Time,x0);
figure(1)
plot(Time,Y(:,1))
xlabel('时间 (s)')
ylabel('θ1 (rad)')
grid on
figure(2)
plot(Time,Y(:,2))
xlabel('时间 (s)')
ylabel('θ2-θ1 (rad)')
grid on
figure(3)
plot(Time,Y(:,3))
xlabel('时间 (s)')
ylabel('小车位移 (m)')
grid on
公众号内还有:
【经典控制理论】全套笔记
【现代控制理论】全套笔记
【非线性控制理论】全套笔记
【车辆动力学】全套笔记
期待您的关注、留言、讨论!
领取专属 10元无门槛券
私享最新 技术干货