综合技术交流
直播中

ss

7年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[经验]

采用PID控制算法实现无刷直流电机的速度控制方案

  对无刷直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,,速度控制闭环系统的机械特性有以下优越性:
  闭环系统的机械特性与开环系统机械特性相比, 其性能大大提高; 理想空载转速相同时, 闭环系统的静差率(额定负载时电机转速降落与理想空载转速之比) 要小得多;当要求的静差率相同时, 闭环调速系统的调速范围可以大大提高。
  无刷直流电机的速度控制方案可以采用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 算法可以得到相应地改进而更加完善,并可与其它控制算法结合在一起,以产生更好的控制效果。

回帖(1)

王栋春

2021-2-21 21:50:34
学习了        
举报

更多回帖

发帖
×
20
完善资料,
赚取积分