首页 > 解决方案 > AnyLogic:如何在任何逻辑的延迟块中引用代理

问题描述

我正在 AnyLogic 中构建 DES-ABM 混合模型。代理通过 DES 块,其中有多个延迟块。

我如何

  1. 访问处于延迟块中或最好的代理
  2. 访问触发延迟块的“进入”动作的特定代理?

我的最终目标是打开或关闭代理框架上的阀门对象那么我可以/我如何 A. 打开或关闭代理框架上的阀门直接形成主框架/根框架(延迟块所在的框架)或如果那不可能 B. 在特定代理中发送消息或触发状态图,然后从代理自己的框架打开或关闭阀门?

我曾尝试使用'DelayBlockName'.agents() 函数,但这不起作用并在我使用traceln 检查它时返回[]。

标签: anylogicagent

解决方案


访问处于延迟块中或最好的代理

使用关键字agent. 这些关键字因不同的库块而异,因此最好开始了解灯泡以及它如何提供帮助,请参见此处

访问触发延迟块的“进入”动作的特定代理?

当您agent.在“On enter”块中写入时,通过的每个代理都将执行该代码,因此根据定义,它始终是特定代理:)

我的最终目标是打开或关闭代理框架上的阀门对象那么我可以/我如何 A. 打开或关闭代理框架上的阀门直接形成主框架/根框架(延迟块所在的框架)或如果那不可能 B. 在特定代理中发送消息或触发状态图,然后从代理自己的框架打开或关闭阀门?

这与您原来的问题完全不同,只是......混乱。请将问题限制为 1 个主题,以便我们轻松回答 :)(请参阅本指南了解更多信息)


推荐阅读