1.基于UWB定位和ZigBee定位的机器学习融合方法,其特征在于,该方法具体包括以下步骤:步骤1,测出标签到两基站的到达时间差,利用基于ZigBee技术的TDOA算法计算距离,具体为:ZigBee定位系统由四个ZigBee模块组建而成,其中一个为协调器,作为标签,另外三个为终端设备,并作为主基站,网络拓扑结构为星形结构;
过程:
(1)测出两基站接收到的信号到达时间差;
(2)将时间差转换为距离,并代入双曲线方程,三组基站与标签形成双曲线方程组;
设两个基站为A和B,标签到两基站的距离之差为:d21=d2-d1=(t2-t0)C-(t1-t0)C=(t2-t1)C式中,d1为标签到基站A的距离,d2为标签到基站B的距离,t1为达到基站A的时间,t2为达到基站B的时间,C为光速,xb和yb为B在所建坐标系的位置,xm和ym为标签MS的位置;
将代入可得
式中, 将式展开得,
同理,对于C基站有下式:
式中,d3为标签到基站C的距离,d31标签到A基站和C的距离之差,xb和yb为在C所建坐标系的位置, 再写成两个方程写出矩阵形式:H·x=d1C+r
式中, 则可得
x=d1H-1C+H-1r
这时候,考虑实际误差,如
ej(t)=|xreal(t)-x(t)|,j=0,1,2,…,iej(t)为误差值,xreal(t)为真实的距离,i为现在得到的值,考虑到人正常行走的速度,进行均值滤波,即:其中xout为最后的输出数据,xi为得到TODA值,得到三组TODA测量数据;TODA测量数据,发到主基站上;
步骤2,通过TOF算法计算标签到各基站的距离,具体为:UWB定位系统由四个基站及一个标签组成,通过标签给基站连续发送数据包,然后基站记录下数据包到达的时间,通过探测数据包的飞行时间来得到标签到基站的距离,过程:(1)节点A向节点B发出数据;
(2)节点B向节点A发出数据;
(3)通过数据包达到的时间以及本身的运算时间,计算出双边飞行的时间,从而计算距离;
设:TroundA为节点A发出POLL数据包到接收到Ack数据包用的时间;TreplyB为节点B收到POLL数据包到发出Ack包所用的时间;TroundB为节点B发出POLL数据包到接收到Ack数据包用的时间;TreplyA为节点A收到Poll数据包到发出Ack包所用的时间误差项:设节点A的频率偏差为FdA,节点B的频率偏差为FdB;
数据包在空中传递的实际时间为
加上误差后,数据包的传递时间为
其中c为光速,T为往返总时间,D为两者距离;
这时候,考虑实际误差,如
ej(t)=|Dreal(t)-D(t)|,j=0,1,2,…,iej(t)为误差值,Dreal(t)为真实的距离,D(t)为现在得到的值,j为迭代值,考虑到人正常行走的速度,进行均值滤波,即:其中Dout为最后的输出数据,Di为得到TOF值,得到TOF的四组测距数据;
步骤3,将TODA得到的四组数据和TOF-TWF得到四组数据分别一一融合,具体为:利用ZigBee系统和UWB系统协同工作,用数据融合实现对未知位置的精准定位,数据融合的方法源于机器学习中的回归,通过在工地环境下,事先进行特定实验训练模型,并且实现精确定位;
过程:
(1)在实际环境下,搭建一个实验平台,使得标签以一个固定速度运动;
(2)利用测出的值来训练模型;
这里以一组基站到标签的数据为例,设UWB定位的值为xu,ZigBee定位的值为xz,w0,w1,w2为融合系数,hw(xi)为融合输出,则有:hw(xi)=w0+w1xu+w2xz写成矩阵为,
hw(xi)=WTX
其中 整理下式得:
XW=hw(xi)
假设有训练数据,
D={(Xz1,Xu1,y1),((Xz2,Xu2,y2)),...,(Xzn,Xun,yn)}式中,Xz1...Xzn和Xu1...Xun为实验中步骤1和步骤2得到数据,y1...yn为实验过程中给出得训练值,n为有训练的总量;
均方误差是回归任务中最常用的性能度量,让均方误差J(W)最小化,可得损失函数,接下来用梯度下降法求解损失函数得最小值:(1)首先对W赋值,
(2)改变W的值,使得J(W)按梯度下降的方向进行减少;
对损失函数求偏导数得,
之后是更新的过程,也就是wi会向着梯度最小的方向进行减少;wi表示更新之前的值,α表示步长,再使用矩阵表示E=X-y,
得到
最终得到模型的局部最优解,使用训练的模型来融合ZigBee和UWB的四对定位数据;
步骤4,Fang算法得到标签的坐标值,具体为:在三维直角坐标系中,设定定位目标的位置坐标为(x,y,z),主传感器的位置坐标为(x1,y1,z1),从传感器的位置坐标为(xi,yi,zi),定位目标与从传感器和与主传感器的距离差为Ri,其中i=1,2,3,4;由此得到:若其中的i=1,得
可得,
式中:xi.1=xi-x1,yi.1=yi-y1,zi,1=zi-z1;
如果把(x,y,z)作为未知数,那么式子则为线性方程;通过4个从传感器列4个方程,从而求解方程组得到目标位置(x,y,z)的值;设定主传感器的位置为(0,0,0),从传感器的位置分别为(x1,0,0),(x3,y3,0),(x4,y4,z4);此时可以得到解出x的值,再把x代入求得y,z的值;故只要知道主从传感器的位置(xi,yi,zi)以及相应的距离Ri,最终就得到工人的位置坐标;
步骤5.最终输出的定位坐标会因为各种原因导致数据跳动,所以必须对数据采用滑动平均滤波算法进行滤波,滤波公式如下:式中M为滑动窗长度,yi为第i组测量数据;k≥M,k为整数。