%三边测量的定位算法

%dA,dB,dC为A,B,C到未知节点(假定坐标[x,y]未知)的模拟测量距离

function [P] = Triangle(A,B,C,dA,dB,dC)

%A,B,C为三个选定的信标节点,节点坐标已知(为便于防真及验证,代码中采用的等边三角形)

A = [0,0];

B = [25,25*sqrt(3)];

C = [50,0];

dA=;

dB=;%只需赋上相应的值即可(通过之前的那个程序将RSSI转化成距离即可)

dC=;

%定义未知坐标x,y为符号变量

syms x y;

%距离方程,以信标节点为圆心,信标节点到未知节点的测量距离为半径作三个圆

f1 = (A(1)-x)^2+(A(2)-y)^2-dA^2;

f2 = (B(1)-x)^2+(B(2)-y)^2-dB^2;

f3 = (C(1)-x)^2+(C(2)-y)^2-dC^2;

%任两个方程联立,求任两圆交点

s1 = solve(f1,f2); %求A,B两圆的交点

s2 = solve(f2,f3); %求B,C两圆的交点

s3 = solve(f1,f3); %求A,C两圆的交点

%将结果(符号变量)转换为双精度数值

x1 = double(s1.x);

y1 = double(s1.y);

x2 = double(s2.x);

y2 = double(s2.y);

x3 = double(s3.x);

y3 = double(s3.y);

%选择内侧的三个交点

%两圆相交于两点,距第三个圆心近的为选定交点Pab,Pbc,Pac

d1(1) = sqrt(((C(1)-x1(1))^2+(C(2)-y1(1))^2));

d1(2) = sqrt(((C(1)-x1(2))^2+(C(2)-y1(2))^2));

if d1(1) <= d1(2)

Pab(1) = x1(1);

Pab(2) = y1(1);

else

Pab(1) = x1(2);

Pab(2) = y1(2);

end

d2(1) = sqrt(((A(1)-x2(1))^2+(A(2)-y2(1))^2));

d2(2) = sqrt(((A(1)-x2(2))^2+(A(2)-y2(2))^2));

if d2(1) <= d2(2)

Pbc(1) = x2(1);

Pbc(2) = y2(1);

else

Pbc(1) = x2(2);

Pbc(2) = y2(2);

end

d3(1) = sqrt(((B(1)-x3(1))^2+(B(2)-y3(1))^2));

d3(2) = sqrt(((B(1)-x3(2))^2+(B(2)-y3(2))^2));

if d3(1) <= d3(2)

Pac(1) = x3(1);

Pac(2) = y3(1);

else

Pac(1) = x3(2);

Pac(2) = y3(2);

end

%Pab

%Pbc

%Pac

%求三个圆内侧三个交点Pab,Pbc,Pac的质心,即为未知节点P,完成定位

P(1) = (Pab(1)+Pbc(1)+Pac(1))/3;

P(2) = (Pab(2)+Pbc(2)+Pac(2))/3;

可以参考一下这个程序

