基于WOSS的NS-Miracle水声信道模拟方法扩展
2021-03-10路晨贺谷传欣梁洪全
李 莉,路晨贺,王 桐,谷传欣,梁洪全
(1. 沈阳化工大学计算机学院,辽宁沈阳110142;2. 通信网信息传输与分发技术重点实验室,河北石家庄05000;3. 北京信息科技大学传感技术研究中心,北京100631)
0 引 言
近年来,陆上无线传感器网络技术飞速发展,而水下无线传感器通讯网络还处于探索研究阶段,尤其是在海洋环境中,由于水下环境复杂而且不稳定,导致水下无线传感器网络通讯需要考虑多种可变因素的影响,如软表面和气泡层、鱼群、浮游微生物等不规则散射体,以及冷暖水团、湍流、层流、内波等。因此,采取实验的方法研究水声传感器网络相关技术不仅需要考虑众多因素的影响,而且需要大量的人力、物力资源和较长的研究周期。随着计算机技术的发展,利用计算机仿真技术进行水声传感器网络的建模、仿真,可以高效、便捷地模拟水下通信环境和水声通信过程,并对水声传感器网络的最新研究结果进行验证。
在水下无线传感器网络仿真中,由于水下环境复杂且不稳定,多径效应、多普勒效应、衰减现象严重,因此如何真实模拟水声信道环境是仿真技术的关键。水声传感器网络相关技术的研究仍处于初步阶段,目前仍没有一款完善的、专用的水声传感器网络的仿真系统能够模拟真实水声传播坏境[1]。
为了能够利用计算机模拟水下传感器网络的通信情况,众多研究者提出了各种可用于模拟水下网络通信的仿真系统。其中 Thomase[2]提出具有可视化界面的模块化仿真软件,使用者可以自己进行水声参数的设置,仿真方便,用法简单。但该软件信道建模时未考虑海水温度、深度、盐度等因素对信道的影响。同样,Aqua-Sim[3]和 UASim[4]这两款软件,在建立水声信道模型时模拟了水下环境,但也未涉及海水的这些相关因素。为了提高计算机模拟的真实度,Harris等[5]将海洋环境噪声模型添加到 NS-Miracle[6]仿真软件的信道模型中,从而可以模拟水下噪声因素对仿真实验的影响。
由于海水温度、盐度、深度、海底沉积物等情况对水下声波的传输具有一定的影响,因此为了更准确模拟水下传感器网络的通信特征,反映不同海域水下网络的传输情况,本文通过实现一组公共的C/C++类库集和 TCL映射,将世界海洋仿真系统(World Ocean Simulation System, WOSS)[7]引入网络仿真器(Network Simulator 2, NS2)和NS-Miracle仿真软件中,从而实现对Bellhop[8-9]水声传播模型的扩展。
引入世界海洋仿真系统WOSS与Bellhop之后的信道仿真结果与原有信道仿真结果相比,能更准确地模拟水声信道传输特性,使得水下无线传感器网络仿真更接近真实海洋环境,得到的仿真数据更具有实时动态性与可靠性。
1 水声信道模拟
1.1 Bellhop声射线模型
水声信道的计算和仿真中,Bellhop声射线模型可被列为使用频繁的模型之一。Bellhop作为在声场建模领域中重要的方法之一,其原理是通过计算声场模型,从而获取本征声线、传播损失等更多实用的数据。在Bellhop模型中,通过设置声速剖面、几何结构、海底地形及声波在海洋界面中的反射和折射损失等各种相关参数来得出所需海洋水声环境中声波传播的幅度和时延等数据。
Bellhop射线模型理论起源于亥姆霍兹(Helmholtz)方程:
其中:∇是哈密顿算子;k是波数;u是振幅。假定此方程的解为声压幅度函数F(x,y,z)和相位函数A(x,y,z)的乘积为
将上述解代入到式(1)中,可得:
在假设几何声学近似条件成立时,式(3)用来确定声线几何形状,而式(4)用来确定声波的振幅。
射线理论模型除了考虑本征声线等数据参数外,为了得到更真实的模拟水下环境的仿真结果,还需要在相应文件(水体环境、海面反射系数、海面形状、声速剖面图、海底反射系数、海底形状)中输入相应的海洋环境参数值来进行计算,从而才能得出相应的传播损失、声线到达时间等指标。Bellhop运行原理如图1所示。
图1 Bellhop输入/输出参数Fig.1 The input/output parameters of Bellhop
由图1可知Bellhop运行过程大体分为三部分,包括输入文件、Bellhop仿真器和输出文件。使用者需要提供Bellhop所需的各类输入文件,Bellhop仿真器利用这些输入数据计算便可得到输出结果。由图1可知,利用Bellhop仿真时,对于参数提供和输入的操作是比较复杂的,需要用户具备专业知识并且每一次的仿真都需要用户在代码中进行手动修改,因此,为了用户使用方便,我们将世界海洋模拟系统(WOSS)引入仿真系统,当用户进行仿真时,只需在Otcl脚本中输入相应位置的经度、纬度及深度,WOSS便可自动地将指定海域的相关参数提供给Bellhop,从而进行声场的计算。
1.2 水体环境模拟
水声通信特征的模拟对于水下传感器网络仿真结果的准确性至关重要,而水体环境因素(如海水深度、海底沉积物等)对水下声波的传输情况又有重要影响,因此水体环境建模成为水下传感器网络仿真的必要部分。为了真实地模拟水体环境,本文将世界海洋模拟系统(WOSS)引入仿真系统,为Bellhop射线模型提供海洋环境参数。
WOSS是一个开源的多线程框架,通过更逼真的声学传播计算方法来提高水下传感器网络仿真的可靠性。使用者可以通过输入海洋地理位置信息,然后调用WOSS对象来检索环境参数数据库,从而得到相应的水体环境数据。WOSS在仿真系统中的数据流向如图2所示,用户将要模拟的水下网络所处的地理位置信息(经度、纬度、深度)输入仿真系统中,仿真系统通过 WOSS自动检索海洋环境数据库获取该位置的水下环境参数,然后提供给信道模拟器Bellhop,Bellhop利用这些环境参数进行水下声场的计算,从而得出实际水下环境参数的仿真结果,最终将结果传递给网络仿真器。
图2 仿真系统中WOSS数据流向图Fig.2 Schematic diagram of WOSS data flow in the simulation system
WOSS框架接口主要分为3类,分别实现与网络模拟器、信道仿真器和环境数据库的通信连接。其具体工作原理和各主要类库之间的相互关系如图3所示。
图3 WOSS系统框图Fig.3 Block diagram of WOSS system
从图3中可以看出:网络仿真器的用户层负责将海洋地理位置参数传递给 WossManager,WossManager则负责从WossCreator请求一个Woss对象,WossCreator收到请求后会创建和初始化一个Woss对象,Woss对象用来通过WossDbManager去调用各个访问环境参数数据库接口类(WossBathymetryDb, WossSedimentDb, WossSSP-Db)及存储、检索信道仿真结果的接口类(WossResPressDb, WossResTimeArrDb)。Woss对象还可以调用ResReader和WossResReader去读取信道仿真器结果。
由以上分析可知,系统引入WOSS后,可以利用Bellhop实现对水下声场的模拟。但是海洋环境中,特别是浅海环境中存在着大量噪声,这些噪声都会影响水下传感器网络的数据传输。因此,水下传感器网络仿真系统中噪声模拟和信噪比的计算也非常重要。
2 噪声模型和信噪比SNR的计算
2.1 噪声模型
海水中的环境噪声是指除去换能器本身的噪声和所有能确定的声源所产生的噪声以外的噪声。海洋环境噪声源中最主要的是海洋湍流、船舶、风浪和热噪声。以下给出了这四种噪声源的功率谱密度经验公式[10],单位为 dB,功率谱密度参考值为
2.2 信噪比SNR和误包率的计算
其中:PI,i为到达接收端的干扰功率;Pi为干扰功率;ti是包i的传输时间段。如果ti≤t≤ti+Ti时,开关函数,其他情况下都等于0。在这一点上,Miracle对信噪比(Signal To Ratio, SNR)的计算是根据在想要传播的持续时间Tu内的平均干扰进行的:
3 模型测试
3.1 仿真平台可用性测试
为了测试引入 WOSS和 Bellhop后,NS2/NS-Miracle仿真平台是否能够正确运行,并尽可能真实地模拟水下声波的传输情况,本文选取了一个5个节点的集中式网络,其经度和深度平面视图的网络拓扑结构如图 4所示,网络 MAC协议使用Aloha协议。进行了3组仿真实验,仿真平台均为NS2/NS-Miracle仿真平台,都利用WOSS确定网络节点地理位置。第1组实验水声信道模型采用的是经验模型,第2组实验利用env类型的输入文件为Bellhop仿真器提供环境参数,第 3组实验则通过WOSS利用节点地理位置索引环境参数数据库,得到的参数传递给Bellhop仿真模型,Bellhop仿真模型计算结果再通过WOSS传递给网络仿真器。
图4 网络拓扑结构图Fig.4 Network topology structure diagram
三组实验采用的参数完全相同,如表1所示。网络中所有节点均布置在北纬42.59°,经度范围为10.125°E~10.162°E,每隔 0.01°布置一个节点,节点深度从水下 50 m到 55 m,每个节点深度间隔1 m,汇聚节点位于10.143°E,深度为水下5.5 m。三组仿真结果数据比较见表2。
表1 三组仿真实验参数Table 1 Parameters for the three sets of simulation experiments parameters
表2 三组仿真结果比较Table 2 Comparison of three sets of simulation results
比较结果显示,三组仿真数据比较接近,其中利用Bellhop信道仿真模型的两组实验平均吞吐量、平均延时非常接近,而利用经验信道模型的第一组仿真得到的平均吞吐量和延时与后两组数据的差别稍大,三者的平均误包率非常接近。这表明引入WOSS和Bellhop的NS2/NS-Miracle仿真平台能够正确模拟水下声信道传播特性,而由于WOSS可以检索全球范围内海洋数据信息提供给Bellhop信道仿真器,从而使网络仿真更接近实际水下网络通信情况,进而提高计算机仿真的可靠性。而且WOSS操作简便,只需给定仿真网络所处地理位置(经度、纬度和深度)即可。但是仿真耗时情况显示,后两组仿真时间比较长,特别是第三组,这表明利用Bellhop和WOSS会严重降低仿真效率。
3.2 信道模型测试
为了验证引入WOSS和Bellhop对仿真结果的影响,实验选取了3个不同的地理位置进行仿真,分别为意大利皮亚诺萨岛附近海域、美国波士顿附近海域和马来西亚马六甲海峡,采用经验模型、Bellhop模型以及引入WOSS参数的Bellhop模型的仿真系统对图4所示的相同的网络结构进行仿真和对比研究,得到的误码率和吞吐量结果如表3所示。
从表 3可以看出,在 3个不同的海域,采用Bellhop模型以及引入WOSS参数的Bellhop模型仿真结果中平均吞吐量、平均延时非常接近,而利用经验信道模型得到的平均吞吐量略低于另两种信道模型,误码率略高于另两种信道模型。值得注意的是,采用经验模型仿真系统的仿真结果在海域改变的条件下是不变的,而采用Bellhop模型与引入WOSS参数的Bellhop模型的仿真结果相近并呈动态性变化。由于引入WOSS系统后在仿真时调取了实验地点的具体环境信息,如深度、盐度、温度采样数据、海底沉积物数据等,这些因素均对水下声波的传输具有一定影响,因此导致实验结果略有不同,而采用经验模型仿真系统并不能考虑到实时信道特性,因此是固定不变的。同时,由于WOSS可以根据地理位置信息实时获取水下坏境参数,从而为 Bellhop提供信道仿真的输入参数,因此引入WOSS参数的Bellhop模型仿真系统仅需要输入相应仿真环境的地理位置(经度、纬度和深度)即可。由此表明采用引入WOSS参数的Bellhop模型仿真系统更加容易操作同时能够真实地模拟不同海域的通信情况。
4) 工程机械保有量非常可观,其中包括很大比例含有缺陷、存在风险、面临退役的工程机械设备。随着再制造核心技术逐步加强,产业化前景十分明朗。根据2015年统计数据最大值整理,总量为718万台。图1为截至2015年我国工程机械的保有量示意图[2]。
表3 有无WOSS仿真结果比较Table 3 Comparison of simulation results with and without WOSS
为了进一步验证WOSS对仿真系统的影响,本文分析了经验信道模型、Bellhop信道模型、引入WOSS的Bellhop信道模型对MAC协议的影响。仿真计算了3.1节所述网络环境采用3种信道模型时,ALOHA-CS协议仿真结果,如图5~7所示。
平均归一化吞吐量比较如图5所示,从图中可以看出三种模型下吞吐量均随着发包率的增加而逐渐下降,其中Bellhop模型与引入WOSS参数的Bellhop模型的归一化吞吐量数据非常接近,且在发包率 30~270 bit·s-1范围内一直高于协议在经验模型下的仿真结果。
图5 三种信道模型的归一化吞吐量仿真结果Fig.5 Simulation results of normalized throughput for three channel models
图6为网络数据包延时的仿真结果,从图中可以看出随着发包率的增加,3种模型下协议的平均延时均逐渐增大,其中Bellhop模型与引入WOSS参数的 Bellhop模型的平均延时在发包率 30~211 bit·s-1范围内稳步增加且非常接近,在发包率211 bit·s-1之后增加幅度变快,但始终低于采用经验模型下的协议仿真结果。
图6 三种信道模型的平均延时仿真结果Fig.6 Simulation results of average delay for three channel models
采用三种信道模型的网络平均误包率仿真结果如图7所示,三种模型下协议的平均误包率均逐渐增大,其中当发包率在 40~270 bit·s-1范围时,Bellhop模型与引入WOSS参数的Bellhop模型的误包率一直低于采用经验模型下的协议仿真结果。三种不同信道模型的协议的仿真结果表明,由于采用Bellhop模型和引入WOSS参数的Bellhop模型考虑到了实时海洋信道复杂特性,所以与经验模型相比,仿真结果更真实,同时考虑到引入 WOSS参数的Bellhop模型的仿真操作只需给定仿真网络所处地理位置(经度、纬度和深度)即可,所以采用引入WOSS参数的Bellhop模型的仿真更真实,操作更便捷。
4 水下传感器网络MAC协议仿真
为了进一步测试扩展后的仿真软件的可用性,本文利用 WOSS和 NS2/NS-Miracle仿真分析ALOHA-CS协议、CSMA/CA协议和DACAP协议在 5个节点的集中式拓扑结构(见图 4)的水声传感器子网中的性能。下面简要介绍一下三种MAC协议的工作原理和特性。
4.1 三种协议工作原理
ALOHA-CS协议是ALOHA协议的改进版本。ALOHA-CS协议[12]在ALOHA协议上增加了信道监听功能,当数据传输时,节点侦听信道,若有数据传输,则等待一个随机分布时间,再次侦听信道,进行下一次重传,若重传次数达到上限则放弃传输进行丢包处理。它的好处在于比较适用于业务量小的局部网络。
CSMA/CA协议是一种基于争用型介质访问控制的协议。CSMA/CA协议在CSMA协议上增加了RTS-CTS握手机制,解决了隐藏终端和暴露终端的问题。其原理是当源站给目的站发送数据时,若信道空闲则源节点会发送一个 RTS(Request to Send)帧,当目的节点接收到来自源节点的RTS帧时会回发一个 CTS(Clear to send)帧,源节点接收到 CTS帧后可以进行数据的传输,当数据传输完毕后,目的节点则会给源节点发送一个确认帧ACK,则完成数据传输。若源节点检测到信道被占用时,则会实行二进制随机退避算法进行退避等待重传[13],以确保接下来的数据传输阶段不会发生碰撞[14]。若重传次数达到上限则放弃传输并进行丢包处理。
DACAP协议是一种非同步数据访问方案。它遵循 RTS-CTS握手原则。根据同时存在握手的邻节点和相对距离,可能会出现两个相关的场景:(1)接收器在发送CTS后,无意中听到RTS,意味着将要通过邻节点传输的数据包在等待接收期间存在威胁,在这种情况下,接收器会向其发射机发送一个短的警告包;(2) 如果任何节点无意中听到了另一个邻节点的数据包,或者收到了接收方的警告,它将延迟数据的传输。DACAP协议选择空闲周期的长度是为了避免强干扰。其主要问题在于控制包的利用率较低[15],但是在网络工作量少的时候,其误码率较小。
4.2 仿真实验和分析
本实验中,网络数据产生方式为固定比特率,采用BPSK调制解调方式。仿真网络中节点的地理位置与第3节中的仿真网络节点位置相似,网络中所有节点均布置在北纬42.59°,经度为10.125°E~10.162°E,每隔0.01°布置一个节点,所有节点深度为海床之上5 m,即4个节点深度分别为57、75、85、86 m。汇聚节点位于 10.143°E,深度为水下1.5 m,其他实验参数与表1相同。
仿真实验分为3组,分别对3种MAC协议进行仿真,3组仿真参数完全相同。仿真实验设置每个节点的发包周期从15 s增加到200 s,共11组数据,每组实验重复 10次并取平均值,实验分组情况如表4所示。仿真平台跟踪了网络运行过程中每个发射节点与汇聚节点之间的数据传输情况,实验计算出了每次仿真的平均吞吐量、数据延时和错误包率。为了方便比较各个协议的性能,对平均吞吐量进行如式(9)所示的归一化处理:
表4 实验分组列表Table 4 Experimental grouping list
式中:τn为归一化吞吐量;τ为网络平均吞吐量;t为发包周期;LP为以字节为单位的包长。
仿真计算得到的三种协议平均归一化吞吐量比较如图 8所示,从图中可以看出,Aloha-CS和DACAP协议的吞吐量随着发包率的增加而逐渐下降,当发包率在 80~270 bit·s-1之间时,Aloha-CS协议的吞吐量一直高于 DACAP协议。这是由于Aloha-CS和DACAP协议都是通过信道侦听和避让时间来实现冲突避免机制,信道侦听和握手机制会消耗一定的时间并增加网络负担,因此在发包率增加的情况下网络吞吐量会下降,其中DACAP的握手和警告包机制相对于 Aloha-CS更为复杂,因此吞吐量性能更差。而在CSMA/CA协议中,当发射节点收到接收节点的确认消息后,无论网络是否拥挤都会将数据包发出,这种机制使得只要网络带宽足够,发包率的增加对网络吞吐量的影响不是很大,因此图8显示发包率对采用CSMA/CA协议的网络的吞吐量影响不大。
图8 三种MAC协议的归一化吞吐量仿真结果Fig.8 Normalized throughput simulation results of three MAC protocols
图 9为仿真计算的网络数据包延时的仿真结果,从图中可以看出,随着发包率的增加,Aloha-CS和DACAP协议的数据包延时逐渐增大,当发包率增加到100 bit·s-1时,DACAP协议的数据包延时已经达到700 s,这表明该协议已经无法正常工作,因此DACAP协议不适用于发包率高于100 bit·s-1的网络。当发包率在270 bit·s-1时,Aloha-CS协议的数据包延时达到了160 s,也基本无法正常工作。因此Aloha-CS协议不适用于发包率高于 200 bps的网络。这两种协议的数据包延时性能与其平均吞吐量性能一样受到了冲突避免机制的影响。而CSMA/CA协议的数据包延时先随着发包率的增加逐渐增加,当发包率大于 150 bit·s-1后,网络的平均数据包延时反而下降,并稳定在10 s左右,且整个过程的波动幅度都不是很大。值得注意的是,在发包率小于170 bit·s-1的范围内,Aloha-CS协议的网络延时要比其他两种协议小,这是因为在网络较空闲的情况下,Aloha-CS协议中发射节点不需要避让等待而直接发送数据,因此数据包延时很小。
图9 三种MAC协议的平均延时仿真结果Fig.9 Average delay simulation results of three MAC protocols
采用三种MAC协议的网络平均误包率仿真结果如图 10 所示,其中当发包率小于 30 bit·s-1时,Aloha-CS和DACAP协议的平均误包率均非常小,几乎为0。Aloha-CS协议的误包率随着发包率的增加呈逐渐变大的趋势,DACAP协议的误包率先随着发包率的增加逐渐变大,当发包率大于 100 bit·s-1后,增加趋于平缓。虽然CSMA/CA协议的误包率随着发包率的增加先增加后减小,但是整个过程误包率均小于0.1,表现出了较好的性能。
图10 三种MAC协议的平均误包率仿真结果Fig.10 Simulation results of average packet error rate of three MAC protocols
三种MAC协议的仿真结果表明,由于DACAP强烈的避免碰撞机制,虽然在发包率很低的情况下,其误包率几乎为 0,但是由于其性能受到握手时间(包括往返时间、包传输延迟和警告分配的时间)的限制,当发包率增加后其性能严重下降,甚至无法工作。该协议是以更低的吞吐量为代价来实现较高的成功率。
比较 Aloha-CS和 CSMA/CA协议,虽然Aloha-CS协议的数据包延时性能在发包率小于170 bit·s-1时优于 CSMA/CA,但其他情况下,CSMA/CA协议的各项性能均高于Aloha-CS协议,如果在数据流量大的情况下容易出现拥塞,产生较高的误码率。因此,经过多组仿真实验和分析比较可知,CSMA/CA相较于其他两种协议更适合于集中式结构的水下传感器网络。
5 结 论
本文在 NS2/NS-Miracle计算机仿真系统中引入了WOSS,利用WOSS自动获取指定位置的海洋环境参数,并传递给Bellhop进行水声信道模拟。另外,对海洋环境噪声进行了建模、仿真,用于进行信噪比的计算,从而使仿真系统能更可靠地模拟水下声信道的传播特性。并在此基础上,对ALOHA-CS协议、CSMA/CA协议和DACAP协议在扩展后的系统中进行了仿真和分析。结果表明,扩展后的 NS2/NS-Miracle仿真系统能够更准确地模拟MAC协议在实际水下网络中的相关特性,同时CSMA/CA相较于其他两种协议更适合于集中式结构的水下传感器网络。