找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3144|回复: 0
打印 上一主题 下一主题
收起左侧

PID解释与离散化算法公式

[复制链接]
跳转到指定楼层
楼主
PID解释与离散化算法公式
一、PID解释
1、PID含义解释:PProportion,比例的意思,I是Integral,积分意思,D是Differential微分的意思。
2、PID第一种通俗解释:以有一个水缸有点漏水(而且漏水的速度还不一定固定不变),通过加水让水维持在要求水面高度某个位置,一旦发现水面高度低于要求水面高度某个位置,就要往水缸里加水的例子来说明PID含义如:小家伙接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每20分钟来检查一次水面高度。水漏得太快,每次小家伙来检查时,水都快漏完了,离要求的高度相差很远。于是小家伙改为每5分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。几次试验后,确定每10分钟来检查一次。这个检查时间就称为采样周期,即T为了让水面高度维持在某个位置,开始小家伙用瓢加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小家伙又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了衣服几次,小家伙又动脑筋,我不用瓢也不用桶,就用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数,即P。在加水过程中,小家伙又发现水虽然不会加过量溢出了,但是有时会高过要求位置比较多,还打湿了衣服。于是小家伙又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。从而他试着变换不同大小口的漏斗来控制加水的速度,最终找到了满意的漏斗。这个漏斗控制加水时间就称为积分时间,即I。经过几番折磨,小家伙终于喘了一口,但任务要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。小家伙又为难了!于是小家伙又开努脑筋,终于让小家伙想到一个办法,放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了,小家伙可就恼啦。但方法总比困难多,小家伙在要求水位的水平面水缸处凿一孔,再接一根管子到下面的备用桶里,这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间,即D。 虽然微分的比喻有点牵强,但能帮助理解就行了。举例中小家伙的试验是一步步独立做,但实际加水工具、漏斗口径、溢水孔的大小同时都会影响加水的速度。
3、PID第二种通俗解释:以有一个水缸水,通过加水让水维持在要求水面高度某个位置,一旦发现水面高度低于要求水面高度某个位置,就要往水缸里加水的例子来说明PID含义如:假设我们需要把预期水面高度稳定在A平面,而实际要求水面高度在B平面,那么水面高度差值Err=A-B,这个时候我们需要往水缸里面加水,加水量就是Kp*Err,Kp就是我们的比例控制系数,即P。如果A>B,Err水面高度差值为正,就往水缸里面加水;如果A<B,Err水面高度差值为负,就从水缸里面舀水出来。那么只要预期水面高度和实际要求水面高度有差值,我们都会通过水桶去加减水来调整系统。这里也许有人会有疑问,如果这里把比例控制系数Kp直接设置成1,然后加水的量直接为Err=A-B不就可以了。然而实际上很多系统是做不到这点的。比如温度控制系统,实际温度为5度,我要通过加热把温度提升到30度,这里难道我们能一次性准确的给系统加30度?显然这是做不到的。那么比例控制的最终结果是Err水面高度差值的值趋向于0。比例控制部分公式如下图:

在我们的比例控制的作用下,Err水面高度差值)慢慢减小(假设一开始预期水面高度水平面A大于实际要求水面高度水平面B,也就是说Err水面高度差值是一个正值),由此可知Err水面高度差值是一条随时间变化且斜率小于0的曲线。那一定周期内,Err水面高度差值越大,微分的绝对值越大,对Err的减小速度起到抑制作用,直到最后斜率为0微分才会停止抑制作用。微分部分公式如下图一及随着微分的影响,Err水面高度差值曲线的斜率最终趋向于0
比例控制只能尽量将Err水面高度差值调节到0,但是会存在这样那样的误差。而微分的作用是将曲线的斜率控制到0则停止对其抑制作用,但曲线的斜率为0的时候Err水面高度差值并不一定为0。总的来说就是存在静差怎样来消除静差的呢?使用积分(积分公式如下图二)来消除。我们知道曲线的积分相当于曲线与x轴围出来的面积如下图一。积分作用的目是使红色部分的面积和蓝色部分的面积的和为0,即使系统在比例控制部分和微分控制部分已经趋于稳定,只要Err水面高度差值不为0就会存在静差,只要存在静差积分就会对系统产生影响,直到系统的Err水面高度差值值为0。这样我们的PID控制在理论上就可以达到一个非常精确的控制效果。

注意:由于编辑框字数限制,此处作为下篇题为PID解释与离散化算法公式余下内容,请点击我头像或者这个链接看下一篇:http://www.51hei.com/bbs/dpj-185139-1.html

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表