四轴 电机震动 (转)

在没有干扰的情况下反回的数据很完美。我以为能真实反应飞机目前的倾角然后进行调节,我竟然就天真的拿这个数据直接用了,并且调整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

转载于:https://www.cnblogs.com/GUK0/p/4642356.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值