基于遗传算法的PID参数整定研究(二)

基于遗传算法的PID参数整定研究

在实际应用中我们需要将模拟PID控制转化为数字化PID控制,离散化后的PID控制便于在微处理器上进行编程与设计,实现对被控对象的准确控制。

1.2数字PID的实现

数字PID控制算法通常分为位置式PID控制算法和增量式PID控制算法。常见的控制框图,如图3所示。
在这里插入图片描述
图3 模拟PID控制系统原理框图

 PID控制器的微分方程:

在这里插入图片描述
将式(1)进行拉普拉斯变换,传递函数为:
在这里插入图片描述
如式(1)和式(2)所示分别为PID控制器的微分方程和传递函数,模拟PID控制器的离散化,如下表所示。

在这里插入图片描述
数字化PID控制器的差分方程如下:
在这里插入图片描述

1.2.1 位置式PID控制

如式(9)为位置式PID控制系统的差分方程,系统方框图如图4所示。
在这里插入图片描述
图4 位置式控制系统的控制框图

位置式编程

typedef struct
{
  float Kp;                      //比例系数Proportional
  float Ki;                      //积分系数Integral
  float Kd;                      //微分系数Derivative
 
  float Ek;                      //当前误差
  float Ek1;                     //前一次误差e(k-1)
  float Ek2;                     //再前一次误差 e(k-2)
  float LocSum;                  //累计积分位置
}PID_LocTypeDef;

float PID_Loc(float SetValue, floatActualValue, PID_LocTypeDef *PID)
{
  float PIDLoc;                                //位置
 
  PID->Ek = SetValue - ActualValue;
  PID->LocSum += PID->Ek;                        //累计误差
 
  PIDLoc = PID->Kp * PID->Ek +(PID->Ki * PID->LocSum) + PID->Kd * (PID->Ek1 - PID->Ek);
 
  PID->Ek1 = PID->Ek;  returnPIDLoc;
}


1.2.2 增量式PID控制

增量式数字控制器的输出只是控制量的增量Δu(n),计算时不需要对e(n)进行累加,计算机出现故障是不会引起执行机构位置的大幅度变化。如图5所示,为增量式控制系统的控制框图

增量式PID控制器的离散化方程如下:
在这里插入图片描述
在这里插入图片描述
图4 增量式控制系统的控制框图

增量式编程

typedef struct
{
  float Kp;                      //比例系数Proportional
  float Ki;                      //积分系数Integral
  float Kd;                      //微分系数Derivative
 
  float Ek;                      //当前误差
  float Ek1;                     //前一次误差e(k-1)
  float Ek2;                     //再前一次误差 e(k-2)
}PID_IncTypeDef;
 
float PID_Inc(float SetValue, floatActualValue, PID_IncTypeDef *PID)
{
  float PIDInc;                                //增量
 
  PID->Ek = SetValue - ActualValue;
  PIDInc = (PID->Kp * PID->Ek) -(PID->Ki * PID->Ek1) + (PID->Kd * PID->Ek2);
 
  PID->Ek2 = PID->Ek1;
  PID->Ek1 = PID->

后续会接着讲述基于常规人工的PID参数整定和基于遗传算法的PI参数整定等相关研究。

猜你喜欢

转载自blog.csdn.net/qq_42249050/article/details/106076878