RenGen#

Renewable generator (converter) group.

See 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

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

\(y_{S_1}\)

State

State in lag TF

v_str

S2_y

\(y_{S_2}\)

State

State in lag transfer function

v_str

S0_y

\(y_{S_0}\)

State

State in lag TF

v_str

LVG_y

\(y_{L_{VG}}\)

Algeb

Output of piecewise

v_str

Ipcmd

\(I_{pcmd}\)

Algeb

current component for active power

v_str

Iqcmd

\(I_{qcmd}\)

Algeb

current component for reactive power

v_str

LVPL_y

\(y_{L_{VPL}}\)

Algeb

Output of piecewise

v_str

Ipout

\(I_{pout}\)

Algeb

Output Ip current

v_str

HVG_x

\(x_{H_{VG}}\)

Algeb

Value before limiter

v_str

HVG_y

\(y_{H_{VG}}\)

Algeb

Output after limiter and post gain

v_str

Iqout_x

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

Algeb

Value before limiter

v_str

Iqout_y

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

Algeb

Output after limiter and post gain

v_str

Pe

\(P_{e}\)

Algeb

Active power output

v_str

Qe

\(Q_{e}\)

Algeb

Reactive power output

v_str

a

\(\theta\)

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

\(y_{S_1}\)

State

\(- I_{qcmd}\)

S2_y

\(y_{S_2}\)

State

\(1.0 V\)

S0_y

\(y_{S_0}\)

State

\(I_{pcmd}\)

LVG_y

\(y_{L_{VG}}\)

Algeb

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

\(I_{pcmd}\)

Algeb

\(\frac{I_{pcmd0} \operatorname{Indicator}{\left(y_{L_{VG}} > 0 \right)}}{y_{L_{VG}}} + \operatorname{Indicator}{\left(y_{L_{VG}} \leq 0 \right)}\)

Iqcmd

\(I_{qcmd}\)

Algeb

\(I_{qcmd0}\)

LVPL_y

\(y_{L_{VPL}}\)

Algeb

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

\(I_{pout}\)

Algeb

\(I_{pcmd} y_{L_{VG}}\)

HVG_x

\(x_{H_{VG}}\)

Algeb

\(K_{hv} \left(V - V_{olim}\right)\)

HVG_y

\(y_{H_{VG}}\)

Algeb

\(HVG_{lim zi} x_{H_{VG}}\)

Iqout_x

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

Algeb

\(- y_{H_{VG}} + y_{S_1}\)

Iqout_y

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

Algeb

\(I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}}\)

Pe

\(P_{e}\)

Algeb

\(P_{0}\)

Qe

\(Q_{e}\)

Algeb

\(Q_{0}\)

a

\(\theta\)

ExtAlgeb

v

\(V\)

ExtAlgeb

vd

\(vd\)

AliasAlgeb

Differential Equations#

Name

Symbol

Type

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

T (LHS)

S1_y

\(y_{S_1}\)

State

\(- I_{qcmd} - y_{S_1}\)

\(T_g\)

S2_y

\(y_{S_2}\)

State

\(1.0 V - y_{S_2}\)

\(T_{fltr}\)

S0_y

\(y_{S_0}\)

State

\(I_{pcmd} - y_{S_0}\)

\(T_g\)

Algebraic Equations#

Name

Symbol

Type

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

LVG_y

\(y_{L_{VG}}\)

Algeb

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

\(I_{pcmd}\)

Algeb

\(- I_{pcmd} + Ipcmd_{0 LVG}\)

Iqcmd

\(I_{qcmd}\)

Algeb

\(I_{qcmd0} - I_{qcmd}\)

LVPL_y

\(y_{L_{VPL}}\)

Algeb

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

\(I_{pout}\)

Algeb

\(- I_{pout} + y_{L_{VG}} y_{S_0}\)

HVG_x

\(x_{H_{VG}}\)

Algeb

\(K_{hv} \left(V - V_{olim}\right) - x_{H_{VG}}\)

HVG_y

\(y_{H_{VG}}\)

Algeb

\(HVG_{lim zi} x_{H_{VG}} - y_{H_{VG}}\)

Iqout_x

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

Algeb

\(- x_{I^{qout}} - y_{H_{VG}} + y_{S_1}\)

Iqout_y

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

Algeb

\(I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}} - y_{I^{qout}}\)

