慧知开源微电网平台慧知开源微电网平台
首页
平台介绍
快速了解
演示环境
  • 系统概述
  • 架构设计
  • 数据底座
  • 设备管理
  • 监控与告警
  • 报表与收益
  • 安全与治理
  • 接口与事件
  • 生产运维
部署指南
首页
平台介绍
快速了解
演示环境
  • 系统概述
  • 架构设计
  • 数据底座
  • 设备管理
  • 监控与告警
  • 报表与收益
  • 安全与治理
  • 接口与事件
  • 生产运维
部署指南
  • EMS 能源管理

    • 系统概述
    • 架构设计
    • 数据底座
    • 设备管理
    • 监控与告警
    • 报表与收益
    • 安全与治理
    • 接口与事件
    • 生产运维
  • 开发文档

    • 平台介绍
    • 快速了解
    • 环境部署
    • 项目介绍
    • 后台手册
    • 前端手册
    • 组件文档
    • 更新日志
  • 微服务工程

    • 服务网关
    • 认证中心
    • 注册中心
    • 配置中心
    • 服务调用
    • 服务监控
    • 链路追踪
    • 熔断和降级
    • 分布式事务
    • 分布式日志
    • 应用容器部署

EMS 数据底座

数据生命周期

采样上报 -> 质量标记 -> 实时快照 -> 原始时序
                                      |
                                      v
                           5 分钟 / 小时汇总
                                      |
                                      v
                             日 / 月 / 年报表
                                      |
                                      v
                              收益与运营指标

数据分层

层级典型数据更新频率使用场景
L0 原始时序接入中台/边缘网关原始标准通道点秒级至分钟级原始追溯、协议排查、精细曲线
L1 实时快照每个标准指标最近值分钟级或更快驾驶舱、能量流、设备状态
L2 标准历史5 分钟标准化指标5 分钟常规趋势、告警评估、小时聚合
L3 业务报表小时、日、月、年统计批处理运营分析、收益核算、导出
L4 审核版本已发布/已审核报表与收益按结算周期财务对账、审计和归档

原始标准通道与标准指标分离。不同厂家可能使用不同通道名、方向和单位,通道映射层将其归一为平台指标,例如 grid.active_power_kw、ess.soc_pct、pv.energy_today_kwh。

数据质量

每个数值都携带 sampleTime 、quality 和 source 信息。质量包括有效、过期、缺失、异常和未知,前端展示时不会将缺失数据静默转为 0。对运营报表而言,数据可信度与数值本身同样重要。

质量判定顺序

  1. 检查来源是否在线、数据是否成功解析。
  2. 检查采样时间是否超出允许迟到和未来漂移范围。
  3. 检查数值类型、单位和物理范围,例如 SOC 必须在 0-100。
  4. 检查变化率和累计量回拨,识别设备复位或寄存器溢出。
  5. 检查同类冗余测点和能量平衡,生成一致性告警。
  6. 将最终质量连同原始值、标准值和判定原因写入处理结果。

不允许的处理

  • 不将 null、超时或查询失败转换为 0。
  • 不对方向错误的功率简单取绝对值。
  • 不用服务器接收时间替代设备采样时间进行结算。
  • 不在无标记的情况下插值或补齐正式报表。
  • 不因为单点异常直接删除原始数据。

实时查询

  1. 按租户、公司、电站、设备范围校验请求。
  2. 优先返回最近采样,同时返回采样时间与数据质量。
  3. 设备停用、未绑定或超过数据时效时,返回明确原因。
  4. 对多设备汇总时保留原始质量,避免异常数据稀释后影响经营判断。

实时快照表建议以 (tenant_id, resource_id, metric_code) 唯一,更新时只有采样时间更新或数据质量更优的点才能覆盖当前值。乱序旧点可以进入历史,但不能倒退实时快照。

历史数据与补拉

