智能车制作

标题: 清华方案电磁车速度问题 [打印本页]

作者: 亚亚    时间: 2012-4-14 00:42
标题: 清华方案电磁车速度问题
最近直立调好了,而且还掰都掰不动。但是速度闭环加上去,像清华一样的程序,速度设为0,结果始终调不出来回摆动???。参数大了立马倒下,参数小了没效果。如果我陀螺仪零点值没温漂不用速度闭环就能站立,有温漂了即使加上速度闭环车还是加速跑???。而且我发现参数大了是不可能提速的,否则很容易倒,控制不同的速度需要不同的参数吗???是不是车太硬了是不可能提速的???

作者: 吉他手    时间: 2012-4-14 08:57
仔细查看你的速度反馈是否加对了。特别是反馈的“极性”。
作者: 亚亚    时间: 2012-4-14 14:27
不是角度PWM给正值,速度PWM就应该给负值吗

作者: 亚亚    时间: 2012-4-14 14:53
void speed_get(){
  

  waittime++;
  if(waittime==20){

  SpeedLeft=PACNT*constant;//感觉需要比例系数?????滤波
  PACNT=0;
  if(drtion==0){
  SpeedLeft=-SpeedLeft;
  
  }
  
  waittime=0;
  speedtime=0;
  err=speedset-SpeedLeft;
  sumerr+=err;
   
  oldspeed=newspeed;
  newspeed=0.01*sumerr+1*err;
}
                                       
}
void speed_control(){
   
   speedf=newspeed-oldspeed;
   motor_speed_give=(int)(oldspeed+speedf*(speedtime+1)/20);
   speedtime++;
}
不对吗求指正???
作者: 亚亚    时间: 2012-4-14 15:04
我发现I 的大小决定了能跑的最大速度,因为我的速度一大就点头
作者: 亚亚    时间: 2012-4-14 15:05
记性应该没问题,要不然怎么速度一大就点头呢?
作者: 亚亚    时间: 2012-4-14 15:07
我的是5ms中断,另外你说过
请注意:如果速度控制中只增加了速度反馈I(积分),速度控制会出现震荡的。如果设定速度为0,车模一般会在原点附近来回走动。这一点可以参见设计指南中调试视频中的演示。所以在速度控制中需要增加上P(比例),由它来消除速度控制中的震荡。
两者参数选择是的车模能够在速度设定为0的时候,维持静止不动。特别是在外力的冲击下,车模能够很快恢复静止。做到这一点之后,设置速度便可以实现车模匀速运行了。


这种情况陀螺仪应该必须没温漂吧
作者: 远方的笨蛋    时间: 2012-4-14 21:37
我的闭环效果也很不好,楼主可解决

作者: {闭门造车}    时间: 2012-4-14 23:14
温漂时,不加倾角控制,简直无法保持静止啊。倾角控制才可以在温漂时保持静止,但官网方案是去掉倾角控制的,实在难以理解怎么做到的。求指教
作者: 吉他手    时间: 2012-4-15 11:42
{闭门造车} 发表于 2012-4-14 23:14
温漂时,不加倾角控制,简直无法保持静止啊。倾角控制才可以在温漂时保持静止,但官网方案是去掉倾角控制的 ...

参考方案中,车模保持静止,必须加上速度控制才行。
速度控制的本质就是进行车模的倾角控制。
所以你所有的疑问并不存在。

作者: 亚亚    时间: 2012-4-15 15:35
吉他手 发表于 2012-4-15 11:42
参考方案中,车模保持静止,必须加上速度控制才行。
速度控制的本质就是进行车模的倾角控制。
所以你所 ...

我的是5ms中断,另外你说过
请注意:如果速度控制中只增加了速度反馈I(积分),速度控制会出现震荡的。如果设定速度为0,车模一般会在原点附近来回走动。这一点可以参见设计指南中调试视频中的演示。所以在速度控制中需要增加上P(比例),由它来消除速度控制中的震荡。
两者参数选择是的车模能够在速度设定为0的时候,维持静止不动。特别是在外力的冲击下,车模能够很快恢复静止。做到这一点之后,设置速度便可以实现车模匀速运行了。


这种情况陀螺仪应该必须没温漂吧

作者: 亚亚    时间: 2012-4-15 15:38
吉他手 发表于 2012-4-14 08:57
仔细查看你的速度反馈是否加对了。特别是反馈的“极性”。


