智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6199|回复: 23
打印 上一主题 下一主题

[咨询] 求教吉他手老师和各位大神,我的车为什么一直站不起来,都调试了二个星期。

  [复制链接]

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
威望
219
贡献
80
兑换币
0
注册时间
2012-2-15
在线时间
22 小时
毕业学校
长安大学
跳转到指定楼层
1#
发表于 2012-5-9 12:52:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
思路用的是官方2.0版本。下面是角度计算函数;
void AngleCalculate(void)
{
  float fDeltaValue,Az,Gyro;  
   g_fGravityAngle=(Acc_Z_7260-Acc_Z_Zero)*1.*180/(Acc_Z_Max-Acc_Z_Min);
   OutData[0]=g_fGravityAngle*30;               //上位机输出用
   Gyro=(GYRO_VAL_en03-Gyro_Zero);
   OutData[2]=Gyro*3;                             //上位机输出用            
   g_fGyroscopeAngleSpeed=Gyro*0.3882;  
   g_fCarAngle=g_fGyroscopeAngleIntegral;
   fDeltaValue=(g_fGravityAngle-g_fCarAngle)/3;
   g_fGyroscopeAngleIntegral+=(g_fGyroscopeAngleSpeed+fDeltaValue)*0.005;
   OutData[1]=(g_fGyroscopeAngleIntegral-setnum[10])*30;      //上位机输出用
  }

初始化时 给g_fGyroscopeAngleIntegral 赋初值0;
用上位机看图像如下。

红色:加速度计检测到的角度。
黄色:拟合后的角度
蓝色:陀螺仪检测到的角速度
紫色:给电机供电的电压。
  调试参数时,在Angle_Control_I=0情况下:Angle_Control_P给很小,直接倒下。给很大,震荡的很厉害。选定一个值后,静止放手,车向前倾角2-3°角,很奇怪的是此时电机没反应,没有驱动力,车有自由倒下的趋势,之后电机开始供电。此时若P选的大,车向前转的很快,马上车向后倾后直接倒下。若P选的小,车一边向前运动,一边向前倒,电机给的力不足以使车回正。最后放置电感的横梁与地接触,车推着横梁往前走。若P选的适中,车同样一边向前运动一边向前倒,只是倒的时间慢一点。
   在车一边往前走一边往前倒的情况下,猜测加上Angle_Contro_I之后应该会好些。I选的小时,没什么反应,I选的大时,车无法静止,在原点剧烈抖动后倒下。I适中时,车同样是先向前倒一定角度后,电机才开始起作用。
   通过上位机检测到的给电机供电电压图(紫色)可知,其跟随拟合后的角度(黄色)很好,原则上是不会出现滞后的现象,可是调试过程中这个先倒下一定角度电机开始反应的现象一直存在。请问吉他手老师这是怎么回事。
  角速度和角度信号检测电路采用官网2.0版本的电路,如下图。

   静止时检测到陀螺仪零点输出电压为2.42V,AD通道的转换精度为12位。按理来说,AD口检测到的数值应为2.42/3.3*4096=3003左右。实际上检测到的数值2000左右。即2.42/5*4096约等于2000;这是怎么回事。陀螺仪零点值是不太高?

希望卓晴老师和各位牛人给出指导,跪谢。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

20

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
威望
639
贡献
196
兑换币
10
注册时间
2011-12-27
在线时间
128 小时
2#
发表于 2012-5-9 13:01:19 | 只看该作者
我们的也是这样啊  ,我们搞了更久了。。。。
回复 支持 反对

使用道具 举报

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
威望
219
贡献
80
兑换币
0
注册时间
2012-2-15
在线时间
22 小时
毕业学校
长安大学
3#
 楼主| 发表于 2012-5-9 13:05:42 | 只看该作者
你们的陀螺仪和加速度计是自己焊的还是买的成品?
我们用的是助赢成品块,感觉陀螺仪零点输出值太大,不知有没有什么方法降下来
回复 支持 反对

使用道具 举报

9

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
355
贡献
144
兑换币
2
注册时间
2012-3-14
在线时间
48 小时
毕业学校
南京晓庄学院
4#
发表于 2012-5-9 13:28:42 | 只看该作者
我也有同样的问题,中间位置一直抖 ,你那ad应该是有可能是参考电压的问题。顶起来啊
回复 支持 反对

使用道具 举报

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
威望
219
贡献
80
兑换币
0
注册时间
2012-2-15
在线时间
22 小时
毕业学校
长安大学
5#
 楼主| 发表于 2012-5-9 13:32:42 | 只看该作者
惜缘人生 发表于 2012-5-9 13:28
我也有同样的问题,中间位置一直抖 ,你那ad应该是有可能是参考电压的问题。顶起来啊

什么地方的参考电压,给陀螺仪的供电电压测试过,3.3V没问题么。你们车有没有倒下一定角度后,电机才开始工作。感觉信号检测模块检测信号有延迟。
回复 支持 反对

使用道具 举报

9

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
355
贡献
144
兑换币
2
注册时间
2012-3-14
在线时间
48 小时
毕业学校
南京晓庄学院
6#
发表于 2012-5-9 13:43:10 | 只看该作者
单片机上ad转换的参考电压
回复 支持 反对

使用道具 举报

9

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
355
贡献
144
兑换币
2
注册时间
2012-3-14
在线时间
48 小时
毕业学校
南京晓庄学院
7#
发表于 2012-5-9 13:44:56 | 只看该作者
1336836243 qq加下
回复 支持 反对

使用道具 举报

12

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
920
QQ
威望
610
贡献
188
兑换币
0
注册时间
2011-9-7
在线时间
61 小时
8#
发表于 2012-5-9 16:20:32 | 只看该作者
吉他手老师没有出现
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1013
威望
459
贡献
220
兑换币
15
注册时间
2012-3-29
在线时间
167 小时
9#
发表于 2012-5-9 16:45:01 | 只看该作者
波形有点滞后吧
回复 支持 反对

使用道具 举报

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

论坛骨干奖章优秀会员奖章技术大牛奖章

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
10#
发表于 2012-5-9 16:48:41 | 只看该作者
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀螺仪放大电路输出零点值设定为3.3/2=1.65V.
这样才能够保证角速度输出上下对称。你现在的电路零点值设为2V多,看一下你图中原有的蓝色(陀螺仪输出),是不是在陀螺仪输出上面已经限幅了?这样造成角度跟踪出现误差。
修改方法:第一种就是通过修改和调整R5,R6的比值,使得零点为1.65V.第二种方法就是将电路的R1,R2电阻改成10k,将放大电路放大倍数将为5倍,防止陀螺仪输出饱和;
第二个问题:是角度控制参数P,D(注意不是I)
这一点请仔细参加参考设计方案中对于车模传感器坐标系方向的定义。然后再根据参数整定视频进行调整。
P增大到足以克服车模倾倒趋势,直至发生震荡,然后通过增加D消除。

如果此区间有死区(就是车模倾斜某个小角度,电机不懂,),可以通过增加输出电机死区来解决。具体方法仍然在参考设计指南中。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 06:08 , Processed in 0.595590 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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