【问题标题】:AnyLogic if condition selectOutputAnyLogic if 条件选择输出
【发布时间】:2021-07-06 20:45:32
【问题描述】:

我正在使用 anylogic 为生产线建模。两种药剂正在通过同一传送带进行处理和运输。两个代理都需要在服务站中花费不同的延迟时间。因此,我添加了两个并行服务,现在我想将到达传送带上的代理分类到相应的服务站。

flowchart

Agent1 需要去 service,Agent2 需要去 serviceT。 我为两个代理分配了参数,代理 1 的布尔参数“S”设置为真,代理 2 的相同参数设置为假。 为了对 selectOutput 块中的代理进行排序,我输入了 if 条件 agent.S == true,如下图所示。

selectOutput

Anylogic提示如下错误:“Unresolved compiler problem: S cannot be resolved or is not a field”

对此我能做些什么?

谢谢!

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    我想分两部分回答这个问题:

    1. 与其使用 selectOutput 来模拟 SAME 站的不同延迟时间,不如只使用代表该 ONE 站的 ONE 服务更合理。要对不同时间进行建模,请将延迟时间设置为 agent.S,其中 S 是每个代理的延迟时间。

    2. 无论您选择我建议的还是您已经使用的,您仍然会收到相同的错误。此错误的原因很可能是您没有正确指定通过选择输出的代理类型。实际上,如果您查看您共享的选择输出属性的图像,在“高级”选项卡下,代理类型设置为默认类型Agent。确保将其替换为包含参数 S 的代理类型。

    【讨论】:

    • 感谢您的回复! 1. 在想出其他解决方案之前,我已经考虑过了。但我不知道如何编码。 2. 我将代理类型设置保留在默认代理上,因为我不知道要选择哪个代理。我可以手动选择 2 个代理吗?
    • 你在哪里定义了 S 参数?
    • 我将一个参数组件拖到两个Agents中并命名为S。然后将其定义为布尔值,将Agent1设置为true,Agent2设置为false。
    • 什么决定了S的值是真还是假?随机?
    • 它是为两个代理静态设置的,基本上只是为了区分它们。
    猜你喜欢
    • 2018-08-31
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多