不是角度PWM给正值,速度PWM就应该给负值吗
void speed_get(){
  

  waittime++;
  if(waittime==20){

  SpeedLeft=PACNT*constant;//感觉需要比例系数?????滤波
  PACNT=0;
  if(drtion==0){这是判断速度方向
  SpeedLeft=-SpeedLeft;
  
  }
  
  waittime=0;
  speedtime=0;
  err=speedset-SpeedLeft;
  sumerr+=err;
   
  oldspeed=newspeed;
  newspeed=0.01*sumerr+1*err;
}
                                       
}
void speed_control(){
   
   speedf=newspeed-oldspeed;
   motor_speed_give=(int)(oldspeed+speedf*(speedtime+1)/20);
   speedtime++;
}
不对吗求指正???


作者: 吉他手    时间: 2012-4-15 16:11
亚亚 发表于 2012-4-15 15:38

关于速度控制的极性问题,你直接在程序上修改一下,测试效果就可以。
作者: 亚亚    时间: 2012-4-15 16:26
吉他手 发表于 2012-4-15 16:11
关于速度控制的极性问题,你直接在程序上修改一下,测试效果就可以。

我的是5ms中断,另外你说过
请注意:如果速度控制中只增加了速度反馈I(积分),速度控制会出现震荡的。如果设定速度为0,车模一般会在原点附近来回走动。这一点可以参见设计指南中调试视频中的演示。所以在速度控制中需要增加上P(比例),由它来消除速度控制中的震荡。
两者参数选择是的车模能够在速度设定为0的时候,维持静止不动。特别是在外力的冲击下,车模能够很快恢复静止。做到这一点之后,设置速度便可以实现车模匀速运行了。


这种情况陀螺仪应该必须没温漂吧???

作者: 吉他手    时间: 2012-4-15 16:57
亚亚 发表于 2012-4-15 16:26
我的是5ms中断,另外你说过
请注意:如果速度控制中只增加了速度反馈I(积分),速度控制会出现震荡的。 ...

什么时候都无法保证陀螺仪没有温漂。只要在调试之前进行仔细矫正即可。

作者: 亚亚    时间: 2012-4-15 16:58
恩,谢谢,不调好车不甘心

作者: 亚亚    时间: 2012-4-15 17:10
吉他手 发表于 2012-4-15 16:57
什么时候都无法保证陀螺仪没有温漂。只要在调试之前进行仔细矫正即可。

谢谢吉他手,你的一句话给了我很大帮助,谢谢,,我小有感觉了

作者: Why之队    时间: 2012-4-21 10:47
相同的情况,积分还会有饱和。。。楼主进展如何啊?是否解决了?求指导。。。。
作者: 亚亚    时间: 2012-4-26 21:02
已解决

作者: 阿ken    时间: 2012-5-1 15:07
楼主是怎么解决的

作者: 旅行者的脚印    时间: 2012-5-16 18:59

作者: 亚亚    时间: 2012-5-16 20:54
求指点

作者: 汇源258    时间: 2012-7-22 00:50
好心人 求救 我们后天就比赛啦 直立方向都差不多啦 但速度闭环怎么都加不对 要么不起作用 要么有个加速度 车越走越快  求指教 希望举例说一下 例如电机输出40%速度,负反馈后 speedout是多少啊??   SOS啊!
作者: 都培源    时间: 2012-7-22 01:09
亚亚 发表于 2012-4-14 14:27
不是角度PWM给正值,速度PWM就应该给负值吗

角度控制是负反馈,速度控制是正反馈,两个相反的

作者: xiongcaifei    时间: 2013-4-15 17:57
都培源 发表于 2012-7-22 01:09
角度控制是负反馈,速度控制是正反馈,两个相反的

速度控制为什么是正反馈呢??求指教啊。我们的车打算在弯道减速,可是就是会出问题啊。弯道到底能不能减速呢?(设定速度改变会影响稳定啊)。还有就是速度控制的I为什么会影响速度呢?求指教啊
作者: 都培源    时间: 2013-4-19 15:16
        关于速度闭环为什么是正反馈,这一点确实不太好理解,就如同一辆汽车在地面上跑,是地面对车的摩擦力做正功,而车对地面的力做负功一样。
        关于速度闭环的解释,可以参考《新版电磁组参考设计方案第二版.pdf》的第26--32页,里面有详细的描述,论证了速度闭环为什么是正反馈。




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