三角定位matlab,基于RSSI校正的三角形质心定位算法相关推荐

  1. Matlab 基于遗传算法优化的VMD信号去噪算法 创新点:基于样本熵作为适应度函数

    Matlab 基于遗传算法优化的VMD信号去噪算法 创新点:基于样本熵作为适应度函数 创新点2:基于信噪比作为适应度函数 提高信噪比 本人研究方向信号处理特征提取与故障诊断算法 ID:34506686 ...

  2. svm车牌定位matlab,基于SVM的车牌区域定位系统研究

    0引言一个完整的车牌识别系统主要包括汽车图像采集.车牌定位.车牌字符分割与识别三个功能模块.其中汽车图像采集模块的功能是采集汽车的原始图像,通常通过CCD摄像头采集,并将采集到的图像传输到计算机;车牌 ...

  3. python卡尔曼滤波室内定位_基于核函数与卡尔曼滤波的室内定位方法

    随着当今社会的发展,基于位置的服务变得越来越重要.室外定位技术以全球定位系统为基础,包括美国的GPS定位系统,俄罗斯的GLONASS定位系统以及我国自主研制的北斗卫星导航定位系统,利用这些定位系统可以 ...

  4. 基于嵌入式linux 的车载定位系统设计,基于嵌入式Linux的GPS车载定位导航系统设计...

    摘要: 随着汽车产业的迅速发展,GPS车载导航系统得到了越来越广泛的应用,已成为汽车上的重要配置,为用户提供便利.另一方面随着计算机技术.通信技术的迅猛发展,微型化和专业化成为发展的新趋势,嵌入式系统 ...

  5. android室内定位+3d,基于Android平台的手机室内定位及导航的设计与实现

    摘要: 随着无线通信网络技术的发展,智能手机逐渐融入到人们的日常生活中.它不仅满足当今人们对于通话短信等基本功能的需求,而且还满足人们对于娱乐.上网.社交等功能的需求.导航功能是现在人们常用的一个功能 ...

  6. 基于引导滤波的暗通道matlab,基于加权引导滤波的水下图像增强算法

    在水下环境中,由于水分子以及溶解的杂质对光线的吸收和散射作用,导致水下图像出现对比度低.噪声较大等严重的退化问题.这不仅降低了图像的整体视觉效果,而且给后续图像的自动处理和识别产生不利影响.因此,研究 ...

  7. 煤矿,隧道,管廊高精度人员定位_基于UWB技术的TWR一维定位方案介绍

    针对工业/汽车.物流仓储.传统制造业.电力行业.医疗保健.高危化工业.隧道/管廊.建筑工地.公检司法的重点安保区域等高精度人员定位需求,SKYLAB推出了基于UWB技术的定位系统.通过在定位区域内部署 ...

  8. 二维海浪波数谱的matlab,基于波数谱的风涌分离算法研究

    哈尔滨工程大学 硕士 2018 基于波数谱的风涌分离算法研究 Research on Wind Sea and Swell Separation Algorithm Based on Wave Num ...

  9. matlab基于傅立叶变换的时域或频域算法计算多普勒频移,展示代码

    可以使用MATLAB的Fourier变换函数fft()来计算多普勒频移.示例代码:%% 计算多普勒频移% 加载信号 x = load('signal.mat');% 计算傅立叶变换 X = fft(x ...

最新文章

  1. 后缀数组的学习(三):SA数组实现代码分析
  2. python后端从数据库请求数据给到前端的具体实现
  3. 基于 Blazor 开发五子棋小游戏
  4. php 递归展现城市信息,PHP 递归兑现层级树状展现数据
  5. app推送以及提示音java,springboot 整合 Jpush 极光推送
  6. linux 内核宏container_of剖析
  7. 洛谷入门题P1008、P1035、P1423、P1424、P1980题解(Java语言描述)
  8. 【100题】第十二题(特殊的递加)
  9. c - 比较字符串的大小
  10. php html显示mysql数据库_从数据库调出数据显示到页面 PHP+Mysql+Html(简单实例)...
  11. ab753变频器参数怎么拷贝到面板_20款常用变频器密码,想成为电工老师傅你一定需要,纯干货分享!...
  12. native method jvm
  13. python3+selenium获取列表某一列的值
  14. 【一天一个C++小知识】003.C++中的void指针类型
  15. 【TWVRP】基于matlab遗传算法求解多车场带时间窗的车辆路径规划问题【含Matlab源码 1035期】
  16. 为什么visual的联机浏览功能不能用_Minecraft非正版联机教程
  17. 【转】写给支持和反对《完全用Linux工作》的人们
  18. Audio-预训练模型(一):概述
  19. 含有js的英文单词_常用的js单词整理
  20. 即食水产消费品公司“不等食品”获千万元级A轮融资,险峰长青领投...

热门文章

  1. Win10的几个实用技巧系列之win10和win8系统哪个好用、系统任务栏和窗口假死的解决方法
  2. 常见的代码编辑器有哪些?
  3. 批量关闭公众号推送_微信发大招,长期不读的公众号可“批量关闭”!
  4. 海外社交媒体平台如何选择
  5. 腾讯地图javascript API实现地图模糊搜索标记,经纬度输入及点击双向定位
  6. Java 内存模型如何保证多线程安全
  7. linux ohmyzsh shell主题包以及修改shell命令
  8. seo关键词排名优化的方法
  9. 这款小巧精致的 Keychron K7 满足了我对键盘的所有想象
  10. zabbix监控mysql主从与主从延迟