简述PID控制原理及作用 pid算法是什么意思

今天通过图文的形式给大家讲解什么是PID?PID各个参数有什么作用?哪些场合会用到PID?快来一起学习一下吧!
啥是PID?
PID , 就是“比例(proportional)、积分(integral)、微分(derivative)” , 是一种很常见的控制算法 。
PID已经有107年的历史了 , 它并不是什么很神圣的东西 , 大家一定都见过PID的实际应用 。
比如四轴飞行器 , 再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器....
就是类似于这种:需要将某一个物理量“保持稳定”的场合(比如维持平衡 , 稳定温度、转速等) , PID都会派上大用场 。
那么问题来了:
比如 , 我想控制一个“热得快” , 让一锅水的温度保持在50℃ , 这么简单的任务 , 为啥要用到微积分的理论呢 。
你一定在想:
这不是so easy嘛~ 小于50度就让它加热 , 大于50度就断电 , 不就行了?几行代码用Arduino分分钟写出来 。
没错~在要求不高的情况下 , 确实可以这么干~ But!如果换一种说法 , 你就知道问题出在哪里了:
如果我的控制对象是一辆汽车呢?
要是希望汽车的车速保持在50km/h不动 , 你还敢这样干么 。
设想一下 , 假如汽车的定速巡航电脑在某一时间测到车速是45km/h 。它立刻命令发动机:加速!
结果 , 发动机那边突然来了个100%全油门 , 嗡的一下 , 汽车急加速到了60km/h 。
这时电脑又发出命令:刹车!
结果 , 吱...............哇............(乘客吐)
所以 , 在大多数场合中 , 用“开关量”来控制一个物理量 , 就显得比较简单粗暴了 。有时候 , 是无法保持稳定的 。因为单片机、传感器不是无限快的 , 采集、控制需要时间 。
而且 , 控制对象具有惯性 。比如你将一个加热器拔掉 , 它的“余热”(即热惯性)可能还会使水温继续升高一小会 。

简述PID控制原理及作用 pid算法是什么意思

文章插图
三个控制环节的作用
我们先只说PID控制器的三个最基本的参数:kP,kI,kD 。
kP的作用:
P就是比例的意思 。它的作用最明显 , 原理也最简单 。我们先说这个:
需要控制的量 , 比如水温 , 有它现在的『当前值』 , 也有我们期望的『目标值』 。
  • 当两者差距不大时 , 就让加热器“轻轻地”加热一下 。
  • 要是因为某些原因 , 温度降低了很多 , 就让加热器“稍稍用力”加热一下 。
  • 要是当前温度比目标温度低得多 , 就让加热器“开足马力”加热 , 尽快让水温到达目标附近 。
  • 这就是P的作用 , 跟开关控制方法相比 , 是不是“温文尔雅”了很多
    实际写程序时 , 就让偏差(目标减去当前)与调节装置的“调节力度” , 建立一个一次函数的关系 , 就可以实现最基本的“比例”控制了~
    kP越大 , 调节作用越激进 , kP调小会让调节作用更保守 。
    要是你正在制作一个平衡车 , 有了P的作用 , 你会发现 , 平衡车在平衡角度附近来回“狂抖” , 比较难稳住 。
    如果已经到了这一步——恭喜你!离成功只差一小步了~
    kD的作用:
    D的作用更好理解一些 , 所以先说说D , 最后说I 。
    刚才我们有了P的作用 。你不难发现 , 只有P好像不能让平衡车站起来 , 水温也控制得晃晃悠悠 , 好像整个系统不是特别稳定 , 总是在“抖动” 。
    简述PID控制原理及作用 pid算法是什么意思

    文章插图
    你心里设想一个弹簧:现在在平衡位置上 。拉它一下 , 然后松手 。这时它会震荡起来 。因为阻力很小 , 它可能会震荡很长时间 , 才会重新停在平衡位置 。
    请想象一下:要是把上图所示的系统浸没在水里 , 同样拉它一下 :这种情况下 , 重新停在平衡位置的时间就短得多 。
    我们需要一个控制作用 , 让被控制的物理量的“变化速度”趋于0 , 即类似于“阻尼”的作用 。