OPENET Modeler 仿真建模大解密 高嵩编著
注:该文档仅为个人学习记录,与书中对应部分一致。
第2章 系统仿真及网络仿真基础
2.4 网络仿真建模方法
通信网络系统简称为网络,也是一种系统,系统的变量通常是状态。这种系统的状态变化可能发生在连续时间轴上的任意一点,因此属于连续时间系统。但这种系统的状态变化只发生在一个离散的集合内,所以该系统的变量变化轨迹是离散的,变量变化范围也是离散的。网络系统属于连续时间的离散变化系统,但由于网络中各种状态的变化通常是由各种事件引发的,所以我们也将这种系统称为离散时间系统。
对这类系统的建模可以采用事件调度、活动扫描、进程交互三种方式,下面分别进行描述。
2.4.1 事件调度
按事件调度简历模型时,所有事件均放在事件表中。模型中有一个时间控制成分,该成分从时间表中选择具有最早发生时间的事件,并将仿真时钟修改到该事件发生的事件,然后调用与该事件相应的事件处理模块,该事件处理完后返回时间控制成分。这样,时间的选择与处理不断地进行,直到仿真终止的条件或程序事件产生为止。
事件调度的核心内容是建立活动子例程模型,包括此活动发生引起的自身状态变化,及对其他成分的状态所产生的作用等。显然在成分和事件的种类较多时这是一件非常繁重的工作。
2.4.2 活动扫描
活动扫描的主要思想是模型由成分组成,成分包括活动,但活动的发生必须满足某些条件,条件之一是时间,且时间的优先级最高。每个主动成分均有一个相应的活动子例程。
活动扫描建模的核心内容也是建立活动子例程模型,而条件处理模块则是这种策略时间的本质特点,在活动对象数量较大时,这个模块的设计将耗费大量的精力。活动扫描在实现时由于仿真执行程序结构比较复杂,其流程控制需要十分小心,这也是活动扫描的缺点。
2.4.3 进程交互
进程交互法采用进程(Process)描述系统,它将模型中的主动成分所发生的事件及活动按时间顺序进行组合,从而形成进程表,一个成分一旦进入进程,它将完成进程的全部活动。
第3章 Modeler建模基本概念
OPNET的建模思路是以事件调度为基础的,结合进程交互以便于处理。
进程的描述采用了通信协议描述常用的有限状态机模型,使得离散事件模型与实际系统相似度难以判定的问题得到了很好的缓解,并且可以将用户从分析活动扫描的最佳频率、管理进程间交互关系的复杂劳动中解放出来,使用户只需关系自己协议的核心概念,以及与其他模型的相互关系即可。
在仿真工具的设计上,OPNET也将其建模方法中的公共部分提取出来,形成OPNET的仿真核心。这些公共部分包括事件列表管理、进程调度、标准数据结构存取、主动对象的例程生成、统计数据生成等。
而关于如何划分进程、节点、网络,如何使用进程调度、事件列表,在仿真中如何存取标准数据结构中的信息等,就成为实际建模中的基本概念。
3.1 概念的起点
用Modeler构建仿真程序是对网络的建模,而解释Modeler建立模型的逻辑和道理,则是对建模活动的建模。
Modeler中分了4个域来划分建模工作内容,即进程、节点、网络、外部系统。每个域内的建模使用一种范型,既能保证灵活性和建模能力的可扩展性,又能兼顾对系统行为和结构建模的能力。4个域的划分如下所述。
- 网络域关心用节点和节点间链路来描述的系统、以描述性数据为主;
- 节点域关心用应用、处理、队列和通信接口来定义的节点能力定义,完全是数据元素;
- 进程域关心对节点内系统上运行的进程的行为的定义,可能是完全通用的决策进程或算法,以可执行代码为主;
- 外部系统域关心仿真中包含来自外部代码或系统模型所