看起来PID高大尚,实则我们都是被他的外表所震撼住了。先被别人唬住,后被公式唬住,由于大多数人高数一点都不会或者遗忘,所以再一看公式,简直吓死。了解了很浅的原理后,结果公式看不懂,不懂含义,所以最终没有透彻。我这里先对公式进行剖析,公式理解明白了,结合网上的一些pid讲述的例子,就明白了。

先对PID这三个系数的含义进行简单扫盲,。同时也防止自己遗忘。P是比例系数,I是积分系数、D是微分系数。下面对PID这三个系数进行详细说明。

1.比例系数P是干什么用,其实如果现在你是初中生的话,你一下子就懂了,比例系数就是用在穿过(0,0)这个坐标点直线的放大倍数k,k越大,直线的斜率越大,所以是用在y = k * x中的,其中的k就是比例系数p,大家都简称为kp,所以就变成了y = Kp * x。

x就是当前值currentValue和目标值totalValue的差值,简称误差err,则err = currentValue - totalValue。y就是执行器对应的输出值U,所以执行器对应的输出值U = Kp * ( currentValue - totalValue ) 。

所以,如果说是使用比例进行调节。

则当前第1次调节时执行器对应的输出值为U1 = Kp * ( curentValue1 - totalValue1 )。

第2次调节时执行器对应的输出值为U2 = Kp * ( currentValue2 - totalValue2 )。

这就是比例系数P的应用,也就是大家说的比例调节。比例调节就是根据当前的值与目标值的差值,乘以了一个Kp的系数,来得到一个输出值,这输出值直接影响了下次当前值的变化。如果只有比例调节的话,系统会震荡的比较厉害。比如你的汽车现在运行的速度是60km/h,现在你想通过你的执行器去控制这个汽车达到恒定的50km/h,如果你只用kp进行比例调节话。U = Kp * ( 60 - 50 ),假设Kp取值为1,此时得到U执行器的输出值是10,结果当你执行器输出后,发现汽车一下变成了35Km/h,此时U2 = Kp * (35 - 50),此时得到U执行器的输出值是-15,结果当你执行器输出后,发现汽车变成了55Km/h,由于惯性和不可预知的误差因素,你的汽车始终无法达到恒定的50km/h。始终在晃动,相信如果你在车上,你一定吐的很厉害。所以光有比例系数进行调节,在有些场合是没有办法将系统调稳定的。所以可以为了减缓震荡的厉害,则会结合使用比例P和微分D。

2.微分系数D

微分,实际上是对误差进行微分。加入误差1是err(1)。误差2是err(2)。则误差err的微分是 (err2 - err1)。乘上微分系数D,大家叫做KD,则当执行器第1次调节后有了第1次的误差,第2次调节后有了第2次的误差,则结合P系数。就有了PD结合,根据每次调节时,误差的值的经验推算,你就能选取出D的系数。假如误差是越来越小的,那么微分后肯定是一个负值。负值在乘以了一个D系数 加上了比例调节的值后肯定值要比单纯使用比例调节的值要小,所以就启到了阻尼的作用。有了阻尼的作用就会使得系统区域稳定。PD结合的公式经过上面的分析后为

U(t) = Kp * err(t) + Kd * derr(t)/dt

3.积分系数I

积分,实际上是对误差的积分,也就是误差的无限和。如何理解积分系数I,这里引用网上的例子

以热水为例。假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。

在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。 
这可怎么办?

P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。 
D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。

于是,水温永远地停留在45℃,永远到不了50℃。

作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢? 
前辈科学家们想到的方法是真的巧妙。

设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦! 
到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。 
kI的值越大,积分时乘的系数就越大,积分效果越明显。

所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。

所以最终结合PID后,公司就变成了,本人直接从网上找了截图如下

