.. _DED: ================================================================================ DED ================================================================================ Type for Distributional economic dispatch. Available routines: DOPF_, DOPFVIS_ .. _DOPF: -------------------------------------------------------------------------------- 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 ---------------------------------- +------+-------------+------+----------------------------------------------------------------------------+ | Name | Description | Unit | Expression | +======+=============+======+============================================================================+ | obj | total cost | *$* | :math:`min. \sum(c_{2} power(p_g, 2))+ \sum(c_{1} p_g)+ \sum(u_{g} c_{0})` | +------+-------------+------+----------------------------------------------------------------------------+ Constraints ---------------------------------- +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | Name | Description | Expression | +========+===================================+============================================================================================+ | pglb | pg min | :math:`-p_g + c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | pgub | pg max | :math:`p_g - c_{trl,n,e} p_{g, 0} - c_{trl, e} p_{g, max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | pb | power balance | :math:`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 | :math:`-B_{f} \theta_{bus} - P_{f}^{inj} - R_{ATEA} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | plfub | line flow upper bound | :math:`B_{f} \theta_{bus} + P_{f}^{inj} - R_{ATEA} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | alflb | line angle difference lower bound | :math:`-C_{ft}^T \theta_{bus} - \theta_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | alfub | line angle difference upper bound | :math:`C_{ft}^T \theta_{bus} - \theta_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qglb | qg min | :math:`-q_{g} + u_{g} q_{min} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qgub | qg max | :math:`q_{g} - u_{g} q_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | vu | Voltage upper limit | :math:`v^{2} - v_{max}^{2} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | vl | Voltage lower limit | :math:`-v^{2} + v_{min}^{2} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | lvd | line voltage drop | :math:`C_{ft}^T v^{2} - (r p_{lf} + x q_{lf}) = 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qb | reactive power balance | :math:`\sum(q_{d}) - \sum(q_{g}) = 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ Vars ---------------------------------- +-------+----------------------+-----------------------+--------+-------------+------------+ | Name | Symbol | Description | Unit | Source | Properties | +=======+======================+=======================+========+=============+============+ | pg | :math:`p_g` | Gen active power | *p.u.* | StaticGen.p | | +-------+----------------------+-----------------------+--------+-------------+------------+ | aBus | :math:`\theta_{bus}` | Bus voltage angle | *rad* | Bus.a | | +-------+----------------------+-----------------------+--------+-------------+------------+ | plf | :math:`p_{lf}` | Line flow | *p.u.* | | | +-------+----------------------+-----------------------+--------+-------------+------------+ | qg | :math:`q_{g}` | Gen reactive power | *p.u.* | StaticGen.q | | +-------+----------------------+-----------------------+--------+-------------+------------+ | v | :math:`v` | Bus voltage | *p.u.* | Bus.v | | +-------+----------------------+-----------------------+--------+-------------+------------+ | vsq | :math:`v^{2}` | square of Bus voltage | *p.u.* | | | +-------+----------------------+-----------------------+--------+-------------+------------+ | qlf | :math:`q_{lf}` | line reactive power | *p.u.* | | | +-------+----------------------+-----------------------+--------+-------------+------------+ Services --------- +---------+----------------------+---------------------------------+-----------+ | Name | Symbol | Description | Type | +=========+======================+=================================+===========+ | ctrle | :math:`c_{trl, e}` | Effective Gen controllability | NumOpDual | +---------+----------------------+---------------------------------+-----------+ | nctrl | :math:`c_{trl,n}` | Effective Gen uncontrollability | NumOp | +---------+----------------------+---------------------------------+-----------+ | nctrle | :math:`c_{trl,n,e}` | Effective Gen uncontrollability | NumOpDual | +---------+----------------------+---------------------------------+-----------+ | amax | :math:`\theta_{max}` | max line angle difference | NumOp | +---------+----------------------+---------------------------------+-----------+ Parameters ---------------------------------- +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Name | Symbol | Description | Unit | Source | +==========+=======================+=====================================+==============+======================+ | c2 | :math:`c_{2}` | Gen cost coefficient 2 | *$/(p.u.^2)* | GCost.c2 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | c1 | :math:`c_{1}` | Gen cost coefficient 1 | *$/(p.u.)* | GCost.c1 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | c0 | :math:`c_{0}` | Gen cost coefficient 0 | *$* | GCost.c0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | ug | :math:`u_{g}` | Gen connection status | | StaticGen.u | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | ctrl | :math:`c_{trl}` | Gen controllability | | StaticGen.ctrl | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pmax | :math:`p_{g, max}` | Gen maximum active power | *p.u.* | StaticGen.pmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pmin | :math:`p_{g, min}` | Gen minimum active power | *p.u.* | StaticGen.pmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | p0 | :math:`p_{g, 0}` | Gen initial active power | *p.u.* | StaticGen.pg0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pd | :math:`p_{d}` | active demand | *p.u.* | StaticLoad.p0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | rate_a | :math:`R_{ATEA}` | long-term flow limit | *MVA* | Line.rate_a | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | gsh | :math:`g_{sh}` | shunt conductance | | Shunt.g | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Cg | :math:`C_{g}` | Gen connection matrix | | MatProcessor.Cg | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Cl | :math:`C_{l}` | Load connection matrix | | MatProcessor.Cl | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | CftT | :math:`C_{ft}^T` | Transpose of line connection matrix | | MatProcessor.CftT | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Csh | :math:`C_{sh}` | Shunt connection matrix | | MatProcessor.Csh | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Bbus | :math:`B_{bus}` | Bus admittance matrix | | MatProcessor.Bbus | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Bf | :math:`B_{f}` | Bf matrix | | MatProcessor.Bf | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Pbusinj | :math:`P_{bus}^{inj}` | Bus power injection vector | | MatProcessor.Pbusinj | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Pfinj | :math:`P_{f}^{inj}` | Line power injection vector | | MatProcessor.Pfinj | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qmax | :math:`q_{max}` | generator maximum reactive power | *p.u.* | StaticGen.qmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qmin | :math:`q_{min}` | generator minimum reactive power | *p.u.* | StaticGen.qmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qd | :math:`q_{d}` | reactive demand | *p.u.* | StaticLoad.q0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | vmax | :math:`v_{max}` | Bus voltage upper limit | *p.u.* | Bus.vmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | vmin | :math:`v_{min}` | Bus voltage lower limit | *p.u.* | Bus.vmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | r | :math:`r` | line resistance | *p.u.* | Line.r | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | x | :math:`x` | line reactance | *p.u.* | Line.x | +----------+-----------------------+-------------------------------------+--------------+----------------------+ .. _DOPFVIS: -------------------------------------------------------------------------------- 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 ---------------------------------- +------+-------------+------+------------------------------------------------------------------------------------------+ | Name | Description | Unit | Expression | +======+=============+======+==========================================================================================+ | tc | total cost | *$* | :math:`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 | :math:`-p_g + c_{trl,n,e} p_{g, 0} + c_{trl, e} p_{g, min} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | pgub | pg max | :math:`p_g - c_{trl,n,e} p_{g, 0} - c_{trl, e} p_{g, max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | pb | power balance | :math:`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 | :math:`-B_{f} \theta_{bus} - P_{f}^{inj} - R_{ATEA} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | plfub | line flow upper bound | :math:`B_{f} \theta_{bus} + P_{f}^{inj} - R_{ATEA} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | alflb | line angle difference lower bound | :math:`-C_{ft}^T \theta_{bus} - \theta_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | alfub | line angle difference upper bound | :math:`C_{ft}^T \theta_{bus} - \theta_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qglb | qg min | :math:`-q_{g} + u_{g} q_{min} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qgub | qg max | :math:`q_{g} - u_{g} q_{max} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | vu | Voltage upper limit | :math:`v^{2} - v_{max}^{2} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | vl | Voltage lower limit | :math:`-v^{2} + v_{min}^{2} <= 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | lvd | line voltage drop | :math:`C_{ft}^T v^{2} - (r p_{lf} + x q_{lf}) = 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ | qb | reactive power balance | :math:`\sum(q_{d}) - \sum(q_{g}) = 0` | +--------+-----------------------------------+--------------------------------------------------------------------------------------------+ Vars ---------------------------------- +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | Name | Symbol | Description | Unit | Source | Properties | +=======+======================+===================================================+========+=============+============+ | pg | :math:`p_g` | Gen active power | *p.u.* | StaticGen.p | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | aBus | :math:`\theta_{bus}` | Bus voltage angle | *rad* | Bus.a | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | plf | :math:`p_{lf}` | Line flow | *p.u.* | | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | qg | :math:`q_{g}` | Gen reactive power | *p.u.* | StaticGen.q | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | v | :math:`v` | Bus voltage | *p.u.* | Bus.v | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | vsq | :math:`v^{2}` | square of Bus voltage | *p.u.* | | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | qlf | :math:`q_{lf}` | line reactive power | *p.u.* | | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | M | :math:`M` | Emulated startup time constant (M=2H) from REGCV1 | *s* | | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ | D | :math:`D` | Emulated damping coefficient from REGCV1 | *p.u.* | | | +-------+----------------------+---------------------------------------------------+--------+-------------+------------+ Services --------- +---------+----------------------+---------------------------------+-----------+ | Name | Symbol | Description | Type | +=========+======================+=================================+===========+ | ctrle | :math:`c_{trl, e}` | Effective Gen controllability | NumOpDual | +---------+----------------------+---------------------------------+-----------+ | nctrl | :math:`c_{trl,n}` | Effective Gen uncontrollability | NumOp | +---------+----------------------+---------------------------------+-----------+ | nctrle | :math:`c_{trl,n,e}` | Effective Gen uncontrollability | NumOpDual | +---------+----------------------+---------------------------------+-----------+ | amax | :math:`\theta_{max}` | max line angle difference | NumOp | +---------+----------------------+---------------------------------+-----------+ Parameters ---------------------------------- +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Name | Symbol | Description | Unit | Source | +==========+=======================+=====================================+==============+======================+ | c2 | :math:`c_{2}` | Gen cost coefficient 2 | *$/(p.u.^2)* | GCost.c2 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | c1 | :math:`c_{1}` | Gen cost coefficient 1 | *$/(p.u.)* | GCost.c1 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | c0 | :math:`c_{0}` | Gen cost coefficient 0 | *$* | GCost.c0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | ug | :math:`u_{g}` | Gen connection status | | StaticGen.u | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | ctrl | :math:`c_{trl}` | Gen controllability | | StaticGen.ctrl | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pmax | :math:`p_{g, max}` | Gen maximum active power | *p.u.* | StaticGen.pmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pmin | :math:`p_{g, min}` | Gen minimum active power | *p.u.* | StaticGen.pmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | p0 | :math:`p_{g, 0}` | Gen initial active power | *p.u.* | StaticGen.pg0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | pd | :math:`p_{d}` | active demand | *p.u.* | StaticLoad.p0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | rate_a | :math:`R_{ATEA}` | long-term flow limit | *MVA* | Line.rate_a | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | gsh | :math:`g_{sh}` | shunt conductance | | Shunt.g | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Cg | :math:`C_{g}` | Gen connection matrix | | MatProcessor.Cg | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Cl | :math:`C_{l}` | Load connection matrix | | MatProcessor.Cl | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | CftT | :math:`C_{ft}^T` | Transpose of line connection matrix | | MatProcessor.CftT | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Csh | :math:`C_{sh}` | Shunt connection matrix | | MatProcessor.Csh | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Bbus | :math:`B_{bus}` | Bus admittance matrix | | MatProcessor.Bbus | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Bf | :math:`B_{f}` | Bf matrix | | MatProcessor.Bf | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Pbusinj | :math:`P_{bus}^{inj}` | Bus power injection vector | | MatProcessor.Pbusinj | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | Pfinj | :math:`P_{f}^{inj}` | Line power injection vector | | MatProcessor.Pfinj | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qmax | :math:`q_{max}` | generator maximum reactive power | *p.u.* | StaticGen.qmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qmin | :math:`q_{min}` | generator minimum reactive power | *p.u.* | StaticGen.qmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | qd | :math:`q_{d}` | reactive demand | *p.u.* | StaticLoad.q0 | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | vmax | :math:`v_{max}` | Bus voltage upper limit | *p.u.* | Bus.vmax | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | vmin | :math:`v_{min}` | Bus voltage lower limit | *p.u.* | Bus.vmin | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | r | :math:`r` | line resistance | *p.u.* | Line.r | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | x | :math:`x` | line reactance | *p.u.* | Line.x | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | cm | :math:`c_{m}` | Virtual inertia cost | *$/s* | VSGCost.cm | +----------+-----------------------+-------------------------------------+--------------+----------------------+ | cd | :math:`c_{d}` | Virtual damping cost | *$/(p.u.)* | VSGCost.cd | +----------+-----------------------+-------------------------------------+--------------+----------------------+