倒立摆matlab仿真程序_一阶倒立摆的PID控制和LQR控制

6cb5e36db3cbaff59bf871d701f7dd5f.png

前言

倒立摆模型在机器人学的很多地方都有用到, 如人形机器人行走时就可以简化成一个倒立摆, 2019Robomaster高中生冬令营简历题中有一道经典的一阶倒立摆, 简历的提交已经截止, 所以发一下这篇文章以供参考, 肯定有很多错误的地方请多指教.

建模与分析

一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制,可以控制小车电机的转动力矩M。同时,也可以获取小车轮子转动的圈数N(可以精确到小数)和杆相对于垂直位置的倾角α.

a1031ae5f101e2f36874486a8e83eb70.png

不考虑车轮打滑, 小车所受力大小等于电机力矩乘车轮半径, 小车位置可以从转动圈数计算出, 小车可简化为最经典的一阶倒立摆:

901fa56a0691fdeb8c55b7e8d955ee7a.png

4139cdc53970811126fc39c3b3389c1c.png

受力分析与方程建立

3cd0370997435f7cb32af96e8b467fa3.png


对小车水平方向:

对摆水平方向:

即:

对摆垂直方向:


即:


关节力矩:


在工作点
进行线性化:
经过一顿操作化简之后能得到:
传递函数表示
进行拉普拉斯变换得到:

一顿操作得到摆的角度的传递函数:

小车位置的传递函数:

其中
为:

Matlab代码:
 %Modeling %%Transfer Function mCart = 0.5;
 mPend = 0.2; b = 0.1; I = 0.018;
 g = 9.8;
 L = 0.3;
 q = (mCart+mPend)*(I+mPend*L^2)-(mPend*L)^2;
 s = tf('s');
 P_
  • 23
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值