RenGen#

Renewable generator (converter) group.

See SynGen for the notes on replacing StaticGen and setting the power ratio parameters.

Attention is needed for the power base Sn. When replacing a synchronous generator, the renewable generator should have the same or larger Sn. Improper Sn will cause the initial values to exceed typical per-unit ranges and cause the initialization to fail.

Common Parameters: u, name, bus, gen, Sn

Common Variables: Pe, Qe

Available models: REGCA1, REGCP1, REGCV1, REGCV2, REGF1, REGF2, REGF3

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

\(u\)

connection status

1

bool

name

device name

bus

interface bus id

mandatory

gen

static generator index

mandatory

Sn

\(S_n\)

Model MVA base

100

MVA

Tg

\(T_g\)

converter time const.

0.100

s

Rrpwr

\(R_{rpwr}\)

Low voltage power logic (LVPL) ramp limit

10

p.u.

Brkpt

\(B_{rkpt}\)

LVPL characteristic voltage 2

1

p.u.

Zerox

\(Z_{erox}\)

LVPL characteristic voltage 1

0.500

p.u

Lvplsw

\(z_{Lvplsw}\)

Low volt. P logic: 1-enable, 0-disable

1

bool

Lvpl1

\(L_{vpl1}\)

LVPL gain at Brkpt

1

p.u

Volim

\(V_{olim}\)

Voltage lim for high volt. reactive current mgnt.

1.200

p.u.

Lvpnt1

\(L_{vpnt1}\)

High volt. point for low volt. active current mgnt.

0.800

p.u.

Lvpnt0

\(L_{vpnt0}\)

Low volt. point for low volt. active current mgnt.

0.400

p.u.

Iolim

\(I_{olim}\)

lower current limit for high volt. reactive current mgnt.

-1.500

p.u. (mach base)

current

Tfltr

\(T_{fltr}\)

Voltage filter T const for low volt. active current mgnt.

0.100

s

Khv

\(K_{hv}\)

Overvolt. compensation gain in high volt. reactive current mgnt.

0.700

Iqrmax

\(I_{qrmax}\)

Upper limit on the ROC for reactive current

1

p.u.

current

Iqrmin

\(I_{qrmin}\)

Lower limit on the ROC for reactive current

-1

p.u.

current

Accel

\(A_{ccel}\)

Acceleration factor

0

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

ra

\(r_a\)

0

xs

\(x_s\)

0

Variables#

Name

Symbol

Type

Description

Unit

Properties

S1_y

\(S_{1 y}\)

State

State in lag TF

v_str

S2_y

\(S_{2 y}\)

State

State in lag transfer function

v_str

S0_y

\(S_{0 y}\)

State

State in lag TF

v_str

LVG_y

\(LVG_{y}\)

Algeb

Output of piecewise

v_str

Ipcmd

\(Ipcmd\)

Algeb

current component for active power

v_str

Iqcmd

\(Iqcmd\)

Algeb

current component for reactive power

v_str

LVPL_y

\(LVPL_{y}\)

Algeb

Output of piecewise

v_str

Ipout

\(Ipout\)

Algeb

Output Ip current

v_str

HVG_x

\(HVG_{x}\)

Algeb

Value before limiter

v_str

HVG_y

\(HVG_{y}\)

Algeb

Output after limiter and post gain

v_str

Iqout_x

\(Iqout_{x}\)

Algeb

Value before limiter

v_str

Iqout_y

\(Iqout_{y}\)

Algeb

Output after limiter and post gain

v_str

Pe

\(Pe\)

Algeb

Active power output

v_str

Qe

\(Qe\)

Algeb

Reactive power output

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

vd

\(vd\)

AliasAlgeb

Alias of v

Initialization Equations#

Name

Symbol

Type

Initial Value

S1_y

\(S_{1 y}\)

State

\(- Iqcmd\)

S2_y

\(S_{2 y}\)

State

\(1.0 v\)

S0_y

\(S_{0 y}\)

State

\(Ipcmd\)

LVG_y

\(LVG_{y}\)

Algeb

\(\operatorname{FixPiecewise}{\left(\left( 0, \ Lvpnt_{0} \geq v\right),\left( kLVG \left(- Lvpnt_{0} + v\right), \ Lvpnt_{1} \geq v\right),\left( 1, \ \text{True}\right) \right)}\)

Ipcmd

\(Ipcmd\)

Algeb

\(\frac{Ipcmd_{0} \operatorname{Indicator}{\left(LVG_{y} > 0 \right)}}{LVG_{y}} + \operatorname{Indicator}{\left(LVG_{y} \leq 0 \right)}\)

Iqcmd

\(Iqcmd\)

Algeb

\(Iqcmd_{0}\)

LVPL_y

\(LVPL_{y}\)

Algeb

\(\operatorname{FixPiecewise}{\left(\left( 9999 - 9999 Lvplsw, \ S_{2 y} \leq Zerox\right),\left( - 9999 Lvplsw + kLVPL \left(S_{2 y} - Zerox\right) + 9999, \ Brkpt \geq S_{2 y}\right),\left( 9999, \ \text{True}\right) \right)}\)

Ipout

\(Ipout\)

Algeb

\(Ipcmd LVG_{y}\)

HVG_x

\(HVG_{x}\)

Algeb

\(Khv \left(- Volim + v\right)\)

HVG_y

\(HVG_{y}\)

Algeb

\(HVG_{lim zi} HVG_{x}\)

Iqout_x

\(Iqout_{x}\)

Algeb

\(- HVG_{y} + S_{1 y}\)

Iqout_y

\(Iqout_{y}\)

Algeb

\(Iolim Iqout_{lim zl} + Iqout_{lim zi} Iqout_{x}\)

Pe

\(Pe\)

Algeb

\(p_{0}\)

Qe

\(Qe\)

Algeb

