AnyLogic 股票/流量错误:无法解析变量名称的表达式 - 流量

问题描述

这样做的目的是根据温度的冷热程度来控制蚊子的出生率。温度与滑块相关联,因此用户可以在模拟过程中调整温度以观察蚊子出生率的变化。温度越接近 75 度,蚊子的出生率就越高。但是我有这个问题:

当我尝试运行我的 AnyLogic 模型时,这是我遇到的唯一错误,当我尝试运行它时,它会阻止模型运行仿真窗口:

for (let i = 0; i < words.length; i++) {
   words[i] = words[i].slice(0,-1);
}

@H_404_7@

[这是发现错误的模型部分的图片,用红色圈出]https://i.stack.imgur.com/sx8hH.png

Temperature_F函数 NEAsia_Temperature_F 相关联。最小限制设置为1,最大限制设置为120。

函数 NEAsia_Temperature_F 设置为返回一个 Couldn't parse expression for Mosquito_Births - Flow: Syntax error. Please check expressions of this variable. at group4_assignment2.Main.<init>(Main.java:460) at group4_assignment2.Simulation.createRoot(Simulation.java:154) at group4_assignment2.Simulation.createRoot(Simulation.java:1) 值,代码为:

int@H_404_7@

NEAsia_Mosquito_Birthrate = 0.45

Mosquito_Births = (NEAsia_Mosquito_Pop * NEAsia_Mosquito_BirthRate) * (NEAsia_Temperature_F(Temperature_F);)

NEAsia_Mosquito_Pop = 100

这是从与错误关联的模型自动生成的 Java 代码错误位于底部if(Temperature_F <= 75){ NEAsia_Temperature_F = (Temperature_F / 75); } else { NEAsia_Temperature_F = (2 - (Temperature_F / 75)); } return NEAsia_Temperature_F; 行:

if (true) throw new RuntimeException@H_404_7@

这个问题显然源于 Mosquito_Births 中的函数调用,但是当我尝试运行模型时,除了那个单一的错误之外,我没有在任何地方遇到任何其他语法错误。这花了我很长时间才让它没有错误(除了最后一个)。非常感谢任何提示/建议/帮助!

解决方法

所以我回顾了你对模型的解释,似乎有些事情需要澄清/更正:

  1. 滑块是否未链接到参数?尝试将其链接到名为 Temperature_F 的参数并将滑块的名称更改为其他任何名称。在这种情况下,新参数将有一个链接将其连接到流,就像“NEAsia_Mosquito_Birthrate”

  2. 我假设您的函数接受一个名为“Temperature_F”的 int 类型参数。是对的吗?应该。

  3. 您没有在函数中定义变量“NEAsia_Temperature_F”吗?以

    开始函数体
    int NEAsia_Temperature_F = 0;
    
  4. 从流量方程中去掉分号:

    Mosquito_Births = (NEAsia_Mosquito_Pop * NEAsia_Mosquito_BirthRate) * (NEAsia_Temperature_F(Temperature_F))
    

以上评论基于您提供的信息。通过上述步骤,我尝试复制您的模型,错误不再存在。

如果这为您解决了问题,请告诉我。