一种结合拓扑维护的分簇时间同步方法与流程

文档序号:12554731阅读:来源:国知局

技术特征:

1.一种结合拓扑维护的分簇时间同步方法,其特征在于,该方法包括:

选举阶段,系统选择连接性最大节点作为网络根节点;

分簇阶段,在网络事件异步且配备定向天线场景下,以网络根节点为起始完成网络分簇,同时完成网络初始同步;

同步阶段,通过簇内与簇间同步稳定同步效果;

维护阶段,就节点的移动入网与退网分别进行维护策略分析。

2.根据权利要求1所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,该方法具体步骤如下:

步骤A:选举阶段,选举阶段通过全向发现过程与定向选举过程选择网络中连接性最大的节点作为网络根节点,该网络根节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点;

步骤B:定向分簇阶段,网络节点时间异步,同时节点工作在定向模式,此时网络节点需要预先规划收发状态,此时节点以选举阶段根节点为起始,依照分簇规则将网络分成簇状网络,在分簇阶段传输分簇信息的同时会通过传播网络根节点的时钟信息完成网络节点的第一次初始同步;

步骤C:时间同步阶段,通过线性回归模型完成簇间节点的时间同步,而簇首节点对簇内节点迭代时间信息,促使簇内节点时间达到分布式一致收敛;通过分布式迭代与线性回归两种同步模型的混合,完成全网节点的时间同步;

步骤D:维护阶段,贯穿于整个网络,其维护包括两个方面,一是针对于节点移动的动态拓扑维护,包括节点的移动,入网以及退网三种状态;二是针对于时间同步的维护,周期性地传播同步信息以便维护时间同步的效果。

3.根据权利要求2所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的步骤A具体包括以下子步骤:

步骤A1:全向发现,在全向发现过程中,波束成形天线工作于全向模式,通过天线的DOA估计建立邻居节点的位置信息;全向过程假设节点周围邻居节点较分散,不存在多个节点位于同一节点的同一波束方向,否则将影响DOA估计的准确性;当网络对邻居节点方向发现比例超过阈值时,此时发现过程结束,节点保存邻居节点方向信息;

步骤A2:定向发现,定向发现过程刚开始时,由于网络节点异步,节点之间的时隙不一定对齐,因此不同节点负责维护自身周期与时隙;节点在每个周期开始时独立选择收发状态,发送状态节点从全向发现过程保存的邻居方向信息表中随机选择方向,并在一周期内保持方向不变,每个时隙持续发送选举数据包;由于节点间时隙不对齐,接收状态节点分别于所有接收方向停留至少超过一个时隙才可确保接收数据包,设定接收状态节点在每个接收方向停留两个时隙;发送状态节点一段时间后进入接收时隙,而此时接收状态节点将切换至发送时隙快速回复应答数据包,因此一周期内节点通信可完成收发两次交互,接收状态节点应答的数据包包含根节点选举信息。

4.根据权利要求3所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的定向发现选举出根节点,即节点解析选举数据包,根据以下规则更新根节点ID、根节点度数以及时间戳信息;

Step1.只有当选举数据包中的时间戳快于本地保存的时间戳时才更新时间戳信息;

Step2.只有当选举数据包中的根节点度数大于本地保存的根节点度数,或者两者度数相同,选举数据包中根节点的ID更小的情况下才更新节点本身的根节点ID与根节点度数信息;

该根节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点。

5.根据权利要求2所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的分簇规则采用的是3hBAC-B(3-hop Between Adjacent Cluster headers Using Beamforming antennas)算法,有效解决定向异步模式下的网络分簇。

6.根据权利要求2所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的步骤B具体包括以下子步骤:

步骤B1:开始时,分簇阶段对节点分别定义{Init,Head,Member,Guest,Competition}五种层级,其中Init层级表示节点初始状态,未被分配任何层级;Head表示簇首节点;Member表示与簇首节点相邻的簇成员节点;Guest表示与簇成员节点相邻的临时节点;Competition表示处于竞争簇首节点的状态。

节点被安排层级的同时会被分配三种分簇状态,分别是{UNSET,PENDING,SET},其中UNSET为初始化时未设置状态,PENDING状态为节点不知道自己是什么层级,处于暂定状态,SET状态为节点已定义某种层级,已确定状态,所有节点在初始化时被定义为Init等级与UNSET状态,接下来开始分簇流程;

