码迷,mamicode.com
首页 > 其他好文 > 详细

四轴 电机震动 (转)

时间:2015-07-13 11:52:45      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

在没有干扰的情况下反回的数据很完美。我以为能真实反应飞机目前的倾角然后进行调节,我竟然就天真的拿这个数据直接用了,并且调整pid参数三星期毫无进展。当没有进展时,我开始思考是什么出了问题,我用processing打了一个示波器出来,将数据返回的绘制成波形显示在电脑上,发现了问题:电机不开的时候数据很好,电机一开数据简直没法看,因为电机震动对加速度计的影响非常大,而我们的角度是考加速度测量的,返回的简直是乱码!!!

定下心来,觉得进行滤波,对加速度计返回的倾角进行低通滤波,陀螺仪受震动影响很小,不需要滤波。低通滤波大家不需要知道,这也是被淘汰了的,原因是滤波之后数据虽然很好看,但是会造成极大的延迟,飞机都偏到另一边了,还显示偏在这一边,这只适合在一些不需要太灵敏的地方。

下面介绍拯救我的一个简单有效的算法,不需要用到卡尔曼滤波这样高级的算法就足以让它飞起来而且飞的很好,有人叫他数据融合算法,其实没有这么玄。

陀螺仪受震动的影响很小,它返回的是角速度,角速度*时间就是积分,每次循环读取一下当前的角速度再累加起来,比如第一次角速度20度/s,一个循环的周期是0.02s,譬如我的周期22ms。就是那么我们就知道转了0.4度。第一次转了2,第二次转了3,第三次转了-1,总共就转了2+3-1=4。有人会问,这样积分准确吗?很准!我开始也觉得不靠谱,后来发现很靠谱。两三面零点会产生三四度的偏差,不要紧,我们用准确的角度(加速度计返回的,加速度返回角度,有点绕)计来修正。

不加修正时,公式是这样的

角度=角速度*周期时间+原来的角度

加上修正后

角度=95%*(角速度*周期时间+原来的角度)+5%*准确的角度

对于这两个数据进行加权平均,这样既有时时性,又能保证零点不漂移,好,很好!

之后,pid随便给给就起来了,不信试试。

原文链接:http://blog.sina.com.cn/s/blog_69c23ea50101k4a6.html

四轴 电机震动 (转)

标签:

原文地址:http://www.cnblogs.com/GUK0/p/4642356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!