如何通过代理参数选择Anylogic中的输出?

时间:2018-03-16 14:29:38

标签: anylogic processmodel

所以,我对Anylogic很新,但已经做了很多教程,并且我有Java编程经验。对于我的论文,我将车辆流程建模为一个过程。在源块中,我使用数据库中的一些参数创建自定义代理(车辆)。这很好用。然后我想用 randomTrue(0.5)分配参数。为此,我调用 setupTaxi -function,其中 electric 设置。 randomTrue函数的参数应该是可更改的,因此我将其设置为额外的参数 anteilEtaxis (0.5)。

之后,我希望车辆根据电气的值使用 SelectOutput 做不同的事情。我选择条件并测试 agent.electric

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

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

enter image description here

另外,我尝试了几种不同的设置参数,读取它们的组合......唯一可行的方法是将 randomTrue(0.5)直接放在Condition框中。这不是我想要的。所以如果你有想法,有什么不对,请告诉我。

1 个答案:

答案 0 :(得分:1)

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

我假设你在#34;退出"中的源代码中调用了setupTaxi函数。行动......如果你这样做,那就太晚了,代理人已经决定了选择输出块之后的去向。

您必须在两个可能的位置调用setupTaxi函数:

1)在#34; on" on"行动

2)在启动时的车辆代理中"动作

甚至..只是让电变量有一个默认值randomTrue(main.anteilEtaxis)......这也可以。