diff --git a/GridKit/Model/PhasorDynamics/Governor/IEEEG1/README.md b/GridKit/Model/PhasorDynamics/Governor/IEEEG1/README.md
new file mode 100644
index 000000000..c6e775e37
--- /dev/null
+++ b/GridKit/Model/PhasorDynamics/Governor/IEEEG1/README.md
@@ -0,0 +1,247 @@
+# **IEEE Type 1 Speed-Governor Model (IEEEG1)**
+
+IEEEG1 is a steam turbine-governor model with speed deadband, a governor
+lead-lag, rate- and position-limited governor output, optional nonlinear
+governor gain, turbine bowl and reheat stages, and separate high-pressure and
+low-pressure mechanical-power outputs.
+
+Notes:
+- Input and output powers are on the turbine-rating base when `Trate > 0`;
+ otherwise the connected machine MVA base is used.
+- The dashed `dbL/dbH` speed deadband block is only for IEEEG1D. IEEEG1 uses
+ the Type 1 no-offset `db1` block documented with CommonMath `deadband1`.
+- Source governor-response settings may modify $U_o$, $U_c$, $P^{\max}$, and
+ $P^{\min}$ before the equations are evaluated.
+- PSSE IEEEG1 source data may omit `db1`, `db2`, nonlinear-gain points, and
+ turbine rating; those omitted features must be documented as inactive rather
+ than silently dropped.
+
+## Block Diagram
+
+Standard model of the IEEEG1 Governor.
+
+
+

