我需要为我的PID控制器实现抗饱和(输出限制)。Simulink提供两种选择:back calculation
和clamping
(documentation)似乎提供相同的结果。我知道反算在数学上是怎么做的。需要定义反算增益Kb
。该增益取决于控制器饱和的时间,因此它实际上是一个动态值(因为饱和时间可能变化很大)。你有办法控制这个值吗?(在这种情况下,可能需要构建自己的PID控制器,如上面的文档或下面的图片所示。
这就引出了一个问题,clamping
到底在做什么?还有什么其他的区别?哪一个速度更快,哪一个在坚硬的斜坡上更坚固?有没有人用过这两种方法?
2条答案
按热度按时间llmtgqce1#
不确定这是否完全回答了这个问题,但PID控制器文档页面解释了更多关于箝位的信息:
clamping
当块分量之和超过输出限制且积分器输出和块输入具有相同符号时,停止积分。当块分量之和超过输出限制且积分器输出和块输入符号相反时,恢复积分。块的积分器部分是:
箝位电路实现确定积分是否继续所需的逻辑。
如果选择箝位选项并查看遮罩下方,则可能会看到箝位电路的详细信息。
fwzugrvs2#
除了am304's answer之外,还有更多的事情需要考虑。
夹紧
***箝位始终有效。***它检测积分器溢出的时间,并使用简单的开关将PID控制器的积分路径设置为零,以避免饱和。
箝位是一种常用的抗饱和方法,特别是在数字控制系统中。然而,在严重的应用中,还涉及正向箝位-也评估控制器输入。此机制必须手动实现。
回算
反算高度依赖于反算系数
Kb
*。如果你不知道如何实际计算Kb
*,不要使用反算 。该方法计算实际控制器输出与饱和输出之间的差值,并从I增益路径中减去该差值,再放大Kb
。在大多数情况下,默认值Kb = 1
将导致比箝位更差的结果,甚至可能根本没有效果。Kb
应根据采样时间计算,如果涉及D增益,则应根据D增益和I增益计算。计算该系数时应参考相关文献。 通过正确设置的系数进行反向计算,可实现比箝位更好的动态性能!