首先要知道,很多时候PID算法都是通过一个控制器进行编程实现,可以是一台计算机,也可以是一个微处理器,但不管怎样,他们处理的信号都已经不再是模拟信号,而是对模拟信号进行离散化处理的数字信号,因此该种信号的PID控制属于一种采样控制,也就是说它是根据不同采样时刻的偏差来计算最终的控制量。
由模拟PID控制的计算公式可知,公式如下所示,数字信号不可直接使用,因此该计算公式也需要做离散化的处理。
具体处理方法为:以时间T作为采样周期,k作为采样序号,则模拟PID控制中的连续时间t作离散化处理就是,t->kT(k=0,1,2,3....);积分实质上是一个累加的过程,因此离散化处理就是将积分公式变化为累加公式,而微分就是一个差分的过程,这些高数里面应该有接触过,我也是后来重新学信号系统的时候才幡然醒悟
离散化处理后可以得到以下的近似变换,并对变量作了一定的简化:
将上述的离散化处理代入模拟PID控制的公式,就可以得到如下的表达式:
进一步简写可以为:
对各个变量做一个解释:
K: 采样序号,取值为0,1,2,.....
uk: 第k次采样时刻的控制输出值
ek: 第k次采样时刻输入的偏差值
ek-1: 第k-1次采样时刻输入的偏差值
Ki: 积分系数,且Ki=Kp*T/Ti
Kd: 微分系数,且Kd=Kp*Td/T
当采样周期T很小时,离散化处理得到的表达式计算的控制量和连续控制表达式计算的会很接近,计算的结果也会很精确。
看到这,不知道你发现没用,就是该种算法每次的输出控制量都和过去状态有关,ek累加的工作量也大,最重要的一点是,uk对应的是被控制对象某个时刻的具体值,假如处理器计算的时候崩了,数据乱了,产生的uk有一个大幅度的变化,这时候你觉得整个系统会如何???
是不是也崩了呢,所以这种算法在实际的应用中,不允许被应用在实际的一些生产系统中,以防事故的发生,当然,我们平常学习这个算法去控制一些小东西,比如平衡车之类的还是可以的,不过为了避免上述的现象发生,又因此诞生了增量式PID算法,下次再继续讲。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有