DED#
Type for Distributional economic dispatch.
Available routines: DOPF, DOPFVIS
DOPF#
Linearzied distribution OPF, where power loss are ignored.
UNDER DEVELOPMENT!
References#
L. Bai, J. Wang, C. Wang, C. Chen, and F. Li, “Distribution Locational Marginal Pricing (DLMP) for Congestion Management and Voltage Support,” IEEE Trans. Power Syst., vol. 33, no. 4, pp. 4061-4073, Jul. 2018, doi: 10.1109/TPWRS.2017.2767632.
Objective#
Unit |
Expression |
|---|---|
$ |
\(min. \sum(c_{2} p_g^{2})+ \sum(c_{1} p_g)+ \sum(u_{g} c_{0})\) |
Expressions#
Name |
Description |
Expression |
Unit |
Source |
|---|---|---|---|---|
plf |
Line flow |
\(B_{f} \theta_{bus} + P_{f}^{inj}\) |
p.u. |
Line |
pmaxe |
Effective pmax |
\(c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, max}\) |
p.u. |
StaticGen |
pmine |
Effective pmin |
\(c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min}\) |
p.u. |
StaticGen |
Constraints#
Name |
Description |
Expression |
|---|---|---|
pb |
power balance |
\(B_{bus} \theta_{bus} + P_{bus}^{inj} + C_{l} p_{d} + C_{sh} g_{sh} - C_{g} p_g = 0\) |
sbus |
align slack bus angle |
\(c_{sb} \theta_{bus} = 0\) |
pglb |
pg min |
\(-p_g + p_{g, min, e} \leq 0\) |
pgub |
pg max |
\(p_g - p_{g, max, e} \leq 0\) |
plflb |
line flow lower bound |
\(-p_{lf} - u_{l} R_{ATEA} \leq 0\) |
plfub |
line flow upper bound |
\(p_{lf} - u_{l} R_{ATEA} \leq 0\) |
alflb |
line angle difference lower bound |
\(-C_{ft}^T \theta_{bus} + \theta_{bus, min} \leq 0\) |
alfub |
line angle difference upper bound |
\(C_{ft}^T \theta_{bus} - \theta_{bus, max} \leq 0\) |
qglb |
qg min |
\(-q_{g} + u_{g} q_{min} \leq 0\) |
qgub |
qg max |
\(q_{g} - u_{g} q_{max} \leq 0\) |
vu |
Voltage upper limit |
\(v^{2} - v_{max}^{2} \leq 0\) |
vl |
Voltage lower limit |
\(-v^{2} + v_{min}^{2} \leq 0\) |
lvd |
line voltage drop |
\(C_{ft}^T v^{2} - (r p_{lf} + x q_{lf}) = 0\) |
qb |
reactive power balance |
\(\sum(q_{d}) - \sum(q_{g}) = 0\) |
Vars#
Name |
Symbol |
Description |
Unit |
Source |
Properties |
|---|---|---|---|---|---|
pg |
\(p_g\) |
Gen active power |
p.u. |
StaticGen.p |
|
vBus |
\(v_{Bus}\) |
Bus voltage magnitude, placeholder |
p.u. |
Bus.v |
|
aBus |
\(\theta_{bus}\) |
Bus voltage angle |
rad |
Bus.a |
|
qg |
\(q_{g}\) |
Gen reactive power |
p.u. |
StaticGen.q |
|
v |
\(v\) |
Bus voltage |
p.u. |
Bus.v |
|
vsq |
\(v^{2}\) |
square of Bus voltage |
p.u. |
Bus |
|
qlf |
\(q_{lf}\) |
line reactive power |
p.u. |
Line |
ExpressionCalcs#
Name |
Description |
Expression |
Unit |
Source |
|---|---|---|---|---|
pi |
LMP, dual of <pb> |
\(\phi[pb]\) |
$/p.u. |
Bus |
Services#
Name |
Symbol |
Description |
Type |
|---|---|---|---|
csb |
\(c_{sb}\) |
select slack bus |
VarSelect |
ctrle |
\(c_{trl, e}\) |
Effective Gen controllability |
NumOpDual |
nctrl |
\(c_{trl,n}\) |
Effective Gen uncontrollability |
NumOp |
nctrle |
\(c_{trl,n,e}\) |
Effective Gen uncontrollability |
NumOpDual |
Parameters#
Name |
Symbol |
Description |
Unit |
Source |
|---|---|---|---|---|
ug |
\(u_{g}\) |
Gen connection status |
StaticGen.u |
|
pg0 |
\(p_{g, 0}\) |
Gen initial active power |
p.u. |
StaticGen.p0 |
gsh |
\(g_{sh}\) |
shunt conductance |
Shunt.g |
|
buss |
\(B_{us,s}\) |
Bus slack |
Slack.bus |
|
pd |
\(p_{d}\) |
active demand |
p.u. |
StaticLoad.p0 |
Cg |
\(C_{g}\) |
Gen connection matrix |
MatProcessor.Cg |
|
Cl |
\(C_{l}\) |
Load connection matrix |
MatProcessor.Cl |
|
CftT |
\(C_{ft}^T\) |
Transpose of line connection matrix |
MatProcessor.CftT |
|
Csh |
\(C_{sh}\) |
Shunt connection matrix |
MatProcessor.Csh |
|
Bbus |
\(B_{bus}\) |
Bus admittance matrix |
MatProcessor.Bbus |
|
Bf |
\(B_{f}\) |
Bf matrix |
MatProcessor.Bf |
|
Pbusinj |
\(P_{bus}^{inj}\) |
Bus power injection vector |
MatProcessor.Pbusinj |
|
Pfinj |
\(P_{f}^{inj}\) |
Line power injection vector |
MatProcessor.Pfinj |
|
c2 |
\(c_{2}\) |
Gen cost coefficient 2 |
$/(p.u.^2) |
GCost.c2 |
c1 |
\(c_{1}\) |
Gen cost coefficient 1 |
$/(p.u.) |
GCost.c1 |
c0 |
\(c_{0}\) |
Gen cost coefficient 0 |
$ |
GCost.c0 |
ctrl |
\(c_{trl}\) |
Gen controllability |
StaticGen.ctrl |
|
pmax |
\(p_{g, max}\) |
Gen maximum active power |
p.u. |
StaticGen.pmax |
pmin |
\(p_{g, min}\) |
Gen minimum active power |
p.u. |
StaticGen.pmin |
ul |
\(u_{l}\) |
Line connection status |
Line.u |
|
rate_a |
\(R_{ATEA}\) |
long-term flow limit |
p.u. |
Line.rate_a |
amax |
\(\theta_{bus, max}\) |
max line angle difference |
Line.amax |
|
amin |
\(\theta_{bus, min}\) |
min line angle difference |
Line.amin |
|
qmax |
\(q_{max}\) |
generator maximum reactive power |
p.u. |
StaticGen.qmax |
qmin |
\(q_{min}\) |
generator minimum reactive power |
p.u. |
StaticGen.qmin |
qd |
\(q_{d}\) |
reactive demand |
p.u. |
StaticLoad.q0 |
vmax |
\(v_{max}\) |
Bus voltage upper limit |
p.u. |
Bus.vmax |
vmin |
\(v_{min}\) |
Bus voltage lower limit |
p.u. |
Bus.vmin |
r |
\(r\) |
line resistance |
p.u. |
Line.r |
x |
\(x\) |
line reactance |
p.u. |
Line.x |
DOPFVIS#
Linearzied distribution OPF with variables for virtual inertia and damping from from REGCV1, where power loss are ignored.
UNDER DEVELOPMENT!
References#
L. Bai, J. Wang, C. Wang, C. Chen, and F. Li, “Distribution Locational Marginal Pricing (DLMP) for Congestion Management and Voltage Support,” IEEE Trans. Power Syst., vol. 33, no. 4, pp. 4061-4073, Jul. 2018, doi: 10.1109/TPWRS.2017.2767632.
Objective#
Unit |
Expression |
|---|---|
$ |
\(min. \sum(c_{2} p_g^{2} + c_{1} p_g + u_{g} c_{0} + c_{m} M + c_{d} D)\) |
Expressions#
Name |
Description |
Expression |
Unit |
Source |
|---|---|---|---|---|
plf |
Line flow |
\(B_{f} \theta_{bus} + P_{f}^{inj}\) |
p.u. |
Line |
pmaxe |
Effective pmax |
\(c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, max}\) |
p.u. |
StaticGen |
pmine |
Effective pmin |
\(c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min}\) |
p.u. |
StaticGen |
Constraints#
Name |
Description |
Expression |
|---|---|---|
pb |
power balance |
\(B_{bus} \theta_{bus} + P_{bus}^{inj} + C_{l} p_{d} + C_{sh} g_{sh} - C_{g} p_g = 0\) |
sbus |
align slack bus angle |
\(c_{sb} \theta_{bus} = 0\) |
pglb |
pg min |
\(-p_g + p_{g, min, e} \leq 0\) |
pgub |
pg max |
\(p_g - p_{g, max, e} \leq 0\) |
plflb |
line flow lower bound |
\(-p_{lf} - u_{l} R_{ATEA} \leq 0\) |
plfub |
line flow upper bound |
\(p_{lf} - u_{l} R_{ATEA} \leq 0\) |
alflb |
line angle difference lower bound |
\(-C_{ft}^T \theta_{bus} + \theta_{bus, min} \leq 0\) |
alfub |
line angle difference upper bound |
\(C_{ft}^T \theta_{bus} - \theta_{bus, max} \leq 0\) |
qglb |
qg min |
\(-q_{g} + u_{g} q_{min} \leq 0\) |
qgub |
qg max |
\(q_{g} - u_{g} q_{max} \leq 0\) |
vu |
Voltage upper limit |
\(v^{2} - v_{max}^{2} \leq 0\) |
vl |
Voltage lower limit |
\(-v^{2} + v_{min}^{2} \leq 0\) |
lvd |
line voltage drop |
\(C_{ft}^T v^{2} - (r p_{lf} + x q_{lf}) = 0\) |
qb |
reactive power balance |
\(\sum(q_{d}) - \sum(q_{g}) = 0\) |
Vars#
Name |
Symbol |
Description |
Unit |
Source |
Properties |
|---|---|---|---|---|---|
pg |
\(p_g\) |
Gen active power |
p.u. |
StaticGen.p |
|
vBus |
\(v_{Bus}\) |
Bus voltage magnitude, placeholder |
p.u. |
Bus.v |
|
aBus |
\(\theta_{bus}\) |
Bus voltage angle |
rad |
Bus.a |
|
qg |
\(q_{g}\) |
Gen reactive power |
p.u. |
StaticGen.q |
|
v |
\(v\) |
Bus voltage |
p.u. |
Bus.v |
|
vsq |
\(v^{2}\) |
square of Bus voltage |
p.u. |
Bus |
|
qlf |
\(q_{lf}\) |
line reactive power |
p.u. |
Line |
|
M |
\(M\) |
Emulated startup time constant (M=2H) from REGCV1 |
s |
VSG |
|
D |
\(D\) |
Emulated damping coefficient from REGCV1 |
p.u. |
VSG |
ExpressionCalcs#
Name |
Description |
Expression |
Unit |
Source |
|---|---|---|---|---|
pi |
LMP, dual of <pb> |
\(\phi[pb]\) |
$/p.u. |
Bus |
Services#
Name |
Symbol |
Description |
Type |
|---|---|---|---|
csb |
\(c_{sb}\) |
select slack bus |
VarSelect |
ctrle |
\(c_{trl, e}\) |
Effective Gen controllability |
NumOpDual |
nctrl |
\(c_{trl,n}\) |
Effective Gen uncontrollability |
NumOp |
nctrle |
\(c_{trl,n,e}\) |
Effective Gen uncontrollability |
NumOpDual |
Parameters#
Name |
Symbol |
Description |
Unit |
Source |
|---|---|---|---|---|
ug |
\(u_{g}\) |
Gen connection status |
StaticGen.u |
|
pg0 |
\(p_{g, 0}\) |
Gen initial active power |
p.u. |
StaticGen.p0 |
gsh |
\(g_{sh}\) |
shunt conductance |
Shunt.g |
|
buss |
\(B_{us,s}\) |
Bus slack |
Slack.bus |
|
pd |
\(p_{d}\) |
active demand |
p.u. |
StaticLoad.p0 |
Cg |
\(C_{g}\) |
Gen connection matrix |
MatProcessor.Cg |
|
Cl |
\(C_{l}\) |
Load connection matrix |
MatProcessor.Cl |
|
CftT |
\(C_{ft}^T\) |
Transpose of line connection matrix |
MatProcessor.CftT |
|
Csh |
\(C_{sh}\) |
Shunt connection matrix |
MatProcessor.Csh |
|
Bbus |
\(B_{bus}\) |
Bus admittance matrix |
MatProcessor.Bbus |
|
Bf |
\(B_{f}\) |
Bf matrix |
MatProcessor.Bf |
|
Pbusinj |
\(P_{bus}^{inj}\) |
Bus power injection vector |
MatProcessor.Pbusinj |
|
Pfinj |
\(P_{f}^{inj}\) |
Line power injection vector |
MatProcessor.Pfinj |
|
c2 |
\(c_{2}\) |
Gen cost coefficient 2 |
$/(p.u.^2) |
GCost.c2 |
c1 |
\(c_{1}\) |
Gen cost coefficient 1 |
$/(p.u.) |
GCost.c1 |
c0 |
\(c_{0}\) |
Gen cost coefficient 0 |
$ |
GCost.c0 |
ctrl |
\(c_{trl}\) |
Gen controllability |
StaticGen.ctrl |
|
pmax |
\(p_{g, max}\) |
Gen maximum active power |
p.u. |
StaticGen.pmax |
pmin |
\(p_{g, min}\) |
Gen minimum active power |
p.u. |
StaticGen.pmin |
ul |
\(u_{l}\) |
Line connection status |
Line.u |
|
rate_a |
\(R_{ATEA}\) |
long-term flow limit |
p.u. |
Line.rate_a |
amax |
\(\theta_{bus, max}\) |
max line angle difference |
Line.amax |
|
amin |
\(\theta_{bus, min}\) |
min line angle difference |
Line.amin |
|
qmax |
\(q_{max}\) |
generator maximum reactive power |
p.u. |
StaticGen.qmax |
qmin |
\(q_{min}\) |
generator minimum reactive power |
p.u. |
StaticGen.qmin |
qd |
\(q_{d}\) |
reactive demand |
p.u. |
StaticLoad.q0 |
vmax |
\(v_{max}\) |
Bus voltage upper limit |
p.u. |
Bus.vmax |
vmin |
\(v_{min}\) |
Bus voltage lower limit |
p.u. |
Bus.vmin |
r |
\(r\) |
line resistance |
p.u. |
Line.r |
x |
\(x\) |
line reactance |
p.u. |
Line.x |
cm |
\(c_{m}\) |
Virtual inertia cost |
$/s |
VSGCost.cm |
cd |
\(c_{d}\) |
Virtual damping cost |
$/(p.u.) |
VSGCost.cd |