首页 > 解决方案 > 尝试使用动态和动作参数

问题描述

最近,我偶然发现了 Benjamin Schumann 的一个视频,标题为:什么是动态和动作参数以及何时应该在 AnyLogic 模型中使用它们

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

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

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

String 类型的动态参数 p_Station

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());

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

我在这里做错了什么?

标签: anylogic

解决方案


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


推荐阅读