步骤B2:网络在选举阶段已找到网络连接性最大的节点,网络节点同时保存自身邻居节点方向信息与度数信息,参考节点首先被定义为簇首节点,簇首节点将节点等级设置为Head,状态设置为SET;簇首节点工作在接收模式,其他的Init节点工作在发送模式;处于发送模式的节点从邻居节点方向信息表中随机一个方向作为发送方向发送分簇数据包,分簇数据包格式包括,分簇数据包标识Cluster、发送节点ID与度数、发送节点的时间信息、以及发送节点还有R时隙进入接收时隙;

簇首节点在T2时刻接收发送节点的分簇数据包,将其在邻居信息表中置为成员节点,并在T3时刻快速应答数据包,应答数据包格式包括应答数据包标识Reply、回复节点ID、回复源节点的层级、以及该节点接收选举数据包和回复应答数据包时刻信息;

步骤B3:接收节点接收并解析应答数据包,获悉簇首节点ID,知道自己属于哪个簇,若层级表示Head即为簇首节点回复的数据包,接收节点在T4时刻收到应答数据包,更新本地时间从而与簇首节点同步,同时将自身标识为簇成员节点,状态更新为SET状态,并进入接收模式;经过一段时间上述过程后,凡是层级不为Init的节点都已经至少与簇首节点完成一次同步,因此它们作为时间参考节点传播时间同步消息;

步骤B4:簇成员节点进入接收模式后,网络中其他Init节点仍处于发送模式,这些节点在与成员节点通信成功后,将成员节点ID保存至分簇节点信息表中,并将自己标识为Guest节点,Guest节点随机选择收发状态,即以概率pT选择发送状态,以(1-pT)的概率选择接收状态;由于与成员节点相邻的节点不一定是Guest节点,也有可能是其他簇的成员节点,因此将该节点设置为PENDING状态,轮询一段时间确定其真实层级;

网络依据当前分簇信息,选择下一个簇首节点,簇首节点需要满足两个条件:该节点为UNSET节点且该节点与Guest节点相邻,下个簇首节点是候选节点中度数最大的节点,若同时有两个候选节点度数相同,则选择ID更小的节点为本次分簇的簇首节点;与Guest相邻的节点被选为簇首节点的候选节点,设置PENDING状态,在网络中传播分簇信息,若候选节点在一定周期后仍然是簇首节点,则将其状态更新为SET,并以此簇首节点等级为基准修改簇内节点等级,一直重复此过程直到网络中找不到簇首节点为止;

步骤B5:Guest节点随机选择收发模式,所有未设置状态的节点与Guest节点通信后将自身标识为PENDING状态,表示其不确定自身被设置为何种状态;PENDING状态的节点在每个周期内随机选择收发模式,PENDING状态节点只与PEDNING状态节点通信;

处于PENDING状态的所有层级为Init的节点中度最大的节点将自身设置为Head等级,若在指定周期内其层级未被改变,则更新为SET状态,此时下一个簇首节点已经被确定了,其余节点以此节点为基准安排自身状态,当Guest节点一跳范围内存在簇首节点时,Guest节点升级为成员节点;

步骤B6:分簇阶段完成后,节点都以各自的身份加入相应的簇,整个分簇网络构建完成。

7.根据权利要求2所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的步骤C具体包括以下子步骤:

步骤C1:簇间同步,在分簇完成后每个簇存在一个簇首节点,簇间同步过程从根节点开始,根节点与簇内所有网关节点依照线性回归模式即公式(1-6)完成同步,簇内网关成员节点与簇首节点完成同步后,向其他簇的网关节点传播同步信息,其他簇内网关节点同样依照线性回归模式同步,再与该簇簇首节点同步,从而完成不同簇间的簇首节点同步;

假设已同步簇的成员节点为A,未同步簇的成员节点为B,依照分簇算法,相邻两个簇的簇首节点至少相隔两跳的距离,因此相邻的簇首节点只可以借助网关节点通信;节点A向节点B发送同步消息,节点B根据节点A的时间信息,利用线性回归模型估计出节点A的时钟参数,依照公式(1-6)更新自身时钟参数;节点B利用A的时间信息同步后,在向B节点所在簇的簇首节点发送时间信息,该簇首节点依照节点B的时间信息完成同步,因此相邻簇节点同步依靠线性回归模型实现,簇首节点与网关节点完成同步过程与此相同;

