pid控制算法流程图,pid控制算法的基本原理

上一次写了模拟量的使用,模拟量传感器想要用的好,还需要有PID算法的加持,有的朋友会疑问,为啥还要PID算法呢,比如想让一个水箱一直保持恒定的水量,那么测距传感

上次我写了关于模拟量的使用,但是模拟传感器的成功使用还需要PID算法的支持。例如,您可能想知道如果您需要水,为什么还需要PID 算法。保持水箱水位恒定,距离传感器检测到水位低时,水泵进行加水,水位充足时不加水。

那么问题来了,怎样才能补充足够的水呢?我们怎样才能使水保持在一个恒定值?启动水泵时,可能加水过多,导致水泵频繁启停。如果水位恒定地上下波动,水泵就会频繁启停、振动。水泵加水量不准确。再比如一条管道需要保持恒压,但如果检测到压力值不足,并不意味着可以提高恒压。 PID算法是一种能够以尽可能高的精度保持水量和压力等值恒定的计算公式。

本文详细介绍了PID的原理以及如何编写PID程序功能块。如果需要,可以通过直接调用PID功能块来实现PID控制。

PID原理图

PID原理由三部分组成:第一部分计算设定值和反馈值之间的误差,第二部分包含在PID 计算中。第三部分是传感器反馈值,第二部分是PID计算。

e0d9a985dadc4c3999065672c695002b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=GkRMfwVVc3jMqxg49ug72QE1tLg%3D 教材中的示意图

2232d27cfd6f4e0a9bd49770c0f73c12~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=bEbaFhTc9jv%2F3aanP6RjJcHCguk%3D 发现分为3部分

PID计算

PID计算分为P(比例控制)、I(积分控制)、D(微分控制),并对各自的原理进行说明。

应该如何理解P(比例控制)?如果只想使用P(比例)控制,关闭I(积分控制)和D(微分控制),则希望水箱中的水保持恒定。若水箱容量为1000ml,传感器检测到水位为999ml,则设定值与反馈值误差为1ml。在这个1ml前面加上一个系数。正常的想法是,如果水下降了1毫升,你就要求水泵加1毫升水,但实际上,你要求水泵加1毫升,但它实际上加了2毫升。已添加。 (水泵不能正好抽出1ml的水)这时候就需要将比例系数调整为0.5!

PID标准公式中,Kp是比例系数,ev(t)是给定值减去反馈值得到的偏差值,如下图所示。如果只是比例的话,公式很简单控制部分。即u(t)=Kp*ev(t);

486803179d7a404f9942203d7fb0bedc~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=lfShzIDGBuiMYV4wZYXLgrgpkqU%3DPID表达式

我(集成控制)怎么理解?对于任何学过微积分的人来说,对于那些从来没有学过或者已经忘记了它的人来说,顾名思义,积分意味着积累。是水泵多次加水的累计量。

如果水箱内的恒定值设置为1000ml,则水泵每次只能调节9.9ml的水。

如果水箱里没有水,水泵需要旋转100次,总共供水990ml,但误差为10ml。

理论上,如果水泵每次可以抽水10毫升,实际只能抽水9.9毫升。通过调整很难达到这个精度。由于它是水泵,我们将计算100 个进水口的总数并检查是否有错误。

如果注入990ml的水100次,将I(积分控制)计算部分的系数TI设置为0.99,可以校正10ml的总误差。

积分控制部分的PID方程如下图!

5a9db0d3ab0e4713baf93af429ffb439~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=I2fK6qruljRB0dUaOgLB61uRwwU%3DPID表达式

如何理解D(微分控制)?顾名思义,它分解了水泵每次添加的水量。

例如,向水泵加水时,您希望每次加水10ml,但当水泵设置为最大功率时,1秒内就会加10ml。如果降低水泵的功率,1秒内将添加10ml。需要10 秒。

实际使用中,1秒添加10毫升的误差肯定比10秒添加10毫升的误差大。也就是说,在实际应用中,水泵会慢慢向水箱加水。水合过程变得更加稳定。

下面所示的PID计算公式的微分控制计算部分的系数TD是可以调整的!

b5af624cadd5431b9d7a37458ba66bff~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=xyE2AH1zwbt066wFxN0VfcbfXiA%3DPID表达式

总结一下:

P与每次供水量成比例调整误差值。这意味着每次添加到水泵的水量将是恒定的。是否接近误差值?需要先进行PID调节。

I调整是P调整后仍有误差时重新调整,通过调整累积误差来提高精度!

D 通过控制加水速率来调节稳定性,减少因滞后和惯性造成的误差。

PID控制的原理如上所述。了解如何使用ST 语言在PLC 程序中编写PID 标准功能块,该语言可用于支持ST 的各种类型的PLC。对于不太了解PID控制的人来说,在使用模拟量时,往往只使用P(比例)。对照)计算部分是无心的!

PID计算公式的程序实现

本程序实现了上述PID计算公式,部分参数名称和公式格式发生了变化,但如果您有兴趣,请仔细阅读。如果您有兴趣,请直接使用!

调用功能块

2ff0c3ed593e46db8a197f72bc6a82de~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=U%2Fx68SqDsjprJ%2FVhVyn%2Bkd%2BFosA%3D 调用功能块

PID计算公式的变化

它由比例系数、积分控制、微分控制三部分组成,是一种无需设定初始值就可以用程序实现的格式。

5ce8c76c09334eb9ac09f04d46de4b45~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=ZUR9yUxUmL8vGHHUg%2FJT9KUzHyk%3D 程序中使用的PID表达式

定义输入参数:

fSetpointValue: 设置值;fActualValue: TRUE 重置内部变量;fKp: 积分运行时间[s];

fTd: 衰减时间[s];

功能块显示:

51d38d3d2c204432a18c691dc4f2d632~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=0%2BwyMbwdcjKV9V0ZYT68dbJ59HA%3D 声明部分

ebef2c4773614c7d9a82c7f185f9411b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717800504&x-signature=knPGiy90Yt5G0GoA8udFS1JmlAU%3D 程序逻辑部分

以上是PID应用的基本特征,还有基于此原理的其他控制方法,单独使用、与PI结合使用、带死区的PID、固定使用采样频率的PID等例子。确保你确实需要编写相应的程序。

PID参数调试经验调节

调试PID 参数依赖于经验整定。这意味着不断测试以找到您需要的参数。 公式为:

常用表达方式:

找到最佳参数设置并从最低到最高检查它们。

首先是比例,然后是积分,最后是微分。

由于曲线经常振动,因此刻度盘(刻度盘)必须做得更大。

曲线围绕大海湾上升,比例表盘变小。

当曲线偏离时,恢复速度减慢并且积分时间缩短。

曲线波动周期长,积分时间长。

以上是PID控制的一般原理,想要更深入的应用,还需要系统学习PID算法。希望理解这个原理对你的深度学习有帮助。

觉得有用的朋友关注我,我可以继续为大家提供工控实践经验。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84631.html

(0)
小条's avatar小条
上一篇 2024年6月1日 上午6:48
下一篇 2024年6月1日 上午6:48

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注