我做PID算法的背景和经历:本人电子信息科学与技术专业,现在是一名大三的学生,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系统,还不懂PID是个什么玩意,老师让我把PID加到这个题目里。当时给了一些电子版的一些教程,但是没看懂。。。。。。。后来对四旋翼很感兴趣,想弄一架玩玩再亲自写程序做一架,买了PIX飞控玩了很久,自己也确实做了一个简单的飞控,我做的飞控只能简单飞起,没有啥创新功能。。。(这过程得有一年多,说来话长,因为玩飞机成本高而且效率比较低,最后干脆不继续了,反正是把PID现在搞得很熟悉了,这期间也做了平衡车和倒立摆,想问PID问题的可以联系我QQ522414928,随时在线。)

我曾经玩的四旋翼,玩飞机花了不少钱:

  1.倒立摆与平衡车最通俗的理解与解释(也是我努力了半天总结的经验):当年的电子大赛旋转倒立摆到底有多变态,很多人都认为1个PID只要参数适中这个问题就能解决,因为平衡车一个PID就能够站起来,很多人都以为倒立摆跟平衡车一样,很多人努力了很长时间都以为机械结构做的不好或程序及参数写的不对而放弃,我也一直认为1个PID能解决这个问题,做了一段时间以放弃告终。单纯的控制角度跟随一个PID确实能够让摆站起来,但是忽略了一个很重要的细节,就是在电机速度很快的时候摆平衡了,而且在摆平衡的时候电机的速度一定会很快,此时就会保持这种电机高速运转的状态,但是这种高速旋转显然是短暂的平衡,所以用单级PID做的倒立摆会瞬间平衡一下立刻倒下。

  所以说对于倒立摆这个系统,单级的PID算法是实现不了的,至少需要两级PID去控制才能站稳。

当年做的平衡车,做过好几个,有单级PID算法的,还有多级PID算法的:

 

    以下是研究倒立摆时遇到的PID串级和并集的困扰:

  2.折腾了很长时间PID的问题,尤其是串级PID,以前还想不明白串级PID的外环输出为什么给内环PID的输入,后来想明白了。但是,今天又有了新的发现,研究了这么长时间的串级PID,今天恍然大悟了,把串级PID的公式推导,把串级的两个PID的两个公式合并成一个公式不就是并级的PID公式吗,感谢平衡小车之家的店主提醒,以前从来没推导过,竟然:串级PID=并级PID,以后研究各种平衡跟踪的问题完全不用考虑难以理解的串级pid了,直接一个PID不行,再并一个PID就可以了,一直纠结的问题原来这么简单,并且把串级PID和并级PID都用倒立摆试了一下,结果效果是一样的。只是并级第二个PID的参数=原来串级外环PID的参数*(乘)原来串级PID内环的参数
结果:串级PID=并级PID,MD其实是一个玩意,但是并级PID要比串级PID更容易实现一些

用openmv做的PID小球颜色追踪:

旋转倒立摆:

想看更多的资料或教程可以到我的QQ空间https://user.qzone.qq.com/522414928/infocenter

或加QQ522414928共同学习

转载于:https://www.cnblogs.com/LiuXinyu12378/p/8836569.html

