5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 3593|回复: 33
打印 上一主题 下一主题

AHRS温飘越来越严重

[复制链接]
跳转到指定楼层
楼主
发表于 2011-5-19 21:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天飞X650,刚开始1-2分钟还好,接下来就老是向左飘,而且飘的速度逐渐加大。回来后先校准AHRS然后进行测试,发现横滚的角度在700秒内增加了2.4°,原来是有一点温飘的,最多也就是0.5°,现在居然有2.4°,请X大解释一下AHRS是否老化了,难道寿命就这么短吗?:em17:

欢迎继续阅读楼主其他信息

34
发表于 2011-5-24 17:28 | 只看该作者
:em26:
33
发表于 2011-5-24 13:19 | 只看该作者

是这样的话,那应该可以这么分析

我认为问题的关键在于时间,而不在于温度。楼主你注意到的只是一个温度的变化,从27°到33°。实际上你可以测试从上电到陀螺仪输出角度误差2.4°这个过程所需的时间(我们先假设是3分钟),我估计不管在什么温度条件下,只要开机时间达到了“3分钟”,那么陀螺的输出误差都会是是2.4°左右。
如果楼主实测的结果就如我上面所说,那么问题的关键就在于算法中对陀螺角速度积分的处理了,简单点讲,角度=时间X角速度,这就要看算法中这个时间是怎么处理的了,不同的处理方法会导致不同的累积误差。
下面我举个例子,希望楼主能理解。陀螺仪都存在随机游走这个指标,简单的说就是每秒随机偏差多少度,我们现在假设这个随机游走的波形是个周期为6分钟的正弦波,然后AD对陀螺仪的输出进行采样,在正弦波的前半个周期(就是3分钟)内,AHRS的输出误差就是3分钟内的累积采样误差,共计2.4°。
当然,我举的例子是最简单的例子,实际上算法里会对各种游走值做处理,但是处理效果就不知道如何了。
另外,X650上对加速度值的处理也是很关键的,从很多模友反应的情况来看,X650存在“当四轴震动较大时,AHRS不能准确判断姿态”的问题,这也许是软件中对加速度计输出值的处理不够得当吧……以前我们做过类似的测试,把加速度计MMA7260直接用热熔胶固定在XXD2212(1000KV)的底座上(配1045的桨)。然后整个底座用手按在桌子上。当电机加速时,整个座子震动非常大(安装时桨叶没有对正),手按着都觉得麻。然后上位机上得出的姿态也是剧烈震动,根本无法判断整体的姿态,后来在软件中加了许多的处理后才把问题解决,能比较准确的反应整体姿态,但是代价就是存在一定的响应延时。所以这里也不知道X650是怎么处理加速度值的。
以上纯粹的个人看法,仅仅针对技术层面而言。
小生不才,让各位见笑了……

[ 本帖最后由 bdkonly 于 2011-5-24 13:30 编辑 ]
32
 楼主| 发表于 2011-5-24 00:05 | 只看该作者
原帖由 bdkonly 于 2011-5-23 22:37 发表
我就想问楼主个问题:
楼主是不是这样测试的,给AHRS上电,此时温度是27°,然后工作一会,AHRS温度上升到了33°,在这个过程中AHRS输出角度变化了2.4°?然后AHRS温度一直维持在33°左右,AHRS的输出角度也不再变化 ...

是的,如何解释?
31
发表于 2011-5-23 22:37 | 只看该作者

哎,没意思

我就想问楼主个问题:
楼主是不是这样测试的,给AHRS上电,此时温度是27°,然后工作一会,AHRS温度上升到了33°,在这个过程中AHRS输出角度变化了2.4°?然后AHRS温度一直维持在33°左右,AHRS的输出角度也不再变化了?
30
发表于 2011-5-23 14:06 | 只看该作者
lz的温漂,如果x650选的芯片不是数字输出的,很大的可能就是ad转换过程中产生的。
29
发表于 2011-5-23 10:49 | 只看该作者
看了abin 对角速度和加速度融合解算姿态的解释, 真是深入浅出, abin  真的很有当老师的潜质啊
28
发表于 2011-5-21 19:57 | 只看该作者
:em20: :em20:
27
发表于 2011-5-21 08:53 | 只看该作者

abin你好!

