Smart Grid Balancing & Control

System ↔ System

Meter readings drive load aggregation, frequency regulation, and billing.

6 nodes · 5 edgesenergy
eventsystemdb
Visual
Meter Reading Streamevent

AMI smart meter data arriving every 15 seconds via MQTT.

sequentialLoad Aggregation
Load Aggregationsystem

Sum demand by feeder, substation, and region.

sequentialFrequency Regulation
parallelBilling Update
Frequency Regulationsystem

Calculate generation-load imbalance and dispatch correction signal.

conditionalStorage Dispatch
sequentialGrid Balancing
Storage Dispatchsystem

Charge or discharge battery storage based on frequency deviation.

Grid Balancingsystem

Coordinate distributed energy resources to maintain 60Hz nominal.

Billing Updatedb

Record interval consumption for time-of-use billing calculation.

uc-smart-grid-control.osop.yaml
osop_version: "1.0"
id: "smart-grid-control"
name: "Smart Grid Balancing & Control"
description: "Meter readings drive load aggregation, frequency regulation, and billing."

nodes:
  - id: "meter_stream"
    type: "event"
    name: "Meter Reading Stream"
    description: "AMI smart meter data arriving every 15 seconds via MQTT."

  - id: "load_agg"
    type: "system"
    name: "Load Aggregation"
    description: "Sum demand by feeder, substation, and region."

  - id: "freq_regulate"
    type: "system"
    name: "Frequency Regulation"
    description: "Calculate generation-load imbalance and dispatch correction signal."
    timeout_sec: 5

  - id: "storage_dispatch"
    type: "system"
    name: "Storage Dispatch"
    description: "Charge or discharge battery storage based on frequency deviation."
    security:
      risk_level: "high"

  - id: "grid_balance"
    type: "system"
    name: "Grid Balancing"
    description: "Coordinate distributed energy resources to maintain 60Hz nominal."

  - id: "billing_update"
    type: "db"
    name: "Billing Update"
    description: "Record interval consumption for time-of-use billing calculation."

edges:
  - from: "meter_stream"
    to: "load_agg"
    mode: "sequential"
  - from: "load_agg"
    to: "freq_regulate"
    mode: "sequential"
  - from: "freq_regulate"
    to: "storage_dispatch"
    mode: "conditional"
    when: "abs(freq_deviation) > 0.02"
  - from: "freq_regulate"
    to: "grid_balance"
    mode: "sequential"
  - from: "load_agg"
    to: "billing_update"
    mode: "parallel"