事件可以分为离散事件和连续事件,且两种类型的事件在现实生活中都广泛存在。比如水库水位的上升和下降是一种连续事件,温度的变化是一种连续事件,红绿灯的跳转是一种离散事件等等。而大多数情况下,对于连续事件,我们可以通过在离散时间点采样的方式,将其作为离散事件来看待。因此除了特殊需求外,大部分仿真系统都做成了离散事件仿真系统。
两种不同的仿真系统主要区别有:
1. 在连续系统数字仿真中,时间通常被分割成均等或非均等的时间间隔,并以一个基本的时间间隔计时。而离散事件仿真系统通常是面对事件的,时间并非以固定的间隔推进,而是随事件的推进而随机增加。
2. 连续系统的仿真中,仿真结果表现为系统变量随时间变化的历程。而离散事件仿真中,系统变量是系统中相互作用的事件,而仿真结果是对事件相互影响下,实体变化的统计和分析。
离散事件仿真系统的应用领域广泛,如交通管理、库存管理、能源规划、网络通信等,而排队论、网络分析、数学规划和调度排序等方法则是离散事件仿真系统中常用的数学方法。
在进行离散事件建模时,一般遵循以下几个步骤:
1. 明确仿真目的:不同的仿真目的对应不同的仿真模型,模型的建模要建立在对仿真目的清晰的了解之上。
比如,银行排队办事的系统,如果想要了解其办事效率和顾客等待事件等,则是排队模型。典型的事件包括顾客的到达和离开,而办事员的状态有忙碌和空闲之分。而该模型用在其他仿真系统则不一定可用。
2. 正确的描述系统:即明确系统的主要实体、实体的属性、实体间的相互关系。
仿真系统的实体是指组成该仿真系统的、对仿真有意义的对象。这些实体的行为往往随机分布。如超市中的顾客、服务员,交通系统中的公路、车辆、红绿灯等。
实体的属性主要指对象内部的变量,变量可以在实体初始化时输入,也可以在实体内部定义初始值或固定值。
实体间的相互关系主要反应在系统的事件、活动、和进程上,在系统设计之初要清晰的定义某实体所对应的事件,以及事件给实体状态带来的变化。
3. 在以上步骤基础上,我们可以画出事件的流程图,开始仿真系统的设计。参考DDD的设计思路,划分子领域,明确实体及实体间的关系,明确事件流程图,完成软件设计工作。