最简单的办法!让他把模块寄回厂,你们帮他检查一下不就清楚了!
26
发表于 2011-5-21 00:49 | 只看该作者
看到你对X的情节帖子,倍受感动,所以这次回复详细点,也用于回报对我们的支持:

首先是关于温飘定性的问题,当你把AHRS角度的飘动看成是温飘的时候,那么它永远是温飘。

AHRS一定存在温飘,只是这个温飘是否会影响到飞行,从机械式陀螺(我们X600D,MK1.1-1.3版本,以及现在KK使用的陀螺都是这类,具有比较大的温飘,但是算法控制得当,飞行也是没问题的),再到我们当前X650使用的MEMS陀螺,具有极小的温飘,几乎可以忽略。这些的数据来源不只是我们测试,还有陀螺制造商给出的datasheet。都能清晰的知道陀螺的温度漂移细节。我这里就不重复了,因为在你发的第一关于温飘的帖子的22楼,我已经详细说了一些。如果有疑问的地方,咱们再深入沟通。

在打字的瞬间,我突然发现,我就像个老师一样,不停的在教学............ 跑题...回到话题来。

在理解这个角度的变化前,你首先要明白为什么会变化,除了温度变化会引起这个角度变化,还有其他什么会引起变化:
关于温度的变化,会引起角度的变化 ,我就不说了,因为你已经懂了。
我重点说其他引起变化的可能。

每个陀螺系统除了温飘这个基本参数外,还有如果输出噪音 ,输出线性度等等参数。陀螺输出的是角速度。要得到角度就必须对角速度做积分,这个积分是离散积分。因此至少会有3个误差被引入:
1:陀螺本身的输出噪音
2:陀螺输出的线性度
3:离散积分的误差

对于我们采用的陀螺,大约每3mv输出就代表1度/秒。如果持续输出1秒的3mv,就可以被认为旋转了1度。有了这个概念后,就好理解陀螺的误差了。
当陀螺输出有噪音的时候,随着时间的变化,积分的角度一定会越来越不准。同理,陀螺的线性也会引起,还有就是离散积分本身也会引入一些误差。
因此,陀螺的积分,在控制系统短周期,比如500毫秒内,可以有不错的精度,比如500毫秒偏差0.5度(这个性能主要取决于陀螺的性能),但是长周期来说,陀螺的积分出来的角度就会越来越不准,我们当前的陀螺积分大约是1分钟6度的误差,我们早期x600d的陀螺,大约是1分钟20度-30度的漂移(请不要惊讶,mk早期也是采用这个陀螺飞行一样稳定,kk也是采用这个陀螺,也飞行的平稳,就是当前原装mk 2.0的板子,一分钟也有十几度的漂移)。

越好的陀螺,这个稳定性越好,军品光纤陀螺,可以达到1小时0.几的漂移,甚至更好。可以用于航海和空间制导等.....

单纯依靠陀螺长时间计算出准确的角度来是个问题。因此有了捷联惯导,简单的说就是找一个参考量,时不时的修正一下这个陀螺的积分,让他把误差剔除掉。
我们把这个修正的过程叫做融合。这个参考量就是加速度计。

介绍到这里,有必要说明下什么是加速度计:
加速度计就是能够测量出运动加速度的传感器,不仅仅如此,他还能测量出重力加速度。当加速度计在静止的时候,就会输出一个重力加速度。当传感器倾斜时,即可通过三角函数解算出倾斜角度(很多手机都有这个传感器,你可以用他来开赛车游戏等)。请注意。加速度计只有在静止的时候才能测算出准确的倾斜角度。当在运动的时候,角度就会不准确。因为运动的时候,加速度计不只是受到重量加速度,还有运动的加速度。

刚才说到了陀螺积分在短周期内是靠谱的,在长周期内是不靠谱的。而加速度计在静止的时候是靠谱的 ,在运动的时候是不靠谱的。
我们可以把多旋翼看成是一个不断悬停的飞行器(悬停时可以通过滤波实现加速度的相对准确的角度计算),因此在长周期来说 ,我们可以通过加速度计的滤波来计算出准确的角度。

如果阅读到这里,你可以这样理解:陀螺在短周期内的数据是靠谱的,长时间的是不靠谱的,而加速度计在短时间内是不靠谱的(因为震动和运动会极大的影响到加速度的计算),在长时间来看,只要悬停了,就是靠谱的。

