《Simio培训指南8》是一份详尽的教学材料,旨在帮助用户掌握Simio仿真软件的各项功能和操作技巧,适用于初学者及进阶学习者。
Simio培训教程 第8章 模型数据
Simio 大纲 速率表/函数表 讨论 –门诊挂号 数据表 讨论 – 数据导入 序列表 讨论 – 序列 工作计划, 列表, 切换表 讨论 –加工车间
创建和修改模型中的数据。数据组成部分包括: Function tables(函数表) Rate tables(速率表) Data tables(数据表) Sequence tables(序列表) Schedules(计划) Lists(列表) Changeovers(切换表)
模拟到达 如果到达是独立且随机的,通常符合泊松分布,在固定时间内的到达人数为泊松分布。到达的时间间隔服从指数分布。在某些情况下,到达率依据时间段变化—Simio支持分段线性到达率(使用速率表)。
速率表 用户可以指定不同时间段内(例如每小时)的变化速率。每个时段的数量和大小可设定。“发生器”或计时器元素会根据时间改变的速率产生实体/事件。非静态指数分布由这种机制生成。
Simio SimBit: 速率表 SourceWithRateTable 根据时间来调整到达率
模拟学习曲线 在某些情况下,一项作业随时间变得更高效。函数表用于定义任务时间(或一个分布参数)的变化或者基于已完成的作业数量的变化。
函数表 已知x, 返回f(x)
语法:
Function.TableName[X_Expression]
翻译: 查找 插值运算 端点外插值运算
学习曲线例子 发生器 服务器
10/Function.LearningCurve[TimeNow] 接收器
讨论 – 门诊挂号
病人根据如下计划到达病区(平均到达率每小时): 挂号时间(分钟) 在白天不同的时段有所不同,例如:7-9, 9-11, 11-13, 13-15, 15-17。8am之前为4;9am至中午为2.5、3和5;下午4点之后为0.6。
提示:使用速率表(RateTable)设置每两小时的时段,从7:00开始仿真,在该时间TimeNow值设为0。利用名为RegistrationTime的函数表,并以当前时间为X变量设定服务器处理时间 Function.RegistrationTime[TimeNow]
数据表 模型中的数据通常存于表格中,如Excel电子表格。Simio表格是一个带有用户定义属性的数组,每个实体/命令都可以使用SetTable步骤来设置活动行。
导入导出 支持所有字段类型为字符串 导入后如有错误会提示 使用Export功能获得合适格式 Import将文件内容添加到表底部
引用 属性A, B, C, D 当前行 活动行的属性值可以通过TableName.PropertyName引用。任何一行的属性值可以使用 TableName[RowNumber].PropertyName 引用。
SimBit: 表格 SelectEntityTypeFromTable 创建一个实体,其类型由表格定义。表中产品比例决定了选择哪种类型的实体。
数据 到达 服务器
50 .2 30 .4 20 Random.Uniform(.4,.6) 离开
讨论 – 数据导入 SimBit例子:SelectEntityTypeFromTable 导出到CSV文件 在模型里增加新 实体类型 编辑CSV,改变产品比例和处理时间. 导入后运行模型.
序列表 定义了实体或车辆的特定路径。例如: 登记 -> 患者分类 -> 检查 -> 治疗 市中心->城镇-> 住宅区(来回) 实体/车辆不同,路线也有所不同: 病人的严重程度 车辆类型,区间车, 快车
序列表 使用带有目的地的数据表。从节点按照序列表选择路径. 序列在实体实例上设定或通过SetTable步骤设定/重置.
SimBit例子:EntityFollowsSequence 单个实体类型