AnyLogic中Source Arrivals基于源数据的配置方法咨询
最优配置方案:基于Excel的到达时间数据库配置
1. Excel表格预处理(关键前提)
- 把宽表转成长表结构:原5列(对应5天)改成3列:
到达序号、天数标识、到达时间(分钟)。举个例子,原第1行的4.09、6.01...数据,转后要变成:
多数仿真软件的数据库到达配置要求每行对应单个到达事件,宽表结构会直接导致解析逻辑混乱,这也是你频繁报错的核心原因之一。到达序号 天数标识 到达时间(分钟) 1 1 4.09 1 2 6.01 ... ... ... - 固定时间列格式:必须设为数值型,别用日期格式。你的时间是从0开始的分钟数,不是实际日期时间,用日期格式会让软件误解析。
2. 数据库连接与列映射配置
- 选Excel数据源时,直接指定预处理后的具体工作表,别选整个工作簿。
- 在
Arrivals Defined by Database面板里这么配:- 时间字段:选
到达时间(分钟)列,把时间单位设为分钟(绝对不能选日期/时间类型),因为你的数据是相对起始点的分钟数,不是绝对时间戳。 - 分组过滤:如果要按天分开仿真,加个过滤条件
天数标识 = [当前仿真天数],或者用流程参数控制调用对应天数的数据。 - 事件标识:把
到达序号列映射为到达事件的唯一标识,确保每个事件对应准确。
- 时间字段:选
3. 常见报错规避技巧
- 杜绝日期格式冲突:别把分钟数当成Excel日期格式(比如把4.09认成“4天9小时”),严格用数值存,否则软件会直接抛出格式不匹配的错误。
- 清理空值空行:表格里不能有空行或空单元格,尤其是时间列,空值会触发数据库读取异常。
- 用绝对路径:数据源选本地绝对路径,别用相对路径或网络路径,避免软件找不到Excel文件。
4. 快速验证配置的方法
- 先导入前3行测试数据,配置完跑一次仿真,检查到达事件的时间和Excel里的数值是否一致。
- 看软件日志输出,如果出现“日期格式不匹配”“列未找到”的错误,优先检查表格结构和列映射是否对应。
内容的提问来源于stack exchange,提问作者Nik P
相关产品推荐
相关产品推荐

