GGOV1

Source: GridKit/Model/PhasorDynamics/Governor/GGOV1/README.md

GE General Governor-Turbine Model (GGOV1)

GGOV1 is a general governor-turbine model with electrical-power measurement, speed/load reference selection, proportional/integral/derivative governor control, load limiting, acceleration limiting, temperature limiting, actuator rate limits, turbine lag/lead dynamics, and optional diesel damping.

Notes:

  • Internal control, valve-stroke, and turbine-power quantities are on the GGOV1 component base unless otherwise stated.

  • The dashed speed deadband block and Db source field are only for GGOV1D. GGOV1 uses the speed input directly.

  • Source governor-response settings may modify \(V^{\max}\) and \(V^{\min}\) before the equations are evaluated.

  • The source diagram notes that Rup and Rdown inputs are not implemented in Simulator; the equations below do not use those source fields.

Block Diagram

Standard model of the GGOV1 Governor.

../../../../../_images/GGOV1_diagram.png

Figure 1: Governor GGOV1 model. Figure courtesy of PowerWorld

Model Parameters

Symbol

Units

JSON

Description

Typical Value

Note

\(P^{\mathrm{rate}}\)

[MW]

Trate

Optional turbine-rating power base

0.0

Trate > 0 defines the governor base

\(I_R\)

[integer]

Rselect

Droop feedback selector

1

Source label: Rselect; selects speed, electrical power, or valve feedback

\(s_\mathrm{flag}\)

[binary]

Flag

Turbine-speed multiplier selector

1

1 uses \(1+\omega\), 0 uses 1.0

\(R\)

[p.u.]

R

Permanent droop

0.05

Source label: r

\(T_\mathrm{pelec}\)

[sec]

Tpelec

Electrical-power measurement time constant

0.0

State 1 in Fig. 1

\(e^{\max}\)

[p.u.]

Maxerr

Maximum governor error

1.0

Source label: maxerr

\(e^{\min}\)

[p.u.]

Minerr

Minimum governor error

-1.0

Source label: minerr

\(K_\mathrm{pgov}\)

[p.u.]

Kpgov

Governor proportional gain

10.0

Block name: Kpgov

\(K_\mathrm{igov}\)

[p.u./s]

Kigov

Governor integral gain

1.0

Block name: Kigov; State 3

\(K_\mathrm{dgov}\)

[p.u.]

Kdgov

Governor differential gain

0.0

Block name: Kdgov; State 2

\(T_\mathrm{dgov}\)

[sec]

Tdgov

Governor differential time constant

0.0

Block name: Tdgov

\(V^{\max}\)

[p.u.]

Vmax

Maximum governor output before actuator

1.0

Governor response limits may adjust this value

\(V^{\min}\)

[p.u.]

Vmin

Minimum governor output before actuator

0.0

Governor response limits may adjust this value

\(T_\mathrm{act}\)

[sec]

Tact

Turbine actuator time constant

0.1

State 4 in Fig. 1

\(R_\mathrm{open}\)

[p.u./s]

Ropen

Maximum actuator opening rate

1.0

Source label: Ropen

\(R_\mathrm{close}\)

[p.u./s]

Rclose

Maximum actuator closing rate

-1.0

Source label: Rclose

\(K_\mathrm{turb}\)

[p.u.]

Kturb

Turbine gain

1.0

Block name: Kturb

\(W_\mathrm{fnl}\)

[p.u.]

Wfnl

No-load fuel flow

0.0

Source label: Wfnl

\(T_B\)

[sec]

Tb

Turbine lead-lag denominator time constant

0.0

State 5 in Fig. 1

\(T_C\)

[sec]

Tc

Turbine lead-lag numerator time constant

0.0

Block name: Tc

\(T_\mathrm{eng}\)

[sec]

Teng

Engine transport lag

0.0

Source label: e^{-sTeng}; source transport delay is not represented as a differential state below

\(T_\mathrm{fload}\)

[sec]

Tfload

Load-limiter lag time constant

0.0

State 6 in Fig. 1

\(K_\mathrm{pload}\)

[p.u.]

Kpload

Load-limiter proportional gain

0.0

Block name: Kpload; note path changes when zero

\(K_\mathrm{iload}\)

[p.u./s]

Kiload

Load-limiter integral gain

0.0

State 7 in Fig. 1

\(L_\mathrm{dref}\)

[p.u.]

Ldref

Load reference

1.0

Source label: Ldref

\(D_m\)

[p.u.]

Dm

Diesel damping gain

0.0

Source label: Dm; sign-dependent speed term in Fig. 1

\(K_\mathrm{imw}\)

[p.u./s]

Kimw

Supervisory load-control integral gain

0.0

State 8 in Fig. 1

\(A_\mathrm{set}\)

