基于RSSI测距的多边定位法
创始人
2025-06-01 06:04:17
0

基于RSSI测距的多边定位法

  • (一)实验目的
  • (二)实验内容
    • 1、RSSI测距原理
    • 2、多边定位法
  • (三)实验结果
  • (四)结果分析
  • (五)心得体会
  • (六)附录
    • 1、Python代码:
    • 2、B站讲解视频
    • 3、矩阵求导过程

(一)实验目的

1、学习RSSI测距的原理
2、学习多边定位法对RSSI定位的实现
3、用仿真实现RSSI定位

(二)实验内容

1、RSSI测距原理

RSSI测距方法是无线传感器网络中比较常用的一种测距方法。当无线信号在大气中传播时,由于各种因素的干扰,信号强度会随着距离的增大而衰减,这表明在信号强度变化与传播距离之间存在某种数学关系,利用这种关系建立起的数学模型就可以求出发射节点和接收节点之间的距离。在RSSI定位过程中,未知节点根据接收到的信号强度值来计算在传输过程中信号的损耗,根据建立的数学模型将传输损耗转换为距离,进而再根据多边定位法等定位方法来计算未知节点的位置。RSSI算法的计算公式如下所示:
PL(d)=PL(d0)−10nlgdd0−N0PL(d)=PL(d_0)-10nlg \frac{d}{d_0} -N_0 PL(d)=PL(d0​)−10nlgd0​d​−N0​
公式中各参数含义如下:

符号含义
ddd节点之间的距离
nnn信号衰减指数,常取值为2~4
d0d_0d0​参考距离
PL(d)PL(d)PL(d)距离发送节点d处的信号强度
N0N_0N0​均值为0,标准差为 σ 的高斯随机噪声变量
PL(d0)PL(d_0)PL(d0​)距离发送节点 d0d_0d0​ 处的信号强度,一般从经验或硬件说明定义中得到

2、多边定位法

在实际情况下测距是存在误差的,简单利用三边定位往往无法获得未知节点的准确位置。多边定位法是指根据多个锚节点(>3)和相应的测距结果,寻找一个使测距误差对定位精度影响最小的点,并以该点作为未知节点的位置。假设锚节点数量为n,其坐标分布为 Xi=(xi,yi),i=1,2,…,nX_i=(x_i,y_i ),i=1,2,…,nXi​=(xi​,yi​),i=1,2,…,n,并且这些锚节点与未知节点 X=(x,y)X=(x,y)X=(x,y) 间的距离分别为 ri,i=1,2,…,nr_i,i=1,2,…,nri​,i=1,2,…,n,则可以建立如下方程组:

从第一个方程开始分布减去最后一个方程,这样就可以消去方程组中未知节点坐标的平方项,获得如下n-1维线性方程方程组:

此方程组的矩阵表示形式为:
AX=BAX=B AX=B
其中系数矩阵A 和右边值向量B 为:

未知节点 XXX 为:
x=[xy]x= \left[ \begin{array}{cc} x \\ y \end{array}\right] x=[xy​]
由于测量误差的存在,实际的线性方程组应表示为:AX+N=BAX+N=BAX+N=B ,其中NNN为n−1n-1n−1维随机误差向量。对于该线性方程组,可以利用最小二乘法原理使随机误差向量N=B-AX模的平方最小,即‖N‖2=‖B−AX‖2‖N‖^2=‖B-AX‖^2‖N‖2=‖B−AX‖2最小,从而保证测距误差对定位结果的影响最小。
‖B−AX‖2=(B−AX)T(B−AX)=BTB−BTAX−XTATB+XTATAX‖B-AX‖^2=(B-AX)^T (B-AX)=B^T B-B^T AX-X^T A^T B+X^T A^T AX ‖B−AX‖2=(B−AX)T(B−AX)=BTB−BTAX−XTATB+XTATAX
把上式当作X 的函数并对其求导数,令导数等于零后得到:
ATAX−ATB=0A^T AX-A^T B=0 ATAX−ATB=0
该式被称为线性最小二乘问题的正则方程。在矩阵A 是满秩的条件下,该方程有唯一的解 X=(ATA)−1ATBX=(A^T A)^{-1} A^T BX=(ATA)−1ATB ,否则最小二乘法将不再适用。

(三)实验结果

实验使用 python 模拟RSSI采集,得到目标节点和锚节点的距离,再利用多边定位法,预测出目标节点的坐标。

1、 Python 仿真结果

从误差曲线图可以看出,随着锚节点数量的增多,定位误差呈下降趋势。
定位误差还与锚节点的分布有关,相同数量的锚节点,分布越分散,误差就越小。由于每一次运行的锚节点都是随机生成,所以误差曲线会有波动。

(四)结果分析

1、RSSI定位算法对锚节点数量有要求,二维定位至少需要三个锚节点,三维定位至少需要四个锚节点。
2、随着锚节点数增多,定位误差呈下降趋势。
3、定位误差与锚节点分布有关,锚节点分布越分散,定位误差越小。

(五)心得体会

RSSI算法中,因传感器节点本身就具有无线通信能力,所以这是一种低功率、廉价的测距技术,对硬件要求低且易于实现。但信号强度很容易受到周围环境的影响,如天气、障碍物等不利因素都会对信号强度产生不同程度的影响,会产生-150%~+150%的测距误差。可以通过建立合适的噪声差模型来有效地补偿环境产生的误差。
RSSI算法定位的误差结果还与锚节点的数量和分布有关,我们应该选取合适的锚节点数量,尽量让锚节点分散,减小误差。

(六)附录

1、Python代码:

完整代码已上传Github和Gitee:
https://github.com/hua-zi/wireless-sensor-network
https://gitee.com/huazi-j/wireless-sensor-network

2、B站讲解视频

https://www.bilibili.com/video/BV1jS4y1B7w9?share_source=copy_web

3、矩阵求导过程

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...