本发明属于时间同步领域,具体涉及一种带有动态校准功能的时间同步系统及方法。
背景技术:
随着位置服务需求的多样化,室内复杂场景的定位越来越受到重视,衍生出了机器人室内定位、施工人员场内定位、物资精确定位等各种应用场景。
由于室内定位环境复杂,无线信号会产生多径效应,对于tdoa定位系统来说提高时间同步的精确度减少多径效应带来的同步误差才能使定位更精确。而目前各种时钟同步系统中更多是从软件当中计算出补偿参数而缺乏真实的校准源。
技术实现要素:
针对上述技术不足,本发明的目的提供一种带有动态校准功能的时间同步方法。该方法可以在不改变组网方式的情况下实现基于真实校准源的时间同步动态校准。
本发明解决其技术问题所采用的技术方案是:一种带有动校准功能的时间同步方法,包括以下步骤:
主定位基站向某从定位基站发送时钟同步包,该从定位基站接收到时钟同步包后发给下一个从定位基站,直到到达尾端定位基站;
所有定位基站接收定位标签发送的时间信息;将发送时钟同步包的定位基站作为同步发送基站,接收时钟同步包的定位基站作为同步接收基站,当同步发送基站与同步接收基站收到相同的时间信息后进行定位解算,得到主定位基站时间zrg(m);
解算主机根据收到的定位基站对应的主定位基站时间zrg(m)解算校准用参数er(m),再将校准用参数er(m)发回所有的定位基站进行时钟校准,实现动态校准。
所述时钟同步包,包括同步包发送时刻和同步包序列。
同步发送基站发送时钟同步包的同步包序列为t(n)、t(n+1)、t(n+2)…,n为某时刻;同步接收基站接收的时钟同步包的同步包序列接收时刻相应记为r(n)、r(n+1)、r(n+2)…。
所述时间信息为定位基站接收到标签包的接收时刻信息。
所述定位解算包括以下步骤:
同步接收基站将接收时间信息的时间rg(m)转换为主定位基站时间zrg(m)发送回解算主机,转换如下:
zrg(m)=k(n)*(rg(m)-r(n+1))+t(n+1);
k(n)=(t(n+1)-t(n))/(r(n+1)-r(n)),
其中,k(n)表示同步接收基站与同步发送基站在t(n+1)与t(n)之间的时钟偏差斜率,m是处于t(n)和t(n+1)之间的某个时间。
所述解算主机根据收到的定位基站对应的主定位基站时间zrg(m)解算校准用参数er(m),包括以下步骤:
标签发送时间信息到达同步发送基站的时间,与标签发送时间信息到达同步接收基站的时间,二者的时间差为rg(m)-zrg(m),将时间差使用光速公式转换为标签与同步发送基站的距离、与标签到同步接收基站的距离二者的测量距离差d(m):
d(m)=(rg(m)-zrg(m))*c
其中,c为光速;
由标签位置和同步发送基站的坐标得到二者间实际距离d1;由标签位置和同步接收基站的坐标得到二者间实际距离d2;其中,同步发送基站坐标为(xs(0),ys(0)),同步接收基站的坐标为(xs(1),ys(1)):
d1=sqrt((xrg(1)-xs(0)*(xrg(1)-xs(0)+(yrg(1)-ys(0))*(yrg(1)-ys(0));
d2=sqrt((xrg(1)-xs(1))*(xrg(1)-xs(1))+(yrg(1)-ys(1))*(yrg(1)-ys(1)))
标签坐标为(xrg(1),yrg(1));
标签与同步发送基站间距离、标签与同步接收基站间距离之间差值称为实际距离差d=|d2-d1|;
根据测量距离差d(m)和实际距离差d再计算实际距离差与计算距离差的偏移值er(m)=d-d(m)。
所述er(m)通过循环迭代实现,包括以下步骤:
er(m)的各次迭代值为er(k);k=1…n,n为自然数;
将er(k)值传递给发送同步基站中的ptn,其中ptn=-er(k-1)*g,g∈0~1;
校正的同步包发送时刻序列:
t(n)'=t(n)+ptn;
t(n+1)'=t(n+1)+ptn;
将上述两个公式代入斜率以及同步计算公式得:
k(n)'=(t(n+1)'-t(n)')/(r(n+1)-r(n));
zrg(m)'=k(n)'*(rg-r(n+1))+t(n+1)';
整理得:
校正后的斜率:k(n)'=k(n);k(n)表示同步发送基站与同步接收基站在t(n)与t(n+1)之间的时钟偏差斜率;
校正后的主定位基站时间:zrg(m)'=k(n)'*(rg(m)-r(n+1))+t(n+1)+ptn;
再次计算校正后的测量距离差d(m)'=(rg(m)-zrg(m)')*c;m是处于t(n)和t(n+1)之间的某个时间;
下一次迭代计算er(k+1)=d-d(m)';
直至某个er(k)小于阈值,校正结束。
所述发送基站可以是主定位基站或从定位基站,同步接收基站是从定位基站或尾定位基站。
所述标签为与其相邻的同步发送基站和同步接收基站之间的标签。
一种带有动校准功能的时间同步系统,包括,多个定位基站和标签;
定位基站为主定位基站、从定位基站、尾端定位基站中的任意一种;一主定位基站、多个从定位基站、一尾端定位基站依次排序;
定位标签,设于任意两个定位基站之间。
本发明具有以下有益效果及优点:
1.提供了一种无级联限制的时钟同步方法,同时提供了一种动态补偿机制。
2.可以提高复杂环境下的时钟同步精度。
3.对于基站安装过程中的位置测定误差容量变大,降低了基站布置的复杂性。
附图说明
图1是本发明的系统框图;
具体实施方式
下面结合实施例对本发明做进一步的详细说明。
如图1所示,一种带有动校准功能的时间同步系统包括:多个定位基站和标签;定位基站为主定位基站、从定位基站、尾端定位基站中的任意一种;一主定位基站、多个从定位基站、一尾端定位基站依次排序。
定位标签,设于任意两个定位基站之间。
如图1所示,本发明硬件由固定标签、定位基站、poe交换机、解算主机四部分组成。
定位基站由一台主定位基站,2台从定位基站,一台尾端定位基站组成。
除尾端定位基站外其余定位基站均向外发送时钟同步包。
其中定位基站的组网形式为首尾顺序相连,从定位基站1接收主定位基站发送的时间同步包后进行时钟同步计算,然后将自己将要广播发出的时间转换为主定位基站时间再进行发出。
主定位基站‘同步包发送时刻’序列记为t(n),n为某时刻,从定位基站1接收主定位基站的包序列的‘接收时刻’相应的记为r(n),由公式(t(n+1)-t(n))/(r(n+1)-r(n))即可计算出从定位基站1与主定位基站的时钟偏差斜率k(n)。其他基站同理。
定位标签1发送的数据包只包含包序号一项参数,从定位基站1接收到标签发送来的数据包后产生的接收时间记为rg(m)(n<m<n+1),标签1发送的包序号作为定位同步使用,即所有的基站接收到相同的包序号才能进行用于定位解算。
主定位基站直接将接收到的标签信号发送回解算主机,从定位基站1将通过公式计算将接收时间rg(m)转换为主定位基站时间发送回解算主机,计算公式为:
zrg(m)=k(m)*(rg(m)-r2(n+1))+t(n+1)
在实际应用中t(n),t(n+1)即时钟同步包发送间隔,间隔越短时钟同步则越精确。当同步包序列丢失时,丢弃标签信号直至同步包序列恢复。
在主定位基站‘同步包发送时刻’t(n)(n=1,2,3…)中加入偏移校准参数ptn,即t(n)'=t(n)+ptn;将校准参数加入同步公式,同步公式经过简化:k(n)*(rg(m)-r(n+1))+t(n+1)+ptn,其中k(n)中的校准参数已经抵消,通过实时改变校准参数从而实现同步时钟的动态校准。同步计算公式与同步基站级数无关,同步校准参数也只影响下一级同步基站,所以同步级数理论上可以没有限制。
标定标签1的设置与普通定位标签相同,在布置的时候测定精确的相对位置记为(xrg(1),yrg(1)),并将位置输入解算主机。同时主定位基站以及从定位基站1的坐标记为(0,0)、(xs(1),ys(1))。
主定位基站与从定位基站1接收到标定标签1发来的信息通过同步计算公式变换为主定位基站时间rg(m)(主定位基站不需转换)、zrg(m),发送给定位解算主机,定位主机计算得知标签与主定位基站与从定位基站1的时间差为rg(m)-zrg(m),将时间差转换为距离d(m)=(rg(m)-zrg(m))*c,c为光速。
由标签和基站的坐标可计算出实际距离差d:
d1=sqrt((xrg(1)-0)*(xrg(1)-0)+(yrg(1)-0)*(yrg(1)-0))。
d2=sqrt((xrg(1)-xs(1))*(xrg(1)-xs(1))+(yrg(1)-ys(1))*(yrg(1)-ys(1)))。
d=|d2-d1|。
再计算实际距离差与计算距离差的偏移值er(m)=d-d(m)。根据测量距离差d(m)和实际距离差d再计算实际距离差与计算距离差的偏移值er(m)=d-d(m)。所述er(m)通过循环迭代实现,包括以下步骤:
er(m)的各次迭代值为er(k);k=1…n,n为正整数;
通过解算主机的数据下传通道将er(k)值传递给发送同步基站中的ptn,其中ptn=-er(k-1)*g,g∈0~1;er(m)的各次迭代值为er(k)偏差具有方向;
校正的同步包发送时刻序列:
t(n)'=t(n)+ptn;
t(n+1)'=t(n+1)+ptn;
将上述两个公式代入斜率以及同步计算公式得:
k(n)'=(t(n+1)'-t(n)')/(r(n+1)-r(n));
zrg(m)'=k(n)'*(rg(m)-r(n+1))+t(n+1)';
整理得:
校正后的斜率:k(n)'=k(n);k(n)表示同步发送基站与同步接收基站在t(n)与t(n+1)之间的时钟偏差斜率;
校正后的主定位基站时间:zrg(m)'=k(n)'*(rg(m)-r(n+1))+t(n+1)+ptn;
再次计算校正后的测量距离差d(m)'=(rg(m)-zrg(m)')*c;m是处于t(n)和t(n+1)之间的某个时间;
下一次迭代计算er(k+1)=d-d(m)';
通过多次的循环计算最终使得er(k)最小化,直至某个er(k)小于阈值,校正结束。