论文部分内容阅读
近年来,卫星导航、水下导航和室内导航等领域发展迅速,在这些领域的研究中常常会碰到各种非线性问题。如果按照传统的方法,将模型线性化以后,使用平差和滤波的方法来处理这些问题,往往会带来严重的高截断误差,因此需要考虑应用基于非线性数值计算理论的平差和滤波方法。本论文详细考察了带基线约束的双站定位问题和同时定位与建图(simultaneous localization and mapping,简称 SLAM)问题的国内外研究文献,总结了文献中的线性和非线性的研究方法和结论。论文综述了国内外的研究文献对于静态的非线性问题和动态非线性问题的非线性数值计算理论,对于涉及到的各种经典非线性算法进行了重新的推导。另外,文章独立提出了一种带有阻尼修正的牛顿迭代法和一种基于神经网络算法的非线性滤波器算法。本论文的研究数据主要包括两个部分。第一部分来源于山东大学(威海)CORS站一整天的伪距观测数据,这部分数据主要用于带有短基线约束的双站定位问题的研究和算法测试。第二部分的数据主要来源于MATLAB软件的仿真模拟数据,这部分数据主要用于SLAM状态滤波问题的实验研究和算法比较。由于GNSS观测站的观测数据一般都带有各种误差成分,所以文章首先使用ESA提供的GLAB软件对带有误差的观测数据进行了误差修正。基于独立编写的不同数值算法的MATLAB程序,文章对一整天的观测数据进行了处理,分别得到了线性化方法、牛顿法、单纯形法和阻尼牛顿法平差结果的计算值-参考值残差曲线,然后计算了用各种不同算法得到的定位结果的外符合精度,最后比较了三种非线性迭代算法的优劣特性。对于SLAM问题的模拟仿真,人为设定了一组共35个路标点和一条具有17个转折点的运动轨迹,设定了机器人传感器的轮宽、测距范围、运动速度等参数信息以及状态转移模型和观测模型的误差模型。独立编写了神经网络滤波器的MATLAB程序,并分别利用线性化(卡尔曼滤波)、无迹卡尔曼滤波、粒子滤波和神经网络滤波器对仿真的观测结果进行了处理,得到了滤波轨迹,然后将滤波轨迹与模拟轨迹作差可以得到滤波结果的外符合精度,最后文章分析了三种滤波算法的精度、复杂度以及存在的问题。