PID控制算法

1 位式控制算法

1.1 位式控制算法框图

在这里插入图片描述

首先,用户可以通过按键、滑动电阻或者其他方式输入一个控制信号Sv给控制算法, 然后控制算法会结合输入信号Sv和输出采集回来的信号Pv来计算输出量out,然后由out信号控制执行部件,最后由执行部件作用到具体的控制对象上。最后我们要从被控制对象上采集需要控制的变量(可以是温度、湿度等等)反馈给控制算法做修正。

我们以一个水温控制系统为例来说明位式控制算法的原理。
用户设置部分输入一个温度值,比如我们希望控制水温为80℃,则Sv = 80;执行部件可以是一个继电器控制的加热丝,控制对象就是水箱里的水,传感器是一个温度传感器。

1.2 位式控制算法的特点

  1. 位式控制算法输出信号只有H、L两种状态。
  2. 算法输出信号out的依据(二位式):
    当 Pv > Sv ==> out = L (关断继电器,停止加热)
    当Pv ≤ Sv ==>out = H (打开继电器,开始加热)
  3. 控制简单,只是判断当前系统值和设定值的差值来调节。仅仅考虑了控制对象当前的状态值。
  4. 误差较大,因为被控制对象具有惯性,永远不可能有被控制对象状态值等于设定值这种情况。举例来说:由于热惯性的存在,当我们检测到温度达到设定温度时,关闭继电器,停止加热。虽然此时,加热丝不工作,但是由于热惯性的存在,导致温度还会继续上升;在开启加热时,也会出现类似的情况,虽然已经开启了加热,但是由于热惯性的存在,温度会继续下降一定范围,然后再开始升温。

2 PID算法

2.1 PID算法框图

在这里插入图片描述
Sv:用户设置值,目标值。
Pv:控制对象的当前值。

2.2 比例控制

我们假设,从开机以来传感器所有采样点的数据序列如下:
x1,x2,x3 ... xk-2, xk-1,xk

分析采样点的数据序列,可以挖掘出3方面的信息:

Ek = Sv - Xk

  • >0:当前未达标
  • =0:正好达标
  • <0:当前已超标

此时的OUT = Kp * Ek + OUT0,这就是比例控制。我们需要注意,此时的输出已经不是二位式控制方式的输出,而是PWM波的输出。另外,也需要注意到比例控制是在有误差的时候才控制,没误差的时候不参与控制。虽然,在最后加上了控制常数OUT0,但是这样做在某些情况下可能会取得适得其反的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章