智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 15239172008
打印 上一主题 下一主题

[咨询] 再探小车的直立

  [复制链接]

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
11#
 楼主| 发表于 2012-6-29 06:56:21 | 只看该作者
yssdsz 发表于 2012-6-28 22:58
看你的角度还不错,应该没问题。就是滤出来的角度和加速度酸的角度怎么有那么大一个差值???

这个我知道,那是因为陀螺仪的零偏置与真实零偏置存在差距,导致陀螺仪积分飘逸往上或往下所致。每次开机还要校正一下角度偏移值,陀螺仪惹得祸。
回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
12#
 楼主| 发表于 2012-6-29 07:03:45 | 只看该作者
dlzhouyuan 发表于 2012-6-28 23:40
抖动不单单是因为D小了,D小了小车前后晃,就跟角度有延迟的感觉一样,D大了小车开始震动,频率较高,不知你 ...

问题就出在这里,D参数小了不能抑制p参数的抖动,一点点地调大D,可是还没把P参数带来的抖动抑制掉,d自身又带来了震动,似乎我这个陀螺仪没有起到真正抑制抖动的作用,也不知道是怎么回事
回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
13#
 楼主| 发表于 2012-6-29 07:09:15 | 只看该作者
仰望星空1 发表于 2012-6-28 23:11
看你的波形滤出的角度和陀螺仪的纸都没有太大的问题(个人感觉)你调直立的时候记住,单纯的角度控制是不可 ...

没错,只要小车静止不抖动,都可以,以后往一个方向跑可以用速度闭环,或是改动平衡角度零偏值,可是我们就是无法让它不抖动,各个p,d都试了,还是抖动。我看整定的角度也没问题了,可还是没有消除抖动,说明这里面一定存在问题,但是这个抖动毛病的症结在哪个地方呢???
回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
14#
 楼主| 发表于 2012-6-29 07:15:07 | 只看该作者
GTR1113 发表于 2012-6-29 03:58
首先,看你的滤波图形,貌似还可以,但是黄色的和蓝色的有一个差值,这是你的陀螺仪在静止时的输出值减去OF ...

啥也不管了,给大家看看我的代码,请多指教。
  1. get_z_acceleration();
  2.      z=(z_axis>>2)*0.021972;
  3.    
  4.      gyroscope_conver_angle();
  5.      true_angle=(1-delta)*(true_angle+angular_velocity)+delta*z;
  6.      angle_delta=true_angle-angle_offset;           /////////////
  7.      
  8.      n=read_counter();
  9.      clear_counter;
  10.      if(f_right_motor<0)    {  speed=n*-1;}
  11.      else speed=n;
  12.      speed_delta=speed_offset-speed;
  13.      speed_integral+=speed_delta*i_speed;
  14.      if(speed_integral>1)    {speed_integral=1;}
  15.      if(speed_integral<-1)   {speed_integral=-1;}
  16.      
  17.      f_speed_control=speed_delta*p_speed+speed_integral;
  18.      
  19.      
  20.      f_angle_control=p_angular*angle_delta+d_angular*angular_velocity;
  21.      
  22.      f_electromagnetism=get_electromagnetic_signal()*p_electromagnetic_parameter ;
  23.      
  24.      f_left_motor=f_angle_control-f_speed_control;
  25.      f_right_motor=f_angle_control-f_speed_control;
复制代码


回复 支持 反对

使用道具 举报

4

主题

400

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
威望
989
贡献
361
兑换币
162
注册时间
2012-1-31
在线时间
148 小时
15#
发表于 2012-6-29 10:28:14 | 只看该作者
你用的什么滤波
回复 支持 反对

使用道具 举报

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

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

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
16#
发表于 2012-6-29 10:50:06 | 只看该作者
15239172008 发表于 2012-6-29 07:15
啥也不管了,给大家看看我的代码,请多指教。

