;程序的目的时求得两个轮子的速度矢量,但是却不知道为何是这样
speed.left =
tiM_GetCounter(TIM3)-0x7fff;
speed.right=TIM_GetCounter(TIM4)-0x7fff;/
speed.average*=0.7;
speed.average+=((float)(speed.left+speed.right))*0.5*0.3
TIM_SetCounter(TIM3, 0x7fff);
TIM_SetCounter(TIM4, 0x7fff);
(左边轮速度+右边轮速度)/2 =平均速度矢量。
前面两句就是在求速度。定时测量,计数就是速度。
然后,PID?出来了。
真正的速度平均值=历史的速度值*0.7+当前的速度值*0.3.这个算1阶IIR滤波器,因数是0.3。
所以,最后一句只是个滤波函数。
非常感谢,不知道那个是iir滤波
楼主有什么疑问可以在社区或QQ群多交流,这也是社区存在的意义
一周热门 更多>