1 什么是增量式PID?
先看一下增量式PID的离散公式如下:
:比例系数
:积分系数
:微分系数
:偏差
对于所谓的位置式,增量式的算法,这两者只是在算法的实现上的存在差异,本质的控制上对于系统控制的影响还是相同,单纯从输入和输出的角度来比较,具体如下表所示;
这里简单的说明一下;
位置式:位置式算法较为简单,直接输入当前的偏差
,即可得到输出
;
增量式:增量式算法需要保存历史偏差,
,
,即在第
次控制周期时,需要使用第
和第
次控制所输入的偏差,最终计算得到
,此时,这还不是我们所需要的PID输出量;所以需要进行累加;
不难发现第一次控制周期时,即
时;
由以上公式我们可以推导出下式;
所以可以看出,最终PID的输出量
,满足以下公式;
可见增量式算法,就是所计算出的PID增量的历史累加和;
2 举个例子
2.1 位置式PID
下面从一个简单的例子中去理解一下增量式,这里依然举一个不是很恰当的例子;如果是位置式PID算法的话:
隆哥对一个直流电机进行调速,设定了转速为1000;
这时由于反馈回来的速度和设定的速度偏差为
;
经过位置式PID计算得到
;
作为Process的输入值(可以是PWM的占空比),最终Process输出相应的PWM驱动直流电机;
反馈装置检测到电机转速,然后重复以上步骤;
整体框图如下所示;
2.2 增量式PID
对于增量式PID来说;
隆哥对一个直流电机进行调速,设定了转速为1000;
这时由于反馈回来的速度和设定的速度偏差为
,系统中保存上一次的偏差
和上上次的偏差
,这三个输入量经过增量PID计算得到
;
系统中还保存了上一次的PID输出的
,所以
加上增量
,就是本次控制周期的PID输出——
;
作为Process的输入值(可以是PWM的占空比),最终Process输出相应的PWM驱动直流电机;
反馈装置检测到电机转速,然后重复以上步骤;
整体框图如下所示;
所以这里不难发现,所谓增量式PID,它的特点有:
需要输入历史的偏差值;
计算得到的是PID输出增量,因此每一次需要累加历史增量最为当前的PID输出;
下面简单介绍一下如何实现增量式PID算法;
3 伪算法
4 C语言实现
这里直接使用了公司的PID算法,做了积分抗饱和;具体可以参考
具体代码如下所示;
5 总结
本文简单总结了位置式PID算法和增量式PID算法的差异,参考了TI公司的增量式PID算法实现,对于不同的控制对象可以根据系统要求选择合适的PID算法。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65307.html