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

AnyLogic技术问询:带时间约束的充电区Agent进出统计及在场数计算

在AnyLogic中统计带时间约束的充电区Agent进出及实时在场数

一、基础变量定义

在充电站(Charging Station)代理或模型主环境中添加以下变量:

  • int currentAgentsInStation:存储实时在场且符合时间约束的Agent总数,初始值设为0
  • HashMap<Agent, Double> agentEntryTimes:记录每个进入充电区的Agent及其进入时间,用于后续时间约束校验

二、Agent进入充电区的统计逻辑

在充电区(Charging Block)的On enter事件中编写代码:

// 记录当前Agent的进入时间
agentEntryTimes.put(agent, time());

// 按时间约束判断是否纳入统计(示例:仅统计8:00-20:00进入的Agent)
double startTime = timeToDouble(8, 0, 0);
double endTime = timeToDouble(20, 0, 0);
if (time() >= startTime && time() <= endTime) {
    currentAgentsInStation++;
}

三、Agent离开充电区的统计逻辑

在充电区(Charging Block)的On exit事件中编写代码:

// 获取该Agent的进入时间
Double entryTime = agentEntryTimes.get(agent);
if (entryTime != null) {
    double startTime = timeToDouble(8, 0, 0);
    double endTime = timeToDouble(20, 0, 0);
    // 校验进入时间是否符合统计约束,符合则更新在场数
    if (entryTime >= startTime && entryTime <= endTime) {
        currentAgentsInStation--;
    }
    // 移除已离开Agent的时间记录,避免内存占用
    agentEntryTimes.remove(agent);
}

四、实时在场数展示

  • 在模型界面添加Text组件,将其Text属性绑定为"" + currentAgentsInStation,即可实时显示符合时间约束的Agent在场总数
  • 若需更详细统计(如峰值、平均在场时长),可添加Statistics组件,将currentAgentsInStation作为统计输入项

五、示例场景说明

假设需统计工作日8:00-20:00进入充电区的车辆:

  1. 车辆进入充电区时,系统自动记录进入时间,若在目标时段内则在场数+1
  2. 车辆充电完成离开时,系统核对其进入时间,符合时段则在场数-1
  3. 界面Text组件实时更新显示当前在场的合规车辆数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:30:44