文章目录

图文详解PID调参

一、什么是PID

1. 比例系数

2. 积分系数

3. 微分系数

二、PID调节方式

1.PI系统调节

2.PD系统调节

3.PID系统调节

图文详解PID调参

读完本篇文章你的收获

PID三个参数基本概念

了解如何调节PID

认识一个经常咕咕咕的博主

先上效果图

一、什么是PID

​ 在工程中如果我们要用单片机做一个温控系统其系统组成一般如下一个采集温度的ADC一个输出温度的加热头以及一个用于运行控制算法的单片机如果我们要维持温度为100度在不加任何控制算法的情况下我们可以通过简单的阈值判断法来控制温度一个if判断语句当采集到的温度大于100时单片机控制加热头关闭当采集的温度小于100度时单片机则控制加热头开启简单粗暴但这样的控制方法最终所展示出来的温度曲线是极其不稳定的他会由于控制器件的灵敏程度、加热头的性能等等原因导致最终的温度曲线会在目标周围震荡达不到理想的控制效果就像下图实际曲线黑线 在 目标曲线红线 周围抖动

那如何才能维持实际曲线与目标曲线贴合达到一个稳定的控制效果呢

这里就引入了PID控制算法的概念PID是 Proportion Integration Differentiation 的缩写实际上他就是一个公式由比例项Proportion 积分项Integration 微分项Differentiation 三个部分组成具体形式就是下面的公式

其中 err(t) 就是当前值和目标值的误差PID的公式就是对这个误差分别进行比例、积分、微分处理后叠加输出因为比例计算、积分计算、微分计算在数学公式上的计算定义不同所以对应的项的输出特性和输入特性也有着不同具体解释如下

1. 比例系数

比例控制系数实际上就是先简单的定义输入与输出的线性关系假如我们输出控制量的值得范围在 100-1000输入的err误差范围却在0.001-0.1当误差为0.1的时候输出量需要到达到1000这时我们就需要通过比例系数来构建输入与输出的线性关系

2. 积分系数

上一点我们分析了比例系数的含义有小伙伴可能会好奇比例系数加上后的效果其实和阈值判断原理没什么区别确实是这样只用上比例系数的效果和阈值判断没什么区别但别忘了PID后面还有I和D两项其中I项的理解我们可以从积分的含义来理解积分可以理解为在坐标平面上由曲线、直线以及轴围成的曲形的面积值这个曲线就是err(t)的函数这个积分面积值就是代表过去一段时间的误差累计值我们把这个累计值乘以系数进行变换后叠加到输出上就可以一定程度上消除历史误差对当前实际曲线的影响提高系统的稳定性

3. 微分系数

微分的数学理解可以理解为当前误差曲线的斜率他可以用来预测当前曲线的未来走势对微分项的值进行处理后叠加就可以预测当前值的未来趋势提高系统对未来变化反应能力

二、PID调节方式

通过上一小节的分析我们对PID的三个项有了一个简单的理解但文字上的描述还是太抽象了我以一个小车调速系统来做进一步讲解结合实际现象来分析PID三个参数的实际作用以及如何调这三个参数用到的实验平台如下

平衡小车之家的主控板及电机

自己编写的调试上位机

控制系统图片

上位机界面

​ 我们在使用PID的时候单独只使用一个参数是没有意义的至少使用两个参数并且P比例项是必须要有的虽然PID有三个参数但大多数情况下PID三个参数并不是都使用上的一般会其中两个来组合使用比如PI组合用于追求稳定的系统PD组合用于追求快速响应的系统当然PID用于即追求稳定又追求快速响应的系统但是实际上PID参数越多越难调而且许多情况下两个参数的效果已经足够了所以我一般根据情况使用前两个下面对这几个系统都做一个分析

1.PI系统调节

调节PI系统的第一步就是先调节P由小到大依次调节P的值可以很明显的在输出曲线体现出来比如我先给P=0.05系统反应如下当P过小时曲线呈现缓慢上升且最终值会明显低于目标值

当我们加大P到0.15时我们可以看到实际曲线很快的接近目标值但因为只有单纯P控制所以有较大的过冲过冲就是实际值达到目标值时刹不住车冲出去了但在他稳定的时候实际曲线基本接近目标曲线

如果P再增大到0.25可以看到实际曲线需要震荡很久才会达到稳定目标线但在稳定后基本和目标线保持一致

如果P过大整个系统就会不受控实际曲线不会收敛到目标曲线位置出现等幅震荡比如P=0.45时

在调节PI系统时P的选取一般有两种情况

P偏小一点稳定时实际值在目标值之下一直存在误差这时再从0开始一直加大I消除稳定时的误差这种情况下的最终稳定曲线会一直保持在目标曲线之下达到比较稳定的调节效果不会有过冲

无过冲稳定

P大一点在第一次到达目标值的时候有一定的过冲但之后就会稳定其与第一种相比反应速度更快

有过冲但他快

下面展示第一种PI控制方式选取P=0.5偏小时再用I消除稳定时的稳态误差达到稳定的效果

I积分的值这里我展示了三个分别为较小刚好和较大时的实际曲线用来做对比

P=0.5I=0.00005I选取较小可以看到相对于单纯的P=0.5稳定误差有一定消除但消除程度不够

在加大I到0.0001刚刚好的时候实际曲线和目标曲线基本重合

当I过大取0.002时因为累计误差占比过大就会出现抖动现象难以收敛

上面就是第一种PI调节情况虽然PI系统平衡过程很稳定但到达目标位置的反应速度较慢有的时候为了提高反馈速度适当的提高P允许有一定的过冲比如我取P=0.07对应的I取0.0001时波形如下该系统允许一定的过冲但可以更快的到达目标点后再趋于稳定这就是第二种PI系统的调节方式

以上基本就是PI系统的调节过程了下面我讲一下PD系统的调节过程

2.PD系统调节

由一开始的概念我们可以知道与 I 的不同点在于I是计算累计误差而D则是计算未来趋势因此PD系统的反应速度更快相对于PI系统会更快的到达目标位置附近其调节方式首先还是调节P这里我们根据PI中P的调节结果调节P到比大的位置出现一定的过冲这里取P=0.15不加D的时候图形如下

从图像可以看出P=0.15在开始时过冲严重所以加上一个D来减小过冲幅度D的选取和I的选取一样从0慢慢增加观看效果确定合适的点下面一张图的D=1.5是我试出来比较合适的点我们可以看到加上合适的D之后实际曲线到达目标位置的时间更短过冲幅度也降低了一些但是这里效果不是很明显主要原因是我这里使用的是小车轮子来做的速度PID而PD的应用场合主要是大惯性系统中这里的应用场景不适合但也能看出一定效果

如果D调节的过大之后反倒会放大系统趋势的影响使系统出现震荡难以稳定如下D=5

3.PID系统调节

在讲了PI和PD系统的调节方式后下面分享一下PID系统的调节方式首先我们先按照PI系统进行调节先调P在调I让系统有一定的过冲后达到稳定如下图

在出现了上面的 PI 波形之后下面就开始调节D慢慢增加D将过冲补偿掉直到系统稳定最终效果如下图PID系统就基本调节完成了

这篇文章的PID讲解内容就到这里了下一篇文章将会详细分享我常使用的PID调用代码帮助大家PID进一步入门第二篇已更新文章链接从0编写一份PID控制代码

top
Copyright © 2088 世界杯四强_世界杯裁判 - tylwn.com All Rights Reserved.
友情链接