vb 根据pid获取句柄_PID控制算法与二阶倒立摆——使用processing物理库fisica

c3d65cb8949c64bac29895deee61c7d0.png

倒立摆

二阶倒立摆是自动控制理论的经典应用。它的机械结构就是一个倒立着的二阶摆(二阶摆:参见本专栏上个文章),但是因为其倒立的不平衡,不稳定的状态,所以需要在其底部加装一个电机,并通过适当的控制电机来维持系统的平衡,对抗外界的干扰。

我们在这个项目中,使用PID控制算法,不断的获取摆的姿态信息,经过加工计算,给电机指令信号,从而动态维持摆的平衡。如下图:

3e376eb29963b0ee63af9e6b5341e85a.png
倒立摆装置与其控制流

PID算法与自动控制原理

PID控制器是一个在工业控制应用中常见的反馈回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。PID控制器可以根据历史数据和差别的出现率来调整输入值,使系统更加准确而稳定。

PID控制器可以追溯到1890年代的调速器设计。PID控制器是在船舶自动操作系统中渐渐发展。1911年Elmer Sperry开发的控制器是最早期PID型控制器的其中之一[4],而第一个发表PID控制器理论分析论文的是俄裔美国工程师尼古拉斯·米诺尔斯基(Minorsky 1922)。

PID控制器的比例单元(P)、积分单元(I)和微分单元(D)分别对应目前误差、过去累计误差及未来误差。若是不知道受控系统的特性,一般认为PID控制器是最适用的控制器[2]。借由调整PID控制器的三个参数,可以调整控制系统,设法满足设计需求。

7d2c9c9397b3939010a5f5237edcfeb2.png
PID算法流程示意图

效果展示

0e7ba7a3fd1ddd1d9bc66e99ca79068e.png
倒立摆展示视频https://www.zhihu.com/video/1153772766711877632

摆初始时候是直立的。通过鼠标拖拽小球给倒立摆系统干扰,可以看出系统有一定的稳定性与自我恢复能力。

项目在编程时候的难点

  • 理解fisica库对于旋转轴,轴上电机的参数设置方式
  • 对fisica库零部件进行贴图(给摆贴了三个小四角星)
  • 摆的姿态角的计算,以及控制算法优化目标的量化
  • PID算法的实现
  • PID算法的调参(作者调了半个多小时)

另外,这个版本的控制算法的输入信号是最高的杆的直立程度。可以使用更加复杂的输入信号来改进目前的控制算法。(这样应该就能改进视频末尾的失稳的情况)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值