步骤C2:簇内同步,只有当该簇的网关节点将同步消息扩散完成后簇首节点才发布簇内同步消息,簇内同步过程中节点发送相同格式数据包,同步数据包包含源节点ID,所在簇的簇首节点ID,源节点的等级,节点虚拟时钟节点虚时钟频率偏移以及虚时钟时偏补偿参数

簇首节点向簇成员节点发送同步信息,所有簇成员节点接收后向簇首节点发送同步数据包,簇首节点接收所有节点的同步数据包后,依据数据包中的内容可计算簇内节点频率补偿参数平均值

<mrow> <msub> <mover> <mi>&gamma;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>h</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>h</mi> </msub> </munderover> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <msub> <mi>&alpha;</mi> <mrow> <mi>h</mi> <mi>i</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中Nh表示簇成员节点个数,i表示成员节点编号,是指节点i的虚时钟频偏补偿参数,αhi是簇首节点h与簇成员节点i的相对频偏,可依照公式(1-2)计算:

<mrow> <msub> <mi>&alpha;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>&alpha;</mi> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <msub> <mi>T</mi> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>T</mi> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>T</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中αj(k+1)、αi(k+1)指节点j和i的第k+1个采集点的虚时钟频率偏移,Tj(k+1)、Ti(k+1)代表节点j和i的第k+1个采集时间;

簇首节点计算出邻居节点频率补偿参数的平均值,按照公式(1-3)更新本地补偿参数

<mrow> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>&rho;</mi> <mi>v</mi> </msub> <mo>)</mo> </mrow> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&rho;</mi> <mi>v</mi> </msub> <msub> <mover> <mi>&gamma;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中ρv是虚时钟频偏调整因子,指簇首节点h在第k个采集点的频率补偿参数平均值;

节点调整频率偏移的同时也调整时间偏移,簇首节点依据成员节点发送的节点时间计算簇内成员节点时间平均值

<mrow> <msub> <mover> <mi>T</mi> <mo>&OverBar;</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>h</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>h</mi> </msub> </munderover> <msub> <mover> <mi>T</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中为定义的网络节点i的虚拟时钟;

基于簇内节点时间的平均值,簇首节点依据公式(1-5)更新虚时钟时偏补偿参数

<mrow> <msub> <mover> <mi>&delta;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mover> <mi>&delta;</mi> <mo>~</mo> </mover> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&rho;</mi> <mi>s</mi> </msub> <mo>&lsqb;</mo> <msub> <mover> <mi>T</mi> <mo>&OverBar;</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mover> <mi>T</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

其中ρs是虚时钟时偏调整因子,指在第k个采集点的节点时间平均值,指第k个采集点的虚拟时钟;

簇首节点更新频率与偏移补偿参数,向成员节点传播簇首节点虚时钟补偿参数与时间戳,成员节点按照公式(1-6)(1-7)更新频率补偿参数以及时间补偿参数:

<mrow> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>&rho;</mi> <mi>v</mi> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>&rho;</mi> <mi>v</mi> <mo>&prime;</mo> </msubsup> <msub> <mover> <mi>&mu;</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <msub> <mi>&alpha;</mi> <mrow> <mi>i</mi> <mi>h</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mover> <mi>&delta;</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mover> <mi>&delta;</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>&rho;</mi> <mi>s</mi> <mo>&prime;</mo> </msubsup> <mo>&lsqb;</mo> <msub> <mover> <mi>T</mi> <mo>~</mo> </mover> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mover> <mi>T</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

其中αih=1/αhi是节点i与节点j的相对频偏,ρ∈[0,1]和ρ′∈[0,1]是虚时钟调整因子,簇首节点与成员节点分别通过公式(1-3)(1-5)和公式(1-6)(1-7)更新时钟补偿参数,最终可以达到簇内节点时间一致性收敛。

8.根据权利要求2所述的一种结合拓扑维护的分簇时间同步方法,其特征在于,所述的步骤D具体包括以下子步骤:

