尝试使用动态和动作参数

问题描述

最近我偶然发现了本杰明·舒曼 (Benjamin Schumann) 的一个视频,标题为:What are dynamic and action parameters and when should you use them in your AnyLogic model

针对我的一个问题,我尝试进一步调整动态和基于动作的参数的功能。提醒一下,我对 Anylogic 还是很陌生(只看过那本书,以及一些小项目和教程)并且在 Java 方面表现不错(几年前我一直在积极使用 Java,但目前开始回到[仍然生锈])。 关于我的实际问题,视频中舒曼先生有一个带有三个参数的代理。一静一动一动。除此之外,他在他的代理中设置了一个变量(double)。在他的主要部分是一个按钮,用于在参数的帮助下增加变量的值并跟踪控制台中的行(= 如果通过变量的某个阈值则给出一个字符串)。

我创建了一个类似的设置,但是我在编译时不时遇到很多变量错误

这里有一些示例代码片段:

动态参数 p_Station String 类型

v_myFahrt < 222 ? "Wiesbaden Hbf" : 
v_myFahrt < 442 ? "Wiesbaden-Biebrich Bahnhof Wiesbaden Ost"    :
v_myFahrt < 663 ? "Wiesbaden-Mainz-Kastel Bahnhof"  :
"Hochheim (Main) Bahnhof"

因此我的变量叫做 v_myFahrt,一个初值为 0 的双精度值

动作参数 p_durchFahrt认动作:

v_myFahrt = v_myFahrt + 220;

和我的主按钮:

myAgent.p_durchFahrt();
traceln(myAgent.p_Station());

所以基本上它与参考中的代码有些相似。我尝试为动态参数(不同的字符串和值)添加一组不同的“代码”以及用于动作参数的不同“代码”(例如,+ 208 而不是 + 220)的代理的另一个实例。然后想要再次使用按钮跟踪控制台中的行。 我尝试添加

myAgent1.p_durchFahrt(); traceln(myAgent1.p_Station());

给它。 但在我什至可以运行它之前,我不断收到错误“v_myFahrt 无法解析为变量”的 myAgent1。检查错误,它一直使用新添加的 p_Station 代码引用 myAgent1,但我似乎找不到解决方法

在这里做错了什么?

解决方法

看起来你已经在 main 中创建了 v_myFahrt ,对吧? (这可以解释你的症状)。 如果是,您应该在 MyAgent 中创建它。