
USBL(超短基线)与DVL(Doppler Velocity Log,多普勒速度计)对水下物体三维定位。给出仅USBL、仅DVL和融合后的结果图像与数据分析。滤波是扩展卡尔曼滤波(EKF),用于数据融合。
程序简介
- DVL(多普勒速度计)是用于水下导航的设备,通过测量水流对底部的多普勒效应来计算水下物体(如潜水器或无人潜水器)的速度和位移。
- USBL(超短基线)的全称是Ultra Short BaseLine。它是一种用于水下定位的技术,主要用于确定水下物体的位置,通过测量从水面基站到水下设备的距离和角度来实现定位。
- 滤波:状态向量:
x = [x, y, z, vx, vy, vz]ᵀ(6维,包含位置和速度),运动模型:采用恒速度(CV)模型,状态转移矩阵F为6×6矩阵,体现位置-速度耦合关系,观测模型:非线性观测方程
USBL观测:h₁ = [atan2(dy,dx), atan2(dz,√(dx²+dy²)), √(dx²+dy²+dz²)]ᵀ
DVL观测:h₂ = [vx, vy, vz]ᵀ
观测噪声协方差:R = diag([1°², 1°², 1m², 0.05², 0.05², 0.05²])
Jacobian矩阵:6×6维,包含USBL几何观测的非线性偏导数和DVL线性速度观测
运行结果
轨迹对比图像:“

位置对比曲线:

误差输出:

MATLAB源代码
完整代码如下:
% USBL(超短基线)与DVL(多普勒速度测量仪)的融合,三维,基于方位角与距离测量的目标定位仿真(EKF实现)
% 包含:1) USBL+DVL融合 2) 仅USBL观测 3) 仅DVL推算
% USBL观测模型:方位角θ,俯仰角φ,斜距r
% 2025-09-20/Ver2 - 增加对比分析
clc; clear; close all;
rng(0);
%% 参数设置
dt = 1; % 采样时间(s)
T = 100; % 总时长(s)
c = 1500; % 声速(m/s)
% USBL噪声参数
sigma_theta = 1*pi/180; % 方位角噪声标准差(rad)
sigma_phi = 1*pi/180; % 俯仰角噪声标准差(rad)
sigma_r = 1; % 测距噪声标准差(m)
% DVL噪声参数
sigma_vx = 0.05; % X方向速度噪声标准差(m/s)
sigma_vy = 0.05; % Y方向速度噪声标准差(m/s)
sigma_vz = 0.05; % Z方向速度噪声标准差(m/s)
%% 传感器位置(水下USBL阵列模拟)
sensor_pos = [0, 0, -10]; % USBL传感器三维坐标(x,y,z)
完整代码下载链接:
https://download.youkuaiyun.com/download/callmeup/91979854
或专栏文章:
https://blog.youkuaiyun.com/callmeup/article/details/151902634?spm=1011.2415.3001.5331
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

被折叠的 条评论
为什么被折叠?