历史查询支持最大时间范围限制,防止大范围查询挤占在线资源。对停用后重新启用的设备,可创建历史补拉任务,任务保存时间范围、目标设备和预期数据版本。重叠范围会被拦截,任务进度与失败原因可追溯。

游标与水位线

每个接入端点/边缘网关或同步分片保存最近成功游标。任务读取 [cursor, now - safetyDelay] 区间,成功提交后再推进游标。safetyDelay 用于容纳接入中台写入和网络延迟,避免查询刚结束的开放窗口。

补拉任务状态

PENDING -> VALIDATING -> RUNNING -> VERIFYING -> SUCCEEDED
                      \-> PARTIAL / FAILED / CANCELED

任务记录目标资源、起止时间、原因、创建人、总窗口数、成功窗口数、失败窗口数、数据版本和错误摘要。相同资源的重叠任务默认拒绝或合并,避免重复读取和重复重算。

迟到数据修复

每日低峰期扫描近期已物化窗口,发现数据版本或点数变化时生成迟到修复任务。修复先更新 5 分钟历史,再按依赖顺序重算小时、日、月和收益,不能只改最终金额。

收益计算

收益计算的输入包括发电量、充放电量、上网电量、负荷用电量、电价时段和电站时区。系统保留原始单位和小数精度,计算结果同时附带价格方案版本,便于事后追溯与重算。

时间与时区

数据库内部时间建议使用 UTC 或带偏移量时间,业务日界线按电站 IANA 时区计算。日报不是简单的服务器 00:00-24:00;跨时区站点必须分别切分。价格时段、夏令时、月结和年结均使用同一时间解析组件。

对于 5 分钟窗口,建议统一采用左闭右开区间:[10:00, 10:05)。采样恰好位于 10:05:00 时进入下一窗口,避免重复计数。

单位与精度

类型标准单位计算建议
功率kW保留至少 3 位小数
电量kWh累计量差分保留原精度
电压V按相别保存,不提前求平均
电流A按相别保存,峰值保留时间
SOC/SOH%0-100,保留 1-2 位小数
温度摄氏度保存原始值和传感器位置
金额元中间 6 位以上,最终按规则舍入

单位转换配置需要版本化。设备由 W 改为 kW 或方向修正时,必须明确生效时间,禁止静默重写全部历史。

保留与清理

  • 高频明细按保留策略定期归档。
  • 小时、日、月、年汇总数据与明细数据分开保留。
  • 删除任务之前保留审计信息和数据归档记录。
  • 任何数据清理都不影响电站、设备、告警和收益的主数据。

保留任务按数据层级执行:原始秒级点保留期最短,5 分钟和小时数据更长,已审核月/年报表与审计记录按合规要求长期保存。清理前生成统计和归档记录,执行后验证最小/最大时间和删除数量。

统一数据契约

实时快照、原始点和聚合结果统一采用以下字段语义:

字段说明约束
resourceIdEMS 设备资源 ID业务库稳定主键
endpointId/edgeId自研接入来源用于路由和隔离
channelId原始通道保留原始大小写
sampleTime设备采样时间必须带时区或按电站时区解释
value/unit数值和单位入库前完成单位换算
qualityVALID/STALE/MISSING/INVALID/UNKNOWN不允许用 0 代替缺失
dataVersion计算版本重算时递增

迟到、重复与乱序

写入使用 (endpointId, edgeId, channelId, sampleTime) 作为幂等指纹;同一指纹重复上报只更新接收时间和质量,不产生重复电量。允许 15 分钟内迟到数据进入增量聚合,超过窗口的点进入补算队列。聚合任务按水位线推进,水位线未前进时不发布“最终”报表。

聚合口径

  • 功率类指标使用时间加权平均,峰值保留最大绝对值及发生时间。
  • 电量类指标优先使用设备累计量差分,发生回拨时切换为功率积分并标记 ESTIMATED。
  • SOC 使用采样点快照,不对跨设备 SOC 直接求和;电站 SOC 采用可用容量加权。
  • 负值方向必须在设备模型中声明,报表层禁止临时取绝对值。

功率时间加权

不规则采样不能直接算术平均。对窗口内相邻采样点使用持续时间加权:

平均功率 = Σ(功率值 × 持续秒数) ÷ 窗口总有效秒数
积分电量 = Σ(功率值 × 持续秒数) ÷ 3600

相邻点间隔超过最大允许间隔时,该区间计为缺失而不是继续保持前值。

累计量差分

累计电量正常递增时,窗口电量取末值减首值;设备重启回零、寄存器溢出或更换时,差分出现负值,系统应识别分段并结合功率积分估算,写入 ESTIMATED 和异常原因。

数据血缘与版本

报表行需要反查到输入资源范围、时间窗口、指标版本、价格版本和任务批次。推荐链路:

reportVersion
  -> aggregationJobId
  -> metricDataVersion + watermark
  -> channelMappingVersion
  -> bindingVersion
  -> pricePlanVersion

版本不是为了重复存储所有数据,而是为了回答“这个数字当时基于什么算出来”。

数据质量评分

报表输出 coverageRate、validPointCount、missingPointCount、estimatedPointCount。建议质量门槛:覆盖率低于 95% 标记“数据不完整”,低于 80% 不生成正式收益,只生成草稿并通知运维。

查询与成本控制

历史 API 默认最多查询 31 天、单设备最多 20 个指标;超过范围返回异步导出任务。所有查询必须带租户和资源过滤条件,禁止在服务层先全量拉取再内存过滤。高频明细采用降采样(1m/5m/1h)返回,用户需要原始点时显式申请。

数据验收指标

指标计算方式建议门槛
覆盖率有效时间/目标窗口时间正式报表 >= 95%
新鲜度当前时间 - 最近采样时间实时 P95 < 30 秒
重复率重复指纹点数/总点数< 0.1%
异常率INVALID 点数/总点数按设备类型设阈值
能量平衡偏差平衡残差/总输入能量正常工况建议 < 5%
补拉成功率成功窗口/目标窗口> 99%

排障清单

实时值为空时依次检查绑定是否有效、通道映射是否存在、接入端点是否启用、边缘网关是否在线、Raw Influx 是否有点、查询标签是否匹配、采样是否超出新鲜度。报表不一致时优先比较数据版本、时区、功率方向、累计量回拨、电价版本和覆盖率。

能量平衡:怎么计算、怎么排错

能量平衡用于核验数据一致性和支撑边缘网关控制,不是为了把缺失值补成看似正确的数字。所有测点先转换为统一方向,再在同一个 5 分钟窗口内计算残差;残差超限时标记异常,不篡改原始数据。

统一方向和单位

项目统一正方向映射要求
并网点功率 P_grid从电网购电为正,向电网送电为负厂家定义相反时在映射层乘以 -1
光伏功率 P_pv发电输出为正优先使用逆变器交流侧
负荷功率 P_load用电消耗为正无直测时只能作为估算值
储能功率 P_ess放电为正,充电为负统一 SOC 和功率单位
损耗 P_loss消耗为正可包含变压器和线路损耗

参与计算的功率必须是 kW,采样时间必须在同一窗口。W/kW、不同站点时区和接收时间混用是最常见的假异常来源。

瞬时和电量残差

P_residual = P_grid + P_pv + P_ess - P_load - P_loss
P_base = max(|P_grid| + |P_pv| + |P_ess| + |P_load|, 1 kW)
relativeResidual = |P_residual| / P_base

建议平衡通过条件同时满足:绝对残差不超过 max(额定容量 × 2%, 2 kW),相对残差不超过 5%。应按电站容量、计量精度调整阈值;连续 3 个窗口超限再报警,避免单点乱序造成告警风暴。

窗口电量优先使用累计量差分。没有可靠累计量才使用梯形积分:

