智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1414|回复: 3
打印 上一主题 下一主题

官方的方案中角度控制极性问题

[复制链接]

5

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
威望
241
贡献
129
兑换币
133
注册时间
2012-12-8
在线时间
48 小时
毕业学校
四川理工学院
跳转到指定楼层
1#
发表于 2013-3-29 13:50:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void AngleControl(void) {
     float fValue;
     fValue=(CAR_ANGLE_SET-g_fCarAngle)*ANGLE_CONTROL_P+
            (CAR_ANGLE_SPEED_SET-g_fGyroscopeAngleSpeed)*ANGLE_CONTROL_D;      
     if(fValue>ANGLE_CONTROL_OUT_MAX)
         fValue=ANGLE_CONTROL_OUT_MAX;
     else if(fValue<ANGLE_CONTROL_OUT_MIN)
         fValue=ANGLE_CONTROL_OUT_MIN;
    g_fAngleControlOut = fValue;
}

在这个程序中,我的小车陀螺仪和加速度是用的一个运放的方案,融合过后的角度和加速度方向相反,那么fValue=(CAR_ANGLE_SET-g_fCarAngle)*ANGLE_CONTROL_P+(CAR_ANGLE_SPEED_SET-g_fGyroscopeAngleSpeed)*ANGLE_CONTROL_D;       这里该取加号还是减号啊。我试过使用减号时平稳些,但是会像一边慢慢偏过去,感觉就像零点偏向一边了一样,使用加号时也会有这样的现象,我测过陀螺仪等的输出,并没有偏移啊。问什么啊?各位大神!!


4

主题

43

帖子

0

精华

高级会员

Rank: 4

积分
611
威望
287
贡献
172
兑换币
175
注册时间
2012-11-18
在线时间
76 小时
毕业学校
安徽师范大学
2#
发表于 2013-3-29 14:50:42 | 只看该作者
同求
回复 支持 反对

使用道具 举报

17

主题

240

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2743
威望
1279
贡献
832
兑换币
711
注册时间
2012-10-19
在线时间
316 小时
3#
发表于 2013-5-9 15:52:05 | 只看该作者
哥们   解决没???   我的PD控制和P控制差别不大。而且感觉对它的理解牵涉到微分的作用弄清楚了对以后PD控制D的参数的设定有很大帮助。    我们现在调方向控制是又出现这种情况   速度一加大就很难控制,感觉像是PD参数不敏感了
交流下呗    关于PID的理解
回复 支持 反对

使用道具 举报

18

主题

1078

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3407

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
2126
贡献
81
兑换币
850
注册时间
2011-9-12
在线时间
600 小时
4#
发表于 2013-5-9 16:26:20 | 只看该作者
相反应该是减吧,慢慢向一边偏是因为陀螺仪有温漂
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 13:23 , Processed in 0.124530 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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