Pe

\(P_{e}\)

Algeb

\(I_{pout} V - P_{e}\)

Qe

\(Q_{e}\)

Algeb

\(- Q_{e} + V y_{I^{qout}}\)

a

\(\theta\)

ExtAlgeb

\(- P_{e}\)

v

\(V\)

ExtAlgeb

\(- Q_{e}\)

vd

\(vd\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

p0

\(P_0\)

\(P_{0s} \gamma_{P}\)

ConstService

q0

\(Q_0\)

\(Q_{0s} \gamma_{Q}\)

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

\(I_{pcmd}\)

PostInitService

kLVG

\(k_{LVG}\)

\(\frac{1}{- L_{vpnt0} + L_{vpnt1}}\)

ConstService

kLVPL

\(k_{LVPL}\)

\(\frac{L_{vpl1} z_{Lvplsw}}{B_{rkpt} - Z_{erox}}\)

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

\(y_{S_1}\)

State

State in lag TF

v_str

S2_y

\(y_{S_2}\)

State

State in lag transfer function

v_str

S0_y

\(y_{S_0}\)

State

State in lag TF

v_str

am

\(\theta_{m}\)

ExtState

Measured angle

LVG_y

\(y_{L_{VG}}\)

Algeb

Output of piecewise

v_str

Ipcmd

\(I_{pcmd}\)

Algeb

current component for active power

v_str

Iqcmd

\(I_{qcmd}\)

Algeb

current component for reactive power

v_str

LVPL_y

\(y_{L_{VPL}}\)

Algeb

Output of piecewise

v_str

Ipout

\(I_{pout}\)

Algeb

Output Ip current

v_str

HVG_x

\(x_{H_{VG}}\)

Algeb

Value before limiter

v_str

HVG_y

\(y_{H_{VG}}\)

Algeb

Output after limiter and post gain

v_str

Iqout_x

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

Algeb

Value before limiter

v_str

Iqout_y

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

Algeb

Output after limiter and post gain

v_str

Pe

\(P_{e}\)

Algeb

Active power output

v_str

Qe

\(Q_{e}\)

Algeb

Reactive power output

v_str

vd

\(V_{d}\)

Algeb

d-axis voltage

v_str

vq

\(V_{q}\)

Algeb

q-axis voltage

v_str

a

\(\theta\)

ExtAlgeb

Bus voltage angle

v

\(V\)

ExtAlgeb

Bus voltage magnitude

Initialization Equations#

Name

Symbol

Type

Initial Value

S1_y

\(y_{S_1}\)

State

\(- I_{qcmd}\)

S2_y

\(y_{S_2}\)

State

\(1.0 V\)

S0_y

\(y_{S_0}\)

State

\(I_{pcmd}\)

am

\(\theta_{m}\)

ExtState

LVG_y

\(y_{L_{VG}}\)

Algeb

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

\(I_{pcmd}\)

Algeb

\(\frac{I_{pcmd0} \operatorname{Indicator}{\left(y_{L_{VG}} > 0 \right)}}{y_{L_{VG}}} + \operatorname{Indicator}{\left(y_{L_{VG}} \leq 0 \right)}\)

Iqcmd

\(I_{qcmd}\)

Algeb

\(I_{qcmd0}\)

LVPL_y

\(y_{L_{VPL}}\)

Algeb

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

\(I_{pout}\)

Algeb

\(I_{pcmd} y_{L_{VG}}\)

HVG_x

\(x_{H_{VG}}\)

Algeb

\(K_{hv} \left(V - V_{olim}\right)\)

HVG_y

\(y_{H_{VG}}\)

Algeb

\(HVG_{lim zi} x_{H_{VG}}\)

Iqout_x

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

Algeb

\(- y_{H_{VG}} + y_{S_1}\)

Iqout_y

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

Algeb

\(I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}}\)

Pe

\(P_{e}\)

Algeb

\(P_{0}\)

Qe

\(Q_{e}\)

Algeb

\(Q_{0}\)

vd

\(V_{d}\)

Algeb

\(V\)

vq

\(V_{q}\)

Algeb

\(0\)

a

\(\theta\)

ExtAlgeb

v

\(V\)

ExtAlgeb

Differential Equations#

Name

Symbol

Type

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

T (LHS)

S1_y

\(y_{S_1}\)