[p.u.]

Aset

Acceleration-control reference

0.0

Source label: aset

\(K_A\)

[p.u.]

Ka

Acceleration-control gain

0.0

Block name: KA

\(T_A\)

[sec]

Ta

Acceleration-control time constant

0.0

State 9 in Fig. 1

\(T_\mathrm{sa}\)

[sec]

Tsa

Temperature-detection numerator time constant

0.0

State 10 in Fig. 1

\(T_\mathrm{sb}\)

[sec]

Tsb

Temperature-detection denominator time constant

0.0

State 10 in Fig. 1

\(R_\mathrm{up}\)

[p.u./s]

Rup

Source upward ramp input

0.0

Source note says not implemented in Simulator

\(R_\mathrm{down}\)

[p.u./s]

Rdown

Source downward ramp input

0.0

Source note says not implemented in Simulator

Parameter Validation

Invalid GGOV1 parameter sets are rejected by the following checks. If source governor-response settings adjust limits, apply these checks to the effective values used by the equations.

\[\begin{split}\begin{aligned} &P^{\mathrm{rate}}\ge 0,\quad R\gt 0,\quad I_R\in\{-2,-1,1\},\quad s_\mathrm{flag}\in\{0,1\} \\ &T_\mathrm{pelec},T_\mathrm{dgov},T_B,T_C,T_\mathrm{eng},T_\mathrm{fload},T_A,T_\mathrm{sa},T_\mathrm{sb}\ge 0,\quad T_\mathrm{act}\gt 0 \\ &T_B \gt 0\quad\text{or}\quad(T_B = 0\ \text{and}\ T_C = 0) \\ &e^{\min}\le e^{\max},\quad V^{\min}\le V^{\max},\quad R_\mathrm{close}\lt 0\lt R_\mathrm{open} \\ &K_\mathrm{turb}\gt 0 \end{aligned}\end{split}\]

Model Derived Parameters

The component base and flag complements are:

\[\begin{split}\begin{aligned} S_\mathrm{gov}^{\mathrm{base}} &= \begin{cases} P^{\mathrm{rate}} & P^{\mathrm{rate}} \gt 0 \\ S^{\mathrm{machine}} & \text{otherwise} \end{cases} \\ s_\mathrm{flag}^{\mathrm{off}} &= 1 - s_\mathrm{flag} \end{aligned}\end{split}\]

Model Variables

Internal Variables

Differential

Symbol

Units

Description

Note

\(P_\mathrm{elec}^{\mathrm{meas}}\)

[p.u.]

Measured electrical power

State 1 in Fig. 1; source label: Pelec Measured

\(x_D\)

[p.u.]

Governor differential control state

State 2 in Fig. 1

\(x_I\)

[p.u.]

Governor integral control state

State 3 in Fig. 1

\(x_\mathrm{act}\)

[p.u.]

Turbine actuator or valve stroke

State 4 in Fig. 1

\(x_\mathrm{turb}\)

[p.u.]

Turbine lead-lag state

State 5 in Fig. 1; source label: Turbine LL

\(x_\mathrm{load}\)

[p.u.]

Turbine load-limiter lag state

State 6 in Fig. 1

\(x_\mathrm{ldint}\)

[p.u.]

Turbine load integral-control state

State 7 in Fig. 1

\(x_\mathrm{mw}\)

[p.u.]

Supervisory load-control state

State 8 in Fig. 1

\(x_\mathrm{acc}\)

[p.u.]

Acceleration-control state

State 9 in Fig. 1

\(x_\mathrm{temp}\)

[p.u.]

Temperature-detection lead-lag state

State 10 in Fig. 1

Algebraic

Symbol

Units

Description

Note

\(P_\mathrm{mwref}\)

[p.u.]

Supervisory load-control reference

From \(P_\mathrm{mwset}-P_\mathrm{elec}\)

\(y_R\)

[p.u.]

Selected droop feedback

Controlled by Rselect

\(e_G\)

[p.u.]

Limited governor error

After \(e^{\min}\) and \(e^{\max}\)

\(f_\mathrm{pid}\)

[p.u.]

Governor PID output

Forms fsrn

\(f_\mathrm{srn}\)

[p.u.]

Normal governor fuel/stroke request

Low-value select input

\(f_\mathrm{sra}\)

[p.u.]

Acceleration-control request

Low-value select input

\(f_\mathrm{srt}\)

[p.u.]

Temperature/load request

Low-value select input

\(f_\mathrm{srl}\)

[p.u.]

Acceleration/temperature low-value select

Lesser of \(f_\mathrm{sra}\) and \(f_\mathrm{srt}\)

\(f_\mathrm{sr}\)

[p.u.]

Low-value select output

Limited by \(V^{\min}\) and \(V^{\max}\)

