改进初学者的PID-测量的比例介绍

  最近看到了Brett Beauregard发表的有关PID的系列文章,感受对于理解PID算法颇有帮助,因而将系列文章翻译过来!在自我提升的过程当中,也但愿对同道中人有所帮助。做者Brett Beauregard的原文网址:http://brettbeauregard.com/blog/2017/06/introducing-proportional-on-measurement/算法

 

  已经有至关长的一段时间了,但我终于更新了Arduino PID库。我添加的是一个几乎未知的功能,但我认为这将是对爱好者社区的利好。它被称为 "测量的比例" (简称 PonM)。函数

1、为何你应该关心性能

 

  有一些进程被称为“集成进程”。在这些过程当中,PID的输出控制输入的变化率。在工业中,这些只占全部过程的一小部分,但在业余爱好领域,这些家伙无处不在:真空低温烹饪、线性幻灯片和3D打印机挤出机温度控制都是这类过程的例子。ui

  这些过程使人沮丧的是,使用传统的 PI 或 PID 控制,它们会超过设定值。不是有时,而是老是:spa

 

  若是你不知道这件事,这可能会让你抓狂。您能够永远调整调优参数,超调仍然存在;基础数学就是这样。测量的比例改变了基础数学。所以,在不发生超调的状况下,能够找到一组调优参数:翻译

 

  超调仍然能够确定,但这并不是不可避免。有了 PonM 和正确的整定参数,那个低温烹饪或线性滑块就能够直接延伸到设定值,而不是超过设定值。3d

2、那么什么是测量的比例呢?blog

  与基于测量的微分相似,PonM 改变了比例项所关注的内容。比例项采用PID 输入的当前值代替误差进行计算。游戏

  基于误差的比例:进程

 

  基于测量的比例:

 

  与基于测量的微分不一样,它对性能的影响是巨大的。对于 DonM,微分项仍然有相同的做用:抵制急剧的变化,从而抑制由P和I比例测量驱动的振荡,另外一方面,从根本上改变比例项的做用。它不是像I同样的驱动力,而是像 D 同样成为阻力的力量。这意味着,对于PonM,一个更大的 Kp 将使您的控制器更加保守。

 

3、很好。但这如何消除超调呢?

  要理解这个问题并修复它,看看不一样的项以及它们对整个PID输出的贡献是颇有帮助的。下面是对使用传统 PID 的集成进程 (真空低温烹饪) 的设定值更改的响应:

 

  须要注意的两大事项是:

  1. 当咱们处于设定值时,积分项是整体输出的惟一贡献者。
  2. 即便起点和终点的设定值不一样,输出也会返回到相同的值。此值一般称为“平衡点“:致使0输入斜率的输出。对于真空低温烹饪来讲,这至关于足够的热量来补偿周围的热损失。

  在这里,咱们能够看到为何会发生超调,并且老是会发生。当设定值第一次更改时,误差将致使积分项的增加。为了使进程在新的设定值保持稳定,输出将须要返回到平衡点。要作到这一点,惟一的办法就是积分项收缩。发生这种状况的惟一方法是负偏差,只有在超过设定值时才会发生。

4PonM改变了游戏规则

  下面是使用基于测量的比例 (和相同的调谐参数) 控制的相同的真空低温烹饪:

 

  在这里,您应该注意到:

  1. P项如今提供了一个阻力。输入越高,它就负的越多。
  2. P项在新的设定值变为零以前,它会一直有值。

  关键是P项不会返回到0。这意味着I项没必要单独返回到平衡点。P和I一块儿能够将输出返回到平衡点,而无需收缩I项。由于它不须要收缩,因此不存在超调。

5、如何在新的 PID 库中使用它

  若是您已准备好尝试 "测量的比例",而且安装了最新版本的PID库,则设置它是至关容易的。使用 PonM 的主要方法是在重载构造函数中指定它:

 

  若是要在运行时在 PonM 和 PonE 之间切换,则 "设置" 函数也会重载:

 

  您只须要在须要切换时调用重载方法。不然,您可使用常规的设置调整功能,它将记住您的选择。

欢迎关注:

相关文章
相关标签/搜索