Anylogic轨道库入门

轨道库入门——以Railway Station案例为例

  • 轨道库——Railway library
  • 轨道库示例——Railway Station
    • 整体结构一览
    • GoToPlatformAndBoard

轨道库——Railway library

轨道库示例——Railway Station

这是一个非常详细的抓取客流和车流的火车站模型。车站有四个站台和六辆列车。旅客通过主入口进入车站并去其中一个站台等车。旅客有提前预定好的座位,并且他们在预计车会停止的位置等车,每分钟都有车辆到达。旅客遵循先下后上的原则,下车的旅客从主入口出站。模型同时使用了AnyLogic轨道库和行人库。

Anylogic轨道库入门_第1张图片

整体结构一览

从项目组成来看,一共有五个智能体,Main主程序,Passenger乘客,RailCar车厢,Train列车,GoToPlatformAndBoard前往站台上车

智能体
GoToPlatformAndBoard
Main
Passenger
RailCar
Train

m每个界面左上角的橙色图标以及整个矩形虚线框是一个【演示】-【视图区域】,之后需要比较复杂的界面显示的话,这个功能将是基础。
Anylogic轨道库入门_第2张图片
Anylogic轨道库入门_第3张图片
上面一部分是列车行为
下面一部分是乘客行为

其中toPlatformAndBoard是一个封装的智能体,从这里可以学习到智能体调用智能体的方法和思路。
所以我们首先来看看这个内部的结构。

GoToPlatformAndBoard

Anylogic轨道库入门_第4张图片
结构简单
enter——流程库组件,插入(已经存在的)智能体到过程流程图的特定点
waitTrain 候车——行人库组件(Ped Wait)
toCarDoor 去车门——行人库组件(toCarDoor)
最后通过智能体中的连接器(Connector)连接到最后一个端口(port)
绿色的图标是用演示中的画图工具画出来的

Anylogic轨道库入门_第5张图片

参数名 参数类型 说明
waitArea AreaNode waitTrain模块需要制订等候区域,等候时间设置为触发,由函数board决定,即当freeAll()时释放
doorLine targetline 定位的是从toCarDoor指向端口的connectorr
board 函数 waitTrain.freeAll();

所以这块的运行流程很简单,外部智能体给enter输送对象
Anylogic轨道库入门_第6张图片
selectDoor1——>离开时行为
toPlatformAndBoard1.get( uniform_discr( 0, 9 ) ).enter.take( agent );
uniform_discr(a, b)则是a到b的均匀分布

你可能感兴趣的:(Anylogic,经验分享)