You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anylogic中通过变量/滑块动态修改Source到达速率不生效问题

Source模块配置界面截图

问题根因

该问题是AnyLogic Source模块的默认参数读取机制导致的:

  • 当Source处于速率到达模式时,默认仅在仿真初始化阶段读取一次Arrival rate输入框内的绑定值,后续关联变量的变动不会被自动感知,因此会始终保持初始速率生成实体。
  • 若你选择的是固定间隔、到达表、调度触发等其他到达模式,本身就不支持运行时动态修改参数后自动生效,也会出现同类表现。
修复方案

根据你需要的生效时效,二选一即可:

方案1:开启每次到达重评估(配置最简单,下一个实体生成时生效)

  1. 双击打开Source模块配置面板,找到Arrival rate参数项
  2. 勾选参数输入框下方的 Evaluate rate on each arrival(中文版本对应选项为「每次到达时评估速率」) 选项
  3. 由于你绑定的arrivalRate是int类型,建议在输入框内写(double)arrivalRate做显式类型转换,避免隐式转换导致的计算异常。
    配置完成后,每次Source生成新实体前都会重新读取最新的arrivalRate值,滑块调整后下一个实体的生成间隔就会按新速率计算。

方案2:滑块变更时主动重置源进程(即时生效,无等待延迟)

如果需要拖动滑块调整的瞬间速率就立刻生效,不需要等下一个实体生成,按以下配置:

  1. 选中你绑定了arrivalRate变量的滑块控件,找到控件的「On change(值更改时)」动作编辑区
  2. 在动作代码中写入以下逻辑,注意将source替换为你模型中Source模块的实际命名:
// 给Source模块设置新的到达速率
source.set_arrivalRate(arrivalRate);
// 重置当前到达计时,立刻按新速率计算下一个实体的生成时间
source.resetArrivalProcess();

配置后只要滑块值变动,Source会立刻终止当前的等待计时,按新速率重新调度实体生成逻辑,没有延迟。

校验排查点

如果配置后仍不生效,依次核对以下配置:

  • 确认Source的到达模式选中的是Rate(按速率生成),其他到达模式不支持上述动态更新逻辑
  • 确认滑块绑定的arrivalRate变量和Source中引用的变量作用域一致,不要出现同名不同域的变量引用错误
  • 确认arrivalRate调整后的取值始终为大于0的正数,速率为0或负数时Source会暂停生成实体,无显性报错。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 13:42:30