TOA/TDOA测距定位,三维任意(>3)个锚节点,对一个未知点进行定位|MATLAB源代码

在这里插入图片描述

程序介绍

TOA/TDOA使用三点法测距,在空间中,有4个锚节点就可以定位,但如果有多个节点,定位效果会更好。
锚点不同时,修改程序中的向量和矩阵维度比较繁琐,这里给出一个在锚点数量>3时,可以自动调节计算矩阵的方法,供参考。

程序截图和运行结果

程序截图

如下图,可以自己定义待测点的坐标( p o i n t 1 point1 point1)和锚节点的个数( n n n)。
请添加图片描述

运行结果

命令行可以看到待求坐标的真实值、计算得到的输出值:
请添加图片描述
绘制一个三维图像,显示待测点真实值坐标、锚点坐标、计算出来的待求点坐标:
请添加图片描述

源代码

% TOA/TDOA测距定位,三维任意(>3)个锚节点,对一个未知点进行定位
% author:Evand
% 2024-8-3/Ver1
clear;clc;close all;
rng(0);
%% 主程序
point1 = [0.5,0.5,0.5]; %待求点坐标真值
n = 9; %定义锚节点数量
range_err = 0.1; %测距误差
baseP = [sin(1:n)+0.01*[1:n];cos(1.3*(1:n))+0.01*[1:n];cos(1.5*(1:n))+0.01*[1:n]]';
R_calcu = sqrt(diag((point1-baseP)*(point1'-baseP')))+range_err*randn; %含噪声的距离
% 完整代码,下载链接见:https://gf.bilibili.com/item/detail/1105965012
fprintf('完整代码,下载链接见:https://gf.bilibili.com/item/detail/1105965012');

%% 绘图
figure;

代码修改建议

  • 如需修改锚节点的坐标,修改 b a s e P baseP baseP这个矩阵,每行存放xyz坐标,有多少个节点就写多少行,如下是9个节点时的情况:
    在这里插入图片描述
  • 如需修改测距误差,更改 r a n g e e r r range_err rangeerr,其值为测距误差的标准差
    在这里插入图片描述
  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值