\(r_\mathrm{act}\)

[p.u./s]

Actuator rate-limited derivative

Limited by \(R_\mathrm{close}\) and \(R_\mathrm{open}\)

\(P_\mathrm{turb}\)

[p.u.]

Turbine power before damping

After turbine lead-lag and transport lag

\(P_\mathrm{damp}\)

[p.u.]

Damping power term

Source label: Dm

\(P_m\)

[p.u.]

Mechanical-power output

Source label: Pmech

External Variables

Differential

None.

Algebraic

Symbol

Units

Description

Note

\(P_\mathrm{ref}\)

[p.u.]

Governor reference

Source label: Pref

\(P_\mathrm{aux}\)

[p.u.]

Auxiliary power input

Source label: Paux; optional, defaults to zero

\(P_\mathrm{mwset}\)

[p.u.]

Supervisory MW setpoint

Source label: Pmwset

\(P_\mathrm{elec}\)

[p.u.]

Electrical active power

Source label: Pelec

\(L_\mathrm{dref}\)

[p.u.]

Load reference input

Source label: Ldref

\(\omega\)

[p.u.]

Machine speed deviation

Source label: Speed

Model Equations

Differential Equations

\[\begin{split}\begin{aligned} 0 &= -T_\mathrm{pelec}\dot P_\mathrm{elec}^{\mathrm{meas}} - P_\mathrm{elec}^{\mathrm{meas}} + P_\mathrm{elec} \\ 0 &= -T_\mathrm{dgov}\dot x_D - x_D + e_G \\ 0 &= -\dot x_I + \text{antiwindup}\left( f_\mathrm{pid}, K_\mathrm{igov}e_G, V^{\min}, V^{\max} \right) \\ 0 &= -T_\mathrm{act}\dot x_\mathrm{act} + r_\mathrm{act} \\ 0 &= -T_B\dot x_\mathrm{turb} - x_\mathrm{turb} + x_\mathrm{act} \\ 0 &= -T_\mathrm{fload}\dot x_\mathrm{load} - x_\mathrm{load} + f_\mathrm{srt} \\ 0 &= -\dot x_\mathrm{ldint} + K_\mathrm{iload}\left(L_\mathrm{dref}-x_\mathrm{load}\right) \\ 0 &= -\dot x_\mathrm{mw} + K_\mathrm{imw}\left(P_\mathrm{mwset}-P_\mathrm{elec}\right) \\ 0 &= -T_A\dot x_\mathrm{acc} - x_\mathrm{acc} + \omega \\ 0 &= -T_\mathrm{sb}\dot x_\mathrm{temp} - x_\mathrm{temp} + f_\mathrm{sr} \end{aligned}\end{split}\]

CommonMath defines the Anti-Windup target and smooth approximation.

Algebraic Equations

\[\begin{split}\begin{aligned} 0 &= -P_\mathrm{mwref} + x_\mathrm{mw} + P_\mathrm{ref} + P_\mathrm{aux} \\ 0 &= -R y_R + \begin{cases} \omega & I_R = 1 \\ P_\mathrm{elec}^{\mathrm{meas}} & I_R = -1 \\ x_\mathrm{act} & I_R = -2 \end{cases} \\ 0 &= -e_G + \text{clamp}(P_\mathrm{mwref} - y_R,\ e^{\min},\ e^{\max}) \\ 0 &= -f_\mathrm{pid} + K_\mathrm{pgov}e_G + K_\mathrm{dgov}(e_G - x_D) + x_I \\ 0 &= -f_\mathrm{srn} + \text{clamp}(f_\mathrm{pid}, V^{\min}, V^{\max}) \\ 0 &= -f_\mathrm{sra} + \text{clamp}\left(A_\mathrm{set} - K_A x_\mathrm{acc}, V^{\min}, V^{\max}\right) \\ 0 &= -f_\mathrm{srt} + \text{clamp}\left(\dfrac{L_\mathrm{dref} + P_\mathrm{aux}}{K_\mathrm{turb}} + W_\mathrm{fnl} + x_\mathrm{ldint}, V^{\min}, V^{\max}\right) \\ 0 &= -f_\mathrm{srl} + \min\left(f_\mathrm{sra}, f_\mathrm{srt}\right) \\ 0 &= -f_\mathrm{sr} + \min\left(f_\mathrm{srn}, f_\mathrm{srl}\right) \\ 0 &= -r_\mathrm{act} + \text{clamp}\left(\dfrac{f_\mathrm{sr}-x_\mathrm{act}}{T_\mathrm{act}}, R_\mathrm{close}, R_\mathrm{open}\right) \\ 0 &= -P_\mathrm{turb} + K_\mathrm{turb} \begin{cases} x_\mathrm{act} - W_\mathrm{fnl} & T_B = T_C = 0 \\ x_\mathrm{turb} + \dfrac{T_C}{T_B}(x_\mathrm{act}-x_\mathrm{turb}) - W_\mathrm{fnl} & T_B \gt 0 \end{cases} \\ 0 &= -P_\mathrm{damp} + D_m \begin{cases} \omega & D_m \ge 0 \\ (1+\omega)^{D_m} & D_m \lt 0 \end{cases} \\ 0 &= -P_m + P_\mathrm{turb} + P_\mathrm{damp} \end{aligned}\end{split}\]

