各位大神,香主!我做一个磁导航小车,现在遇见这样的瓶颈~~
目前主要实现小车的直线行驶,直流电机驱动器反馈两个电机的转速d_value1、d_value0,我测出来!
现在需要做,通过d_value1、d_value0的差值来调节两路PWM占空比来实现d_value1 == d_value0(尽量);
下面是我写的程序,没办法调节d_value1 == d_value0;
static s16 err = 0;
s16 err_1 = 0;
err_1 = (s16)(d_value1 - d_value0) / 2;
if (err_1 > 3)
err_1 = 3;
else if (err_1 < -3)
err_1 = -3;
err += err_1;
vert_L = AGV_VERT; //左边车轮 速度 ,开始 固定速度,占空比= 50%,
vert_R = AGV_VERT; //右边车轮 速度 ,开始 固定速度,占空比= 50%,
Start_TIM1(vert_L - 2*err); //固定速度,占空比= 50%,
Start_TIM8(vert_R + 2*err);
其中Start_TIM1(vert_L - 2*err);和 Start_TIM8(vert_R + 2*err); 来调节两路PWM的占空比;
各位有没有好点的程序,或者帮我改进下~~~谢谢 |