These are the components registered with the web app. Each is a HELICS
federate that consumes (subscribes) and produces (publishes) typed
data. The name is what you see in the designer palette; the folder is where
its code lives in oedisi-components.
For detailed information on the data types components exchange (like VoltagesMagnitude,
PowersReal, Topology), see the data types reference.
Jump to a component below for details including configuration options, data types, and links to source code.
All components¶
| Component | Folder | Subscribes | Publishes |
|---|---|---|---|
| DOPFPSOComponent | dopf_federate | 4 | 1 |
| DSSEGNWLSComponent | dsse_federate | 4 | 2 |
| EVCSComponent | evcs_federate | 5 | 1 |
| Feeder | LocalFeeder | 3 | 10 |
| LinDistFlowComponent | lindistflow_federate | 3 | 2 |
| LocalFeeder | LocalFeeder | 3 | 10 |
| MeasurementComponent | measuring_federate | 1 | 1 |
| NlpDopfComponent | ./ | 5 | 4 |
| NlpDsseComponent | nlpdsse | 3 | 2 |
| OMOOComponent | omoo_federate | 7 | 3 |
| PnnlDopfAdmmComponent | admm_federate | 7 | 10 |
| PnnlDsseEkfComponent | ekf_federate | 6 | 2 |
| PnnlHubControlComponent | hub_control | 5 | 1 |
| PnnlHubPowerComponent | hub_power | 10 | 10 |
| PnnlHubVoltageComponent | hub_voltage | 5 | 5 |
| Recorder | recorder | 1 | 0 |
| StateEstimatorComponent | wls_federate | 4 | 2 |
DOPFPSOComponent¶
Folder: dopf_federate
Distribution Optimal Power Flow (DOPF) component using Particle Swarm Optimization (PSO) to compute optimal power flow solutions. Determines optimal generation setpoints and control actions to minimize cost while satisfying power flow constraints and voltage limits in distribution networks.
Configuration (static_inputs)
| Port | Type |
|---|---|
name | — |
pv_buses | — |
pv_capacity_kw | — |
algorithm_parameters | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
powers_real | PowersReal | |
powers_imag | PowersImaginary | |
topology | Topology | |
voltages_magnitude | VoltagesMagnitude |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
change_commands | CommandList |
DSSEGNWLSComponent¶
Folder: dsse_federate
Distribution System State Estimation (DSSE) component using Gauss-Newton Weighted Least Squares (GNWLS) algorithm. Estimates voltage magnitudes and angles from noisy measurements in distribution networks, providing essential state information for monitoring and control applications.
Configuration (static_inputs)
| Port | Type |
|---|---|
name | — |
algorithm_parameters | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltages_magnitude | VoltagesMagnitude | |
powers_real | PowersReal | |
powers_imaginary | PowersImaginary | |
topology | Topology |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
EVCSComponent¶
Folder: evcs_federate
Electric Vehicle Charging Station (EVCS) component that simulates and optimizes EV charging operations. Uses Particle Swarm Optimization (PSO) to determine optimal charging schedules that balance user requirements (desired state of charge, departure times) with grid constraints, minimizing impact on the distribution system.
Configuration (static_inputs)
| Port | Type |
|---|---|
evcs_bus | — |
evcs_bus_assignment | — |
num_evs_per_station | — |
max_charging_rate | — |
battery_capacity | — |
charging_efficiency | — |
desired_soc | — |
soc_mean | — |
soc_std | — |
soc_lower | — |
soc_upper | — |
arrival_mean | — |
arrival_std | — |
arrival_lower | — |
arrival_upper | — |
departure_shift | — |
departure_mu | — |
departure_sigma | — |
total_hours | — |
control_interval | — |
random_seed | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
powers_real_in | PowersReal | |
powers_imag_in | PowersImaginary | |
topology | Topology | |
voltages_real | VoltagesReal | |
voltages_imag | VoltagesImaginary |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
change_commands | CommandList |
Feeder¶
Folder: LocalFeeder
Distribution feeder simulator using OpenDSS for power flow analysis. Simulates distribution system behavior using SMART-DS datasets, providing voltage, power, and topology information. Accepts control commands and inverter setpoints from optimization and control components to model the impact of distributed energy resources on the grid.
Configuration (static_inputs)
| Port | Type |
|---|---|
feeder_file | — |
start_date | — |
run_freq_sec | — |
number_of_timesteps | — |
start_time_index | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
pv_set | — | yes |
change_commands | CommandList | yes |
inv_control | InverterControlList | yes |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltages_magnitude | VoltagesMagnitude |
voltages_real | VoltagesReal |
voltages_imag | VoltagesImaginary |
powers_real | PowersReal |
powers_imag | PowersImaginary |
topology | Topology |
injections | Injection |
load_y_matrix | — |
available_power | PowersReal |
pv_forecast | — |
LinDistFlowComponent¶
Folder: lindistflow_federate
Linearized Distribution Flow (LinDistFlow) optimization component for three-phase unbalanced distribution systems. Uses convex optimization (CVXPY) with a linearized power flow model to efficiently compute optimal generation and control setpoints for distributed energy resources while enforcing voltage and power constraints.
Configuration (static_inputs)
| Port | Type |
|---|---|
name | — |
deltat | — |
control_type | — |
pf_flag | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltages_magnitude | VoltagesMagnitude | |
topology | Topology | |
injections | Injections |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
change_commands | ControlList |
opf_voltages_magnitude | VoltagesMagnitude |
LocalFeeder¶
Folder: LocalFeeder
Distribution feeder simulator using OpenDSS for power flow analysis. Simulates distribution system behavior using SMART-DS datasets, providing voltage, power, and topology information. Accepts control commands and inverter setpoints from optimization and control components to model the impact of distributed energy resources on the grid.
Configuration (static_inputs)
| Port | Type |
|---|---|
feeder_file | — |
start_date | — |
run_freq_sec | — |
number_of_timesteps | — |
start_time_index | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
pv_set | — | yes |
change_commands | CommandList | yes |
inv_control | InverterControlList | yes |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltages_magnitude | VoltagesMagnitude |
voltages_real | VoltagesReal |
voltages_imag | VoltagesImaginary |
powers_real | PowersReal |
powers_imag | PowersImaginary |
topology | Topology |
injections | Injection |
load_y_matrix | — |
available_power | PowersReal |
pv_forecast | — |
MeasurementComponent¶
Folder: measuring_federate
Sensor and measurement simulation component that adds realistic noise to perfect measurements. Supports configurable additive (Gaussian) and multiplicative (percentage-based) noise injection with seeded random generation for reproducibility. Essential for testing state estimation algorithms and understanding measurement uncertainty impacts.
Configuration (static_inputs)
| Port | Type |
|---|---|
additive_noise_stddev | — |
multiplicative_noise_stddev | — |
measurement_file | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
subscription | MeasurementArray |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
publication | MeasurementArray |
NlpDopfComponent¶
Folder: ./
Nonlinear Programming (NLP) based Distribution Optimal Power Flow component. Solves the AC optimal power flow problem using nonlinear optimization techniques to compute optimal setpoints for distributed generation, considering full AC power flow equations for higher accuracy compared to linearized methods.
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
powers_real | PowersReal | |
powers_imaginary | PowersImaginary | |
topology | Topology | |
injections | Injection | |
available_power | MeasurementArray |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
powers_real | PowersReal |
powers_imaginary | PowersImaginary |
NlpDsseComponent¶
Folder: nlpdsse
Nonlinear Programming (NLP) based Distribution System State Estimation component. Estimates voltage magnitudes and angles from measurements using nonlinear optimization, accounting for the full nonlinear relationship between measurements and system states for improved estimation accuracy in distribution networks.
Configuration (static_inputs)
| Port | Type |
|---|---|
start_date | — |
run_freq_sec | — |
start_time_index | — |
number_of_timesteps | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
powers_real | PowersReal | |
powers_imaginary | PowersImaginary | |
topology | Topology |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
OMOOComponent¶
Folder: omoo_federate
Online Model-based Optimal Operation component for voltage regulation in distribution systems with high photovoltaic (PV) penetration. Implements a primal-dual optimization approach using linearized power flow sensitivity matrices to compute optimal PV curtailment and reactive power setpoints for real-time voltage control.
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltages_real | VoltagesReal | |
voltages_imag | VoltagesImaginary | |
powers_real | PowersReal | |
powers_imag | PowersImaginary | |
topology | Topology | |
injections | Injections | |
available_power | MeasurementArray |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
P_set | CommandList |
PnnlDopfAdmmComponent¶
Folder: admm_federate
Distribution Optimal Power Flow component using the Alternating Direction Method of Multipliers (ADMM) algorithm. Provides a distributed optimization approach suitable for large-scale distribution networks, decomposing the OPF problem into smaller subproblems that can be solved in parallel for improved computational efficiency.
Configuration (static_inputs)
| Port | Type |
|---|---|
name | — |
deltat | — |
t_steps | — |
max_itr | — |
control_type | — |
switches | — |
source_bus | — |
source_line | — |
relaxed | — |
rho_vup | — |
rho_sup | — |
rho_vdn | — |
rho_sdn | — |
vup_tol | — |
sdn_tol | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltages_real | VoltagesReal | |
voltages_imag | VoltagesImaginary | |
topology | Topology | |
injections | Injections | |
sub_p | PowersReal | |
sub_q | PowersImaginary | |
sub_v | VoltagesMagnitude |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
estimated_power | PowersReal |
solver_stats | MeasurementArray |
power_mag | PowersMagnitude |
power_angle | PowersAngle |
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
pub_p | PowersReal |
pub_q | PowersImaginary |
pub_v | VoltagesMagnitude |
pub_c | CommandList |
PnnlDsseEkfComponent¶
Folder: ekf_federate
Distribution System State Estimation using Extended Kalman Filter (EKF). Provides dynamic state estimation by recursively updating voltage and power estimates as new measurements arrive, accounting for system dynamics and measurement noise. Particularly useful for real-time applications and time-varying system conditions.
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltage_mag | VoltagesMagnitude | |
voltage_angle | VoltagesAngle | |
power_real | PowersReal | |
power_imag | PowersImaginary | |
injections | Injections | |
topology | Topology |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |
PnnlHubControlComponent¶
Folder: hub_control
Control signal aggregation and distribution hub for coordinating multiple control sources. Collects control commands from various optimization and control components, merges or arbitrates between them, and distributes the final control setpoints to the appropriate devices in the distribution system.
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
sub_c0 | CommandList | yes |
sub_c1 | CommandList | yes |
sub_c2 | CommandList | yes |
sub_c3 | CommandList | yes |
sub_c4 | CommandList | yes |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
pub_c | CommandList |
PnnlHubPowerComponent¶
Folder: hub_power
Power measurement aggregation and distribution hub for coordinating multiple power flow sources. Collects real and reactive power measurements from multiple sources, aggregates them for use by state estimation or optimization components, and distributes updated power values to subscribing federates in the co-simulation.
Configuration (static_inputs)
| Port | Type |
|---|---|
max_itr | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
sub_p0 | PowersReal | yes |
sub_p1 | PowersReal | yes |
sub_p2 | PowersReal | yes |
sub_p3 | PowersReal | yes |
sub_p4 | PowersReal | yes |
sub_q0 | PowersImaginary | yes |
sub_q1 | PowersImaginary | yes |
sub_q2 | PowersImaginary | yes |
sub_q3 | PowersImaginary | yes |
sub_q4 | PowersImaginary | yes |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
pub_p0 | PowersReal |
pub_p1 | PowersReal |
pub_p2 | PowersReal |
pub_p3 | PowersReal |
pub_p4 | PowersReal |
pub_q0 | PowersImaginary |
pub_q1 | PowersImaginary |
pub_q2 | PowersImaginary |
pub_q3 | PowersImaginary |
pub_q4 | PowersImaginary |
PnnlHubVoltageComponent¶
Folder: hub_voltage
Voltage measurement aggregation and distribution hub for coordinating multiple voltage sources. Collects voltage magnitude measurements from various sources (feeders, state estimators), aggregates them for system-wide visibility, and distributes voltage information to optimization and control components for decision-making.
Configuration (static_inputs)
| Port | Type |
|---|---|
max_itr | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
sub_v0 | VoltagesMagnitude | yes |
sub_v1 | VoltagesMagnitude | yes |
sub_v2 | VoltagesMagnitude | yes |
sub_v3 | VoltagesMagnitude | yes |
sub_v4 | VoltagesMagnitude | yes |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
pub_v0 | VoltagesMagnitude |
pub_v1 | VoltagesMagnitude |
pub_v2 | VoltagesMagnitude |
pub_v3 | VoltagesMagnitude |
pub_v4 | VoltagesMagnitude |
Recorder¶
Folder: recorder
Data recording component for capturing time-series outputs from HELICS co-simulations. Subscribes to measurement publications and saves data to disk in efficient columnar formats (Apache Arrow/Feather) and CSV. Provides low-overhead recording with automatic data aggregation for post-simulation analysis and visualization.
Configuration (static_inputs)
| Port | Type |
|---|---|
filename | — |
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
subscription | MeasurementArray |
StateEstimatorComponent¶
Folder: wls_federate
Weighted Least Squares (WLS) state estimation component for power distribution systems. Estimates voltage magnitudes and angles from noisy measurements with known accuracy (weights) using iterative least-squares optimization. Provides essential system observability for monitoring, bad data detection, and control applications.
Subscribes (dynamic_inputs)
| Port | Type | Optional |
|---|---|---|
voltages_magnitude | VoltagesMagnitude | |
powers_real | PowersReal | |
powers_imaginary | PowersImaginary | |
topology | Topology |
Publishes (dynamic_outputs)
| Port | Type |
|---|---|
voltage_mag | VoltagesMagnitude |
voltage_angle | VoltagesAngle |