直流电机角度位置控制详解(附源码)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:11   1793   0

电机角度位置控制,指的是使电机转动特定所需角度。

常用于驱动齿轮组,涡轮蜗杆,丝杆滑块等执行机构。电机需带有编码盘反馈。

电机角度控制简单分为两层,内层电机速度环,外层电机角度环。

首先获取编码盘脉冲值,进行处理,得到实时反馈转速,然后通过PID控制器,形成速度内环。

https://blog.csdn.net/qq_40696002/article/details/103759101

对编码盘脉冲值处理,电机会获得绝对角度反馈。

void Motor_Angle_Cal(unsigned short int motor_num,float T)
{
 float  res1, res2;
 static float pos[MOTOR_MAX], pos_old[MOTOR_MAX];
 
 pos[motor_num] =MOTOR_FEEDBACK[motor_num].real_angle;
 motor.ANGLE[motor_num].eer=pos[motor_num] - pos_old[motor_num];
 
 if(motor.ANGLE[motor_num].eer>0)  
 {
  res1=motor.ANGLE[motor_num].eer-T;//反转,自减周期T(我取360)
  res2=motor.ANGLE[motor_num].eer;
 }
 else
 {
  res1=motor.ANGLE[motor_num].eer+T;//正转,自加周期T
  res2=motor.ANGLE[motor_num].eer;
 }
 
 if(ABS(res1)<ABS(res2)) //不管正反转,肯定是转的角度小的那个是真的
 {
  motor.ANGLE[motor_num].eer_eer = res1;
 }
 else
 {
  motor.ANGLE[motor_num].eer_eer = res2;
 }
 
 motor.ANGLE[motor_num].POS_ABS += motor.ANGLE[motor_num].eer_eer;
 pos_old[motor_num]  = pos[motor_num];
}

用手顺时针拨动三圈,电机会获得反馈+1080度,然后通过PID控制器,至此,角度环形成。

过程分析,当前绝对角度反馈为 motor_angle[moto_num].pos_abs,目标位置角度motor_angle[moto_num].pos_goal输入角度环pid计算。
角度环pid的输出pid.motor_pos[moto_num].out做为速度环的输入,

与速度反馈 abs_err[moto_num]做差,通过速度环pid输出给电机pwm占空比或can信号,驱动电机。

经过微小震荡(超过位置会反转),最终电机稳定停止在目标位置,此时系统稳定。

宏观现象来看,电机连接的齿轮转动给定圈数,达成控制目标。

void Motor_Auto_Run(void)
{
 unsigned short int moto_num;
        float abs_err[MOTOR_MAX];
 static float abs_err_old[MOTOR_MAX];
 for (moto_num=0;moto_num<=1;moto_num++)
 {
     Motor_Angle_Cal(moto_num,360); 
     PID_Cal_Limt(&pid.motor_pos[moto_num],  motor_angle[moto_num].pos_abs,motor_angle[moto_num].pos_goal);
  
     abs_err[moto_num] = motor_angle[moto_num].pos_abs - abs_err_old[moto_num];
  
     PID_Cal_Limt(&pid.motor_speed[moto_num],  abs_err[moto_num],pid.motor_pos[moto_num].out);
  
     abs_err_old[moto_num] = motor_angle[moto_num].pos_abs;
 }
  
        PWM_OUT_Control(pid.motor_speed[MOTOR1].out,pid.motor_speed[MOTOR2].out);

}

先随便写点,有空接着弄,知乎是同人。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP