你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

非常希望大家能帮小弟解答这段程序的意义

[复制链接]
jiangyue 提问时间:2016-12-21 20:34 /
        ;程序的目的时求得两个轮子的速度矢量,但是却不知道为何是这样
    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 评论12 发布时间:2016-12-21 20:34

举报

12个回答
watershade 回答时间:2016-12-22 21:42:27
jiangyue 发表于 2016-12-22 09:58
speed.average的用途使用做一个速度pid环的输入,大神还想请教一下,这个kp是如何确定的, ...

sorry。我用了Kp让你误以为这是PID控制。如果你了解滤波算法就知道这是一个滤波的一种方法。

正常情况下VA = (Vl + Vr )/2
但是如果你将前一次的平均值取一部分去中和新获取值的波动。这就挺好了。但是这还不是最好的。你可以根据你实际测得的波动看看波动的变化情况,在指定滤波的深度或者更改更好的滤波算法

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

jackten 回答时间:2016-12-22 10:06:09
顶                                         
斜阳 回答时间:2016-12-22 08:57:41
帮顶         
watershade 回答时间:2016-12-21 21:01:29
显然程序应该设置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的那段代码

5265325 回答时间:2016-12-22 08:49:42
jiangyue 回答时间:2016-12-22 09:58:36
watershade 发表于 2016-12-21 21:01
显然程序应该设置TIM3和TIM7为编码器模式。而且设置初始值为0x7fff为初始值。应该是为了确定是正转还是反转 ...

speed.average的用途使用做一个速度pid环的输入,大神还想请教一下,这个kp是如何确定的,
小小超 回答时间:2016-12-22 14:58:34
看不明白。。。。帮顶吧
sssdd 回答时间:2016-12-22 16:15:57
表达式是:
(左边轮速度+右边轮速度)/2 =平均速度矢量。
前面两句就是在求速度。定时测量,计数就是速度。
然后,PID?出来了。
真正的速度平均值=历史的速度值*0.7+当前的速度值*0.3.这个算1阶IIR滤波器,因数是0.3。
所以,最后一句只是个滤波函数。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

anobodykey 回答时间:2016-12-22 16:43:33
帮顶,帮顶
jiangyue 回答时间:2016-12-22 23:17:34
sssdd 发表于 2016-12-22 16:15
表达式是:
(左边轮速度+右边轮速度)/2 =平均速度矢量。
前面两句就是在求速度。定时测量,计数就是速度 ...

非常感谢,不知道那个是iir滤波
jiangyue 回答时间:2016-12-22 23:22:52
watershade 发表于 2016-12-22 21:42
sorry。我用了Kp让你误以为这是PID控制。如果你了解滤波算法就知道这是一个滤波的一种方法。

正常情况下 ...

非常感谢,坛友们热心回答,让小弟收获知识的同时,更是感觉暖心
zero99 回答时间:2016-12-29 09:44:29
jiangyue 发表于 2016-12-22 23:22
非常感谢,坛友们热心回答,让小弟收获知识的同时,更是感觉暖心

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

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版