好,算法来了....
什么卡尔曼啦,什么互补滤波器啦,什么... 反正很多很多。这些算法,都在于如何更加优秀的解决在各种飞行条件下,陀螺和角速度互补,得到准确角度的问题。
关于滤波器算法的介绍,此处省略10万字....

不管怎么说,反正AHRS里面有个算法,来让这两个传感器的数据融合起来,得到准确的角度。

有了准确的角度,还需要把这个角度根据载机坐标系和地面坐标系做一些变换,然后适应飞机在飞行时,轴的耦合。

好,算法再次来了...
什么四元数啦,什么欧拉角啦,什么方向角啦...反正也很多很多。这个算法决定了你做飞行动作的时候会不会憋手,比如8字航线什么的。
关于轴耦合的算法介绍,再次省略10万字...


说了这么多,如果能理解过来,现在可以解释几个问题了:
1:为什么AHRS怕震动,因为如果震动太大,AHRS就会认为飞机一直在运动,而没有悬停,这个时候陀螺积分的漂移就没办法修正,所以就往一边飞去咯...... 一部分玩家说的不可控(失控)就是由于这个问题导致的。
2:为什么AHRS启动的时候会慢慢飘一点,然后稳定下来。其实当AHRS一上电的时候,马上就会开始计算角度,这个时候加速度计也会开始输出角度,时间一长陀螺的误差就出来了,随着误差越来越大,加速度计输出的角度修正这个误差的速度越来越快。直到2者达成一种平衡,即修正的速度和陀螺积分漂移的速度一致。这样就不飘了。假设达到平衡时的角度是3度。其实设置AHRS里面的一个P值来调整这两者的平衡值。P值越大,加速度计参与的越快越多,可能漂移还没有1度,就达到平衡了。wgx602,你所说的“温飘”就是这个引起的。


关于“陀螺芯片厂商提供的只是数据,能代表合格者吗?能保证每一个芯片都没有问题吗?”这句,其实我可以说是肯定的。
你唯一能信赖的,也是必须信赖的。对于半导体芯片,这些大的芯片提供商是非常靠谱的,况且我们的陀螺还是工业级指标的。所以不可以不信任。

[ 本帖最后由 abin 于 2011-5-21 01:06 编辑 ]
25
发表于 2011-5-20 15:41 | 只看该作者
原帖由 wgx602 于 2011-5-20 15:38 发表
abin你的理论我还是看得懂的,可能是你没能理解我的意思。
我是说AHRS没有温度的变化,角度就不会有变化。在这里与震动没有关系吧。
我的AHRS有角度的变化是事实,怎么是感觉呢?
陀螺芯片厂商提供的只是数据,能 ...


我外出测飞,晚上回来再答复你。 :)
24
 楼主| 发表于 2011-5-20 15:38 | 只看该作者
abin你的理论我还是看得懂的,可能是你没能理解我的意思。
我是说AHRS没有温度的变化,角度就不会有变化。在这里与震动没有关系吧。
我的AHRS有角度的变化是事实,怎么是感觉呢?
陀螺芯片厂商提供的只是数据,能代表合格者吗?能保证每一个芯片都没有问题吗?这是两码事呀。
还有陀螺漂移校正默认参数i值到底是多少呀?我的是0.0001。
23
发表于 2011-5-20 15:28 | 只看该作者
我这几天都是烈日下飞行 每次2块电池25分钟 根本没有任何温飘影响,最后都是稳稳悬停然后降落
22
 楼主| 发表于 2011-5-20 15:25 | 只看该作者
LS的你可能没看清楚,不是1-2分钟不动,是1-2分钟不乱动(基本用很小的杆量就可以修正,然后可以松杆一下),接下来就是老向左飘,要用一定的杆量才能使飞机停住,不能松杆,一松杆飞机又跑了。2.4度不算什么吗?你试试看把飞机倾斜2.4度,飞机就变成兔子了:em15: 。
21
发表于 2011-5-20 15:12 | 只看该作者
我还以为是漂移24度呢,吓一跳。2.4度,没什么问题的。据我经验,它也不一定就固定在2.4度了,可能会不断上下变化。实际飞行中,你能悬停1-2分钟不动,已经很好了啊。没有gps的情况下,即使是悬停,也不可能撒开摇杆,所以,2.4度不算什么。如果是24度,就要修了。
每次通电后,数值都不太一样,我也一样,但一般就是在水平位置,算是可接受的范围了,对飞行影响不大。

