.. _RenGen: ================================================================================ RenGen ================================================================================ Renewable generator (converter) group. See :ref:`SynGen` for the notes on replacing StaticGen and setting the power ratio parameters. Common Parameters: u, name, bus, gen, Sn Common Variables: Pe, Qe Available models: REGCA1_, REGCP1_, REGCV1_, REGCV2_, REGF1_, REGF2_, REGF3_ .. _REGCA1: -------------------------------------------------------------------------------- REGCA1 -------------------------------------------------------------------------------- Renewable energy generator model type A. Implements ``REGCA1`` in PSS/E, or ``REGC_A`` in PSLF and Powerworld. Volim is the voltage limit for high voltage reactive current management, which should be large than static bus voltage (Volim > v), or initialization error will occur. 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` | Model MVA base | 100 | *MVA* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Tg | :math:`T_g` | converter time const. | 0.100 | *s* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Rrpwr | :math:`R_{rpwr}` | Low voltage power logic (LVPL) ramp limit | 10 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Brkpt | :math:`B_{rkpt}` | LVPL characteristic voltage 2 | 1 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Zerox | :math:`Z_{erox}` | LVPL characteristic voltage 1 | 0.500 | *p.u* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvplsw | :math:`z_{Lvplsw}` | Low volt. P logic: 1-enable, 0-disable | 1 | *bool* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpl1 | :math:`L_{vpl1}` | LVPL gain at Brkpt | 1 | *p.u* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Volim | :math:`V_{olim}` | Voltage lim for high volt. reactive current mgnt. | 1.200 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpnt1 | :math:`L_{vpnt1}` | High volt. point for low volt. active current mgnt. | 0.800 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpnt0 | :math:`L_{vpnt0}` | Low volt. point for low volt. active current mgnt. | 0.400 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iolim | :math:`I_{olim}` | lower current limit for high volt. reactive current mgnt. | -1.500 | *p.u. (mach base)* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Tfltr | :math:`T_{fltr}` | Voltage filter T const for low volt. active current mgnt. | 0.100 | *s* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Khv | :math:`K_{hv}` | Overvolt. compensation gain in high volt. reactive current mgnt. | 0.700 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iqrmax | :math:`I_{qrmax}` | Upper limit on the ROC for reactive current | 1 | *p.u.* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iqrmin | :math:`I_{qrmin}` | Lower limit on the ROC for reactive current | -1 | *p.u.* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Accel | :math:`A_{ccel}` | Acceleration factor | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | ra | :math:`r_a` | | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | xs | :math:`x_s` | | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ Variables --------- +----------+----------------------+------------+--------------------------------------+------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+======================+============+======================================+======+============+ | S1_y | :math:`y_{S_1}` | State | State in lag TF | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | S2_y | :math:`y_{S_2}` | State | State in lag transfer function | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | S0_y | :math:`y_{S_0}` | State | State in lag TF | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | Output of piecewise | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | current component for active power | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | current component for reactive power | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | Output of piecewise | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Ipout | :math:`I_{pout}` | Algeb | Output Ip current | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | Value before limiter | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | Output after limiter and post gain | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | Value before limiter | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | Output after limiter and post gain | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Pe | :math:`P_{e}` | Algeb | Active power output | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | Qe | :math:`Q_{e}` | Algeb | Reactive power output | | v_str | +----------+----------------------+------------+--------------------------------------+------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +----------+----------------------+------------+--------------------------------------+------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +----------+----------------------+------------+--------------------------------------+------+------------+ | vd | :math:`vd` | AliasAlgeb | Alias of v | | | +----------+----------------------+------------+--------------------------------------+------+------------+ Initialization Equations ------------------------ +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+======================+============+==================================================================================================================================================================================================================================================================+ | S1_y | :math:`y_{S_1}` | State | :math:`- I_{qcmd}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | S2_y | :math:`y_{S_2}` | State | :math:`1.0 V` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | S0_y | :math:`y_{S_0}` | State | :math:`I_{pcmd}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ L_{vpnt0} \geq V\right),\left( k_{LVG} \left(- L_{vpnt0} + V\right), \ L_{vpnt1} \geq V\right),\left( 1, \ \text{True}\right) \right)}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | :math:`\frac{I_{pcmd0} \operatorname{Indicator}{\left(y_{L_{VG}} > 0 \right)}}{y_{L_{VG}}} + \operatorname{Indicator}{\left(y_{L_{VG}} \leq 0 \right)}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | :math:`I_{qcmd0}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | :math:`\operatorname{FixPiecewise}{\left(\left( 9999 - 9999 z_{Lvplsw}, \ Z_{erox} \geq y_{S_2}\right),\left( k_{LVPL} \left(- Z_{erox} + y_{S_2}\right) - 9999 z_{Lvplsw} + 9999, \ B_{rkpt} \geq y_{S_2}\right),\left( 9999, \ \text{True}\right) \right)}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipout | :math:`I_{pout}` | Algeb | :math:`I_{pcmd} y_{L_{VG}}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | :math:`K_{hv} \left(V - V_{olim}\right)` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | :math:`HVG_{lim zi} x_{H_{VG}}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | :math:`- y_{H_{VG}} + y_{S_1}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | :math:`I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{0}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{0}` | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vd | :math:`vd` | AliasAlgeb | | +----------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +-------+-----------------+-------+----------------------------------+------------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +=======+=================+=======+==================================+==================+ | S1_y | :math:`y_{S_1}` | State | :math:`- I_{qcmd} - y_{S_1}` | :math:`T_g` | +-------+-----------------+-------+----------------------------------+------------------+ | S2_y | :math:`y_{S_2}` | State | :math:`1.0 V - y_{S_2}` | :math:`T_{fltr}` | +-------+-----------------+-------+----------------------------------+------------------+ | S0_y | :math:`y_{S_0}` | State | :math:`I_{pcmd} - y_{S_0}` | :math:`T_g` | +-------+-----------------+-------+----------------------------------+------------------+ Algebraic Equations ----------------------------- +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+======================+============+==================================================================================================================================================================================================================================================================================+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | :math:`- y_{L_{VG}} + \operatorname{FixPiecewise}{\left(\left( 0, \ L_{vpnt0} \geq V\right),\left( k_{LVG} \left(- L_{vpnt0} + V\right), \ L_{vpnt1} \geq V\right),\left( 1, \ \text{True}\right) \right)}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | :math:`- I_{pcmd} + Ipcmd_{0 LVG}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | :math:`I_{qcmd0} - I_{qcmd}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | :math:`- y_{L_{VPL}} + \operatorname{FixPiecewise}{\left(\left( 9999 - 9999 z_{Lvplsw}, \ Z_{erox} \geq y_{S_2}\right),\left( k_{LVPL} \left(- Z_{erox} + y_{S_2}\right) - 9999 z_{Lvplsw} + 9999, \ B_{rkpt} \geq y_{S_2}\right),\left( 9999, \ \text{True}\right) \right)}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipout | :math:`I_{pout}` | Algeb | :math:`- I_{pout} + y_{L_{VG}} y_{S_0}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | :math:`K_{hv} \left(V - V_{olim}\right) - x_{H_{VG}}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | :math:`HVG_{lim zi} x_{H_{VG}} - y_{H_{VG}}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | :math:`- x_{I^{qout}} - y_{H_{VG}} + y_{S_1}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | :math:`I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}} - y_{I^{qout}}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{pout} V - P_{e}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`- Q_{e} + V y_{I^{qout}}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e}` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vd | :math:`vd` | AliasAlgeb | :math:`0` | +----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Name | Symbol | Equation | Type | +=============+====================+===========================================================+=================+ | p0 | :math:`P_0` | :math:`P_{0s} \gamma_{P}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0 | :math:`Q_0` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0gt0 | :math:`z_{q0>0}` | :math:`\operatorname{Indicator}{\left(Q_{0} > 0 \right)}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0lt0 | :math:`z_{q0<0}` | :math:`\operatorname{Indicator}{\left(Q_{0} < 0 \right)}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Ipcmd0 | :math:`I_{pcmd0}` | :math:`\frac{P_{0}}{V}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Iqcmd0 | :math:`I_{qcmd0}` | :math:`- \frac{Q_{0}}{V}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Ipcmd0_LVG | :math:`Ipcmd0_LVG` | :math:`I_{pcmd}` | PostInitService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | kLVG | :math:`k_{LVG}` | :math:`\frac{1}{- L_{vpnt0} + L_{vpnt1}}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | kLVPL | :math:`k_{LVPL}` | :math:`\frac{L_{vpl1} z_{Lvplsw}}{B_{rkpt} - Z_{erox}}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ Discretes ----------- +------------+------------------------+----------------+----------------+ | Name | Symbol | Type | Info | +============+========================+================+================+ | S1_lim | :math:`lim_{S_1}` | AntiWindupRate | Limiter in Lag | +------------+------------------------+----------------+----------------+ | S0_lim | :math:`lim_{S_0}` | AntiWindupRate | Limiter in Lag | +------------+------------------------+----------------+----------------+ | HVG_lim | :math:`lim_{H_{VG}}` | HardLimiter | | +------------+------------------------+----------------+----------------+ | Iqout_lim | :math:`lim_{I^{qout}}` | HardLimiter | | +------------+------------------------+----------------+----------------+ Blocks ------- +--------+------------------+-------------------+------------------------------------+ | Name | Symbol | Type | Info | +========+==================+===================+====================================+ | LVG | :math:`L_{VG}` | Piecewise | Ip gain during low voltage | +--------+------------------+-------------------+------------------------------------+ | S1 | :math:`S_1` | LagAntiWindupRate | Iqcmd delay | +--------+------------------+-------------------+------------------------------------+ | S2 | :math:`S_2` | Lag | Voltage filter with no anti-windup | +--------+------------------+-------------------+------------------------------------+ | LVPL | :math:`L_{VPL}` | Piecewise | Low voltage Ipcmd upper limit | +--------+------------------+-------------------+------------------------------------+ | S0 | :math:`S_0` | LagAntiWindupRate | | +--------+------------------+-------------------+------------------------------------+ | HVG | :math:`H_{VG}` | GainLimiter | High voltage gain block | +--------+------------------+-------------------+------------------------------------+ | Iqout | :math:`I^{qout}` | GainLimiter | Iq output block | +--------+------------------+-------------------+------------------------------------+ Config Fields in [REGCA1] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGCP1: -------------------------------------------------------------------------------- REGCP1 -------------------------------------------------------------------------------- Renewable energy generator model (REGC_A) with PLL. A PLL device can be specified for estimating the phase angle at the coupling bus through the ``pll`` parameter: - If ``pll`` is not given, the accurate bus angle will be used. - If ``pll`` is not a valid PLL device, the program will error out. - The program does not check if the provided ``pll`` actually measures the bus on which the converter is at. One needs to carefully tune the PLL parameters to match the desired performance. All other remarks for ``REGCA1`` apply. 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` | Model MVA base | 100 | *MVA* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Tg | :math:`T_g` | converter time const. | 0.100 | *s* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Rrpwr | :math:`R_{rpwr}` | Low voltage power logic (LVPL) ramp limit | 10 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Brkpt | :math:`B_{rkpt}` | LVPL characteristic voltage 2 | 1 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Zerox | :math:`Z_{erox}` | LVPL characteristic voltage 1 | 0.500 | *p.u* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvplsw | :math:`z_{Lvplsw}` | Low volt. P logic: 1-enable, 0-disable | 1 | *bool* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpl1 | :math:`L_{vpl1}` | LVPL gain at Brkpt | 1 | *p.u* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Volim | :math:`V_{olim}` | Voltage lim for high volt. reactive current mgnt. | 1.200 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpnt1 | :math:`L_{vpnt1}` | High volt. point for low volt. active current mgnt. | 0.800 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Lvpnt0 | :math:`L_{vpnt0}` | Low volt. point for low volt. active current mgnt. | 0.400 | *p.u.* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iolim | :math:`I_{olim}` | lower current limit for high volt. reactive current mgnt. | -1.500 | *p.u. (mach base)* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Tfltr | :math:`T_{fltr}` | Voltage filter T const for low volt. active current mgnt. | 0.100 | *s* | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Khv | :math:`K_{hv}` | Overvolt. compensation gain in high volt. reactive current mgnt. | 0.700 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iqrmax | :math:`I_{qrmax}` | Upper limit on the ROC for reactive current | 1 | *p.u.* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Iqrmin | :math:`I_{qrmin}` | Lower limit on the ROC for reactive current | -1 | *p.u.* | current | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | Accel | :math:`A_{ccel}` | Acceleration factor | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | pll | | Phase-lock loop device idx | | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | ra | :math:`r_a` | | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ | xs | :math:`x_s` | | 0 | | | +---------+--------------------+------------------------------------------------------------------+---------+--------------------+------------+ Variables --------- +----------+----------------------+----------+--------------------------------------+------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+======================+==========+======================================+======+============+ | S1_y | :math:`y_{S_1}` | State | State in lag TF | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | S2_y | :math:`y_{S_2}` | State | State in lag transfer function | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | S0_y | :math:`y_{S_0}` | State | State in lag TF | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | am | :math:`\theta_{m}` | ExtState | Measured angle | | | +----------+----------------------+----------+--------------------------------------+------+------------+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | Output of piecewise | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | current component for active power | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | current component for reactive power | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | Output of piecewise | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Ipout | :math:`I_{pout}` | Algeb | Output Ip current | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | Value before limiter | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | Output after limiter and post gain | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | Value before limiter | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | Output after limiter and post gain | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Pe | :math:`P_{e}` | Algeb | Active power output | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | Qe | :math:`Q_{e}` | Algeb | Reactive power output | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +----------+----------------------+----------+--------------------------------------+------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +----------+----------------------+----------+--------------------------------------+------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +----------+----------------------+----------+--------------------------------------+------+------------+ Initialization Equations ------------------------ +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+======================+==========+==================================================================================================================================================================================================================================================================+ | S1_y | :math:`y_{S_1}` | State | :math:`- I_{qcmd}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | S2_y | :math:`y_{S_2}` | State | :math:`1.0 V` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | S0_y | :math:`y_{S_0}` | State | :math:`I_{pcmd}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | am | :math:`\theta_{m}` | ExtState | | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | :math:`\operatorname{FixPiecewise}{\left(\left( 0, \ L_{vpnt0} \geq V\right),\left( k_{LVG} \left(- L_{vpnt0} + V\right), \ L_{vpnt1} \geq V\right),\left( 1, \ \text{True}\right) \right)}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | :math:`\frac{I_{pcmd0} \operatorname{Indicator}{\left(y_{L_{VG}} > 0 \right)}}{y_{L_{VG}}} + \operatorname{Indicator}{\left(y_{L_{VG}} \leq 0 \right)}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | :math:`I_{qcmd0}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | :math:`\operatorname{FixPiecewise}{\left(\left( 9999 - 9999 z_{Lvplsw}, \ Z_{erox} \geq y_{S_2}\right),\left( k_{LVPL} \left(- Z_{erox} + y_{S_2}\right) - 9999 z_{Lvplsw} + 9999, \ B_{rkpt} \geq y_{S_2}\right),\left( 9999, \ \text{True}\right) \right)}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipout | :math:`I_{pout}` | Algeb | :math:`I_{pcmd} y_{L_{VG}}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | :math:`K_{hv} \left(V - V_{olim}\right)` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | :math:`HVG_{lim zi} x_{H_{VG}}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | :math:`- y_{H_{VG}} + y_{S_1}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | :math:`I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{0}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{0}` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`0` | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +----------+----------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +-------+--------------------+----------+----------------------------------+------------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +=======+====================+==========+==================================+==================+ | S1_y | :math:`y_{S_1}` | State | :math:`- I_{qcmd} - y_{S_1}` | :math:`T_g` | +-------+--------------------+----------+----------------------------------+------------------+ | S2_y | :math:`y_{S_2}` | State | :math:`1.0 V - y_{S_2}` | :math:`T_{fltr}` | +-------+--------------------+----------+----------------------------------+------------------+ | S0_y | :math:`y_{S_0}` | State | :math:`I_{pcmd} - y_{S_0}` | :math:`T_g` | +-------+--------------------+----------+----------------------------------+------------------+ | am | :math:`\theta_{m}` | ExtState | :math:`0` | | +-------+--------------------+----------+----------------------------------+------------------+ Algebraic Equations ----------------------------- +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +==========+======================+==========+==================================================================================================================================================================================================================================================================================+ | LVG_y | :math:`y_{L_{VG}}` | Algeb | :math:`- y_{L_{VG}} + \operatorname{FixPiecewise}{\left(\left( 0, \ L_{vpnt0} \geq V\right),\left( k_{LVG} \left(- L_{vpnt0} + V\right), \ L_{vpnt1} \geq V\right),\left( 1, \ \text{True}\right) \right)}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipcmd | :math:`I_{pcmd}` | Algeb | :math:`- I_{pcmd} + Ipcmd_{0 LVG}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqcmd | :math:`I_{qcmd}` | Algeb | :math:`I_{qcmd0} - I_{qcmd}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LVPL_y | :math:`y_{L_{VPL}}` | Algeb | :math:`- y_{L_{VPL}} + \operatorname{FixPiecewise}{\left(\left( 9999 - 9999 z_{Lvplsw}, \ Z_{erox} \geq y_{S_2}\right),\left( k_{LVPL} \left(- Z_{erox} + y_{S_2}\right) - 9999 z_{Lvplsw} + 9999, \ B_{rkpt} \geq y_{S_2}\right),\left( 9999, \ \text{True}\right) \right)}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Ipout | :math:`I_{pout}` | Algeb | :math:`- I_{pout} + y_{L_{VG}} y_{S_0}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_x | :math:`x_{H_{VG}}` | Algeb | :math:`K_{hv} \left(V - V_{olim}\right) - x_{H_{VG}}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | HVG_y | :math:`y_{H_{VG}}` | Algeb | :math:`HVG_{lim zi} x_{H_{VG}} - y_{H_{VG}}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_x | :math:`x_{I^{qout}}` | Algeb | :math:`- x_{I^{qout}} - y_{H_{VG}} + y_{S_1}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqout_y | :math:`y_{I^{qout}}` | Algeb | :math:`I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}} - y_{I^{qout}}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{pout} V_{d} - P_{e} + V_{q} y_{I^{qout}}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`- I_{pout} V_{q} - Q_{e} + V_{d} y_{I^{qout}}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V \cos{\left(z_{ heta m} \left(\theta - \theta_{m}\right) \right)} - V_{d}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V \sin{\left(z_{ heta m} \left(\theta - \theta_{m}\right) \right)} - V_{q}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e}` | +----------+----------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Name | Symbol | Equation | Type | +=============+====================+===========================================================+=================+ | p0 | :math:`P_0` | :math:`P_{0s} \gamma_{P}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0 | :math:`Q_0` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0gt0 | :math:`z_{q0>0}` | :math:`\operatorname{Indicator}{\left(Q_{0} > 0 \right)}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | q0lt0 | :math:`z_{q0<0}` | :math:`\operatorname{Indicator}{\left(Q_{0} < 0 \right)}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Ipcmd0 | :math:`I_{pcmd0}` | :math:`\frac{P_{0}}{V}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Iqcmd0 | :math:`I_{qcmd0}` | :math:`- \frac{Q_{0}}{V}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | Ipcmd0_LVG | :math:`Ipcmd0_LVG` | :math:`I_{pcmd}` | PostInitService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | kLVG | :math:`k_{LVG}` | :math:`\frac{1}{- L_{vpnt0} + L_{vpnt1}}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ | kLVPL | :math:`k_{LVPL}` | :math:`\frac{L_{vpl1} z_{Lvplsw}}{B_{rkpt} - Z_{erox}}` | ConstService | +-------------+--------------------+-----------------------------------------------------------+-----------------+ Discretes ----------- +------------+------------------------+----------------+----------------+ | Name | Symbol | Type | Info | +============+========================+================+================+ | S1_lim | :math:`lim_{S_1}` | AntiWindupRate | Limiter in Lag | +------------+------------------------+----------------+----------------+ | S0_lim | :math:`lim_{S_0}` | AntiWindupRate | Limiter in Lag | +------------+------------------------+----------------+----------------+ | HVG_lim | :math:`lim_{H_{VG}}` | HardLimiter | | +------------+------------------------+----------------+----------------+ | Iqout_lim | :math:`lim_{I^{qout}}` | HardLimiter | | +------------+------------------------+----------------+----------------+ Blocks ------- +--------+------------------+-------------------+------------------------------------+ | Name | Symbol | Type | Info | +========+==================+===================+====================================+ | LVG | :math:`L_{VG}` | Piecewise | Ip gain during low voltage | +--------+------------------+-------------------+------------------------------------+ | S1 | :math:`S_1` | LagAntiWindupRate | Iqcmd delay | +--------+------------------+-------------------+------------------------------------+ | S2 | :math:`S_2` | Lag | Voltage filter with no anti-windup | +--------+------------------+-------------------+------------------------------------+ | LVPL | :math:`L_{VPL}` | Piecewise | Low voltage Ipcmd upper limit | +--------+------------------+-------------------+------------------------------------+ | S0 | :math:`S_0` | LagAntiWindupRate | | +--------+------------------+-------------------+------------------------------------+ | HVG | :math:`H_{VG}` | GainLimiter | High voltage gain block | +--------+------------------+-------------------+------------------------------------+ | Iqout | :math:`I^{qout}` | GainLimiter | Iq output block | +--------+------------------+-------------------+------------------------------------+ Config Fields in [REGCP1] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGCV1: -------------------------------------------------------------------------------- REGCV1 -------------------------------------------------------------------------------- Voltage-controlled VSC with VSG control. Includes double-loop PI control and swing equation based VSG control. Voltage measurement delays are ignored. Notes ----- - Extreme care needs to be taken when coordinating the PI controller parameters. - Setting the primary frequency control droop ``kw`` can improve small-signal stability. - The droop ``kv`` for voltage control (pu voltage / pu Q change), if used, needs to be chosen carefully. In most cases, ``kv`` should be a very small positive value if not zero. 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 | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | coi2 | | center of inertia 2 index | | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Sn | :math:`S_n` | Model MVA base | 100 | *MVA* | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | fn | :math:`f` | rated frequency | 60 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Tc | :math:`T_c` | switch time constant | 0.010 | *s* | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | kw | :math:`k_\omega` | speed droop on active power (reciprocal of droop) | 0 | *p.u.* | non_negative,ipower | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | kv | :math:`k_v` | reactive power droop on voltage | 0 | *p.u.* | non_negative,power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | M | :math:`M` | Emulated startup time constant (M=2H) | 10 | *s* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | D | :math:`D` | Emulated damping coefficient | 0 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | ra | :math:`r_a` | resistance | 0 | | z | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | xs | :math:`x_s` | reactance | 0.200 | | z | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kpvd | :math:`kp_{vd}` | vd controller proportional gain | 0.500 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kivd | :math:`ki_{vd}` | vd controller integral gain | 0.020 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kpvq | :math:`kp_{vq}` | vq controller proportional gain | 0.500 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kivq | :math:`ki_{vq}` | vq controller integral gain | 0.020 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | KpId | :math:`kp_{di}` | Id controller proportional gain | 0.200 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | KiId | :math:`ki_{di}` | Id controller integral gain | 0.010 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | KpIq | :math:`kp_{qi}` | Iq controller proportional gain | 0.200 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | KiIq | :math:`ki_{qi}` | Iq controller integral gain | 0.010 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ Variables --------- +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+======================+============+=====================================================+===========+============+ | dw | :math:`\Delta\omega` | State | delta virtual rotor speed | *pu (Hz)* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | delta | :math:`\delta` | State | virtual delta | *rad* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIId_xi | :math:`xi_{PIId}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | udLag_y | :math:`y_{udLag}` | State | State in lag transfer function | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | uqLag_y | :math:`y_{uqLag}` | State | State in lag transfer function | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | ud | :math:`ud` | AliasState | Alias of udLag_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | uq | :math:`uq` | AliasState | Alias of uqLag_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Pref2 | :math:`P_{ref2}` | Algeb | active power reference after adjusting by frequency | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vref2 | :math:`v_{ref2}` | Algeb | voltage reference after adjusted by reactive power | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | omega | :math:`\omega` | Algeb | virtual rotor speed | *pu (Hz)* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Pe | :math:`P_{e}` | Algeb | active power injection from VSC | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Qe | :math:`Q_{e}` | Algeb | reactive power injection from VSC | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Id | :math:`I_{d}` | Algeb | d-axis current | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Iq | :math:`I_{q}` | Algeb | q-axis current | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIId_y | :math:`y_{PIId}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | udref | :math:`u_{dref}` | Algeb | ud reference | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | uqref | :math:`u_{qref}` | Algeb | uq reference | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Idref | :math:`Idref` | AliasAlgeb | Alias of PIvd_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Iqref | :math:`Iqref` | AliasAlgeb | Alias of PIvq_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ Initialization Equations ------------------------ +----------+----------------------+------------+--------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+======================+============+========================================================+ | dw | :math:`\Delta\omega` | State | :math:`0` | +----------+----------------------+------------+--------------------------------------------------------+ | delta | :math:`\delta` | State | :math:`\theta` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`I_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`I_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`0.0` | +----------+----------------------+------------+--------------------------------------------------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`0.0` | +----------+----------------------+------------+--------------------------------------------------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref}` | +----------+----------------------+------------+--------------------------------------------------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref}` | +----------+----------------------+------------+--------------------------------------------------------+ | ud | :math:`ud` | AliasState | | +----------+----------------------+------------+--------------------------------------------------------+ | uq | :math:`uq` | AliasState | | +----------+----------------------+------------+--------------------------------------------------------+ | Pref2 | :math:`P_{ref2}` | Algeb | :math:`P_{ref} u` | +----------+----------------------+------------+--------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} u` | +----------+----------------------+------------+--------------------------------------------------------+ | omega | :math:`\omega` | Algeb | :math:`u` | +----------+----------------------+------------+--------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`v_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`v_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{ref}` | +----------+----------------------+------------+--------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{ref}` | +----------+----------------------+------------+--------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`I_{d0} + kp_{vd} \left(V_{d} - v_{ref2}\right)` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`I_{q0} + V_{q} kp_{vq}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`kp_{di} \left(I_{d} - y_{PIvd}\right)` | +----------+----------------------+------------+--------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`kp_{qi} \left(I_{q} - y_{PIvq}\right)` | +----------+----------------------+------------+--------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`u_{dref0}` | +----------+----------------------+------------+--------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`u_{qref0}` | +----------+----------------------+------------+--------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ Differential Equations ----------------------------- +----------+----------------------+------------+-----------------------------------------------+-------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+======================+============+===============================================+=============+ | dw | :math:`\Delta\omega` | State | :math:`- D \Delta\omega - P_{e} + P_{ref2}` | :math:`M` | +----------+----------------------+------------+-----------------------------------------------+-------------+ | delta | :math:`\delta` | State | :math:`2 \pi \Delta\omega f` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`ki_{vd} \left(V_{d} - v_{ref2}\right)` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`V_{q} ki_{vq}` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`ki_{di} \left(I_{d} - y_{PIvd}\right)` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`ki_{qi} \left(I_{q} - y_{PIvq}\right)` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref} - y_{udLag}` | :math:`T_c` | +----------+----------------------+------------+-----------------------------------------------+-------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref} - y_{uqLag}` | :math:`T_c` | +----------+----------------------+------------+-----------------------------------------------+-------------+ | ud | :math:`ud` | AliasState | :math:`0` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ | uq | :math:`uq` | AliasState | :math:`0` | | +----------+----------------------+------------+-----------------------------------------------+-------------+ Algebraic Equations ----------------------------- +---------+------------------+------------+----------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +=========+==================+============+======================================================================+ | Pref2 | :math:`P_{ref2}` | Algeb | :math:`- P_{ref2} + P_{ref} u - \Delta\omega k_{\omega}` | +---------+------------------+------------+----------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} + k_{v} \left(- Q_{e} + Q_{ref} u\right) - v_{ref2}` | +---------+------------------+------------+----------------------------------------------------------------------+ | omega | :math:`\omega` | Algeb | :math:`\Delta\omega - \omega + 1` | +---------+------------------+------------+----------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V u \cos{\left(\delta - \theta \right)} - V_{d}` | +---------+------------------+------------+----------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V u \sin{\left(\delta - \theta \right)} - V_{q}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{d} V_{d} + I_{q} V_{q} - P_{e}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`I_{d} V_{q} - I_{q} V_{d} - Q_{e}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - y_{udLag}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - y_{uqLag}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`kp_{vd} \left(V_{d} - v_{ref2}\right) + xi_{PIvd} - y_{PIvd}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`V_{q} kp_{vq} + xi_{PIvq} - y_{PIvq}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`kp_{di} \left(I_{d} - y_{PIvd}\right) + xi_{PIId} - y_{PIId}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`kp_{qi} \left(I_{q} - y_{PIvq}\right) + xi_{PIIq} - y_{PIIq}` | +---------+------------------+------------+----------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`- Iqref x_{s} + V_{d} - u_{dref} + y_{PIId}` | +---------+------------------+------------+----------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`Idref x_{s} + V_{q} - u_{qref} + y_{PIIq}` | +---------+------------------+------------+----------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e} u` | +---------+------------------+------------+----------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e} u` | +---------+------------------+------------+----------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | :math:`0` | +---------+------------------+------------+----------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | :math:`0` | +---------+------------------+------------+----------------------------------------------------------------------+ Services ---------- +---------+-------------------+----------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +=========+===================+==============================================+==============+ | Pref | :math:`P_{ref}` | :math:`P_{0s} \gamma_{P}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Qref | :math:`Q_{ref}` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | ixs | :math:`1/xs` | :math:`\frac{1}{x_{s}}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Id0 | :math:`I_{d0}` | :math:`\frac{P_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Iq0 | :math:`I_{q0}` | :math:`- \frac{Q_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vd0 | :math:`v_{d0}` | :math:`V u` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vq0 | :math:`v_{q0}` | :math:`0` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | udref0 | :math:`u_{dref0}` | :math:`I_{d0} r_{a} - I_{q0} x_{s} + v_{d0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | uqref0 | :math:`u_{qref0}` | :math:`I_{d0} x_{s} + I_{q0} r_{a} + v_{q0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ Blocks ------- +--------+---------------+--------------+------+ | Name | Symbol | Type | Info | +========+===============+==============+======+ | PIvd | :math:`PIvd` | PIController | | +--------+---------------+--------------+------+ | PIvq | :math:`PIvq` | PIController | | +--------+---------------+--------------+------+ | PIId | :math:`PIId` | PIController | | +--------+---------------+--------------+------+ | PIIq | :math:`PIIq` | PIController | | +--------+---------------+--------------+------+ | udLag | :math:`udLag` | Lag | | +--------+---------------+--------------+------+ | uqLag | :math:`uqLag` | Lag | | +--------+---------------+--------------+------+ Config Fields in [REGCV1] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGCV2: -------------------------------------------------------------------------------- REGCV2 -------------------------------------------------------------------------------- Voltage-controlled VSC with VSG control. The inner-loop current PI controllers are replaced with lag transfer functions. Notes ----- To avoid small-signal stability issues, one take extreme care in setting the PI control gains ``Kpvd``, ``Kivd``, ``Kpvq``, and ``Kivq``, and the emulated inertia ``M`` and damping ``D``. 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 | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | coi2 | | center of inertia 2 index | | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Sn | :math:`S_n` | Model MVA base | 100 | *MVA* | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | fn | :math:`f` | rated frequency | 60 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Tc | :math:`T_c` | switch time constant | 0.010 | *s* | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | kw | :math:`k_\omega` | speed droop on active power (reciprocal of droop) | 0 | *p.u.* | non_negative,ipower | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | kv | :math:`k_v` | reactive power droop on voltage | 0 | *p.u.* | non_negative,power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | M | :math:`M` | Emulated startup time constant (M=2H) | 10 | *s* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | D | :math:`D` | Emulated damping coefficient | 0 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | ra | :math:`r_a` | resistance | 0 | | z | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | xs | :math:`x_s` | reactance | 0.200 | | z | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kpvd | :math:`kp_{vd}` | vd controller proportional gain | 0.500 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kivd | :math:`ki_{vd}` | vd controller integral gain | 0.020 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kpvq | :math:`kp_{vq}` | vq controller proportional gain | 0.500 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Kivq | :math:`ki_{vq}` | vq controller integral gain | 0.020 | *p.u.* | power | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Tiq | :math:`T_{Iq}` | | 0.010 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ | Tid | :math:`T_{Id}` | | 0.010 | | | +---------+------------------+---------------------------------------------------+---------+--------+---------------------+ Variables --------- +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +==========+======================+============+=====================================================+===========+============+ | dw | :math:`\Delta\omega` | State | delta virtual rotor speed | *pu (Hz)* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | delta | :math:`\delta` | State | virtual delta | *rad* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | Integrator output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | LGId_y | :math:`y_{LGId}` | State | State in lag transfer function | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | LGIq_y | :math:`y_{LGIq}` | State | State in lag transfer function | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Pref2 | :math:`P_{ref2}` | Algeb | active power reference after adjusting by frequency | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vref2 | :math:`v_{ref2}` | Algeb | voltage reference after adjusted by reactive power | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | omega | :math:`\omega` | Algeb | virtual rotor speed | *pu (Hz)* | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Pe | :math:`P_{e}` | Algeb | active power injection from VSC | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Qe | :math:`Q_{e}` | Algeb | reactive power injection from VSC | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Id | :math:`I_{d}` | Algeb | d-axis current | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Iq | :math:`I_{q}` | Algeb | q-axis current | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | PI output | | v_str | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Idref | :math:`Idref` | AliasAlgeb | Alias of PIvd_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ | Iqref | :math:`Iqref` | AliasAlgeb | Alias of PIvq_y | | | +----------+----------------------+------------+-----------------------------------------------------+-----------+------------+ Initialization Equations ------------------------ +----------+----------------------+------------+--------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +==========+======================+============+========================================================+ | dw | :math:`\Delta\omega` | State | :math:`0` | +----------+----------------------+------------+--------------------------------------------------------+ | delta | :math:`\delta` | State | :math:`\theta` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`I_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`I_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | LGId_y | :math:`y_{LGId}` | State | :math:`y_{PIvd}` | +----------+----------------------+------------+--------------------------------------------------------+ | LGIq_y | :math:`y_{LGIq}` | State | :math:`y_{PIvq}` | +----------+----------------------+------------+--------------------------------------------------------+ | Pref2 | :math:`P_{ref2}` | Algeb | :math:`P_{ref} u` | +----------+----------------------+------------+--------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} u` | +----------+----------------------+------------+--------------------------------------------------------+ | omega | :math:`\omega` | Algeb | :math:`u` | +----------+----------------------+------------+--------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`v_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`v_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{ref}` | +----------+----------------------+------------+--------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{ref}` | +----------+----------------------+------------+--------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d0}` | +----------+----------------------+------------+--------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{q0}` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`I_{d0} + kp_{vd} \left(V_{d} - v_{ref2}\right)` | +----------+----------------------+------------+--------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`I_{q0} + V_{q} kp_{vq}` | +----------+----------------------+------------+--------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | | +----------+----------------------+------------+--------------------------------------------------------+ Differential Equations ----------------------------- +----------+----------------------+-------+-----------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +==========+======================+=======+===============================================+================+ | dw | :math:`\Delta\omega` | State | :math:`- D \Delta\omega - P_{e} + P_{ref2}` | :math:`M` | +----------+----------------------+-------+-----------------------------------------------+----------------+ | delta | :math:`\delta` | State | :math:`2 \pi \Delta\omega f` | | +----------+----------------------+-------+-----------------------------------------------+----------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`ki_{vd} \left(V_{d} - v_{ref2}\right)` | | +----------+----------------------+-------+-----------------------------------------------+----------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`V_{q} ki_{vq}` | | +----------+----------------------+-------+-----------------------------------------------+----------------+ | LGId_y | :math:`y_{LGId}` | State | :math:`- y_{LGId} + y_{PIvd}` | :math:`T_{Id}` | +----------+----------------------+-------+-----------------------------------------------+----------------+ | LGIq_y | :math:`y_{LGIq}` | State | :math:`- y_{LGIq} + y_{PIvq}` | :math:`T_{Iq}` | +----------+----------------------+-------+-----------------------------------------------+----------------+ Algebraic Equations ----------------------------- +---------+------------------+------------+----------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +=========+==================+============+======================================================================+ | Pref2 | :math:`P_{ref2}` | Algeb | :math:`- P_{ref2} + P_{ref} u - \Delta\omega k_{\omega}` | +---------+------------------+------------+----------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} + k_{v} \left(- Q_{e} + Q_{ref} u\right) - v_{ref2}` | +---------+------------------+------------+----------------------------------------------------------------------+ | omega | :math:`\omega` | Algeb | :math:`\Delta\omega - \omega + 1` | +---------+------------------+------------+----------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V u \cos{\left(\delta - \theta \right)} - V_{d}` | +---------+------------------+------------+----------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V u \sin{\left(\delta - \theta \right)} - V_{q}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{d} V_{d} + I_{q} V_{q} - P_{e}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`I_{d} V_{q} - I_{q} V_{d} - Q_{e}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`- I_{d} + y_{LGId}` | +---------+------------------+------------+----------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`- I_{q} + y_{LGIq}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`kp_{vd} \left(V_{d} - v_{ref2}\right) + xi_{PIvd} - y_{PIvd}` | +---------+------------------+------------+----------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`V_{q} kp_{vq} + xi_{PIvq} - y_{PIvq}` | +---------+------------------+------------+----------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e} u` | +---------+------------------+------------+----------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e} u` | +---------+------------------+------------+----------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | :math:`0` | +---------+------------------+------------+----------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | :math:`0` | +---------+------------------+------------+----------------------------------------------------------------------+ Services ---------- +-------+-----------------+-------------------------------+--------------+ | Name | Symbol | Equation | Type | +=======+=================+===============================+==============+ | Pref | :math:`P_{ref}` | :math:`P_{0s} \gamma_{P}` | ConstService | +-------+-----------------+-------------------------------+--------------+ | Qref | :math:`Q_{ref}` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +-------+-----------------+-------------------------------+--------------+ | ixs | :math:`1/xs` | :math:`\frac{1}{x_{s}}` | ConstService | +-------+-----------------+-------------------------------+--------------+ | Id0 | :math:`I_{d0}` | :math:`\frac{P_{ref} u}{V}` | ConstService | +-------+-----------------+-------------------------------+--------------+ | Iq0 | :math:`I_{q0}` | :math:`- \frac{Q_{ref} u}{V}` | ConstService | +-------+-----------------+-------------------------------+--------------+ | vd0 | :math:`v_{d0}` | :math:`V u` | ConstService | +-------+-----------------+-------------------------------+--------------+ | vq0 | :math:`v_{q0}` | :math:`0` | ConstService | +-------+-----------------+-------------------------------+--------------+ Blocks ------- +-------+--------------+--------------+------+ | Name | Symbol | Type | Info | +=======+==============+==============+======+ | PIvd | :math:`PIvd` | PIController | | +-------+--------------+--------------+------+ | PIvq | :math:`PIvq` | PIController | | +-------+--------------+--------------+------+ | LGId | :math:`LGId` | Lag | | +-------+--------------+--------------+------+ | LGIq | :math:`LGIq` | Lag | | +-------+--------------+--------------+------+ Config Fields in [REGCV2] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGF1: -------------------------------------------------------------------------------- REGF1 -------------------------------------------------------------------------------- Grid-forming inverter using droop. Implementation of EPRI Memorandum D. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS" 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` | Model MVA base | 100 | *MVA* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | rf | :math:`r_a` | resistance | 0 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | xf | :math:`x_s` | reactance | 0.200 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Vdip | :math:`V_{dip}` | V threshold to freeze states | 0.800 | *p.u.* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tfrz | :math:`T_{frz}` | Time to keep state frozen | 0 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | PQFLAG | | P/Q priority flag; 0-Q priority, 1-P priority | 1 | *bool* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | fn | :math:`f` | rated frequency | 60 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmax | :math:`\Delta \omega_{max}` | maximum value of frequency deviation | 75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmin | :math:`\Delta \omega_{min}` | minimum value of frequency deviation | -75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | wdrp | :math:`\omega_{drp}` | frequency droop percentage | 0.033 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qdrp | :math:`Q_{drp}` | Voltage droop percentage | 0.045 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tr | :math:`T_c` | transducer time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Te | :math:`T_e` | ouput state time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPi | :math:`K_{Pi}` | current control proportional gain | 0.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIi | :math:`K_{Ii}` | current control integral gain | 20 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPv | :math:`K_{Pv}` | voltage control proportional gain | 3 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIv | :math:`K_{Iv}` | voltage control integral gain | 10 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmax | :math:`P_{max}` | max. active power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmin | :math:`P_{min}` | min. active power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPplim | :math:`K_{Pplim}` | Kp for P limits | 5 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIplim | :math:`K_{Iplim}` | KI for P limits | 30 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmax | :math:`Q_{max}` | max. reactive power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmin | :math:`Q_{min}` | min. reactive power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPqlim | :math:`K_{Pqlim}` | Kp for Q limits | 0.100 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIqlim | :math:`K_{Iqlim}` | KI for Q limits | 1.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tpm | :math:`T_{pm}` | power signal input delay (3 \Delta t) | 0.025 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ Variables --------- +------------+---------------------+------------+------------------------------------+-------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +============+=====================+============+====================================+=======+============+ | Psen_y | :math:`y_{Psen}` | State | State in lag transfer function | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Qsen_y | :math:`y_{Qsen}` | State | State in lag transfer function | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Psig_y | :math:`y_{Psig}` | State | State in lag TF | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Qsig_y | :math:`y_{Qsig}` | State | State in lag TF | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | delta | :math:`\delta` | State | virtual delta | *rad* | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIId_xi | :math:`xi_{PIId}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | Integrator output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | udLag_y | :math:`y_{udLag}` | State | State in lag transfer function | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | uqLag_y | :math:`y_{uqLag}` | State | State in lag transfer function | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | ud | :math:`ud` | AliasState | Alias of udLag_y | | | +------------+---------------------+------------+------------------------------------+-------+------------+ | uq | :math:`uq` | AliasState | Alias of uqLag_y | | | +------------+---------------------+------------+------------------------------------+-------+------------+ | Paux | :math:`Paux` | Algeb | | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Qaux | :math:`Qaux` | Algeb | | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Pe | :math:`P_{e}` | Algeb | active power injection from VSC | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Qe | :math:`Q_{e}` | Algeb | reactive power injection from VSC | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Id | :math:`I_{d}` | Algeb | d-axis current | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | Iq | :math:`I_{q}` | Algeb | q-axis current | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | dw_x | :math:`x_{dw}` | Algeb | Value before limiter | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | dw_y | :math:`y_{dw}` | Algeb | Output after limiter and post gain | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | vref2 | :math:`v_{ref2}` | Algeb | voltage reference after droop | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIId_y | :math:`y_{PIId}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | PI output | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | udref | :math:`u_{dref}` | Algeb | ud reference | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | uqref | :math:`u_{qref}` | Algeb | uq reference | | v_str | +------------+---------------------+------------+------------------------------------+-------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +------------+---------------------+------------+------------------------------------+-------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +------------+---------------------+------------+------------------------------------+-------+------------+ | Idref | :math:`Idref` | AliasAlgeb | Alias of PIvd_y | | | +------------+---------------------+------------+------------------------------------+-------+------------+ | Iqref | :math:`Iqref` | AliasAlgeb | Alias of PIvq_y | | | +------------+---------------------+------------+------------------------------------+-------+------------+ Initialization Equations ------------------------ +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +============+=====================+============+================================================================================================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`y_{Psen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`y_{Qsen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | delta | :math:`\delta` | State | :math:`\theta` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`I_{d0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`I_{q0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`0.0` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`0.0` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | ud | :math:`ud` | AliasState | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | uq | :math:`uq` | AliasState | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Paux | :math:`Paux` | Algeb | :math:`0` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`0` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + y_{Psen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + y_{Qsen}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`v_{d0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`v_{q0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{ref}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{ref}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{q0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`\omega_{drp} w_{0} \left(y_{PIplim} - y_{Psen}\right)` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} u` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`I_{d0} + K_{Pv} \left(- V_{d} + v_{ref2}\right)` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`I_{q0} - K_{Pv} V_{q}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right)` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right)` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`u_{dref0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`u_{qref0}` | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | | +------------+---------------------+------------+------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +------------+---------------------+------------+------------------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +============+=====================+============+======================================================+================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e} - y_{Psen}` | :math:`T_c` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e} - y_{Qsen}` | :math:`T_c` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen} - y_{Psig}` | :math:`T_{pm}` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen} - y_{Qsig}` | :math:`T_{pm}` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`K_{Iplim} \left(- y_{Psen} + y_{Psig}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`K_{Iqlim} \left(- y_{Qsen} + y_{Qsig}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | delta | :math:`\delta` | State | :math:`y_{dw}` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`K_{Iv} \left(- V_{d} + v_{ref2}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`- K_{Iv} V_{q}` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`K_{Ii} \left(- I_{d} + y_{PIvd}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`K_{Ii} \left(- I_{q} + y_{PIvq}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref} - y_{udLag}` | :math:`T_e` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref} - y_{uqLag}` | :math:`T_e` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | ud | :math:`ud` | AliasState | :math:`0` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | uq | :math:`uq` | AliasState | :math:`0` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ Algebraic Equations ----------------------------- +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +===========+====================+============+=========================================================================================================+ | Paux | :math:`Paux` | Algeb | :math:`Paux` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`Qaux` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + xi_{PIplim} - y_{PIplim}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + xi_{PIqlim} - y_{PIqlim}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V u \cos{\left(\delta - \theta \right)} - V_{d}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V u \sin{\left(\delta - \theta \right)} - V_{q}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{d} V_{d} + I_{q} V_{q} - P_{e}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`I_{d} V_{q} - I_{q} V_{d} - Q_{e}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - y_{udLag}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - y_{uqLag}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`\omega_{drp} w_{0} \left(y_{PIplim} - y_{Psen}\right) - x_{dw}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw} - y_{dw}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`Q_{drp} \left(u y_{PIqlim} - y_{Qsen}\right) + V_{ref} - v_{ref2}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`K_{Pv} \left(- V_{d} + v_{ref2}\right) + xi_{PIvd} - y_{PIvd}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`- K_{Pv} V_{q} + xi_{PIvq} - y_{PIvq}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right) + xi_{PIId} - y_{PIId}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right) + xi_{PIIq} - y_{PIIq}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - u_{dref} + y_{PIId}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - u_{qref} + y_{PIIq}` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e} u` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e} u` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | :math:`0` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | :math:`0` | +-----------+--------------------+------------+---------------------------------------------------------------------------------------------------------+ Services ---------- +---------+-------------------+----------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +=========+===================+==============================================+==============+ | Pref | :math:`P_{ref}` | :math:`P_{0s} \gamma_{P}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Qref | :math:`Q_{ref}` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | w0 | :math:`w0` | :math:`2 \pi f` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | ixf | :math:`1/xf` | :math:`\frac{1}{x_{s}}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Id0 | :math:`I_{d0}` | :math:`\frac{P_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Iq0 | :math:`I_{q0}` | :math:`- \frac{Q_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vd0 | :math:`v_{d0}` | :math:`V u` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vq0 | :math:`v_{q0}` | :math:`0` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | udref0 | :math:`u_{dref0}` | :math:`I_{d0} r_{a} - I_{q0} x_{s} + v_{d0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | uqref0 | :math:`u_{qref0}` | :math:`I_{d0} x_{s} + I_{q0} r_{a} + v_{q0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ Discretes ----------- +-----------+--------------------+-------------+----------------+ | Name | Symbol | Type | Info | +===========+====================+=============+================+ | Psig_lim | :math:`lim_{Psig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | Qsig_lim | :math:`lim_{Qsig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | dw_lim | :math:`lim_{dw}` | HardLimiter | | +-----------+--------------------+-------------+----------------+ Blocks ------- +---------+----------------+---------------+------+ | Name | Symbol | Type | Info | +=========+================+===============+======+ | Psen | :math:`Psen` | Lag | | +---------+----------------+---------------+------+ | Qsen | :math:`Qsen` | Lag | | +---------+----------------+---------------+------+ | Psig | :math:`Psig` | LagAntiWindup | | +---------+----------------+---------------+------+ | Qsig | :math:`Qsig` | LagAntiWindup | | +---------+----------------+---------------+------+ | PIplim | :math:`PIplim` | PIController | | +---------+----------------+---------------+------+ | PIqlim | :math:`PIqlim` | PIController | | +---------+----------------+---------------+------+ | dw | :math:`dw` | GainLimiter | | +---------+----------------+---------------+------+ | PIvd | :math:`PIvd` | PIController | | +---------+----------------+---------------+------+ | PIvq | :math:`PIvq` | PIController | | +---------+----------------+---------------+------+ | PIId | :math:`PIId` | PIController | | +---------+----------------+---------------+------+ | PIIq | :math:`PIIq` | PIController | | +---------+----------------+---------------+------+ | udLag | :math:`udLag` | Lag | | +---------+----------------+---------------+------+ | uqLag | :math:`uqLag` | Lag | | +---------+----------------+---------------+------+ Config Fields in [REGF1] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGF2: -------------------------------------------------------------------------------- REGF2 -------------------------------------------------------------------------------- Grid-forming inverter with VSM control. Implementation of EPRI Memorandum D. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS" 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` | Model MVA base | 100 | *MVA* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | rf | :math:`r_a` | resistance | 0 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | xf | :math:`x_s` | reactance | 0.200 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Vdip | :math:`V_{dip}` | V threshold to freeze states | 0.800 | *p.u.* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tfrz | :math:`T_{frz}` | Time to keep state frozen | 0 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | PQFLAG | | P/Q priority flag; 0-Q priority, 1-P priority | 1 | *bool* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | fn | :math:`f` | rated frequency | 60 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmax | :math:`\Delta \omega_{max}` | maximum value of frequency deviation | 75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmin | :math:`\Delta \omega_{min}` | minimum value of frequency deviation | -75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | wdrp | :math:`\omega_{drp}` | frequency droop percentage | 0.033 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qdrp | :math:`Q_{drp}` | Voltage droop percentage | 0.045 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tr | :math:`T_c` | transducer time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Te | :math:`T_e` | ouput state time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPi | :math:`K_{Pi}` | current control proportional gain | 0.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIi | :math:`K_{Ii}` | current control integral gain | 20 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPv | :math:`K_{Pv}` | voltage control proportional gain | 3 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIv | :math:`K_{Iv}` | voltage control integral gain | 10 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmax | :math:`P_{max}` | max. active power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmin | :math:`P_{min}` | min. active power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPplim | :math:`K_{Pplim}` | Kp for P limits | 5 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIplim | :math:`K_{Iplim}` | KI for P limits | 30 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmax | :math:`Q_{max}` | max. reactive power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmin | :math:`Q_{min}` | min. reactive power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPqlim | :math:`K_{Pqlim}` | Kp for Q limits | 0.100 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIqlim | :math:`K_{Iqlim}` | KI for Q limits | 1.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tpm | :math:`T_{pm}` | power signal input delay (3 \Delta t) | 0.025 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | mf | :math:`M_f` | VSM inertia constant | 0.150 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dd | :math:`d_d` | VSM damping factor | 0.110 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | pll | | PLL device idx (optional) | | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ Variables --------- +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +============+=============================+============+====================================+=======+============+ | Psen_y | :math:`y_{Psen}` | State | State in lag transfer function | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Qsen_y | :math:`y_{Qsen}` | State | State in lag transfer function | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Psig_y | :math:`y_{Psig}` | State | State in lag TF | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Qsig_y | :math:`y_{Qsig}` | State | State in lag TF | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | delta | :math:`\delta` | State | virtual delta | *rad* | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | INTw_y | :math:`y_{INTw}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIId_xi | :math:`xi_{PIId}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | Integrator output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | udLag_y | :math:`y_{udLag}` | State | State in lag transfer function | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | uqLag_y | :math:`y_{uqLag}` | State | State in lag transfer function | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | ud | :math:`ud` | AliasState | Alias of udLag_y | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | uq | :math:`uq` | AliasState | Alias of uqLag_y | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Paux | :math:`Paux` | Algeb | | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Qaux | :math:`Qaux` | Algeb | | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Pe | :math:`P_{e}` | Algeb | active power injection from VSC | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Qe | :math:`Q_{e}` | Algeb | reactive power injection from VSC | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Id | :math:`I_{d}` | Algeb | d-axis current | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Iq | :math:`I_{q}` | Algeb | q-axis current | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | wref | :math:`\omega_{ref}` | Algeb | speed ref | *pu* | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | dw_x | :math:`x_{dw}` | Algeb | Value before limiter | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | dw_y | :math:`y_{dw}` | Algeb | Output after limiter and post gain | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | vref2 | :math:`v_{ref2}` | Algeb | voltage reference after droop | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIId_y | :math:`y_{PIId}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | PI output | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | udref | :math:`u_{dref}` | Algeb | ud reference | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | uqref | :math:`u_{qref}` | Algeb | uq reference | | v_str | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | plldw | :math:`\Delta \omega_{PLL}` | ExtAlgeb | PLL measured freq. deviation | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Idref | :math:`Idref` | AliasAlgeb | Alias of PIvd_y | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ | Iqref | :math:`Iqref` | AliasAlgeb | Alias of PIvq_y | | | +------------+-----------------------------+------------+------------------------------------+-------+------------+ Initialization Equations ------------------------ +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +============+=============================+============+================================================================================================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`y_{Psen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`y_{Qsen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | delta | :math:`\delta` | State | :math:`\theta` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | INTw_y | :math:`y_{INTw}` | State | :math:`\omega_{ref}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`I_{d0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`I_{q0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`0.0` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`0.0` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | ud | :math:`ud` | AliasState | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | uq | :math:`uq` | AliasState | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Paux | :math:`Paux` | Algeb | :math:`0` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`0` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + y_{Psen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + y_{Qsen}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`v_{d0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`v_{q0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{ref}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{ref}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{q0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | wref | :math:`\omega_{ref}` | Algeb | :math:`1` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`w_{0} \left(- \omega_{ref} + y_{INTw}\right)` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`V_{ref} u` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`I_{d0} + K_{Pv} \left(- V_{d} + v_{ref2}\right)` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`I_{q0} - K_{Pv} V_{q}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right)` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right)` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`u_{dref0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`u_{qref0}` | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | plldw | :math:`\Delta \omega_{PLL}` | ExtAlgeb | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | | +------------+-----------------------------+------------+------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +============+=====================+============+============================================================================================================================+=================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e} - y_{Psen}` | :math:`T_c` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e} - y_{Qsen}` | :math:`T_c` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen} - y_{Psig}` | :math:`T_{pm}` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen} - y_{Qsig}` | :math:`T_{pm}` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`K_{Iplim} \left(- y_{Psen} + y_{Psig}\right)` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`K_{Iqlim} \left(- y_{Qsen} + y_{Qsig}\right)` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | delta | :math:`\delta` | State | :math:`y_{dw}` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | INTw_y | :math:`y_{INTw}` | State | :math:`\Delta \omega_{PLL} \omega_{drp} d_{d} + \omega_{drp} \left(y_{PIplim} - y_{Psen}\right) + \omega_{ref} - y_{INTw}` | :math:`T_{int}` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`K_{Iv} \left(- V_{d} + v_{ref2}\right)` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`- K_{Iv} V_{q}` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`K_{Ii} \left(- I_{d} + y_{PIvd}\right)` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`K_{Ii} \left(- I_{q} + y_{PIvq}\right)` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref} - y_{udLag}` | :math:`T_e` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref} - y_{uqLag}` | :math:`T_e` | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | ud | :math:`ud` | AliasState | :math:`0` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ | uq | :math:`uq` | AliasState | :math:`0` | | +------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------+-----------------+ Algebraic Equations ----------------------------- +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +===========+=============================+============+=========================================================================================================+ | Paux | :math:`Paux` | Algeb | :math:`Paux` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`Qaux` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + xi_{PIplim} - y_{PIplim}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + xi_{PIqlim} - y_{PIqlim}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V u \cos{\left(\delta - \theta \right)} - V_{d}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V u \sin{\left(\delta - \theta \right)} - V_{q}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{d} V_{d} + I_{q} V_{q} - P_{e}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`I_{d} V_{q} - I_{q} V_{d} - Q_{e}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - y_{udLag}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - y_{uqLag}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | wref | :math:`\omega_{ref}` | Algeb | :math:`1 - \omega_{ref}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`w_{0} \left(- \omega_{ref} + y_{INTw}\right) - x_{dw}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw} - y_{dw}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | vref2 | :math:`v_{ref2}` | Algeb | :math:`Q_{drp} \left(u y_{PIqlim} - y_{Qsen}\right) + V_{ref} - v_{ref2}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`K_{Pv} \left(- V_{d} + v_{ref2}\right) + xi_{PIvd} - y_{PIvd}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`- K_{Pv} V_{q} + xi_{PIvq} - y_{PIvq}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right) + xi_{PIId} - y_{PIId}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right) + xi_{PIIq} - y_{PIIq}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - u_{dref} + y_{PIId}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - u_{qref} + y_{PIIq}` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e} u` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e} u` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | plldw | :math:`\Delta \omega_{PLL}` | ExtAlgeb | :math:`0` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | :math:`0` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | :math:`0` | +-----------+-----------------------------+------------+---------------------------------------------------------------------------------------------------------+ Services ---------- +---------+-------------------+----------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +=========+===================+==============================================+==============+ | Pref | :math:`P_{ref}` | :math:`P_{0s} \gamma_{P}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Qref | :math:`Q_{ref}` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | w0 | :math:`w0` | :math:`2 \pi f` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | ixf | :math:`1/xf` | :math:`\frac{1}{x_{s}}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Id0 | :math:`I_{d0}` | :math:`\frac{P_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Iq0 | :math:`I_{q0}` | :math:`- \frac{Q_{ref} u}{V}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vd0 | :math:`v_{d0}` | :math:`V u` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | vq0 | :math:`v_{q0}` | :math:`0` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | Tint | :math:`T_{int}` | :math:`M_{f} \omega_{drp}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | udref0 | :math:`u_{dref0}` | :math:`I_{d0} r_{a} - I_{q0} x_{s} + v_{d0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ | uqref0 | :math:`u_{qref0}` | :math:`I_{d0} x_{s} + I_{q0} r_{a} + v_{q0}` | ConstService | +---------+-------------------+----------------------------------------------+--------------+ Discretes ----------- +-----------+--------------------+-------------+----------------+ | Name | Symbol | Type | Info | +===========+====================+=============+================+ | Psig_lim | :math:`lim_{Psig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | Qsig_lim | :math:`lim_{Qsig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | dw_lim | :math:`lim_{dw}` | HardLimiter | | +-----------+--------------------+-------------+----------------+ Blocks ------- +---------+----------------+---------------+------+ | Name | Symbol | Type | Info | +=========+================+===============+======+ | Psen | :math:`Psen` | Lag | | +---------+----------------+---------------+------+ | Qsen | :math:`Qsen` | Lag | | +---------+----------------+---------------+------+ | Psig | :math:`Psig` | LagAntiWindup | | +---------+----------------+---------------+------+ | Qsig | :math:`Qsig` | LagAntiWindup | | +---------+----------------+---------------+------+ | PIplim | :math:`PIplim` | PIController | | +---------+----------------+---------------+------+ | PIqlim | :math:`PIqlim` | PIController | | +---------+----------------+---------------+------+ | INTw | :math:`INTw` | Integrator | | +---------+----------------+---------------+------+ | dw | :math:`dw` | GainLimiter | | +---------+----------------+---------------+------+ | PIvd | :math:`PIvd` | PIController | | +---------+----------------+---------------+------+ | PIvq | :math:`PIvq` | PIController | | +---------+----------------+---------------+------+ | PIId | :math:`PIId` | PIController | | +---------+----------------+---------------+------+ | PIIq | :math:`PIIq` | PIController | | +---------+----------------+---------------+------+ | udLag | :math:`udLag` | Lag | | +---------+----------------+---------------+------+ | uqLag | :math:`uqLag` | Lag | | +---------+----------------+---------------+------+ Config Fields in [REGF2] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+ .. _REGF3: -------------------------------------------------------------------------------- REGF3 -------------------------------------------------------------------------------- Grid-forming inverter with dVOC. Implementation of EPRI Memorandum D. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS" 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` | Model MVA base | 100 | *MVA* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | rf | :math:`r_a` | resistance | 0 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | xf | :math:`x_s` | reactance | 0.200 | | z | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Vdip | :math:`V_{dip}` | V threshold to freeze states | 0.800 | *p.u.* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tfrz | :math:`T_{frz}` | Time to keep state frozen | 0 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | PQFLAG | | P/Q priority flag; 0-Q priority, 1-P priority | 1 | *bool* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | fn | :math:`f` | rated frequency | 60 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmax | :math:`\Delta \omega_{max}` | maximum value of frequency deviation | 75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | dwmin | :math:`\Delta \omega_{min}` | minimum value of frequency deviation | -75 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | wdrp | :math:`\omega_{drp}` | frequency droop percentage | 0.033 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qdrp | :math:`Q_{drp}` | Voltage droop percentage | 0.045 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tr | :math:`T_c` | transducer time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Te | :math:`T_e` | ouput state time constant | 0.005 | *s* | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPi | :math:`K_{Pi}` | current control proportional gain | 0.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIi | :math:`K_{Ii}` | current control integral gain | 20 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPv | :math:`K_{Pv}` | voltage control proportional gain | 3 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIv | :math:`K_{Iv}` | voltage control integral gain | 10 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmax | :math:`P_{max}` | max. active power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Pmin | :math:`P_{min}` | min. active power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPplim | :math:`K_{Pplim}` | Kp for P limits | 5 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIplim | :math:`K_{Iplim}` | KI for P limits | 30 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmax | :math:`Q_{max}` | max. reactive power | 1 | | non_negative,power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Qmin | :math:`Q_{min}` | min. reactive power | -1 | | power | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KPqlim | :math:`K_{Pqlim}` | Kp for Q limits | 0.100 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | KIqlim | :math:`K_{Iqlim}` | KI for Q limits | 1.500 | | non_negative | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | Tpm | :math:`T_{pm}` | power signal input delay (3 \Delta t) | 0.025 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammap | :math:`\gamma_P` | P ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ | gammaq | :math:`\gamma_Q` | Q ratio of linked static gen | 1 | | | +---------+-----------------------------+-----------------------------------------------+---------+--------+--------------------+ Variables --------- +------------+----------------------+------------+------------------------------------+-------+------------+ | Name | Symbol | Type | Description | Unit | Properties | +============+======================+============+====================================+=======+============+ | Psen_y | :math:`y_{Psen}` | State | State in lag transfer function | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Qsen_y | :math:`y_{Qsen}` | State | State in lag transfer function | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Psig_y | :math:`y_{Psig}` | State | State in lag TF | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Qsig_y | :math:`y_{Qsig}` | State | State in lag TF | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | delta | :math:`\delta` | State | virtual delta | *rad* | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | vref2 | :math:`vref_{2}` | State | | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIId_xi | :math:`xi_{PIId}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | Integrator output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | udLag_y | :math:`y_{udLag}` | State | State in lag transfer function | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | uqLag_y | :math:`y_{uqLag}` | State | State in lag transfer function | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | ud | :math:`ud` | AliasState | Alias of udLag_y | | | +------------+----------------------+------------+------------------------------------+-------+------------+ | uq | :math:`uq` | AliasState | Alias of uqLag_y | | | +------------+----------------------+------------+------------------------------------+-------+------------+ | Paux | :math:`Paux` | Algeb | | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Qaux | :math:`Qaux` | Algeb | | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | vd | :math:`V_{d}` | Algeb | d-axis voltage | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | vq | :math:`V_{q}` | Algeb | q-axis voltage | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Pe | :math:`P_{e}` | Algeb | active power injection from VSC | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Qe | :math:`Q_{e}` | Algeb | reactive power injection from VSC | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Id | :math:`I_{d}` | Algeb | d-axis current | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Iq | :math:`I_{q}` | Algeb | q-axis current | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | wref | :math:`\omega_{ref}` | Algeb | speed ref | *pu* | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | Vref | :math:`Vref` | Algeb | | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | dw_x | :math:`x_{dw}` | Algeb | Value before limiter | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | dw_y | :math:`y_{dw}` | Algeb | Output after limiter and post gain | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | derv | :math:`dV` | Algeb | input to voltage integrator | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIId_y | :math:`y_{PIId}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | PI output | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | udref | :math:`u_{dref}` | Algeb | ud reference | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | uqref | :math:`u_{qref}` | Algeb | uq reference | | v_str | +------------+----------------------+------------+------------------------------------+-------+------------+ | a | :math:`\theta` | ExtAlgeb | Bus voltage angle | | | +------------+----------------------+------------+------------------------------------+-------+------------+ | v | :math:`V` | ExtAlgeb | Bus voltage magnitude | | | +------------+----------------------+------------+------------------------------------+-------+------------+ | Idref | :math:`Idref` | AliasAlgeb | Alias of PIvd_y | | | +------------+----------------------+------------+------------------------------------+-------+------------+ | Iqref | :math:`Iqref` | AliasAlgeb | Alias of PIvq_y | | | +------------+----------------------+------------+------------------------------------+-------+------------+ Initialization Equations ------------------------ +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | Initial Value | +============+======================+============+================================================================================================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`y_{Psen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`y_{Qsen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | delta | :math:`\delta` | State | :math:`\theta` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | vref2 | :math:`vref_{2}` | State | :math:`V_{d}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`I_{d0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`I_{q0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`0.0` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`0.0` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | ud | :math:`ud` | AliasState | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | uq | :math:`uq` | AliasState | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Paux | :math:`Paux` | Algeb | :math:`0` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`0` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + y_{Psen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + y_{Qsen}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`v_{d0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`v_{q0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`P_{ref}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`Q_{ref}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{q0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | wref | :math:`\omega_{ref}` | Algeb | :math:`1` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Vref | :math:`Vref` | Algeb | :math:`V_{ref}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`\frac{\omega_{drp} w_{0} \left(y_{PIplim} - y_{Psen}\right)}{vref_{2}^{2}}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | derv | :math:`dV` | Algeb | :math:`0` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`I_{d0} + K_{Pv} \left(- V_{d} + vref_{2}\right)` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`I_{q0} - K_{Pv} V_{q}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right)` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right)` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`u_{dref0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`u_{qref0}` | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | | +------------+----------------------+------------+------------------------------------------------------------------------------------------------+ Differential Equations ----------------------------- +------------+---------------------+------------+------------------------------------------------------+----------------+ | Name | Symbol | Type | RHS of Equation "T x' = f(x, y)" | T (LHS) | +============+=====================+============+======================================================+================+ | Psen_y | :math:`y_{Psen}` | State | :math:`P_{e} - y_{Psen}` | :math:`T_c` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Qsen_y | :math:`y_{Qsen}` | State | :math:`P_{e} - y_{Qsen}` | :math:`T_c` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Psig_y | :math:`y_{Psig}` | State | :math:`Paux + y_{Psen} - y_{Psig}` | :math:`T_{pm}` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | Qsig_y | :math:`y_{Qsig}` | State | :math:`Qaux + y_{Qsen} - y_{Qsig}` | :math:`T_{pm}` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIplim_xi | :math:`xi_{PIplim}` | State | :math:`K_{Iplim} \left(- y_{Psen} + y_{Psig}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIqlim_xi | :math:`xi_{PIqlim}` | State | :math:`K_{Iqlim} \left(- y_{Qsen} + y_{Qsig}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | delta | :math:`\delta` | State | :math:`y_{dw}` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | vref2 | :math:`vref_{2}` | State | :math:`dV w_{0}` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIvd_xi | :math:`xi_{PIvd}` | State | :math:`K_{Iv} \left(- V_{d} + vref_{2}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIvq_xi | :math:`xi_{PIvq}` | State | :math:`- K_{Iv} V_{q}` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIId_xi | :math:`xi_{PIId}` | State | :math:`K_{Ii} \left(- I_{d} + y_{PIvd}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | PIIq_xi | :math:`xi_{PIIq}` | State | :math:`K_{Ii} \left(- I_{q} + y_{PIvq}\right)` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | udLag_y | :math:`y_{udLag}` | State | :math:`u_{dref} - y_{udLag}` | :math:`T_e` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | uqLag_y | :math:`y_{uqLag}` | State | :math:`u_{qref} - y_{uqLag}` | :math:`T_e` | +------------+---------------------+------------+------------------------------------------------------+----------------+ | ud | :math:`ud` | AliasState | :math:`0` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ | uq | :math:`uq` | AliasState | :math:`0` | | +------------+---------------------+------------+------------------------------------------------------+----------------+ Algebraic Equations ----------------------------- +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Symbol | Type | RHS of Equation "0 = g(x, y)" | +===========+======================+============+==========================================================================================================================================================+ | Paux | :math:`Paux` | Algeb | :math:`Paux` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qaux | :math:`Qaux` | Algeb | :math:`Qaux` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIplim_y | :math:`y_{PIplim}` | Algeb | :math:`K_{Pplim} \left(- y_{Psen} + y_{Psig}\right) + xi_{PIplim} - y_{PIplim}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIqlim_y | :math:`y_{PIqlim}` | Algeb | :math:`K_{Pqlim} \left(- y_{Qsen} + y_{Qsig}\right) + xi_{PIqlim} - y_{PIqlim}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | vd | :math:`V_{d}` | Algeb | :math:`V u \cos{\left(\delta - \theta \right)} - V_{d}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | vq | :math:`V_{q}` | Algeb | :math:`- V u \sin{\left(\delta - \theta \right)} - V_{q}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Pe | :math:`P_{e}` | Algeb | :math:`I_{d} V_{d} + I_{q} V_{q} - P_{e}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Qe | :math:`Q_{e}` | Algeb | :math:`I_{d} V_{q} - I_{q} V_{d} - Q_{e}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Id | :math:`I_{d}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - y_{udLag}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iq | :math:`I_{q}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - y_{uqLag}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | wref | :math:`\omega_{ref}` | Algeb | :math:`1 - \omega_{ref}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Vref | :math:`Vref` | Algeb | :math:`V_{ref} - Vref` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | dw_x | :math:`x_{dw}` | Algeb | :math:`\frac{\omega_{drp} w_{0} \left(y_{PIplim} - y_{Psen}\right)}{vref_{2}^{2}} - x_{dw}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | dw_y | :math:`y_{dw}` | Algeb | :math:`\Delta \omega_{max} dw_{lim zu} + \Delta \omega_{min} dw_{lim zl} + dw_{lim zi} x_{dw} - y_{dw}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | derv | :math:`dV` | Algeb | :math:`Kdvoc vref_{2} \left(Vref - vref_{2}\right) \left(Vref + vref_{2}\right) + \frac{\omega_{drp} \left(y_{PIqlim} - y_{Qsen}\right)}{vref_{2}} - dV` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIvd_y | :math:`y_{PIvd}` | Algeb | :math:`K_{Pv} \left(- V_{d} + vref_{2}\right) + xi_{PIvd} - y_{PIvd}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIvq_y | :math:`y_{PIvq}` | Algeb | :math:`- K_{Pv} V_{q} + xi_{PIvq} - y_{PIvq}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIId_y | :math:`y_{PIId}` | Algeb | :math:`K_{Pi} \left(- I_{d} + y_{PIvd}\right) + xi_{PIId} - y_{PIId}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | PIIq_y | :math:`y_{PIIq}` | Algeb | :math:`K_{Pi} \left(- I_{q} + y_{PIvq}\right) + xi_{PIIq} - y_{PIIq}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | udref | :math:`u_{dref}` | Algeb | :math:`I_{d} r_{a} - I_{q} x_{s} + V_{d} - u_{dref} + y_{PIId}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | uqref | :math:`u_{qref}` | Algeb | :math:`I_{d} x_{s} + I_{q} r_{a} + V_{q} - u_{qref} + y_{PIIq}` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | a | :math:`\theta` | ExtAlgeb | :math:`- P_{e} u` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | v | :math:`V` | ExtAlgeb | :math:`- Q_{e} u` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Idref | :math:`Idref` | AliasAlgeb | :math:`0` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Iqref | :math:`Iqref` | AliasAlgeb | :math:`0` | +-----------+----------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ Services ---------- +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | Name | Symbol | Equation | Type | +=========+===================+=========================================================================================================+==============+ | Pref | :math:`P_{ref}` | :math:`P_{0s} \gamma_{P}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | Qref | :math:`Q_{ref}` | :math:`Q_{0s} \gamma_{Q}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | w0 | :math:`w0` | :math:`2 \pi f` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | ixf | :math:`1/xf` | :math:`\frac{1}{x_{s}}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | Id0 | :math:`I_{d0}` | :math:`\frac{P_{ref} u}{V}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | Iq0 | :math:`I_{q0}` | :math:`- \frac{Q_{ref} u}{V}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | vd0 | :math:`v_{d0}` | :math:`V u` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | vq0 | :math:`v_{q0}` | :math:`0` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | Kdvoc | :math:`Kdvoc` | :math:`\frac{400000000 \omega_{drp}}{\left(99990000 - 2 \left(100 - 100 Q_{drp}\right)^{2}\right)^{2}}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | udref0 | :math:`u_{dref0}` | :math:`I_{d0} r_{a} - I_{q0} x_{s} + v_{d0}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ | uqref0 | :math:`u_{qref0}` | :math:`I_{d0} x_{s} + I_{q0} r_{a} + v_{q0}` | ConstService | +---------+-------------------+---------------------------------------------------------------------------------------------------------+--------------+ Discretes ----------- +-----------+--------------------+-------------+----------------+ | Name | Symbol | Type | Info | +===========+====================+=============+================+ | Psig_lim | :math:`lim_{Psig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | Qsig_lim | :math:`lim_{Qsig}` | AntiWindup | Limiter in Lag | +-----------+--------------------+-------------+----------------+ | dw_lim | :math:`lim_{dw}` | HardLimiter | | +-----------+--------------------+-------------+----------------+ Blocks ------- +---------+----------------+---------------+------+ | Name | Symbol | Type | Info | +=========+================+===============+======+ | Psen | :math:`Psen` | Lag | | +---------+----------------+---------------+------+ | Qsen | :math:`Qsen` | Lag | | +---------+----------------+---------------+------+ | Psig | :math:`Psig` | LagAntiWindup | | +---------+----------------+---------------+------+ | Qsig | :math:`Qsig` | LagAntiWindup | | +---------+----------------+---------------+------+ | PIplim | :math:`PIplim` | PIController | | +---------+----------------+---------------+------+ | PIqlim | :math:`PIqlim` | PIController | | +---------+----------------+---------------+------+ | dw | :math:`dw` | GainLimiter | | +---------+----------------+---------------+------+ | PIvd | :math:`PIvd` | PIController | | +---------+----------------+---------------+------+ | PIvq | :math:`PIvq` | PIController | | +---------+----------------+---------------+------+ | PIId | :math:`PIId` | PIController | | +---------+----------------+---------------+------+ | PIIq | :math:`PIIq` | PIController | | +---------+----------------+---------------+------+ | udLag | :math:`udLag` | Lag | | +---------+----------------+---------------+------+ | uqLag | :math:`uqLag` | Lag | | +---------+----------------+---------------+------+ Config Fields in [REGF3] +---------------+--------+-------+---------------------------------------+-----------------+ | 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) | +---------------+--------+-------+---------------------------------------+-----------------+