问题描述
这样做的目的是根据温度的冷热程度来控制蚊子的出生率。温度与滑块相关联,因此用户可以在模拟过程中调整温度以观察蚊子出生率的变化。温度越接近 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 中的函数调用,但是当我尝试运行模型时,除了那个单一的错误之外,我没有在任何地方遇到任何其他语法错误。这花了我很长时间才让它没有错误(除了最后一个)。非常感谢任何提示/建议/帮助!
解决方法
所以我回顾了你对模型的解释,似乎有些事情需要澄清/更正:
滑块是否未链接到参数?尝试将其链接到名为 Temperature_F 的参数并将滑块的名称更改为其他任何名称。在这种情况下,新参数将有一个链接将其连接到流,就像“NEAsia_Mosquito_Birthrate”
我假设您的函数接受一个名为“Temperature_F”的 int 类型参数。是对的吗?应该。
您没有在函数中定义变量“NEAsia_Temperature_F”吗?以
开始函数体int NEAsia_Temperature_F = 0;
从流量方程中去掉分号:
Mosquito_Births = (NEAsia_Mosquito_Pop * NEAsia_Mosquito_BirthRate) * (NEAsia_Temperature_F(Temperature_F))
以上评论基于您提供的信息。通过上述步骤,我尝试复制您的模型,错误不再存在。
如果这为您解决了问题,请告诉我。