一阶倒立摆的PID_简单旋转装置

一阶倒立摆的PID_简单旋转装置  我做PID算法的背景和经历:本人电子信息科学与技术专业,现在是一名大三的学生,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系统,还不懂PID是个什么玩意,老师让我把PID加到这个题目里。当时给了一些电子版的一些教程,但是没看懂。。。。。。。后来对四旋翼很感兴趣,想弄一架玩玩再亲自写程序做一架,买了PI…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

一阶倒立摆的PID_简单旋转装置一阶倒立摆的PID_简单旋转装置

 

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

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

 

当年做的平衡车,做过好几个,有单级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=并级PID,MD其实是一个玩意,但是并级PID要比串级PID更容易实现一些
 

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

一阶倒立摆的PID_简单旋转装置

 

旋转倒立摆:

一阶倒立摆的PID_简单旋转装置

 

 

 

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

或加QQ522414928共同学习

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171023.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月18日 上午6:46
下一篇 2022年8月18日 上午6:46


相关推荐

  • 如何为pycharm配置Python解释器_anaconda3添加环境变量

    如何为pycharm配置Python解释器_anaconda3添加环境变量@本文来源于公众号:csdn2299,喜欢可以关注公众号程序员学府文章目录1.python解释器安装2.配置环境变量3.pycharm安装4.pycharm设置及使用4.1pycharm设置4.2pycharm使用1.python解释器安装下载地址:https://www.python.org/打开官网,点击downloads,选择操作系统,以windows为例:选择python2与python3解释器版本(以python3.6.6及python2.7.16为例):以python3.6.6为例

    2022年8月25日
    8
  • 经典正交多项式介绍及其应用

    经典正交多项式介绍及其应用1 正交多项式的定义 1 1 正交多项式定义定义 一个多项式序列 p n x n 0 infty 其阶数为 pn x n p n x n pn x n 对于每一个 nnn 这个多项式序列在开区间 a b a b a b 上关于权函数 w x w x w x 正交 如果 abw x pm x pn x dx hn mn int a b w x p m x p n x dx h n delta mn ab

    2026年3月19日
    2
  • C语言中setjmp()函数和longjmp()函数

    C语言中setjmp()函数和longjmp()函数

    2021年8月23日
    88
  • oracle以dba登录_oracle认证

    oracle以dba登录_oracle认证第一步:打开cmd到sqlplus.exe所在目录下,然后执行sqlplus/nolog第二步:conn/assysdba这样便会以dba登陆到数据库,如果登陆不上去,报适配器的错误,则先在cmd中输入setoracle_sid=orcl,再连接数据库第三步:创建用户CREATEUSERmyuserIDENTIFIEDBY1234ACCOUNTUNLOCK;第四步:给用户

    2026年4月14日
    5
  • JVM 垃圾回收机制主要原理

    JVM 垃圾回收机制主要原理对于垃圾JVM的垃圾回收机制这里我们称为GC,众所周知,java语言不需要像c++那样需要自己申请内存,自己释放内存,这些都是JVM帮我们做好了的,但是对于一名java程序员,想要更近自己的水平更上一层楼,就要去了解GC的工作原理,根据原理才能写出更好的更优的程序,这里我们先初步讲解一下GC的工作原理首先我们在讲解之前我们需要了解一下JVM内存运行时数据区的三个重要的地方堆(heap)

    2022年4月30日
    39
  • cscript 执行代码_在Windows上执行恶意代码 by cscript&mshta

    cscript 执行代码_在Windows上执行恶意代码 by cscript&mshtaWindows 自带的可执行文件 合理构造的 payload 脚本 获得会话 cscript 简介在 cscript exe 来寻找和连接脚本的运行库 最常见的有 VBScript 和 JavaScript WSH 环境包括两个脚本宿主 基于控制台的 CScript 和基于 GUI 的 WScript 这两个脚本宿主提供几乎相同的功能 在大多数情况下 使用哪个脚本宿主来运行脚本并不重要 两个例外在于您如何与脚本交互 也就是说

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号