.. _DG: ================================================================================ DG ================================================================================ Distributed generation (small-scale). See :ref:`SynGen` for the notes on replacing StaticGen and setting the power ratio parameters. Common Parameters: u, name, bus, fn Available models: PVD1_, ESD1_, EV1_, EV2_ .. _PVD1: -------------------------------------------------------------------------------- PVD1 -------------------------------------------------------------------------------- WECC Distributed PV model. Device power rating is specified in `Sn`. Output currents are named `Ipout_y` and `Iqout_y`. Output power can be computed as ``Pe = Ipout_y * v`` and ``Qe = Iqout_y * v``. Frequency tripping response points `ft0`, `ft1`, `ft2`, and `ft3` must be monotinically increasing. Same rule applies to the voltage tripping response points `vt0`, `vt1`, `vt2`, and `vt3`. The program does not check these values, and the user is responsible for the parameter validity. Frequency and voltage recovery latching is yet to be implemented. Modifications to the active and reactive power references, typically by an external scheduling program, should write to `pref0.v` and `qref0.v` in place. AGC signals should write to `pext0.v` in place. Maximum power limit `pmx` can be disabled by editing the configuration file by setting `plim=0`. It cannot be modified in runtime. Reference: [1] ESIG, WECC Distributed and Small PV Plants Generic Model (PVD1), [Online], Available: https://www.esig.energy/wiki-main-page/wecc-distributed-and-small-pv-plants-generic-model-pvd1/ Parameters ---------- +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Name | Symbol | Description | Default | Unit | Properties | +==========+==================+=========================================================+=========+==============+===============================+ | idx | | unique device idx | | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | u | :math:`u` | connection status | 1 | *bool* | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | name | | device name | | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | bus | | interface bus id | | | mandatory | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gen | | static generator index | | | mandatory | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Sn | :math:`S_n` | device MVA rating | 100 | *MVA* | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fn | :math:`f_n` | nominal frequency | 60 | *Hz* | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | busf | | Optional BusFreq measurement device idx | | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | xc | :math:`x_c` | coupling reactance | 0 | *p.u.* | z | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pqflag | | P/Q priority for I limit; 0-Q priority, 1-P priority | | *bool* | mandatory | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | igreg | | Remote bus idx for droop response, None for local | | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmx | :math:`q_{mx}` | Max. reactive power command | 0.330 | *pu* | power | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmn | :math:`q_{mn}` | Min. reactive power command | -0.330 | *pu* | power | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmx | :math:`p_{mx}` | maximum power limit | 9999 | *pu* | power | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v0 | :math:`v_0` | Lower limit of deadband for Vdroop response | 0.800 | *pu* | non_zero | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v1 | :math:`v_1` | Upper limit of deadband for Vdroop response | 1.100 | *pu* | non_zero | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | dqdv | :math:`dq/dv` | Q-V droop characteristics (negative) | -1 | | non_zero,power | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fdbd | :math:`f_{dbd}` | frequency deviation deadband | -0.017 | *Hz* | non_positive | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ddn | :math:`D_{dn}` | Gain after f deadband | 0 | *pu (MW)/Hz* | non_negative,power | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ialim | :math:`I_{alim}` | Apparent power limit | 1.300 | | non_zero,non_negative,current | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt0 | :math:`V_{t0}` | Voltage tripping response curve point 0 | 0.880 | *p.u.* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt1 | :math:`V_{t1}` | Voltage tripping response curve point 1 | 0.900 | *p.u.* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt2 | :math:`V_{t2}` | Voltage tripping response curve point 2 | 1.100 | *p.u.* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt3 | :math:`V_{t3}` | Voltage tripping response curve point 3 | 1.200 | *p.u.* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vrflag | :math:`z_{VR}` | V-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft0 | :math:`f_{t0}` | Frequency tripping response curve point 0 | 59.500 | *Hz* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft1 | :math:`f_{t1}` | Frequency tripping response curve point 1 | 59.700 | *Hz* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft2 | :math:`f_{t2}` | Frequency tripping response curve point 2 | 60.300 | *Hz* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft3 | :math:`f_{t3}` | Frequency tripping response curve point 3 | 60.500 | *Hz* | non_zero,non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | frflag | :math:`z_{FR}` | f-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tip | :math:`T_{ip}` | Inverter active current lag time constant | 0.020 | *s* | non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tiq | :math:`T_{iq}` | Inverter reactive current lag time constant | 0.020 | *s* | non_negative | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammap | :math:`\gamma_p` | Ratio of PVD1.pref0 w.r.t to that of static PV | 1 | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammaq | :math:`\gamma_q` | Ratio of PVD1.qref0 w.r.t to that of static PV | 1 | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | recflag | :math:`z_{rec}` | Enable flag for voltage and frequency recovery limiters | 1 | | | +----------+------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ Variables --------- +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+===================+==========+==================================================+========+============+ | Ipout_y | :math:`Ipout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Iqout_y | :math:`Iqout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | fHz | :math:`fHz` | Algeb | frequency in Hz | *Hz* | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ffl | :math:`Ffl` | Algeb | Coeff. for under frequency | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ffh | :math:`Ffh` | Algeb | Coeff. for over frequency | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Fdev | :math:`Fdev` | Algeb | Frequency deviation | *Hz* | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | DB_y | :math:`DB_{y}` | Algeb | Deadband type 1 output | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Fvl | :math:`Fvl` | Algeb | Coeff. for under voltage | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Fvh | :math:`Fvh` | Algeb | Coeff. for over voltage | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | vp | :math:`vp` | Algeb | Sensed positive voltage | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Pext | :math:`Pext` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Pref | :math:`Pref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Psum | :math:`Psum` | Algeb | Sum of P signals | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Qdrp | :math:`Qdrp` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Qref | :math:`Qref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Qsum | :math:`Qsum` | Algeb | Sum of Q signals | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ipul | :math:`Ipul` | Algeb | Ipcmd before Ip hard limit | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Iqul | :math:`Iqul` | Algeb | Iqcmd before Iq hard limit | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ipmax | :math:`Ipmax` | Algeb | Upper limit of Ip | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Iqmax | :math:`Iqmax` | Algeb | Upper limit of Iq | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | a | :math:`a` | ExtAlgeb | bus (or igreg) phase angle | *rad.* | | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | v | :math:`v` | ExtAlgeb | bus (or igreg) terminal voltage | *p.u.* | | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ | f | :math:`f` | ExtAlgeb | Bus frequency | *p.u.* | | +----------+-------------------+----------+--------------------------------------------------+--------+------------+ Initialization Equations ------------------------ +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+===================+==========+=========================================================================================================================================================================================================================================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | fHz | :math:`fHz` | Algeb | :math:`f fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- fHz + fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`Pext_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`pref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`qref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`u \left(VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn + qref_{0}\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`\frac{PHL_{zi} Psum + PHL_{zu} pmx}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`\frac{Qsum}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`\sqrt{Iqmaxsq_{0}} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`Ipul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`Iqul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +----------+-------------------+-------+-----------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+===================+=======+===================================+================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y} - Ipout_{y}` | :math:`T_{ip}` | +----------+-------------------+-------+-----------------------------------+----------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y} - Iqout_{y}` | :math:`T_{iq}` | +----------+-------------------+-------+-----------------------------------+----------------+ Algebraic Equations ----------------------------- +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+===================+==========+=====================================================================================================================================================================================================================================================+ | fHz | :math:`fHz` | Algeb | :math:`f fn - fHz` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu} - Ffl` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl} - Ffh` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- Fdev - fHz + fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`- DB_{y} + ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`- Fvl + Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`- Fvh + VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl} - vp` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`- Pext + Pext_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`- Pref + pref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`- Psum + u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`- Qdrp + VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`- Qref + qref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`- Qsum + u \left(Qdrp + Qref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`- Ipul + \frac{PHL_{zi} Psum + PHL_{zu} pmx}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`- Iqul + \frac{Qsum}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`- Ipmax + \sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`- Iqmax + \sqrt{Iqmaxsq} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`- Ipcmd_{x} + Ipul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Ipcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`- Iqcmd_{x} + Iqul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | :math:`- Ipout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | :math:`- Iqout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | :math:`0` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +===========+=====================+=======================================================================================================================================================================================================+==============+ | pref0 | :math:`P_{ref0}` | :math:`gammap p0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | qref0 | :math:`Q_{ref0}` | :math:`gammaq q0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft01 | :math:`K_{ft01}` | :math:`\frac{1}{- ft_{0} + ft_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft23 | :math:`K_{ft23}` | :math:`\frac{1}{- ft_{2} + ft_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt01 | :math:`K_{vt01}` | :math:`\frac{1}{- vt_{0} + vt_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt23 | :math:`K_{vt23}` | :math:`\frac{1}{- vt_{2} + vt_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Pext0 | :math:`P_{ext0}` | :math:`0` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vcomp | :math:`V_{comp}` | :math:`\sqrt{Ipout_{y}^{2} xc^{2} - i Ipout_{y} v xc e^{i a} + i Ipout_{y} v xc e^{- i a} + Iqout_{y}^{2} xc^{2} - Iqout_{y} v xc e^{i a} - Iqout_{y} v xc e^{- i a} + v^{2}}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vqu | :math:`V_{qu}` | :math:`v_{1} - \frac{- qmn + qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vql | :math:`V_{ql}` | :math:`v_{0} + \frac{qmx - qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq | :math:`I_{pmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Iqcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Iqcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq0 | :math:`I_{pmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq | :math:`I_{qmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Ipcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Ipcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq0 | :math:`I_{qmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ Discretes ----------- +------------+------------------------+-------------+------------------------------------+ | Name | Symbol | Type | Info | +============+========================+=============+====================================+ | SWPQ | :math:`SW_{PQ}` | Switcher | | +------------+------------------------+-------------+------------------------------------+ | FL1 | :math:`FL1` | Limiter | Under frequency comparer | +------------+------------------------+-------------+------------------------------------+ | FL2 | :math:`FL2` | Limiter | Over frequency comparer | +------------+------------------------+-------------+------------------------------------+ | DB_db | :math:`db_{DB}` | DeadBand | | +------------+------------------------+-------------+------------------------------------+ | VL1 | :math:`VL1` | Limiter | Under voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VL2 | :math:`VL2` | Limiter | Over voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VLo | :math:`VLo` | Limiter | Voltage lower limit (0.01) flag | +------------+------------------------+-------------+------------------------------------+ | PHL | :math:`PHL` | Limiter | limiter for Psum in [0, pmx] | +------------+------------------------+-------------+------------------------------------+ | VQ1 | :math:`VQ1` | Limiter | Under voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | VQ2 | :math:`VQ2` | Limiter | Over voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | Ipcmd_lim | :math:`lim_{I^{pcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ | Iqcmd_lim | :math:`lim_{I^{qcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ Blocks ------- +--------+------------------+-------------+----------------------------------------+ | Name | Symbol | Type | Info | +========+==================+=============+========================================+ | DB | :math:`DB` | DeadBand1 | frequency deviation deadband with gain | +--------+------------------+-------------+----------------------------------------+ | Ipcmd | :math:`I^{pcmd}` | GainLimiter | Ip with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Iqcmd | :math:`I^{qcmd}` | GainLimiter | Iq with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Ipout | :math:`Ipout` | Lag | Output Ip filter | +--------+------------------+-------------+----------------------------------------+ | Iqout | :math:`Iqout` | Lag | Output Iq filter | +--------+------------------+-------------+----------------------------------------+ Config Fields in [PVD1] +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | Option | Symbol | Value | Info | Accepted values | +===============+=================+=======+==================================================+=================+ | allow_adjust | | 1 | allow adjusting upper or lower limits | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_lower | | 0 | adjust lower limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_upper | | 1 | adjust upper limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | plim | :math:`P_{lim}` | 1 | enable input power limit check bound by [0, pmx] | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ .. _ESD1: -------------------------------------------------------------------------------- ESD1 -------------------------------------------------------------------------------- Distributed energy storage model. A state-of-charge limit is added to the PVD1 model. This limit is applied to Ipmax and Ipmin. The state of charge is in state variable ``SOC``, which is an alias of ``pIG_y``. Reference: [1] Powerworld, Renewable Energy Electrical Control Model REEC_C Available: https://www.powerworld.com/WebHelp/Content/TransientModels_HTML/Exciter%20REEC_C.htm Parameters ---------- +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Name | Symbol | Description | Default | Unit | Properties | +==========+====================+=========================================================+=========+==============+===============================+ | idx | | unique device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | u | :math:`u` | connection status | 1 | *bool* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | name | | device name | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | bus | | interface bus id | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gen | | static generator index | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Sn | :math:`S_n` | device MVA rating | 100 | *MVA* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fn | :math:`f_n` | nominal frequency | 60 | *Hz* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | busf | | Optional BusFreq measurement device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | xc | :math:`x_c` | coupling reactance | 0 | *p.u.* | z | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pqflag | | P/Q priority for I limit; 0-Q priority, 1-P priority | | *bool* | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | igreg | | Remote bus idx for droop response, None for local | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmx | :math:`q_{mx}` | Max. reactive power command | 0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmn | :math:`q_{mn}` | Min. reactive power command | -0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmx | :math:`p_{mx}` | maximum power limit | 9999 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v0 | :math:`v_0` | Lower limit of deadband for Vdroop response | 0.800 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v1 | :math:`v_1` | Upper limit of deadband for Vdroop response | 1.100 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | dqdv | :math:`dq/dv` | Q-V droop characteristics (negative) | -1 | | non_zero,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fdbd | :math:`f_{dbd}` | frequency deviation deadband | -0.017 | *Hz* | non_positive | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ddn | :math:`D_{dn}` | Gain after f deadband | 0 | *pu (MW)/Hz* | non_negative,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ialim | :math:`I_{alim}` | Apparent power limit | 1.300 | | non_zero,non_negative,current | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt0 | :math:`V_{t0}` | Voltage tripping response curve point 0 | 0.880 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt1 | :math:`V_{t1}` | Voltage tripping response curve point 1 | 0.900 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt2 | :math:`V_{t2}` | Voltage tripping response curve point 2 | 1.100 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt3 | :math:`V_{t3}` | Voltage tripping response curve point 3 | 1.200 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vrflag | :math:`z_{VR}` | V-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft0 | :math:`f_{t0}` | Frequency tripping response curve point 0 | 59.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft1 | :math:`f_{t1}` | Frequency tripping response curve point 1 | 59.700 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft2 | :math:`f_{t2}` | Frequency tripping response curve point 2 | 60.300 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft3 | :math:`f_{t3}` | Frequency tripping response curve point 3 | 60.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | frflag | :math:`z_{FR}` | f-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tip | :math:`T_{ip}` | Inverter active current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tiq | :math:`T_{iq}` | Inverter reactive current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammap | :math:`\gamma_p` | Ratio of PVD1.pref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammaq | :math:`\gamma_q` | Ratio of PVD1.qref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | recflag | :math:`z_{rec}` | Enable flag for voltage and frequency recovery limiters | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Tf | :math:`T_f` | Integrator constant for SOC model | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmin | :math:`SOC_{min}` | Minimum required value for SOC in limiter | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmax | :math:`SOC_{max}` | Maximum allowed value for SOC in limiter | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCinit | :math:`SOC_{init}` | Initial state of charge | 0.500 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | En | :math:`E_n` | Rated energy capacity | 100 | *MWh* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaC | :math:`Eta_C` | Efficiency during charging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaD | :math:`Eta_D` | Efficiency during discharging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ Variables --------- +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+===================+============+==================================================+========+============+ | Ipout_y | :math:`Ipout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqout_y | :math:`Iqout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | pIG_y | :math:`pIG_{y}` | State | Integrator output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | SOC | :math:`SOC` | AliasState | Alias for state of charge | | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | fHz | :math:`fHz` | Algeb | frequency in Hz | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffl | :math:`Ffl` | Algeb | Coeff. for under frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffh | :math:`Ffh` | Algeb | Coeff. for over frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fdev | :math:`Fdev` | Algeb | Frequency deviation | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | DB_y | :math:`DB_{y}` | Algeb | Deadband type 1 output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvl | :math:`Fvl` | Algeb | Coeff. for under voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvh | :math:`Fvh` | Algeb | Coeff. for over voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | vp | :math:`vp` | Algeb | Sensed positive voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pext | :math:`Pext` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pref | :math:`Pref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Psum | :math:`Psum` | Algeb | Sum of P signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qdrp | :math:`Qdrp` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qref | :math:`Qref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qsum | :math:`Qsum` | Algeb | Sum of Q signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipul | :math:`Ipul` | Algeb | Ipcmd before Ip hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqul | :math:`Iqul` | Algeb | Iqcmd before Iq hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmax | :math:`Ipmax` | Algeb | Upper limit of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqmax | :math:`Iqmax` | Algeb | Upper limit of Iq | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmin | :math:`Ipmin` | Algeb | Minimum value of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | a | :math:`a` | ExtAlgeb | bus (or igreg) phase angle | *rad.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | v | :math:`v` | ExtAlgeb | bus (or igreg) terminal voltage | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | f | :math:`f` | ExtAlgeb | Bus frequency | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ Initialization Equations ------------------------ +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+===================+============+=========================================================================================================================================================================================================================================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`SOCinit` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | SOC | :math:`SOC` | AliasState | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | fHz | :math:`fHz` | Algeb | :math:`f fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- fHz + fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`Pext_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`pref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`qref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`u \left(VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn + qref_{0}\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`\frac{PHL_{zi} Psum + PHL_{zu} pmx}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`\frac{Qsum}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`\left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`\sqrt{Iqmaxsq_{0}} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`Ipul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`Iqul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`\left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+===================+============+================================================================================================================+================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y} - Ipout_{y}` | :math:`T_{ip}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y} - Iqout_{y}` | :math:`T_{iq}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`\frac{S_{b,sys} \left(- EtaC Ipout_{y} LTN_{z1} v - \frac{Ipout_{y} LTN_{z0} v}{EtaD}\right)}{3600 En}` | :math:`T_f` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | SOC | :math:`SOC` | AliasState | :math:`0` | | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ Algebraic Equations ----------------------------- +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+===================+==========+=====================================================================================================================================================================================================================================================+ | fHz | :math:`fHz` | Algeb | :math:`f fn - fHz` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu} - Ffl` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl} - Ffh` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- Fdev - fHz + fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`- DB_{y} + ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`- Fvl + Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`- Fvh + VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl} - vp` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`- Pext + Pext_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`- Pref + pref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`- Psum + u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`- Qdrp + VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`- Qref + qref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`- Qsum + u \left(Qdrp + Qref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`- Ipul + \frac{PHL_{zi} Psum + PHL_{zu} pmx}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`- Iqul + \frac{Qsum}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`- Ipmax + \left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`- Iqmax + \sqrt{Iqmaxsq} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`- Ipcmd_{x} + Ipul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Ipcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`- Iqcmd_{x} + Iqul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`- Ipmin + \left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | :math:`- Ipout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | :math:`- Iqout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | :math:`0` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +===========+=====================+=======================================================================================================================================================================================================+==============+ | pref0 | :math:`P_{ref0}` | :math:`gammap p0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | qref0 | :math:`Q_{ref0}` | :math:`gammaq q0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft01 | :math:`K_{ft01}` | :math:`\frac{1}{- ft_{0} + ft_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft23 | :math:`K_{ft23}` | :math:`\frac{1}{- ft_{2} + ft_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt01 | :math:`K_{vt01}` | :math:`\frac{1}{- vt_{0} + vt_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt23 | :math:`K_{vt23}` | :math:`\frac{1}{- vt_{2} + vt_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Pext0 | :math:`P_{ext0}` | :math:`0` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vcomp | :math:`V_{comp}` | :math:`\sqrt{Ipout_{y}^{2} xc^{2} - i Ipout_{y} v xc e^{i a} + i Ipout_{y} v xc e^{- i a} + Iqout_{y}^{2} xc^{2} - Iqout_{y} v xc e^{i a} - Iqout_{y} v xc e^{- i a} + v^{2}}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vqu | :math:`V_{qu}` | :math:`v_{1} - \frac{- qmn + qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vql | :math:`V_{ql}` | :math:`v_{0} + \frac{qmx - qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq | :math:`I_{pmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Iqcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Iqcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq0 | :math:`I_{pmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq | :math:`I_{qmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Ipcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Ipcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq0 | :math:`I_{qmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ Discretes ----------- +------------+------------------------+-------------+------------------------------------+ | Name | Symbol | Type | Info | +============+========================+=============+====================================+ | SWPQ | :math:`SW_{PQ}` | Switcher | | +------------+------------------------+-------------+------------------------------------+ | FL1 | :math:`FL1` | Limiter | Under frequency comparer | +------------+------------------------+-------------+------------------------------------+ | FL2 | :math:`FL2` | Limiter | Over frequency comparer | +------------+------------------------+-------------+------------------------------------+ | DB_db | :math:`db_{DB}` | DeadBand | | +------------+------------------------+-------------+------------------------------------+ | VL1 | :math:`VL1` | Limiter | Under voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VL2 | :math:`VL2` | Limiter | Over voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VLo | :math:`VLo` | Limiter | Voltage lower limit (0.01) flag | +------------+------------------------+-------------+------------------------------------+ | PHL | :math:`PHL` | Limiter | limiter for Psum in [0, pmx] | +------------+------------------------+-------------+------------------------------------+ | VQ1 | :math:`VQ1` | Limiter | Under voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | VQ2 | :math:`VQ2` | Limiter | Over voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | Ipcmd_lim | :math:`lim_{I^{pcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ | Iqcmd_lim | :math:`lim_{I^{qcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ | LTN | :math:`LTN` | LessThan | | +------------+------------------------+-------------+------------------------------------+ | SOClim | :math:`SOClim` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ Blocks ------- +--------+------------------+-------------+----------------------------------------+ | Name | Symbol | Type | Info | +========+==================+=============+========================================+ | DB | :math:`DB` | DeadBand1 | frequency deviation deadband with gain | +--------+------------------+-------------+----------------------------------------+ | Ipcmd | :math:`I^{pcmd}` | GainLimiter | Ip with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Iqcmd | :math:`I^{qcmd}` | GainLimiter | Iq with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Ipout | :math:`Ipout` | Lag | Output Ip filter | +--------+------------------+-------------+----------------------------------------+ | Iqout | :math:`Iqout` | Lag | Output Iq filter | +--------+------------------+-------------+----------------------------------------+ | pIG | :math:`pIG` | Integrator | State of charge | +--------+------------------+-------------+----------------------------------------+ Config Fields in [ESD1] +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | Option | Symbol | Value | Info | Accepted values | +===============+=================+=======+==================================================+=================+ | allow_adjust | | 1 | allow adjusting upper or lower limits | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_lower | | 0 | adjust lower limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_upper | | 1 | adjust upper limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | plim | :math:`P_{lim}` | 1 | enable input power limit check bound by [0, pmx] | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ .. _EV1: -------------------------------------------------------------------------------- EV1 -------------------------------------------------------------------------------- Electric vehicle model type 1. Modified from ESD1 model by adding the minumum power limit `pmn`. Like `pmx`, `pmn` acts on `Psum`, the sum of the active power references. The limiter that uses `pmx` and `pmn` is enabled by default. Parameters ---------- +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Name | Symbol | Description | Default | Unit | Properties | +==========+====================+=========================================================+=========+==============+===============================+ | idx | | unique device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | u | :math:`u` | connection status | 1 | *bool* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | name | | device name | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | bus | | interface bus id | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gen | | static generator index | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Sn | :math:`S_n` | device MVA rating | 100 | *MVA* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fn | :math:`f_n` | nominal frequency | 60 | *Hz* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | busf | | Optional BusFreq measurement device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | xc | :math:`x_c` | coupling reactance | 0 | *p.u.* | z | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pqflag | | P/Q priority for I limit; 0-Q priority, 1-P priority | | *bool* | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | igreg | | Remote bus idx for droop response, None for local | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmx | :math:`q_{mx}` | Max. reactive power command | 0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmn | :math:`q_{mn}` | Min. reactive power command | -0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmx | :math:`p_{mx}` | maximum power limit | 9999 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v0 | :math:`v_0` | Lower limit of deadband for Vdroop response | 0.800 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v1 | :math:`v_1` | Upper limit of deadband for Vdroop response | 1.100 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | dqdv | :math:`dq/dv` | Q-V droop characteristics (negative) | -1 | | non_zero,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fdbd | :math:`f_{dbd}` | frequency deviation deadband | -0.017 | *Hz* | non_positive | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ddn | :math:`D_{dn}` | Gain after f deadband | 0 | *pu (MW)/Hz* | non_negative,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ialim | :math:`I_{alim}` | Apparent power limit | 1.300 | | non_zero,non_negative,current | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt0 | :math:`V_{t0}` | Voltage tripping response curve point 0 | 0.880 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt1 | :math:`V_{t1}` | Voltage tripping response curve point 1 | 0.900 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt2 | :math:`V_{t2}` | Voltage tripping response curve point 2 | 1.100 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt3 | :math:`V_{t3}` | Voltage tripping response curve point 3 | 1.200 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vrflag | :math:`z_{VR}` | V-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft0 | :math:`f_{t0}` | Frequency tripping response curve point 0 | 59.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft1 | :math:`f_{t1}` | Frequency tripping response curve point 1 | 59.700 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft2 | :math:`f_{t2}` | Frequency tripping response curve point 2 | 60.300 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft3 | :math:`f_{t3}` | Frequency tripping response curve point 3 | 60.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | frflag | :math:`z_{FR}` | f-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tip | :math:`T_{ip}` | Inverter active current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tiq | :math:`T_{iq}` | Inverter reactive current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammap | :math:`\gamma_p` | Ratio of PVD1.pref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammaq | :math:`\gamma_q` | Ratio of PVD1.qref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | recflag | :math:`z_{rec}` | Enable flag for voltage and frequency recovery limiters | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Tf | :math:`T_f` | Integrator constant for SOC model | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmin | :math:`SOC_{min}` | Minimum required value for SOC in limiter | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmax | :math:`SOC_{max}` | Maximum allowed value for SOC in limiter | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCinit | :math:`SOC_{init}` | Initial state of charge | 0.500 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | En | :math:`E_n` | Rated energy capacity | 100 | *MWh* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaC | :math:`Eta_C` | Efficiency during charging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaD | :math:`Eta_D` | Efficiency during discharging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmn | :math:`p_{mn}` | minimum power limit | -999 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ Variables --------- +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+===================+============+==================================================+========+============+ | Ipout_y | :math:`Ipout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqout_y | :math:`Iqout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | pIG_y | :math:`pIG_{y}` | State | Integrator output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | SOC | :math:`SOC` | AliasState | Alias for state of charge | | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | fHz | :math:`fHz` | Algeb | frequency in Hz | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffl | :math:`Ffl` | Algeb | Coeff. for under frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffh | :math:`Ffh` | Algeb | Coeff. for over frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fdev | :math:`Fdev` | Algeb | Frequency deviation | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | DB_y | :math:`DB_{y}` | Algeb | Deadband type 1 output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvl | :math:`Fvl` | Algeb | Coeff. for under voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvh | :math:`Fvh` | Algeb | Coeff. for over voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | vp | :math:`vp` | Algeb | Sensed positive voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pext | :math:`Pext` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pref | :math:`Pref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Psum | :math:`Psum` | Algeb | Sum of P signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qdrp | :math:`Qdrp` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qref | :math:`Qref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qsum | :math:`Qsum` | Algeb | Sum of Q signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipul | :math:`Ipul` | Algeb | Ipcmd before Ip hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqul | :math:`Iqul` | Algeb | Iqcmd before Iq hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmax | :math:`Ipmax` | Algeb | Upper limit of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqmax | :math:`Iqmax` | Algeb | Upper limit of Iq | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmin | :math:`Ipmin` | Algeb | Minimum value of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | a | :math:`a` | ExtAlgeb | bus (or igreg) phase angle | *rad.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | v | :math:`v` | ExtAlgeb | bus (or igreg) terminal voltage | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | f | :math:`f` | ExtAlgeb | Bus frequency | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ Initialization Equations ------------------------ +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+===================+============+=========================================================================================================================================================================================================================================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`SOCinit` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | SOC | :math:`SOC` | AliasState | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | fHz | :math:`fHz` | Algeb | :math:`f fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- fHz + fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`Pext_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`pref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`qref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`u \left(VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn + qref_{0}\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`\frac{PHL_{zi} Psum + PHL_{zl} pmn + PHL_{zu} pmx}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`\frac{Qsum}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`\left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`\sqrt{Iqmaxsq_{0}} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`Ipul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`Iqul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`\left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+===================+============+================================================================================================================+================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y} - Ipout_{y}` | :math:`T_{ip}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y} - Iqout_{y}` | :math:`T_{iq}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`\frac{S_{b,sys} \left(- EtaC Ipout_{y} LTN_{z1} v - \frac{Ipout_{y} LTN_{z0} v}{EtaD}\right)}{3600 En}` | :math:`T_f` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | SOC | :math:`SOC` | AliasState | :math:`0` | | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ Algebraic Equations ----------------------------- +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+===================+==========+=====================================================================================================================================================================================================================================================+ | fHz | :math:`fHz` | Algeb | :math:`f fn - fHz` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu} - Ffl` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl} - Ffh` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- Fdev - fHz + fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`- DB_{y} + ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`- Fvl + Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`- Fvh + VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl} - vp` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`- Pext + Pext_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`- Pref + pref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`- Psum + u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`- Qdrp + VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`- Qref + qref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`- Qsum + u \left(Qdrp + Qref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`- Ipul + \frac{PHL_{zi} Psum + PHL_{zl} pmn + PHL_{zu} pmx}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`- Iqul + \frac{Qsum}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`- Ipmax + \left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`- Iqmax + \sqrt{Iqmaxsq} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`- Ipcmd_{x} + Ipul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Ipcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`- Iqcmd_{x} + Iqul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`- Ipmin + \left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | :math:`- Ipout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | :math:`- Iqout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | :math:`0` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +===========+=====================+=======================================================================================================================================================================================================+==============+ | pref0 | :math:`P_{ref0}` | :math:`gammap p0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | qref0 | :math:`Q_{ref0}` | :math:`gammaq q0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft01 | :math:`K_{ft01}` | :math:`\frac{1}{- ft_{0} + ft_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft23 | :math:`K_{ft23}` | :math:`\frac{1}{- ft_{2} + ft_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt01 | :math:`K_{vt01}` | :math:`\frac{1}{- vt_{0} + vt_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt23 | :math:`K_{vt23}` | :math:`\frac{1}{- vt_{2} + vt_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Pext0 | :math:`P_{ext0}` | :math:`0` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vcomp | :math:`V_{comp}` | :math:`\sqrt{Ipout_{y}^{2} xc^{2} - i Ipout_{y} v xc e^{i a} + i Ipout_{y} v xc e^{- i a} + Iqout_{y}^{2} xc^{2} - Iqout_{y} v xc e^{i a} - Iqout_{y} v xc e^{- i a} + v^{2}}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vqu | :math:`V_{qu}` | :math:`v_{1} - \frac{- qmn + qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vql | :math:`V_{ql}` | :math:`v_{0} + \frac{qmx - qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq | :math:`I_{pmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Iqcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Iqcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq0 | :math:`I_{pmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq | :math:`I_{qmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Ipcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Ipcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq0 | :math:`I_{qmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ Discretes ----------- +------------+------------------------+-------------+------------------------------------+ | Name | Symbol | Type | Info | +============+========================+=============+====================================+ | SWPQ | :math:`SW_{PQ}` | Switcher | | +------------+------------------------+-------------+------------------------------------+ | FL1 | :math:`FL1` | Limiter | Under frequency comparer | +------------+------------------------+-------------+------------------------------------+ | FL2 | :math:`FL2` | Limiter | Over frequency comparer | +------------+------------------------+-------------+------------------------------------+ | DB_db | :math:`db_{DB}` | DeadBand | | +------------+------------------------+-------------+------------------------------------+ | VL1 | :math:`VL1` | Limiter | Under voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VL2 | :math:`VL2` | Limiter | Over voltage comparer | +------------+------------------------+-------------+------------------------------------+ | VLo | :math:`VLo` | Limiter | Voltage lower limit (0.01) flag | +------------+------------------------+-------------+------------------------------------+ | PHL | :math:`PHL` | Limiter | limiter for Psum in [pmn, pmx] | +------------+------------------------+-------------+------------------------------------+ | VQ1 | :math:`VQ1` | Limiter | Under voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | VQ2 | :math:`VQ2` | Limiter | Over voltage comparer for Q droop | +------------+------------------------+-------------+------------------------------------+ | Ipcmd_lim | :math:`lim_{I^{pcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ | Iqcmd_lim | :math:`lim_{I^{qcmd}}` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ | LTN | :math:`LTN` | LessThan | | +------------+------------------------+-------------+------------------------------------+ | SOClim | :math:`SOClim` | HardLimiter | | +------------+------------------------+-------------+------------------------------------+ Blocks ------- +--------+------------------+-------------+----------------------------------------+ | Name | Symbol | Type | Info | +========+==================+=============+========================================+ | DB | :math:`DB` | DeadBand1 | frequency deviation deadband with gain | +--------+------------------+-------------+----------------------------------------+ | Ipcmd | :math:`I^{pcmd}` | GainLimiter | Ip with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Iqcmd | :math:`I^{qcmd}` | GainLimiter | Iq with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Ipout | :math:`Ipout` | Lag | Output Ip filter | +--------+------------------+-------------+----------------------------------------+ | Iqout | :math:`Iqout` | Lag | Output Iq filter | +--------+------------------+-------------+----------------------------------------+ | pIG | :math:`pIG` | Integrator | State of charge | +--------+------------------+-------------+----------------------------------------+ Config Fields in [EV1] +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | Option | Symbol | Value | Info | Accepted values | +===============+=================+=======+==================================================+=================+ | allow_adjust | | 1 | allow adjusting upper or lower limits | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_lower | | 0 | adjust lower limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_upper | | 1 | adjust upper limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | plim | :math:`P_{lim}` | 1 | enable input power limit check bound by [0, pmx] | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ .. _EV2: -------------------------------------------------------------------------------- EV2 -------------------------------------------------------------------------------- Electric vehicle model type 2. Derived from EV1, EV2 introduces `pcap` multiplied to `pmx`. `Psum` will be limited to [pmn, pmx * pcap]. The model does not check the signs or values of `pmn`, `pmx`, or `pcap`. The input data is required to satisfy `pmn <= pmx * pcap`. Parameters ---------- +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Name | Symbol | Description | Default | Unit | Properties | +==========+====================+=========================================================+=========+==============+===============================+ | idx | | unique device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | u | :math:`u` | connection status | 1 | *bool* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | name | | device name | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | bus | | interface bus id | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gen | | static generator index | | | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Sn | :math:`S_n` | device MVA rating | 100 | *MVA* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fn | :math:`f_n` | nominal frequency | 60 | *Hz* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | busf | | Optional BusFreq measurement device idx | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | xc | :math:`x_c` | coupling reactance | 0 | *p.u.* | z | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pqflag | | P/Q priority for I limit; 0-Q priority, 1-P priority | | *bool* | mandatory | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | igreg | | Remote bus idx for droop response, None for local | | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmx | :math:`q_{mx}` | Max. reactive power command | 0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | qmn | :math:`q_{mn}` | Min. reactive power command | -0.330 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmx | :math:`p_{mx}` | maximum power limit | 9999 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v0 | :math:`v_0` | Lower limit of deadband for Vdroop response | 0.800 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | v1 | :math:`v_1` | Upper limit of deadband for Vdroop response | 1.100 | *pu* | non_zero | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | dqdv | :math:`dq/dv` | Q-V droop characteristics (negative) | -1 | | non_zero,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | fdbd | :math:`f_{dbd}` | frequency deviation deadband | -0.017 | *Hz* | non_positive | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ddn | :math:`D_{dn}` | Gain after f deadband | 1 | *pu (MW)/Hz* | non_negative,power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ialim | :math:`I_{alim}` | Apparent power limit | 1.300 | | non_zero,non_negative,current | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt0 | :math:`V_{t0}` | Voltage tripping response curve point 0 | 0.880 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt1 | :math:`V_{t1}` | Voltage tripping response curve point 1 | 0.900 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt2 | :math:`V_{t2}` | Voltage tripping response curve point 2 | 1.100 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vt3 | :math:`V_{t3}` | Voltage tripping response curve point 3 | 1.200 | *p.u.* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | vrflag | :math:`z_{VR}` | V-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft0 | :math:`f_{t0}` | Frequency tripping response curve point 0 | 59.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft1 | :math:`f_{t1}` | Frequency tripping response curve point 1 | 59.700 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft2 | :math:`f_{t2}` | Frequency tripping response curve point 2 | 60.300 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | ft3 | :math:`f_{t3}` | Frequency tripping response curve point 3 | 60.500 | *Hz* | non_zero,non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | frflag | :math:`z_{FR}` | f-trip is latching (0) or self-resetting (0-1) | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tip | :math:`T_{ip}` | Inverter active current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | tiq | :math:`T_{iq}` | Inverter reactive current lag time constant | 0.020 | *s* | non_negative | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammap | :math:`\gamma_p` | Ratio of PVD1.pref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | gammaq | :math:`\gamma_q` | Ratio of PVD1.qref0 w.r.t to that of static PV | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | recflag | :math:`z_{rec}` | Enable flag for voltage and frequency recovery limiters | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | Tf | :math:`T_f` | Integrator constant for SOC model | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmin | :math:`SOC_{min}` | Minimum required value for SOC in limiter | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCmax | :math:`SOC_{max}` | Maximum allowed value for SOC in limiter | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | SOCinit | :math:`SOC_{init}` | Initial state of charge | 0.500 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | En | :math:`E_n` | Rated energy capacity | 100 | *MWh* | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaC | :math:`Eta_C` | Efficiency during charging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | EtaD | :math:`Eta_D` | Efficiency during discharging | 1 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pmn | :math:`p_{mn}` | minimum power limit | -999 | *pu* | power | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ | pcap | :math:`p_{cap}` | power ratio multiplied to pmx in [-1, 1] | 0 | | | +----------+--------------------+---------------------------------------------------------+---------+--------------+-------------------------------+ Variables --------- +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+===================+============+==================================================+========+============+ | Ipout_y | :math:`Ipout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqout_y | :math:`Iqout_{y}` | State | State in lag transfer function | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | pIG_y | :math:`pIG_{y}` | State | Integrator output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | SOC | :math:`SOC` | AliasState | Alias for state of charge | | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | fHz | :math:`fHz` | Algeb | frequency in Hz | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffl | :math:`Ffl` | Algeb | Coeff. for under frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ffh | :math:`Ffh` | Algeb | Coeff. for over frequency | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fdev | :math:`Fdev` | Algeb | Frequency deviation | *Hz* | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | DB_y | :math:`DB_{y}` | Algeb | Deadband type 1 output | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvl | :math:`Fvl` | Algeb | Coeff. for under voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Fvh | :math:`Fvh` | Algeb | Coeff. for over voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | vp | :math:`vp` | Algeb | Sensed positive voltage | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pext | :math:`Pext` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Pref | :math:`Pref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Psum | :math:`Psum` | Algeb | Sum of P signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qdrp | :math:`Qdrp` | Algeb | External power signal (for AGC) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qref | :math:`Qref` | Algeb | Reference power signal (for scheduling setpoint) | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Qsum | :math:`Qsum` | Algeb | Sum of Q signals | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipul | :math:`Ipul` | Algeb | Ipcmd before Ip hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqul | :math:`Iqul` | Algeb | Iqcmd before Iq hard limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmax | :math:`Ipmax` | Algeb | Upper limit of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqmax | :math:`Iqmax` | Algeb | Upper limit of Iq | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | Value before limiter | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | Output after limiter and post gain | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | Ipmin | :math:`Ipmin` | Algeb | Minimum value of Ip | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | PHLup | :math:`PHLup` | Algeb | PHL upper limit | | v_str | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | a | :math:`a` | ExtAlgeb | bus (or igreg) phase angle | *rad.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | v | :math:`v` | ExtAlgeb | bus (or igreg) terminal voltage | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ | f | :math:`f` | ExtAlgeb | Bus frequency | *p.u.* | | +----------+-------------------+------------+--------------------------------------------------+--------+------------+ Initialization Equations ------------------------ +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+===================+============+=========================================================================================================================================================================================================================================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`SOCinit` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | SOC | :math:`SOC` | AliasState | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | fHz | :math:`fHz` | Algeb | :math:`f fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- fHz + fn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`Pext_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`pref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`qref_{0} u` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`u \left(VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn + qref_{0}\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`\frac{PHL_{2 zi} Psum + PHL_{2 zl} pmn + PHL_{2 zu} PHLup}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`\frac{Qsum}{vp}` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`\left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`\sqrt{Iqmaxsq_{0}} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`Ipul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`Iqul` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`\left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq_{0}} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | PHLup | :math:`PHLup` | Algeb | :math:`pcap pmx` | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | | +----------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+===================+============+================================================================================================================+================+ | Ipout_y | :math:`Ipout_{y}` | State | :math:`1.0 Ipcmd_{y} - Ipout_{y}` | :math:`T_{ip}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | Iqout_y | :math:`Iqout_{y}` | State | :math:`1.0 Iqcmd_{y} - Iqout_{y}` | :math:`T_{iq}` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | pIG_y | :math:`pIG_{y}` | State | :math:`\frac{S_{b,sys} \left(- EtaC Ipout_{y} LTN_{z1} v - \frac{Ipout_{y} LTN_{z0} v}{EtaD}\right)}{3600 En}` | :math:`T_f` | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ | SOC | :math:`SOC` | AliasState | :math:`0` | | +----------+-------------------+------------+----------------------------------------------------------------------------------------------------------------+----------------+ Algebraic Equations ----------------------------- +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+===================+==========+=====================================================================================================================================================================================================================================================+ | fHz | :math:`fHz` | Algeb | :math:`f fn - fHz` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffl | :math:`Ffl` | Algeb | :math:`FL_{1 zi} Kft_{01} \left(fHz - ft_{0}\right) + FL_{1 zu} - Ffl` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ffh | :math:`Ffh` | Algeb | :math:`FL_{2 zi} \left(Kft_{23} \left(- fHz + ft_{2}\right) + 1\right) + FL_{2 zl} - Ffh` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fdev | :math:`Fdev` | Algeb | :math:`- Fdev - fHz + fn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DB_y | :math:`DB_{y}` | Algeb | :math:`- DB_{y} + ddn \left(DB_{db zl} \left(Fdev - fdbd\right) + DB_{db zu} Fdev\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvl | :math:`Fvl` | Algeb | :math:`- Fvl + Kvt_{01} VL_{1 zi} \left(v - vt_{0}\right) + VL_{1 zu}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fvh | :math:`Fvh` | Algeb | :math:`- Fvh + VL_{2 zi} \left(Kvt_{23} \left(- v + vt_{2}\right) + 1\right) + VL_{2 zl}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vp | :math:`vp` | Algeb | :math:`VLo_{zi} v + 0.01 VLo_{zl} - vp` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pext | :math:`Pext` | Algeb | :math:`- Pext + Pext_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pref | :math:`Pref` | Algeb | :math:`- Pref + pref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Psum | :math:`Psum` | Algeb | :math:`- Psum + u \left(DB_{y} + Pext + Pref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qdrp | :math:`Qdrp` | Algeb | :math:`- Qdrp + VQ_{1 zi} u \left(dqdv \left(- Vcomp + Vqu\right) + qmx\right) + VQ_{1 zl} qmx u + VQ_{2 zi} dqdv u \left(- Vcomp + v_{1}\right) + VQ_{2 zu} qmn` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qref | :math:`Qref` | Algeb | :math:`- Qref + qref_{0} u` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qsum | :math:`Qsum` | Algeb | :math:`- Qsum + u \left(Qdrp + Qref\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipul | :math:`Ipul` | Algeb | :math:`- Ipul + \frac{PHL_{2 zi} Psum + PHL_{2 zl} pmn + PHL_{2 zu} PHLup}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqul | :math:`Iqul` | Algeb | :math:`- Iqul + \frac{Qsum}{vp}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmax | :math:`Ipmax` | Algeb | :math:`- Ipmax + \left(1 - SOClim_{zl}\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqmax | :math:`Iqmax` | Algeb | :math:`- Iqmax + \sqrt{Iqmaxsq} SWPQ_{s1} + SWPQ_{s0} ialim` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_x | :math:`Ipcmd_{x}` | Algeb | :math:`- Ipcmd_{x} + Ipul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd_y | :math:`Ipcmd_{y}` | Algeb | :math:`Ipcmd_{lim zi} Ipcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Ipcmd_{lim zu} Ipmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Ipcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_x | :math:`Iqcmd_{x}` | Algeb | :math:`- Iqcmd_{x} + Iqul` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd_y | :math:`Iqcmd_{y}` | Algeb | :math:`Iqcmd_{lim zi} Iqcmd_{x} \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{lim zl} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) + Iqcmd_{lim zu} Iqmax \left(Ffh Ffl Fvh Fvl recflag - recflag + 1\right) - Iqcmd_{y}` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipmin | :math:`Ipmin` | Algeb | :math:`- Ipmin + \left(SOClim_{zu} - 1\right) \left(\sqrt{Ipmaxsq} SWPQ_{s0} + SWPQ_{s1} ialim\right)` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | PHLup | :math:`PHLup` | Algeb | :math:`- PHLup + pcap pmx` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`a` | ExtAlgeb | :math:`- Ipout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`v` | ExtAlgeb | :math:`- Iqout_{y} u v` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f | :math:`f` | ExtAlgeb | :math:`0` | +----------+-------------------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +===========+=====================+=======================================================================================================================================================================================================+==============+ | pref0 | :math:`P_{ref0}` | :math:`gammap p0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | qref0 | :math:`Q_{ref0}` | :math:`gammaq q0s` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft01 | :math:`K_{ft01}` | :math:`\frac{1}{- ft_{0} + ft_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kft23 | :math:`K_{ft23}` | :math:`\frac{1}{- ft_{2} + ft_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt01 | :math:`K_{vt01}` | :math:`\frac{1}{- vt_{0} + vt_{1}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Kvt23 | :math:`K_{vt23}` | :math:`\frac{1}{- vt_{2} + vt_{3}}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Pext0 | :math:`P_{ext0}` | :math:`0` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vcomp | :math:`V_{comp}` | :math:`\sqrt{Ipout_{y}^{2} xc^{2} - i Ipout_{y} v xc e^{i a} + i Ipout_{y} v xc e^{- i a} + Iqout_{y}^{2} xc^{2} - Iqout_{y} v xc e^{i a} - Iqout_{y} v xc e^{- i a} + v^{2}}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vqu | :math:`V_{qu}` | :math:`v_{1} - \frac{- qmn + qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Vql | :math:`V_{ql}` | :math:`v_{0} + \frac{qmx - qref_{0}}{dqdv}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq | :math:`I_{pmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Iqcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Iqcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Ipmaxsq0 | :math:`I_{pmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{qref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq | :math:`I_{qmax}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ Ipcmd_{y}^{2} - ialim^{2} \geq 0\right),\left( - Ipcmd_{y}^{2} + ialim^{2}, \ \text{True}\right) \right)}` | VarService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ | Iqmaxsq0 | :math:`I_{qmax0}^2` | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}} \leq 0\right),\left( ialim^{2} - \frac{pref_{0}^{2} u^{2}}{v^{2}}, \ \text{True}\right) \right)}` | ConstService | +-----------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+ Discretes ----------- +------------+------------------------+-------------+---------------------------------------+ | Name | Symbol | Type | Info | +============+========================+=============+=======================================+ | SWPQ | :math:`SW_{PQ}` | Switcher | | +------------+------------------------+-------------+---------------------------------------+ | FL1 | :math:`FL1` | Limiter | Under frequency comparer | +------------+------------------------+-------------+---------------------------------------+ | FL2 | :math:`FL2` | Limiter | Over frequency comparer | +------------+------------------------+-------------+---------------------------------------+ | DB_db | :math:`db_{DB}` | DeadBand | | +------------+------------------------+-------------+---------------------------------------+ | VL1 | :math:`VL1` | Limiter | Under voltage comparer | +------------+------------------------+-------------+---------------------------------------+ | VL2 | :math:`VL2` | Limiter | Over voltage comparer | +------------+------------------------+-------------+---------------------------------------+ | VLo | :math:`VLo` | Limiter | Voltage lower limit (0.01) flag | +------------+------------------------+-------------+---------------------------------------+ | PHL | :math:`PHL` | Limiter | limiter for Psum in [pmn, pmx] | +------------+------------------------+-------------+---------------------------------------+ | VQ1 | :math:`VQ1` | Limiter | Under voltage comparer for Q droop | +------------+------------------------+-------------+---------------------------------------+ | VQ2 | :math:`VQ2` | Limiter | Over voltage comparer for Q droop | +------------+------------------------+-------------+---------------------------------------+ | Ipcmd_lim | :math:`lim_{I^{pcmd}}` | HardLimiter | | +------------+------------------------+-------------+---------------------------------------+ | Iqcmd_lim | :math:`lim_{I^{qcmd}}` | HardLimiter | | +------------+------------------------+-------------+---------------------------------------+ | LTN | :math:`LTN` | LessThan | | +------------+------------------------+-------------+---------------------------------------+ | SOClim | :math:`SOClim` | HardLimiter | | +------------+------------------------+-------------+---------------------------------------+ | PHL2 | :math:`PHL2` | Limiter | limiter for Psum in [pmn, pcap * pmx] | +------------+------------------------+-------------+---------------------------------------+ Blocks ------- +--------+------------------+-------------+----------------------------------------+ | Name | Symbol | Type | Info | +========+==================+=============+========================================+ | DB | :math:`DB` | DeadBand1 | frequency deviation deadband with gain | +--------+------------------+-------------+----------------------------------------+ | Ipcmd | :math:`I^{pcmd}` | GainLimiter | Ip with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Iqcmd | :math:`I^{qcmd}` | GainLimiter | Iq with limiter and coeff. | +--------+------------------+-------------+----------------------------------------+ | Ipout | :math:`Ipout` | Lag | Output Ip filter | +--------+------------------+-------------+----------------------------------------+ | Iqout | :math:`Iqout` | Lag | Output Iq filter | +--------+------------------+-------------+----------------------------------------+ | pIG | :math:`pIG` | Integrator | State of charge | +--------+------------------+-------------+----------------------------------------+ Config Fields in [EV2] +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | Option | Symbol | Value | Info | Accepted values | +===============+=================+=======+==================================================+=================+ | allow_adjust | | 1 | allow adjusting upper or lower limits | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_lower | | 0 | adjust lower limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | adjust_upper | | 1 | adjust upper limit | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+ | plim | :math:`P_{lim}` | 1 | enable input power limit check bound by [0, pmx] | (0, 1) | +---------------+-----------------+-------+--------------------------------------------------+-----------------+