Hierarchical Dynamic Load Management
1. Introduction
Hierarchical Dynamic Load Management (Hierarchical DLM) is an advanced power management system designed to coordinate multiple DLM groups within a larger electrical infrastructure. It addresses the challenges of efficiently distributing limited power resources across numerous charging stations while preventing system overloads.
1.1. Why Hierarchical DLM is necessary
As EV charging infrastructure grows, several challenges emerge:
- Limited Power Capacity: Main electrical supplies often have fixed capacity limits that must be shared among multiple charging stations
- Variable Demand: Different charging stations experience varying levels of usage throughout the day
- System Complexity: Managing multiple DLM groups independently can lead to inefficient power allocation
- Safety Concerns: Without coordination, there's risk of overloading electrical lines
Hierarchical DLM solves these challenges by implementing a hierarchical approach where a central coordinator oversees multiple DLM groups, each managed by its own master controller.
2. Topology
Hierarchical DLM follows a structured hierarchy with clearly defined roles and relationships:
Charging Stations
The primary power consumers in the system, capable of adjusting their current consumption based on instructions from controllers.
- Hiarchical DLM Coordinator: Central station that manages the entire hierarchy (e.g., F1-S1)
- DLM Masters: Stations that manage individual groups (e.g., F1-S1, F2-S1, F3-S1)
- DLM Slaves: Stations that receive instructions from their group's master
External Loads
Devices that consume power but cannot be directly controlled by the Hierarchical DLM system.
- Building systems
- Lighting
- Other electrical equipment
The system must account for these loads when allocating power to charging stations.
Meters
Devices that measure power consumption at various points in the system.
- Main Meter: Measures total power consumption
- External Load Meters: Monitor non-charging loads
Connection Types:
- In-line: Measures all current passing through a line
- Branch: Measures only a specific load
2.1. Communication flow
Hierarchical DLM uses a structured communication pattern:
- The Hierarchical DLM Coordinator collects power usage data from all DLM Masters
- Based on constraints and current usage, it calculates optimal power allocation
- Instructions are sent to DLM Masters
- DLM Masters distribute power among their local charging stations
- The process repeats continuously to adapt to changing conditions
3. Constraints file configuration
Hierarchical DLM is configured through a structured JSON file called the "constraints file" that defines all components and their relationships.
3.1. Key configuration elements
The constraints file contains these main parts:
- Lines: Defines the electrical lines and their properties, including current limits and hierarchical relationships.
- Groups: Defines collections of charging stations that share common properties and their connection to power lines.
- Meters: Defines the meters used to monitor power consumption and their connection to the electrical system.
3.2. Configuration structure
{
"lines": {
"<line-name>": {
"CurrentLimit": {
"L1": <number>, /* Amperes for phase 1 */
"L2": <number>, /* Amperes for phase 2 */
"L3": <number> /* Amperes for phase 3 */
},
"Parent": "<parent-line-name>" /* Omit for main supply line */
},
...
},
"groups": {
"<group-name>": {
"Elements": [ /* At least one required */
"<device-id>", /* Charger identifier */
...
],
"Parent": "<line-name>" /* Must reference existing line */
},
...
},
"meters": {
"<meter-name>": {
"Parent": "<line-name>", /* Line being monitored */
"Interface": {
"Type": "modbus-tcp", /* Currently only modbus-tcp supported */
"IPAddress": "<ip-address>" /* Network address of meter */
}
},
...
}
}
3.3. Naming requirements
Each name in the configuration must:
- Be 1 to 63 characters long
- Contain only letters (a-z, A-Z), numbers (0-9), and dashes (-)
- Not begin or end with a dash
- Be unique within its category (lines, groups, or meters)
3.4. Phase configuration
The system supports both three-phase and single-phase installations:
Three-Phase System (Standard)
{
"lines": {
"MainSupply": {
"CurrentLimit": {
"L1": 63,
"L2": 63,
"L3": 63
}
}
}
}
Single-Phase System
{
"lines": {
"MainSupply": {
"CurrentLimit": {
"L1": 32, /* Active phase */
"L2": 0, /* Unused phases are set to 0 */
"L3": 0
}
}
}
}
3.5. Configuration rules
Power line configuration
- One main supply line serves as the source (no Parent field)
- Each additional line connects to a single upstream line
- Direct or indirect self-connection is not permitted
- All referenced lines must exist in the configuration
- Unused phases must be explicitly set to 0
- All chargers on a line must match its phase configuration
Charging group configuration
- Each group requires a valid power line connection
- Groups must contain at least one charging point
- Charging points may belong to only one group
- Groups inherit phase availability from their parent line
Meter configuration
- Each meter must reference an existing power line
- Meters may monitor total line current or external loads
- Meter phase configuration must match the line's configuration
3.6. Optional parameters and validation
Optional Parameters
ExternalLoadCurrent
: Specified fixed loads on the line (must match phase configuration)X-InterSwitchTime
: Minimum interval between limit adjustments (milliseconds)id
: Configuration version identifier (string)
Validation Requirements
The system verifies that:
- Current limits are positive values
- Downstream limits do not exceed upstream capacity
- All line references are valid
- Charging point assignments are unique
- Names conform to specified requirements
- Line connections maintain proper hierarchy
- Phase configurations are consistent throughout each branch
- Zero-current phases are properly propagated to child lines
3.7. System layout examples
Three-Phase Installation
MainSupply (63A per phase) # All phases active
├── Wing-A (32A per phase) # All phases active
│ ├── Group-1 # Three-phase chargers
│ └── Section-1 (16A per phase)
│ ├── Group-2
│ └── Meter-1
└── Wing-B (32A per phase)
├── Meter-2
└── Group-3
Mixed-Phase Installation
MainSupply (63A per phase) # All phases active
├── Wing-A (32A on L1 only) # Single-phase section
│ ├── Group-1 # Single-phase chargers
│ └── Meter-1
└── Wing-B (32A per phase) # Three-phase section
└── Group-2 # Three-phase chargers
3.8. Complete configuration examples
Three-Phase Installation
{
"lines": {
"MainSupply": {
"CurrentLimit": {
"L1": 63,
"L2": 63,
"L3": 63
}
},
"Section1": {
"CurrentLimit": {
"L1": 32,
"L2": 32,
"L3": 32
},
"Parent": "MainSupply"
}
},
"groups": {
"Group1": {
"Elements": ["charger1", "charger2"],
"Parent": "Section1"
}
}
}
Single-Phase Installation
{
"lines": {
"MainSupply": {
"CurrentLimit": {
"L1": 32,
"L2": 0,
"L3": 0
}
},
"Section1": {
"CurrentLimit": {
"L1": 16,
"L2": 0,
"L3": 0
},
"Parent": "MainSupply"
}
},
"groups": {
"Group1": {
"Elements": ["single-phase-charger1"],
"Parent": "Section1"
}
}
}
4. Deep dive into the constraint file
The following interactive diagram provides a visual representation of a complete Hierarchical DLM configuration:
Hover over the elements in the diagram to see the constraints.json equivalent.
- The diagram is simplified to focus on the Hierarchical DLM aspect
- All Charging Stations and Meters are connected to the same network
{
"lines": {
"main": {
"CurrentLimit": {
"L1": 40,
"L2": 40,
"L3": 40
}
},
"line1": {
"CurrentLimit": {
"L1": 32,
"L2": 32,
"L3": 32
},
"Parent": "main"
},
"line2": {
"CurrentLimit": {
"L1": 20,
"L2": 20,
"L3": 20
},
"Parent": "main"
},
"line3": {
"CurrentLimit": {
"L1": 20,
"L2": 20,
"L3": 20
},
"Parent": "main"
}
},
"groups": {
"floor-1": {
"Elements": ["F1-S1", "F1-S2", "F1-S3", "F1-S4", "F1-S5"],
"Parent": "line1"
},
"floor-2": {
"Elements": ["F2-S1", "F2-S2", "F2-S3"],
"Parent": "line2"
},
"floor-3": {
"Elements": ["F3-S1", "F3-S2", "F3-S3"],
"Parent": "line3"
}
},
"meters": {
"Main": {
"Model": "EEM-MB371",
"Parent": "main",
"Interface": {
"Type": "modbus-tcp",
"IPAddress": "10.1.2.3"
}
},
"externalLoad": {
"Model": "EEM-MB371",
"Parent": "line3",
"Interface": {
"Type": "modbus-tcp",
"IPAddress": "10.2.3.4"
}
}
}
}
Let's break down the elements and their attributes: