上一节我们知道了什么是位式控制,这节就正式进入PID的学习。
简单画了一个系统的控制流程图:
系统说明:
假设该系统是一个温控系统,用户可设定目标值Sv,单片机检测了用户输入的值之后,通过PID算法进行计算,得出一个值去输出PWM,PWM去控制加热丝的电源,加热丝就是被控对象。加热丝旁边有个温度传感器,可以实时监测加热丝的温度,并反馈给单片机一个当前的温度值Pv。之后单片机将Sv和Pv进行PID运算,根据计算结果再次改变PWM的值,就这样以此循环下去。
第一个时间点采样值为X1,第二个时间点采样值为X2,以此类推第k-1个采样点采样值为Xk-1,第k个采样点采样值为Xk。那么将从第一个时间点采样的值到第k个采样值排成一个序列如下:
X1 、 X2 、 X3 、、、 Xk-2 、 Xk-1 、Xk
P 比例
P,大家都知道是比例运算。比例运算是根据当前传感器采集的值Pv和用户设定的目标值Sv进行比较之后,做一个比例输出,假设当前误差Ek = Sv - Xk,那么在单独使用P运算时,会输出:
OUTp= K*Ek
这就会产生三种运算结果:
1.
当Ek > 0; => 系统没有达到目标值 => 差值为正,当差值较大时,也就是当前测量值和目标值相差甚远的时候,这就会使得OUTp的值变大,OUTp的值是控制PWM的占空比的。OUTp的值越大,占空比越大,平均电压值越高,加热丝加热越快,使得当前值以最快的速度接近目标值,当差值较小时则相反;
2.
当Ek = 0; => 系统已经达到目标值 => 差值为0,也就是当前测量值和目标值相差为0的时候,这就会使得OUTp的值为0,OUTp的值是控制PWM的占空比的。OUTp的值为0,占空