State

\(- I_{qcmd} - y_{S_1}\)

\(T_g\)

S2_y

\(y_{S_2}\)

State

\(1.0 V - y_{S_2}\)

\(T_{fltr}\)

S0_y

\(y_{S_0}\)

State

\(I_{pcmd} - y_{S_0}\)

\(T_g\)

am

\(\theta_{m}\)

ExtState

\(0\)

Algebraic Equations#

Name

Symbol

Type

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

LVG_y

\(y_{L_{VG}}\)

Algeb

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

\(I_{pcmd}\)

Algeb

\(- I_{pcmd} + Ipcmd_{0 LVG}\)

Iqcmd

\(I_{qcmd}\)

Algeb

\(I_{qcmd0} - I_{qcmd}\)

LVPL_y

\(y_{L_{VPL}}\)

Algeb

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

\(I_{pout}\)

Algeb

\(- I_{pout} + y_{L_{VG}} y_{S_0}\)

HVG_x

\(x_{H_{VG}}\)

Algeb

\(K_{hv} \left(V - V_{olim}\right) - x_{H_{VG}}\)

HVG_y

\(y_{H_{VG}}\)

Algeb

\(HVG_{lim zi} x_{H_{VG}} - y_{H_{VG}}\)

Iqout_x

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

Algeb

\(- x_{I^{qout}} - y_{H_{VG}} + y_{S_1}\)

Iqout_y

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

Algeb

\(I_{olim} Iqout_{lim zl} + Iqout_{lim zi} x_{I^{qout}} - y_{I^{qout}}\)

Pe

\(P_{e}\)

Algeb

\(I_{pout} V_{d} - P_{e} + V_{q} y_{I^{qout}}\)

Qe

\(Q_{e}\)

Algeb

\(- I_{pout} V_{q} - Q_{e} + V_{d} y_{I^{qout}}\)

vd

\(V_{d}\)

Algeb

\(V \cos{\left(z_{ heta m} \left(\theta - \theta_{m}\right) \right)} - V_{d}\)

vq

\(V_{q}\)

Algeb

\(- V \sin{\left(z_{ heta m} \left(\theta - \theta_{m}\right) \right)} - V_{q}\)

a

\(\theta\)

ExtAlgeb

\(- P_{e}\)

v

\(V\)

ExtAlgeb

\(- Q_{e}\)

Services#

Name

Symbol

Equation

Type

p0

\(P_0\)

\(P_{0s} \gamma_{P}\)

ConstService

q0

\(Q_0\)

\(Q_{0s} \gamma_{Q}\)

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

\(I_{pcmd}\)

PostInitService

kLVG

\(k_{LVG}\)

\(\frac{1}{- L_{vpnt0} + L_{vpnt1}}\)

ConstService

kLVPL

\(k_{LVPL}\)

\(\frac{L_{vpl1} z_{Lvplsw}}{B_{rkpt} - Z_{erox}}\)

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

\(\Delta\omega\)

State

delta virtual rotor speed

pu (Hz)

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

PIvd_xi

\(xi_{PIvd}\)

State

Integrator output

v_str

PIvq_xi

\(xi_{PIvq}\)

State

Integrator output

v_str

PIId_xi

\(xi_{PIId}\)

State

Integrator output

v_str

PIIq_xi

\(xi_{PIIq}\)

State

Integrator output

v_str

udLag_y

\(y_{udLag}\)

State

State in lag transfer function

v_str

uqLag_y

\(y_{uqLag}\)

State

State in lag transfer function

v_str

ud

\(ud\)

AliasState

Alias of udLag_y

uq

\(uq\)

AliasState

Alias of uqLag_y

Pref2

\(P_{ref2}\)

Algeb

active power reference after adjusting by frequency

v_str

vref2

\(v_{ref2}\)

Algeb

voltage reference after adjusted by reactive power

v_str

omega

\(\omega\)

Algeb

virtual rotor speed

pu (Hz)

v_str

vd

\(V_{d}\)

Algeb

d-axis voltage

v_str

vq

\(V_{q}\)

Algeb

q-axis voltage

v_str

Pe

\(P_{e}\)

Algeb

active power injection from VSC

v_str

Qe

\(Q_{e}\)

Algeb

reactive power injection from VSC

v_str

Id

\(I_{d}\)

Algeb

