PID算法的含义及其应用,PID基础,适合不懂PID算法的人来看!

                        先插句广告,本人QQ522414928,不熟悉PID算法的可以一起交流学习,随时在线

  在正式进入正文前,补充一下本人学习PID算法的背景,先自我介绍一下:本人一名大三电子专业的学生,什么学校你就别管了,学校一般,普通的二本院校。到现在可以说我已经研究了快两年的PID,这期间做过帆板角度控制系统,做过平衡车,做过倒立摆,做过板球控制系统,做过openmv小球追踪系统,还做过四旋翼等……,可以说现在已经很熟悉PID算法,包括单级的PID算法和多级的PID算法。到现在感觉其实这个PID算法还是很经典,很有用的,那么简简单单的几行代码,就能实现自动追踪,自动跟随,平衡等操作,用途广泛。如果你不会PID算法,大多数控制其实你是实现不了的,如果这个经典而又简单的算法你不会不会,别的控制类的算法估计你也不会。可能让你做一件产品或是参加某些控制类比赛,显然,不会PID这些算法,你只能做简单的逻辑控制,而逻辑控制又太简单,几个if()语句判断显然是不满足控制类设计的需要的。另外,很多不需要PID算法的设计其实也是可以加入PID算法的,这能让你的设计更有稳定性和挑战性,有些必须需要PID算法的设计,没有PID不能形成闭环控制,是根本不能完成的。

  扯淡的不多说,本人就喜欢简单粗暴,喜欢把复杂的东西简单化,很多的电子教程虽然把PID算法介绍的很全面,但是写的复杂的不得了,今天本人就用通俗易懂的语言把复杂的问题简单化:

  先解释一下传统的位式算法,也就是简单的逻辑算法:

  ①先拿恒温烧水系统来说,假如说你要把水烧到80度,简单的逻辑做法是在水里加一个温度传感器和电热烧水器,然后用单片机测温,如果if(温度<80度),那你就给电热烧水器加热烧水,如果if(温度>80度),那我就停止加热。思考一下,最后你得到的水温一定会是80(可以上下有微小差别)度吗?答案肯定是否定的。(这里说明一下,不要教条,不要问你为什么会把水烧到80度,直接把水烧开不行吗,如果你有这样的疑问,不要再看了,你学不明白这个算法。)这是为什么?我来解释一下,当传感器测到温度达到80度时,单片机控制加热器停止加热,虽然加热器断电了,但是加热器的余温还是比水的温度要高,所以加热器不会立即停止加热,而是继续给水加热一会儿直到和水的温度一样,此时水的温度会高于80度,可能电热器的余温就把水加热到了90度,对吧!然后水和加热器又一起降温,一般情况下加热器降温的速度会更快,所以当水的温度下降到80度时,加热器的温度又低于80度,这时传感器检测到水温低于80度,单片机又控制加热器加热,而此时加热器温度不够低于80度,所以需要预热一下再给水加热,在预热的这段时间里水的温度可能又降到了75度才开始加热。所以,水的温度不能保持在80度上下轻微浮动的范围内,水温一直都是在75度到90度之间浮动的!

  ②再拿平衡车系统来说,你需要一个陀螺仪传感器,比如(mpu6050),先说下平衡车的原理,避免有些人不懂,平衡车为什么两个轮子能站着不到,大家一定都军训过,站过军姿,站军姿的时候教官让你身体前倾,但是只能轻微的前倾,如果你能前倾45度,那你一定控制不住身体平衡,需要往前迈步才能达到平衡。平衡车跟这个原理是一样的,如果车要往前倒,那我让车轮前转来维持平衡,如果车往后倒,那我让车轮后传来维持平衡,原理都应该明白了吧!(如果这个原理还不明白建议不要学了,更不要搞控制方向了,避免学了半天还得转行浪费时间)继续,假设车上的陀螺仪角度0度时车是平衡的,如果角度大于0度我就让车轮前转,如果角度小于0度我就让车轮后转,显然这样做,车是平衡不了的,由于车的惯性作用,一下可能就过调了,直接倒了。原理跟烧水差不多,不多说了。

  下面开始说PID算法:

  先说PID三个参数,P是比例,I是积分,D是微分;很多人都知道这三个参数,只是不了解其背后代表的含义,为啥用比例积分微分。不着急听我慢慢给你介绍,只要我介绍完,你一下就懂了。

  首先介绍一下P,P代表比例,光用一个比例算法其结构是这样的:

    err(误差)=setpoint(设定值)-actual_value(传感器测量的实际值)    (误差这个概念大家应该都明白)

    output(输出值比如PWM)=p(比例系数)*err(误差)

明天继续,今天舍友都睡了,不打扰了。

原文地址:https://www.cnblogs.com/LiuXinyu12378/p/8878582.html

时间: 2024-10-09 12:26:21

PID算法的含义及其应用,PID基础,适合不懂PID算法的人来看!的相关文章

十大基础实用算法之寻找最小(最大)的k个数-线性查找算法

例如:输入1,2,3,4,5,6,7,8这8个数字,则最小的4个数字为1,2,3,4. 思路1:最容易想到的方法:先对这个序列从小到大排序,然后输出前面的最小的k个数即可.如果选择快速排序法来进行排序,则时间复杂度:O(n*logn) 注:针对不同问题我们应该给出不同的思路,如果在应用中这个问题的规模不大,或者求解前k个元素的频率很高,或者k是不固定的.那么我们花费较多的时间对问题排序,在以后是使用中可以线性时间找到问题的解,总体来说,那么思路一的解法是最优的. 思路2:在思路1的基础上更进一步

重拾算法之路——递归与分治基础

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 这个周末家里有点事,回了趟家,就断了一些学习计划.. 抓紧补上! 第一个算法--递归与分治 都知道,分治算法基本思想是 将一个难以直接解决的问题,分割成一些规模小的相同问题,以便各个击破,分而治之, 这样,我们就可以将一个复杂的算法,类型不变,规模越来越小,最终

图像处理之基础---肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法

本文涉及的很多算法,在网络上也有不少同类型的文章,但是肯定的一点就是,很多都是不配代码的,或者所附带的代码都是象征性的,速度慢,不优雅,不具有实用价值,本文努力解决这些问题. 文中各算法出现的顺序并不代表算法的优越性,仅仅是作者随机排布的而已. 2.基于RGB颜色空间的简单阈值肤色识别 在human skin color clustering for face detection一文中提出如下简单的判别算式: R>95 And G>40 And B>20 And R>G And R

笔试算法题(50):简介 - 广度优先 &amp; 深度优先 &amp; 最小生成树算法

广度优先搜索&深度优先搜索(Breadth First Search & Depth First Search) BFS优缺点: 同一层的所有节点都会加入队列,所以耗用大量空间: 仅能非递归实现: 相比DFS较快,空间换时间: 适合广度大的图: 空间复杂度:邻接矩阵O(N^2):邻接表O(N+E): 时间复杂度:O(V+E): DFS优缺点: 无论是系统栈还是用户栈保存的节点数都只是树的深度,所以空间耗用小: 有递归和非递归实现: 由于有大量栈操作(特别是递归实现时候的系统调用),执行速度

最短路径A*算法原理及java代码实现(看不懂是我的失败)

算法只要懂原理了,代码都是小问题,先看下面理论,尤其是红色标注的(要源码请留下邮箱,有测试用例,直接运行即可) A*算法 百度上的解释: A*[1](A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法. 公式表示为: f(n)=g(n)+h(n), 其中 f(n) 是从初始点经由节点n到目标点的估价函数, g(n) 是在状态空间中从初始节点到n节点的实际代价, h(n) 是从n到目标节点最佳路径的估计代价. 保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取: 估价值

优化的对比度增强算法用于有雾图像的清晰化处理(算法效果是我目前看到最为稳定的,且对天空具有天然的免疫力,极力推荐有需要的朋友研究)。

在未谈及具体的算法流程前,先贴几幅用该算法处理的效果. 不知道各位对这个算法的效果第一印象如何. 这个算法的原理来自于文章<Optimized contrast enhancement for real-time image and video dehazing>,作者是韩国人. 这个算法也是基于大气散射模型: 和现在一些常见的去雾文章有明显的不同的是,这篇文章的并不是基于暗通道原理的,也不是把重点强调在透射率图的细化上,而是提出了一种新的得到粗透射率图的方法.并且文章分别讲到了静态图像和视频

关于Floyd-Warshall算法由前趋矩阵计算出的最短路径反映出了算法的执行过程特性的证明

引言:Floyd-Warshall算法作为经典的动态规划算法,能够在O(n3)复杂度之内计算出所有点对之间的最短路径,且由于其常数较小,对于中等规模数据运行效率依然可观.算法共使用n此迭代,n为顶点个数.其中第k次迭代计算出每对顶点之间所有中间结点小于等于k的最短路径长度,其中i到j的最短路径要么是经过k的一条路径,这条路径的由k所分割出的两个路径i → k.k → j是中间路径小于等于k-1的最短路径:要么是从i到j的中间路径小于等于k-1的最短路径.定义dij(k)为从i到j的最短路径长度,

经典算法题每日演练——第六题 协同推荐SlopeOne 算法

原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,“商品推荐”,"猜你喜欢“,在实体店中我们有导购来为我们服务,在网络上 我们需要同样的一种替代物,如果简简单单的在数据库里面去捞,去比较,几乎是完成不了的,这时我们就需要一种协同推荐算法,来高效的推荐浏览者喜 欢的商品. 一:概念 SlopeOne的思想很简单,就是用均值化的思想来掩盖个体的打分差异,举个例子说明一下: 在这个图中,系统该如何计算“王五“对”电

【算法模型】轻松看懂机器学习十大常用算法

[算法模型]轻松看懂机器学习十大常用算法 通过本篇文章大家可以对ML的常用算法形成常识性的认识.没有代码,没有复杂的理论推导,仅是图解,介绍这些算法是什么以及如何应用(例子主要是分类问题).以后有机会再对单个算法做深入地解析. 今天的算法如下: 决策树 随机森林算法 逻辑回归 SVM 朴素贝叶斯 K最近邻算法 K均值算法 Adaboost 算法 神经网络 马尔可夫 1. 决策树 根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问.这些问题是根据已有数据学