c++ - PI调节比例积分算法的公式

标签 c++ algorithm math calculus cybernetics

我一直在阅读这个网站:http://www.csimn.com/CSI_pages/PIDforDummies.html我对比例积分部分感到困惑。内容如下。

比例控制

这是我们仅启用 P 控制时的 Controller 图:

Proportional

在仅比例模式下, Controller 只需将误差乘以比例增益 (Kp) 即可获得 Controller 输出。

比例增益是我们调整的设置,以便从“P only” Controller 获得我们想要的性能。

天作之合:P + I Controller

如果我们将比例作用和积分作用放在一起,我们就得到了不起眼的 PI Controller 。下图显示了 PI Controller 中的算法是如何计算的。

Proportional Integral

Integral Action 的棘手之处在于,除非您确切知道要应用多少 Integral action,否则它真的会搞砸您的流程。

良好的 PID 调节技术将准确计算为您的特定过程应用多少积分 - 但首先如何调整积分作用?

如您所见,比例部分很容易理解,它表示您将误差乘以调整变量。我没有得到的部分是您从第二部分获得 P 和 I 的位置,以及您对它们进行的数学运算。我没有数学学位或高等微积分知识,所以如果你能尽量保持代数水平,我将不胜感激。

最佳答案

文中遗漏了很大一部分,将控件变成进程的实际物理系统和实际的物理变量。

将积分视为某种平均运算,可以滤除 PV 输入中的小振荡。它还代表了对刚刚过去的过程的某种内存。

例如,移动指数平均可以被认为是积分作用和比例作用的混合。


继续以汽车驾驶为例,如果您来到路边,您需要将方向盘放在某个位置才能转一圈,您不只是将方向盘拉到那个位置,而是逐渐移动它(大多数的时间)。正是这种上升和下降 Action 是使用积分 Action 部分的效果。

关于c++ - PI调节比例积分算法的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23421987/

相关文章:

c++ - for 循环和点的问题

C++ 动态数组和指针

algorithm - 找到这个算法的递归关系?

algorithm - 确定合并排序的调用(激活)次数

algorithm - 如何在分辨率增加时计算网格点的位置?

math - 如何在 Matlab 中生成信号的低频版本?

javascript - 如何将此 javascript 代码重写为 C++11?

c++ - 意外的非常量 std::initializer_list

algorithm - 找到优先级函数/字母顺序的极值

math - 元组的 Prolog 算术