智能车制作

标题: 大家根据采集的传感器角度信息怎么计算PWM输出的呢 [打印本页]

作者: suifenglove    时间: 2012-2-16 20:57
标题: 大家根据采集的传感器角度信息怎么计算PWM输出的呢
我的总是很抖啊 还是应该用不同的算法呢 求教啊 下面是我计算的PWM输出 是不是太简单了?就是PD算法啊 可是就是抖啊 郁闷啊

   Execute_CarAngle=Use_CarAngle-1.505;  //距离中点的角度
   Execute_GryoAngle=angle_dot;     //角速度

   AngleSpeed=Execute_CarAngle* CAR_AA_Angle_INT+Execute_GryoAngle*CAR_AA_Gryo_INT;  //PD 计算PWM

   LeftSpeedOut  = AngleSpeed;   
   RightSpeedOut = AngleSpeed;

  if(LeftSpeedOut>0) LeftSpeedOut+=LEFT_MOTOR_OUT_DEAD_VAL;
  else  LeftSpeedOut-=RIGHT_MOTOR_OUT_DEAD_VAL;
  if(RightSpeedOut>0) RightSpeedOut+=RIGHT_MOTOR_OUT_DEAD_VAL;
  else  RightSpeedOut-=RIGHT_MOTOR_OUT_DEAD_VAL;
  

  if(LeftSpeedOut > MOTOR_OUT_MAX)   LeftSpeedOut = MOTOR_OUT_MAX;  
  if(LeftSpeedOut < MOTOR_OUT_MIN)   LeftSpeedOut = MOTOR_OUT_MIN;
  if(RightSpeedOut > MOTOR_OUT_MAX)  RightSpeedOut = MOTOR_OUT_MAX;
  if(RightSpeedOut < MOTOR_OUT_MIN)  RightSpeedOut = MOTOR_OUT_MIN;  

作者: 逆流出刀    时间: 2012-3-11 16:06
LEFT_MOTOR_OUT_DEAD_VAL;这些宏定义是多少
作者: suifenglove    时间: 2012-3-11 16:41
逆流出刀 发表于 2012-3-11 16:06
LEFT_MOTOR_OUT_DEAD_VAL;这些宏定义是多少

300-400左右
作者: 前行者cross    时间: 2012-3-24 14:39
呵呵,我也是用了一个PD,,一直抖
作者: zhjb1    时间: 2012-3-28 12:21
一直抖说明你没有设定控制阈值,简单理解就是与前一个数值相比,超过多少后PD是多少,否则不变或加积分算法——其实只要控制好了PD,I的作用不太有用。




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2