https://github.com/ai4opt/ml4acopf_benchmark

https://github.com/ai4opt/ml4acopf_benchmark

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: AI4OPT
  • Language: Python
  • Default Branch: main
  • Size: 7.68 MB
Statistics
  • Stars: 3
  • Watchers: 6
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme

README.md

Copyright © 2023, Georgia Institute of Technology. All rights reserved.

ml4acopf benchmark

Machine Learning for AC Optimal Power Flow(ACOPF) benchmark for VNNCOMP

Environment Setup

To set up the environment, follow these steps: 1. Create the environment using the command: conda env create -f env.yaml 2. Activate the environment using the command: conda activate onnx-vnnlib-env


The benchmark files are located in the onnx and vnnlib folders:

To reproduce vnnlib files, run: python generate_properties.py

Vnnlib description

Input:

+- a% perturbation of the reference active and reactive load + random noise between -b% and b%, where a and b are self-defined values.

Output:

Check the properties of the NN output

For example, we are interested in if power balance violation is within some threshold:

for each bus i - |p_balance[i]| <= max(10^(-3), 10^(-2)*pd_i) - |q_balance[i]| <= max(10^(-3), 10^(-2)*qd_i)

where pd_i and qd_i refer to the active and reactive load at each bus respectively.


Inference

The code to run inference is presented in the main.py file.

Example

Take 14-bus system as an example: - onnx file: 14_ieee_ml4acopf.onnx - vnnlib file: 14_ieee_prop1.vnnlib

Parameters

  • N = 14 : number of buses
  • G = 5 : number of generators
  • L = 11 : number of loads

- E = 20 : number of lines

Onnx model description

Input: pd/qd

dim: (2L) = 22 - pd: Real power demand. (L) - qd: Reactive power demand. (L)

Output: pg/qg/vm/va/pf/pt/qf/qt/thrm_1/thrm_2/p_balance/q_balance

dim: (2G + 4N + 6E) = 186 - pg: Real power generation. (G) - qg: Reactive power generation. (G) - vm: Voltage magnitude. (N) - va: Voltage angle. (N) - pf: Real power flow from. (E) - pt: Real power flow to. (E) - qf: Reactive power flow from. (E) - qt: Reactive power flow to. (E) - thrm_1: Thermal limit from residual. (E) - thrm_2: Thermal limit to residual. (E) - p_balance: Real power balance residual. (N) - q_balance: Reactive power balance residual. (N)

Compute graph

Owner

  • Name: AI4OPT
  • Login: AI4OPT
  • Kind: organization

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 1
Last Year
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 1