【目标定位】Taylor+卡尔曼滤波UWB数据定位【含Matlab源码 2624期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、chan+taylor算法移动基站无源定位简介

1 引言
随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对“非合作型”无人机采用一种基于时差法的无源定位算法对其进行实时定位.基于时差法的无源定位方法是根据求解无人机信号到达主站和各辅站的距离差,并联合各基站坐标所构成的双曲线方程组来实现.该方法定位精度高,且不对外发射信号,可在机场等区域安全使用.

目前,Chan算法和Taylor算法是2种经典的时差定位算法.其中,Chan算法在时差值精确的情况下,可以实现较高精度的定位,但如果时差值精度不够,其定位精度会大幅降低.Taylor算法则是在已有的定位坐标基础上,进行迭代递归,使定位出的坐标接近于目标的真实坐标.虽然Taylor算法定位精度较高,但需要提供初始估计坐标,否则就无法实现准确定位.基于2种算法的特点,本研究提出Chan-Taylor联合算法,其思路是,将Chan算法解算出的目标坐标作为初始估计坐标值赋给Taylor算法进行迭代运算,即使获取的时差值存在一定误差,使初始估计坐标的精度不高,但可以通过迭代来提高定位坐标的精度.通过算法对比和仿真分析表明,Chan-Taylor联合算法较Chan算法具有更高的定位精度和稳定性,较Taylor算法更具有实用性.

2 算法描述
2.1 Chan算法

基于Chan算法的无源定位是通过求解目标源信号到达辅站与主站之间的时差并联立各基站坐标所得的双曲线方程组来实现的.该算法是一种非迭代算法,不需要初始值,在时差精确、视距传输的情况下,其定位效果良好,但在工程上,很难获得满足要求的时差初值.因此,Chan算法可作为其他算法的前置条件.

本研究以4站三维定位系统为例建立3组方程,该方程组为超定方程组.通常情况下,由于该方程组导出的矩阵不存在逆矩阵,方程组无法正常求解.所以,本研究利用伪逆法联合最小二乘法对方程组进行解算,即Chan算法.4站定位系统的定位原理如图1所示.
在这里插入图片描述
图1 4站定位系统示意图
图1中,主站坐标联立3个辅站坐标,通过分别计算出的时差可构建3条双曲线,其交点就是无人机的位置.

假设无人机位置为P=[px,py,pz],各基站坐标为Pi=[pix,piy,piz],i∈[0,3],则无人机到基站i的距离ri2可表示为,
在这里插入图片描述
本研究若不特别指明,均默认i∈[1,3].对式(1)整理可得,
在这里插入图片描述
式中,Ri表示基站i到坐标原点的距离;R0为主站到坐标原点的距离;ri0为无人机到辅站与主站间的距离差.

4站三维定位系统存在一个由3组式(2)的关系式结合而成的方程组,如式(3)所示.当A≠0时,线性方程组(3)有解.
在这里插入图片描述
式中,A是方程组的系数矩阵,b是方程组的输出向量.

利用伪逆法可求得无人机坐标为,
在这里插入图片描述

2.2 Chan-Taylor联合算法
因为Chan算法是非递归算法,对时差精度要求高,因此,本研究对该算法的定位结果进行二次处理.Taylor算法是利用局部最小二乘解进行迭代[5]的递归算法,其定位精度高,但需要初始估计坐标,否则无法进行定位.

基于低空无人机时差定位的实际需求,本研究结合Chan算法和Taylor算法提出了一种改进的算法,即Chan-Taylor联合算法.Chan-Taylor联合算法是将Chan算法的解算结果作为初始估计坐标送入Taylor算法,以达到对无人机坐标进行误差计算和定位修正的作用.算法在迭代时,将误差与设定的阈值进行比较,若误差值大于阈值,则继续迭代;若误差值小于设定阈值,则终止迭代并输出结果.

2.3 Chan-Taylor联合算法流程及计算原理
Chan-Taylor联合算法流程如图2所示,具体为:首先,算法获得无人机信号到主站与各辅站之间的时差;然后,将时差用于Chan算法部分进行初始估计坐标值的计算,并利用该坐标值在Taylor算法部分做误差向量的计算,用以定位修正;同时,对误差进行阈值比较.如不满足条件,则继续迭代,如满足条件,则结束迭代,并输出最终结果.
在这里插入图片描述
图2 Chan-Taylor算法流程
在这里插入图片描述
式中,α为目标差值向量,b为时差的差值向量,e为时差估计误差向量,H为时差估计的梯度矩阵.它们可分别表示为,
在这里插入图片描述
由式ri0=ri-r0=cτi0与站址坐标,可得,
在这里插入图片描述
将式(10)与式(11)联立,化简可得,
在这里插入图片描述

⛄二、部分源代码

function main
clc;
clear;
T=1;%扫描周期
N=120/T;%采样次数
CR=15;%基站位置
BS=zeros(2,7);
BS(:,1)=[0,0];
BS(:,2)=[0,3CR];
BS(:,3)=[3
CR,3CR];
BS(:,4)=[3
CR,0];
X=zeros(4,N);%目标真实位置、速度
X(:,1)=[30,2,40,2];%目标初始位置(30,40)速度(2,2)
Z=zeros(2,N);%基站对位置的观测
a=exprnd(1,1,4);%指数分布的过程噪声
Q=diag(a);%过程噪声
b=exprnd(3,1,2);
R=60diag(b); %观测噪声指数分布
A=[1,T,0,0;
0,1,0,0;
0,0,1,T;
0,0,0,1]; %状态转移矩阵
G=[1,0,0,0;
0,0,1,0];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for t=2:N
X(:,t)=A
X(:,t-1)+sqrtm(Q)*randn(4,1);%目标真实轨迹
end
MX=X(1,:);
MY=X(3,:);
for t=1:N
yuce=SI(MX(1,t),MY(1,t));
Z(:,t)=[yuce(1);yuce(2)]+sqrtm®*randn(2,1);%对目标的观测
end

%Taylor修正
for t=1:N
track=Taylor(Z(1,t),Z(2,t));
TL(:,t)=[track(1);track(2)]+sqrtm®*randn(2,1);%对目标的观测
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 罗正华,雷林,周方均,李霞.基于Chan-Taylor联合算法的低空无人机时差定位研究[J].成都大学学报(自然科学版). 2019,38(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无迹滤波(Unscented Kalman Filter,UKF)是一种非线性滤波方法,常用于UWB/INS组合定位。该方法可以通过将非线性函数进行高斯近似,来实现对非线性系统的估计。 下面是一个基于无迹滤波UWB/INS组合定位Matlab代码示例: ```matlab clear all; clc; close all; % 读取数据 load('data.mat'); % 初始化参数 dt = 0.01; % 采样时间 N = length(acc); % 数据长度 pos = zeros(N, 3); % 位置 vel = zeros(N, 3); % 速度 R_acc = 0.1^2*eye(3); % 加速度计噪声协方差 R_gyro = 0.01^2*eye(3); % 陀螺仪噪声协方差 R_uwb = 0.1^2; % UWB测距噪声协方差 Q = diag([0.1^2, 0.1^2, 0.1^2, 0.1^2, 0.1^2, 0.1^2]); % 状态转移协方差 x0 = [0, 0, 0, 0, 0, 0]'; % 初始状态估计 P0 = eye(6); % 初始状态协方差 % 初始化无迹滤波器 ukf = unscentedKalmanFilter(... @f, x0, P0, 'HasAdditiveMeasurementNoise', true, ... 'MeasurementNoise', R_uwb); % 循环滤波 for i = 1:N % 计算加速度计和陀螺仪测量值 acc_meas = acc(i,:)'; gyro_meas = gyro(i,:)'; % 计算UWB测量值 uwb_meas = uwb(i); % 状态转移函数 f = @(x, dt)[... x(1) + dt*x(4) + 0.5*dt^2*x(2); x(2) + dt*x(5) + 0.5*dt^2*x(3); x(3) + dt*x(6); x(4) + dt*x(2); x(5) + dt*x(3); x(6); ]; % 测量函数 h = @(x) sqrt(x(1)^2 + x(2)^2 + x(3)^2); % 进行无迹滤波 [x_pred, P_pred] = predict(ukf, dt); [x_corr, P_corr] = correct(ukf, uwb_meas, h, R_uwb); % 更新状态估计和协方差 x_est = x_corr; P_est = P_corr; % 计算位置和速度 pos(i,:) = [x_est(1), x_est(2), x_est(3)]; vel(i,:) = [x_est(4), x_est(5), x_est(6)]; end % 绘制位置和速度曲线 figure; subplot(2,1,1); plot(pos(:,1), pos(:,2)); xlabel('X (m)'); ylabel('Y (m)'); title('Position'); subplot(2,1,2); plot(vel(:,1), vel(:,2)); xlabel('V_x (m/s)'); ylabel('V_y (m/s)'); title('Velocity'); ``` 在上述代码中,`acc`和`gyro`是加速度计和陀螺仪的测量值,`uwb`是UWB测距的测量值。`R_acc`、`R_gyro`和`R_uwb`分别是加速度计、陀螺仪和UWB测距的噪声协方差。`f`是状态转移函数,`h`是测量函数。在循环中,先进行状态预测,再进行测量更新,最后更新状态估计和协方差。最终,得到位置和速度的估计值,可以进行绘图展示。 需要注意的是,该代码仅为示例,实际应用中需要根据具体情况进行参数调整和算法优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值