d-axis current

v_str

Iq

\(I_{q}\)

Algeb

q-axis current

v_str

PIvd_y

\(y_{PIvd}\)

Algeb

PI output

v_str

PIvq_y

\(y_{PIvq}\)

Algeb

PI output

v_str

PIId_y

\(y_{PIId}\)

Algeb

PI output

v_str

PIIq_y

\(y_{PIIq}\)

Algeb

PI output

v_str

udref

\(u_{dref}\)

Algeb

ud reference

v_str

uqref

\(u_{qref}\)

Algeb

uq reference

v_str

a

\(\theta\)

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

\(\Delta\omega\)

State

\(0\)

delta

\(\delta\)

State

\(\theta\)

PIvd_xi

\(xi_{PIvd}\)

State

\(I_{d0}\)

PIvq_xi

\(xi_{PIvq}\)

State

\(I_{q0}\)

PIId_xi

\(xi_{PIId}\)

State

\(0.0\)

PIIq_xi

\(xi_{PIIq}\)

State

\(0.0\)

udLag_y

\(y_{udLag}\)

State

\(u_{dref}\)

uqLag_y

\(y_{uqLag}\)

State

\(u_{qref}\)

ud

\(ud\)

AliasState

uq

\(uq\)

AliasState

Pref2

\(P_{ref2}\)

Algeb

\(P_{ref} u\)

vref2

\(v_{ref2}\)

Algeb

\(V_{ref} u\)

omega

\(\omega\)

Algeb

\(u\)

vd

\(V_{d}\)

Algeb

\(v_{d0}\)

vq

\(V_{q}\)

Algeb

\(v_{q0}\)

Pe

\(P_{e}\)

Algeb

\(P_{ref}\)

Qe

\(Q_{e}\)

Algeb

\(Q_{ref}\)

Id

\(I_{d}\)

Algeb

\(I_{d0}\)

Iq

\(I_{q}\)

Algeb

\(I_{q0}\)

PIvd_y

\(y_{PIvd}\)

Algeb

\(I_{d0} + kp_{vd} \left(V_{d} - v_{ref2}\right)\)

PIvq_y

\(y_{PIvq}\)

Algeb

\(I_{q0} + V_{q} kp_{vq}\)

PIId_y

\(y_{PIId}\)

Algeb

\(kp_{di} \left(I_{d} - y_{PIvd}\right)\)

PIIq_y

\(y_{PIIq}\)

Algeb

\(kp_{qi} \left(I_{q} - y_{PIvq}\right)\)

udref

\(u_{dref}\)

Algeb

\(u_{dref0}\)

uqref

\(u_{qref}\)

Algeb

\(u_{qref0}\)

a

\(\theta\)

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

\(\Delta\omega\)

State

\(- D \Delta\omega - P_{e} + P_{ref2}\)

\(M\)

delta

\(\delta\)

State

\(2 \pi \Delta\omega f\)

PIvd_xi

\(xi_{PIvd}\)

State

\(ki_{vd} \left(V_{d} - v_{ref2}\right)\)

PIvq_xi

\(xi_{PIvq}\)

State

\(V_{q} ki_{vq}\)

PIId_xi

\(xi_{PIId}\)

State

\(ki_{di} \left(I_{d} - y_{PIvd}\right)\)

PIIq_xi

\(xi_{PIIq}\)

State

\(ki_{qi} \left(I_{q} - y_{PIvq}\right)\)

udLag_y

\(y_{udLag}\)

State

\(u_{dref} - y_{udLag}\)

\(T_c\)

uqLag_y

\(y_{uqLag}\)

State

\(u_{qref} - y_{uqLag}\)

\(T_c\)

ud

\(ud\)

AliasState

\(0\)

uq

\(uq\)

AliasState

\(0\)

Algebraic Equations#

Name

Symbol

Type

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

Pref2

\(P_{ref2}\)

Algeb

\(- P_{ref2} + P_{ref} u - \Delta\omega k_{\omega}\)

vref2

\(v_{ref2}\)

Algeb

\(V_{ref} + k_{v} \left(- Q_{e} + Q_{ref} u\right) - v_{ref2}\)

omega

\(\omega\)

Algeb

\(\Delta\omega - \omega + 1\)

vd

\(V_{d}\)

Algeb

\(V u \cos{\left(\delta - \theta \right)} - V_{d}\)

vq

\(V_{q}\)

Algeb

\(- V u \sin{\left(\delta - \theta \right)} - V_{q}\)

Pe

\(P_{e}\)

Algeb

\(I_{d} V_{d} + I_{q} V_{q} - P_{e}\)

Qe

\(Q_{e}\)

Algeb

\(I_{d} V_{q} - I_{q} V_{d} - Q_{e}\)

Id

\(I_{d}\)

Algeb

\(I_{d} r_{a} - I_{q} x_{s} + V_{d} - y_{udLag}\)

Iq

\(I_{q}\)

Algeb

\(I_{d} x_{s} + I_{q} r_{a} + V_{q} - y_{uqLag}\)

PIvd_y

\(y_{PIvd}\)

Algeb

\(kp_{vd} \left(V_{d} - v_{ref2}\right) + xi_{PIvd} - y_{PIvd}\)

PIvq_y

\(y_{PIvq}\)

Algeb

\(V_{q} kp_{vq} + xi_{PIvq} - y_{PIvq}\)

PIId_y

\(y_{PIId}\)

Algeb

\(kp_{di} \left(I_{d} - y_{PIvd}\right) + xi_{PIId} - y_{PIId}\)

PIIq_y

\(y_{PIIq}\)

Algeb

\(kp_{qi} \left(I_{q} - y_{PIvq}\right) + xi_{PIIq} - y_{PIIq}\)

udref

\(u_{dref}\)

Algeb

\(- Iqref x_{s} + V_{d} - u_{dref} + y_{PIId}\)

uqref

\(u_{qref}\)

Algeb

\(Idref x_{s} + V_{q} - u_{qref} + y_{PIIq}\)

a

\(\theta\)

ExtAlgeb

\(- P_{e} u\)

v

\(V\)

ExtAlgeb

\(- Q_{e} u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(P_{0s} \gamma_{P}\)

ConstService

Qref

\(Q_{ref}\)

\(Q_{0s} \gamma_{Q}\)

ConstService

ixs

\(1/xs\)

\(\frac{1}{x_{s}}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{P_{ref} u}{V}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Q_{ref} u}{V}\)

ConstService

vd0

\(v_{d0}\)

\(V u\)

ConstService

vq0

\(v_{q0}\)

\(0\)

ConstService

udref0

\(u_{dref0}\)

\(I_{d0} r_{a} - I_{q0} x_{s} + v_{d0}\)

ConstService

uqref0

\(u_{qref0}\)

\(I_{d0} x_{s} + I_{q0} r_{a} + v_{q0}\)

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

\(\Delta\omega\)

State

delta virtual rotor speed

pu (Hz)

v_str

delta

\(\delta\)

State

virtual delta

rad

v_str

PIvd_xi

\(xi_{PIvd}\)

State

Integrator output

v_str

PIvq_xi

\(xi_{PIvq}\)

State

Integrator output

v_str

LGId_y

\(y_{LGId}\)

State

State in lag transfer function

v_str

LGIq_y

\(y_{LGIq}\)

State

State in lag transfer function

v_str

Pref2

\(P_{ref2}\)

Algeb

active power reference after adjusting by frequency

v_str

vref2

\(v_{ref2}\)

Algeb

voltage reference after adjusted by reactive power

v_str

omega

\(\omega\)

Algeb

virtual rotor speed

pu (Hz)

v_str

vd

\(V_{d}\)

Algeb

d-axis voltage

v_str

vq

\(V_{q}\)

Algeb

q-axis voltage

v_str

Pe

\(P_{e}\)

Algeb

active power injection from VSC

v_str

Qe

\(Q_{e}\)

Algeb

reactive power injection from VSC

v_str

Id

\(I_{d}\)

Algeb

d-axis current

v_str

Iq

\(I_{q}\)

Algeb

q-axis current

v_str

PIvd_y

\(y_{PIvd}\)

Algeb

PI output

v_str

PIvq_y

\(y_{PIvq}\)

Algeb

PI output

v_str

a

\(\theta\)

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

\(\Delta\omega\)

State

\(0\)

delta

\(\delta\)

State

\(\theta\)

PIvd_xi

\(xi_{PIvd}\)

State

\(I_{d0}\)

PIvq_xi

\(xi_{PIvq}\)

State

\(I_{q0}\)

LGId_y

\(y_{LGId}\)

State

\(y_{PIvd}\)

LGIq_y

\(y_{LGIq}\)

State

\(y_{PIvq}\)

Pref2

\(P_{ref2}\)

Algeb

\(P_{ref} u\)

vref2

\(v_{ref2}\)

Algeb

\(V_{ref} u\)

omega

\(\omega\)

Algeb

\(u\)

vd

\(V_{d}\)

Algeb

\(v_{d0}\)

vq

\(V_{q}\)

Algeb

\(v_{q0}\)

Pe

\(P_{e}\)

Algeb

\(P_{ref}\)

Qe

\(Q_{e}\)

Algeb

\(Q_{ref}\)

Id

\(I_{d}\)

Algeb

\(I_{d0}\)

Iq

\(I_{q}\)

Algeb

\(I_{q0}\)

PIvd_y

\(y_{PIvd}\)

Algeb

\(I_{d0} + kp_{vd} \left(V_{d} - v_{ref2}\right)\)

PIvq_y

\(y_{PIvq}\)

Algeb

\(I_{q0} + V_{q} kp_{vq}\)

a

\(\theta\)

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

\(\Delta\omega\)

State

\(- D \Delta\omega - P_{e} + P_{ref2}\)

\(M\)

delta

\(\delta\)

State

\(2 \pi \Delta\omega f\)

PIvd_xi

\(xi_{PIvd}\)

State

\(ki_{vd} \left(V_{d} - v_{ref2}\right)\)

PIvq_xi

\(xi_{PIvq}\)

State

\(V_{q} ki_{vq}\)

LGId_y

\(y_{LGId}\)

State

\(- y_{LGId} + y_{PIvd}\)

\(T_{Id}\)

LGIq_y

\(y_{LGIq}\)

State

\(- y_{LGIq} + y_{PIvq}\)

\(T_{Iq}\)

Algebraic Equations#

Name

Symbol

Type

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

Pref2

\(P_{ref2}\)

Algeb

\(- P_{ref2} + P_{ref} u - \Delta\omega k_{\omega}\)

vref2

\(v_{ref2}\)

Algeb

\(V_{ref} + k_{v} \left(- Q_{e} + Q_{ref} u\right) - v_{ref2}\)

omega

\(\omega\)

Algeb

\(\Delta\omega - \omega + 1\)

vd

\(V_{d}\)

Algeb

\(V u \cos{\left(\delta - \theta \right)} - V_{d}\)

vq

\(V_{q}\)

Algeb

\(- V u \sin{\left(\delta - \theta \right)} - V_{q}\)

Pe

\(P_{e}\)

Algeb

\(I_{d} V_{d} + I_{q} V_{q} - P_{e}\)

Qe

\(Q_{e}\)

Algeb

\(I_{d} V_{q} - I_{q} V_{d} - Q_{e}\)

Id

\(I_{d}\)

Algeb

\(- I_{d} + y_{LGId}\)

Iq

\(I_{q}\)

Algeb

\(- I_{q} + y_{LGIq}\)

PIvd_y

\(y_{PIvd}\)

Algeb

\(kp_{vd} \left(V_{d} - v_{ref2}\right) + xi_{PIvd} - y_{PIvd}\)

PIvq_y

\(y_{PIvq}\)

Algeb

\(V_{q} kp_{vq} + xi_{PIvq} - y_{PIvq}\)

a

\(\theta\)

ExtAlgeb

\(- P_{e} u\)

v

\(V\)

ExtAlgeb

\(- Q_{e} u\)

Idref

\(Idref\)

AliasAlgeb

\(0\)

Iqref

\(Iqref\)

AliasAlgeb

\(0\)

Services#

Name

Symbol

Equation

Type

Pref

\(P_{ref}\)

\(P_{0s} \gamma_{P}\)

ConstService

Qref

\(Q_{ref}\)

\(Q_{0s} \gamma_{Q}\)

ConstService

ixs

\(1/xs\)

\(\frac{1}{x_{s}}\)

ConstService

Id0

\(I_{d0}\)

\(\frac{P_{ref} u}{V}\)

ConstService

Iq0

\(I_{q0}\)

\(- \frac{Q_{ref} u}{V}\)

ConstService

vd0

\(v_{d0}\)

\(V u\)

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)