PID控制器 - 当误差为0时的直觉理解

4
我使用一个影响输出的输入参数模拟了一个PID控制器,设置了Kp=0.2,Ki=0.5,Kd=0,这些值在我预期的实际应用中表现最佳。但是,有一件事我无法理解的是,当误差为0时,控制器如何启动。例如,如果我的目标是2,输出是2,而输入变量是4,控制器会将下一个输入设置为0,尽管4是一个完美的值。
是否存在一种理论上可靠的方法,可以在算法的前几步中考虑一些“初始猜测”,不会在过程开始时偏离太远呢?

你打错了标签,看到这样一个非常熟悉的缩写在完全不同的上下文中出现而没有任何介绍或其他东西,感觉很奇怪。 - Blindy
感谢 - 已删除pid标签 - nickb
1个回答

4
在PID控制器中,唯一的状态是积分的当前值。如果您有关于可能存在的稳态误差的其他信息,将其设置为非零值可能会有帮助。
在实践中,您可以简单地使用PID控制器几次,并观察积分通常采取的值,并将其用作起始值。
如果您拥有其他信息,例如知道正确输出为x的输入y,则可以反转公式以找到正确的积分,方法如下:
output = input * Kp + Integral * Ki
 => y = x * Kp + Integral * Ki
 => Integral = ( y - x * Kp) / Ki

我明白你的意思,但如果我没记错的话,方程应该是input=errorKp+IntegralKi(其中error是output-setpoint,我们仍然可以计算出Integral的值),对吗? - nickb
1
是的,你说得很对。通过这个公式,我们假设误差为0,然后求解Integral = 输入值/Ki。 - Peter de Rivaz
这是实现“无颠簸”初始化或进程中调整Kp、Ki、Kd参数的关键:通过反向计算状态变量,以便为新的参数集提供相同的输出。 - Dave X

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接