E_interval(kWh) = (P_i + P_i+1) / 2 × (t_i+1 - t_i) / 3600
E_grid_import + E_pv + E_ess_discharge
= E_load + E_grid_export + E_ess_charge + E_loss + E_residual

相邻点间隔超过最大允许值,例如 10 分钟时,该区间计为缺失,禁止保持前值继续积分。累计量差分为负时按重启、溢出或换表处理,不能简单取绝对值。

缺少负荷表时

并网、光伏、储能均可信但没有独立负荷表时,页面可以估算:

P_load_estimated = P_grid + P_pv + P_ess - P_loss_assumed

结果必须标记 ESTIMATED,不能作为精确结算或写回真实负荷。若储能或并网测点同样缺失,则返回 MISSING。

能量不平衡排查顺序

  1. 对照现场表计确认购电、反送、充电、放电的正负方向。
  2. 检查 W/kW、Wh/kWh、CT/PT 变比;误差接近 1000 倍通常是单位问题。
  3. 确认所有测点处于同一个 5 分钟桶,没有一条数据已过期。
  4. 检查未计量支路、离网负荷、变压器损耗和直流耦合设备。
  5. 检查累计量清零、溢出和更换电表的时间点。
  6. 修复映射后通过报表补拉重算,不能直接改历史收益。

自研平衡与调度算法:技术亮点

能量平衡不只是报表校验,更是慧知 EMS 判断数据可信、策略可执行和收益可解释的基础算法。平台将并网、光伏、负荷、储能和损耗统一到同一方向体系,在同一个时间窗口内计算功率残差和电量残差,从而识别方向接反、单位错误、计量缺口、采样过期和未纳入支路。

白话讲,能量平衡就是看“电从哪里来、用到哪里去”能不能对上账。如果光伏、储能、负荷和电网数据加起来明显不平,系统不会假装正常,而是提示可能存在方向、单位、计量或采样问题。

平衡残差模型

P_residual = P_grid + P_pv + P_ess - P_load - P_loss
P_base = max(|P_grid| + |P_pv| + |P_ess| + |P_load|, 1 kW)
relativeResidual = |P_residual| / P_base

其中 P_grid 以购电为正、上网为负;P_pv 以发电为正;P_ess 以放电为正、充电为负;P_load 以消耗为正。残差同时设置绝对阈值和相对阈值,避免小站被绝对误差放大、大站被相对误差掩盖。

调度约束模型

储能调度在经济目标之外必须先满足安全约束:SOC 上下限、最大充放电功率、PCS 温度、BMS 告警、反送限制、需量边界和控制互斥。平台将约束抽象为可组合的裁剪器,策略给出目标功率后,统一经过安全边界裁剪,再进入边缘网关本地闭环。

0 <= SOC_t <= 100%
-P_charge_max <= P_ess_t <= P_discharge_max
SOC_t+1 = SOC_t + eta_charge × E_charge / C - E_discharge / (eta_discharge × C)
P_grid_after = P_grid_without_ess - P_ess_target

策略能力

策略核心目标算法特征
自发自用提高光伏本地消纳,减少外购电以并网点功率为反馈,动态调节储能吸收或释放
零反送将反送控制在合同允许范围内反送约束优先级高于经济优化和普通计划
削峰填谷降低最大需量并获取峰谷价差结合需量阈值、价格时段和 SOC 余量滚动决策
分时优化在价格曲线下寻找收益更优计划以 15 分钟预测窗口组合负荷、光伏、价格和容量约束
异常降级数据缺失或设备受限时保持安全策略降级为保守模式,不输出不可验证的高风险指令

技术价值

这套算法让平台具备“可解释的智能调度”能力:收益不是黑盒,控制不是拍脑袋,异常也不用全靠人工猜。每个计划都能说明用了哪些数据、受哪些安全边界限制、为什么这样下发、执行后效果怎样。

最近更新:: 2026/8/21 18:56
Contributors: guankecheng-20250523, 官柯丞
Prev
架构设计
Next
设备管理