步骤D1:节点主动退网,簇内节点退网包含簇首节点与非簇首节点退网,Guest节点请求主动退网时,向管理它的成员节点发送退网申请,成员节点将其从邻居节点信息表中删除,成员节点请求主动退网时,向该簇的头节点发送退网申请,簇首节点将其从邻居节点信息表中删除,并向簇内其他节点发布该节点退网信息;

若簇首节点主动申请退网,其将向其成员节点发布退网通知,其成员节点收到退网通知后,选择附近的簇以Guest身份加入;若成员节点不能以Guest身份加入,则声明为Init层级,等待一定周期后再加入附近簇,至此,簇首节点完成主动退网操作;

步骤D2:节点被动退网,网络节点由于失效和被毁导致无法通知其周围节点退网消息就已经离开网络,此过程需充分利用TM-MAC协议中邻居节点发现阶段,检测簇内节点的运动情况,当节点在邻居节点发现阶段没有搜索到某邻居节点信息,无法知道该节点是移动出簇还是失效退网,此时按照节点移动维护方案维护网络分簇状态,从邻居方向信息表中删除该节点;

步骤D3:新节点入网,指新节点主动发送申请消息加入网络,网络中的节点接收到该节点的入网请求后与该节点完成一次时间同步,新节点完成同步后加入网络;

当新节点加入网络时,网络属于同步状态,而该节点时间与网络时间异步,此时需要修改TM-MAC协议,在TM-MAC协议中增加新节点接入帧,每隔一定周期进入接入帧,接入帧与普通帧结构相同,唯一的不同在于接入帧会增加两个子时隙用于新节点接入;

在原有的TM-MAC协议的搜索阶段中,包含OT、SRTS与SCTS子时隙用于邻居节点发现,其中OT子时隙时节点工作在全向模式,节点随机选择收发状态广播训练序列,接收到训练序列的节点根据DOA估计邻居节点方向,当节点估计到邻居节点方向后更新邻居节点方向信息表;

在SRTS子时隙,此时节点工作在定向模式,节点以pT的概率随机从邻居节点方向信息表中选择一个方向发送SRTS数据包,以(1-pT)的概率随机选择邻居节点方向信息表中的一个方向进行接收;若此时一对节点同时处于收发状态,则邻居节点之间可以建立连接,若接收节点收到多个数据包,将发生碰撞,此时隙发现失败;

在SCTS时隙中,节点同样工作在定向模式,此时上一子时隙中处于发送状态的节点切换为接收状态,接收状态的节点切换为发送状态,并且保持方向不变,在上一子时隙成功收到SRTS数据包的节点向相应的节点回复SCTS信息;如果节点A收到节点B的SCTS的信息,则认为邻居节点发现成功,通过SRTS/SCTS的二次握手可以检测到发现过程中的冲突问题,如果产生冲突,则此次发现失败,需要进行下一次的发现;

在TM-MAC协议中增加OL与SYNC子时隙,其中OL子时隙时新入网节点处于全网侦听阶段,其余节点在每个时隙随机选择全向收发状态,当一个节点在某个周期内处于发送状态发送训练序列后,其后两个时隙将处于全向接收状态,当新入网节点接收到训练序列时,其知道周围存在已经入网的节点,由于已入网节点将会在两个时隙后进入接收模式,因此新入网节点在接收训练序列后通过DOA估计估计接收发送并在其后两个周期向四周全向广播训练序列,已入网节点接收到新入网节点的训练序列后,通过DOA估计估计该方向,加入该节点的入网方向信息表;

等到系统进入至SYNC子时隙时,这个子时隙是用来定向发现新入网节点并与之完成一次同步,此时已入网处于接收模式,对入网方向信息表每个邻居节点方向轮询扫描两个时隙,新入网节点随机选择周围一个节点处于发送模式持续发送数据包,此时已入网节点可以与新入网节点通过双向模式完成一次同步,新节点即可加入网络中并可以运行同步MAC协议;

步骤D4:节点本身属于网络,但是由于节点的移动性导致节点暂时脱离网络一段时间后重新移动到网络内,此时可通过邻居节点发现阶段发现该节点加入网络,节点运行的帧格式与网络帧格式相同,TM-MAC在邻居节点发现阶段发现该节点后,该节点向周围节点发送入网请求,有节点接收该请求信息后,同意该节点入网申请。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1