【技术实现步骤摘要】
一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法
[0001]本专利技术涉及水下传感器领域,尤其涉及一种用于协调海洋无线传感器网络中节点间高效通信方法。
技术介绍
[0002]海洋传感器网络是由大量悬浮在水中特定深度的探测节点组成的探测感知网络。这种传感器网络可以覆盖一整片海域,采集其中的数据,如海洋流速、温度、盐度等海洋学数据,海洋微生物浓度、鱼类分布等海洋生物学数据,以及海底震动等地球物理学数据,因此在科学数据采集、灾害预警、海洋环境监测等民用领域和港口、锚泊地警戒,反潜、反蛙人作战等军事领域有重要作用和广阔的应用前景。
[0003]海洋传感器网络由大量探测节点组成,信息回传依赖于节点间的通信。常见的通信方式有两种,分别是有线通信方式和无线通信方式。有线通信方式是节点间使用海底光纤、海底电缆等连接,通过光、点信号回传数据。这类传感器网络通信速度快,传输信息量大,但是布设海底光纤、电缆的成本高,随着网络规模的增长和覆盖区域的扩大,其成本呈非线性增长,限制了这种网络的应用。无线通信方式是节点间使用无线通信手段进 ...
【技术保护点】
【技术特征摘要】
1.一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,其特征在于,包括以下组成部分:基于定长TDMA机制规定的通信帧和通信时间片架构;传感器节点集群部署和初始化方法;基于生态位与虚拟费洛蒙机制的通信时间片抢占算法;节点对时间片占用的冲突消解算法;基于通信等待时间期望的最优通信包转发策略;上述各组成部分被封装为通信协调器,部署在构成海洋传感器网络的每一个节点上;此通信协调器由时间片分配器和通信包转发协调器两个单元组成。2.根据权利要求1所述的一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,其特征在于,所述时间片分配器基于权利要求1中所述:基于定长TDMA机制规定的通信帧和通信时间片架构,传感器节点集群部署和初始化方法,基于生态位与虚拟费洛蒙机制的通信时间片抢占算法,节点对时间片占用的冲突消解算法、方法策略开发;所述通信包转发协调器基于权利要求1中所述:基于通信等待时间期望的最优通信包转发策略、方法策略开发。3.根据权利要求1所述的一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,其特征在于,所述基于定长TDMA机制规定的通信帧和通信时间片架构,各节点遵循统一的时间节拍进行通信,具体规定为,传感器网络以通信帧为单位周期性通信,每个通信帧由若干个时间片组成;对于包含N个节点的传感器网络,一个通信帧包含N个时间片,每个时间片的长度为:T
slot
=p
×
(T
process
+T
prop
),其中T
slot
为每个时间片的时长,T
process
为收发端和接收端进行信息处理所需的时间长,T
prop
为水声信号在水中传播所需的时长,p为保证信息有足够的时间被传递和处理的冗余参数,取值为1.2
‑
1.5;T
prop
的计算方式为:T
prop
=d
max
/1500,其中d
max
为估计的节点间最远距离,由部署策略决定,1500为声信号在水中传播速度的近似值;各节点通过对时处理,遵循相同的时钟信号;节点只允许在时间片的开始时刻发出消息,以保证每次通信过程都发生在一个时间片内;对于任意节点,如果可以在当前时间片发出消息,则会在此时间片按照如下格式广播通信包:<自身ID,自身邻居ID,强制要求放弃时间片ID,接力转发信息节点ID,消息转发代价c
relay
>每个通信帧由一组时间片组成,对于由N个节点组成的集群,各节点的ID依次为1,2,
…
,N;其通信帧也由N个时间片组成,其ID也依次为1,2,
…
,N;与某个节点ID相同时间片,称为此节点的同名时间片。4.根据权利要求1所述的一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,其特征在于,所述海洋传感器网络由大量传感器节点组成,且节点可由飞机或船舶快速部署;因此节点的部署是随机;系统初始化方法为,各节点进行时钟同步,且每个节点创建一个长度为N的列表,并以0.5的概率为其各位赋值为0或者1,与通信帧里的时间片对应;当相应位置为1的时候,表示
此节点可以在此时间片发出消息,为0时,表示不在此时间片发出消息。5.根据权利要求1所述的一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,其特征在于,所述基于生态位与虚拟费洛蒙机制的通信时间片抢占算法,通过生态位机制和虚拟费洛蒙机制协调节点抢占时间片;其思路是基于各节点的ID号,生成各节点对时间片的不同偏好,也就是模拟生态位;对某个时间片偏好最强烈的节点优先占据此时间片;当节点尝试抢占某个时间片但是失败的时候,会在该时间片散布排斥费洛蒙;当排斥费洛蒙浓度高到一定程度的时候,不再尝试抢占此时间片;具体算法如下:输入信息:ID
self
:节点自身ID一二阶邻居ID集合Set
neighbors
当前自身占领的时间片记录L
speak
上一次尝试占领的时间片记录L
tryToOccupy
费洛蒙记录L
pheromone
上一拍已经确认由自己占领的时间片L
alreadyOccupied
用于记录运行周期的计时器counter=0初始化:tag_occupy_best_pos
←
False:表示尚未占领最优生态位所代表的领地算法执行:(1)IF(新时间片):(2)counter
←
counter+1(3)获取时间片ID:ID
slot
(4)IF ID
self
=ID
slot
∧(counter%10=0)∧counter>2:(5)L
alreadyOccupied
←
L
speak
(6)(7)(8)IF tag_occupy_best_pos=False:(9)L
bestPereference
←
GetSlotWithBestPereference()(10)(11)tag_occupy_best_pos
←
True(12)ELSE:(13)FOR k=1,2,...,|L
speak
|:(14)(15)(16)p
k
←
1,p
k
∈L
speak
(17)L
tryToOccupy
←
L
speak
(18)FOR k=1,2,...,|L
speak
|:(19)
(20)p
k
←
1,p
k
∈L
speak
其中函数GetSlotWithBestPereference()用于获取相对于所有一二阶邻居,当前节点生态位最优的时间片,其算法是:输入信息:ID
self
:节点自身ID一二阶邻居ID集合Set
neighbors
输出:当前节点生态位最优的时间片序列L
bestPereference
算法执行(1)(2)FOR i∈Set
neighbors
:(3)FOR k=1,2,...,N,N为通信帧长度:(4)(5)L
bestPereference
←
L
bestPereference
∪{k}其中函数CalEnv(ID
node
)用于计算节点ID
node
对各时间片的喜好程度,返回相应的序列;其算法为:输入信息:ID:待处理节点的IDN:集群中包含的总节点数目,也就是通信帧中包含的时间片数量输出:当前节点对各时间片的喜好程度组成的序列L
env
算法执行:(1)(2)metric
←
1(3)p
ID
←
metric,p
ID
∈L
env
(4)(5)listIDs
←
φ(6)FOR i=1,2,...,N:(7)IF p
i
≠0,p
i
∈L
env
(8)listIDs
←
listIDs.append(i)(9)listIDs.append(listIDs[0])(...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。