【发布时间】:2014-05-18 18:03:31
【问题描述】:
当我尝试在 matlab 中使用 SISOtool 时,它为我提供了 PID 控制器的方程
0.056301 * (1+1000s)
s(1+4.2s)
这意味着等式的结果是分母为 S^2。 这不是 PID 的方程。
我不明白该怎么做。这是否意味着该系统不存在 PID?
【问题讨论】:
当我尝试在 matlab 中使用 SISOtool 时,它为我提供了 PID 控制器的方程
0.056301 * (1+1000s)
s(1+4.2s)
这意味着等式的结果是分母为 S^2。 这不是 PID 的方程。
我不明白该怎么做。这是否意味着该系统不存在 PID?
【问题讨论】:
这是否意味着该系统不存在 PID?
不,它没有。
教科书使用以下表达式介绍 PID 控制器的传递函数
C(s) = Kp + Ki/s + Kd*s
为简单起见并强调概念方面。然而,纯粹的微分很少是一个有用的术语。您可以在时域和频域中看到这一点。随着s 的增加,上面的最后一项会无限增加。在时域中,最后一项不仅可以区分有用信号,还可以区分 PID 控制器输入中的任何噪声。现在回想一下,当您区分 sin 或 cos 时会发生什么:您将前面的频率作为系数。无论如何,这是同一现象的两个方面。因此,开始设计更实用的 PID 的下一步是将术语 Kd*s 替换为以下形式的过滤器
Kd*A*s/(s+A)
如果您将C(s) 中的各项相加,并将此过滤器替换为Kd*s,您将在分母中得到s^2。
MatLab 中的控制工具箱相当发达(至少对于线性系统)。我不会很快驳回它给出的结果。另一方面,最好仔细检查它们。
【讨论】:
您可以通过将设计的控制器导出到 MATLAB,然后执行 pid(controller) 来查看您的 PID 控制器的表达式
【讨论】: