室内定位技术-计算三边定位法得出未知节点

实验内容:三边定位是通过测量待测目标与其他参考点之间的距离来计算待测目标的位置的定位方法。二维平面上,如果待测目标与三个不共线的参考点之间的距离,就可以利用三角形的相关计算方法计算出待测目标的位置。无线局域网中,通常采用接收信号强度(Received Signal Strength,RSS)作为信号的特征参数,通过无线电波的传播模型将接收到RSS转化成距离,就可以得到所需的距离,也可以采用TOA/TDOA等测距方式获取距离信息。
要求:掌握三边定位法的理论知识及在matlab软件中的实践用法

  1. 主函数Anli.m

(1)新建一个脚本Anli.m,写入参考节点的最大横纵坐标以及生成一个随机的1*3大小的矩阵和一个随机的未知节点

 

图1 写出初始变量值

(2)写出未知节点到三个已知点的距离代码

图2 写出三个已知点距离代码

(3)运用triposition函数计算定位坐标并设计运行成果的标题和图例

图3 调用triposition函数以及设置成果框样式

总代码

clc
clear all;
maxx=1000;
maxy=1000;

cx=maxx*rand (1,3);
cy=maxy*rand(1,3);
plot(cx, cy,'k^');

mx=maxx*rand();
my=maxy*rand();
hold on;

plot(mx,my,'go');
da=sqrt((mx-cx(1))^2+(my-cy (1))^2);
db=sqrt((mx-cx(2))^2+(my-cy(2))^2);
dc=sqrt((mx-cx(3))^2+(my-cy (3))^2);

[locx,locy]=triposition(cx(1),cy(1),da,cx(2),cy(2),db,cx(3),cy(3),dc);

plot(locx,locy,'r*');
legend('参考节点','盲节点','定位节点', 'Location', 'SouthEast');
title('三边测量法的定位');
derror=sqrt((locx-mx)^2+(locy-my)^2);
disp(derror);

2、函数文件triposition.m

(1)新建一个函数triposition.m,在此函数中写出根据定位原理写出解算方程组代码

图4 解算方程

   (2)而在此处,注意在matlab2019之后已经不接受向 solve 中传入字符串,而本次实验所使用的版本为matlabR2021a,所以在上一步列方程的代码中,无需 ‘’,以及要将 = 改为 ==。

图5 新版本特性

   (3)使用solve函数解算出xy值并存入名为xx,yy的变量

图6 赋值变量

总代码

function[locx,locy]=triposition(xa,ya,da,xb,yb,db,xc,yc,dc)

syms x y

f1 = 2*x*(xa-xc)+xc^2-xa^2+2*y*(ya-yc)+yc^2-ya^2 == dc^2-da^2 ;
f2 = 2*x*(xb-xc)+xc^2-xb^2+2*y*(yb-yc)+yc^2-yb^2 == dc^2-db^2;

[xx,yy]=solve(f1,f2,x,y);

px=eval(xx);
py=eval(yy);

locx=px;
locy=py;

3、更改了新版本slove函数特性后的代码运行结果图

图7 运行结果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值