智能车制作

标题: 【直立新手上路】关于速度闭关控制 [打印本页]

作者: abacrya、军    时间: 2014-12-16 12:03
标题: 【直立新手上路】关于速度闭关控制
本帖最后由 abacrya、军 于 2014-12-16 12:38 编辑

控  制  方  法:卓晴老师第七届直立车调试方案
速度控制周期:
/*每10MS进行速度控制*/
if(time_10)
{
    speed_control(0);
    time_10=0;
}
static int16 formerly_pwm=0,now_pwm=0;
void speed_control(uint16 expect_speed)
{
  static int16 integral=0;
  int16 ek,R_speed,L_speed,real_speed,kp;
  L_speed= -FTM_QUAD_get(FTM1);//L
  R_speed= -FTM_QUAD_get(FTM2);//R
  FTM_QUAD_clean(FTM1);
  FTM_QUAD_clean(FTM2);
  //前进为正,后退为负
  real_speed=(L_speed+R_speed)/2;
  ek=expect_speed-real_speed;
  kp=ek*speed.KP;
  integral+=ek*speed.KI;

  if(integral>2000)
    integral=2000;
  if(integral<-2000)
    integral=-2000;
  /*积分上限与积分下线*/
  if(kp>6000)
    kp=6000;
  if(kp<-6000)
    kp=-6000;
  /*比例限幅*/
  formerly_pwm=now_pwm;
  now_pwm=kp+integral;

  //VisualScope_Output(integral,kp,now_pwm,.0);
}

速度平滑控制:
1ms控制一次
int16 speed_smoothness_out(vuint8 time)
{
  int16 x,pwm;
  x=now_pwm-formerly_pwm;
  x=x/10;
  pwm=x*time+formerly_pwm;
  return pwm;
}


1MS中断中内容:
void pit0_incident(void)
{
    time++;
    if(time==11)
        time=1;
    if(  !(time%5) )
    {
        time_5=1;
    }
    if( time==10 )
    {
        time_10=1;
    }
/****************每MS进行姿态控制****************/
    balance_pwm=balance_control(0);
    L_PWM=balance_pwm;
    R_PWM=balance_pwm;
    //进行速度控制后加上速度控制PWM值
    speed_pwm=speed_smoothness_out( time);
    L_PWM-=speed_pwm;
    R_PWM-=speed_pwm;
   
    //VisualScope_Output(L_PWM,R_PWM,speed_pwm,angle_pwm);

    L_motor_pwm(L_PWM);
    R_motor_pwm(R_PWM);

}

目的:站在原地受外界干扰不动!
存在问题:

调试过程中.先调积分I。当两边来回摆动时,开始调节比例参数,发现,KP小时,不能减小摆动。KP大时,小车震动,并来回摆动。。。
在这两个值中间找,,没有发现能让他停下来不摆动的值
原因还在迷茫中。。。求指点!



补充内容 (2014-12-16 13:20):
就是关于直立的参数,,,之前调了PD的几组能用的参数,,但是换电池后就都不能用了,,都发生了震荡。。。怎么样避免这个问题?
作者: 空有一人    时间: 2014-12-16 12:36
:):)
作者: HAWX    时间: 2014-12-16 13:02
:P
作者: 帅气番茄    时间: 2014-12-16 16:35
一起学习下:)
作者: 我知我心1    时间: 2014-12-16 16:39
:o:o
作者: 我们的故事很多    时间: 2014-12-16 16:56
Mark      
作者: majorfog    时间: 2014-12-16 17:03
直立有N种可以达到完美效果的参数组合,但是想要和速度环配合好还是得反复联调参数和限幅,ps:速度环静止调试不用消耗太多精力 ,差不多就行  
作者: abacrya、军    时间: 2014-12-16 21:06
majorfog 发表于 2014-12-16 17:03
直立有N种可以达到完美效果的参数组合,但是想要和速度环配合好还是得反复联调参数和限幅,ps:速度环静止调 ...

嗯。。多谢提醒,,,但是我想问下,,我这个控制思路是对的吧?

因为觉得调了四五天。。没有视频里说的一点效果。。有点怀疑是方法的问题

作者: 活出你的伟大    时间: 2014-12-16 21:35
好厉害
作者: majorfog    时间: 2014-12-16 22:46
abacrya、军 发表于 2014-12-16 21:06
嗯。。多谢提醒,,,但是我想问下,,我这个控制思路是对的吧?

因为觉得调了四五天。。没有视频里说 ...

思路是对的,可以回调一下直立试试


作者: abacrya、军    时间: 2014-12-17 08:37
majorfog 发表于 2014-12-16 22:46
思路是对的,可以回调一下直立试试

好的,,,,谢谢指点!




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