智能车制作

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

作者: Breakthrough    时间: 2012-5-9 12:52
标题: 求教吉他手老师和各位大神,我的车为什么一直站不起来,都调试了二个星期。
思路用的是官方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;
用上位机看图像如下。
[attach]24305[/attach]
红色:加速度计检测到的角度。
黄色:拟合后的角度
蓝色:陀螺仪检测到的角速度
紫色:给电机供电的电压。
  调试参数时,在Angle_Control_I=0情况下:Angle_Control_P给很小,直接倒下。给很大,震荡的很厉害。选定一个值后,静止放手,车向前倾角2-3°角,很奇怪的是此时电机没反应,没有驱动力,车有自由倒下的趋势,之后电机开始供电。此时若P选的大,车向前转的很快,马上车向后倾后直接倒下。若P选的小,车一边向前运动,一边向前倒,电机给的力不足以使车回正。最后放置电感的横梁与地接触,车推着横梁往前走。若P选的适中,车同样一边向前运动一边向前倒,只是倒的时间慢一点。
   在车一边往前走一边往前倒的情况下,猜测加上Angle_Contro_I之后应该会好些。I选的小时,没什么反应,I选的大时,车无法静止,在原点剧烈抖动后倒下。I适中时,车同样是先向前倒一定角度后,电机才开始起作用。
   通过上位机检测到的给电机供电电压图(紫色)可知,其跟随拟合后的角度(黄色)很好,原则上是不会出现滞后的现象,可是调试过程中这个先倒下一定角度电机开始反应的现象一直存在。请问吉他手老师这是怎么回事。
  角速度和角度信号检测电路采用官网2.0版本的电路,如下图。
[attach]24306[/attach]
   静止时检测到陀螺仪零点输出电压为2.42V,AD通道的转换精度为12位。按理来说,AD口检测到的数值应为2.42/3.3*4096=3003左右。实际上检测到的数值2000左右。即2.42/5*4096约等于2000;这是怎么回事。陀螺仪零点值是不太高?

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




作者: 奉有福    时间: 2012-5-9 13:01
我们的也是这样啊  ,我们搞了更久了。。。。
作者: Breakthrough    时间: 2012-5-9 13:05
你们的陀螺仪和加速度计是自己焊的还是买的成品?
我们用的是助赢成品块,感觉陀螺仪零点输出值太大,不知有没有什么方法降下来

作者: 惜缘人生    时间: 2012-5-9 13:28
我也有同样的问题,中间位置一直抖 ,你那ad应该是有可能是参考电压的问题。顶起来啊
作者: Breakthrough    时间: 2012-5-9 13:32
惜缘人生 发表于 2012-5-9 13:28
我也有同样的问题,中间位置一直抖 ,你那ad应该是有可能是参考电压的问题。顶起来啊

什么地方的参考电压,给陀螺仪的供电电压测试过,3.3V没问题么。你们车有没有倒下一定角度后,电机才开始工作。感觉信号检测模块检测信号有延迟。
作者: 惜缘人生    时间: 2012-5-9 13:43
单片机上ad转换的参考电压
作者: 惜缘人生    时间: 2012-5-9 13:44
1336836243 qq加下
作者: MLM    时间: 2012-5-9 16:20
吉他手老师没有出现
作者: lishenatsq    时间: 2012-5-9 16:45
波形有点滞后吧
作者: 吉他手    时间: 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀螺仪放大电路输出零点值设定为3.3/2=1.65V.
这样才能够保证角速度输出上下对称。你现在的电路零点值设为2V多,看一下你图中原有的蓝色(陀螺仪输出),是不是在陀螺仪输出上面已经限幅了?这样造成角度跟踪出现误差。
修改方法:第一种就是通过修改和调整R5,R6的比值,使得零点为1.65V.第二种方法就是将电路的R1,R2电阻改成10k,将放大电路放大倍数将为5倍,防止陀螺仪输出饱和;
第二个问题:是角度控制参数P,D(注意不是I)
这一点请仔细参加参考设计方案中对于车模传感器坐标系方向的定义。然后再根据参数整定视频进行调整。
P增大到足以克服车模倾倒趋势,直至发生震荡,然后通过增加D消除。

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


作者: Breakthrough    时间: 2012-5-9 18:36
吉他手 发表于 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀 ...

请问老师AD满量程电压怎么设置成3.3V。
作者: asxz    时间: 2012-5-9 18:36
吉他手 发表于 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀 ...

老师真是热情,手把手教~~不要辜负老师的一片好心~~

作者: 1251728075    时间: 2012-5-12 16:08
吉他手 发表于 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀 ...

老师你好我们已经调试了一辆车出来,但是在另一辆车上调试时,不知道哪个环节有问题,有以下几点疑问想请教一下老师
1,车在中心偏离了一个位置后就朝一个方向加速,这个位置很小,想加速度控制,但是似乎没有多大帮助,速度减不下来:
2,PD调节中的另一个问题是在D为零的情况下无论P加多大,也没有出现过抖动的情况:
3,我看过其它同学讨论的关于死区的问题,我也尝试把死区加大,但出现的问题我不知道怎样解释,死区加到一定的值(比较大),车模基本会在一点抖动(剧烈),调P,D值也没有把抖动消除,而且这个抖动直立的过程车站的时间比较长,将死去减小后减到某一定之后就会出现1,2所述的情况,我将陀螺仪角速度,加速度的角度和积分后的角度发出来发现在子情况下图形很混乱。

