




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OPNET仿真设计技术研究生技能训练计划毛玉明2010年9月第1页,共60页。IntroductionOpnet 仿真开发OPNET仿真设备组件构建仿真网络环境定义统计数据运行仿真仿真结果分析2第2页,共60页。实现仿真任务常规网络仿真使用OPNET提供的网络设备、信道组件图形编辑,构建期望的网络拓扑结构定义需收集的统计数据运行仿真,结果分析自定义网络仿真(自定义设备、协议、功能等)设计自己的网络设备设计设备协议栈:自定义协议模块+系统提供协议模块自定义协议模块:设计协议的状态机协议状态机:设计状态转移关系和处理函数用常规网络仿真,并加入自行设计的网络设备如果掌握了自定义网络设备的设计,就掌握
2、了灵活运用OPNET的主动权!Introduction3第3页,共60页。自定义设备的设计Process model rip_udp_v3设备模型Network(Consists of Device)Node(Consists of Process)Process(Consists of State Machine)State Processing(Consists of Proto-C)设计设备的协议栈,其中某个(某些)协议进程是自行设计的设计协议的状态转移模型设计状态处理函数Introduction4第4页,共60页。掌握OPNET的使用技巧任务驱动式的学习和掌握OPNET1、掌握OPNE
3、T使用的最基础的入门方法2、从最简单的场景入手,为自己定义一个仿真任务3、设计中学习,有针对性的需要什么就学习什么4、步步为营,循序渐进5、勤查阅OPNET的帮助6、对不清楚的问题,连猜带蒙其关键字(帮助文档)Introduction重要提示: 等学习完OPNET的所有(部分)后,才开始动手做 开始就面对完整的仿真方案,因为可能遇见的未知因素太多5第5页,共60页。OPNET 仿真设计任务驱动ALOHA系统仿真场景: 无线信道上N个站点的简单网络N个发送站点、一个接收站点(便于仿真统计)站点:自定义ALOHA设备链路层实现的功能有数据报文,就直接发送到无线信道上从无线信道上收到报文,统计后销毁
4、仿真内容运行仿真k次,每次变化报文发送总量G:归一化值= 发送总量/信道容量0.1,0.2,0.3,0.91.0,1.5,2.0,2.5,3.0,3.5,4.0每次仿真,得到统计量为接收报文总量S:归一化值=接收总量/信道总量结果期望与已知的ALOHA的G-S曲线吻合TxTxTxTxTxRx0.50.18GSIntroduction6第6页,共60页。ALOHA设计任务安装Opnet14.5安装Visual Studio(若未安装)安装主系统安装仿真模块安装帮助文件安装License连接Opnet与Visual Studio设计节点及协议栈节点设计节点图标节点属性设置协议栈设计协议栈结构设计指
5、派Process的协议状态机协议属性设置设计协议状态机设计状态转移图定义转移事件定义处理函数设计函数功能设计状态机软件状态内嵌入口函数、出口函数状态转移函数仿真场景设计及仿真运行设计网络拓扑结构设置仿真运行参数仿真运行仿真结果分析仿真数据曲线图曲线图分析Introduction7第7页,共60页。安装 Visual Studio 6.0/2005/2008安装Opnet主系统安装Opnet 模块库安装Opnet 帮助文件系统安装Opnet License配置Opnet 与VS 连接LAB1:安装 Opnet 14.58第8页,共60页。安装Visual Studio 2003/2005/200
6、8若已安装,跳过此步骤自行解决安装问题安装Opnet(需在断网情况下安装)Opnet 主系统modeler_100A_PL1_win32.exeOpnet 模块库models_145A_PL1_27Feb08_win.exeOpnet Lisence OPNET.Modeler.11.5.License.MakerFFS.exe安装 OPNET9第9页,共60页。配置OpnetOpnet 与Visual Studio的连接若安装的是Visual Studio 2003 不需要配置,直接可用若安装的是2005或2008,需重新编译op_runsim_dev编译op_runsim_dev参照说明1
7、4.5.Asysetcreadme.c+ (编译说明文本): opnet 安装路径编译方法启动Visual Studio进入Visual Studio的命令提示dos界面工具Command Prompt将readme文件中的两个LINK 命令在dos下运行即可Command Prompt安装 OPNET10第10页,共60页。配置Opnet设置运行环境控制面板性能与维护系统高级 中设置环境变量需设置的环境变量PATH= ;%path%INCLUDE=;%include%LIB=;%lib%LIBPATH=;%libpath%的内容开启dos窗口:“运行cmd”开启Visual Studio “
8、command prompt” dos 窗口分别两个窗口中键入“PATH”两个窗口不同的部分即是的内容INLCUDE、LIB、LIBPATH环境变量处理类似安装 OPNET11第11页,共60页。LAB1小结安装Visual Studio 和Opnet后连接使Opnet能用VS 编译Opnet的代码能用VS调试Opnet代码编译op_runsim_dev使Opnet的运行软件与安装的VS系统匹配设置环境变量为Opnet提供VS文件的路径安装 OPNET12第12页,共60页。设计节点及协议栈节点设计节点图标节点属性设置协议栈设计协议栈结构设计指派Process的协议状态机协议属性设置LAB2:
9、设计节点及协议栈13第13页,共60页。ALOHA节点协议栈设计ALOHA节点的最简协议栈物理层:OPNET的无线收、发模块链路层:OPNET的Process模块AMac需要定义该模块的状态机上层OPNET的报文发生器模块(Gen)OPNET的报文销毁模块(Sink)说明Gen按设定参数产生报文,递交到AMac上AMac将报文送到WTx模块,在那儿送上无线信道接收情况类似AMac功能似乎除了上下传递报文,没干什么事了验证Aloha G-S性能曲线,证明仿真方法的正确性为Slot-Aloha设计奠定基础节点设计WTxGenSinkAMacWRx14第14页,共60页。节点协议栈编辑Opnet的节
10、点编辑器FilenewNode Model图形编辑协议栈结构Process、ConnectionProcess 属性定义Name:定义名称Process Model:配置协议上层:simple source和sink系统提供的报文发生器和销毁器AMac:协议在后面自行设计完成自主设计后,菜单上才会出现节点设计编辑协议栈定义属性ProcessConnectionOpnet提供非常多的协议模型15第15页,共60页。Process接口定义概念:Opnet采用索引号标识报文的流向,供FSM使用输入索引:0,1,2,输出索引:0,1,2,用连接线的Attribute定义索引号索引号的作用状态机的输入输
11、出编程操作packet = op_pk_get(in_index);op_pk_send(out_index,packet);编程的宏定义#define STRM_WTX 1#define STRM_WRX 1#define STRM_GEN 2#define STRM_SINK 2发送Packet = op_pk_get(STRM_GEN);op_pk_send(STRM_WTX, Packet);接收Packet = op_pk_get(STRM_WRX);op_pk_send(STRM_SINK, Packet);节点设计建议:同一个方向上的输入输出用相同的索引号#define STRM
12、_WCHN 1#define STRM_UPPR 216第16页,共60页。无线收发信机参数设置重点关注参数Data Rate(1024 bps)信道容量Band Width(10kHz)Min Frequency(30MHz)Power(100W)建议修改后的参数Data Rate = 1000000bps (1Mbps)若报文长度取1000bits,则信道报文容量=1000报文/秒Band Width = 10000kHz (10MHz)带宽保守点,取信道速率的210倍Min Frequency = 2400MHz(2.4GHz)2.4G上视距传播几百米Power 取 1W足够注意:接收模
13、块要和发送模块的参数要设置成一致才能接收节点设计17第17页,共60页。节点(设备)接口设置InterfaceNode InterfaceNode Type:选择设备图标有三种类型,任选一种即可Attributes设置除了altitude(高度)外,其它先不管(改成Hidden)节点高度需要大于0,否则无线发送不出去节点设计报文发生器参数设置Process(Gen) Attributes分组到达间隔设置为 Promote to higher level提供给多次运行仿真时设定不同值(G值)分组长度注意对信道报文容量的影响开始时间:开始产生报文的时间(默认10秒)18第18页,共60页。节点设计
14、小结根据节点功能需求,设计节点的协议栈简单的图形编辑操作即可为每个Process配置协议构成需要的协议栈结构Opnet 提供了丰富的协议模块配置自定义协议,需完成协议状态机和编程后进行设置Process 的接口索引为Process 的状态机提供事件接口出/入接口索引号分别定义建议:同一个方向的出入口索引用相同的索引号信道机参数配置注意信道的bit容量和报文容量注意其它参数与信道容量要相匹配报文发生器配置报文速率、报文产生概率分布(注意与信道容量的匹配关系)注意产生报文的开始时间节点配置配置一个图标即可(除非有必要,可配置多个)节点属性配置,通常不需要,Hiden=隐藏不可见设备名称节点的文件名
15、即成为该节点设备的名称节点设计19第19页,共60页。LAB3:设计协议状态机设计协议状态机设计状态转移图定义转移事件定义处理函数设计函数功能20第20页,共60页。设计协议状态转移图AMac的ALOHA协议功能描述不管信道情况,想发就发收得到就收AMac协议状态转移图设计状态:描述协议过程中的不同工作阶段AMac只需一个阶段(一个状态)即能实现要求的功能其中Init状态是Opent要求的初始状态定义转移事件定义了两个转移事件产生了报文(PKT_ARVL)收到了报文(PKT_RCVD)定义处理函数PKT_ARVL事件,用pkt_send()函数处理PKT_RCVD事件,用pkt_recv()函
16、数处理状态机设计IdlePKT_ARVL/pkt_send()PKT_RCVD/pkt_recv()事件/处理Init21第21页,共60页。状态机仿真属性设置设置状态机的开始仿真事件InterfaceProcess Interface : Attributesbegsim intrpt: Enable ; 允许仿真开始事件,(初始化)其它属性不用考虑,统一设置为Hidden目的:让仿真开始事件触发状态机的初始化操作否则,第一个事件被当做仿真开始事件处理endsim不用Enable,状态机没有设置该事件的转移操作状态机设计22第22页,共60页。状态机的说明初始化状态机完成初始化后,转移到In
17、it状态协议动作描述当gen产生了报文(PKT_ARVL事件)调用pkt_send()函数处理当WRx收到报文(PKT_RCVD事件)调用pkt_recv()函数处理设计函数功能pkt_send():从Gen取得报文,送给WTx发送,更新发送统计pkt_recv():从WRx取得报文,送给销毁器,更新接收统计IdleInitPKT_RCVD/pkt_recv()PKT_ARVL/pkt_send()状态机设计23第23页,共60页。状态机与处理函数的关系不同的状态机设计,事件定义、处理函数功能也将随之改变对比AMac两种等效的状态机模型状态机设计IdleInitPKT_RCVD/pkt_rec
18、v()PKT_ARVL/pkt_send()IdleInitPKT_EVNT/pkt_proc()模型1模型2提示:1、状态机模型有多种形状的设计,需有针对性的设计处理函数2、模型1图形复杂些,但更清楚的描述出每种事件的处理动作、处理函数单纯3、模型2图形简单些,但对事件的处理描述模糊一些,处理函数复杂4、状态机与处理函数需要联合设计,在状态图和处理函数间复杂性取得平衡两个事件、两个处理函数 报文到达事件: 调用pkt_send()处理 (把报文交WTx发送) 收到报文事件: 调用pkt_recv()处理 (把报文送销毁器)一个事件、一个处理函数 报文事件: 调用pkt_proc()处理若(报
19、文来自Gen) 把报文交WTx发送若(报文来自WRx) 把报文送销毁器24第24页,共60页。LAB3小结状态机图形简单的图形编辑完成状态、事件、处理函数间的关系状态的设置影响事件的定义事件的定义影响处理函数的功能状态的含义协议的不同处理阶段、或协议的等待事件的位置状态不是越多越好,应在简化状态图和清晰描述间取得平衡实例:协议的描述与状态的设计两个对等实体A和B间的交互,A发送命令给B,B向A发回响应不正确的描述A向B发送命令,然后接收B的响应,若收到则,否则正确的描述A向B发送命令,然后等待B的响应,若响应到达则,否则原因A和B是不同的设备上的对等实体,不能期望下一个事件就是B的响应!等待B
20、的响应预示着对多种可能性的处理:B没有收到、B不回答或延迟回答、B的响应未能正确送回、A等待中又出现了其它事件(如定时器超时)状态设计等待B的响应应设置为一个状态期望接收对等实体的报文是一个相对漫长、且不确定性的过程其它:如等待上层的报文、等待定时器超时等IdleWait请求对方/发送命令超时/Next响应/下一步准备重发?/重发超次数/报告其它事件/处理强制状态(过渡)状态机设计25第25页,共60页。LAB4:协议状态机编程协议状态机软件设计状态机编程环境26第26页,共60页。状态机编程环境编程环境状态机编程头文件状态机全局变量状态机功能函数IdleInitPKT_RCVD/pkt_re
21、cv()PKT_ARVL/pkt_send()状态入口代码状态出口代码27第27页,共60页。状态机编程环境HB:头文件状态机接口定义,如:#define STRM_WTX 1#define STRM_GEN 2状态机转移事件定义,如#define PKT_ARVL (op_pk_type() = xxx)#define PKT_RCVD (op_pk_type() = yyy)函数原型定义,如void pkt_send(void);数据结构定义SV: 状态机全局变量定义定义状态机所有函数可直接使用的变量定义,如int Total_Sent_counter;Int Total_Recv_cou
22、nter;FB: 状态机功能函数各种功能函数体,如:void pkt_send(void) 。 状态机编程28第28页,共60页。状态机编程环境双击状态的上下半部,可分别编辑出入、口代码入口代码(Enter_Exec)每次进入该状态时需执行的代码可嵌入自己的代码例如:在Init的入口代码处可嵌入Total_Sent_Counter=0;Total_Recv_Counter = 0;完成对统计变量的初始化操作出口代码(Exit_Exex)当从该状态转移出去时首先需要执行的代码可嵌入自己的代码状态机编程Enter_ExecExit_Exec29第29页,共60页。状态机软件结构状态机软件整体架构状
23、态机编程当有事件(ev)发生时Switch(FSM_State)Init_Exit_Exec();FSM_State = Idle;Idle_Enter_Exec();Break;Case Init:If(PKT_ARVL)If(PKT_RCVD)break;Case Idle:Idle_Exit_Exec();pkt_send();FSM_State=Idle; Idle_Enter_Exec();Idle_Exit_Exec();pkt_recv();FSM_State=Idle; Idle_Enter_Exec();IdleInitPKT_RCVD/pkt_recv()PKT_ARVL/
24、pkt_send()状态机的软件整体结构由Opnet根据状态机图自动生成注意框架结构中: 转出状态前,先执行Exit_Exec() 转入状态前,先执行Enter_Exec()30第30页,共60页。AMac状态机软件设计编辑头文件(HB)Opnet 提供的、常用于组成转移事件的判断函数op_intrpt_type() 确定事件类型(各种事件类型见该函数的帮助文件!)op_intrpt_strm() 确定报文来源(接口索引号)op_pk_type() 确定报文类型状态机编程/ 事件类型=报文流/ 报文流来源 = 上层/ 事件类型=报文流/ 报文流来源 = 信道机31第31页,共60页。AMac状
25、态机软件设计定义状态变量 (SB)状态机的全局变量,任何位置都可访问到这些变量表格形式添加状态变量可以添加任何类型的状态变量任何类型的状态变量Opnet定义的类型各种类型的指针变量数据结构变量需要在头文件中先定义该数据结构AMac中定义的状态变量见图状态机编程32第32页,共60页。AMac状态机软件设计状态机编程定义状态机功能函数(FB)目前定义的两个函数pkt_send()pkt_recv()利用的Opnet函数Pakcet* op_pk_get(int in_index)从指定接口获得报文op_pk_send(Packet *p, int out_index)从指定接口送出报文33第33
26、页,共60页。AMac状态机软件设计入口、出口代码设计若某个状态没有入口、出口代码考虑,则可不管AMac需要对统计变量进行初始化初始化位置在几个地方可考虑:Init的入口代码Init的出口代码在Init向Idle的转移中(需定义一个函数来实现)在Init的入口代码中实现,见图状态机编程34第34页,共60页。AMac状态机软件设计Opent的强制、非强制状态含义非强制状态:有限状态机意义下的状态强制状态:Opnet编程意义下的过渡状态Opnet编程意义下的状态非强制状态等待事件发生的状态转入该状态后,停留在此,直到满足转出条件的事件发生非强制状态条件判断的状态转入该状态后不停留,根据条件判断实
27、现转移Opnet将条件判断强制设置为“状态”状态机编程转入转出等待事件转入条件判断转出非强制状态强制状态35第35页,共60页。AMac状态机软件设计强制状态的利用利用状态的入口、出口代码实现操作状态机编程IdleInitPKT_RCVD/pkt_recv()PKT_ARVL/pkt_send()IdleInitSendRecvPKT_ARVLPKT_RCVD将发送和接收处理代码分别嵌入Send和Recv的入口代码中,省却了编写处理函数InitIdlePKT_PPKT_EVNTFROM_CHN/pkt_recv()FROM_UP/pkt_send()功能等效的三种状态图头文件中#define
28、FROM_UP (from = STRM_HIGHER)#define FROM_CHN (from = STRM_WCHN)PKT_P入口代码中int from=op_intrpt_strm()36第36页,共60页。AMac状态机软件设计状态机编程状态机软件编译见图编译成功后回到节点协议栈在协议模块中可以找到该状态机将AMac配置成该协议状态机37第37页,共60页。LAB4:小结状态机软件组成软件框架结构(状态机的完整的软件结构)头文件、状态变量、功能函数、入口、出口代码灵活、组合运用强制状态的出入口代码、功能函数理解状态机软件的事件驱动运行机制每一个发生的事件触发状态机软件动作一次状态
29、机软件从当前非强制状态开始运行根据发生的事件产生转移,直到下一个非强制状态期间,执行了转移路径上的功能函数和出入口代码Opnet重要约定某个状态下发生了没有定义转移的事件,该事件将被Opnet丢弃优点:在某个状态下专注于特定的事件可能的问题:某些重要事件被丢弃设计细节仔细考察每个状态下可能发生的事件,确定哪些事件必须处理状态机编程38第38页,共60页。总结:自主设计网络设备定义设备的功能和接口设计设备的协议栈结构现有协议与自主协议的组合设计协议的功能和动作设计协议的状态机模型设计协议状态机软件39第39页,共60页。LAB5:仿真场景设计设置仿真场景配置仿真参数仿真试运行40第40页,共60
30、页。设置仿真场景定义Opnet仿真中的projectFilenewproject为project取个名Initial topology:Create empty scenarioNetwork scale:CampusSize: 10*10 kmTechnology: Choose your aloha nodeNode Modelsfixed Node by name找到自己设计的ALOHA节点,布置到场景中仿真场景设计41第41页,共60页。配置仿真参数DESConfigInputsObject Attributes: Add添加Node设计中的Prompt项仿真场景设计42第42页,共6
31、0页。配置仿真参数Prompt项报文产生间隔:指数分布,均值=0.05注意均值:信道速率=1M,报文长度=10000bits报文产生最小间隔=0.01(低于次值,信道将过载!)产生报文开始时间=0.01仿真场景设计43第43页,共60页。配置仿真参数ExecutionOPNET Debugger开启Debug仿真场景设计44第44页,共60页。仿真试运行Run 运行仿真可以看各种级别的动画显示仿真场景设计看到什么情况?45第45页,共60页。LAB6:ALOHA系统仿真仿真场景分析配置仿真参数仿真运行设置仿真运行仿真结果分析46第46页,共60页。仿真场景分析基本场景10个无线ALOHA站点,
32、都在无线覆盖范围内站点有报文就发送仿真分析报文发送总量所有站点发送量之和报文接收总量任一站点的接收量场景设计增加一统计节点统计从信道上接收的报文数各站点发送量在统计节点上累加仿真结束时,保存统计信息ALOHA仿真TxTxTxTxTxTxTxTxTxTxST47第47页,共60页。仿真参数设计信道容量信道速率1Mbps、报文长度10000bits信道报文容量 100/秒参数配置信道负载率 G=发送报文总量/信道报文容量信道效率 S=报文成功接收总量/信道报文容量站点发送量 g = G*报文容量/站点总数报文平均到达时间 t = 1/gG = 0.1 g = 1, t =1秒G = 0.3 g = 3, t = 0.3秒G = 0.5 g = 5, t = 0.2秒G = 0.7 g = 7, t = 0.14秒G = 1.0 g = 10, t = 0.1秒G = 1.5 g = 15, t = 0.07G = 2 g = 20,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年电子商务教育资源的整合与利用试题及答案
- 供应链优化的常用工具与试题及答案
- 消防考试实务操作试题及答案
- 城市供水战略合作合同2025
- LED显示屏广告合同协议书
- 出口货物运输代理合同模板
- 16 海上日出 教学设计-2024-2025学年语文四年级下册统编版
- 八年级英语上册 Unit 2 How often do you exercise Section A(Grammar Focus-3c)教学实录 (新版)人教新目标版
- 2024春七年级语文下册 第2单元 5黄河颂教学实录 新人教版
- 医师高级职称述职报告
- T-CSCP 0019-2024 电网金属设备防腐蚀运维诊断策略技术导则
- 2025中考道德与法治核心知识点+易错易混改错
- 《技术分析之均线》课件
- 小儿高热惊厥护理查房
- 2025年度全款文化演出门票购买合同4篇
- 临床基于高级健康评估的高血压Ⅲ级合并脑梗死患者康复个案护理
- 2025年厦门建发股份有限公司招聘笔试参考题库含答案解析
- 2025年中国EAM系统行业发展前景预测及投资战略研究报告
- 《反洗钱知识培训》课件
- 【MOOC】灰色系统理论-南京航空航天大学 中国大学慕课MOOC答案
- 2024东方电气集团部分二级企业总法律顾问社会招聘笔试核心备考题库及答案解析
评论
0/150
提交评论