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

Anylogic:事件块重置Histogram遇类型不匹配错误求助

AnyLogic中实现Histogram每小时重置并统计TimeMeasureEnd输出的解决方案

问题原因

你遇到的类型不匹配错误,是因为直接将Histogram绑定到timeMeasureEnd.distribution(TimeMeasureEnd的内置样本分布对象),调用reset()时系统错误地尝试将TimeMeasureEnd对象转换为double类型,导致类型冲突。该问题和Source注入的Agent无关。

正确实现步骤

方法1:手动维护Histogram Data(推荐)

  • 创建Histogram Data对象:在Main的Data面板下新建一个Histogram Data,命名为hourlyTimeData。
  • 配置TimeMeasureEnd模块:在TimeMeasureEnd的On measure end事件中添加代码,将每次测量结果手动添加到Histogram Data:
    hourlyTimeData.add(timeMeasureEnd.getLastValue());
    
  • 绑定Histogram组件:将你的Histogram组件(chart)的Data属性设置为hourlyTimeData,替代原来的timeMeasureEnd.distribution。
  • 设置事件块重置逻辑:在HourlyReset事件块的Action中,调用Histogram Data的重置方法:
    hourlyTimeData.reset();
    
    注:部分AnyLogic版本中可替换为clear(),若reset()报错可测试此方法。

方法2:复用TimeMeasureEnd的重置功能

如果不想额外维护Histogram Data,也可以直接重置TimeMeasureEnd的统计数据,让Histogram自动同步新数据:

  • 将Histogram的Data属性保持为timeMeasureEnd.distribution。
  • 在HourlyReset事件块的Action中,直接重置TimeMeasureEnd的统计:
    timeMeasureEnd.reset();
    
    这样TimeMeasureEnd会清空之前的样本,Histogram会自动刷新为新的每小时数据。

验证方法

运行模型后,观察每小时事件触发时,Histogram是否清空并重新统计新的测量值,同时检查控制台是否仍有类型不匹配的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:06:32