使用PID控制器控制线性伺服电机
2023-03-11 14:31:29 EETOP本文以线性伺服电机的用例说明了比例积分微分 (PID) 控制,包括其背后的数学原理。
通过本文你将能了解到:
PI
电
固件
/* 当前误差- 比例项 */
e = r - y;
/* 累积误差- 积分项 */
总误差 += e;
/* 差分误差- 导数项 */
deltaError = e - 先前的错误;
/* PID控制*/
u = Kp * e + Ki * (totalError * T) + Kd * (deltaError / T);
/* 同时为下一次迭代做准备——将之前的设置为当前错误 */
以前的错误= e;
PID 增益调整
有几个评估系统性能的标准,包括死区时间、上升时间、过冲、稳定时间和稳态误差。虽然在调整 PID 增益之前应根据这些标准定义性能预期,但此类预期取决于应用程序的要求。因此,就本文而言,足以说明各种标准何时受到不同增益调整的影响。
Kp , K i , _和Kd增益将单独调整,并按此顺序,给定一个选定的设置点。更具体地说,代码将在每次执行时将其中一个增益设置为不同的值,并将 r 的值设置为 700。
至于这个 700 值的相关性,读者应该记得Current Position是一个数字值,表示从执行器的电位器获得的电压,而Current Position现在在我们的代码中由变量 y 表示。设置位置-表示我们代码中的变量 r - 是相同范围内的数字值,如前所述,如果 ADC 具有 10 位分辨率,则该值介于 0 和 1023 之间。因此,700 的设定点值是合理的,尽管是任意的。
调整 K p以接近目标位置
Kp是比例增益。控制函数的比例项通过使用与该电流误差成比例的信号移动线性致动器来补偿电流误差。比例项用于使当前位置接近目标是有意义的,因为该误差是执行器的设定位置与其当前位置之间的差异。比例项使控制函数寻求将其减少到零。
在调整的第一步中,我们将积分和微分增益K i和K d设置为零,并增加比例增益K p直到致动器稳定在目标位置附近 (700)。比例增益太高会引起振荡。
图 5中的图表显示了对于不同的K p值,执行器的当前位置如何随时间变化。我们将选择K p = 1,观察它会导致当前位置稳定在目标附近并且稳定时间最快。
图5.比例增益调整。
读者会注意到有一个残余的稳态误差,即最终的当前位置与目标设定点位置有偏差。这种偏移在纯比例控制器的情况下很常见,并且会在下一步调整积分增益时消除。
调整 K i以消除稳态误差
Ki是积分增益。控制函数的积分项通过使用与随时间累积的过去误差量成比例的信号移动线性致动器来补偿过去误差。积分项用于消除稳态误差是有意义的,因为该误差是一个常数偏移量,它会随着时间的推移增加积分,从而使控制函数试图将其减小到零。
在调整的第二步中,我们保持在第一步中选择的比例增益K p = 1,将微分增益K d设置为零,并增加积分增益K i直到执行器稳定得更接近目标位置 (700) ——即,直到稳态误差接近于零。
图 6中的图表显示了对于K p = 1 的不同K i值,执行器的当前位置如何随时间变化。对于一组给定的要求, Ki = 0.5的结果可能非常令人满意,我们可能会选择不涉及微分项,在这种情况下,解决方案将是比例积分 (PI) 控制器。
图6.积分增益调整。
但是,或者,我们可能更愿意选择K i = 2,这可能是由于其结果中显示的上升时间有所改善。读者会注意到,在这种情况下,更好的上升时间是以过冲为代价的。当在下一步中调整微分增益时,将消除这种过冲。
调整 K d以消除过冲
Kd是微分增益。控制函数的导数项通过使用与根据误差的时间导数(即其变化率)估计的未来误差量成比例的信号移动线性致动器来补偿未来(估计的)误差。
微分项用于消除瞬态效应(如超调)是有道理的,它们自然反映在时间导数中,从而使控制函数寻求将它们减少到零。在存在干扰的情况下提高稳定性和缩短建立时间是额外的相关优势。但是请注意,如果误差信号非常嘈杂,微分项会使控制系统不稳定。
在这第三步调整中,我们保持在前两步中选择的比例和积分增益K p = 1 和K i = 2,并增加微分增益K d直到消除超调。微分增益太高会引起振荡。
图 7中的图表显示了对于不同的K d值,K p = 1 和K i = 2 ,执行器的当前位置如何随时间变化。我们将选择K d = 0.05,观察到它有效地减少了过冲,同时保持了改进的上升时间。
图7. 微分增益调整。
然后,在我们的控制器版本中,启用了所有三个信号比例、积分和微分,我们已经成功地调整了它们的增益以实现适当的控制器行为。我们还确定增益值应为K p = 1、K i = 2 和K d = 0.05。
结论
这篇关于 PID 控制的文章解释了 PID 控制器核心的数学原理,并提供了一个实际示例,说明如何实现该数学原理以在微控制器上运行。讨论了用于位置控制的微控制器和直流伺服电机之间的信号性质的实际考虑因素。
最后,提供了一些数据来演示如何手动调整控制函数的比例、积分和微分项以获得适当的性能。它还让读者了解 PID 算法中每个函数的用途。
通用现成的 PID 控制器不是将 PID 控制设计到定制的嵌入式设备中,而是工业市场上可用的替代品,例如,其中一些基于可编程逻辑控制器 (PLC)。这些可能会满足许多用户的需求。
但是,如果它需要与您的工厂流程相关的非标准功能,它可能无法满足您的应用需求。或者,如果它有特殊的数据通信需求,或者如果通用控制器具有您希望避免用于成本敏感型应用的不需要的功能。在这种情况下,定制 PID 控制器设计是一种选择。(EETOP编译自electronicdesign)