Code Monkey home page Code Monkey logo

realife-brahmin / multiperiod-distopf-benchmark Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 506.66 MB

Multi-Period Optimal Power Flow for Active Distribution Systems with Spatially Distributed Computation

MATLAB 62.90% Julia 37.04% Python 0.06%
battery-storage ieee123 inverter-control multi-period-optimization optimal-power-flow photovoltaics spatial-decomposition branch-flow-model multi-period-optimal-power-flow active-power-distribution-system

multiperiod-distopf-benchmark's Introduction

Multi-Period Distributed Optimal Power Flow

Optimization for Balanced Three-Phase Power Distribution Networks with Renewables and Storage in MATLAB.

Naive Brute Force Multi-Period OPF. A spatially decomposed, temporally brute-forced MPOPF has been implemented.

Objectives currently covered:

  • Loss Minimization

Description of the Modelling of the Radial Power Distribution System

Description of State Variables

Variable Notation Variable Description Number of Variables Nature of Constraint
$P^{t}_{ij}$ Real Power flowing in branch $m$ Nonlinear
$Q^{t}_{ij}$ Reactive Power flowing in branch $m$ Nonlinear
$l^{t}_{ij}$ Square of Magnitude of branch Current $m$ Nonlinear
$v^{t}_{j}$ Square of Magnitude of node Voltage $N$ Nonlinear
$B^{t}_{j}$ Battery State of Charge $n_{B}$ Linear

Description of Control Variables

Variable Notation Variable Description Number of Variables Nature of Constraint
$q^{t}_{D_j}$ Reactive Power of DER (via inverter) $n_{D}$ Linear1
$P^{t}_{c_j}$ Charging Power of Battery $n_{B}$ Linear
$P^{t}_{d_j}$ Discharging Power of Battery $n_{B}$ Linear
$q^{t}_{B_j}$ Reactive Power of Battery (via inverter) $n_{B}$ Linear1

Description of Independent Variables

Variable Notation Variable Description Number of Variables Nature of Constraint
$P^{t}_{L_j}$ Real Power Demand $N$ Linear
$Q^{t}_{L_j}$ Reactive Power Demand $N$ Linear
$P^{t}_{D_j}$ Real Power of DER $n_{D}$ Linear1
$B^{0}_{j}$ Battery Initial State of Charge $n_{B}$ Linear

Miscellaneous Notation

Variable Notation Variable Description Cardinality
$\mathbb{N}$ Set of all the nodes $N$
$\mathbb{L}$ Set containing all the branches $m$
$\mathbb{D}$ Set containing all the nodes containing DERs. $\mathbb{D} \subset \mathbb{N}$ $n_{D}$
$\mathbb{B}$ Set containing all the nodes containing Batteries. $\mathbb{B} \subset \mathbb{N}$ $n_{B}$
$\mathbb{T}$ Set containing all the time-periods $T$
$j$ Denotes a node. $j \in \mathbb{N}$
$(i, j)$ Denotes a branch connecting nodes $i$ and $j$. $(i, j) \in \mathbb{L}$
$t$ Denotes a time-period2. $t \in \mathbb{T}$

Notes

  1. Current modelling. Future modelling will incorporate reactive power as a non-linear function wrt maximum apparent power and real power.
  2. Except when used as a superscript in denoting Battery SOC $B^{t}_j$, $t$ refers to the average value of the variable within the time-period $t$. For Battery SOC, $B^{t}_j$ refers to the value of SOC at the end of time-period $t$.

Related: You may also check out the Greedy Single Time Period Sequential OPF Model repo here. Temporal decomposition will be applied there later, after algorithm development.

multiperiod-distopf-benchmark's People

Contributors

realife-brahmin avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

dkmahto

multiperiod-distopf-benchmark's Issues

Add SCD and Battery Energy into simulation result display

MAYBE sometimes DOPF sims are giving more optimal results compared to COPF (MAYBE).
If there is no modelling fault, then I should really check if DOPF is abusing battery energy more (pretty sure SCD is in check for both cases).

Add a Battery Activity/Contribution Metric which shows total abs(Pc)+abs(Pd) for all batteries

Because right now, with the hard terminal SOC constraint in place, whatever contribution batteries have (and they basically don't have any contribution before T = 10, but that's more likely due to a boring time-series), batteries will always give a net 'contribution' of around 0kW, because they need to ensure (about) the same horizon-total amount of charging and discharging in order to arrive at the same SOC as that at the beginning of the Multi Period.
This new metric will really give a much better perspective on the role of the batteries in the grid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.