智能车制作
标题:
速度控制 求指点!!!
[打印本页]
作者:
wxl900306
时间:
2012-5-21 22:08
标题:
速度控制 求指点!!!
/**************速度控制********************/
void SpeedControl(void){
float fDelta;
float fP,fI;
CarSpeed= LeftMotorPulseSigma;//CarSpeed=(Left_pulse_num+Right_pulse_num)/2;
LeftMotorPulseSigma=0;
// Right_pulse_num=0;
CarSpeed*= SPEED_CONV;
fDelta=(CAR_SPEED_SETTING-CarSpeed);
fP=fDelta * SPEED_CONTROL_P;
fI=fDelta * SPEED_CONTROL_I;
SpeedControlIntegral+=fI;
SpeedControlOutOld=SpeedControlOutNew;
SpeedControlOutNew=fP+SpeedControlIntegral;
}
/*******************************************/
/*************速度控制输出******************/
void SpeedControlOutput(void){
float fValue;
fValue=SpeedControlOutNew-SpeedControlOutOld;
SpeedControlOut=fValue*(SpeedControlPeriod)/100+SpeedControlOutOld;
}
/*******************************************/
这里我们用的是一个光码盘的测速,CarSpeed就直接取左轮脉冲的累加值。
1)我们的问题是不知道是那里错了,只要一开电源速度就直接达到最大值?并且左右晃的很厉害。
2)SpeedControlOutOld这个值是不是经过几毫米后就很大?
3)SpeedControlOutOld很大,从而引起SpeedControlOut很大。他们都不会减小,对吗?
作者:
流浪花
时间:
2012-5-21 23:13
你的是不是SpeedControlOut最终输出给电机的时候的极性反置了啊?
作者:
wxl900306
时间:
2012-5-22 20:26
应该没错,这个我们注意过,也做过实验,但一个是一直往一个方向加速,另一个是左右摆动十分严重,不过这两个都有一个现象,就是开关打开,过几秒钟后速度正反转就无法进行调节了,求指导。
作者:
lyp331255438
时间:
2012-6-11 00:52
LZ
你们的问题解决了没?
指导一下
作者:
Hell_Phoenix
时间:
2012-7-6 19:37
楼主,我也遇到和你一样的情况了,求解决方法,求指点迷津。
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2