\(q_{0}\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

vd

\(vd\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

S1_y

\(S_{1 y}\)

State

\(- Iqcmd - S_{1 y}\)

\(T_g\)

S2_y

\(S_{2 y}\)

State

\(- S_{2 y} + 1.0 v\)

\(T_{fltr}\)

S0_y

\(S_{0 y}\)

State

\(Ipcmd - S_{0 y}\)

\(T_g\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

LVG_y

\(LVG_{y}\)

Algeb

\(- LVG_{y} + \operatorname{FixPiecewise}{\left(\left( 0, \ Lvpnt_{0} \geq v\right),\left( kLVG \left(- Lvpnt_{0} + v\right), \ Lvpnt_{1} \geq v\right),\left( 1, \ \text{True}\right) \right)}\)

Ipcmd

\(Ipcmd\)

Algeb

\(- Ipcmd + Ipcmd_{0 LVG}\)

Iqcmd

\(Iqcmd\)

Algeb

\(- Iqcmd + Iqcmd_{0}\)

LVPL_y

\(LVPL_{y}\)

Algeb

\(- LVPL_{y} + \operatorname{FixPiecewise}{\left(\left( 9999 - 9999 Lvplsw, \ S_{2 y} \leq Zerox\right),\left( - 9999 Lvplsw + kLVPL \left(S_{2 y} - Zerox\right) + 9999, \ Brkpt \geq S_{2 y}\right),\left( 9999, \ \text{True}\right) \right)}\)

Ipout

\(Ipout\)

Algeb

\(- Ipout + LVG_{y} S_{0 y}\)

HVG_x

\(HVG_{x}\)

Algeb

\(- HVG_{x} + Khv \left(- Volim + v\right)\)

HVG_y

\(HVG_{y}\)

Algeb

\(HVG_{lim zi} HVG_{x} - HVG_{y}\)

Iqout_x

\(Iqout_{x}\)

Algeb

\(- HVG_{y} - Iqout_{x} + S_{1 y}\)

Iqout_y

\(Iqout_{y}\)

Algeb

\(Iolim Iqout_{lim zl} + Iqout_{lim zi} Iqout_{x} - Iqout_{y}\)

Pe

\(Pe\)

Algeb

\(Ipout v - Pe\)

Qe

\(Qe\)

Algeb

\(Iqout_{y} v - Qe\)

a

\(a\)

ExtAlgeb

\(- Pe\)

v

\(v\)

ExtAlgeb

\(- Qe\)

vd

\(vd\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

p0

\(P_0\)

\(gammap p0s\)

ConstService

q0

\(Q_0\)

\(gammaq q0s\)

ConstService

q0gt0

\(z_{q0>0}\)

\(\operatorname{Indicator}{\left(q_{0} > 0 \right)}\)

ConstService

q0lt0

\(z_{q0<0}\)

\(\operatorname{Indicator}{\left(q_{0} < 0 \right)}\)

ConstService

Ipcmd0

\(I_{pcmd0}\)

\(\frac{p_{0}}{v}\)

ConstService

Iqcmd0

\(I_{qcmd0}\)

\(- \frac{q_{0}}{v}\)

ConstService

Ipcmd0_LVG

\(Ipcmd0_LVG\)

\(Ipcmd\)

PostInitService

kLVG

\(k_{LVG}\)

\(\frac{1}{- Lvpnt_{0} + Lvpnt_{1}}\)

ConstService

kLVPL

\(k_{LVPL}\)

\(\frac{Lvpl_{1} Lvplsw}{Brkpt - Zerox}\)

ConstService

Discretes#

Name

Symbol

Type

Info

S1_lim

\(lim_{S_1}\)

AntiWindupRate

Limiter in Lag

S0_lim

\(lim_{S_0}\)

AntiWindupRate

Limiter in Lag

HVG_lim

\(lim_{H_{VG}}\)

HardLimiter

Iqout_lim

\(lim_{I^{qout}}\)

HardLimiter

Blocks#

Name

Symbol

Type

Info

LVG

\(L_{VG}\)

Piecewise

Ip gain during low voltage

S1

\(S_1\)

LagAntiWindupRate

Iqcmd delay

S2

\(S_2\)

Lag

Voltage filter with no anti-windup

LVPL

\(L_{VPL}\)

Piecewise

Low voltage Ipcmd upper limit

S0

\(S_0\)

LagAntiWindupRate

HVG

\(H_{VG}\)

GainLimiter

High voltage gain block

Iqout

\(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#

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

\(u\)

connection status

1

bool

name

device name

bus

interface bus id

mandatory

gen

static generator index

mandatory

Sn

\(S_n\)

Model MVA base

100

MVA

Tg

\(T_g\)

converter time const.

0.100

s

Rrpwr

\(R_{rpwr}\)

Low voltage power logic (LVPL) ramp limit

10

p.u.

Brkpt

\(B_{rkpt}\)

LVPL characteristic voltage 2

1

p.u.

Zerox

\(Z_{erox}\)

LVPL characteristic voltage 1

0.500

p.u

Lvplsw

\(z_{Lvplsw}\)

Low volt. P logic: 1-enable, 0-disable

1

bool

Lvpl1

\(L_{vpl1}\)

LVPL gain at Brkpt

1

p.u

Volim

\(V_{olim}\)

Voltage lim for high volt. reactive current mgnt.

1.200

p.u.

Lvpnt1

\(L_{vpnt1}\)

High volt. point for low volt. active current mgnt.

0.800

p.u.

Lvpnt0

\(L_{vpnt0}\)

Low volt. point for low volt. active current mgnt.

0.400

p.u.

Iolim

\(I_{olim}\)

lower current limit for high volt. reactive current mgnt.

-1.500

p.u. (mach base)

current

Tfltr

\(T_{fltr}\)

Voltage filter T const for low volt. active current mgnt.

0.100

s

Khv

\(K_{hv}\)

Overvolt. compensation gain in high volt. reactive current mgnt.

0.700

Iqrmax

\(I_{qrmax}\)

Upper limit on the ROC for reactive current

1

p.u.

current

Iqrmin

\(I_{qrmin}\)

Lower limit on the ROC for reactive current

-1

p.u.

current

Accel

\(A_{ccel}\)

Acceleration factor

0

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

pll

Phase-lock loop device idx

ra

\(r_a\)

0

xs

\(x_s\)

0

Variables#

Name

Symbol

Type

Description

Unit

Properties

S1_y

\(S_{1 y}\)

State

State in lag TF

v_str

S2_y

\(S_{2 y}\)

State

State in lag transfer function

v_str

S0_y

\(S_{0 y}\)

State

State in lag TF

v_str

am

\(am\)

ExtState

Measured angle

LVG_y

\(LVG_{y}\)

Algeb

Output of piecewise

v_str

Ipcmd

\(Ipcmd\)

Algeb

current component for active power

v_str

Iqcmd

\(Iqcmd\)

Algeb

current component for reactive power

v_str

LVPL_y

\(LVPL_{y}\)

Algeb

Output of piecewise

v_str

Ipout

\(Ipout\)

Algeb

Output Ip current

v_str

HVG_x

\(HVG_{x}\)

Algeb

Value before limiter

v_str

HVG_y

\(HVG_{y}\)

Algeb

Output after limiter and post gain

v_str

Iqout_x

\(Iqout_{x}\)

Algeb

Value before limiter

v_str

Iqout_y

\(Iqout_{y}\)

Algeb

Output after limiter and post gain

v_str

Pe

\(Pe\)

Algeb

Active power output

v_str

Qe

\(Qe\)

Algeb

Reactive power output

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

Initialization Equations#

Name

Symbol

Type

Initial Value

S1_y

\(S_{1 y}\)

State

\(- Iqcmd\)

S2_y

\(S_{2 y}\)

State

\(1.0 v\)

S0_y

\(S_{0 y}\)

State

\(Ipcmd\)

am

\(am\)

ExtState

LVG_y

\(LVG_{y}\)

Algeb

\(\operatorname{FixPiecewise}{\left(\left( 0, \ Lvpnt_{0} \geq v\right),\left( kLVG \left(- Lvpnt_{0} + v\right), \ Lvpnt_{1} \geq v\right),\left( 1, \ \text{True}\right) \right)}\)

Ipcmd

\(Ipcmd\)

Algeb

\(\frac{Ipcmd_{0} \operatorname{Indicator}{\left(LVG_{y} > 0 \right)}}{LVG_{y}} + \operatorname{Indicator}{\left(LVG_{y} \leq 0 \right)}\)

Iqcmd

\(Iqcmd\)

Algeb

\(Iqcmd_{0}\)

LVPL_y

\(LVPL_{y}\)

Algeb

\(\operatorname{FixPiecewise}{\left(\left( 9999 - 9999 Lvplsw, \ S_{2 y} \leq Zerox\right),\left( - 9999 Lvplsw + kLVPL \left(S_{2 y} - Zerox\right) + 9999, \ Brkpt \geq S_{2 y}\right),\left( 9999, \ \text{True}\right) \right)}\)

Ipout

\(Ipout\)

Algeb

\(Ipcmd LVG_{y}\)

HVG_x

\(HVG_{x}\)

Algeb

\(Khv \left(- Volim + v\right)\)

HVG_y

\(HVG_{y}\)

Algeb

\(HVG_{lim zi} HVG_{x}\)

Iqout_x

\(Iqout_{x}\)

Algeb

\(- HVG_{y} + S_{1 y}\)

Iqout_y

\(Iqout_{y}\)

Algeb

\(Iolim Iqout_{lim zl} + Iqout_{lim zi} Iqout_{x}\)

Pe

\(Pe\)

Algeb

\(p_{0}\)

Qe

\(Qe\)

Algeb

\(q_{0}\)

vd

\(vd\)

Algeb

\(v\)

vq

\(vq\)

Algeb

\(0\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

S1_y

\(S_{1 y}\)

State

\(- Iqcmd - S_{1 y}\)

\(T_g\)

S2_y

\(S_{2 y}\)

State

\(- S_{2 y} + 1.0 v\)

\(T_{fltr}\)

S0_y

\(S_{0 y}\)

State

\(Ipcmd - S_{0 y}\)

\(T_g\)

am

\(am\)

ExtState

\(0\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

LVG_y

\(LVG_{y}\)

Algeb

\(- LVG_{y} + \operatorname{FixPiecewise}{\left(\left( 0, \ Lvpnt_{0} \geq v\right),\left( kLVG \left(- Lvpnt_{0} + v\right), \ Lvpnt_{1} \geq v\right),\left( 1, \ \text{True}\right) \right)}\)

Ipcmd

\(Ipcmd\)

Algeb

\(- Ipcmd + Ipcmd_{0 LVG}\)

Iqcmd

\(Iqcmd\)

Algeb

\(- Iqcmd + Iqcmd_{0}\)

LVPL_y

\(LVPL_{y}\)

Algeb

\(- LVPL_{y} + \operatorname{FixPiecewise}{\left(\left( 9999 - 9999 Lvplsw, \ S_{2 y} \leq Zerox\right),\left( - 9999 Lvplsw + kLVPL \left(S_{2 y} - Zerox\right) + 9999, \ Brkpt \geq S_{2 y}\right),\left( 9999, \ \text{True}\right) \right)}\)

Ipout

\(Ipout\)

Algeb

\(- Ipout + LVG_{y} S_{0 y}\)

HVG_x

\(HVG_{x}\)

Algeb

\(- HVG_{x} + Khv \left(- Volim + v\right)\)

HVG_y

\(HVG_{y}\)

Algeb

\(HVG_{lim zi} HVG_{x} - HVG_{y}\)

Iqout_x

\(Iqout_{x}\)

Algeb

\(- HVG_{y} - Iqout_{x} + S_{1 y}\)

Iqout_y

\(Iqout_{y}\)

Algeb

\(Iolim Iqout_{lim zl} + Iqout_{lim zi} Iqout_{x} - Iqout_{y}\)

Pe

\(Pe\)

Algeb

\(Ipout vd + Iqout_{y} vq - Pe\)

Qe

\(Qe\)

Algeb

\(- Ipout vq + Iqout_{y} vd - Qe\)

vd

\(vd\)

Algeb

\(v \cos{\left(zam \left(a - am\right) \right)} - vd\)

vq

\(vq\)

Algeb

\(- v \sin{\left(zam \left(a - am\right) \right)} - vq\)

a

\(a\)

ExtAlgeb

\(- Pe\)

v

\(v\)

ExtAlgeb

\(- Qe\)

Services#

Name

Symbol

Equation

Type

p0

\(P_0\)

\(gammap p0s\)

ConstService

q0

\(Q_0\)

\(gammaq q0s\)

ConstService

q0gt0

\(z_{q0>0}\)

\(\operatorname{Indicator}{\left(q_{0} > 0 \right)}\)

ConstService

q0lt0

\(z_{q0<0}\)

\(\operatorname{Indicator}{\left(q_{0} < 0 \right)}\)

ConstService

Ipcmd0

\(I_{pcmd0}\)

\(\frac{p_{0}}{v}\)

ConstService

Iqcmd0

\(I_{qcmd0}\)

\(- \frac{q_{0}}{v}\)

ConstService

Ipcmd0_LVG

\(Ipcmd0_LVG\)

\(Ipcmd\)

PostInitService

kLVG

\(k_{LVG}\)

\(\frac{1}{- Lvpnt_{0} + Lvpnt_{1}}\)

ConstService

kLVPL

\(k_{LVPL}\)

\(\frac{Lvpl_{1} Lvplsw}{Brkpt - Zerox}\)

ConstService

Discretes#

Name

Symbol

Type

Info

S1_lim

\(lim_{S_1}\)

AntiWindupRate

Limiter in Lag

S0_lim

\(lim_{S_0}\)

AntiWindupRate

Limiter in Lag

HVG_lim

\(lim_{H_{VG}}\)

HardLimiter

Iqout_lim

\(lim_{I^{qout}}\)

HardLimiter

Blocks#

Name

Symbol

Type

Info

LVG

\(L_{VG}\)

Piecewise

Ip gain during low voltage

S1

\(S_1\)

LagAntiWindupRate

Iqcmd delay

S2

\(S_2\)

Lag

Voltage filter with no anti-windup

LVPL

\(L_{VPL}\)

Piecewise

Low voltage Ipcmd upper limit

S0

\(S_0\)

LagAntiWindupRate

HVG

\(H_{VG}\)

GainLimiter

High voltage gain block

Iqout

\(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#

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

\(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

\(S_n\)

Model MVA base

100

MVA

fn

\(f\)

rated frequency

60

Tc

\(T_c\)

switch time constant

0.010

s

kw

\(k_\omega\)

speed droop on active power (reciprocal of droop)

0

p.u.

non_negative,ipower

kv

\(k_v\)

reactive power droop on voltage

0

p.u.

non_negative,power

M

\(M\)

Emulated startup time constant (M=2H)

10

s

power

D

\(D\)

Emulated damping coefficient

0

p.u.

power

ra

\(r_a\)

resistance

0

z

xs

\(x_s\)

reactance

0.200

z

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

Kpvd

\(kp_{vd}\)

vd controller proportional gain

0.500

p.u.

power

Kivd

\(ki_{vd}\)

vd controller integral gain

0.020

p.u.

power

Kpvq

\(kp_{vq}\)

vq controller proportional gain

0.500

p.u.

power

Kivq

\(ki_{vq}\)

vq controller integral gain

0.020

p.u.

power

KpId

\(kp_{di}\)

Id controller proportional gain

0.200

p.u.

power

KiId

\(ki_{di}\)

Id controller integral gain

0.010

p.u.

power

KpIq

\(kp_{qi}\)

Iq controller proportional gain

0.200

p.u.

power

KiIq

\(ki_{qi}\)

Iq controller integral gain

0.010

p.u.

power

Variables#

Name

Symbol

Type

Description

Unit

Properties

dw

\(dw\)

State

delta virtual rotor speed

pu (Hz)

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

PIvd_xi

\(PIvd_{\xi}\)

State

Integrator output

v_str

PIvq_xi

\(PIvq_{\xi}\)

State

Integrator output

v_str

PIId_xi

\(PIId_{\xi}\)

State

Integrator output

v_str

PIIq_xi

\(PIIq_{\xi}\)

State

Integrator output

v_str

udLag_y

\(udLag_{y}\)

State

State in lag transfer function

v_str

uqLag_y

\(uqLag_{y}\)

State

State in lag transfer function

v_str

ud

\(ud\)

AliasState

Alias of udLag_y

uq

\(uq\)

AliasState

Alias of uqLag_y

Pref2

\(Pref_{2}\)

Algeb

active power reference after adjusting by frequency

v_str

vref2

\(vref_{2}\)

Algeb

voltage reference after adjusted by reactive power

v_str

omega

\(\omega\)

Algeb

virtual rotor speed

pu (Hz)

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

Pe

\(Pe\)

Algeb

active power injection from VSC

v_str

Qe

\(Qe\)

Algeb

reactive power injection from VSC

v_str

Id

\(Id\)

Algeb

d-axis current

v_str

Iq

\(Iq\)

Algeb

q-axis current

v_str

PIvd_y

\(PIvd_{y}\)

Algeb

PI output

v_str

PIvq_y

\(PIvq_{y}\)

Algeb

PI output

v_str

PIId_y

\(PIId_{y}\)

Algeb

PI output

v_str

PIIq_y

\(PIIq_{y}\)

Algeb

PI output

v_str

udref

\(udref\)

Algeb

ud reference

v_str

uqref

\(uqref\)

Algeb

uq reference

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

Idref

\(Idref\)

AliasAlgeb

Alias of PIvd_y

Iqref

\(Iqref\)

AliasAlgeb

Alias of PIvq_y

Initialization Equations#

Name

Symbol

Type

Initial Value

dw

\(dw\)

State

\(0\)

delta

\(\delta\)

State

\(a\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Id_{0}\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Iq_{0}\)

PIId_xi

\(PIId_{\xi}\)

State

\(0.0\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(0.0\)

udLag_y

\(udLag_{y}\)

State

\(udref\)

uqLag_y

\(uqLag_{y}\)

State

\(uqref\)

ud

\(ud\)

AliasState

uq

\(uq\)

AliasState

Pref2

\(Pref_{2}\)

Algeb

\(Pref u\)

vref2

\(vref_{2}\)

Algeb

\(u vref\)

omega

\(\omega\)

Algeb

\(u\)

vd

\(vd\)

Algeb

\(vd_{0}\)

vq

\(vq\)

Algeb

\(vq_{0}\)

Pe

\(Pe\)

Algeb

\(Pref\)

Qe

\(Qe\)

Algeb

\(Qref\)

Id

\(Id\)

Algeb

\(Id_{0}\)

Iq

\(Iq\)

Algeb

\(Iq_{0}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Id_{0} + Kpvd \left(vd - vref_{2}\right)\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Iq_{0} + Kpvq vq\)

PIId_y

\(PIId_{y}\)

Algeb

\(KpId \left(Id - PIvd_{y}\right)\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KpIq \left(Iq - PIvq_{y}\right)\)

udref

\(udref\)

Algeb

\(udref_{0}\)

uqref

\(uqref\)

Algeb

\(uqref_{0}\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

Idref

\(Idref\)

AliasAlgeb

Iqref

\(Iqref\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

dw

\(dw\)

State

\(- D dw - Pe + Pref_{2}\)

\(M\)

delta

\(\delta\)

State

\(2 \pi dw fn\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Kivd \left(vd - vref_{2}\right)\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Kivq vq\)

PIId_xi

\(PIId_{\xi}\)

State

\(KiId \left(Id - PIvd_{y}\right)\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(KiIq \left(Iq - PIvq_{y}\right)\)

udLag_y

\(udLag_{y}\)

State

\(- udLag_{y} + udref\)

\(T_c\)

uqLag_y

\(uqLag_{y}\)

State

\(- uqLag_{y} + uqref\)

\(T_c\)

ud

\(ud\)

AliasState

\(0\)

uq

\(uq\)

AliasState

\(0\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

Pref2

\(Pref_{2}\)

Algeb

\(Pref u - Pref_{2} - dw kw\)

vref2

\(vref_{2}\)

Algeb

\(kv \left(- Qe + Qref u\right) + vref - vref_{2}\)

omega

\(\omega\)

Algeb

\(dw - \omega + 1\)

vd

\(vd\)

Algeb

\(u v \cos{\left(a - \delta \right)} - vd\)

vq

\(vq\)

Algeb

\(u v \sin{\left(a - \delta \right)} - vq\)

Pe

\(Pe\)

Algeb

\(Id vd + Iq vq - Pe\)

Qe

\(Qe\)

Algeb

\(Id vq - Iq vd - Qe\)

Id

\(Id\)

Algeb

\(Id ra - Iq xs - udLag_{y} + vd\)

Iq

\(Iq\)

Algeb

\(Id xs + Iq ra - uqLag_{y} + vq\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Kpvd \left(vd - vref_{2}\right) + PIvd_{\xi} - PIvd_{y}\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Kpvq vq + PIvq_{\xi} - PIvq_{y}\)

PIId_y

\(PIId_{y}\)

Algeb

\(KpId \left(Id - PIvd_{y}\right) + PIId_{\xi} - PIId_{y}\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KpIq \left(Iq - PIvq_{y}\right) + PIIq_{\xi} - PIIq_{y}\)

udref

\(udref\)

Algeb

\(- Iqref xs + PIId_{y} - udref + vd\)

uqref

\(uqref\)

Algeb

\(Idref xs + PIIq_{y} - uqref + vq\)

a

\(a\)

ExtAlgeb

\(- Pe u\)

v

\(v\)

ExtAlgeb

\(- Qe u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(gammap p0s\)

ConstService

Qref

\(Q_{ref}\)

\(gammaq q0s\)

ConstService

ixs

\(1/xs\)

\(\frac{1}{xs}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{Pref u}{v}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Qref u}{v}\)

ConstService

vd0

\(v_{d0}\)

\(u v\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

udref0

\(u_{dref0}\)

\(Id_{0} ra - Iq_{0} xs + vd_{0}\)

ConstService

uqref0

\(u_{qref0}\)

\(Id_{0} xs + Iq_{0} ra + vq_{0}\)

ConstService

Blocks#

Name

Symbol

Type

Info

PIvd

\(PIvd\)

PIController

PIvq

\(PIvq\)

PIController

PIId

\(PIId\)

PIController

PIIq

\(PIIq\)

PIController

udLag

\(udLag\)

Lag

uqLag

\(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#

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

\(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

\(S_n\)

Model MVA base

100

MVA

fn

\(f\)

rated frequency

60

Tc

\(T_c\)

switch time constant

0.010

s

kw

\(k_\omega\)

speed droop on active power (reciprocal of droop)

0

p.u.

non_negative,ipower

kv

\(k_v\)

reactive power droop on voltage

0

p.u.

non_negative,power

M

\(M\)

Emulated startup time constant (M=2H)

10

s

power

D

\(D\)

Emulated damping coefficient

0

p.u.

power

ra

\(r_a\)

resistance

0

z

xs

\(x_s\)

reactance

0.200

z

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

Kpvd

\(kp_{vd}\)

vd controller proportional gain

0.500

p.u.

power

Kivd

\(ki_{vd}\)

vd controller integral gain

0.020

p.u.

power

Kpvq

\(kp_{vq}\)

vq controller proportional gain

0.500

p.u.

power

Kivq

\(ki_{vq}\)

vq controller integral gain

0.020

p.u.

power

Tiq

\(T_{Iq}\)

0.010

Tid

\(T_{Id}\)

0.010

Variables#

Name

Symbol

Type

Description

Unit

Properties

dw

\(dw\)

State

delta virtual rotor speed

pu (Hz)

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

PIvd_xi

\(PIvd_{\xi}\)

State

Integrator output

v_str

PIvq_xi

\(PIvq_{\xi}\)

State

Integrator output

v_str

LGId_y

\(LGId_{y}\)

State

State in lag transfer function

v_str

LGIq_y

\(LGIq_{y}\)

State

State in lag transfer function

v_str

Pref2

\(Pref_{2}\)

Algeb

active power reference after adjusting by frequency

v_str

vref2

\(vref_{2}\)

Algeb

voltage reference after adjusted by reactive power

v_str

omega

\(\omega\)

Algeb

virtual rotor speed

pu (Hz)

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

Pe

\(Pe\)

Algeb

active power injection from VSC

v_str

Qe

\(Qe\)

Algeb

reactive power injection from VSC

v_str

Id

\(Id\)

Algeb

d-axis current

v_str

Iq

\(Iq\)

Algeb

q-axis current

v_str

PIvd_y

\(PIvd_{y}\)

Algeb

PI output

v_str

PIvq_y

\(PIvq_{y}\)

Algeb

PI output

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

Idref

\(Idref\)

AliasAlgeb

Alias of PIvd_y

Iqref

\(Iqref\)

AliasAlgeb

Alias of PIvq_y

Initialization Equations#

Name

Symbol

Type

Initial Value

dw

\(dw\)

State

\(0\)

delta

\(\delta\)

State

\(a\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Id_{0}\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Iq_{0}\)

LGId_y

\(LGId_{y}\)

State

\(PIvd_{y}\)

LGIq_y

\(LGIq_{y}\)

State

\(PIvq_{y}\)

Pref2

\(Pref_{2}\)

Algeb

\(Pref u\)

vref2

\(vref_{2}\)

Algeb

\(u vref\)

omega

\(\omega\)

Algeb

\(u\)

vd

\(vd\)

Algeb

\(vd_{0}\)

vq

\(vq\)

Algeb

\(vq_{0}\)

Pe

\(Pe\)

Algeb

\(Pref\)

Qe

\(Qe\)

Algeb

\(Qref\)

Id

\(Id\)

Algeb

\(Id_{0}\)

Iq

\(Iq\)

Algeb

\(Iq_{0}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Id_{0} + Kpvd \left(vd - vref_{2}\right)\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Iq_{0} + Kpvq vq\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

Idref

\(Idref\)

AliasAlgeb

Iqref

\(Iqref\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

dw

\(dw\)

State

\(- D dw - Pe + Pref_{2}\)

\(M\)

delta

\(\delta\)

State

\(2 \pi dw fn\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Kivd \left(vd - vref_{2}\right)\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Kivq vq\)

LGId_y

\(LGId_{y}\)

State

\(- LGId_{y} + PIvd_{y}\)

\(T_{Id}\)

LGIq_y

\(LGIq_{y}\)

State

\(- LGIq_{y} + PIvq_{y}\)

\(T_{Iq}\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

Pref2

\(Pref_{2}\)

Algeb

\(Pref u - Pref_{2} - dw kw\)

vref2

\(vref_{2}\)

Algeb

\(kv \left(- Qe + Qref u\right) + vref - vref_{2}\)

omega

\(\omega\)

Algeb

\(dw - \omega + 1\)

vd

\(vd\)

Algeb

\(u v \cos{\left(a - \delta \right)} - vd\)

vq

\(vq\)

Algeb

\(u v \sin{\left(a - \delta \right)} - vq\)

Pe

\(Pe\)

Algeb

\(Id vd + Iq vq - Pe\)

Qe

\(Qe\)

Algeb

\(Id vq - Iq vd - Qe\)

Id

\(Id\)

Algeb

\(- Id + LGId_{y}\)

Iq

\(Iq\)

Algeb

\(- Iq + LGIq_{y}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Kpvd \left(vd - vref_{2}\right) + PIvd_{\xi} - PIvd_{y}\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Kpvq vq + PIvq_{\xi} - PIvq_{y}\)

a

\(a\)

ExtAlgeb

\(- Pe u\)

v

\(v\)

ExtAlgeb

\(- Qe u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(gammap p0s\)

ConstService

Qref

\(Q_{ref}\)

\(gammaq q0s\)

ConstService

ixs

\(1/xs\)

\(\frac{1}{xs}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{Pref u}{v}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Qref u}{v}\)

ConstService

vd0

\(v_{d0}\)

\(u v\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

Blocks#

Name

Symbol

Type

Info

PIvd

\(PIvd\)

PIController

PIvq

\(PIvq\)

PIController

LGId

\(LGId\)

Lag

LGIq

\(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#

Grid-forming inverter using droop.

Implementation of EPRI Memorandum

  1. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS"

Parameters#

Name

Symbol

Description

Default

Unit

Properties

idx

unique device idx

u

\(u\)

connection status

1

bool

name

device name

bus

interface bus id

mandatory

gen

static generator index

mandatory

Sn

\(S_n\)

Model MVA base

100

MVA

rf

\(r_a\)

resistance

0

z

xf

\(x_s\)

reactance

0.200

z

Vdip

\(V_{dip}\)

V threshold to freeze states

0.800

p.u.

Tfrz

\(T_{frz}\)

Time to keep state frozen

0

PQFLAG

P/Q priority flag; 0-Q priority, 1-P priority

1

bool

fn

\(f\)

rated frequency

60

dwmax

\(\Delta \omega_{max}\)

maximum value of frequency deviation

75

dwmin

\(\Delta \omega_{min}\)

minimum value of frequency deviation

-75

wdrp

\(\omega_{drp}\)

frequency droop percentage

0.033

Qdrp

\(Q_{drp}\)

Voltage droop percentage

0.045

Tr

\(T_c\)

transducer time constant

0.005

s

Te

\(T_e\)

ouput state time constant

0.005

s

KPi

\(K_{Pi}\)

current control proportional gain

0.500

non_negative

KIi

\(K_{Ii}\)

current control integral gain

20

non_negative

KPv

\(K_{Pv}\)

voltage control proportional gain

3

non_negative

KIv

\(K_{Iv}\)

voltage control integral gain

10

non_negative

Pmax

\(P_{max}\)

max. active power

1

non_negative,power

Pmin

\(P_{min}\)

min. active power

-1

power

KPplim

\(K_{Pplim}\)

Kp for P limits

5

non_negative

KIplim

\(K_{Iplim}\)

KI for P limits

30

non_negative

Qmax

\(Q_{max}\)

max. reactive power

1

non_negative,power

Qmin

\(Q_{min}\)

min. reactive power

-1

power

KPqlim

\(K_{Pqlim}\)

Kp for Q limits

0.100

non_negative

KIqlim

\(K_{Iqlim}\)

KI for Q limits

1.500

non_negative

Tpm

\(T_{pm}\)

power signal input delay (3 Delta t)

0.025

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

Variables#

Name

Symbol

Type

Description

Unit

Properties

Psen_y

\(Psen_{y}\)

State

State in lag transfer function

v_str

Qsen_y

\(Qsen_{y}\)

State

State in lag transfer function

v_str

Psig_y

\(Psig_{y}\)

State

State in lag TF

v_str

Qsig_y

\(Qsig_{y}\)

State

State in lag TF

v_str

PIplim_xi

\(PIplim_{\xi}\)

State

Integrator output

v_str

PIqlim_xi

\(PIqlim_{\xi}\)

State

Integrator output

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

PIvd_xi

\(PIvd_{\xi}\)

State

Integrator output

v_str

PIvq_xi

\(PIvq_{\xi}\)

State

Integrator output

v_str

PIId_xi

\(PIId_{\xi}\)

State

Integrator output

v_str

PIIq_xi

\(PIIq_{\xi}\)

State

Integrator output

v_str

udLag_y

\(udLag_{y}\)

State

State in lag transfer function

v_str

uqLag_y

\(uqLag_{y}\)

State

State in lag transfer function

v_str

ud

\(ud\)

AliasState

Alias of udLag_y

uq

\(uq\)

AliasState

Alias of uqLag_y

Paux

\(Paux\)

Algeb

v_str

Qaux

\(Qaux\)

Algeb

v_str

PIplim_y

\(PIplim_{y}\)

Algeb

PI output

v_str

PIqlim_y

\(PIqlim_{y}\)

Algeb

PI output

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

Pe

\(Pe\)

Algeb

active power injection from VSC

v_str

Qe

\(Qe\)

Algeb

reactive power injection from VSC

v_str

Id

\(Id\)

Algeb

d-axis current

v_str

Iq

\(Iq\)

Algeb

q-axis current

v_str

dw_x

\(dw_{x}\)

Algeb

Value before limiter

v_str

dw_y

\(dw_{y}\)

Algeb

Output after limiter and post gain

v_str

vref2

\(vref_{2}\)

Algeb

voltage reference after droop

v_str

PIvd_y

\(PIvd_{y}\)

Algeb

PI output

v_str

PIvq_y

\(PIvq_{y}\)

Algeb

PI output

v_str

PIId_y

\(PIId_{y}\)

Algeb

PI output

v_str

PIIq_y

\(PIIq_{y}\)

Algeb

PI output

v_str

udref

\(udref\)

Algeb

ud reference

v_str

uqref

\(uqref\)

Algeb

uq reference

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

Idref

\(Idref\)

AliasAlgeb

Alias of PIvd_y

Iqref

\(Iqref\)

AliasAlgeb

Alias of PIvq_y

Initialization Equations#

Name

Symbol

Type

Initial Value

Psen_y

\(Psen_{y}\)

State

\(Pe\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(Psen_{y}\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(Qsen_{y}\)

delta

\(\delta\)

State

\(a\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Id_{0}\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Iq_{0}\)

PIId_xi

\(PIId_{\xi}\)

State

\(0.0\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(0.0\)

udLag_y

\(udLag_{y}\)

State

\(udref\)

uqLag_y

\(uqLag_{y}\)

State

\(uqref\)

ud

\(ud\)

AliasState

uq

\(uq\)

AliasState

Paux

\(Paux\)

Algeb

\(0\)

Qaux

\(Qaux\)

Algeb

\(0\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + Psen_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + Qsen_{y}\)

vd

\(vd\)

Algeb

\(vd_{0}\)

vq

\(vq\)

Algeb

\(vq_{0}\)

Pe

\(Pe\)

Algeb

\(Pref\)

Qe

\(Qe\)

Algeb

\(Qref\)

Id

\(Id\)

Algeb

\(Id_{0}\)

Iq

\(Iq\)

Algeb

\(Iq_{0}\)

dw_x

\(dw_{x}\)

Algeb

\(w_{0} wdrp \left(PIplim_{y} - Psen_{y}\right)\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax\)

vref2

\(vref_{2}\)

Algeb

\(u vref\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Id_{0} + KPv \left(- vd + vref_{2}\right)\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Iq_{0} - KPv vq\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right)\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right)\)

udref

\(udref\)

Algeb

\(udref_{0}\)

uqref

\(uqref\)

Algeb

\(uqref_{0}\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

Idref

\(Idref\)

AliasAlgeb

Iqref

\(Iqref\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

Psen_y

\(Psen_{y}\)

State

\(Pe - Psen_{y}\)

\(T_c\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe - Qsen_{y}\)

\(T_c\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y} - Psig_{y}\)

\(T_{pm}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y} - Qsig_{y}\)

\(T_{pm}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(KIplim \left(- Psen_{y} + Psig_{y}\right)\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(KIqlim \left(- Qsen_{y} + Qsig_{y}\right)\)

delta

\(\delta\)

State

\(dw_{y}\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(KIv \left(- vd + vref_{2}\right)\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(- KIv vq\)

PIId_xi

\(PIId_{\xi}\)

State

\(KIi \left(- Id + PIvd_{y}\right)\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(KIi \left(- Iq + PIvq_{y}\right)\)

udLag_y

\(udLag_{y}\)

State

\(- udLag_{y} + udref\)

\(T_e\)

uqLag_y

\(uqLag_{y}\)

State

\(- uqLag_{y} + uqref\)

\(T_e\)

ud

\(ud\)

AliasState

\(0\)

uq

\(uq\)

AliasState

\(0\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

Paux

\(Paux\)

Algeb

\(Paux\)

Qaux

\(Qaux\)

Algeb

\(Qaux\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + PIplim_{\xi} - PIplim_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + PIqlim_{\xi} - PIqlim_{y}\)

vd

\(vd\)

Algeb

\(u v \cos{\left(a - \delta \right)} - vd\)

vq

\(vq\)

Algeb

\(u v \sin{\left(a - \delta \right)} - vq\)

Pe

\(Pe\)

Algeb

\(Id vd + Iq vq - Pe\)

Qe

\(Qe\)

Algeb

\(Id vq - Iq vd - Qe\)

Id

\(Id\)

Algeb

\(Id rf - Iq xf - udLag_{y} + vd\)

Iq

\(Iq\)

Algeb

\(Id xf + Iq rf - uqLag_{y} + vq\)

dw_x

\(dw_{x}\)

Algeb

\(- dw_{x} + w_{0} wdrp \left(PIplim_{y} - Psen_{y}\right)\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax - dw_{y}\)

vref2

\(vref_{2}\)

Algeb

\(Qdrp \left(PIqlim_{y} u - Qsen_{y}\right) + vref - vref_{2}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(KPv \left(- vd + vref_{2}\right) + PIvd_{\xi} - PIvd_{y}\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(- KPv vq + PIvq_{\xi} - PIvq_{y}\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right) + PIId_{\xi} - PIId_{y}\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right) + PIIq_{\xi} - PIIq_{y}\)

udref

\(udref\)

Algeb

\(Id rf - Iq xf + PIId_{y} - udref + vd\)

uqref

\(uqref\)

Algeb

\(Id xf + Iq rf + PIIq_{y} - uqref + vq\)

a

\(a\)

ExtAlgeb

\(- Pe u\)

v

\(v\)

ExtAlgeb

\(- Qe u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(gammap p0s\)

ConstService

Qref

\(Q_{ref}\)

\(gammaq q0s\)

ConstService

w0

\(w0\)

\(2 \pi fn\)

ConstService

ixf

\(1/xf\)

\(\frac{1}{xf}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{Pref u}{v}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Qref u}{v}\)

ConstService

vd0

\(v_{d0}\)

\(u v\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

udref0

\(u_{dref0}\)

\(Id_{0} rf - Iq_{0} xf + vd_{0}\)

ConstService

uqref0

\(u_{qref0}\)

\(Id_{0} xf + Iq_{0} rf + vq_{0}\)

ConstService

Discretes#

Name

Symbol

Type

Info

Psig_lim

\(lim_{Psig}\)

AntiWindup

Limiter in Lag

Qsig_lim

\(lim_{Qsig}\)

AntiWindup

Limiter in Lag

dw_lim

\(lim_{dw}\)

HardLimiter

Blocks#

Name

Symbol

Type

Info

Psen

\(Psen\)

Lag

Qsen

\(Qsen\)

Lag

Psig

\(Psig\)

LagAntiWindup

Qsig

\(Qsig\)

LagAntiWindup

PIplim

\(PIplim\)

PIController

PIqlim

\(PIqlim\)

PIController

dw

\(dw\)

GainLimiter

PIvd

\(PIvd\)

PIController

PIvq

\(PIvq\)

PIController

PIId

\(PIId\)

PIController

PIIq

\(PIIq\)

PIController

udLag

\(udLag\)

Lag

uqLag

\(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#

Grid-forming inverter with VSM control.

Implementation of EPRI Memorandum

  1. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS"

Parameters#

Name

Symbol

Description

Default

Unit

Properties

idx

unique device idx

u

\(u\)

connection status

1

bool

name

device name

bus

interface bus id

mandatory

gen

static generator index

mandatory

Sn

\(S_n\)

Model MVA base

100

MVA

rf

\(r_a\)

resistance

0

z

xf

\(x_s\)

reactance

0.200

z

Vdip

\(V_{dip}\)

V threshold to freeze states

0.800

p.u.

Tfrz

\(T_{frz}\)

Time to keep state frozen

0

PQFLAG

P/Q priority flag; 0-Q priority, 1-P priority

1

bool

fn

\(f\)

rated frequency

60

dwmax

\(\Delta \omega_{max}\)

maximum value of frequency deviation

75

dwmin

\(\Delta \omega_{min}\)

minimum value of frequency deviation

-75

wdrp

\(\omega_{drp}\)

frequency droop percentage

0.033

Qdrp

\(Q_{drp}\)

Voltage droop percentage

0.045

Tr

\(T_c\)

transducer time constant

0.005

s

Te

\(T_e\)

ouput state time constant

0.005

s

KPi

\(K_{Pi}\)

current control proportional gain

0.500

non_negative

KIi

\(K_{Ii}\)

current control integral gain

20

non_negative

KPv

\(K_{Pv}\)

voltage control proportional gain

3

non_negative

KIv

\(K_{Iv}\)

voltage control integral gain

10

non_negative

Pmax

\(P_{max}\)

max. active power

1

non_negative,power

Pmin

\(P_{min}\)

min. active power

-1

power

KPplim

\(K_{Pplim}\)

Kp for P limits

5

non_negative

KIplim

\(K_{Iplim}\)

KI for P limits

30

non_negative

Qmax

\(Q_{max}\)

max. reactive power

1

non_negative,power

Qmin

\(Q_{min}\)

min. reactive power

-1

power

KPqlim

\(K_{Pqlim}\)

Kp for Q limits

0.100

non_negative

KIqlim

\(K_{Iqlim}\)

KI for Q limits

1.500

non_negative

Tpm

\(T_{pm}\)

power signal input delay (3 Delta t)

0.025

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

mf

\(M_f\)

VSM inertia constant

0.150

dd

\(d_d\)

VSM damping factor

0.110

pll

PLL device idx (optional)

Variables#

Name

Symbol

Type

Description

Unit

Properties

Psen_y

\(Psen_{y}\)

State

State in lag transfer function

v_str

Qsen_y

\(Qsen_{y}\)

State

State in lag transfer function

v_str

Psig_y

\(Psig_{y}\)

State

State in lag TF

v_str

Qsig_y

\(Qsig_{y}\)

State

State in lag TF

v_str

PIplim_xi

\(PIplim_{\xi}\)

State

Integrator output

v_str

PIqlim_xi

\(PIqlim_{\xi}\)

State

Integrator output

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

INTw_y

\(INTw_{y}\)

State

Integrator output

v_str

PIvd_xi

\(PIvd_{\xi}\)

State

Integrator output

v_str

PIvq_xi

\(PIvq_{\xi}\)

State

Integrator output

v_str

PIId_xi

\(PIId_{\xi}\)

State

Integrator output

v_str

PIIq_xi

\(PIIq_{\xi}\)

State

Integrator output

v_str

udLag_y

\(udLag_{y}\)

State

State in lag transfer function

v_str

uqLag_y

\(uqLag_{y}\)

State

State in lag transfer function

v_str

ud

\(ud\)

AliasState

Alias of udLag_y

uq

\(uq\)

AliasState

Alias of uqLag_y

Paux

\(Paux\)

Algeb

v_str

Qaux

\(Qaux\)

Algeb

v_str

PIplim_y

\(PIplim_{y}\)

Algeb

PI output

v_str

PIqlim_y

\(PIqlim_{y}\)

Algeb

PI output

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

Pe

\(Pe\)

Algeb

active power injection from VSC

v_str

Qe

\(Qe\)

Algeb

reactive power injection from VSC

v_str

Id

\(Id\)

Algeb

d-axis current

v_str

Iq

\(Iq\)

Algeb

q-axis current

v_str

wref

\(wref\)

Algeb

speed ref

pu

v_str

dw_x

\(dw_{x}\)

Algeb

Value before limiter

v_str

dw_y

\(dw_{y}\)

Algeb

Output after limiter and post gain

v_str

vref2

\(vref_{2}\)

Algeb

voltage reference after droop

v_str

PIvd_y

\(PIvd_{y}\)

Algeb

PI output

v_str

PIvq_y

\(PIvq_{y}\)

Algeb

PI output

v_str

PIId_y

\(PIId_{y}\)

Algeb

PI output

v_str

PIIq_y

\(PIIq_{y}\)

Algeb

PI output

v_str

udref

\(udref\)

Algeb

ud reference

v_str

uqref

\(uqref\)

Algeb

uq reference

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

plldw

\(plldw\)

ExtAlgeb

PLL measured freq. deviation

Idref

\(Idref\)

AliasAlgeb

Alias of PIvd_y

Iqref

\(Iqref\)

AliasAlgeb

Alias of PIvq_y

Initialization Equations#

Name

Symbol

Type

Initial Value

Psen_y

\(Psen_{y}\)

State

\(Pe\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(Psen_{y}\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(Qsen_{y}\)

delta

\(\delta\)

State

\(a\)

INTw_y

\(INTw_{y}\)

State

\(wref\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Id_{0}\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Iq_{0}\)

PIId_xi

\(PIId_{\xi}\)

State

\(0.0\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(0.0\)

udLag_y

\(udLag_{y}\)

State

\(udref\)

uqLag_y

\(uqLag_{y}\)

State

\(uqref\)

ud

\(ud\)

AliasState

uq

\(uq\)

AliasState

Paux

\(Paux\)

Algeb

\(0\)

Qaux

\(Qaux\)

Algeb

\(0\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + Psen_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + Qsen_{y}\)

vd

\(vd\)

Algeb

\(vd_{0}\)

vq

\(vq\)

Algeb

\(vq_{0}\)

Pe

\(Pe\)

Algeb

\(Pref\)

Qe

\(Qe\)

Algeb

\(Qref\)

Id

\(Id\)

Algeb

\(Id_{0}\)

Iq

\(Iq\)

Algeb

\(Iq_{0}\)

wref

\(wref\)

Algeb

\(1\)

dw_x

\(dw_{x}\)

Algeb

\(w_{0} \left(INTw_{y} - wref\right)\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax\)

vref2

\(vref_{2}\)

Algeb

\(u vref\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Id_{0} + KPv \left(- vd + vref_{2}\right)\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Iq_{0} - KPv vq\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right)\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right)\)

udref

\(udref\)

Algeb

\(udref_{0}\)

uqref

\(uqref\)

Algeb

\(uqref_{0}\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

plldw

\(plldw\)

ExtAlgeb

Idref

\(Idref\)

AliasAlgeb

Iqref

\(Iqref\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

Psen_y

\(Psen_{y}\)

State

\(Pe - Psen_{y}\)

\(T_c\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe - Qsen_{y}\)

\(T_c\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y} - Psig_{y}\)

\(T_{pm}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y} - Qsig_{y}\)

\(T_{pm}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(KIplim \left(- Psen_{y} + Psig_{y}\right)\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(KIqlim \left(- Qsen_{y} + Qsig_{y}\right)\)

delta

\(\delta\)

State

\(dw_{y}\)

INTw_y

\(INTw_{y}\)

State

\(- INTw_{y} + dd plldw wdrp + wdrp \left(PIplim_{y} - Psen_{y}\right) + wref\)

\(T_{int}\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(KIv \left(- vd + vref_{2}\right)\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(- KIv vq\)

PIId_xi

\(PIId_{\xi}\)

State

\(KIi \left(- Id + PIvd_{y}\right)\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(KIi \left(- Iq + PIvq_{y}\right)\)

udLag_y

\(udLag_{y}\)

State

\(- udLag_{y} + udref\)

\(T_e\)

uqLag_y

\(uqLag_{y}\)

State

\(- uqLag_{y} + uqref\)

\(T_e\)

ud

\(ud\)

AliasState

\(0\)

uq

\(uq\)

AliasState

\(0\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

Paux

\(Paux\)

Algeb

\(Paux\)

Qaux

\(Qaux\)

Algeb

\(Qaux\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + PIplim_{\xi} - PIplim_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + PIqlim_{\xi} - PIqlim_{y}\)

vd

\(vd\)

Algeb

\(u v \cos{\left(a - \delta \right)} - vd\)

vq

\(vq\)

Algeb

\(u v \sin{\left(a - \delta \right)} - vq\)

Pe

\(Pe\)

Algeb

\(Id vd + Iq vq - Pe\)

Qe

\(Qe\)

Algeb

\(Id vq - Iq vd - Qe\)

Id

\(Id\)

Algeb

\(Id rf - Iq xf - udLag_{y} + vd\)

Iq

\(Iq\)

Algeb

\(Id xf + Iq rf - uqLag_{y} + vq\)

wref

\(wref\)

Algeb

\(1 - wref\)

dw_x

\(dw_{x}\)

Algeb

\(- dw_{x} + w_{0} \left(INTw_{y} - wref\right)\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax - dw_{y}\)

vref2

\(vref_{2}\)

Algeb

\(Qdrp \left(PIqlim_{y} u - Qsen_{y}\right) + vref - vref_{2}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(KPv \left(- vd + vref_{2}\right) + PIvd_{\xi} - PIvd_{y}\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(- KPv vq + PIvq_{\xi} - PIvq_{y}\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right) + PIId_{\xi} - PIId_{y}\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right) + PIIq_{\xi} - PIIq_{y}\)

udref

\(udref\)

Algeb

\(Id rf - Iq xf + PIId_{y} - udref + vd\)

uqref

\(uqref\)

Algeb

\(Id xf + Iq rf + PIIq_{y} - uqref + vq\)

a

\(a\)

ExtAlgeb

\(- Pe u\)

v

\(v\)

ExtAlgeb

\(- Qe u\)

plldw

\(plldw\)

ExtAlgeb

\(0\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(gammap p0s\)

ConstService

Qref

\(Q_{ref}\)

\(gammaq q0s\)

ConstService

w0

\(w0\)

\(2 \pi fn\)

ConstService

ixf

\(1/xf\)

\(\frac{1}{xf}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{Pref u}{v}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Qref u}{v}\)

ConstService

vd0

\(v_{d0}\)

\(u v\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

Tint

\(T_{int}\)

\(mf wdrp\)

ConstService

udref0

\(u_{dref0}\)

\(Id_{0} rf - Iq_{0} xf + vd_{0}\)

ConstService

uqref0

\(u_{qref0}\)

\(Id_{0} xf + Iq_{0} rf + vq_{0}\)

ConstService

Discretes#

Name

Symbol

Type

Info

Psig_lim

\(lim_{Psig}\)

AntiWindup

Limiter in Lag

Qsig_lim

\(lim_{Qsig}\)

AntiWindup

Limiter in Lag

dw_lim

\(lim_{dw}\)

HardLimiter

Blocks#

Name

Symbol

Type

Info

Psen

\(Psen\)

Lag

Qsen

\(Qsen\)

Lag

Psig

\(Psig\)

LagAntiWindup

Qsig

\(Qsig\)

LagAntiWindup

PIplim

\(PIplim\)

PIController

PIqlim

\(PIqlim\)

PIController

INTw

\(INTw\)

Integrator

dw

\(dw\)

GainLimiter

PIvd

\(PIvd\)

PIController

PIvq

\(PIvq\)

PIController

PIId

\(PIId\)

PIController

PIIq

\(PIIq\)

PIController

udLag

\(udLag\)

Lag

uqLag

\(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#

Grid-forming inverter with dVOC.

Implementation of EPRI Memorandum

  1. Ramasubramanian, "PROPOSAL FOR SUITE OF GENERIC GRID FORMING (GFM) POSITIVE SEQUENCE MODELS"

Parameters#

Name

Symbol

Description

Default

Unit

Properties

idx

unique device idx

u

\(u\)

connection status

1

bool

name

device name

bus

interface bus id

mandatory

gen

static generator index

mandatory

Sn

\(S_n\)

Model MVA base

100

MVA

rf

\(r_a\)

resistance

0

z

xf

\(x_s\)

reactance

0.200

z

Vdip

\(V_{dip}\)

V threshold to freeze states

0.800

p.u.

Tfrz

\(T_{frz}\)

Time to keep state frozen

0

PQFLAG

P/Q priority flag; 0-Q priority, 1-P priority

1

bool

fn

\(f\)

rated frequency

60

dwmax

\(\Delta \omega_{max}\)

maximum value of frequency deviation

75

dwmin

\(\Delta \omega_{min}\)

minimum value of frequency deviation

-75

wdrp

\(\omega_{drp}\)

frequency droop percentage

0.033

Qdrp

\(Q_{drp}\)

Voltage droop percentage

0.045

Tr

\(T_c\)

transducer time constant

0.005

s

Te

\(T_e\)

ouput state time constant

0.005

s

KPi

\(K_{Pi}\)

current control proportional gain

0.500

non_negative

KIi

\(K_{Ii}\)

current control integral gain

20

non_negative

KPv

\(K_{Pv}\)

voltage control proportional gain

3

non_negative

KIv

\(K_{Iv}\)

voltage control integral gain

10

non_negative

Pmax

\(P_{max}\)

max. active power

1

non_negative,power

Pmin

\(P_{min}\)

min. active power

-1

power

KPplim

\(K_{Pplim}\)

Kp for P limits

5

non_negative

KIplim

\(K_{Iplim}\)

KI for P limits

30

non_negative

Qmax

\(Q_{max}\)

max. reactive power

1

non_negative,power

Qmin

\(Q_{min}\)

min. reactive power

-1

power

KPqlim

\(K_{Pqlim}\)

Kp for Q limits

0.100

non_negative

KIqlim

\(K_{Iqlim}\)

KI for Q limits

1.500

non_negative

Tpm

\(T_{pm}\)

power signal input delay (3 Delta t)

0.025

gammap

\(\gamma_P\)

P ratio of linked static gen

1

gammaq

\(\gamma_Q\)

Q ratio of linked static gen

1

Variables#

Name

Symbol

Type

Description

Unit

Properties

Psen_y

\(Psen_{y}\)

State

State in lag transfer function

v_str

Qsen_y

\(Qsen_{y}\)

State

State in lag transfer function

v_str

Psig_y

\(Psig_{y}\)

State

State in lag TF

v_str

Qsig_y

\(Qsig_{y}\)

State

State in lag TF

v_str

PIplim_xi

\(PIplim_{\xi}\)

State

Integrator output

v_str

PIqlim_xi

\(PIqlim_{\xi}\)

State

Integrator output

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

vref2

\(vref_{2}\)

State

v_str

PIvd_xi

\(PIvd_{\xi}\)

State

Integrator output

v_str

PIvq_xi

\(PIvq_{\xi}\)

State

Integrator output

v_str

PIId_xi

\(PIId_{\xi}\)

State

Integrator output

v_str

PIIq_xi

\(PIIq_{\xi}\)

State

Integrator output

v_str

udLag_y

\(udLag_{y}\)

State

State in lag transfer function

v_str

uqLag_y

\(uqLag_{y}\)

State

State in lag transfer function

v_str

ud

\(ud\)

AliasState

Alias of udLag_y

uq

\(uq\)

AliasState

Alias of uqLag_y

Paux

\(Paux\)

Algeb

v_str

Qaux

\(Qaux\)

Algeb

v_str

PIplim_y

\(PIplim_{y}\)

Algeb

PI output

v_str

PIqlim_y

\(PIqlim_{y}\)

Algeb

PI output

v_str

vd

\(vd\)

Algeb

d-axis voltage

v_str

vq

\(vq\)

Algeb

q-axis voltage

v_str

Pe

\(Pe\)

Algeb

active power injection from VSC

v_str

Qe

\(Qe\)

Algeb

reactive power injection from VSC

v_str

Id

\(Id\)

Algeb

d-axis current

v_str

Iq

\(Iq\)

Algeb

q-axis current

v_str

wref

\(wref\)

Algeb

speed ref

pu

v_str

Vref

\(Vref\)

Algeb

v_str

dw_x

\(dw_{x}\)

Algeb

Value before limiter

v_str

dw_y

\(dw_{y}\)

Algeb

Output after limiter and post gain

v_str

derv

\(derv\)

Algeb

input to voltage integrator

v_str

PIvd_y

\(PIvd_{y}\)

Algeb

PI output

v_str

PIvq_y

\(PIvq_{y}\)

Algeb

PI output

v_str

PIId_y

\(PIId_{y}\)

Algeb

PI output

v_str

PIIq_y

\(PIIq_{y}\)

Algeb

PI output

v_str

udref

\(udref\)

Algeb

ud reference

v_str

uqref

\(uqref\)

Algeb

uq reference

v_str

a

\(a\)

ExtAlgeb

Bus voltage angle

v

\(v\)

ExtAlgeb

Bus voltage magnitude

Idref

\(Idref\)

AliasAlgeb

Alias of PIvd_y

Iqref

\(Iqref\)

AliasAlgeb

Alias of PIvq_y

Initialization Equations#

Name

Symbol

Type

Initial Value

Psen_y

\(Psen_{y}\)

State

\(Pe\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(Psen_{y}\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(Qsen_{y}\)

delta

\(\delta\)

State

\(a\)

vref2

\(vref_{2}\)

State

\(vd\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(Id_{0}\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(Iq_{0}\)

PIId_xi

\(PIId_{\xi}\)

State

\(0.0\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(0.0\)

udLag_y

\(udLag_{y}\)

State

\(udref\)

uqLag_y

\(uqLag_{y}\)

State

\(uqref\)

ud

\(ud\)

AliasState

uq

\(uq\)

AliasState

Paux

\(Paux\)

Algeb

\(0\)

Qaux

\(Qaux\)

Algeb

\(0\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + Psen_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + Qsen_{y}\)

vd

\(vd\)

Algeb

\(vd_{0}\)

vq

\(vq\)

Algeb

\(vq_{0}\)

Pe

\(Pe\)

Algeb

\(Pref\)

Qe

\(Qe\)

Algeb

\(Qref\)

Id

\(Id\)

Algeb

\(Id_{0}\)

Iq

\(Iq\)

Algeb

\(Iq_{0}\)

wref

\(wref\)

Algeb

\(1\)

Vref

\(Vref\)

Algeb

\(vref\)

dw_x

\(dw_{x}\)

Algeb

\(\frac{w_{0} wdrp \left(PIplim_{y} - Psen_{y}\right)}{vref_{2}^{2}}\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax\)

derv

\(derv\)

Algeb

\(0\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(Id_{0} + KPv \left(- vd + vref_{2}\right)\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(Iq_{0} - KPv vq\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right)\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right)\)

udref

\(udref\)

Algeb

\(udref_{0}\)

uqref

\(uqref\)

Algeb

\(uqref_{0}\)

a

\(a\)

ExtAlgeb

v

\(v\)

ExtAlgeb

Idref

\(Idref\)

AliasAlgeb

Iqref

\(Iqref\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

RHS of Equation "T x' = f(x, y)"

T (LHS)

Psen_y

\(Psen_{y}\)

State

\(Pe - Psen_{y}\)

\(T_c\)

Qsen_y

\(Qsen_{y}\)

State

\(Qe - Qsen_{y}\)

\(T_c\)

Psig_y

\(Psig_{y}\)

State

\(Paux + Psen_{y} - Psig_{y}\)

\(T_{pm}\)

Qsig_y

\(Qsig_{y}\)

State

\(Qaux + Qsen_{y} - Qsig_{y}\)

\(T_{pm}\)

PIplim_xi

\(PIplim_{\xi}\)

State

\(KIplim \left(- Psen_{y} + Psig_{y}\right)\)

PIqlim_xi

\(PIqlim_{\xi}\)

State

\(KIqlim \left(- Qsen_{y} + Qsig_{y}\right)\)

delta

\(\delta\)

State

\(dw_{y}\)

vref2

\(vref_{2}\)

State

\(derv w_{0}\)

PIvd_xi

\(PIvd_{\xi}\)

State

\(KIv \left(- vd + vref_{2}\right)\)

PIvq_xi

\(PIvq_{\xi}\)

State

\(- KIv vq\)

PIId_xi

\(PIId_{\xi}\)

State

\(KIi \left(- Id + PIvd_{y}\right)\)

PIIq_xi

\(PIIq_{\xi}\)

State

\(KIi \left(- Iq + PIvq_{y}\right)\)

udLag_y

\(udLag_{y}\)

State

\(- udLag_{y} + udref\)

\(T_e\)

uqLag_y

\(uqLag_{y}\)

State

\(- uqLag_{y} + uqref\)

\(T_e\)

ud

\(ud\)

AliasState

\(0\)

uq

\(uq\)

AliasState

\(0\)

Algebraic Equations#

Name

Symbol

Type

RHS of Equation "0 = g(x, y)"

Paux

\(Paux\)

Algeb

\(Paux\)

Qaux

\(Qaux\)

Algeb

\(Qaux\)

PIplim_y

\(PIplim_{y}\)

Algeb

\(KPplim \left(- Psen_{y} + Psig_{y}\right) + PIplim_{\xi} - PIplim_{y}\)

PIqlim_y

\(PIqlim_{y}\)

Algeb

\(KPqlim \left(- Qsen_{y} + Qsig_{y}\right) + PIqlim_{\xi} - PIqlim_{y}\)

vd

\(vd\)

Algeb

\(u v \cos{\left(a - \delta \right)} - vd\)

vq

\(vq\)

Algeb

\(u v \sin{\left(a - \delta \right)} - vq\)

Pe

\(Pe\)

Algeb

\(Id vd + Iq vq - Pe\)

Qe

\(Qe\)

Algeb

\(Id vq - Iq vd - Qe\)

Id

\(Id\)

Algeb

\(Id rf - Iq xf - udLag_{y} + vd\)

Iq

\(Iq\)

Algeb

\(Id xf + Iq rf - uqLag_{y} + vq\)

wref

\(wref\)

Algeb

\(1 - wref\)

Vref

\(Vref\)

Algeb

\(- Vref + vref\)

dw_x

\(dw_{x}\)

Algeb

\(- dw_{x} + \frac{w_{0} wdrp \left(PIplim_{y} - Psen_{y}\right)}{vref_{2}^{2}}\)

dw_y

\(dw_{y}\)

Algeb

\(dw_{lim zi} dw_{x} + dw_{lim zl} dwmin + dw_{lim zu} dwmax - dw_{y}\)

derv

\(derv\)

Algeb

\(Kdvoc vref_{2} \left(Vref - vref_{2}\right) \left(Vref + vref_{2}\right) - derv + \frac{wdrp \left(PIqlim_{y} - Qsen_{y}\right)}{vref_{2}}\)

PIvd_y

\(PIvd_{y}\)

Algeb

\(KPv \left(- vd + vref_{2}\right) + PIvd_{\xi} - PIvd_{y}\)

PIvq_y

\(PIvq_{y}\)

Algeb

\(- KPv vq + PIvq_{\xi} - PIvq_{y}\)

PIId_y

\(PIId_{y}\)

Algeb

\(KPi \left(- Id + PIvd_{y}\right) + PIId_{\xi} - PIId_{y}\)

PIIq_y

\(PIIq_{y}\)

Algeb

\(KPi \left(- Iq + PIvq_{y}\right) + PIIq_{\xi} - PIIq_{y}\)

udref

\(udref\)

Algeb

\(Id rf - Iq xf + PIId_{y} - udref + vd\)

uqref

\(uqref\)

Algeb

\(Id xf + Iq rf + PIIq_{y} - uqref + vq\)

a

\(a\)

ExtAlgeb

\(- Pe u\)

v

\(v\)

ExtAlgeb

\(- Qe u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(gammap p0s\)

ConstService

Qref

\(Q_{ref}\)

\(gammaq q0s\)

ConstService

w0

\(w0\)

\(2 \pi fn\)

ConstService

ixf

\(1/xf\)

\(\frac{1}{xf}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{Pref u}{v}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Qref u}{v}\)

ConstService

vd0

\(v_{d0}\)

\(u v\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

Kdvoc

\(Kdvoc\)

\(\frac{400000000 wdrp}{\left(99990000 - 2 \left(100 - 100 Qdrp\right)^{2}\right)^{2}}\)

ConstService

udref0

\(u_{dref0}\)

\(Id_{0} rf - Iq_{0} xf + vd_{0}\)

ConstService

uqref0

\(u_{qref0}\)

\(Id_{0} xf + Iq_{0} rf + vq_{0}\)

ConstService

Discretes#

Name

Symbol

Type

Info

Psig_lim

\(lim_{Psig}\)

AntiWindup

Limiter in Lag

Qsig_lim

\(lim_{Qsig}\)

AntiWindup

Limiter in Lag

dw_lim

\(lim_{dw}\)

HardLimiter

Blocks#

Name

Symbol

Type

Info

Psen

\(Psen\)

Lag

Qsen

\(Qsen\)

Lag

Psig

\(Psig\)

LagAntiWindup

Qsig

\(Qsig\)

LagAntiWindup

PIplim

\(PIplim\)

PIController

PIqlim

\(PIqlim\)

PIController

dw

\(dw\)

GainLimiter

PIvd

\(PIvd\)

PIController

PIvq

\(PIvq\)

PIController

PIId

\(PIId\)

PIController

PIIq

\(PIIq\)

PIController

udLag

\(udLag\)

Lag

uqLag

\(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)