文档库 最新最全的文档下载
当前位置:文档库 › PID控制算法经验之谈

PID控制算法经验之谈

PID控制算法经验之谈
PID控制算法经验之谈

PID控制概述

PID控制是目前工程上应用最广的一种控制方法,它的优点在于结构简单,且不依赖被控对象模型,控制所需的信息量也很少,因而非常易于工程实现,同时通过参数的调整也可获得较好的控制效果。

PID控制是将误差信号的比例(P)、积分(I)和微分通过线性组合构成控制量,故称之为PID控制。因此,在使用中只需要设定三个参数即可。在很多情况,往往不一定需要三个单元,但是比例单元是必不可少的。

PID控制器设计的难点在于参数整定。但是实际上很多情况下我们可以直接根据系统的时域响应来调整比例、微分和积分三个环节的参数,当然这就需要了解这三个环节对时域响应的有什么样的影响。

(1)比例环节:直接将误差信号放大或缩小,因此将比例环节参数增大可以提高响应速度并且减小稳态误差,但是,快速性和稳定性总是一对矛盾,也就是在增大比例系数的同时,系统的稳定性逐渐减低,系统将会出现超调、振荡,甚至发散,因此合适的比例增益是在快速性和稳定性之间进行折中。

(2)积分环节:从积分的定义可知,该环节是将误差不断进行累积,可实现消除稳态误差。增益越大,积分作用越强,稳态误差消除也越快,但是带来的问题是容易产生积分饱和现象,带来大的超调并延缓了系统进入稳态的速度,因此这又是一个矛盾。

(3)微分环节:该环节或取的是误差的微分信息,根据微分的定义,我们可以知道,这是一个超前环节,也就是说该信号提前告诉我们控制量是该减还是该增,避免造成超调、振荡,因此增大该环节增益有助于提高系统的稳定性,避免振荡,但是对快速性却产生了负作用(快速性和稳定性总是一会矛盾体),因此必须合理选取。还有必须注意的是,微分环节对噪声信号将产生放大作用,因此在噪声较大的系统中慎用。

正是由于PID控制参数整定的复杂性,目前出现了多种改进的PID控制方法,我们将在下一篇中对这些改进型进行归纳总结。

各种改进型PID控制总结

随着数字控制技术的发展,我们在控制器的设计上有了更大的灵活性,一些原来在模拟PID控制器中无法实现的问题,现在我们很容易就能在数字计算机上实现了,于是产生来了一系列改进的控制算法,形成非标准的控制算法,改善系统品质,满足不同控制系统的需要。

1.积分分离PID控制算法

PID控制中引入积分环节,主要是为了消除静差,提高控制精度。但在启动、结束或大幅度增减指令时,短时间内系统有很大输出,由于积分积累的作用,致使控制量超过执行机构可能运行的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的振荡,这在生产中是绝对不允许的。积分分离的

基本思想是:当偏差较大时取消积分作用,当被控量接近给定值时,引入积分控制,以减小静差。

积分分离PID的控制形式为:

2.遇限削弱积分法

这一方法是考虑了在实际过程中,控制变量U因受到执行元件机械和物理性能的约束而控制在有限范围内,即

Umin≤U≤Umax

该方法的思想是:一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。也就是说,在计算U(k)时,将判断上一时刻的控制量U(k)是否已超出限制范围,如果已超出,那么将根据偏差的符号,判断系统输出是否在超调区域,由此决定是否将相应偏差计入积分项。其计算流程图如图1所示。

3.不完全微分PID控制

当信号突变时,PID控制的微分项输出的控制量可能比较大,尤其是阶跃信号时,微分项急剧增加,容易引起调节过程的振荡,导致系统的动态品质下降。

不完全微分PID控制算法就是采用一个带惯性的微分环节来克服常规PID控制的这一缺点。它的控制结构如图2所示。

4.微分先行PID控制

微分先行PID控制是只对输出量进行微分,而对给定指令不起微分作用,因此它适合于给定指令频繁升降的场合,可以避免指令的改变导致超调过大。

它的控制结构如图3所示。

5.带死区的PID控制

在控制精度要求不高、控制过程要求平稳的场合,为了避免控制动作过于频繁,消除由此引起的振荡,可以人为的设置一个不灵敏区B,即带死区的PID控制。只有不在死区范围内时,才按PID算式计算控制量。其结构如图4所示。

以上是一些常用的较为简单的改进PID控制,当然,随着控制理论的发展,目前各种新的改进型PID控制不断出现,包括与智能控制相结合而形成的模糊PID,神经网络PID等等,但是从实用性来看,上述方法在很长的一段时间内都将是工程设计人员的首选。

位置式PID控制与增量式PID控制的比较

最近看了一些文献,发现其中一些文献标题写着是用增量式PID控制,但是看表达式似乎仍是位置式PID控制。不知是他弄错了,还是我的理解错了,下面根据我的理解比较一下位置式PID与增量式PID控制。

首先看表达式,这里采用离散形式。

位置式PID控制:

增量式PID控制:

从表达式我们可以得出以下结论:

(1)位置式PID控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式PID的输出只与当前拍和前两拍的误差有关,因此位置式PID控制的累积误差相对更大;

(2)增量式PID控制输出的是控制量增量,并无积分作用,因此该方法适用于执行机构带积分部件的对象,如步进电机等,而位置式PID适用于执行机构不带积分部件的对象,如电液伺服阀。

(3)由于增量式PID输出的是控制量增量,如果计算机出现故障,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,因此对系统影响较大。

PID控制器C代码

typedef struct PID{

double Command; //输入指令

double Proportion; //比例系数

double Integral; //积分系数

double Derivative; //微分系数

double preErr; //前一拍误差

double sumErr; //误差累积

};PID

double PIDCale(PID *p,double feedback) {

double dErr,Err;

Err=p->Command-feedback; //当前误差 p->sumErr+=Err; //误差累加

dErr=Err-p->preErr; //误差微分

p->preErr=Err;

return(p->Proportion*Err //比例项

+p->Derivative*dErr //微分项

+p->Integral*p->sumErr); //积分项

}

void PIDInit(PID *p)

{

memset(p,0,sizeof(PID)); //初始化

}

相关文档