(1)状态变量:描述系统的状态(例如,图2-5显示了以后将在机场仿真实例中用到的变量,这些变量简要地表示了机场上空的飞机数量、地面飞机数量和跑道的状态)。
(2)事件表:包含了在仿真的将来某时刻将要发生的事件(图2.5显示了图2-4中的事件,时戳值为9:56的事件没有出现是由于它尚未被创建)。
(3)全局时钟:表示仿真时间轴上仿真目前所属的时刻(在图2.5中仿真推进到仿真时间8:45)。
若时钟变量包含一个丁值,这表示物理系统中直到丁表示的时刻为止的所有活动已经仿真完毕,而迟于丁的活动尚未仿真。事件表中的所有事件的时戳值必须大于或等于丁。
从操作层面上来讲,一个事件通常通过这样一个数据结构来实现,它包括该事件的时戳(例如下午9:16)、事件类型的表示(例如飞机抵港)和详细描述事件细节的各种参数(例如396航班到达洛杉矶机场)。
在物理系统中像飞机抵港这样的“事件”会“自然发生”。而在仿真世界中,除非仿真计算使得事件发生,否则什么也不会发生。换句话说,需要一种机制来创建事件。在仿真中创建新事件的机制被称为调度事件。例如,假设图2-4和图2.5中描述的仿真将仿真时间推进到9:00,此时的事件表示200航班已降落。这时仿真可能调度一个新的事件,表示该飞机将在9:56离港的事实。在仿真程序中“调度一个事件”是通过为新事件分配内存空间、填入时戳值、事件类型和相关参数,并将事件加入事件表数据结构来实现的,事件调度是仿真程序对物理系统因果关系建模的一种方式。
展开