一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法

文档序号:34181635发布日期:2023-05-17 09:18阅读:58来源:国知局
一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法

本发明涉及水下传感器领域,尤其涉及一种用于协调海洋无线传感器网络中节点间高效通信方法。


背景技术:

1、海洋传感器网络是由大量悬浮在水中特定深度的探测节点组成的探测感知网络。这种传感器网络可以覆盖一整片海域,采集其中的数据,如海洋流速、温度、盐度等海洋学数据,海洋微生物浓度、鱼类分布等海洋生物学数据,以及海底震动等地球物理学数据,因此在科学数据采集、灾害预警、海洋环境监测等民用领域和港口、锚泊地警戒,反潜、反蛙人作战等军事领域有重要作用和广阔的应用前景。

2、海洋传感器网络由大量探测节点组成,信息回传依赖于节点间的通信。常见的通信方式有两种,分别是有线通信方式和无线通信方式。有线通信方式是节点间使用海底光纤、海底电缆等连接,通过光、点信号回传数据。这类传感器网络通信速度快,传输信息量大,但是布设海底光纤、电缆的成本高,随着网络规模的增长和覆盖区域的扩大,其成本呈非线性增长,限制了这种网络的应用。无线通信方式是节点间使用无线通信手段进行信息交互。由于通信常用的电磁波段在水中衰减快,因此水下常用的无线通信方式主要有水声通信和蓝绿激光通信。蓝绿激光通信速度快,可以达到gbit的量级,但是一方面通信距离有限,只能达到百米的量级,另外一方面激光通信需要保持对准,而海洋环境中受海流的扰动,无法保证传感器节点处于静止的状态,因此这种通信方式也不适用于海洋传感器网络。因此海洋无线传感器网络的主要通信方式是水声通信。

3、用于水下无线传感器网络时,水声通信存在的两个最大问题是速度慢和存在相互干扰。即使使用高频水声通信,其速度也只能达到kbps的量级,因此每次通信时包含的信息量有限。当相互处于通信范围内的多个节点同时发声,或者某个节点的多个邻居同时发生时,接收端都无法解析出有效的信息,也就是在接受范围内,同一时刻,最多只能有一个发射端在发出消息。上述问题导致无线电通信领域常用的一些策略无法直接用于水下无线传感器网络。

4、例如tdma策略是无线电通信领域常用的一种mac层协议,其思路是将整个通信过程分为一系列周期,每个周期为一个通信帧。进一步,将每个通信帧分解为一系列时间片,通过一些策略,决定哪些节点在哪些时间片内广播消息,从而实现通信的协调。基于tdma架构,有很多针对无线电通信的协调策略,典型的思路有基于冲突试错的策略和基于主动协调的策略。

5、基于冲突试错的策略,最典型的方法slotted aloha协议,即节点依概率在某个时间片广播消息,如果发生了通信冲突,则以一定的概率在下一个时间片继续广播消息,直到成功完成广播。这种策略用于无线电通信时,由于无线电通信速度快,所以时间片很短,仅为几十毫秒,所以可以容忍多次发生冲突。而此策略直接用于水下无线传感器网络时,由于水声通信速度慢,每个时间片的长度为若干秒,频繁的通信冲突会将信息传输速度降低到无法接受的程度,因此这种方法不适用于水下环境中。

6、基于主动协调的策略,其思路是在通信包中包含用于协调通信路由的信息,如各节点的占据的时间片,各节点的一二阶邻居及其占据的时间片等。由于无线电通信的速度快,信息量大,可以在通信包中包含这些信息。但是对于水声通信而言,受通信量的限制,难以包含这些信息,因此这类方法也不适用。


技术实现思路

1、为协调现有技术海洋传感器网络中节点间的水声通信,本发明提出了一种基于生态位和费洛蒙机制的海洋传感器通信协调方法,部署在每个传感器节点上,使各节点可以决定在哪些时间片中广播消息,从而提高对时间片的占用率,降低通信冲突的概率,并加快信息回报到基站的速度。