CommonMath defines helper targets and smooth approximations for clamp and min. When \(T_B=T_C=0\), the turbine lead-lag block is bypassed before the turbine gain and no-load fuel-flow calculation. If Kpgov = 0, the source diagram routes the integral path in parallel with the derivative control; document that effective structure before changing the equations. If Kpload = 0, the source diagram feeds Kiload/s from the Kpload input and avoids the fsrn feedback path.

Initialization

Initialization is performed by evaluating the steady-state residuals in dependency order. Let subscript \(0\) denote initial values and set all internal derivatives to zero:

\[\begin{split}\begin{aligned} \omega_0 &= 0 \\ P_{\mathrm{aux},0} &= 0 \\ P_{\mathrm{elec},0}^{\mathrm{meas}} &= P_{\mathrm{elec},0} \\ x_{\mathrm{acc},0} &= 0 \\ P_{\mathrm{damp},0} &= 0 \end{aligned}\end{split}\]

Given initialized machine mechanical power, solve the actuator and turbine path:

\[\begin{split}\begin{aligned} P_{\mathrm{turb},0} &= P_{m,0} - P_{\mathrm{damp},0} \\ x_{\mathrm{act},0} &= W_\mathrm{fnl} + \dfrac{P_{\mathrm{turb},0}}{K_\mathrm{turb}} \\ x_{\mathrm{turb},0} &= x_{\mathrm{act},0} \\ f_{\mathrm{sr},0} &= x_{\mathrm{act},0} \\ f_{\mathrm{srn},0} &= f_{\mathrm{sra},0} = f_{\mathrm{srt},0} = f_{\mathrm{srl},0} = f_{\mathrm{sr},0} \end{aligned}\end{split}\]

Then seed the limiter and control states consistently:

\[\begin{split}\begin{aligned} x_{\mathrm{load},0} &= f_{\mathrm{srt},0} \\ x_{\mathrm{ldint},0} &= f_{\mathrm{srt},0} - \dfrac{L_{\mathrm{dref},0}+P_{\mathrm{aux},0}}{K_\mathrm{turb}} - W_\mathrm{fnl} \\ x_{\mathrm{mw},0} &= 0 \\ 0 &= \begin{cases} -R y_{R,0} + \omega_0 & I_R = 1 \\ -R y_{R,0} + P_{\mathrm{elec},0}^{\mathrm{meas}} & I_R = -1 \\ -R y_{R,0} + x_{\mathrm{act},0} & I_R = -2 \end{cases} \\ P_{\mathrm{mwref},0} &= f_{\mathrm{pid},0} + y_{R,0} \\ P_{\mathrm{ref},0} &= P_{\mathrm{mwref},0} - P_{\mathrm{aux},0} - x_{\mathrm{mw},0} \end{aligned}\end{split}\]

This closed-form start requires inactive low-value select alternatives, inactive actuator rate limits, \(V^{\min}\le f_{\mathrm{sr},0}\le V^{\max}\), and \(K_\mathrm{turb}\ne 0\). Starts where governor response settings fix \(V^{\min}\) or \(V^{\max}\) to the initial condition must document those effective limits before applying the residuals.

Model Outputs

Output

Units

Description

Note

pmech

[p.u.]

Mechanical-power output

\(P_m\)

pelec_meas

[p.u.]

Measured electrical power

State 1

xd

[p.u.]

Governor differential-control state

State 2

xi

[p.u.]

Governor integral-control state

State 3

valve

[p.u.]

Turbine actuator or valve stroke

State 4

turbine_ll

[p.u.]

Turbine lead-lag state

State 5

load_limiter

[p.u.]

Turbine load-limiter state

State 6

load_int

[p.u.]

Turbine load integral-control state

State 7

mw_control

[p.u.]

Supervisory load-control state

State 8

accel_control

[p.u.]

Acceleration-control state

State 9

temp_ll

[p.u.]

Temperature-detection lead-lag state

State 10

fsrn

[p.u.]

Normal governor request

Low-value select input

fsra

[p.u.]

Acceleration-control request

Low-value select input

fsrt

[p.u.]

Temperature/load request

Low-value select input

fsr

[p.u.]

Selected governor request

Low-value select output