施耐德PLC模块TSXAEY414
现在我们可以实现离散时间PID控制功能了。在示例 C 代码(参见下面的代码列表)中,变量和常量的名称与数学方程式中的相应元素非常匹配。此代码可以在 PID 固件的每次迭代中执行,通常在配置为每T毫秒触发一次的定时器中断内执行。
/* 当前误差- 比例项 */
e = r - y;
/* 累积误差- 积分项 */
总误差 += e;
/* 差分误差- 导数项 */
deltaError = e - 先前的错误;
/* PID控制*/
u = Kp * e + Ki * (totalError * T) + Kd * (deltaError /T);
/* 同时为下一次迭代做准备——将之前的设置为当前错误 */
以前的错误= e;
剩下要做的是为 PID 增益K p、K i、和K d以便系统在被要求移动到选定的设定点时正确执行。我们将为这些增益手动选择不同的值,以研究它们对位置控制的影响,并在此过程中演示调整它们的通用方法。我们还将深入了解控制功能中每个术语的用途。