在深海环境中,水下自主遥控航行器(ARV)实现高精度自主导航面临着诸多挑战。惯性导航系统(SINS)与地形辅助导航(TAN)的紧密组合,为解决深海ARV的导航问题提供了有效途径。尽管当前的组合导航技术较为成熟,但精度仍有待提高。因此,本项目旨在研究基于地形辅助的SINS深海长航时紧组合导航方法,并搭建相应的仿真平台进行验证。
研究目标
本研究拟通过高斯过程回归建立低分辨率海图,研究基于高斯和粒子滤波器的SINS/TAN紧组合导航定位方式。利用ARV装备的压力传感器和测深仪获取水深数据,并将这些数据作为滤波器的观测输入,以实现ARV位置、姿态与水深值的紧密结合,从而提高导航精度。
研究内容
低分辨率海图的建立
- 使用高斯过程回归(GPR)技术,准确建立低分辨率的海图数据。
- 分析海图的特征,并为后续的导航提供基础数据。
SINS/TAN紧组合导航方法
- 研究基于高斯和粒子滤波器的SINS/TAN紧组合导航定位方式。
- 设计滤波器结构,将水深数据作为观测输入,优化位置和姿态估计。
ARV装备的传感器集成
- 整合压力传感器和测深仪获取水深信息,分析其对导航精度的影响。
- 通过实验验证传感器数据的有效性和可靠性。
仿真平台搭建与验证
- 搭建仿真平台,模拟深海环境下的ARV导航场景。
- 通过仿真验证所提出的导航方法的有效性和精度。
创新点
- 高斯过程回归用于海图建立:创新性地应用高斯过程回归技术,生成低分辨率海图,为导航提供支持。
- 高斯和粒子滤波器的紧组合:提出基于高斯和粒子滤波器的SINS/TAN紧组合导航方法,提高导航精度。
- 压力传感器与测深仪的有效集成:将水深数据作为观测输入,优化ARV的导航定位。
MATLAB 代码示例
以下是一个基于粒子滤波器的SINS/TAN紧组合导航的简单实现示例,利用水深数据进行状态估计。
% MATLAB代码示例:基于粒子滤波的SINS/TAN紧组合导航
% 清空环境
clc;
clear;
close all;
% 模拟参数
numParticles = 100; % 粒子数量
numSteps = 50; % 时间步数
true_position = cumsum(randn(numSteps, 2)); % 真实位置(x, y)
depth_data = rand(numSteps, 1) * 100; % 随机水深数据
% 粒子滤波初始化
particles = repmat(true_position(1, :), numParticles, 1) + randn(numParticles, 2); % 粒子初始化
weights = ones(numParticles, 1) / numParticles; % 粒子权重
% 粒子滤波过程
estimated_position = zeros(numSteps, 2); % 估计位置记录
for k = 1:numSteps
% 预测步骤
particles = particles + randn(numParticles, 2) * 0.5; % 粒子状态更新
% 更新权重
for i = 1:numParticles
% 简单的权重计算,考虑水深的影响(假设水深与位置相关)
weights(i) = normpdf(depth_data(k), particles(i, 2), 10); % 假设水深影响y坐标
end
weights = weights / sum(weights); % 归一化权重
% 重采样
indices = randsample(1:numParticles, numParticles, true, weights);
particles = particles(indices, :); % 重采样后的粒子
% 状态估计
estimated_position(k, :) = mean(particles); % 估计位置
end
结论
本研究通过建立低分辨率海图,结合高斯过程回归和粒子滤波器,提出了一种新的深海长航时紧组合导航方法。通过仿真验证,证明了该方法在提高水下ARV导航精度方面的有效性,为深海自主导航技术的研究提供了新的思路和方法。
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者