一个PID控制理解的误区

关于PID控制的原理就不多说了,相关的教程实在太多。由于本人是光电相关专业,并非自动化出身,因此对自动控制学习并不深入。但本身我做的是软硬件结合的,常常会遇到需要自动控制的场合,简单的PID基本上就够用了。虽然N年前我就熟知PID,但是对其缺乏深入的理解和实践也导致自己在当年参加电子设计竞赛时没有做出好的结果。现在又遇到需要运用PID的场合,打算再次学习并实践之。这的确是一个有用好用的工具。

在学习的过程中,我发现自己对PID认识的一个误区,也许很多对PID不够熟悉的同事和我有一样的误解。

以控制一个直流电机转速为例,假设转速s(t)与电机两端电压y(t)成正比。PID控制框图如图1所示。其中plant是指设备。PID控制器输出u(t)公式如图2所示。我一直误以为,u(t)就是实际施加到执行设备上的y(t),比如之前我可能会直接用u(t)当做施加到电机两端的电压。但实际上,u(t)是在当前电压上的一个变化量。也就是说输出y(t)=y(t-1)+u(t-1)。使用PID控制器产生一个电压的变化量,plant根据这个变化量调整自己的输出电压。

 


设想如果让我们手动控制(P控制),我们也是根据现在的速度与目标速度的偏差,然后对当前电压进行一个微调。同样自动控制的目标是使误差变为0,这时u(t)的输出显然是0.

同样上述误解导致我以为,增量式PID的Δu(t)是控制器调整的变化量,比如步进电机接下来移动的步长,这显然是不对的。而变化量u(t)才应该是接下来移动的步长。


一些关于编写PID控制代码的tricks可以参考《http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/》和《PID控制算法的C语言实现》


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Luchang-Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值