作者: 吉他手    时间: 2012-5-12 16:18
1251728075 发表于 2012-5-12 16:08
老师你好我们已经调试了一辆车出来,但是在另一辆车上调试时,不知道哪个环节有问题,有以下几点疑问想请 ...

...................1,车在中心偏离了一个位置后就朝一个方向加速,这个位置很小,想加速度控制,但是似乎没有多大帮助,速度减不下来:
如果不增加速度控制,只是角度控制,是无法避免车模往一个方向加速运动的。如果加了速度控制还无法解决。建议对于车模的传感器的零点做进一步的整定;
2,PD调节中的另一个问题是在D为零的情况下无论P加多大,也没有出现过抖动的情况:
在角度控制的时候如果P过大,会使得车模震动(摆动),这里指的是频率为几个赫兹的震动。抖动是加上D之后,出现的车模车体共振,频率为几十个赫兹的震动。P很大的时候,车模出现摆动是由于控制中的非线性引起的。如果车模本身在静止状态下,角度很小的情况下(控制始终处于线性状态)则不会出现摆动。只有车模在前后出现比较大的倾角的时候才会出现。
3,我看过其它同学讨论的关于死区的问题,。。。。。。
死区可以不用加,只是在车模静止时,不加死区控制会使得车模会出现前后的小的移动。这一点不会影响车模高速运行。

作者: wangjuanjk    时间: 2012-5-12 16:19
吉他手 发表于 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀 ...

老师您好,我的车,波形滤出来很好了,但是加P,很小的时候(0.025)就会出现左右摆动,然后加D,但是感觉车反应慢,没有力。这是怎么回事啊,谢谢啊!
作者: 吉他手    时间: 2012-5-12 16:24
wangjuanjk 发表于 2012-5-12 16:19
老师您好,我的车,波形滤出来很好了,但是加P,很小的时候(0.025)就会出现左右摆动,然后加D,但是感觉 ...

你的问题:
如果P很小,是无法保证车模直立的。必须大于某一阈值之后才能够维持车模直立。
你现在存在的问题还是有可能出现在角度计算上。
没有将加速度中存在的车模运动噪声滤掉(这部分噪声会引起车模角度控制的正反馈)。
如果现在你采用的参考方案中的滤波方案,请先按照其中的参数给定进行调整。

作者: wangjuanjk    时间: 2012-5-12 16:28
吉他手 发表于 2012-5-12 16:24
你的问题:
如果P很小,是无法保证车模直立的。必须大于某一阈值之后才能够维持车模直立。
你现在存在的 ...

[attach]24427[/attach]l
老师您看下我们的波形图嘛,P很小就出现摆动!

作者: 吉他手    时间: 2012-5-12 16:33
wangjuanjk 发表于 2012-5-12 16:28
l
老师您看下我们的波形图嘛,P很小就出现摆动!

从上述你的角度输出信号来看,角度计算波形都很正常。
那么就可以增大P去调试即可。首先保证车模能够有力量站立。
然后通过增加D使得车模角度不再出现摆动。直至D增加到,车模出现高频的振动(十几赫兹频率),然后逐步在优化他们的组合。

作者: wangjuanjk    时间: 2012-5-12 16:59
吉他手 发表于 2012-5-12 16:33
从上述你的角度输出信号来看,角度计算波形都很正常。
那么就可以增大P去调试即可。首先保证车模能够有力 ...

老师您好,我们的车P很小的时候(0.03),就会出现摆动,但是又没有力让它直立。越大越摆动!

作者: 奔驰飞思卡尔    时间: 2012-6-4 10:02
吉他手 发表于 2012-5-12 16:33
从上述你的角度输出信号来看,角度计算波形都很正常。
那么就可以增大P去调试即可。首先保证车模能够有力 ...

[attach]25429[/attach]
你好老师,黄色为Z轴输出,蓝色为积分以后的值,前边可以跟踪的上,后面跟踪不上,怎么回事。我们用的是陀螺仪模块,现在没加速度控制,结果车往没跟踪上的方向加速,最后倒下,这个怎么解决啊老师

作者: SPRINGSKY    时间: 2012-6-4 10:56
吉他手 发表于 2012-5-9 16:48
第一个问题:陀螺仪放大器输出零点值。
如果这部分放大电路电压以及单片机AD满量程电压都是3.3V.就需要将陀 ...

吉他手老师,您好,我们的单片机AD满量程是5V,陀螺仪是3.3V供电,参考电压应该怎么调呢?是5/2还是3.3/2?我们一直用3.3/2。现在车已经再跑了,但是一顿一顿的,弯道貌似影响不大,但是直道特明显。
作者: renqinglei    时间: 2012-6-4 12:06
我也遇到了问题,如果P小了,电机力矩太小,跟不上。如果P大了,小车在零点左右摆动较大,怎么解决呢?
作者: 5768340    时间: 2012-6-4 12:07
吉他手 发表于 2012-5-12 16:33
从上述你的角度输出信号来看,角度计算波形都很正常。
那么就可以增大P去调试即可。首先保证车模能够有力 ...

老师你好,我们的小车可以跑了,现在遇到一个很棘手的问题,车在跑的过程中毫无征兆的就趴下了,但速度低了就不会(1m),望老师指点一二。

作者: 卧听南窗雨    时间: 2013-8-6 17:27
renqinglei 发表于 2012-6-4 12:06
我也遇到了问题,如果P小了,电机力矩太小,跟不上。如果P大了,小车在零点左右摆动较大,怎么解决呢?

我的问题和你一样,请问你解决了吗?





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2