2、本发明为实现上述目的所采用的技术方案是:

3、一种基于生态位与费洛蒙机制的海洋传感器网络通信协调方法,包括以下组成部分:

4、基于定长tdma机制规定的通信帧和通信时间片架构;

5、传感器节点集群部署和初始化方法;

6、基于生态位与虚拟费洛蒙机制的通信时间片抢占算法;

7、节点对时间片占用的冲突消解算法;

8、基于通信等待时间期望的最优通信包转发策略;

9、上述各组成部分被封装为通信协调器,部署在构成海洋传感器网络的每一个节点上;此通信协调器由时间片分配器和通信包转发协调器两个单元组成。

10、进一步地,所述时间片分配器基于权利要求1中所述:

11、基于定长tdma机制规定的通信帧和通信时间片架构,传感器节点集群部署和初始化方法,基于生态位与虚拟费洛蒙机制的通信时间片抢占算法,节点对时间片占用的冲突消解算法、方法策略开发;

12、所述通信包转发协调器基于权利要求1中所述:

13、基于通信等待时间期望的最优通信包转发策略、方法策略开发。

14、进一步地,所述基于定长tdma机制规定的通信帧和通信时间片架构,各节点遵循统一的时间节拍进行通信,具体规定为,传感器网络以通信帧为单位周期性通信,每个通信帧由若干个时间片组成;

15、对于包含n个节点的传感器网络,一个通信帧包含n个时间片,每个时间片的长度为:tslot=p×(tprocess+tprop),其中tslot为每个时间片的时长,tprocess为收发端和接收端进行信息处理所需的时间长,tprop为水声信号在水中传播所需的时长,p为保证信息有足够的时间被传递和处理的冗余参数,取值为1.2-1.5;tprop的计算方式为:tprop=dmax/1500,其中dmax为估计的节点间最远距离,由部署策略决定,1500为声信号在水中传播速度的近似值;

16、各节点通过对时处理,遵循相同的时钟信号;节点只允许在时间片的开始时刻发出消息,以保证每次通信过程都发生在一个时间片内;

17、对于任意节点,如果可以在当前时间片发出消息,则会在此时间片按照如下格式广播通信包:

18、<自身id,自身邻居id,强制要求放弃时间片id,接力转发信息节点id,消息转发代价crelay>

19、每个通信帧由一组时间片组成,对于由n个节点组成的集群,各节点的id依次为1,2,…,n;其通信帧也由n个时间片组成,其id也依次为1,2,…,n;与某个节点id相同时间片,称为此节点的同名时间片。

20、进一步地,所述海洋传感器网络由大量传感器节点组成,且节点可由飞机或船舶快速部署;因此节点的部署是随机;

21、系统初始化方法为,各节点进行时钟同步,且每个节点创建一个长度为n的列表,并以0.5的概率为其各位赋值为0或者1,与通信帧里的时间片对应;当相应位置为1的时候,表示此节点可以在此时间片发出消息,为0时,表示不在此时间片发出消息。

22、进一步地,所述基于生态位与虚拟费洛蒙机制的通信时间片抢占算法,通过生态位机制和虚拟费洛蒙机制协调节点抢占时间片;其思路是基于各节点的id号,生成各节点对时间片的不同偏好,也就是模拟生态位;对某个时间片偏好最强烈的节点优先占据此时间片;当节点尝试抢占某个时间片但是失败的时候,会在该时间片散布排斥费洛蒙(用一个计数器表示);当排斥费洛蒙浓度高到一定程度的时候,不再尝试抢占此时间片;具体算法如下:

23、输入信息:

24、idself:节点自身id

25、一二阶邻居id集合setneighbors

26、当前自身占领的时间片记录lspeak

27、上一次尝试占领的时间片记录ltrytooccupy

28、费洛蒙记录lpheromone

29、上一拍已经确认由自己占领的时间片lalreadyoccupied

30、用于记录运行周期的计时器counter=0

31、初始化:

32、tag_occupy_best_pos←false:表示尚未占领最优生态位所代表的领地

33、算法执行:

34、(1)if(新时间片):

35、(2)counter←counter+1

36、(3)获取时间片id:idslot

37、(4)if idself=idslot∧(counter%10=0)∧counter>2:

38、(5)lalreadyoccupied←lspeak

39、(6)

40、(7)

41、(8)if tag_occupy_best_pos=false:

42、(9)lbestpereference←getslotwithbestpereference()

43、(10)

44、(11)tag_occupy_best_pos←true

45、(12)else:

46、(13)for k=1,2,...,|lspeak|:

47、(14)

48、(15)

49、(16)pk←1,pk∈lspeak

50、(17)ltrytooccupy←lspeak

51、(18)for k=1,2,...,|lspeak|:

52、(19)

53、(20)pk←1,pk∈lspeak

54、其中函数getslotwithbestpereference()用于获取相对于所有一二阶邻居,当前节点生态位最优的时间片,其算法是:

55、输入信息:

56、idself:节点自身id

57、一二阶邻居id集合setneighbors

58、输出:

59、当前节点生态位最优的时间片序列lbestpereference

60、算法执行

61、(1)

62、(2)for i∈setneighbors:

63、

64、(3)for k=1,2,...,n,n为通信帧长度:

65、(4)

66、(5)lbestpereference←lbestpereference∪{k}

67、其中函数calenv(idnode)用于计算节点idnode对各时间片的喜好程度,返回相应的序列;其算法为:

68、输入信息:

69、id:待处理节点的id

70、n:集群中包含的总节点数目,也就是通信帧中包含的时间片数量

71、输出:

72、当前节点对各时间片的喜好程度组成的序列lenv

73、算法执行:

74、(1)

75、(2)metric←1

76、(3)pid←metric,pid∈lenv

77、(4)

78、(5)listids←φ

79、(6)for i=1,2,...,n:

80、(7)if pi≠0,pi∈lenv

81、(8)listids←listids.append(i)

82、(9)listids.append(listids[0])

83、(10)metric←metric+1

84、(11)for val1_index=0,1,...,|listids|-1

85、(12)val1←listids[val1_index]

86、(13)val2←listids[val1_index+1]

87、(14)middle_id←getmiddlevalue(val1,val2)

88、(15)if middle_id≠-1

89、(16)pmiddle_id←metric+id/n*0.1,pmiddle_id∈lenv

90、其中函数getmiddleval(val1,val2)的算法如下:

91、(1)res_val=getmiddleval(val1,val2,framesize=n)

92、(2)res_val←-1

93、(3)if(val1=val2):

94、(4)temp_val=round(n/2)

95、(5)raw_val←val1+temp_val

96、(6)if(raw_val<n)

97、(7)res_val←raw_val

98、(8)else:

99、(9)res_val←raw_val-n

100、(10)if(val1<val2)

101、(11)temp_val←round((val2-val1)/2)

102、(12)raw_val←val1+temp_val

103、(13)if(raw_val<n)

104、(14)res_val←raw_val

105、(15)else:

106、(16)res_val←raw_val-n

107、(17)if(val1>val2):

108、(18)temp_val←round((val2+n-val1)/2)

109、(19)raw_val←val1+temp_val

110、(20)if(raw_val<n)

111、(21)res_val←raw_val

112、(22)else:

113、(23)res_val←raw_val-n

114、(24)if(val2-val1=1∨(val2=0∧val1=n-1))

115、(25)res_val←-1

116、(26)return res_val

117、进一步地,所述节点对时间片占用的冲突消解算法,用于可以保证海洋传感器网络从任意状态收敛到不发生冲突的状态,具体算法如下:

118、输入信息:

119、输入信息:

120、idself:节点自身id

121、lspeak=[t1,...,ti,...,tn]:ti=1,当前节点在时间片i发声,否则不发声

122、记录是否要求邻居放弃时间片i

123、记录是否曾经要求邻居放弃时间片i

