|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-4-18 21:57:47
|
显示全部楼层
本帖最后由 jss 于 2012-4-18 21:59 编辑
我把这里的帖子前10页的翻了三遍,提出的数据处理方法只有两种,一种是提到非常多的卡尔曼滤波,一种是互补滤波。比较好的两篇帖子是:
【原创】姿态估计
http://www.ourdev.cn/thread-4769138-1-1.html
加速度计为什么可以修正陀螺仪的漂移?
http://www.ourdev.cn/thread-4683750-1-1.html
卡尔曼滤波:
事实上,四旋翼系统是非线性系统,是不太适合卡尔曼滤波的;而且,就我在论坛上看到的,关于卡尔曼滤波本身的讲解都是正确的,但是一旦运用到四旋翼上,好像都存在问题。
要使用卡尔曼滤波,必定需要系统的状态方程;然而关于四旋翼角度和角速度状态方程的列写,我看到的都是错的。各个轴角速度的直接积分不会是横滚角、俯仰角和偏航角。
我们系统建模的时候,我们首先会遇到参考系和机体系。参考系是固定的,机体系是和四旋翼固连的,我们假定参考系和机体系在初始时是重合的。
俯仰偏航横滚这些角指明的是参考系按一定顺序旋转到与机体系重合,各个轴需要旋转的角度。我们必须记住空间旋转不可交换。
例如:四旋翼绕x轴旋转3°,再绕y轴旋转4°,再绕z轴旋转5°,最后再次绕y轴旋转3°;最后得到的横滚角不是7°,俯仰角不是3°,当然偏航角也不是5°。
再次,欧拉角的旋转也是有顺序的,例如欧拉角的xyz旋转和zyx旋转:
先x轴旋转30°,再y轴旋转45°,最后z轴旋转60°,和先旋转z轴60°,再旋转y轴45°,最后旋转x轴30°是完全不一样的,通过这样的旋转,两种旋转得到的旋转矩阵是不一样的。然而,对于这两种旋转,我们都说横滚角为30°,俯仰角为45°,偏航角为60°。
要注意,四旋翼在任意一个时刻,和参考系(固定的)都只有一个旋转矩阵;这说明,对于不同的旋转顺序,有不同的横滚角,俯仰角,偏航角。
关于角度和角速度状态方程的列写有很多种方式:(参考《捷联惯性导航技术》第26~29页;国防工业出版社,张天关、王秀萍等译)
以下是四元数的方式:q' = 1/2 * q ⊗ w; w = [0, wx, wy, wz]. q为四元数下的姿态表示,而且是从机体系到参考系的。wx,wy,wz是飞机的瞬时角速度。
互补滤波:
事实上,我并不知道我下面说道的是不是互补滤波。
我看到的论文,滤波一般采用两种方式,一种补偿角速度值;
这篇论文就是这样做的。
另一种是加速度计算得到的值和角速度计算得到的值进行数据融合(这篇帖子最开始引用的那篇 姿态估计);
这篇论文就是这样做的。
这有一个问题,我对mk很不熟悉,我想知道mk到底用了一种什么滤波方式?有没有人可以解释一下?或者说给我指点一下什么地方有这方面的资料。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|