Anylogic铁路场景中如何通过代码控制火车

How to control trains via code in railways scenario in Anylogic

我打开这个新问题直接链接到我之前发布的问题: Avoid Exceptions after a train collision in Anylogic

在铁路场景中,我们使用方块来控制和制造 run/stop 列车。在最简单的场景中,火车和轨道车没有特定的嵌入属性,火车和轨道车可以是普通的代理。 在 TrainMoveTo 块中,我们只需指定火车的加速度和速度,然后它就会朝着指定的目标移动。

我的场景使用 RailSettings 块来捕获事件“On car hit car”。 它的参数是:

RC car — 汽车 boolean frontside — 撞到另一辆车的汽车的一侧(如果是前侧则为真) RC other — 另一辆车 RailwayTrack track — 发生这种情况的轨道 RailwayNetwork railYard — 定义铁路站场的铁路网

如果我调用 car.something,Anlylogic 将它作为一个简单的代理处理,我想知道,我应该访问哪个函数来指定我通过“TrainMoveTo”块订购的完全相同的信息?我试着用一个简单的 car.stop() 让火车停下来,但没有用。 同样的问题也出现在同样的情况下,我想创建一个特定的 Train 和 RailCar 函数,我想通过代码控制火车参数。

任何人都可以帮助我理解这一点吗? 非常感谢! 皮耶罗

这是基于代理建模的基本“技巧”:使源块创建的不是“代理”代理,而是您指定代理类型的代理:

根据需要创建代理类型,确保在代理类型属性(见下文)中将它们标记为火车或轨道车,并让源创建这些类型。然后,它将是该代理类型的实例流经您的模型,您可以访问它们的特征:

最好完成 AnyLogic 帮助中的所有分步教程,他们经常使用它(这是一切的核心概念):)