在pid调节器中,积分项有什么作用

在pid调节器中,积分项有什么作用,第1张

积分项是用来消除稳态误差用的,只要存在误差,积分作用就会存在,调节器就会有输出,直到误差为零,积分作用才会停止。积分环节可以单独使用,一定是配合比例环节组成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控制器”。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10171092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存