智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2358|回复: 4
打印 上一主题 下一主题

[软件类] 清华方案,速度控制的输出一直变小,求大神帮主啊,,吉他手老师求助啊!万分感谢

[复制链接]

5

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
572
威望
324
贡献
164
兑换币
8
注册时间
2012-4-10
在线时间
42 小时
毕业学校
大连东软
跳转到指定楼层
1#
发表于 2012-4-11 08:26:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SpeedControl(void) {
    float fDelta;
    float fP, fI;
    g_fCarSpeed = (g_nLeftMotorPulseSigma + g_nRightMotorPulseSigma) / 2;
    g_nLeftMotorPulseSigma = g_nRightMotorPulseSigma = 0;
    g_fCarSpeed *= CAR_SPEED_CONSTANT;
   fDelta = CAR_SPEED_SET;
   fDelta -= g_fCarSpeed;
    fP = fDelta * SPEED_CONTROL_P;
    fI = fDelta * SPEED_CONTROL_I;

    g_fSpeedControlIntegral += fI;
    if(g_fSpeedControlIntegral > SPEED_CONTROL_OUT_MAX)
      g_fSpeedControlIntegral = SPEED_CONTROL_OUT_MAX;
    if(g_fSpeedControlIntegral < SPEED_CONTROL_OUT_MIN)   
      g_fSpeedControlIntegral = SPEED_CONTROL_OUT_MIN;
    g_fSpeedControlOutOld = g_fSpeedControlOutNew;
    g_fSpeedControlOutNew = fP + g_fSpeedControlIntegral;
}
void SpeedControlOutput(void) {
    float fValue;
    fValue = g_fSpeedControlOutNew - g_fSpeedControlOutOld;
    g_fSpeedControlOut = fValue * (g_nSpeedControlPeriod + 1) / SPEED_CONTROL_PERIOD + g_fSpeedControlOutOld;
}
void GetMotorPulse(void) {
unsigned int nLeftPulse, nRightPulse;

COUNTER1_GetNumEvents(&nLeftPulse);
COUNTER2_GetNumEvents(&nRightPulse);
COUNTER1_Reset();
COUNTER2_Reset();

g_nLeftMotorPulse1 = (int)nLeftPulse;
g_nRightMotorPulse1 = (int)nRightPulse;
if(!(g_nLeftMotorPulse1>0))  g_nLeftMotorPulse1 = -g_nLeftMotorPulse1;
if(!(g_nRightMotorPulse1>0))  g_nRightMotorPulse1 = -g_nRightMotorPulse1;
  
g_nLeftMotorPulseSigma += g_nLeftMotorPulse1;
g_nRightMotorPulseSigma += g_nRightMotorPulse1;
}


各位大神教教小弟这个的参数应该怎么调!

4

主题

58

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
525
贡献
118
兑换币
6
注册时间
2011-1-9
在线时间
64 小时
2#
发表于 2012-6-13 12:05:54 | 只看该作者
兄弟啊!我的也是啊!你怎么解决的啊?是哪里出问题了吗?求赐教……
回复 支持 反对

使用道具 举报

4

主题

58

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
525
贡献
118
兑换币
6
注册时间
2011-1-9
在线时间
64 小时
3#
发表于 2012-6-13 15:06:40 | 只看该作者
求指导,求指导啊……
回复 支持 反对

使用道具 举报

7

主题

118

帖子

0

精华

高级会员

Rank: 4

积分
737
威望
374
贡献
173
兑换币
0
注册时间
2012-2-27
在线时间
95 小时
4#
发表于 2012-6-13 18:40:05 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
威望
257
贡献
77
兑换币
38
注册时间
2012-3-4
在线时间
39 小时
毕业学校
河北大学
5#
发表于 2012-7-11 17:05:40 | 只看该作者

COUNTER1_GetNumEvents(&nLeftPulse);
COUNTER2_GetNumEvents(&nRightPulse);
COUNTER1_Reset();
COUNTER2_Reset();这几句是啥意思啊大神,求指教

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-4 11:01 , Processed in 0.143977 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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