图1:标准化显示(在setting.json中令realMapFlag为false)
图2:真实比例显示(在setting.json中令realMapFlag为true)
路径网络上红色方块表示随机出现在节点或通道的障碍。
GUI界面左下角显示了当前系统仿真时间(从0时刻开始运行)和当前任务池中以及未到来的任务数量。
由于当前Beta版本的仿真平台暂不支持自适应显示调节,当显示器设定了自定义缩放大小时,可能出现GUI显示不全的情况
|-- AGV系统仿真平台Beta.exe
|-- BatchRun.py
|-- map.json
|-- mission.json
|-- setting.json
`-- simulationResult.csv
`-- log
|-- log_date1
| |-- time1.log
| `-- time2.log
`-- log_date2
平台输入包括三个json文件:
map.json
指定路径网络的结构和大小mission.json
指定运输任务数量和起点-终点setting.json
指定AGV数量、任务到来时间、路径时间不确定性、随机障碍、调度算法(任务指派策略、路径规划算法、路径冲突应对策略)及其参数、随机种子、路径网络显示模式、直接进入直达仿真需要将三个json文件与平台程序放置在同一个目录下,如文件结构中所示。
map.json
路径网络只接受网格拓扑结构地图,可通过设置路径网络中某些节点与通道的行驶时间为”Infinity”,实现对其他结构的模拟。 包括以下字段:
ROW_CNV = 2 * ROW - 1
COL_CNV = 2 * COL - 1
"""
node0_1 arc0_1-1_1 node1_1
arc0_0-0_1 arc1_0-1_1
node0_0 arc0_0-1_0 node1_0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[
[[node0_1_dlt] [arc0_1-1_1_dlt] [node1_1_dlt]]
[[arc0_0-0_1_dlt] [Infinity] [arc1_0-1_1_dlt]]
[[node0_0_dlt] [arc0_0-1_0_dlt] [node1_0_dlt]]
]
"""
"""
node0_1 arc0_1-1_1 node1_1
arc0_0-0_1 arc1_0-1_1
node0_0 arc0_0-1_0 node1_0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[
[[node0_1_loc] [arc0_1-1_1_loc] [node1_1_loc]]
[[arc0_0-0_1_loc] [Infinity] [arc1_0-1_1_loc]]
[[node0_0_loc] [arc0_0-1_0_loc] [node1_0_loc]]
]
"""
mission.json
包括以下字段:
[
[mission1Orig, mission1Dest, mission1Time]
[mission2Orig, mission2Dest, mission2Time]
...
]
setting.json
包括以下字段:
关于各参数的详细说明,请见石志浩&沈海辉(2022)。
平台完整运行完成后(即,设定的运输任务全部执行完毕),会创建以日期-时间为区分的运行日志文件(GUI界面右侧文字的文字信息)以及调度效果指标文件simulationResult.csv
(如果已有csv文件,则追加填写,不覆盖原结果),
文件保存位置如文件结构中所示。
关于各指标的详细说明,请见石志浩&沈海辉(2022)。
AGV系统仿真平台Beta.exe
,仿真不会自动运行,需要点击相应按钮使仿真以某种模式开始。当仿真结束(即,设定的运输任务全部执行完毕)之后,会跳出对话框提示,点击确定之后程序关闭。AGV系统仿真平台Beta.exe
时仿真便自动以直达仿真模式运行,当仿真结束之后程序自动关闭;该运行方式专为批量运行而设置。AGV系统仿真平台Beta.exe
每完整运行一次,即为在指定的随机数种子(”randomSeed”)下,将设定的运输任务执行完毕。AGV系统仿真平台Beta.exe
,最终在输出文件simulationResult.csv
中计算平均值。这便需要不断地修改setting.json
中的”randomSeed”并且重复打开AGV系统仿真平台Beta.exe
。BatchRun.py
实现批量运行,只需在代码中设置所需的”randomSeed”遍历范围。该程序会将”directFlag”临时设为true,以实现在无需人工干预的情况下重复运行AGV系统仿真平台Beta.exe
。BatchRun.py
进行批量运行时,可以结合Python中的多线程功能,以缩短运行时间。BatchRun.py
中增加相应的功能定期地对日志文件进行清理。
石志浩, 沈海辉 (2022). 不确定情景下AGV系统调度算法的离散事件仿真.
© simopt.github.io
Last Update: 2022-05-04