DED#
Type for Distributional economic dispatch.
Available routines: DOPF, DOPFVIS
DOPF#
Linearzied distribution OPF, where power loss are ignored.
UNDER DEVELOPMENT!
Reference:
[1] 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})\) |
Constraints#
Name |
Description |
Expression |
---|---|---|
pglb |
pg min |
\(-p_g + c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min} \leq 0\) |
pgub |
pg max |
\(p_g - c_{trl,n,e} p_{g, 0} - c_{trl, e} p_{g, max} \leq 0\) |
sbus |
align slack bus angle |
\(c_{sb} \theta_{bus} = 0\) |
pb |
power balance |
\(B_{bus} \theta_{bus} + P_{bus}^{inj} + C_{l} p_{d} + C_{sh} g_{sh} - C_{g} p_g = 0\) |
plflb |
line flow lower bound |
\(-B_{f} \theta_{bus} - P_{f}^{inj} - R_{ATEA} \leq 0\) |
plfub |
line flow upper bound |
\(B_{f} \theta_{bus} + P_{f}^{inj} - 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\) |
Expressions#
Name |
Variable |
Description |
Expression |
---|---|---|---|
plfc |
plf |
plf calculation |
\(B_{f} \theta_{bus} + P_{f}^{inj}\) |
pic |
pi |
dual of Constraint pb |
\(\phi[pb]\) |
Vars#
Name |
Symbol |
Description |
Unit |
Source |
Properties |
---|---|---|---|---|---|
pg |
\(p_g\) |
Gen active power |
p.u. |
StaticGen.p |
|
aBus |
\(\theta_{bus}\) |
Bus voltage angle |
rad |
Bus.a |
|
pi |
\(\pi\) |
nodal price |
$/p.u. |
||
plf |
\(p_{lf}\) |
Line flow |
p.u. |
||
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. |
||
qlf |
\(q_{lf}\) |
line reactive power |
p.u. |
Services#
Name |
Symbol |
Description |
Type |
---|---|---|---|
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 |
csb |
\(c_{sb}\) |
select slack bus |
VarSelect |
Parameters#
Name |
Symbol |
Description |
Unit |
Source |
---|---|---|---|---|
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 |
ug |
\(u_{g}\) |
Gen connection status |
StaticGen.u |
|
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 |
p0 |
\(p_{g, 0}\) |
Gen initial active power |
p.u. |
StaticGen.pg0 |
buss |
\(B_{us,s}\) |
Bus slack |
Slack.bus |
|
pd |
\(p_{d}\) |
active demand |
p.u. |
StaticLoad.p0 |
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 |
|
gsh |
\(g_{sh}\) |
shunt conductance |
Shunt.g |
|
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 |
|
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!
Reference:
[1] 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)\) |
Constraints#
Name |
Description |
Expression |
---|---|---|
pglb |
pg min |
\(-p_g + c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min} \leq 0\) |
pgub |
pg max |
\(p_g - c_{trl,n,e} p_{g, 0} - c_{trl, e} p_{g, max} \leq 0\) |
sbus |
align slack bus angle |
\(c_{sb} \theta_{bus} = 0\) |
pb |
power balance |
\(B_{bus} \theta_{bus} + P_{bus}^{inj} + C_{l} p_{d} + C_{sh} g_{sh} - C_{g} p_g = 0\) |
plflb |
line flow lower bound |
\(-B_{f} \theta_{bus} - P_{f}^{inj} - R_{ATEA} \leq 0\) |
plfub |
line flow upper bound |
\(B_{f} \theta_{bus} + P_{f}^{inj} - 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\) |
Expressions#
Name |
Variable |
Description |
Expression |
---|---|---|---|
plfc |
plf |
plf calculation |
\(B_{f} \theta_{bus} + P_{f}^{inj}\) |
pic |
pi |
dual of Constraint pb |
\(\phi[pb]\) |
Vars#
Name |
Symbol |
Description |
Unit |
Source |
Properties |
---|---|---|---|---|---|
pg |
\(p_g\) |
Gen active power |
p.u. |
StaticGen.p |
|
aBus |
\(\theta_{bus}\) |
Bus voltage angle |
rad |
Bus.a |
|
pi |
\(\pi\) |
nodal price |
$/p.u. |
||
plf |
\(p_{lf}\) |
Line flow |
p.u. |
||
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. |
||
qlf |
\(q_{lf}\) |
line reactive power |
p.u. |
||
M |
\(M\) |
Emulated startup time constant (M=2H) from REGCV1 |
s |
||
D |
\(D\) |
Emulated damping coefficient from REGCV1 |
p.u. |
Services#
Name |
Symbol |
Description |
Type |
---|---|---|---|
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 |
csb |
\(c_{sb}\) |
select slack bus |
VarSelect |
Parameters#
Name |
Symbol |
Description |
Unit |
Source |
---|---|---|---|---|
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 |
ug |
\(u_{g}\) |
Gen connection status |
StaticGen.u |
|
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 |
p0 |
\(p_{g, 0}\) |
Gen initial active power |
p.u. |
StaticGen.pg0 |
buss |
\(B_{us,s}\) |
Bus slack |
Slack.bus |
|
pd |
\(p_{d}\) |
active demand |
p.u. |
StaticLoad.p0 |
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 |
|
gsh |
\(g_{sh}\) |
shunt conductance |
Shunt.g |
|
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 |
|
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 |