[ 本帖最后由 xmnjsl 于 2011-5-20 15:16 编辑 ]
20
发表于 2011-5-20 14:59 | 只看该作者
原帖由 wgx602 于 2011-5-20 14:56 发表
我感觉还是因温度变化引起的,因为:
1.当温度从27度上升到33度(AHRS工作的最大升温)的过程中,角度也在不停的增大(2-3度)。
2.当AHRS的温度在33度时开始测试,AHRS的温度不再增大,这时角度也基本没有什么变化 ...


看来,还是没能理解呀.......

陀螺启动积分出误差来,这个时候加速度参会修正。2个数据之间在误差越小的时候,修正的越慢(把P值调大,修正的快了)。

陀螺相关的温度漂,已经在你上一个帖子详细说了(22楼)。

做硬件和软件开发的,要的是准确的数据 ,不是感觉呀。
陀螺等芯片的数据,厂商提供的datasheet是非常严谨而且是唯一可以信赖的数据,你不可以不信任它,因为那是整个算法的基石呀。

[ 本帖最后由 abin 于 2011-5-20 15:01 编辑 ]
19
 楼主| 发表于 2011-5-20 14:56 | 只看该作者
我感觉还是因温度变化引起的,因为:
1.当温度从27度上升到33度(AHRS工作的最大升温)的过程中,角度也在不停的增大(2-3度)。
2.当AHRS的温度在33度时开始测试,AHRS的温度不再增大,这时角度也基本没有什么变化,最多也就是0.1-0.2度左右,时间再长也是一样。
18
发表于 2011-5-20 14:26 | 只看该作者
原帖由 wgx602 于 2011-5-20 14:01 发表
老大呀,将P值调大,比如到2时,情况有很大的好转,但这时飞机飞不起来,一加大油门飞机就翻到。


这个P值的意思是,陀螺和加速度计融合的比例关系。

你所说的所谓“漂移”,其实是陀螺积分的误差(发散),这个误差需要通过加速度融合才能消除(这是X650或者X450能够悬停模式自动平衡的关键,kk等飞控没有加速度计,只能在类似X650或X450的航线模式下飞行)。

陀螺积分对震动是不敏感的(积分对震动不敏感,不知道能否理解这个),但积分会发散(一旦有误差引入会一直被累积起来,慢慢的就越来越大了),要消除这个误差,就需要用另外的数据来消除,这个数据就是加速度,这也是惯导的基本原理。

但是加速度计对震动敏感。我们一直在强调请检查机架的震动就是这个原因,任何有带自动平衡的飞控系统,都需要考虑减震问题。
因为:
当需要用加速度的数据来校准(一般专业点的用融合这个词)陀螺积分的误差时,如果加速度计受到很大的震动,这样校准出来的数据就会很不准确,机器自然就不能平衡了。

而这个P值,就是在调整陀螺和加速度计之间的一个融合的比例关系。如果机架震动很大,或者在空中做剧烈运动(此时加速度计的值不能准确的反馈出机器倾斜的角度,如果这个数据用来校准陀螺的积分误差,机器肯定就会出问题的,算法就需要保证这样的情况不会发。AHRS自身能够知道是不是在距离运动,但是不能判断这个运动是否来自飞行还是来自机架的大量震动。在剧烈运动的时候,算法会自动减少该值参与陀螺积分的误差融合工作,从而提高计算角度的精确性)P值越大,受到干扰的信号就越强。所以就不能飞行了。事实上,在能够抑制住积分误差的情况下,P值应该是越小越好。你可以适当的调大一点点P值 ,比从0.4 到0.5或0.6.如果你飞行还不是非常暴力,基本上感觉不出差别。


我们之前发布过一些飞控的测试视频,其实就是在从实际效果中展示融合算法的优越性,这也是飞控越秀的关键:


[ 本帖最后由 abin 于 2011-5-20 14:29 编辑 ]
17
 楼主| 发表于 2011-5-20 14:07 | 只看该作者
还有我的AHRS默认的P值是0.4,I值是0.0001,这时正确的吗?这个I值与你刚才给我的0.01相差很大耶。
16
 楼主| 发表于 2011-5-20 14:01 | 只看该作者
老大呀,将P值调大,比如到2时,情况有很大的好转,但这时飞机飞不起来,一加大油门飞机就翻到。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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