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

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条回答
andyseu
1楼-- · 2019-07-14 21:37
顶                                         
youpukeji668
2楼-- · 2019-07-14 22:37
帮顶         
naiztycheng
3楼-- · 2019-07-15 04:12
显然程序应该设置TIM3和TIM7为编码器模式。而且设置初始值为0x7fff为初始值。应该是为了确定是正转还是反转。两个定时器分别记录一路的counter。正如代码注释一样一个是左轮,一个是右轮。

然后我们这里记speed.average为VA,左右轮的叫做Vl和Vr。
那么每一次更新后
VA_k = Kp * VA_(k-1) + (1 - Kp) *(Vl_k + Vr_k)/2
这里的Kp是0.7

那么这里的VA到底是干什么用的呐?是用来计算Vx和Vy以及Phi呐还是什么。就需要你提供如何利用VA的那段代码
maqyun
4楼-- · 2019-07-15 09:38
fhdgxfvx
5楼-- · 2019-07-15 14:29
 精彩回答 2  元偷偷看……
60user189
6楼-- · 2019-07-15 18:38
看不明白。。。。帮顶吧

一周热门 更多>