提醒一下:
(1)如果检查完软件没有什么问题的话,请再检查一下硬件电路和机械部分:
         A.对于陀螺仪放大电路是否放大倍数过大,在车模角速度比较大的时候,出现信号饱和。这样D参数就会无法完全抑制车模的前后的摆动。检查方法:通过示波器看陀螺仪在车模前后摆动是否出现信号饱和。适当降低陀螺仪放大倍数(比如降低到5倍或者更低)可以解决饱和问题;
        B.陀螺仪放大电路是否中心点不在电源电压的中心位置,如果偏移很大,则会影响陀螺仪信号的动态范围,会产生一个方向的饱和。通过调整放大电路的偏置电阻可以调整陀螺仪放大信号的中心点;
        C.陀螺仪安防的位置,与车体是否牢固。方向是否水平;
        D.车轮机械传动部分是否存在比较大的静态摩擦力,或者传动间隙。这些都会影响车模稳定控制。
(2)软件部分请检查一下:
        .各参数零点是否准备调零了;
        .直立控制参数P是否过大了,如果P过大了,D是无法完全消除车模的抖动和震动的。毕竟车模本身不是一个刚体。
(3)调试顺序。再调直立过程中,将速度控制和方向控制运算完全去除,避免它们对于车模直立的影响。

总之,将调试的思路放开,不要一条道走到黑。真心的告诉你,车模直立控制其实很容易的。
祝你早日实现车模的直立控制。

回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
17#
 楼主| 发表于 2012-6-29 12:20:33 | 只看该作者
chillms91 发表于 2012-6-29 10:28
你用的什么滤波

用的是清华的互补滤波。
回复 支持 反对

使用道具 举报

38

主题

1651

帖子

0

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
8770
威望
4444
贡献
2638
兑换币
1818
注册时间
2010-12-29
在线时间
844 小时
18#
发表于 2012-6-29 12:30:00 | 只看该作者
如果你真的想从科学精神的角度来分析为什么会抖动,
你可以轻轻翻开《自动控制原理》,
按照上面的方法写出传递函数,
对小车建模,
求微分方程的解,
观察解的特点。。。。。。。。。。。
回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
19#
 楼主| 发表于 2012-6-29 12:50:06 | 只看该作者
本帖最后由 15239172008 于 2012-6-29 12:53 编辑
吉他手 发表于 2012-6-29 10:50
提醒一下:
(1)如果检查完软件没有什么问题的话,请再检查一下硬件电路和机械部分:
         A.对于 ...

吉他手老师的建议总是这么精辟深刻!
我会按照老师的建议逐条检查的,我准备再做一块陀螺仪模块,仔细探究一下。
1,应该不是p参数的问题,我现在设置的p要是再小,车就立不起来了。把p参数稍稍调大一点,可无论怎么调d,都无法让它停止抖动,问题可能就出在这儿。
2,陀螺仪的自由机械振动,我们也关注过,已经把它牢牢地固定在主控板上了,主控板和车体也固定牢了,还有上车体与下车体也十分关注地固定为一体了。
3,车轮上的静态摩擦应该不会有,我刚刚试了下,两个轮子我用手前后转动都非常自如,这一块没问题。
陀螺仪输出饱和我认为提的很好,是一个思考的方向。
4,我有意识地把p参数取一个大小合适的值,并不是太大,所以抖动也不是来自这里,应该不是p的问题。
5,个参数零偏置我们都矫正过,零偏置不会遗留抖动。
6,在调平衡的时候,我就是把速度,电磁控制的参数全部设为0,以保证他们不会对本不是平衡那么好的车再产生干扰,控制变量法我初中就神会到它的妙处,所以也不是速度,电磁的干扰。
吉老师,我看调试手册上放大倍数选的是10倍,也可以选5倍,哪个好一点呀,我准备重整军容,再做一块。
综上所述,会往以下下方向努力:
1,再次购买陀螺仪,按照清华电路重新做一块陀螺仪模块儿。
2,注意陀螺仪输出,坚决不能有输出饱和(这样的话应该是选放大倍数为5吧?)、
3,积极和论坛上的“过来人”交流,讨论,学习。

回复 支持 反对

使用道具 举报

9

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1044
威望
548
贡献
340
兑换币
4
注册时间
2011-11-18
在线时间
78 小时
20#
 楼主| 发表于 2012-6-29 12:53:03 | 只看该作者
yukunlinykl 发表于 2012-6-29 12:30
如果你真的想从科学精神的角度来分析为什么会抖动,
你可以轻轻翻开《自动控制原理》,
按照上面的方法写 ...

我只想对你说,
在这个躁动的社会你不要讲话讲的那么慢条斯理,等你把那东西弄出来,黄花菜都凉了!

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 14:09 , Processed in 0.050844 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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