【问题标题】:Anylogic assign agent from population of agents to fluidsource batchAnylogic 将代理从代理群体分配到流体源批次
【发布时间】:2020-08-03 07:27:10
【问题描述】:

我创建了一个包含一些属性(列)的电子表格;然后在 Anylogic 中创建一个代理(代理群)并从数据库加载它。运行模型。完美运行,它表明我有一个包含 6 个代理的代理群体“产品”..(模型有 FluidSource、Pipe、Tank、Valve、FluidDispose,所有基本配置)

所以现在我打开 FluidSource,选择自定义批处理并为批处理:products.get[0].productName(产品名称是字符串类型的参数)。我也试过:

products[0];
products[0].productName;
products.get(0);

现在再次运行......在模型窗口中显示“绘制动画帧时出错......”(右上角的橙色块) 在 model.Console 中它说:模型创建期间出错: 索引:0,大小:0 java.lang.IndexOutOfBoundsException:索引:0,大小:0 ...

我做错了什么?如何将我的 FluidSource 批次分配给我的“产品”代理之一?

【问题讨论】:

  • 所以我再次取出“自定义批处理”选项(将其保留为默认批处理),添加文本和按钮并编码按钮的操作: products.get(0).productName;并运行。它显示我的代理群体中有六种产品,当我按下按钮时,我的文本显示“ULP95”——这是我的第一个“产品”代理的正确名称——所以代码没有问题??

标签: anylogic


【解决方案1】:

问题在于初始化的顺序:您的 FluidSource 对象试图访问products 人口该人口实际上充满了代理。

使用此条件检查为此创建您的 FluidSource 帐户:

products.size() == 0 ? "InitialBatch" : products[0].productName

【讨论】:

  • 谢谢!用于设置初始批次。然后稍后在代码中可以通过注入(数量,批次,颜色)函数使用具有不同产品的相同来源。感谢您的帮助。
  • 抱歉,不清楚您的意思。我建议你把它变成一个新的、明确的问题。始终尝试在此处针对 1 个问题提出具体问题,以便其他有相同问题的人将来也能从中受益。并将回复标记为“有用”,以便其他人看到它确实有帮助。请参阅stackoverflow.com/help/how-to-ask 了解更多信息 :-)
猜你喜欢
  • 2021-04-08
  • 2021-05-05
  • 2020-08-11
  • 2020-05-21
  • 1970-01-01
  • 2021-10-09
  • 2019-02-11
  • 2017-12-29
  • 2017-05-18
相关资源
最近更新 更多