PID算法终于弄明白原理了,原来就这么简单相关推荐

  1. ThreadLocal原理详解--终于弄明白了ThreadLocal

    ThreadLocal原理详解 在我看到ThreadLocal这个关键字的时候我是懵逼的,我觉得我需要弄明白,于是,我就利用搜索引擎疯狂查找,试图找到相关的解答,但是结果不尽人意. 首先说一下我的理解 ...

  2. 对于神经网络,硕博士不需要弄明白原理,只需要应用,是这样吗?

    链接:https://www.zhihu.com/question/433274875 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:匿名用户 https://www.zhihu.com ...

  3. 【转】[中级]我对『PID算法』的理解 —— 原理介绍

    http://www.dfrobot.com.cn/community/thread-14783-1-1.html本帖最后由 virtualwiz 于 2016-5-5 23:31 编辑 LZ以前有个 ...

  4. 控制算法-PID算法总结-从公式原理到参数整定解析(附C源码)

    目录 一.控制系统 1.1控制系统的分类 1.2 性能指标 二.PID算法的起源及特点 三.PID应用 四.PID公式原理 五.PID源码 六.PID整定方法 6.1 经验法 6.2 衰减曲线法 6. ...

  5. 讨论:对于神经网络,不需要弄明白原理,只需要应用,是这样吗?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器学习初学者 转自丨极市平台 导读 一位CV领域的硕士问: ...

  6. dfs、bfs的终于弄明白了

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 作者丨大赛 来源丨bigsai 前言 你问一个人听过哪些算法,那么深度优先搜索(dfs)和宽度优先搜索( ...

  7. java web servlet、servlet容器 HTTP服务器和mvc三层架构或者说servlet属于哪一层的,给我搞的晕晕的,今天终于弄明白了

    0 我们先看Web容器是什么? 首先,让我们简单回顾一下web技术的发展历史,可以帮助你理解web容器的由来. 早期的web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache,Nginx ...

  8. 终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

    一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient, ...

  9. 各层作用_终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

    一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient, ...

最新文章

  1. 美团大脑:知识图谱的建模方法及其应用 | 公开课笔记
  2. python学习手册笔记——20.迭代和解析
  3. js里面字符数字和数字相加_「译」5 个奇怪的只会在 JS 里才发生的趣事
  4. 小师妹学JavaIO之:try with和它的底层原理
  5. oracle sys可以登录,system权限不足,解决方法
  6. C# 线程手册 第一章 线程定义 .NET 和 C# 对线程的支持
  7. Qt与java web通过数据库实现数据展示同步
  8. 因为项目的原因,要学习J2EE了
  9. ElasticSearch全文搜索引擎之Windows集群搭建
  10. DRF实战1 - 环境搭建
  11. ApacheCN 翻译/校对/笔记整理活动进度公告 2019.10.18
  12. 嵌入式常见英文2500词总结
  13. 2020胡润80后白手起家富豪榜公布,掌门教育张翼强势登榜
  14. c语言插值法编程,Lagrange插值的C语言编程.pdf
  15. 电脑PHP动画制作画板,HTML_html5教程制作简单画板代码分享,HTML5制作简单画板 复制代码代 - phpStudy...
  16. Failed to check the status of the service. No provider available for the service【已解决】
  17. linux 隧道服务器,如何在两台CentOS 7服务器之间建立GRE隧道
  18. Unity中的Delegate
  19. 中国科学院大学计算机学科评估,中国科学院大学学科评估结果排名(第四次):最新完整版...
  20. 前端学习-盒模型和怪异盒模型

热门文章

  1. 发送邮件不用登录的技术与技巧
  2. Go学习笔记02-源码
  3. Unity Post Processing(后处理效果)添加方法及注意事项-最全最新
  4. 智能运维算法:周期性异常检测易,非周期性异常检测难
  5. Windows7 简体中文旗舰版下载 (MSDN官方发布正式版原版镜像)!
  6. IBM实习生笔试题目
  7. matlab血管图像增强算法,基于Hessian特征的视网膜血管图像的增强滤波算法
  8. Slicer学习笔记(五十四)slicer分割结果3D显示
  9. Slicer学习笔记(三十九)slicer中Markups模块
  10. R语言取算术平均值函数