Skip to content

Latest commit

 

History

History
254 lines (171 loc) · 8.52 KB

INPUT.md

File metadata and controls

254 lines (171 loc) · 8.52 KB

Hosting Capacity Estimator

This library provides a Distributed Energy Resources' Hosting Capacity estimation of distribution systems considering that the Distribution Company can partially dispatch other DERs installed in the system.

Getting Started

Data Format

The DistSystem.System structure expected a DataFrames.jl with the follow columns:

Row │ Branch  FB     TB     Type     R_Ohm    X_ohm    Bus     Amp_pu    P_MW        Q_MVAr      Bshunt_MVAr
    │ Int64   Int64  Int64  String   Float64  Float64  Int64   Float64   Float64     Float64     Float64
────┼──────────────────────────────────────────────────────────────────────────────────────────────────

The active branches must have "Fixed" in Type field.

Dependencies

You will need Julia v1.6 or greater, JuMP.jl v0.23 or greater, and a nonlinear solver compatible with JuMP.jl and the model described below.

Exemple of use

This exemple also can be found in example.jl.

The distribution system of the example is also available in Dolatabadi et. al. (2021).

Mathematical Model

This library uses the following model:

$\text{max. }$

$$ \text{Hosting Capacity} \begin{cases} N^B p^{HC} \end{cases} $$

$\text{s.t. }$

$$ \begin{matrix} \text{Power injection}\ \text{in buses without DERs} \end{matrix} \begin{cases} p_{blks} = \mu^{HC}{s}p^{HC} - \mu^L_lP^L b\ q_{blks} = - \mu^L_lQ^L_ b\ \forall b \in \overline{\Omega}, \forall l \in L, \forall d \in D, \forall k \in K,\forall s \in S \end{cases} $$

$$ \begin{matrix} \text{Power injection}\ \text{in buses with DERs} \end{matrix} \begin{cases} p_{blks} = \mu^{DER}{dk}P^{DER}{d} + p^{DER}{dlks} - \mu^L_lP^L b\ q_{blks} = q^{DER}{dlk} - \mu^L_lQ^L b\ \forall d \in D, \forall b \in {b_d}, \forall l \in L, \forall k \in K, \forall s \in S \end{cases} $$

$$ \begin{matrix} \text{Power, voltage }\ \text{and current}\ \text{relationship} \end{matrix} \begin{cases} p_{blks} = v^{\Re}{blks}i^{\Re}{blks} + v^{\Im}{blks}i^{\Im}{blks}\ q_{blks} = v^{\Im}{blks}i^{\Re}{blks} - v^{\Re}{blks}i^{\Im}{blks}\ i^{\Re}{blks} = \sum{j \in \Omega} G_{bj}v^{\Re}{jlks} - B{bj}v^{\Im}{jlks}\ i^{\Im}{blks} = \sum_{j \in \Omega} B_{bj}v^{\Re}{jlks} + G{bj}v^{\Im}_{jlks}\ \forall b \in \Omega, \forall l \in L, \forall k \in K, \forall s \in S \end{cases} $$

$$ \text{Voltage limits} \begin{cases} (\underline{V})^2\leq(v^{\Re}{blks})^2 + (v^{\Im}{blks})^2 \leq (\overline{V})^2\ \forall b \in \Omega, \forall l \in L,\forall k \in K, \forall s \in S \end{cases} $$

$$ \text{Lines limits} \begin{cases} f_{ijlks}^{\Re} = (v^{\Re}{ilks} - v^{\Re}{jlks})G_{ij} - (v^{\Im}{ilks} - v^{\Im}{jlks})B_ {ij}\ f_{ijlks}^{\Im} = (v^{\Im}{ilks} - v^{\Im}{jlks})G_{ij} + (v^{\Re}{ilks} - v^{\Re}{jlks})B_ {ij}\ (f_{ijlks}^{\Re})^2 + (f_{ijlks}^{\Im})^2 \leq (F_{ij})^2\ -F_{ij} \leq f_{ijlks}^{\Re}, f_{ijlks}^{\Im} \leq F_{ij}\ \forall (i,j) \in \Omega^{B}, \forall l \in L,\forall k \in K, \forall s \in S \end{cases} $$

