Skip to content

虚拟电厂平台架构

整体架构分层

VPP 平台是一个典型的"云-边-端"三层架构,从现场设备到电力市场形成完整的数据和控制闭环。

┌──────────────────────────────────────────────────────────┐
│                      云平台层(VPP 核心)                   │
│  资源聚合引擎 │ 预测引擎 │ 调度引擎 │ 交易引擎 │ 结算引擎   │
├──────────────────────────────────────────────────────────┤
│                      边缘层(边缘网关)                      │
│  协议适配 │ 本地 EMS │ 数据缓存 │ 边缘执行 │ 安全隔离      │
├──────────────────────────────────────────────────────────┤
│                      设备层(DER 资源)                      │
│  储能 PCS │ 光伏逆变器 │ 充电桩 │ 楼控系统 │ 工业设备      │
└──────────────────────────────────────────────────────────┘

核心功能模块详解

1. 资源聚合引擎

资源聚合是 VPP 的基础,负责管理所有接入资源的状态和能力。

核心数据模型

Resource(资源)
├── resourceId: string          # 全局唯一标识
├── type: enum                  # STORAGE / PV / LOAD / EV
├── location: GeoPoint          # 地理位置(用于电网拓扑分析)
├── capacity: float             # 额定容量(kW/kWh)
├── availableCapacity: float    # 当前可用容量(实时更新)
├── responseTime: int           # 最快响应时间(秒)
├── protocol: enum              # MODBUS / IEC104 / MQTT / REST
└── status: enum                # ONLINE / OFFLINE / FAULT / RESERVED

聚合组(Portfolio):将多个资源按地区、类型、响应速度分组,形成可对外报价的"虚拟机组"。

2. 预测引擎

预测精度是 VPP 盈利能力的核心竞争力,分为三类预测:

负荷预测

  • 输入特征:历史用电数据、气象数据(温度/湿度/辐照度)、日历特征(工作日/节假日)、特殊事件
  • 模型选型:短期(0-4h)用 LSTM 或 Transformer,超短期(0-15min)用在线学习模型
  • 精度要求:日前预测 MAPE < 5%,超短期 MAPE < 3%

出力预测(针对光伏/风电):

  • 光伏:基于 NWP(数值天气预报)+ 辐照度传感器数据
  • 精度要求:日前预测 RMSE < 15%

价格预测(现货市场参与必备):

  • 输入:历史价格、负荷预测、新能源出力预测、机组检修计划
  • 模型:时序预测 + 市场规则约束
  • 难点:价格尖峰(spike)预测,极端价格对套利收益影响最大

3. 调度引擎

调度引擎是 VPP 的"大脑",负责将市场指令分解为对每个资源的具体控制指令。

调度流程

市场指令(总量 + 时间窗口)

资源可用性评估(实时状态 + 约束检查)

优化分配(目标函数:最小化成本 / 最大化收益)

指令下发(按响应时间排序,优先调用快速资源)

执行监控(实时跟踪,偏差超阈值触发补偿调度)

结果上报(向市场侧报告实际执行量)

优化约束

  • 储能 SOC 上下限(通常 10%-90%)
  • 设备额定功率限制
  • 用户舒适度约束(如空调温度不低于 26°C)
  • 电网安全约束(不引发局部过载)

调度算法

  • 小规模资源(< 100 个节点):混合整数线性规划(MILP)
  • 大规模资源(> 1000 个节点):启发式算法(遗传算法、粒子群)+ 分层调度

4. 交易引擎

负责与电力交易中心的系统对接,完成报价、中标、执行的全流程。

交易流程

日前阶段(D-1)
├── 16:00 前:完成负荷/出力预测
├── 16:30 前:生成报价策略(量价曲线)
└── 17:00 前:通过交易系统 API 提交报价

实时阶段(D)
├── 每 15 分钟:更新超短期预测
├── 接收调度指令:解析 IEC 104 或 REST 报文
└── 触发调度引擎:下发控制指令

与交易中心的接口协议

  • 国调/省调:IEC 60870-5-104(IEC 104)
  • 部分省份交易中心:REST API + 数字证书认证
  • 数据格式:XML(传统)或 JSON(新建系统)

5. 结算引擎

结算引擎负责计算每个资源的贡献量,并按合同条款分配收益。

计量数据来源

  • 关口电表(主计量):15 分钟间隔,精度 0.5 级
  • 设备自报数据(辅助计量):用于实时监控,不作为结算依据

收益分配模型

总收益 = 需求响应收益 + 辅助服务收益 + 现货套利收益 + 容量费

用户分成 = 总收益 × 用户贡献比例 × (1 - 平台服务费率)

关键技术协议

Modbus RTU/TCP

用于接入工业设备(储能 PCS、充电桩控制器、工业负荷)。

典型寄存器映射(储能 PCS):
- 40001: 有功功率设定值(int16,单位 0.1kW)
- 40002: 无功功率设定值(int16,单位 0.1kVar)
- 30001: 实际有功功率(int16,只读)
- 30002: SOC(uint16,单位 0.1%)
- 00001: 启停控制(coil)

IEC 60870-5-104

用于与电网调度系统通信,接收调度指令和上报遥测数据。

关键报文类型:
- C_SC_NA_1 (45): 单点遥控(启停)
- C_SE_NC_1 (50): 设定值命令(功率设定)
- M_ME_NC_1 (13): 短浮点数遥测(实时功率上报)
- M_SP_NA_1 (1): 单点遥信(状态上报)

MQTT

用于边缘网关与云平台之间的数据上报,以及对响应速度要求不高的设备控制。

Topic 规范:
上报:vpp/{tenantId}/{resourceId}/telemetry
控制:vpp/{tenantId}/{resourceId}/command
状态:vpp/{tenantId}/{resourceId}/status

边缘网关设计要点

边缘网关是 VPP 的神经末梢,承担协议转换、本地执行、断网续传等关键功能。

核心能力

  1. 多协议并发接入:同时支持 Modbus RTU(RS485)、Modbus TCP、IEC 104、MQTT
  2. 本地 EMS:云端失联时,按预设策略本地执行,避免资源失控
  3. 数据缓存:断网期间缓存遥测数据,恢复连接后补传,保证计量数据完整性
  4. 安全隔离:设备侧与云侧网络隔离,防止云端攻击穿透到现场设备

硬件选型参考

  • 工业级 ARM 主板(如 RK3568)+ Linux 系统
  • 双网口(设备侧 + 云侧)
  • 4G/5G 备用链路
  • 本地存储 ≥ 32GB(缓存 7 天遥测数据)

数据流架构

设备层                边缘层                    云平台层
─────────────────────────────────────────────────────────
PCS ──Modbus──┐
逆变器─Modbus─┤   边缘网关          ┌─ 时序数据库(InfluxDB)
充电桩─OCPP──┤   ├─ 协议适配        │  (遥测数据,15s 间隔)
楼控─BACnet──┘   ├─ 数据清洗   MQTT─┤
                  ├─ 本地 EMS        ├─ 关系数据库(PostgreSQL)
                  └─ 边缘执行        │  (资源台账、合同、结算)
                                     └─ 消息队列(Kafka)
                                        (调度指令、事件流)

褚成志的IoT笔记