智能车制作

标题: 飞思卡尔单轴两轮平衡车制作经验交流,附资料,实时更新 [打印本页]

作者: 心_如止水    时间: 2012-4-3 14:02
标题: 飞思卡尔单轴两轮平衡车制作经验交流,附资料,实时更新
本帖最后由 心_如止水 于 2012-4-3 14:08 编辑

                       辛苦了大概两个多月,之前一直都调不好。中间也遇到了很多的问题,但当问题解决后每次都是重大的突破。现在就介绍一下,制作过程中遇到的问题。
                        1、关于加速度计的转换系数
                        要制作自平衡车,角度和角速度的计算就很重要。关于加速度计和陀螺仪的使用就不多说了,他们一个用来测加速度计,一个用来测角速度。
                        把从加速度计读出来的数据转换成角度,要乘以一个比例系数。在转换成角度角度的过程中,可以完全不用三角函数(因为车的倾角其实不会超过正负10度,后面会提到),直接把(最大值-最小值)/90(/2如果有正负的话)作为比例系数就可以了(这样可以和真实角度比较)。其实理论上这个比例系数是什么都可以,因为后面陀螺仪转换系数是根据加速度计的转换比例系数跳出来的,所以加速度计的比例系数无论是什么值都没有影响。
               
                        2、关于陀螺仪转换系数
                        陀螺仪的转换系数需要根据滤波的波形来调(我是在飞思卡尔公布的官方方案中看到的,经实践千真万确),陀螺仪的转换系数不用去算,只需要通过看波形去调就可以了,直到不超调也不滞后就可以了,具体的可以看附件官网方案中的93页(第二版)。
               
                         3、关于滤波
                         角度滤波有很多方案,我所知道的是互补滤波、官网的方案和卡尔曼滤波,我的感想是什么滤波都不重要,重要的是参数要调好。

                        互补滤波:这是很简单也很实用的方法,其实和官网的方案有一点类似的地方,在网上有一个很著名的20页的PPT文件The Balance Filter,介绍的是互补滤波,相信大家看了之后都会明白的。在文件中,作者把高通滤波系数a和时间常数T(涛,不知道怎么打出来)及采样周期dt用一个公式建立了联系,而我的经验是,我们不要用这个公式去计算。高通滤波系数取0.98(不能比0.98再小了,会不平滑),采样周期根据你程序的需要是多少就多少(5ms的效果会比10ms好很多,越小越好),滤波可以通过调陀螺仪的转换系数达到很好的效果。也就是说,用互补滤波的关键调试参数是陀螺仪转换系数,把加速度计转换系数、高通滤波系数和采样周期定好之后,只需要调试陀螺仪转换系数就可以达到满意的效果了
                       PS:互补滤波的效果一定不差,我看过网上用互补滤波和单纯的P控制达到很好的效果的。

                       官网滤波方案:我总觉得官网的和互补滤波有些相似,经实验,效果也是很好的。具体的公式在参考方案里面也有。调试的关键就是陀螺仪转换系数。

                       卡尔曼滤波:一直没用过,也不会用,主要是没弄懂。我不喜欢用一知半解的东西,因为出现问题的时候排查不出来或者不知道怎么解决问题。网上也有很多卡尔曼滤波的程序,因为一直看不懂,就连试也没试。如果会用的话,效果应该是好的,但我不会用。如果有谁用兴趣的话还请多多指教,互相交流一下。

                       4、关于控制
                       当然有再好的角度和角速度控制不好的话也是站不好的。控制就用一般的PID控制,PWM=P*角度+D*角速度,这里没用积分控制,效果已经很好了。
                       在官网的方案中,还加上了死区电压,我的最大的体会就是,这个死区电压是可以不要的,而且不要更好(或者去一个小一点的值)。
                       这样的话就要把P调的很大。具体是多大呢,至少是电机满值的十分之一(五分之一甚至三分之一都是没问题的),例如电机最大输出是1的话,P取0.1、0.2、0.3都是没问题的(官网的方案好像是取的0.3),如果点击最大输出是5000的话,那么P取500、1000、1500都是可以的,(当然前提是加速度计转换系数转换出来的角度值和真实值相当,否则另当别论)。所以车模的角度应该不会超过正负十度,因为当P=0.3的时候,车模有三度多的偏差时电机就满电压输出了。我之前就是一直用一个很小的P去调,原来所有的问题就在于把P调大就可以了。
                       至于D的话,大概在P的七十分之一或八十分之一之间都是可以有很好的效果的。这个关系就和加速度转换系数没有关系了。比如官网中P=0.3则D=0.3*1/75=0.004,在我这里P=1000,则D=1000*1/75=13.3,效果都是很好的。PS:这个关系只是在车模静止平衡时的关系,行进中的关系我还没有实验过。
                              
                        附官网车模调试录像资料
                        调试指南
                           http://v.youku.com/v_show/id_XMzUzMzE1MDI4.html
                           多车演示
                           http://v.youku.com/v_show/id_XMzUyNTQyNjM2.html
                           调试全过程
                           http://v.youku.com/v_show/id_XMzUyNTUwOTI0.html


                        5、说明
                      (1)陀螺仪的过冲是一个严重问题,高通滤波的那个电容是不可取的,要把它去掉才好。
                      (2)每一步都是关键,要真正理解原理才会知道怎么调,还有各个参数的极性要设置好。
                      (3)欢迎交流

                        下一步打算把速度控制加上,谁有好的又不是很贵的编码器可以推荐下,谢谢!

                         [attach]22014[/attach]
                         [attach]22013[/attach]




作者: youmin90s    时间: 2012-4-3 14:25
顶个
作者: canyuerudaochao    时间: 2012-4-3 14:38
控制周期短一点的话  一个P就可以很好
作者: 林夕22    时间: 2012-4-3 15:21
楼主分析得很全面啊
作者: ilyht    时间: 2012-4-3 16:54

作者: sweetgum    时间: 2012-4-3 17:08
楼主分析得很不错,收获不小,能留下QQ号么,好请教大虾,现在在滤波这块问题较多
作者: 心_如止水    时间: 2012-4-3 18:03
sweetgum 发表于 2012-4-3 17:08
楼主分析得很不错,收获不小,能留下QQ号么,好请教大虾,现在在滤波这块问题较多

847191096@qq.com,也可以用邮箱讨论交流
作者: sweetgum    时间: 2012-4-3 20:37
心_如止水 发表于 2012-4-3 18:03
847191096@qq.com,也可以用邮箱讨论交流

真心好贴,就是发现得太晚了,用了卡尔曼,官网的都没站起来,换了这个就站了起来,真心感谢楼主
作者: hanfei69882    时间: 2012-4-3 21:53
楼主好猛,顶了
作者: baizhu145    时间: 2012-4-3 21:57
我已经改得比较大了,开始几秒还好,后面抖动越来越大,直到倒下
求楼主大神指导啊!!我已经纠结好久了
作者: a959845298    时间: 2012-4-3 22:01
感谢
作者: a959845298    时间: 2012-4-3 22:12
很有奉献 精神o、、力挺、、这样的人好少ooo/
作者: yssdsz    时间: 2012-4-3 22:23
互补。。好。。多谢LZ分享!~{:soso_e183:}
作者: 月光疾风    时间: 2012-4-4 09:20
感谢楼主分享,强大~
作者: wuchao1235    时间: 2012-4-5 21:28
顶一个,,很不错。适合新手
作者: fshunj    时间: 2012-4-5 22:25
标记一下
作者: 流浪花    时间: 2012-4-6 08:41
厉害
作者: 5768340    时间: 2012-4-6 09:11

作者: erchowyo    时间: 2012-4-6 13:56
怎样实现平衡后的转弯呢,一直没有思路,不知该怎样把直立控制和磁场方向控制联系到一起,本人没有用编码器。不知能不能实现。大家有什么好方案
作者: 元锋    时间: 2012-4-6 14:36
学习
作者: 心_如止水    时间: 2012-4-7 00:10
erchowyo 发表于 2012-4-6 13:56
怎样实现平衡后的转弯呢,一直没有思路,不知该怎样把直立控制和磁场方向控制联系到一起,本人没有用编码器 ...

应该可以的,我今晚试了一下,就按官网上方向控制的方法做,效果也不错

作者: erchowyo    时间: 2012-4-7 11:30
心_如止水 发表于 2012-4-7 00:10
应该可以的,我今晚试了一下,就按官网上方向控制的方法做,效果也不错

谢了,我试试看

作者: wuruijie1990    时间: 2012-4-12 22:40
顶个。唉。纠结
作者: め★海诺依☆    时间: 2012-4-27 11:08
LZ真强大
作者: 我の小车    时间: 2012-4-27 20:25
继续
作者: 张且且    时间: 2012-6-11 17:17
为什么在车模静止的时候,采集到的角度信号会有波动呢??比如1995-2004之间波动,属于正常吗?
作者: 心_如止水    时间: 2012-6-11 20:21
张且且 发表于 2012-6-11 17:17
为什么在车模静止的时候,采集到的角度信号会有波动呢??比如1995-2004之间波动,属于正常吗?

是正常的,你看到的静止可能并不是真的静止,而且电路可能有外界其他的干扰,所以AD采样值有一点变化是可以的
作者: chenkai    时间: 2012-6-11 21:14
马克
作者: Smile_Sun    时间: 2012-6-13 17:07
{:soso_e179:}
作者: Smile_Sun    时间: 2012-6-13 17:07
好东西
作者: ☆帅气★_べ    时间: 2012-7-15 11:26

作者: xhuan1    时间: 2012-7-15 12:01
早看到楼主的帖,前面调的就不会那么费事了
作者: wgl0222    时间: 2012-7-28 11:41
感谢楼主分享经验。谢谢!
作者: NOLA    时间: 2012-8-30 11:07
好东西!
作者: 尘心远    时间: 2012-9-2 00:13
感谢分享你们的劳动成果
作者: liuyude    时间: 2012-12-5 09:36
讲得很好。
作者: 柒枫    时间: 2012-12-19 00:00
顶、

作者: 卢森堡    时间: 2012-12-30 17:12
ok  谢谢
作者: liuyuliuyu1216    时间: 2012-12-31 15:36
谢谢分享
作者: 一般312    时间: 2013-1-26 11:48
楼主 可以推荐一下 速度控制的P I之间的大小关系
直立控制的P D大小关系真好用
作者: chenyuchenyu    时间: 2013-3-28 10:45

作者: liuqifw2010    时间: 2013-3-29 11:09

作者: wkhuahuo    时间: 2013-4-2 21:20
顶你!!~
作者: 雨过枫吟    时间: 2013-8-24 01:46
楼主用什么电机啊
作者: szsgzn    时间: 2013-10-26 21:16
顶个
作者: 彼岸花开洒落    时间: 2013-10-30 19:33

作者: szsgzn    时间: 2013-11-18 08:41
没有编码器小车不知道能不能站稳。用角度控制。
作者: rascalmouse    时间: 2013-12-1 10:51

作者: 897085165    时间: 2015-4-30 20:53
像你说的那样给p,d为什么会非常震荡,
作者: xuzhicong728    时间: 2015-8-3 12:40
顶顶顶顶顶顶顶顶顶
作者: 静待烟花美    时间: 2015-8-7 09:33
和楼上的问题一样




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