0

所以,我对 Anylogic 还很陌生,但是已经完成了很多教程,并且我有 Java 编程经验。对于我的论文,我将车辆流建模为一个过程。在源代码块中,我使用数据库中的一些参数创建自定义代理(车辆)。这工作正常。然后我想用randomTrue(0.5)分配一个参数。为此,我调用了setupTaxi函数,其中设置了电表。randomTrue 函数的参数应该是可变的,所以我将它设置为一个额外的参数anteilEtaxis (0.5)。

之后,我希望车辆根据使用SelectOutput的电动值做不同的事情。我选择了 Condition 并在agent.electric上进行测试。

我基本上做了与 Anylogic 帮助中描述的完全相同的事情。然而,无论参数设置为 true 还是 false ,框架总是选择真正的输出端口。

有关设置和参数,请参见图像。我通过控制台对此进行了测试(第一行是源代码中的 println-call,第二行是 selectOutput 中的 println-call。)。另外,您可以看到参数设置为不同的值,因为 3D 可视化模型依赖于它:

在此处输入图像描述

此外,我尝试了设置参数、读取参数等的几种不同组合……唯一可行的方法是将randomTrue(0.5)直接放入 Condition 框中。这不是我想要的。因此,如果您有任何想法,有什么问题,请告诉我。

4

1 回答 1

2

这是一个典型的初学者问题。

我将假设您在“退出”操作中调用源中的 setupTaxi 函数......如果您这样做,那么为时已晚,代理已经决定在选择输出块之后它将去哪里.

您必须在 2 个可能的地方调用 setupTaxi 函数:

1)在“退出时打开”操作的源中

2)在您的车辆代理上的“启动时”操作

甚至.. 只需使电变量具有 randomTrue(main.anteilEtaxis) 的默认值...这也可以。

于 2018-03-16T22:39:05.407 回答