请问能帮忙解答这段程序的意义吗

2019-07-14 14:11发布

        ;程序的目的时求得两个轮子的速度矢量,但是却不知道为何是这样
    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);                                               
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
jfcidjq
1楼-- · 2019-07-15 19:44
表达式是:
(左边轮速度+右边轮速度)/2 =平均速度矢量。
前面两句就是在求速度。定时测量,计数就是速度。
然后,PID?出来了。
真正的速度平均值=历史的速度值*0.7+当前的速度值*0.3.这个算1阶IIR滤波器,因数是0.3。
所以,最后一句只是个滤波函数。
vywyefswer
2楼-- · 2019-07-16 00:03
帮顶,帮顶
fhdgxfvx
3楼-- · 2019-07-16 01:22
jfcidjq 发表于 2019-2-15 12:56
表达式是:
(左边轮速度+右边轮速度)/2 =平均速度矢量。
前面两句就是在求速度。定时测量,计数就是速度。

非常感谢,不知道那个是iir滤波
fhdgxfvx
4楼-- · 2019-07-16 06:55
 精彩回答 2  元偷偷看……
formlikon
5楼-- · 2019-07-16 07:39
fhdgxfvx 发表于 2019-2-15 13:31
非常感谢,坛友们热心回答,让小弟收获知识的同时,更是感觉暖心

楼主有什么疑问可以在社区或QQ群多交流,这也是社区存在的意义

一周热门 更多>