124、算法执行:

125、(1)if(新时间片):

126、(2)获取时间片id:idslot

127、(3)即节点需要在当前时间片发声:

128、(4)构建通信包,其中包含要求邻居放弃的时间片组成的集合

129、

130、(5)if与邻居发生通信冲突:

131、(6)if idslot≠idself:

132、(7)

133、(8)else:

134、(9)pass

135、(10)if没有接收到消息:

136、(11)

137、(12)

138、(13)if自身未发声且接收到多条邻居发出的消息:

139、(14)

140、(15)if idslot≠idself:

141、(16)

142、(17)else:

143、(18)

144、(19)

145、(20)if只接收到一条消息,包含要求放弃的时间片集合

146、(21)

147、(22)

148、(23)

149、进一步地,所述海洋传感器网络从任意状态收敛到不发生冲突的状态,所满足的条件如下:

150、对于某个节点a,在其发生时,所有可以接收到此消息的节点,称为此节点的一阶邻居;若某节点b是此节点a的一阶邻居的邻居,且节点b不是节点a本身或其一阶邻居,则称节点b为节点a的二阶邻居;

151、当传感器网络中,任何时刻,对于任何节点,满足如下两个条件时,传感器网络中不存在通信冲突:

152、条件1:节点不与自己的一阶邻居同时发出消息;

153、条件2:节点不与自己的二阶邻居同时发出消息。

154、进一步地,所述基于通信等待时间期望的最优通信包转发策略,各节点基于通信等待时间的期望计算广播消息的代价,并基于上述代价选择转发消息的目标节点,从而以最优链路将消息发送到目标节点;具体算法如下:

155、初始化:

156、构建邻居集合setneighbor,其中的每个元素为数组(idnei,ccost),依次为此邻居的id,和邻居转发消息到基站的代价。初始状态下setneighbor为空。

157、初始化自身信息组[crelay,idnext],其中crelay为当前节点将信息转发到基站的代价,idnext为下一个接力转发信息的节点的id;

158、若当前节点为基站,crelay=0,否则crelay=∞;对于所有节点,idnext=-1

159、算法执行:

160、(1)if(新时间片):

161、(2)setneighbor←setneighbor-neimiss,即删除已经不存在的邻居,neimiss为连续一个通信帧内未发声的邻居

162、(3)if自身应当在此时间片发声:

163、(4)if不需要传递通信包:

164、(5)广播维护通信网络的通信包,此通信包包含信息crelay

165、(6)else:

166、(7)计算自身发声等待时间的期望:

167、

168、其中tslot为每个时间片的时长,nframe为通信帧包含的时间片总数,为第i个时间片与下一个自身所占据的时间片之间间隔的时间片数量

169、(8)for i in setneighbor:

170、(9)

171、(10)存储信息

172、(11)获取的最小值相应的邻居id为idmin

173、(12)更新自身信息组[crelay,idnext],idnext=idmin

174、(13)构建转发通信包并广播,其中包含下一接力节点id为idnext

175、(14)else:

176、(15)if接收到通信包:

177、(16)更新setneighbor,向其中添加或重置信息发送者的信息

178、(idnei,ccost),依次为此发送者的id,和通信包中包含的信息crelay

179、(17)if通信包中包含需转发信息且下一接力节点为自身:

180、(18)切换为需要转发通信包状态

181、(19)if通信包中包含需要转发信息且该信息自身已转发:

182、(20)脱离转发状态

183、(21)else:

184、(22)pass

185、本发明具有以下优点及有益效果:

186、1、适合于水声通信组网。本方法可以让系统收敛到不存在通信冲突的状态,且所需的协调信息量少,适合于水声通信速度慢,通信量小的特点。

187、2、以分布式方式构建最短路径,实现信息快速回传。本方法在完成信息转发时,虽然没有任何一个节点有整个网络的全局拓扑信息,但是所形成的信息转发链路是从信息源到基站的最短路径,可以实现信息的快速回传。

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