PI调节比例积分算法公式

时间:2014-05-02 06:19:37

标签: c++ algorithm math calculus cybernetics

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

比例控制

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

Proportional

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

比例增益是我们调整以从“仅P”控制器获得所需性能的设置。

在天堂进行的比赛:P + I控制器

如果我们将比例和积分行动放在一起,我们就会得到不起眼的PI控制器。下图显示了如何计算PI控制器中的算法。

Proportional Integral

关于积分行动的一个棘手的问题是,除非你确切知道应用多少积分行动,否则它会真正搞砸你的过程。

一个好的PID调整技术将准确计算出适用于您的特定过程的积分量 - 但首先如何调整积分行动?

正如您所看到的,比例部分很容易理解,它表示您通过调整变量来增加误差。我不能得到的部分是你从第二部分得到P和I的地方,以及你用它们做什么数学运算。我没有数学或高级微积分知识学位,所以如果你想保持它的代数水平,我将不胜感激。

2 个答案:

答案 0 :(得分:5)

文本中缺少很大一部分,即将控件转换为进程的实际物理系统以及实际的物理变量。

将积分视为某种平均操作,可滤除PV输入中的小振荡。它也代表了该过程的直接过去的某种记忆。

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


坚持汽车驾驶的例子,如果你来到路边需要方向盘在一个圆圈内的路边,你不要只是把车轮拉到那个位置,你逐渐移动它(大多数时候)。正是这种上升和下降动作是使用积分作用部分的效果。

答案 1 :(得分:2)

我的积分部分只是总和也乘以某个常数。

  • 模拟积分由非线性增益和放大器完成。
  • 第一顺序的数字整合只是:

    output += input*dt;
    
  • 第二顺序是:

    temp   += input*dt; 
    output += temp*dt;
    
  • dt是迭代循环的持续时间(计时器或其他任何东西)

  • 不要忘记PI调节器可以有更复杂的反应

    i1 += input*dt; 
    i2 += i1*dt;
    i3 += i2*dt;
    output = a0*input + a1*i1 + a2*i2 +a3*i3 ...;
    
  • 其中a0是P部分

regulation

现在I调节器增加了越来越多的控制值

  • 直到受控值与预设值
  • 相同
  • 匹配它所需的时间越长,控制得越快
  • 这会在预设值附近产生快速振荡
    • 与具有相同增益的P相比
  • 但平均而言,控制时间比P调节器小
    • 因此我的收益通常要小得多,这会产生LutzL提到的记忆和平滑效果。 (虽然调节时间与P调节相似或更小)

受控设备有自己的响应

  • 这可以表示为差分函数
  • 控制论中有很多关于获得正确的调节器响应的理论
  • 以满足您的流程需求:
    • 控制质量
    • 反应时间
    • 最大振荡幅度
    • 稳定性
  • 但是对于所有人来说,你需要差分数学,比如解决任意顺序的微分方程系统
    • 强烈建议使用拉普拉斯变换
    • 但很多人也使用 Z转换而不是

因此,I-regulator增加了监管速度

  • 但它也会产生更大的振荡
  • 当不能正确匹配受监管系统时也会造成不稳定
  • 集成会增加监管的溢出风险(模拟集成对它非常敏感)

另请注意,您还可以从控制值

中减去I部分
  • 将完全相反
  • 有时会使用更多I部分的组合来匹配所需的调节响应形状