$$\begin{matrix} \text{Substation}\ \text{constraints}\ \end{matrix} \begin{cases} v^{\Im}{blks} = 0\ 0 \leq p{blks} \leq \overline{P^{SB}}\ 0 \leq q_{blks} \leq \overline{Q^{SB}}\ (i^{\Re}{blks})^2 + (i^{\Im}{blks})^2 \geq 0\ \forall b \in {b^{SB}}, \forall l \in L,\forall k \in K, \forall s \in S \end{cases} $$

$$ \text{DERs limits} \begin{cases} -\beta^{DER}dE^{DER}{d}\leq p^{DER}{dlks}T^{CUR} \leq \beta^{DER}dE^{DER}d\ \underline{P}^{DER}{d}\leq p^{DER}{dlks} \leq \overline{P}^{DER}d\ \underline{Q}^{DER}{d}\leq q^{DER}{dlks} \leq \overline{Q}^{DER}{d}\ (p^{DER}{dlks})^2 + (q^{DER}{dlks})^2 \leq (\alpha_d^{DER} S^{DER}{d})^2\ (\mu^{DER}{dk} P^{DER}{d} + p^{DER}{dlks})^2 + (q^{DER}{dlks})^2 \leq (S^{DER}_{d})^2\ \forall d \in D, \forall l \in L, \forall k \in K,\forall s \in S \end{cases} $$

$$\begin{matrix} \text{Power, voltage }\ \text{and current}\ \text{constraints} \end{matrix} \begin{cases} -M \leq p_{blks}, q_{blks}, i^{\Re}{blks}, i^{\Im}{blks}\leq M\ -\overline{V}\leq v^{\Re}{blks}, v^{\Im}{blks} \leq \overline{V}\ \forall b \in \Omega, \forall l \in L,\forall k \in K,\forall s \in S \end{cases} $$

Nomenclature

Variables

$p^{HC}$: Active power injection to HC calculation

$p^{DER}$: Active power injection of DERs dispached by DisCo.

$q^{DER}$: Reactive power injection of DERs dispached by DisCo.

: Nodal active and reactive power injection

: Real and imaginary part of nodal current injection

: Real and imaginary part of nodal voltage

$f^{\Re}, f^{\Im}$: Real and imaginary current flow

Sets

: Buses' set

: Load buses without DERs

$\Omega^B$: Set of branches

: Set of load scenarios

$K$: Set of all possible combinations of operation of DERs' Owner

: Set of scenarios for HC calculation

: Set of DisCo's DGs

Parameters

: Lower and upper voltage limits

: Substation's voltage

$F$: Lines' ampacity

$G$, $B$: Nodal conductance and susceptance

$T^{CUR}$: Time to curtailment energy resources

: A big number

$E^{DER}$: DERs' energy capacity.

$\overline{P}^{DER}, \overline{Q}^{DER}$: Upper limits of active and reactive power that can be dispached by DERs.

$\underline{P}^{DER}, \underline{Q}^{DER}$: Lower limits of active and reactive power that can be dispached by DERs.

$S^{DER}$: DERs' power limit.

$\alpha^{DER}$: Proportion of DERs' power limit that can be dispached by DisCo.

$\beta^{DER}$: Proportion of DERs' Energy Capacity that can be used by DisCo.

$P^{DER}$: DERs' owner power injection capacity. $P^{DER} = (1 - \alpha^{DER})S^{DER}$

: Active and reactive limit of the substation

: Load scenario multiplier

: Scenario multiplier for HC calculation

$\mu^{DER}$: DERs' Owner Operation scenario

: Quantity of buses without DGs and substation

: Substation's bus

: DG's bus

Roadmap

  • Define the model

  • Implement the model on JuMP.jl

  • High-level interface for HC estimation

  • Initial documentation

  • Implement the minimization of costs.

  • Validate the model with Matpower.

  • Implement changes on system's topology.

  • Implement tests for power flow calculation using a simple system

  • Implement tests for power flow calculation using the 33-bus

  • Implement tests for others functions

  • Describe the relationship between the model and codebase

  • Better Documentation