求助:如何获取AnyLogic调度模块中当前的到达率数值
解决AnyLogic中实时获取到达调度当前值的问题
你的问题出在变量只在模型启动时执行了一次schedule.getValue(),所以只会保留初始值,不会随时间自动更新。给你两个简单的解决办法:
方法1:直接实时调用函数(推荐新手)
不用把值存在变量里,在需要用到到达率的地方(比如流程判断条件、参数输入框)直接写schedule.getValue(time())。这个函数每次被调用时,都会根据当前模型时间time()返回调度对应的实时数值。
方法2:用变量存储并实时更新
如果一定要用变量保存当前值,就给模型加个周期性事件:
- 拖一个「Event」组件到画布,设置触发类型为「Periodic」,周期设成你调度里的时间间隔(比如每天1次,或者更短的频率,看你调度多久更新一次)
- 在事件的「Action」里写:
你的变量名 = schedule.getValue(time());,这样每次事件触发,变量就会自动更新为当前的调度值。
额外提示
如果你用的是AnyLogic自带的「Arrival Schedule」组件,还可以直接用arrivalSchedule.getArrivalRate(time())来获取当前到达率,更贴合你的需求。
内容的提问来源于stack exchange,提问作者Yusuf
相关产品推荐
相关产品推荐

