对无刷直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,,速度控制闭环系统的机械特性有以下优越性:
闭环系统的机械特性与开环系统机械特性相比, 其性能大大提高; 理想空载转速相同时, 闭环系统的静差率(额定负载时电机转速降落与理想空载转速之比) 要小得多;当要求的静差率相同时, 闭环调速系统的调速范围可以大大提高。
无刷直流电机的速度控制方案可以采用PID控制算法实现。
PID控制系统组成
PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。
数学分析
PID调节器的微分方程
模拟PID控制规律的离散化
数字PID控制器的差分方程
编码实现
定义PID结构体
typedef struct
{
float KP; //比例项系数
float KI; //积分项系数
float KD; //微分项系数
float e_1; //上次的误差值
float e_2; //上上次的误差值
float e_3; //上上上次的误差值
float uk; //PID反馈数值
float T; //时间差值
float LastT; //时间绝对值
}
分别计算比例项、微分项和积分项,再求和。
1、计算比例项
x = (Error + 4.0 * PIDP-》e_1 + PIDP-》e_2) / 6.0; //取平均值滤波
x1 = (PIDP-》e_1 + 4.0 * PIDP-》e_2 + PIDP-》e_3) / 6.0;
Error,误差值;
x,滤波后的本次误差 ;
x1,滤波后的上次误差。
计算得出比例反馈项Dup = PIDP-》KP * (x - x1);
2、计算微分项
TS = PIDP-》T / 1000.0; //将时间差值转换成以秒为单位
计算微分项Dud = PIDP-》KD * (error - 2 * PIDP-》e_1 + PIDP-》e_2) / TS;
3、计算积分项
Dui = PIDP-》KI * TS * x;
4、求和
PID反馈数值PIDP-》uk = Dup + Dui + Dud;
最终实现
根据以上算法得出来的PID修正数值,能良好地调整电机转速,并且能使电机在不同负载的条件下保持可调节的速度匀速转动。
根据电机的实际运行情况,PID 算法可以得到相应地改进而更加完善,并可与其它控制算法结合在一起,以产生更好的控制效果。