+
+ Figure 1: Governor IEEEG1 model. Figure courtesy of [PowerWorld](https://www.powerworld.com/WebHelp/)
+
+
+## Model Parameters
+
+Symbol | Units | JSON | Description | Typical Value | Note
+--------------------------------|----------|------------|----------------------------------------------|---------------|------
+$K$ | [p.u.] | `K` | Governor speed-control gain | 20.0 | Block name: `K`
+$T_1$ | [sec] | `T1` | Governor lead-lag denominator time constant | 0.0 | Block name: `T1`
+$T_2$ | [sec] | `T2` | Governor lead-lag numerator time constant | 0.0 | Block name: `T2`
+$T_3$ | [sec] | `T3` | Governor output servo time constant | 0.1 | Block name: `T3`
+$U_o$ | [p.u./s] | `Uo` | Maximum opening rate | 0.1 | Source label: `UO`
+$U_c$ | [p.u./s] | `Uc` | Maximum closing rate | -0.1 | Source label: `UC`
+$P^{\max}$ | [p.u.] | `Pmax` | Maximum governor output | 1.0 | Block name: `PMAX`
+$P^{\min}$ | [p.u.] | `Pmin` | Minimum governor output | 0.0 | Block name: `PMIN`
+$T_4$ | [sec] | `T4` | Turbine bowl time constant | 0.3 | State 3 in Fig. 1
+$K_1$ | [p.u.] | `K1` | High-pressure fraction from turbine bowl | 0.2 | Top output branch
+$K_2$ | [p.u.] | `K2` | Low-pressure fraction from turbine bowl | 0.0 | Bottom output branch
+$T_5$ | [sec] | `T5` | Reheater time constant | 5.0 | State 4 in Fig. 1
+$K_3$ | [p.u.] | `K3` | High-pressure fraction from reheater | 0.3 | Top output branch
+$K_4$ | [p.u.] | `K4` | Low-pressure fraction from reheater | 0.0 | Bottom output branch
+$T_6$ | [sec] | `T6` | Crossover time constant | 0.5 | State 5 in Fig. 1
+$K_5$ | [p.u.] | `K5` | High-pressure fraction from crossover | 0.5 | Top output branch
+$K_6$ | [p.u.] | `K6` | Low-pressure fraction from crossover | 0.0 | Bottom output branch
+$T_7$ | [sec] | `T7` | Double-reheat time constant | 0.5 | State 6 in Fig. 1
+$K_7$ | [p.u.] | `K7` | High-pressure fraction from double reheat | 0.0 | Top output branch
+$K_8$ | [p.u.] | `K8` | Low-pressure fraction from double reheat | 0.0 | Bottom output branch
+$D_{\omega}$ | [p.u.] | `db1` | Type 1 speed deadband threshold | 0.0 | Block name: `db1`; uses CommonMath `deadband1`
+$\epsilon$ | [p.u.] | `Eps` | Nonlinear gain smoothing/curve tolerance | 0.0 | Source nonlinear gain setting
+$D_{\mathrm{gv}}$ | [p.u.] | `db2` | Governor-output backlash/deadband width | 0.0 | Block name: `db2`; nonzero support must be explicit
+$P^{\mathrm{rate}}$ | [MW] | `Trate` | Optional turbine-rating power base | 0.0 | `Trate > 0` defines the governor base
+
+The optional nonlinear governor gain curve is represented by source points:
+
+Symbol | Units | JSON | Description | Typical Value | Note
+--------------------------------|--------|------------|----------------------------------------------|---------------|------
+$G_V^{(k)}$ | [p.u.] | `Gv1`-`Gv6` | Governor-output curve input point $k$ | 0.0 | Source labels: `Gv1` through `Gv6`
+$P_{\mathrm{GV}}^{(k)}$ | [p.u.] | `Pgv1`-`Pgv6` | Governor-output curve value point $k$ | 0.0 | Source labels: `Pgv1` through `Pgv6`
+
+### Parameter Validation
+
+Invalid IEEEG1 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.
+
+```math
+\begin{aligned}
+ &T_1,T_2,T_3,T_4,T_5,T_6,T_7 \ge 0,\quad T_3>0 \\
+ &T_1 > 0\quad\text{or}\quad(T_1 = 0\ \text{and}\ T_2 = 0) \\
+ &U_c < 0 < U_o,\quad P^{\min}\le P^{\max} \\
+ &D_{\omega}\ge 0,\quad D_{\mathrm{gv}}\ge 0,\quad P^{\mathrm{rate}}\ge 0 \\
+ &G_V^{(1)} < G_V^{(2)} < \cdots < G_V^{(6)} \\
+ &0 \le P_{\mathrm{GV}}^{(1)} \le P_{\mathrm{GV}}^{(2)} \le \cdots \le P_{\mathrm{GV}}^{(6)}
+\end{aligned}
+```
+
+### Model Derived Parameters
+
+The governor component base and nonlinear governor-output curve are:
+
+```math
+\begin{aligned}
+ S_{\mathrm{gov}}^{\mathrm{base}}
+ &=
+ \begin{cases}
+ P^{\mathrm{rate}} & P^{\mathrm{rate}} > 0 \\
+ S^{\mathrm{machine}} & \text{otherwise}
+ \end{cases} \\
+ N_{\mathrm{GV}}(x)
+ &=
+ P_{\mathrm{GV}}^{(1)}
+ + \sum_{k=1}^{5}
+ \text{linseg}\!\left(
+ x;\,
+ G_V^{(k)},\,
+ G_V^{(k+1)},\,
+ P_{\mathrm{GV}}^{(k+1)} - P_{\mathrm{GV}}^{(k)}
+ \right)
+\end{aligned}
+```
+
+CommonMath defines the [linear segment](../../../../CommonMath.md#derived-functions)
+helper used by $N_{\mathrm{GV}}$.
+
+## Model Variables
+
+### Internal Variables
+
+#### Differential
+
+Symbol | Units | Description | Note
+------------------------|--------|-------------------------------------|------
+$P_{\mathrm{GV}}$ | [p.u.] | Governor output | State 1 in Fig. 1
+$x_{\mathrm{ll}}$ | [p.u.] | Governor lead-lag state | State 2 in Fig. 1
+$x_4$ | [p.u.] | Turbine bowl state | State 3 in Fig. 1; denominator $T_4$
+$x_5$ | [p.u.] | Reheater state | State 4 in Fig. 1; denominator $T_5$
+$x_6$ | [p.u.] | Crossover state | State 5 in Fig. 1; denominator $T_6$
+$x_7$ | [p.u.] | Double-reheat state | State 6 in Fig. 1; denominator $T_7$
+
+#### Algebraic
+
+Symbol | Units | Description | Note
+--------------------------------|----------|-------------------------------------|------
+$\omega_{\mathrm{db}}$ | [p.u.] | Deadbanded speed deviation | Defined by CommonMath `deadband1`
+$y_{\omega}$ | [p.u.] | Lead-lag-conditioned speed signal | Output of $K(1+sT_2)/(1+sT_1)$
+$e_G$ | [p.u.] | Governor command error | Sum of references minus speed and output feedback
+$r_G$ | [p.u./s] | Rate-limited governor derivative target | Limited by $U_c$ and $U_o$
+$P_{\mathrm{GV}}^{\mathrm{nl}}$ | [p.u.] | Nonlinear governor gain output | Output of `db2`/curve branch
+$P_m^{\mathrm{HP}}$ | [p.u.] | High-pressure mechanical-power output | Source label: `PMECH_HP`
+$P_m^{\mathrm{LP}}$ | [p.u.] | Low-pressure mechanical-power output | Source label: `PMECH_LP`
+
+### External Variables
+
+#### Differential
+
+None.
+
+#### Algebraic
+
+Symbol | Units | Description | Note
+--------------------------------|--------|--------------------------------|------
+$\omega$ | [p.u.] | Machine speed deviation | Source label: `Speed`
+$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
+
+## Model Equations
+
+### Differential Equations
+
+```math
+\begin{aligned}
+ 0 &= -T_1\dot x_{\mathrm{ll}} - x_{\mathrm{ll}} + K\omega_{\mathrm{db}} \\
+ 0 &=
+ -\dot P_{\mathrm{GV}}
+ + \text{antiwindup}\!\left(
+ P_{\mathrm{GV}},
+ r_G,
+ P^{\min},
+ P^{\max}
+ \right) \\
+ 0 &= -T_4\dot x_4 - x_4 + P_{\mathrm{GV}}^{\mathrm{nl}} \\
+ 0 &= -T_5\dot x_5 - x_5 + x_4 \\
+ 0 &= -T_6\dot x_6 - x_6 + x_5 \\
+ 0 &= -T_7\dot x_7 - x_7 + x_6
+\end{aligned}
+```
+
+CommonMath defines the [Anti-Windup](../../../../CommonMath.md#anti-windup-indicator)
+target and smooth approximation.
+
+### Algebraic Equations
+
+```math
+\begin{aligned}
+ 0 &= -\omega_{\mathrm{db}} + \text{deadband1}(\omega,\ -D_{\omega},\ D_{\omega}) \\
+ 0 &= -y_{\omega}
+ +
+ \begin{cases}
+ K\omega_{\mathrm{db}}, & T_1 = T_2 = 0 \\
+ x_{\mathrm{ll}} + \dfrac{T_2}{T_1}\left(K\omega_{\mathrm{db}}-x_{\mathrm{ll}}\right), & T_1 > 0
+ \end{cases} \\
+ 0 &= -e_G + P_{\mathrm{ref}} + P_{\mathrm{aux}} - y_{\omega} - P_{\mathrm{GV}} \\
+ 0 &= -r_G + \text{clamp}\!\left(\dfrac{e_G}{T_3}, U_c, U_o\right) \\
+ 0 &= -P_{\mathrm{GV}}^{\mathrm{nl}} + N_{\mathrm{GV}}\!\left(\text{deadband2}(P_{\mathrm{GV}}, -D_{\mathrm{gv}}, D_{\mathrm{gv}})\right) \\
+ 0 &= -P_m^{\mathrm{HP}} + K_1x_4 + K_3x_5 + K_5x_6 + K_7x_7 \\
+ 0 &= -P_m^{\mathrm{LP}} + K_2x_4 + K_4x_5 + K_6x_6 + K_8x_7
+\end{aligned}
+```
+
+CommonMath defines helper targets and smooth approximations for
+[deadband1, deadband2, clamp, and linseg](../../../../CommonMath.md#derived-functions).
+When $T_1=T_2=0$, the governor lead-lag block is bypassed so
+$y_{\omega}=K\omega_{\mathrm{db}}$.
+
+## 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. For a standard power-flow start:
+
+```math
+\begin{aligned}
+ \omega_0 &= 0 \\
+ P_{\mathrm{aux},0} &= 0 \\
+ \omega_{\mathrm{db},0} &= \text{deadband1}(0,\ -D_{\omega},\ D_{\omega}) \\
+ x_{\mathrm{ll},0} &= K\omega_{\mathrm{db},0} \\
+ y_{\omega,0} &= x_{\mathrm{ll},0}
+\end{aligned}
+```
+
+Given initialized high- and low-pressure mechanical powers, solve the turbine
+chain by choosing $P_{\mathrm{GV},0}$ so that the turbine fractions reproduce
+the connected machine operating point:
+
+```math
+\begin{aligned}
+ P_{\mathrm{GV},0}^{\mathrm{nl}}
+ &= N_{\mathrm{GV}}\!\left(\text{deadband2}(P_{\mathrm{GV},0}, -D_{\mathrm{gv}}, D_{\mathrm{gv}})\right) \\
+ x_{4,0}=x_{5,0}=x_{6,0}=x_{7,0} &= P_{\mathrm{GV},0}^{\mathrm{nl}} \\
+ P_{m,0}^{\mathrm{HP}} &= (K_1+K_3+K_5+K_7)P_{\mathrm{GV},0}^{\mathrm{nl}} \\
+ P_{m,0}^{\mathrm{LP}} &= (K_2+K_4+K_6+K_8)P_{\mathrm{GV},0}^{\mathrm{nl}} \\
+ P_{\mathrm{ref},0} &= P_{\mathrm{GV},0} + y_{\omega,0} - P_{\mathrm{aux},0}
+\end{aligned}
+```
+
+This closed-form start requires the effective governor output to lie inside
+$P^{\min}$ and $P^{\max}$ and the opening/closing rate limits to be inactive.
+Starts where governor response limits fix the limits to the initial condition
+must document those effective limits before applying the residuals.
+
+## Model Outputs
+
+Output | Units | Description | Note
+----------------|--------|-------------------------------------|------
+`pmech_hp` | [p.u.] | High-pressure mechanical-power output | $P_m^{\mathrm{HP}}$
+`pmech_lp` | [p.u.] | Low-pressure mechanical-power output | $P_m^{\mathrm{LP}}$
+`pgv` | [p.u.] | Governor output | State 1
+`leadlag` | [p.u.] | Governor lead-lag state | State 2
+`bowl` | [p.u.] | Turbine bowl state | State 3
+`reheater` | [p.u.] | Reheater state | State 4
+`crossover` | [p.u.] | Crossover state | State 5
+`double_reheat` | [p.u.] | Double-reheat state | State 6
diff --git a/GridKit/Model/PhasorDynamics/Governor/README.md b/GridKit/Model/PhasorDynamics/Governor/README.md
index 8e6305aa8..9edc9bf60 100644
--- a/GridKit/Model/PhasorDynamics/Governor/README.md
+++ b/GridKit/Model/PhasorDynamics/Governor/README.md
@@ -9,3 +9,4 @@ A governor models the control system that regulates the output power of a machin
There are a few standard Governor models
- Turbine Governor (See [TGOV1](Tgov1/README.md))
+- IEEE Type G1 Turbine Governor (See [IEEEG1](IEEEG1/README.md))
diff --git a/docs/Figures/PhasorDynamics/IEEEG1_diagram.png b/docs/Figures/PhasorDynamics/IEEEG1_diagram.png
new file mode 100644
index 000000000..9f49d807d
Binary files /dev/null and b/docs/Figures/PhasorDynamics/IEEEG1_diagram.png differ