arena 仿真概述
2020/8/1
25
简单处理系统的特色
事件列表:
◦ [实体号,事件发生时间,事件类型] ◦ 以事件发生事件升序排列 ◦ 每次都将下一个事件至于事件列表顶部 ◦ 事件列表初始化时要调度第一个到达事件
状态变量:描述当前的状态
◦ 服务器状态 B(t) = 1如果忙, 0 如果空闲 ◦ 队列中的顾客/零件数 Q(t) ◦ 当前队列中每个顾客/零件到达时间
◦ 可以因为有限的空间和资源来设定有限的排队空间——当实体到 达一个已满的队列时必须定义如何对实体进行处理
◦ 对于此对象,通常需要观测队列的程度,等待时间,等等
2020/8/1
19
模拟中需考虑的对象 (continued…)
Statistical accumulators统计累加器
◦ 用来监测所发生情况的变量 ◦ 具体设定取决于所设计的输出性能指标 ◦ 在模型中处于“被动”地位——只监测,不参与 ◦ 在ARENA中自动设定了许多,也可以根据实际需要来
2020/8/1
22
简单处理系统中的事件 (continued…)
离开(Departure),即服务结束
◦ 将生长量累加器加1 ◦ 计算该零件在系统中的周转时间 (now - time of arrival) ◦ 更新与时间相关的统计量 ◦ 如果队列不空:
◦ 将排在第一位的零件取出,计算并记录其排队时间(此时该零件已完成排队)并开始加工 该零件,并安排其离开事件(将事件记录插入未来事件表);
◦ 传统制造行业 ◦ 服务业 ◦ 医疗健康业 ◦ “商业流程”
◦ 仍然是大多数是在大企业中得到应用 ◦ 通常只是一种辅助工具
2020/8/1
28
计算机仿真技术的沿革 (continued…)
目前
◦ 逐渐在小型企业中得到推广 ◦ 成为了一种标准工具 ◦ 通常会在设计过程的前期进行应用 ◦ 可以进行实时控制
按照以上平均值来考虑,这个模型就等价于一个均匀到达,均匀 服务的模型,可以直接应用初中数学进行解决,也就无所谓队列 问题了! ◦ 我们的目标——介于完全随机和完全稳定之间的合理模型 ◦ 这种简单估测方法具有非常大的局限性
2020/8/1
10
分析过程 (continued…)
排队论
◦ 需要额外对模型的假设 ◦ 最为通用的模型: M/M/1 queue
◦ 两个车站之间的运输时间 ◦ 系统中能容纳的零件个数 ◦ 模拟时钟
◦ “写在墙上” ◦ 在ARENA中内部有一个常规变量,也可以根据需要来定义
2020/8/1
16
模拟中需考虑的对象 (continued...)
Resources资源
◦ 资源是实体所需要进行竞争获得的,如
◦ 服务人员 ◦ 机器设备 ◦ 空间,……
S2 A S
S E(Service Time) A E(Interarrival Time)
◦ 存在的问题:有效性,估计均值,长期有效,但是未必对于某个问题有 效。
◦ 通常用于对平均性能进行考虑时应用
2020/8/1
11
模拟的机制
单个操作(到达,服务时间)按照实际过程进行处理 对系统变化,事件都按照实际“时间”,实际顺序进行 处理 对不同对象之间的交互作用进行逐个模拟 默认安置“观测者”来对输出性能指标进行收集 具体的,穷举式的分析方法 在过程中任何事物都是具体和清晰的
队列的平均队长:
队列中的最大队长: max Q(t) 0t 20
零件的平均和最大停留时间 (在系统中停留的时
间,或成为周转时间)
iP1Fi P ,
max Fi
i 1, ,P
Fi = flowtime of ith part
2020/8/1
8
20
B(t)dt
0
20
研究目标:输出性能指标(continued...)
2020/8/1
21
简单处理系统中的事件
新零件到达系统(Arrivial)
到达:新零件进入系统。 ◦ 安排下一个新零件的适时到达,也即将其到达事件
记录插入未来事件表; ◦ 更新随时间离散变化的各统计量(从上一事件发生
到现在); ◦ 把到达零件的到达时间(即仿真时钟的当前值)保
存在一个属性中,用以在后面计算该零件的系统逗留 时间和排队时间; ◦ 如果钻床空闲,则到达零件立即开始加工(其排队 时间为零),将钻床状态置为“忙”,并安排该零件 的离开事件,统计该零件的排队时间; ◦ 否则,如果钻床正在加工其它零件,则将到达零件 置于队列末尾,队长变量加1。
Higher
机器设备的使用率 (忙率)
◦ 即钻床处于忙态的时间占仿真总时间的比例。这是另一个随时间离散变 化的统计量,其随时间变化的函数为如下“忙态”函数
20
B(t)dt
其它需要的指标
◦ inform0ation overload?
◦ 并不是指标2越0多越好
1 B(t) 0
如果钻床在t时刻忙 如果钻床在t时刻闲
◦ 到达时间 ◦ 停留日期 ◦ 优先级 ◦ 颜色
◦ 对于特定实体,必须绑定属性值 ◦ 属性可以视为(实体的)“局部”变量 ◦ 在ARENA中有些属性是自动生成的,有些则需要进行定义
2020/8/1
15
模拟中需考虑的对象 (continued...)
(全局) Variables变量
◦ 反映了系统的特征,而与实体无关 ◦ 名称和取值对于整个系统来说是唯一的 ◦ 不与实体绑定 ◦ 实体可以对变量进行访问,并改变变量取值,例如:
◦ 实体可以获取(seize)一个资源,使用之,并释放(releases)之。
◦ 需要强调的是:在进行处理时将一个资源分配给一个实体, 而不是将一个实体分配给一个资源
◦ “一个”资源可以具有多个处理单元能力 “A” resource can have several units of capacity
N>1
6
队列中所有零件的最大排队时间:
max Di
i 1, ,N
仿真过程中开始在钻床接受服务的零件的最大排 队等待时间(maximum waiting time in queue)。这 是用来度量最坏情况的,对于确定对顾客的服务水平 保证应该会有所帮助。这个量越小越好。
2020/8/1
7
研究目标:输出性能指标 (continued...)
对系统状态进行初始化
2020/8/1
24
简单处理系统的特色
仿真时钟(ARENA中内置)
仿真过程中的当前时间值记在一个特殊变量中, 称为仿真时钟(simulation clock)。与实际时间不同, 仿真时钟并不是连续推进、均匀取值的,而是从当 前事件的发生时间跳跃到下一个事件的发生时间。 因为相继两个事件之间系统没有发生变化,所有也 就没有必要浪费时间来考虑这两个事件之间的过程。
未来展望
◦ 与操作系统的兼容和交互 ◦ 为特定行业和企业开发出专用“模板” ◦ 自动统计设计和分析
2020/8/1
29
ARENA的定位
具有层次结构
◦ 可以进行多层建模 ◦ 可以将不同建模层次根据
需要整合到一个模型内 ◦ 通常是采用从上至下的方
式进行建模
在具备模拟器的易于使用 的特点的同时,不失适用 性
◦ 例如,餐厅中的一个台面可以有多个椅子 ◦ 一个售票窗口可以有多个售票员
◦ 在模拟过程中,资源的处理单元个数可以改变
2020/8/1
18
模拟中需考虑的对象 (continued…)
Queues队列
◦ 当实体无法进行运动时(通常是由于无法获取需要的资源)用于实 体等待的对象
◦ 具有名称,通常是与相应的资源绑定
2020/8/1
26
计算机仿真技术的沿革 (Continued…)
大发展阶段 (1970s-early 1980s)
◦ 计算机越来越快,越来越便宜
◦ 仿真技术的价值得到越来越广泛的认同
◦ 仿真软件也得到的改善,但是仍然需要学习专门的语言来进行编 写,而且还是批处理模式
◦ 通常用来汽车,航空工业中的“灾难性”问题
到达时间:
◦ 间隔到达时间:
服务时间:
模拟到20(模拟)分钟时终止仿真,如恰好在第20分钟时结束,届 时在系统中仍有零件(正在加工或在队列中等待),那它们 也只能完不成加工了。
2020/8/1
4
表2-1 零件的到达、间隔和服务时间(单位:分钟)
零件编号 1 2 3 4 5 6 7 8 9 10 11
◦ 然后就需要考虑大量细节,存放大量的过程参数和变量 ◦ 幸好有模拟软件来进行跟踪和帮助
2020/8/1
13
模拟中需考虑的对象
Entity 实体
◦ 系统的“参与者”,在系统的移动,状态发生变化, 可以影响其它实体或者被其它实体影响
◦ 动态对象 — 需要进行创建,进行移动,以及离开系统
(根据需要) ◦ 通常表示“实际”的事物
◦ 在以上的模型中实体指的就是零件
◦ 也可以构造出“假”实体,只是用于建模的方便
◦ 例如,Breakdown demon, break angel
◦ 一个系统中可以同时具有多个不同类型的实体
2020/8/1
14
模拟中需考虑的对象 (continued...)
Attributes属性
◦ 同一类型实体的特征,用来描述和区分实体 ◦ 同一类实体都具有相同的属性,但属性值不同,例如:
2020/8/1
到达时间 0.00 1.73 3.08 3.79 4.41 18.69 19.39 34.91 38.06 39.82 40.82
到达间隔 1.73 1.35 0.71 0.62 14.28 0.70 15.52 3.15 1.76 1.00 .