Anylogic:无需事件实现变量实时获取群体统计值的方法咨询
解决实时获取仿真统计值的问题
针对你遇到的waiting_units变量仅返回初始0值、必须通过事件触发赋值才能更新的问题,核心原因是静态赋值只会执行一次,无法同步后续动态变化的统计值。以下是无需事件即可持续获取当前统计值的可行方案:
将变量改为动态计算属性
不要一次性赋值,而是让变量每次被访问时自动调用统计方法获取最新值。以Python仿真环境为例,可通过@property装饰器实现:@property def waiting_units(self): return self.jeepneys.Waiting_Units_MDJ()之后每次访问
self.waiting_units,都会实时调用Waiting_Units_MDJ()返回当前统计值。如果是AnyLogic这类可视化仿真平台,直接将变量的"表达式"设置为jeepneys.Waiting_Units_MDJ(),而非在初始化代码中赋值。利用仿真平台的指标绑定功能
多数专业仿真软件(如AnyLogic、Simio)支持将变量直接绑定到群体的统计指标上。找到jeepneys群体的Waiting_Units_MDJ统计项,在变量设置中选择"绑定到指标",软件会自动在后台同步更新变量值,无需手动编写赋值逻辑。替换静态变量为实时调用的函数
如果平台不支持属性或绑定,可以直接定义一个函数替代变量:def get_waiting_units(): return jeepneys.Waiting_Units_MDJ()每次需要获取统计值时调用
get_waiting_units(),就能拿到最新结果。
内容的提问来源于stack exchange,提问作者Jeun Bee
相关产品推荐
相关产品推荐

