论文部分内容阅读
小型无人直升机的数据采集过程中会混入大量的噪声,为了去除噪声从而获得飞机准确的信息,本文首先介绍了扩展Kalman滤波(Extended Kalman Filter,EKF)算法和Unscented Kalman滤波(Unscented Kalman Filter,UKF)算法,并比较了这两种算法在实际应用中的优劣,然后介绍了一种简单易实现的飞机模型,针对模型的各个模块进行了滤波仿真实验,再根据实验结果分析了滤波效果及可能存在的问题。实验表明,对于飞机位置及速度的滤波效果比较好,但是对于四元数的滤波不是很明显,而对于本文的重力加速度模型则仅适合于UKF算法而不适合用EKF算法。四元数的滤波效果不明显,可能的原因是由于陀螺仪存在漂移误差。本文将漂移误差当作高斯误差,再将这个漂移误差模型加入到原来的四元数模型中,实验表明,对原始飞机模型加入漂移误差模型部分再滤波,则四元数的滤波效果将是非常理想的。飞机模型的准确性直接制约着EKF的精度,对于状态量和观测量相同的系统,本文将状态估计值和状态测量值的差值当作过程噪声,然后利用支持向量机回归机(Support Vector Regression,SVR)算法对过程噪声进行训练,从而得到一个比较准确的过程噪声矩阵,最后将这个过程噪声矩阵替代EKF算法里面原来的过程噪声矩阵,这样实现了实时修正系统模型的目的。这种改进改善了系统模型一成不变的缺陷,提高了飞机对环境的适应性,对于提高EKF精度相当有效。在对状态转移矩阵为线性的系统进行UKF滤波时,本文给出了一种简化算法从而提高了运算效率。用新息判断野值是否存在,如果存在则舍弃野值,然后用最小二乘法拟合估计值并作为本次滤波结果,如果不存在野值则按照原来UKF算法滤波,这样增强了系统抑制由于意外而产生较大干扰的能力。随着系统阶次的增大,EKF和UKF的计算量也迅速增大,因此本文根据系统特征将一个大系统拆分成若干小系统,然后分别对小系统进行滤波。本文详细分析了拆分前后系统EKF和UKF滤波算法的计算量,并对拆分后的系统进行了仿真,结果显示,这样即可以保证滤波精度又可以极大提高系统滤波效率。本文最后讨论了EKF算法在实际应用中的实现问题。文中首先研究了EKF滤波方程组的性质,得到了方程组中很多矩阵为对称矩阵的重要结论,再根据对称矩阵的特点对两个矩阵相乘的结果为对称的实现进行了简化,然后结合无人直升机模型数据的特点,对EKF算法中的求逆部分的实现进行了优化。理论和事实都表明,通过这些改进后,每进行一次滤波所需要的计算量比改进前大大减少了。