首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最优控制理论笔记总结(24)——倒立摆的最优控制仿真举例(含Matlab实现代码)

本次笔记总结:

倒立摆的最优控制

倒立摆被控对象

仿真结果

仿真代码

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

公众号内还有:

【经典控制理论】全套笔记

【现代控制理论】全套笔记

【非线性控制理论】全套笔记

【车辆动力学】全套笔记

期待您的关注、留言、讨论!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OK8shWjAfFzOGWNUq-XfsGAg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券