PID算法 旋转倒立摆与平衡车的区别。此贴会更新。相关推荐

  1. 【强化学习】PPO算法求解倒立摆问题 + Pytorch代码实战

    文章目录 一.倒立摆问题介绍 二.PPO算法简介 三.详细资料 四.Python代码实战 4.1 运行前配置 4.2 主要代码 4.3 运行结果展示 4.4 关于可视化的设置 一.倒立摆问题介绍 Ag ...

  2. python value iteration算法玩倒立摆(inverted pendulum)

    最近用value iteration的方法实现了一下倒立摆,看一下效果: pendulum 我这里分享一下我的实现,倒立摆的代码为: # a few packages we need to impor ...

  3. pid算法中位置型和增量型有什么区别,分析两者优缺点

    关于P.I.D三个环节的选择,一般只会用到PI控制或者PD控制,例如速度控制要求稳态无误差,那么就需要积分环节,所以使用PI控制:而使用方向控制的时候,由于不需要无稳态误差,所以使用PD控制即可,D的 ...

  4. 直立平衡车PID控制策略以及数据平滑算法

    在某些场合下,如果我们把一个突变的数据直接加到一个已经稳定的系统中,那么这个系统可能会很难再次达到稳定,这个时候就需要对突变的数据进行平滑处理,逐渐的加大.可能这样说不太容易理解,举个例子,最近在做一 ...

  5. 玩转OpenHarmony PID:教你打造两轮平衡车

    目录 简介 硬件配置资源 原理概括 PID算法介绍 两步搭建样例工程 关键算法讲解 直立环控制算法: 速度环控制算法: 转向环控制算法: 总结 相关链接 简介 此次为大家带来的是OpenAtom Op ...

  6. 倒立摆C语言双闭环控制程序,基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)...

    <基于双闭环PID控制的一阶倒立摆控制系统的设计.doc>由会员分享,可在线阅读全文,更多相关<基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)>请在www.woc88 ...

  7. SimMechanics/Second Generation倒立摆模型建立及初步仿真学习

    笔者最近捣鼓Simulink,发现MATLAB的仿真模块真的十分强大,以前只是在命令窗口敲点代码,直到不小心敲入simulink,就一发不可收拾.话说simulink的模块化建模确实方便,只要拖拽框框 ...

  8. 倒立摆stm32F407控制程序

    #具体操作 写好倒立摆程序的关键是确定pid算法的程序和参数值.我根据网上查找的资料写了用stm32F407控制倒立摆的pid程序,现在我将程序分享给大家. 我的程序主要是根据位置式离散pid公式pw ...

  9. OpenAI Gym 经典控制环境介绍——CartPole(倒立摆)

    摘要:OpenAI Gym是一款用于研发和比较强化学习算法的工具包,本文主要介绍Gym仿真环境的功能和工具包的使用方法,并详细介绍其中的经典控制问题中的倒立摆(CartPole-v0/1)问题.最后针 ...

  10. MFC的固高环形倒立摆GRIP2002实验平台

    固高环形倒立摆GRIP2002是基于GT-400-SV-PCI运动控制卡的一个二级环形倒立摆(摆杆和连杆两根杆的摆),固高公司提供了一个DOS环境下的Demo和MATLAB 7.0的simulink的 ...

最新文章

  1. linux独立应用程序开发,Linux应用程序开发(一)
  2. quratz数据存储
  3. python 多个列表_Python同时迭代多个列表
  4. mysql client 未开启_Django+mysqlclient未关闭数据库连接
  5. Laravel 代码开发最佳实践(持续更新)
  6. Spring重点面题总结
  7. 利用 cwRsync 实现代码(文件)同步的解决办法
  8. 微软首款 Office 应用程序登陆 Linux
  9. Gprinter Android SDK V1.0 使用说明
  10. Vue启动项目报错travel@1.0.0 dev: `webpack-dev-server--inline --progress --config build/webpack.dev.conf.js
  11. EEG时频分析介绍与实现
  12. 关于PLC的输入输出点,源型漏型的判断
  13. 常用颜色RGB表 色值
  14. mysql指定取值范围_MySQL中各种字段的取值范围(转)
  15. idea中整合redis中出现 Error creating bean with name ‘com.sxt.redis.RedisApplicationTests‘:
  16. Flask实现简单搜索功能
  17. Uninstall Tool 破解手记
  18. 最新云豹二开直/播短视频完整系统源码+带开发文档/教程
  19. python 通达信板块_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...
  20. alpha在matlab中的作用,在MATLAB中用alpha值绘制圆圈

热门文章

  1. 学画画软件app推荐_【画画必备】让你成为大触的6款APP
  2. 万能的MATLAB丨大厂工程师必备技能,免费学习
  3. 富士施乐s2110多vlan共享问题
  4. Python pip下载包时候出现下载中断,超时的情况
  5. html语言pre,【已解决】html代码中用pre还是code表示程序代码以及如何指定代码的语音种类...
  6. 黑马程序员视频-微信小程序-原生框架——项目搭建
  7. Gdiplus::Bitmap转HBITMAP与HBITMAP转Gdiplus::Bitmap
  8. 安卓频谱仪audiotool中文_频谱分析仪 TEK2712
  9. 【老生谈算法】matlab实现免疫算法源码——免疫算法
  10. SQL SERVER 卸载清除步骤