0
点赞
收藏
分享

微信扫一扫

【WSN定位】基于RSSI和模拟退火粒子群优化算法的无线传感器网络定位算法附matlab代码

野见 2022-02-19 阅读 54

1 简介

无线传感器网络(Wireless Sensor Networks,WSN)作为21世纪最有影响力的21项技术和改变世界的十大技术之一,在工业领域,交通运输,医疗环保,军事管理等都有着广泛的应用。WSN通常由大量可以随机分布到无人值守的区域进行数据采集的无线传感器节点组成,因此很难获取节点的具体位置。目前成熟的GPS技术可以精确地获取每个节点的位置信息,但是由于GPS 定位的代价过高以及苛刻的环境的使用条件使得GPS 定位不能全面应用于 WSN。因此,通过使用定位算法,凭借少量确定位置信息的锚节点来估算未知节点成为相关研究中的热点。目前定位算法主要通过以下两个步骤实现:第一步测量出未知节点与锚节点相互的距离或角度关系;第二步需要运用上一步的测量信息来计算未知节点的位置信息。典型的距离测量技术包括利用 RSSI 的测距,利用AOA 的测距及利用 TOA 或 TDOA 的测距等。RSSI(Received Signal Strength Indicator)算法通过测量信号传输过程中的衰减程度计算未知节点与锚节点间的距离。AOA(Angle Of Arrival)算法的原理是通过信号到达接收端的角度来测量实际距离,TOA(Time OfArrival)算法和 TDOA(Time Difference Of Arrival)算法分别通过测量信号的传输时间和两个信号的到达时间差来计算未知节点与锚节点间的实际距离。

​本文提出了一种基于粒子群退火算法和RSSI的无线传感器网络的节点定 位算法.首先利用RSSI测距技术收集网络中节点间的通信讯息和距离估计,并优选信标节点;其次通过将定位问题视为一种优化问题,采用粒子群退火算法优化未 知节点的定位结果.仿真实验结果表明,所提出的定位算法有较高的定位精度.

2 部分代码

%三边测量的定位算法 %dA,dB,dC为三个信标节点到未知节点(假定坐标[x,y]未知)的模拟测量距离 function [P] = Triangle(S,dA,dB,dC)          %定义未知坐标x,y为符号变量     syms x y;          %距离方程,以信标节点为圆心,信标节点到未知节点的测量距离为半径作三个圆     f1 = (S(1,1)-x)^2+(S(1,2)-y)^2-dA^2;     f2 = (S(2,1)-x)^2+(S(2,2)-y)^2-dB^2;     f3 = (S(3,1)-x)^2+(S(3,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(((S(3,1)-x1(1))^2+(S(3,2)-y1(1))^2));     d1(2) = sqrt(((S(3,1)-x1(2))^2+(S(3,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(((S(1,1)-x2(1))^2+(S(1,2)-y2(1))^2));     d2(2) = sqrt(((S(1,1)-x2(2))^2+(S(1,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(((S(2,1)-x3(1))^2+(S(2,2)-y3(1))^2));     d3(2) = sqrt(((S(2,1)-x3(2))^2+(S(2,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;

3 仿真结果

4 参考文献

[1]范玉红, 彭宏, 朱陈良,等. 一种基于遗传模拟退火算法和RSSI的无线传感器网络定位算法[J]. 西华大学学报:自然科学版, 2010, 29(6):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

举报

相关推荐

0 条评论