我不得不 + Glen 的评论。恕我直言,他始终将大脑放在正确的位置。在 PID 中没有什么比 \$\Delta t\$ 延迟更难处理的了。多年来,我一直以某种方式处理 IC 晶圆 FAB 的灯加热温度控制。让我从 PID 的概述开始,并稍微谈谈它在哪些方面不像在其他情况下那样有用。我还将建议您也可以探索的许多其他控制方法领域之一,但在去其他地方之前您应该首先采取的步骤的优先级。
PID 控制的规范表达式为:
$$u_t=K\cdot\left[e_t+\frac{1}{T_i}\int_0^t e_\tau\:\textrm{d}\tau+T_d\frac{\textrm{d}\:e_t}{ \textrm{d}\:t}\right]$$
控制器参数为比例增益 \$K\$、积分时间 \$T_i\$ 和微分时间 \$T_d\$。
- 比例控制:这里的控制动作只是与控制误差成比例。(上述等式简化为 \$u_t=K\cdot e_t+u_b\$,其中 \$u_b\$ 是控制器偏差或重置。)静态过程模型的分析表明,生成的过程具有残余偏移或在稳态处的控制器偏置(尽管系统可以手动调整到该系统,并且通过正确选择控制器偏置,但只有一个设定值的控制误差。)增加增益也为增益提供增益测量噪声(坏),因此环路增益不应太高,并且没有“最佳”环路增益,因为它取决于目标。
- 比例+积分控制:积分作用的主要作用是确保过程输出与稳态设定值一致。对于积分作用,小的正误差将始终导致控制信号增加,而小的负误差将始终导致控制信号减小。无论误差多么小,这都是正确的。
- PID控制:增加微分控制提高了闭环稳定性。(在过程输出中注意到控制的变化需要一些时间。所以控制系统会迟到,纠正那个错误。导数项的结果是它是一种通过外推使用与误差曲线相切的误差,用于预测延迟的结果。
上面的描述,添加到您自己对延迟问题的描述中,表明派生项会对您有所帮助。但像往常一样,没有什么事情一定如此简单。
当过程动态为一阶时,比例积分控制就足够了。通过测量阶跃响应很容易发现这一点。(如果奈奎斯特曲线仅位于第一和第四象限。)它也适用于过程不需要严格控制的情况,即使它不是一阶的。
对于主要动态为二阶的过程,PID 控制就足够了。温度控制通常是这里的情况。因此,再一次,这可能会证明在您的情况下添加衍生控制。
然而。只有在您尽一切可能改进一些事情之后,才应考虑以上所有内容:
- 使用您可以合理应用的最快响应温度传感器(小质量、高温测量等),并将其应用于您想要控制的过程的响应延迟最小的情况(关闭,不远)。
- 减少进行测量和实施过程控制的延迟变化。
我想详细说明最后一点。想象一下过程控制就像你站在某个地方,试图将一根细的、非常灵活且摇晃的竹竿插入远处的鸟屋洞中,而鸟屋洞位于你上方的一棵树上,远离你。如果你靠近并且竹竿很短,那就容易了。您每次都可以快速轻松地做到这一点。但是如果竹竿很长,鸟屋离你很远,那就很难了。杆子一直在四处游荡,这使您的预测和控制变得非常困难。
(如果还不清楚,竹竿的长度就像是循环延迟时间。)
所以延迟可能是控制系统最糟糕的噩梦。更多的延迟是非常糟糕的。因此,尽一切可能减少这种延迟是非常重要的。但还有更重要的一点。
现在想象同样的情况。但现在竹竿的长度也在不断变化。有时它更短,有时更长,并且它不断变化,而您没有预测。你现在必须不断改变你的立场,你永远不知道延迟什么时候会改变。如果您的软件没有非常仔细地和铁腕地控制处理您的 ADC 值和生成 DAC 控制输出的时间延迟,就会出现这种情况。
因此,虽然延迟对于 PID 控制系统来说已经足够糟糕了。可变延迟甚至更糟。所以你需要严格注意你的软件设计——非常严格的注意——这样你就没有 IF 语句和条件计算代码,或者对定时器的草率使用等等,所有这些都会导致软件的显着变化。样品和控制输出之间的延迟。
在担心是否需要衍生控制之前,您需要将上述内容纳入管理。第一件事。清理你的行为。然后检查系统以确定还需要做什么(例如,使用 PI 与 PID。)
我正在使用极其精确的高温计系统(对客户来说也非常昂贵)来研究 PID 控制系统。我接到了一位使用我们的高温计的加拿大研究人员的电话,但我使用的是一家非常大的商业公司的单独 PID 控制器(世界上最大的公司)。世界在做这些事情。)研究人员正在努力应对他从熔体中拉出的砷化镓晶锭侧面的涟漪。并希望我帮助找出正确的 PID 控制变量。(在拉晶时,您需要非常均匀的直径。)
他使用的控制器以任何标准衡量都非常好。但它增加了延迟——而且这些延迟也各不相同,因为它内部的软件没有严格控制它引入整个控制回路的延迟。
所以我告诉他的第一件事是我要在我们的高温计的软件中添加 PID 控制,他应该简单地从他正在使用的系统中拉出外部控制器。我在不到一周的时间内添加了该软件,并将修改后的 pyro 系统发给了他。我没有对 PID 软件做任何花哨的事情。但是,我将 ADC 到 DAC 的可变性保持在不到几微秒,并将整体延迟也收紧到大约 100 微秒。我把那个寄给他了。
下周星期一我接到了一个电话。球几乎完美地拉出,一点波纹都没有。
这就像减少延迟并减少这些延迟的可变性一样简单。PID 控制没有什么特别之处。这是一个普通的实现,任何人第一次学习都会产生。
这说明了挤出延迟和延迟可变性的重要性。当然,微分控制可以提供某种“正切/正切”的预测思想。但是,没有什么能代替降低延迟并将可变性保持在绝对最低限度的方法。
一直想着竹竿和鸟窝的问题。
结论?
众所周知,控制具有主要时间延迟的系统非常困难。我已经提出了一些你可能会想到的理由相信衍生项将有助于时间延迟。但人们普遍认为,微分作用对于具有显着时间延迟的过程没有多大帮助。这就是为什么我立即建议通过消除我可以轻松消除的所有延迟(例如外部 PID 框)来帮助该研究人员。我没想到我的实现比商业产品更好。事实上,我知道我的实施几乎不会经过严格审查。Cripes,我必须从头开始编写它,测试并安装它,然后运送一个带有以前从未有过的新添加软件的单元,并在一周的时间内完成所有这些工作。但我也知道,延迟正在扼杀这位研究人员获得他想要的结果的所有机会。所以我立即知道最好的方法是消除延迟,而不是发明一些只有天才才能遵循的“出色”实现的魔法 PID 代码。这首先是关于延迟以及这些延迟如何变化的。其余的都是低得多的优先级。
有一些东西叫做“死区时间补偿器”。但归根结底,您需要尽一切努力消除延迟并消除这些延迟中的可变性。然后,在你尽你所能完成之后,如果仍然存在问题,你可能需要比 PID 允许的更复杂的控制。在这里,我可能会进行傅立叶变换(并使用逆变换来分析阶跃响应并开发系统响应的描述)。你可以做很多PID无法触及的事情。实际上,如果您可以对响应函数进行足够好的建模,那几乎是奇迹般的结果。
但是在您的情况下,我将专注于消除延迟及其可变性。如果可能的话,我认为您也应该考虑避免使用简单的开/关灯控制。如果您可以控制灯的强度,那就太好了。但是不知道你能不能考虑一下。