使用 AnyLogic 进行仿真/离散事件仿真/银行模型/步骤 6. 添加出纳员
外观
步骤 6. 添加出纳员
现在,我们将通过添加在银行工作的出纳员来创建系统的另一个部分。现在,一些客户会来找出纳员,一些客户会使用 ATM。我们可以使用延迟来建模出纳员,就像我们对 ATM 的建模一样。然而,使用资源建模出纳员要方便得多。资源是可以被实体拥有的特殊单元。一次只有一个实体可以拥有一个资源;因此实体会争夺资源。
- 添加 服务 对象。
服务 为实体获取资源单位,延迟实体,并释放获取的单位。
修改对象属性 - 添加 资源池 对象。资源池 对象是资源单元的存储。它应该连接到资源获取和释放对象(在本例中为服务)。因此,将其连接到服务对象的下方端口。
将对象命名为tellers。指定此资源对象只有四个资源单位:定义其容量:4 - 放置 选择输出 对象。选择输出 对象是一个决策块。到达该对象的实体将沿着两个输出端口之一转发,具体取决于用户定义的条件。
保留默认对象属性。实体路由条件randomTrue(0.5)定义争夺 ATM 和出纳员服务的客户数量将大致相等。
按图示连接selectOutput和service到其他对象
由于模型发生了改变,我们也需要修改模型动画。
- 绘制一条多边形线来为等待客户的队列制作动画。从左到右绘制。将多边形线命名为queueBeforeTellers。
- 在queueBeforeTellers的右侧绘制一个由四个点组成的多边形线。该多边形线将指示出纳员动画的位置。将其命名为tellerPlaces。
现在,我们将通过定义两个图像来为出纳员制作动画,这两个图像分别表示出纳员处于空闲状态和忙碌状态。当资源单元被获取和释放时,AnyLogic 将自动在这些图像之间切换。
- 将图像从演示模板拖动到图中蓝色交叉矩形所示的位置。
- 转到图像形状的属性。将图像命名为busyTeller。
- 定义该形状将显示的图像。使用添加图像按钮添加Teller Busy.png。您可以在计费部门示例模型所在的文件夹中找到此文件(类似于<AnyLogic 文件夹>\plugins\com.xj.anylogic.examples.<构建号>\models\Billing Department).
您将在预览区域看到添加的图像。 - 选中原始大小复选框。如果未选中原始大小选项,则图片会显示为适合图像形状的矩形,否则图片会显示为没有任何失真。
- 创建另一个图像来显示放松的出纳员。将其命名为idleTeller,并选择Teller Idle.png作为该形状显示的图像。
现在,我们将通过设置流程图对象的动画属性来为流程图制作动画。
- 现在,我们需要为客户队列制作动画。因此,修改service属性
- 要为出纳员制作动画,请修改tellers属性
在当前模型中,出纳员的数量是固定的。但是,我们可能需要在模型运行时动态地改变它。AnyLogic 提供了一组控件,可以更改模型参数。现在,我们将添加一个滑块,以便在运行时更改出纳员的数量。
- 添加一个滑块。打开调色板的控件模板,并将滑块元素从那里拖到图形编辑器中。将其放置在我们的资源池对象的下方,让用户知道此滑块将改变此特定对象的容量。
- 我们希望将系统中的出纳员数量从 0 更改为 4。因此,将 4 设置为滑块的最大值。
- 键入tellers.capacity作为滑块的默认值。
- 指定tellers.set_capacity((int)value);作为滑块的动作。
运行模型。您可以看到出纳员正在使用我们的图像制作动画。现在,您可以使用滑块更改出纳员的数量。因此,您可以看到特定客户到达率需要多少出纳员。