所以,我对Anylogic很新,但已经做了很多教程,并且我有Java编程经验。对于我的论文,我将车辆流程建模为一个过程。在源块中,我使用数据库中的一些参数创建自定义代理(车辆)。这很好用。然后我想用 randomTrue(0.5)分配电参数。为此,我调用 setupTaxi -function,其中 electric 设置。 randomTrue函数的参数应该是可更改的,因此我将其设置为额外的参数 anteilEtaxis (0.5)。
之后,我希望车辆根据电气的值使用 SelectOutput 做不同的事情。我选择条件并测试 agent.electric 。
我基本上做了与Anylogic帮助中描述的完全相同的事情。然而框架总是选择 true 输出端口,无论参数是设置为true还是false 。
请参阅图像以了解设置和参数。我通过控制台测试了这个(第一行是源代码中的println调用,第二行是selectOutput中的println调用。)。另外,您可以看到参数设置为不同的值,因为3D可视化模型依赖于它:
另外,我尝试了几种不同的设置参数,读取它们的组合......唯一可行的方法是将 randomTrue(0.5)直接放在Condition框中。这不是我想要的。所以如果你有想法,有什么不对,请告诉我。
答案 0 :(得分:1)
这是一个典型的初学者问题。
我假设你在#34;退出"中的源代码中调用了setupTaxi函数。行动......如果你这样做,那就太晚了,代理人已经决定了选择输出块之后的去向。
您必须在两个可能的位置调用setupTaxi函数:
1)在#34; on" on"行动
2)在启动时的车辆代理中"动作
甚至..只是让电变量有一个默认值randomTrue(main.anteilEtaxis)......这也可以。