智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3627|回复: 8
打印 上一主题 下一主题

直立车的速度环计算

[复制链接]

45

主题

254

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2286
威望
1225
贡献
651
兑换币
696
注册时间
2014-1-22
在线时间
205 小时
毕业学校
高中
跳转到指定楼层
1#
发表于 2014-4-12 00:33:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
直立车的速度环中
但是速度环的运算过程中,浮点型数乘以比1.0小的数,结果会变成几万多,不解
(用虚拟示波器来看的)
比如,用官方的代码,
g_fCarSpeed=(g_nLeftMotorPulseSigma+g_nRightMotorPulseSigma)*0.5;
欧姆龙的编码器,
nLeftMotorPulseSigma和g_nRightMotorPulseSigma是正交解码得到的速度,
相加的结果还是正常的,但是乘以0.5之后就结果就变得很大(用虚拟示波器看的),
是数据溢出之类的问题吗?

回复

使用道具 举报

17

主题

306

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2447
威望
985
贡献
750
兑换币
660
注册时间
2014-2-21
在线时间
356 小时
2#
发表于 2014-4-12 08:44:23 | 只看该作者
我也遇到这样的问题,还在找原因
回复 支持 反对

使用道具 举报

47

主题

1053

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
30470

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章优秀版主奖章资源大师奖章

威望
19639
贡献
7175
兑换币
2325
注册时间
2012-2-1
在线时间
1828 小时
3#
发表于 2014-4-12 10:52:09 | 只看该作者
改成   g_fCarSpeed=(g_nLeftMotorPulseSigma+g_nRightMotorPulseSigma)>>1;
回复 支持 反对

使用道具 举报

45

主题

254

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2286
威望
1225
贡献
651
兑换币
696
注册时间
2014-1-22
在线时间
205 小时
毕业学校
高中
4#
 楼主| 发表于 2014-4-12 12:04:48 | 只看该作者
但是后面乘以p参数和乘以i参数的时候,还是会遇到类似的问题,就是结果飚得很大
回复 支持 反对

使用道具 举报

45

主题

254

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2286
威望
1225
贡献
651
兑换币
696
注册时间
2014-1-22
在线时间
205 小时
毕业学校
高中
5#
 楼主| 发表于 2014-4-12 12:17:28 | 只看该作者
fP=fDelta*SPEED_CONTROL_P; //比例控制      
fI=fDelta*SPEED_CONTROL_I; //积分控制
也就是这里,fDelta是一个很正常的数,但是乘上SPEED_CONTROL_P或者SPEED_CONTROL_I这些小于1的数以后,结果还是编程了上万
回复 支持 反对

使用道具 举报

45

主题

254

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2286
威望
1225
贡献
651
兑换币
696
注册时间
2014-1-22
在线时间
205 小时
毕业学校
高中
6#
 楼主| 发表于 2014-4-12 12:19:21 | 只看该作者
这是我使用正交解码的代码
    g_nLeftMotorPulseSigma=FTM1_CNT;
    FTM1_CNT=0;
    g_nRightMotorPulseSigma=FTM2_CNT;
    FTM2_CNT=0;
就是一个简单的赋值和清零,这样对吗?
回复 支持 反对

使用道具 举报

17

主题

151

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1610
威望
734
贡献
412
兑换币
462
注册时间
2013-8-8
在线时间
232 小时
7#
发表于 2014-4-12 12:41:34 | 只看该作者
g_fCarSpeed=((float)(g_nLeftMotorPulseSigma+g_nRightMotorPulseSigma))*0.5; 这样试一下
回复 支持 反对

使用道具 举报

45

主题

254

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2286
威望
1225
贡献
651
兑换币
696
注册时间
2014-1-22
在线时间
205 小时
毕业学校
高中
8#
 楼主| 发表于 2014-4-12 15:08:16 | 只看该作者
乘以小于1的数和除以大于一的数都不行
回复 支持 反对

使用道具 举报

15

主题

96

帖子

0

精华

高级会员

Rank: 4

积分
598
威望
292
贡献
146
兑换币
174
注册时间
2017-4-4
在线时间
80 小时
毕业学校
北大
9#
发表于 2017-4-24 09:21:07 | 只看该作者
有确切的解决方法吗 我们也遇到了这个问题,不知道改什么。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-24 04:20 , Processed in 0.049877 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表