积分项是用来消除稳态误差用的,只要存在误差,积分作用就会存在,调节器就会有输出,直到误差为零,积分作用才会停止。积分环节可以单独使用,一定是配合比例环节组成PI控制,或者配合比例环节加微分环节组成PID控制。
基本的PID可以用运放+电容组成比例积分-比例微分电路即可,可以自己计算,计算误差不大。缺点是不方便改变参数。
现代新的方案一般采用单片机用数字化方式实现PID,这可以增加很多新功能,例如积分限幅/积分分离/自整定/人工智能等等
这是C语言的程序用的的积分分离,增量式算法你可以看看~在我用的片子是89C52
//
/ 名称: float PIDprocess1 /
/ 功能: PID adjust /
/ 说明: /
/ 调用: /
/ 输入: float xdata Yn, float xdata Rn /
/ 返回值: deltaPn /
//
float PIDprocess1()
{
int data E_0;
float data deltaPn,deltaPi,deltaPp,deltaPd,PsumCopy;
E_0=SetTemperature1-CurrentTemperature1;
if(abs(E_0)>Emax)
{
deltaPp=(float)Kp(E_0-E_11);
deltaPd=(float)Kd(E_0-2E_11+E_21);
// if(deltaPd>=dPdmax) deltaPd=0;
deltaPn=deltaPp+deltaPd;
}
else
{
if(abs(E_0)>E0)
{
deltaPi=(float)KiE_0(Emax-abs(E_0))/(Emax-E0);
}
else
{ //小误差时的处理
deltaPi=(float)KiE_0;
// if(fabs(deltaPi)<dPimin) deltaPi=0;
}
deltaPp=(float)Kp(E_0-E_11);
deltaPd=(float)Kd(E_0-2E_11+E_21);
// if(deltaPd>=dPdmax) deltaPd=0;
deltaPn=deltaPp+deltaPi+deltaPd;
}
/ if(fabs(deltaPn)>dPmax)
{
if(deltaPn>0) deltaPn=dPmax;
else deltaPn=-dPmax;
} /
Psum1+=deltaPn;
PsumCopy=Psum1;
if(PsumCopy>Pmax) PsumCopy=Pmax;
if(PsumCopy<Pmin) PsumCopy=Pmin;
E_21=E_11;
E_11=E_0;
return(PsumCopy);
}
//
/ 名称: float PIDprocess2 /
/ 功能: PID adjust /
/ 说明: /
/ 调用: /
/ 输入: float xdata Yn, float xdata Rn /
/ 返回值: Psum2 /
//
float PIDprocess2()
{
int data E_0;
float data deltaPn,deltaPi,PsumCopy;
E_0=SetTemperature2-CurrentTemperature2;
if(abs(E_0)>Emax)
{
deltaPn=(float)Kp(E_0-E_12)+(float)Kd(E_0-2E_12+E_22);
}
else
{
if(abs(E_0)>E0)
{
deltaPi=(float)KiE_0(Emax-abs(E_0))/(Emax-E0);
}
else
{ //小误差时的处理
deltaPi=(float)KiE_0;
}
deltaPn=(float)Kp(E_0-E_12)+deltaPi+(float)Kd(E_0-2E_12+E_22);
}
/ if(fabs(deltaPn)>dPmax)
{
if(deltaPn>0) deltaPn=dPmax;
else deltaPn=-dPmax;
}/
Psum2+=deltaPn;
PsumCopy=Psum2;
if(PsumCopy>Pmax) PsumCopy=Pmax;
if(PsumCopy<Pmin) PsumCopy=Pmin;
E_22=E_12;
E_12=E_0;
return(PsumCopy);
}
以上就是关于在pid调节器中,积分项有什么作用全部的内容,包括:在pid调节器中,积分项有什么作用、PID算法是否通过程序上通过设定P、I和D的值来实现比例积分微分环节,而非硬件上加入PID环节、谁能帮我用C语言编写“积分分离式PID控制器”及“微分先行式PID控制器”。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)