第九章物联网的仿真技术9.1仿真技术概述9.2常用的仿真平台9.3仿真平台的选择和设计9.4工程测试床9.1仿真技术概述物联网设计的评估方法:数学方法是根据一定的限定条件和合理假设,对系统进行描述,抽象出研究对象的数学分析模型。物理测试是建立测试床和实验室,搭建网络研究所需的硬件和软件配置环境,建立具有特定特性的实际网络。计算机仿真是在PC机上利用网络模拟软件来仿真网络系统的运行效果。计算机仿真技术是通过建立网络设备、链路和协议模型,并模拟网络流量的传输,来获得网络设计所需的网络性能数据。计算机仿真方法在物联网的设计中最具有应用优势。因为计算机仿真可以解决大规模物联网系统构建的困难,节约成本。计算机仿真方法具有以下特点:模拟实验机理科学,使得这项技术具有在高度复杂的网络环境下得到高可信度结果的特点。使用范围广,既可用于现有网络的优化和扩容,也可用于新网络的设计,特别适用于大中型规模网络的设计;初期应用成本不高,建好的网络模型可以延续使用,后期投资还会不断下降。用户应用编程接口可视化工具网络模拟模型生成器模拟监视器流程模型协议模型拓扑模型模拟引擎计算机仿真的软件体系结构9.2常用的仿真平台9.2.1TOSSIMTinyOS是为传感器网络节点而设计的一种事件驱动的操作系统,由加州大学伯利克分校开发,采用nesC编程语言和组件架构方式,能快速实现各种应用。TOSSIM工具的体系结构①编译器支持②执行模式③硬件模拟④无线模型⑤仿真监控如何采用TOSSIM模拟器运行TinyOS程序?在PC机上安装好TinyOS之后,可以按照如下步骤打开TinyViz界面,执行某个应用程序的仿真任务。第一步:打开cygwin应用程序,进入目录c:/tinyos/cygwin/opt/tinyos-1.x/apps/TestTinyViz,其中最后一级的目录为应用程序,用户自己可以选择。第二步:运行命令:makepc第三步:运行命令:build/pc/main.exe-pthread26。该命令的格式为build/pc/main.exe[options]node_nums,其中options的参数值可以查阅相关的帮助文档。这里模拟的网络节点数目node_nums取作26。第四步:运行命令:exportDBG=usr1第五步:打开另外一个cygwin应用程序(注意不要关闭cygwin先前的应用程序),进入c:/tinyos/cygwin/opt/tinyos-1.x/tools/java/net/tinyos/sim目录。第六步:运行命令:makemake命令运行的结果第七步:运行命令:tinyviz–runbuild/pc/main.exe26最后可以看到TinyViz仿真结果的显示界面。运行26个节点的TOSSIM仿真界面Layout布局的下拉菜单项TOSSIM的显著优点是它运行在PC机上,利用传统的调试工具来调试nesC程序。gdb不是专门为nesC设计的。nesC中的组件描述意味着单个命令可能有多个提供者,单个命令必须指定所处的模块、配件或接口,才能唯一地确定究竟是哪个命令。9.2.2OMNeT++OMNeT++是ObjectiveModularNetworkTestbed的简写,也被称作离散事件模拟系统(DiscreteEventSimulationSystem,DESS)。它是一种面向对象的、离散事件建模仿真器,属于免费的网络仿真软件。与其它网络模拟器不同的是,OMNeT++采用的是以C++为核心的工作模式。用NED语言生成的网络拓扑结构的脚本,在生成模拟器的目标文件时,是通过特殊的编译器改写成C语言代码,再嵌入到整个工程。9.2.3OPNETOPNET面向专业人士,帮助客户进行网络应用的设计、分析和管理。OPNET的四个产品核心:①OPNETModeler:为技术人员提供一个网络技术和产品开发平台,用于设计和分析网络和通信协议。②ITGuru™:帮助网络专业人士预测和分析网络的性能,查找影响系统性能的瓶颈,提出并验证解决方案。③ServiceProviderGuru:是面向网络服务提供商的智能化网络管理软件。④WDMGuru:用于波分复用光纤网络的分析、评测。OPNET的特点:(1)采用面向对象的技术。(2)提供了各种通信网络和信息系统的处理构件和模块。(3)采用图形化界面来建模。(4)在过程层次中使用有限状态机来对其它协议和过程进行建模,用户模型和OPNET的内置模型自动生成C语言。(5)内建了很多性能分析器,自动采集模拟过程的结果数据。(6)几乎预定义了所有常用的业务模型,如均匀分布、泊松分布等。Modeler提供了多种业务模拟方式,具有收集分析统计量、查看动画和调试等功能,直接收集各个网络层次的性能统计参数,编制和输出仿真结果的报告。9.2.4NS2NS(NetworkSimulator)是一种源代码公开的、免费的网络模拟软件工具,所包含的模块内容非常丰富,几乎涉及到网络技术的所有方面,成为了目前学术界广泛使用的一种网络模拟软件。在每年国内外发表的有关网络技术的学术论文中,利用NS给出模拟结果的文章最多,通过这种方法得出的研究结果也是被学术界所普遍认可的。在进行网络仿真之前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需编写OTcl脚本。另外是基于C++和OTcl编程的层次。如果NS中没有所需的网络元素,则需要对NS进行扩展,添加所需网络元素,即添加新的C++和OTcl类,编写新的OTcl脚本。NS2仿真过程的步骤:(1)编写OTcl脚本。(2)建立协议代理。(3)配置业务量模型的参数,确定网络的业务量分布。(4)设置Trace对象。(5)编写其他辅助过程,设定模拟时间,至此OTcl脚本编写完成。(6)用NS解释执行刚才编写的OTcl脚本。(7)对Trace文件进行分析,得出有用的数据。(8)调整配置拓扑结构和业务量模型,重新进行上述模拟过程。NS2仿真器封装的模块:(1)事件调度器(2)节点(3)链路(4)代理(5)包NS2软件由Tcl/Tk、OTcl、NS和Tclcl构成:Tcl是开放脚本语言,用来对NS2进行编程,Tk是Tcl的图形界面开发工具,帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,具有自己的类层次结构;NS模块作为这种软件包的核心,是面向对象的仿真器,采用C++编写,以OTcl解释器作为前端;Tclcl模块提供NS和OTcl接口,使对象和变量出现在两种语言中。9.3仿真平台的选择和设计物联网的仿真要能够在一个可控制的环境里,分析和研究它的网络性能和应用业务的实现情况,能够仿真数量众多的节点,并可以观察由不可预测的干扰和噪声引起的节点之间的相互作用,从而获取节点间组网和数据传输的具体细节。仿真平台所采用的设计方法也不一样,每个仿真器都是在某些性能方面比较突出,而在其他方面又不重视。在选择仿真平台时,需要综合考虑各个因素,在其中寻找一个平衡点以获得最佳的仿真效果。9.4工程测试床Motelab是哈佛大学开发的一个开放式传感器网络实验环境,是基于Web的传感器网络测试床。传感器网络传感器节点2传感器节点1传感器节点3传感器节点4本地用户因特网外部用户中心服务器以太网端口Motelab工程测试床的结构组成SensoNet工程测试床的结构组成SensoNet工程测试床的场景和部分实物本章总结利用仿真技术可以预先掌握物联网设计方案的运行效果,并可在科研项目实验中用来检验新型物联网理论和技术的性能。本章主要介绍了物联网仿真技术经常涉及到的一些仿真平台,并介绍了物联网工程测试床的若干案例。通过本章内容的学习,应理解物联网仿真技术的应用场合和时机,必须掌握常用的物联网仿真软件平台的特点,并能结合实际应用问题,正确地选择仿真平台。