一阶倒立摆的输入和输出是什么_基于遗传算法的一阶倒立摆控制系统PID参数优化...

9ed142e236142548c6e60197cedd7116.png

Gym作为强化学习最常使用的库,在gym内集成了大量的demo,其中最常见的模型就是一阶倒立摆模型。在做算法研究的过程中,无论是强化学习算法,还是经典的控制算法,我们常常需要对比算法的效果。但是往往由于被控对象的动力学模型比较复杂,这就迫使我们在代码中不得不花费更多的时间去构建被控对象的动力学模型。Gym给我们提供了一个非常好的平台,里边集成了常见的动力学模型,例如一阶倒立摆,二阶倒立摆这些都是非常benchmark的模型。有了gym的帮助,我们就可以将研究的重心转到算法研究上,而不是重复的去造轮子。值得一提的是在代码开源这一点上CS和机器学习社区是非常值得其它学科去学习的(尤其是不爱开源代码的控制理论和运筹优化社区)。

本文两大块内容:一是实现一阶倒立摆的PID控制。虽说深度强化学习很火,但是个人感觉经典的控制方法依然是有一席之地的。二是用遗传算法优化得到最佳的PID参数。众所周知调PID参数一直是一个玄学,当然也有很多整定PID参数的方法。既然我是研究优化理论的,那肯定就是用优化方法来搜索到一个好的PID参数了。

1 一阶倒立摆机理动力学模型

如下图所示,一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制,可以控制小车受到的力的大小和方向。我们可以获取小车的位置和速度,杆相对于垂直位置的倾角和杆的速度。目标就是保持杆不倒下来,同时小车静止在中间的位置。

66044ffc39fd2f584cf7d20619b3ad50.png

equation?tex=M 为小车质量,
equation?tex=m 为摆的质量,
equation?tex=I 摆的重心到关节的距离,
equation?tex=b 为阻尼系数,
equation?tex=F 为作用在小车上的力,
equation?tex=x 为小车的位置,
equation?tex=%5Ctheta 为杆的角度,其机理模型如下所示:

equation?tex=M%5Cfrac%7Bd%5E2x%7D%7Bdt%5E2%7D%2Bb%5Cfrac%7Bdx%7D%7Bdt%7D%2BN%3DF (1)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值