在上一篇文章中,我们讨论了 PID 是什么,还解释了 PID 的不同参数以及系统对更改这些参数将如何反应。在本文中,我们将展示如何在 TIA Portal 项目中编程、配置和调整 PID。
内容:
- 如何将 PID 添加到您的逻辑中?
- 如何配置 PID?
基本设定过程值设定
高级设置
- 如何进行 PID 整定?
PID 预整定
微调
- PID 的整定方法有哪些?
如何将 PID 添加到您的逻辑中?
在 TIA Portal 和几乎所有其他 PLC 平台中,您无需对 PID 控制器进行编程,因为 TIA Portal 已经具有用于 PID 的内置块。要将 PID 添加到您的逻辑中,您只需将 PID 块拖放到您的代码中,然后开始为您的系统配置它。
将 PID 添加到代码中非常简单,但是,有一个非常重要的点您应该考虑。这是你的 PID 的执行间隔。
如您所知,主执行周期发生在主循环 OB1 内部,OB1 的周期时间取决于很多因素,例如代码的长度、代码中的数学计算以及循环和序列,所有这些 不同的因素会导致 OB1 的周期时间不仅可能会变长,而且每个周期都会有所不同,具体取决于您所使用的编码。
这意味着,如果您在主 OB1 内调用 PID 块,则 PID 执行将取决于 OB1 的循环时间,而这不是最佳实践方法。
PID 通常用于控制压力、温度或速度等物理参数,这意味着您的控制器需要非常快速地找出过程值的任何变化,并采取快速反应来抵消这种变化,并为您提供平稳稳定的结果 PID 应该具有的控制。所以如果 PID 加在主 OB1 上,并且受其执行时间的影响,可能需要动作延迟,这会让你的系统不稳定。
该怎么办?
最佳实践是在循环中断 OB 中调用 PID 块,并将该循环中断的循环时间设置为您认为适合您的系统的任何值,通常在毫秒范围内,具体取决于您的应用。这意味着,如果您将循环中断设置为 1 毫秒,则无论主 OB1 周期在哪里,您的 PID 都会每毫秒调用并执行一次。
因此,为了将 PID 添加到您的逻辑中,我们首先添加一个新的循环中断 OB 并为其指定一个适当的名称。见图1。
图 1. 在您的项目中添加循环中断。
从图中可以看到我们将循环时间设置为 1000 微秒或1毫秒。所以我们的 PID 每毫秒都会被调用并执行。
现在您已将循环 OB 添加到项目中,只需拖放 PID 块即可。您可以在指令选项卡/技术/PID 控制/紧凑 PID 中找到它。见图2。
图 2. 添加 PID 块。
现在,将系统参数添加到 PID 块、输入、输出和设定值。见图3。
图 3. 分配 PID 参数。
您从上一张图片中注意到了吗,您有 2 个不同的输入和 3 个不同的输出,它们是什么?
输入:
这是您以实际物理量表示的过程参数的输入值,我们将使用我们的储罐模拟系统,因此在这种情况下,此处的输入是以升为单位的储罐填充液位。这意味着您已经在项目的其他地方进行了模拟输入缩放,并且只需向 PID 提供以升为单位的实际填充水平。
输入_PER:
这是过程参数的输入值,但来自模拟输入模块。这意味着它不会被缩放,并且它将在 0-27648 的范围内,并且输入的缩放将在 PID 内部完成。
输出:
在这种情况下,PID 将为您提供最大输出值的 0% 到 100% 范围内的控制器输出值。
输出_PER:
与 input_PER 相同,PID 将以 0-27648 的形式给出输出。
输出_PWM:
在这种情况下,PID将以ON/OFF脉冲的形式给出其输出信号,因此要么有输出,要么没有输出。ON 时输出值为 100%,OFF 时输出值为 0%。
我们将使用之前使用的相同坦克模拟系统,正如您从上图中看到的,我们使用了 Input 和 Output_PER,因为我们的模拟就是这样构建的。
如何配置 PID?
要进入 PID 的配置视图,您可以单击项目树中的配置选项卡,也可以单击 PID 块本身上方的小配置图标。见图4。
图 4. 进入配置视图。
这将带您进入功能视图,您可以在其中配置 PID 的不同设置。见图5。
图 5. 控制器类型设置。
第一个配置是控制器类型,在这里您可以选择要使用的控制类型,显示的下拉菜单中有很多选项,例如温度、压力、长度等等。 您还可以将其设置为常规,系统会将您的值视为%。在我们的系统中,我们控制水箱内的水升,因此我们将选择体积。
您还可以设置 PID 的手动/自动模式。
接下来,您要配置输入/输出参数。见图6。
图 6. 输入/输出参数。
在这里,您可以选择不同类型的输入或输出,正如我们之前所解释的。正如我们所说,我们将使用 Input 和 Output_PER。
接下来,您需要配置过程值设置。见图7。
图 7. 过程值限制。
在此步骤中,您将设置过程值的下限和上限。如果您选择输入类型。然后此设置将开放更改,并且您可以设置流程的限制。在我们的例子中,水箱限制为 0 至 50 升。所以我们将其设置为这些值。
请注意,如果您选择 Input_PER,则此设置将不可用,您只能从下一个选项卡设置进程限制。见图8。
图 8. 过程值缩放。
如果您使用 Input_PER,那么如上图所示,您可以根据 0-27648 的缩放比例设置过程值限制。
如果您想在过程值达到下限或上限时设置警告,则可以在过程值监控选项卡中进行配置。见图9。
图 9. 过程值监控。
接下来在设置列表中您将找到 PWM 限制,见图 10。
图 10. PWM 限制
在这里,您可以设置输出的最小开启和关闭时间,假设您的系统中有一个泵或阀门,PID 通过 PWM 输出进行控制,您不希望 PID 只为您的泵提供一个序列 非常快速的开/关行为,因为这可能会导致您的泵烧坏。因此,您可以通过此设置告诉 PID 在关闭泵之前将泵打开最短时间,反之亦然。
如果您没有下一个设置(输出值限制)的 PWM 输出,您可以使用 PID 进行相同的控制。见图11。
图 11. 输出值限制。
您可以控制控制输出的下限和上限,例如,您可以将下限设为 20%,这将使 PID 以至少 20% 的流量运行泵。所以你的控制范围是 20% 到 100%。
最后也是最重要的,您可以在下一个选项卡“PID 参数”选项卡的配置模式下设置 PID 参数,见图 12。
图 12. PID 参数。
如果您知道 PID 增益 P、I 和 D,或者您自己进行了调节并且您从其他地方获得了参数,您可以在此处编写 PID 增益 P、I 和 D 的调节参数。您还可以选择使用 PID 或仅使用 PI 控制器。
如果您没有这些参数,您可以在调整 PID 后自动上传它们。
如何进行 PID 整定?
现在您已完成 PID 配置,您可以从项目树中的调试选项卡轻松调整控制器。见图13。
图 13. 调试 PID
在调试页面,您的屏幕分为三个部分,上面的页面是您可以开始预调节和微调 PID 的地方。
在中间,您将有一个图形区域来显示系统的实时响应。您可以看到控制器输出和过程值。每次设定点发生变化时,您都会看到 PID 捕捉新设定点的行为。即使设定点没有改变,但例如我们的储罐供应需求增加,您也会看到 PID 反应来满足该需求,并将设定点保持在其所需值。
在第三个区域中,您将看到控制器的在线状态,并且您还可以决定 PID 的运行模式。请参见以下模拟视频,该视频显示了 TIA Portal 中 PID 的自动整定过程。
从视频中您可以看到,预调节完成后,我们的 PID 找到了最适合我们系统的 P、I 和 D 参数。您可以看到,当设定点或流出量发生变化时,控制器将非常快速地做出反应,将设定点恢复到所需的值。
现在,您只需单击按钮即可将调整参数直接上传到项目中,见图 14。
图 14. 上传您的参数。
上传参数后,您可以在配置视图的 PID 参数选项卡中找到它们。见图15。
图 15. PID 参数。
然而,下一步应该是从相同的调试视图对 PID 执行微调程序,因为我们没有真正的系统,我们只是使用数学计算来模拟水箱和泵的行为,我们可以 t 进行微调步骤。
当您拥有真实的系统时,您可以进行微调,您的 PID 将尝试找到能够为系统提供更好响应的参数,甚至消除过程值的超调并直接达到设定点。
将来,如果我们有一个真正的系统,我们可以展示它是什么样子。
PID 控制器的整定方法有哪些?
您不必使用 TIA Portal 调整 PID;有许多不同的方法可以尝试为您的系统找到最佳 PID 参数。它主要是基于反复试验的数学方法。我建议使用 TIA Portal 中的自动调整功能。
但这里有一些用于实现相同参数的方法。
- 启发式调整。
- Ziegler-Nichols 调谐方法
- Cohen-Coon 调谐方法
- Kappa-Tau 调谐方法
- Lambda调优方法
- 还有其他一些。
结论
- 对 PID 使用循环中断。
- 配置您的 PID 以最适合您的系统。
- TIA Portal 中的自动调节功能非常有用且有效。