基于遗传算法的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参数整定等相关研究。