PID相关参数讲解:1、比例系数Kp与静态误差

 PID的结构与公式

Output = K_{p}*e(t) + K_{i}*\int e(t)d_{t} + K_{d}*\frac{de(t)}{d_{t}}

来研究静态误差的同学,应该是对PID的原理有一定理解了,简单的概念也不用过多重复。
比例控制时PID控制中最简单的一个,很多能用代码编写PID代码的同学,也不一定理解这个比例系数Kp的意义,以及比例控制的原理。

讲PID最好的道具还是那个可能会漏水的水缸


假设有这么一个水缸。

你要让那个水缸的水位维持在1米的高度,(这个1米就是设定的目标值Setpoint)。

刚开始的时候水缸水位是0.2米,(这个0.2米,可以认为是初始输入值或者反馈值Input)。

计算一下,1 - 0.2 =0.8米,这个0.8米就是误差error。

主角小明可以来灌水了,假设旁边有个水源可以取水,这个时候水缸还不漏水,当前只研究比例控制算法:

Output = K_{p}*e(t) =K_{p}*error

这个Output就表示每次要加的水的量。

这个K_{p}有的博文把它与取水的容器来类比,比如水杯、水瓢,水盆等,容积越大,K_{p}就越大,其实这不是很合适,K_{p}就是一个系数,最好不要跟什么容器扯上关系。可以在不同的K_{p}来看看水缸是怎么灌满的。

假设,勤劳的小明选择用一个水瓢来灌水,比例系数K_{p} = 0.5

第一次灌水:t1,要灌的水量Output = K_{p}*error = 0.5*0.8 = 0.4,水缸的水位从0.2上升到0.6米,显然还没有到1米的水位,还差0.4米,需要继续灌水。

第二次灌水:t2,要灌的水量Output = K_{p}*error = 0.5*0.4 = 0.2,水缸的水位从0.6上升到0.8米,显然还是没到一米的水位,还差0.2米,需要继续灌水;

第三次灌水:t3,要灌的水是0.1米,水缸的水位到0.9米了;

......

一直这么灌下去,水缸肯定能接近水满。

再假设,勤劳的小明选择用一个水瓢来灌水,比例系K_{p} = 0.7

第一次灌水:t1,要灌的水量Output = K_{p}*error = 0.7*0.8 = 0.56,水缸的水位从0.2上升到0.76米,显然还没有到1米的水位,还差0.24米,需要继续灌水。

第二次灌水:t2,要灌的水量Output = K_{p}*error = 0.7*0.24 = 0.168,水缸的水位从0.76上升到0.928米,显然还是没到一米的水位,还差0.072米,需要继续灌水;

第三次灌水:t3,要灌的水是0.0504米,水缸的水位到0.9504米了;

......

一直这么灌下去,水缸也肯定能接近水满。

如果K_{p} = 1,只要一次就灌满了。

就从这三个比例系数的例子可以看出,把K_{p}越大,水缸灌满的越快。

不管K_{p}是多少,水缸都灌满了,跟静态误差好像没有半点关系。是的,是一点关系都没有,主要是因为这个水缸好。如果是一个漏水的破缸,你看看能不能把水缸给灌满。

一口漏水的破缸

假设有个漏水的水缸,每次加水的过程中,它都会漏0.1米的高度;

小明还是以比例系数K_{p} = 0.5的比例来灌水

一直灌下去,当某次把水缸的水位灌到了0.8米,这个时候问题出现了

因为误差error = 1-0.8 = 0.2,比例系数K_{p} = 0.5

那么下次要灌的水量就是0.1米,刚好漏的水量也是0.1米,是不是巧了,这个水缸永远只能被灌到0.8米的水位,距离01米的水位差0.2米,这个0.2米就是稳态误差

有兴趣的小朋友可以去算下不同的比例系数区灌水,应该都会有一个稳态的误差。

在生活中,像水缸漏水系统有很多,温度控制系统中,物体本身就会散热,这个散热就相当于“漏水”了;汽车运动过程中,有风阻和路阻,这也相当于“漏水”。所以单独的比例控制还是不能满足复杂的系统的。

稳态误差怎么消除,那就是下一章要聊的积分控制。

你可能感兴趣的:(PID控制,PID)