问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PID控制算法优化:实时调整参数实现更优控制效果

创作时间:
作者:
@小白创作中心

PID控制算法优化:实时调整参数实现更优控制效果

引用
CSDN
1.
https://blog.csdn.net/qq_16038625/article/details/113915879

PID控制算法是工业自动化领域中应用最为广泛的控制算法之一。本文将介绍一种对传统PID控制算法的优化方法,通过实时调整PID参数,可以显著提高控制系统的响应速度和稳定性。

一、系统原理

如上图所示,系统通过MCU输出0~100%占空比的PWM信号来控制温度,并通过ADC0808采集温度数据。

二、PID控制代码

void PIDCalu(PID_para *pid )  
{  
pid->Yn = 0.3906*GetADC();  
pid->En = pid->Rn - pid->Yn;  
pid->SumOfEn += Pid.En;  
pid->Un = pid->Kp*pid->En +  
pid->Ki*Pid.SumOfEn +  
pid->Kd*(pid->En - pid->En_1);  
pid->En_1 = pid->En;  
}

三、分析

PID控制代码的实现并不复杂,但参数Kp、Ki、Kd的配置却直接影响控制效果。当Kp、Ki、Kd分别为5、0.005、20时,系统在期望温度为50℃时的控制效果如下:

从图中可以看出:

  • 系统的输出控制前期主要由比例项决定,后期则主要由积分项和微分项决定。
  • 比例项的大小决定了前期升温的速度,而积分项和微分项决定了后期稳定的精度。

为了优化控制效果,我们设计了一个公式,让Kp、Ki、Kd参数在控制过程中实时改变。具体来说:

  • 当距离期望温度很大时,采用较大的Kp和较小的积分项与Kd;
  • 当距离期望温度较小时,采用较小的Kp和较大的积分项与Kd。

需要注意的是,积分项的调整不仅仅是改变Ki,还需要调整不同阶段的积分权值k(t)。

四、实验验证

我们采用单一变量法进行实验验证:

  1. 验证变参数Kp的效果:
  • A组:Ki、Kd、Kp为5、0.005、20不变
  • B组:Ki、Kd不变;Kp = En/5 + 5(当En从50到0时,Kp从15变化到5)

实验结果表明,在其他性能相似的情况下,B组达到稳定状态的速度比A组更快。

  1. 验证变参数Kd的效果:
  • A组:Kp、Ki、Kd为5、0.003、50,期望温度为50度
  • B组:Kp、Ki不变;Kd = 10/En(当En从10到0.2时,Kd从1变化到50)

实验结果表明,B组的控制效果优于A组。

  1. 验证变参数Ki的效果:
  • A组:Kp、Ki、Kd为5、0.05、50,期望温度为50度
  • B组:在Kp、Ki、Kd不变的情况下,引入积分强弱控制因子Kit = 1 - En/Rn

实验结果表明,即便在系统肯定会产生超调的情况下,B组的超调量也比A组小。

五、改进后的PID控制代码

改进后的PID控制代码增加了一个KpKiKdCalu函数,用于实时调整Kp、Ki、Kd参数:

void KpKiKdCalu(PID_para *pid)  
{  
//变参数Kp  
pid->Kp = Abs(pid->En)/5 + 5;  
//变参数Kd  
if(Abs(pid->En) < 0.2)  
{  
pid->Kd = 50;  
}  
else  
{  
pid->Kd = 10/ Abs(pid->En) ;  
}  
//变参数Kit  
if(pid->Rn!=0)  
{  
pid->Kit = 1 - Abs(pid->En / pid->Rn) ;  
}  
}  

void PIDCalu(PID_para *pid )  
{  
pid->Yn = 0.3906*GetADC();  
pid->En = pid->Rn - pid->Yn;  
pid->SumOfEn += pid->Kit*pid->En;  
pid->Un = pid->Kp*pid->En +  
pid->Ki*Pid.SumOfEn +  
pid->Kd*(pid->En - pid->En_1);  
pid->En_1 = pid->En;  
}

初始参数设置为:Kp、Ki、Kd分别为5、0.01、50,期望温度为50℃时的控制效果如下:

通过上述优化,系统在响应速度和稳定性方面都有了显著提升。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号