看到很多兄弟姐妹来问关于PID控制器的情况,偶就结合自己的理解,尽可能浅显的讲述一下PID控制的概念和如何设计一个简单的PID控制器的设计。其目的就是有兴趣朋友们可以跟这个设计一个简单的PID控制器 所谓的控制首先分有反馈控制和无反馈控制,我们当然讨论的PID当然是有反馈控制了。所谓的有反馈控制无非是要根据被控量的情况参与运算来决定操纵量的大小或者方向,那么到底如何根据被控两来决定操纵量的大小呢,唉,这就有很多分类了,所谓的高级的控制方式也就是“高级”在这个节骨眼上,有什么“自适应控制、模糊控制、预测控制、神经网络控制、专家智能控制”等等(至于到底这些控制方式有什么优点,唉,我只用过PID,别的也说不清楚,去抄书的话也没有说服力,关键是也懒的去抄。那位老弟如果要作论文,可以在这里发挥一下,资料到处都是)。但是就目前而言,在工业控制领域尤其是控制系统的底层,PID控制算法仍然独霸鳌头,占领着80%左右的市场份额,当然,这里所说的PID控制算法不是侠义上的固定PID,现在不是讲究多学科融合吗?人们在PID控制规律中吸取了其他“高级”的控制规律的优点,出现了诸多的新颖的控制器如自校正PID、专家自适应PID、预估PID、模糊PID、神经网络PID、非线性 PID等新型PID控制器。至于所谓的变种的PID算法如什么“遇限削弱微分”微分先行,积分分离“bangbang+PID”等等,已经不算是什么高级的控制方式了作控制器的厂商大多都会或多等等或少的采取一些,至于是神经网络PID,模糊PID,自适应PID是如何实现的,我所知道的就是利用对应的控制算法,适时的调节PID的参数。还是举个例子吧。传统PID的算法公式是: ⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)] U(n)=⊿U(n)+U(n-1) e(n) ,e(n-1), e(n-2)就是历史上的三个设定值跟过程值之间的偏差了。 这是一个增量式的PID算式(如果有谁不明白什么式增量是算式,呵呵,可能以后会提到,偶的写作水平有限,不会组织内容,再说我是想到哪,写道哪,呵呵,见凉)。 所谓的新型PID控制器,就是根据e(n)的不同,利用那些先进的控制规律来适当的调整Kp,Ki,Ke。至于怎么调整,呵呵,这就太罗嗦了,也不是这篇内容所该介绍的,(关键是我也不太清楚,呵呵,见笑),需要这些功能的大侠应该是我的前辈,还请指教哟。 好了,现在正式介绍一下所谓的PID各个参数吧。 所谓的PID大家在大学期间都应该学过,就是比例(P)、积分(I)、微分(D)。 比例控制:就是对偏差进行控制,偏差一旦产生,控制器立即就发生作用即调节控制输出,使被控量朝着减小偏差的方向变化,偏差减小的速度取决于比例系数Kp, Kp越大偏差减小的越快,但是很容易引起振荡,尤其是在迟滞环节比较大的情况下,Kp减小,发生振荡的可能性减小但是调节速度变慢。但单纯的比例控制存在静差不能消除的缺点。这里就需要积分控制。 积分控制:实质上就是对偏差累积进行控制,直至偏差为零。积分控制作用始终施加指向给定值的作用力,有利于消除静差,其效果不仅与偏差大小有关,而且还与偏差持续的时间有关。简单来说就是把偏差积累起来,一起算总帐。 微分控制:它能敏感出误差的变化趋势,可在误差信号出现之前就起到修正误差的作用,有利于提高输出响应的快速性,减小被控量的超调和增加系统的稳定性。但微分作用很容易放大高频噪声,降低系统的信噪比,从而使系统抑制干扰的能力下降。因此,在实际应用中,应慎用微分控制,尤其是当你开始作实验时,不防将微分控制项去掉,看看行不行,呵呵,不行啊?还是看看别的地方吧,肯定行的。 行了,这三个参数说明白了,再来说说怎么确定这几个参数的数值吧。这几个参数的确定比较先进的方式是自整定,但是如果是开始涉及这部分还是先不要讲了,按照经验值吧。估计大家用来控制温度比较多。大家按照这个规律来选吧。 Kp=100/P Ki= kp*T/I Kd= kp*D/T 分别介绍一下各个参数的意义: T:计算周期,就是各多少时间计算一次 ⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)],单位是秒。一般1秒或者0.5秒甚至5秒都行。 P:比例带 I:积分时间 D:微分时间 P、I、D跟kp,ki,kd有什么关系呢? Kp=100/P, Ki=kp*T/I Kd=kp*D/T 然后就可以计算 ⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)] 算出来⊿U(n)之后再怎么办呢?怎么把这一个数据跟控制输出联系在一起呢?说道这里我们先说说PID控制方式大体都有那些? 其一为线形连续PID输出,也就是说,PID运算的结果以模拟电压,电流或者可控硅导通角的形式按比例输出。 其二为时间-比例PID输出,也就是说,事先定一个时间长度,T1,然后PID运算的结果就在控制周期内以ON-OFF的形式输出出来,比如你控制一个炉子的温度,用电热丝来加热,就可以控制电热丝的一个控制周期内通电占整个控制周期的比例来实现,电路上可以用继电器或者过零触发的方式来切断或者接通电热丝供电。 起三为位置比例PID,PID运算的结果主要是对应于调节阀的阀门开度。 再回到前面,我们以第二种控制方式为例,计算出⊿U(n)后,一般首先将其归一化,也就是说除以你所要控制的温度的量程。 ⊿U(n)0_1=⊿U(n)/(hh-ll) 而时间比例PID输出对应的是“位置式PID运算”的结果 所以呢,我们要讲结果累积起来, U(n)0_1+=⊿U(n)0_1 然后将次结果换算成对应于控制周期的占空比。来输出
|