飞控算法——互补滤波器
2015-09-30 21:35
295 查看
在了解滤波器的开始先看几个概念
传感器
两轴加速计:
1.测量加速度实际上是推动每个单元的块。
2.可以用来测量重力加速度,上图中x轴加速度为0g,y轴加速度为1g。
3.可以用来测量倾角。
上图中x轴方向上有重力的作用,左边的图中x有正向的加速度,右边的图中x有负向的加速度。这就使y轴方向的加速度减小。
陀螺仪
作用:
1.测量角速度(旋转的角度)。
2.当静止时读“0”
3.读取旋转时的方向值。
对于MPU6050来说,加速计对四轴或者小车的加速计比较敏感,取瞬时值计算倾角误差比较大;而陀螺仪积分得到的角度不受加速度的影响,但是随时间的增加积分漂移和温度漂移带来的误差比较大。
加速计与陀螺仪的数据融合
有什么好办法融合呢?下面看几个模型
直接融合:
这个融合的特点:
好处:1.直观、容易编码
2.陀螺仪快速、准确的测量角速度
缺点:噪声大。
第二种:
这样的好处是:过滤掉短周期水平加速度,唯一可以通过的是长周期的加速度(重力)
缺点:测角度由于取平均值而滞后,过滤器越多就越能滞后,滞后一般会影响稳定性。可怕的陀螺仪漂移,如果陀螺仪没有准确的读出平衡时的零点,小速度将持续增加角度,直到偏离实际的角度。
互补滤波模型
优点:1.可以帮助解决噪声、漂移、水平加速度的依赖性。
2.快速估计角度,比只有低同滤波器的滞后明显减弱。
整合:就像一个汽车以一个已知的速度移动,你的程序是一只钟每隔几毫秒滴答一次,为了在每个滴答得到新的位置,应把旧位置的加上改变的位置。
*新位置=旧位置+速度变化的时间
角度=原来的角度+陀螺仪的值变化的时间。(平衡)*
低通滤波器:只让长期信号的变化量通过,过滤掉短期的波动。
高通滤波器:它只允许短周期信号通过,过滤信号而达到稳定,用来抵消偏移。
采样周期:每个程序中经过循环所需时间的长短。
时间常数:滤波器的时间常数表现一个相对持续的信号,对于一个低通滤波器,分析信号的常数远比通过信号改变而短于过滤的时间常数。
具体参数的设定在以后的程序中详细说明。
总结:短时间内用陀螺仪比较准确;长时间用加速计比较准确,这时候加大它的比重,这就是互补了,加速计要滤掉高频信号,陀螺仪要滤掉低频信号,互补滤波器就是根据传感器特性不同,通过不同的滤波器,然后在相加得到整个频带的信号。
传感器
两轴加速计:
1.测量加速度实际上是推动每个单元的块。
2.可以用来测量重力加速度,上图中x轴加速度为0g,y轴加速度为1g。
3.可以用来测量倾角。
上图中x轴方向上有重力的作用,左边的图中x有正向的加速度,右边的图中x有负向的加速度。这就使y轴方向的加速度减小。
陀螺仪
作用:
1.测量角速度(旋转的角度)。
2.当静止时读“0”
3.读取旋转时的方向值。
对于MPU6050来说,加速计对四轴或者小车的加速计比较敏感,取瞬时值计算倾角误差比较大;而陀螺仪积分得到的角度不受加速度的影响,但是随时间的增加积分漂移和温度漂移带来的误差比较大。
加速计与陀螺仪的数据融合
有什么好办法融合呢?下面看几个模型
直接融合:
这个融合的特点:
好处:1.直观、容易编码
2.陀螺仪快速、准确的测量角速度
缺点:噪声大。
第二种:
这样的好处是:过滤掉短周期水平加速度,唯一可以通过的是长周期的加速度(重力)
缺点:测角度由于取平均值而滞后,过滤器越多就越能滞后,滞后一般会影响稳定性。可怕的陀螺仪漂移,如果陀螺仪没有准确的读出平衡时的零点,小速度将持续增加角度,直到偏离实际的角度。
互补滤波模型
优点:1.可以帮助解决噪声、漂移、水平加速度的依赖性。
2.快速估计角度,比只有低同滤波器的滞后明显减弱。
整合:就像一个汽车以一个已知的速度移动,你的程序是一只钟每隔几毫秒滴答一次,为了在每个滴答得到新的位置,应把旧位置的加上改变的位置。
*新位置=旧位置+速度变化的时间
角度=原来的角度+陀螺仪的值变化的时间。(平衡)*
低通滤波器:只让长期信号的变化量通过,过滤掉短期的波动。
高通滤波器:它只允许短周期信号通过,过滤信号而达到稳定,用来抵消偏移。
采样周期:每个程序中经过循环所需时间的长短。
时间常数:滤波器的时间常数表现一个相对持续的信号,对于一个低通滤波器,分析信号的常数远比通过信号改变而短于过滤的时间常数。
具体参数的设定在以后的程序中详细说明。
总结:短时间内用陀螺仪比较准确;长时间用加速计比较准确,这时候加大它的比重,这就是互补了,加速计要滤掉高频信号,陀螺仪要滤掉低频信号,互补滤波器就是根据传感器特性不同,通过不同的滤波器,然后在相加得到整个频带的信号。
相关文章推荐
- Javascript高级程序设计第22章(高级技巧)
- ios-系统音频播放
- ThinkPHP--后台商品修改实现
- 第三次作业--结对编程
- jQuery中.bind() .live() .delegate() .on()的区别
- 作业三
- HLJOJ1015(多源最短路径失真)
- Solr 配置中文分词smartcn
- 母牛的故事
- ThinkPHP--删除数据及原生sql语句执行
- JAVA学习笔记 -- 包资源文件jar包裹
- Web APi之控制器选择Action方法过程(九)
- 位转换
- hadoop学习笔记二
- JTable相关用法
- python的list的拷贝
- Web开发:分页技术的实现(中)——Struts2+json
- ThinkPHP--实现数据修改save
- 第十九天 :LAMP 架 构 的 优 化
- JavaAPI_2