From 3e66e3b7b8ccc8b16187e02d7f3062d800fd4ac1 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Sun, 31 May 2026 22:29:54 -0500 Subject: [PATCH 1/2] Add ESAC6A exciter documentation stub --- .../PhasorDynamics/Exciter/ESAC6A/README.md | 72 ++++++++++++++++++ .../Model/PhasorDynamics/Exciter/README.md | 1 + .../Figures/PhasorDynamics/ESAC6A_diagram.png | Bin 0 -> 48428 bytes 3 files changed, 73 insertions(+) create mode 100644 GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md create mode 100644 docs/Figures/PhasorDynamics/ESAC6A_diagram.png diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md b/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md new file mode 100644 index 000000000..b8f5f2f81 --- /dev/null +++ b/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md @@ -0,0 +1,72 @@ +# **Exciter Model (ESAC6A)** + +> [!NOTE] +> This README is a documentation stub/template for the ESAC6A exciter. Parameters, variables, equations, initialization details, and outputs are intentionally left unfilled until the model is derived from its source documentation. + +## Block Diagram + +Standard model of the ESAC6A Exciter. + +
+ + + Figure 1: Exciter ESAC6A model. +
+ +## Model Parameters + +Symbol | Units | Description | Typical Value | Note +-------|-------|-------------|---------------|----- + +### Model Derived Parameters + +## Model Variables + +### Internal Variables + +#### Differential + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +#### Algebraic + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +### External Variables + +#### Differential + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +#### Algebraic + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +## Model Equations + +### Differential Equations + +```math +\begin{aligned} +\end{aligned} +``` + +### Algebraic Equations + +```math +\begin{aligned} +\end{aligned} +``` + +## Initialization + +```math +\begin{aligned} +\end{aligned} +``` + +## Model Outputs diff --git a/GridKit/Model/PhasorDynamics/Exciter/README.md b/GridKit/Model/PhasorDynamics/Exciter/README.md index 81144066b..92eb10404 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/README.md +++ b/GridKit/Model/PhasorDynamics/Exciter/README.md @@ -12,6 +12,7 @@ device internal voltage. ## Types There are a few standard Exciter models +- ESAC6A Excitation Model (See [ESAC6A](ESAC6A/README.md)) - IEEE Type 1 Excitation Model (See [IEEET1](IEEET1/README.md)) - IEEE DC1 Excitation Model (See [EXDC1](EXDC1/README.md)) - Simplified Excitation System Model (See [SEXS-PTI](SEXS-PTI/README.md)) diff --git a/docs/Figures/PhasorDynamics/ESAC6A_diagram.png b/docs/Figures/PhasorDynamics/ESAC6A_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..49a2551f94e5f3dea8fb10e43a5e0c966340499e GIT binary patch literal 48428 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 Date: Tue, 2 Jun 2026 16:53:18 -0500 Subject: [PATCH 2/2] docs: complete ESAC6A README [skip ci] --- .../PhasorDynamics/Exciter/ESAC6A/README.md | 193 ++++++++++++++++-- 1 file changed, 179 insertions(+), 14 deletions(-) diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md b/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md index b8f5f2f81..c2b556cd7 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md +++ b/GridKit/Model/PhasorDynamics/Exciter/ESAC6A/README.md @@ -1,7 +1,16 @@ -# **Exciter Model (ESAC6A)** +# **IEEE Type AC6A Excitation System Model (ESAC6A)** -> [!NOTE] -> This README is a documentation stub/template for the ESAC6A exciter. Parameters, variables, equations, initialization details, and outputs are intentionally left unfilled until the model is derived from its source documentation. +ESAC6A is an IEEE Type AC excitation system with sensed terminal-voltage +feedback, cascaded regulator lead-lag blocks, voltage-regulator limits, an +exciter alternator state, field-current feedback limiting, rectifier loading, +saturation, and optional speed multiplier. + +Notes: +- Internal voltage and current signals are on model base unless otherwise stated. +- The rectifier loading block $F_{\mathrm{ex}}=f(I_N)$ is the source AC-exciter + loading curve from Fig. 1; it is not a CommonMath helper. +- The source diagram labels the optional multiplier input as `Speed`; GridKit + uses machine speed deviation, so the enabled multiplier is $1+\omega$. ## Block Diagram @@ -10,41 +19,116 @@ Standard model of the ESAC6A Exciter.
- Figure 1: Exciter ESAC6A model. + Figure 1: Exciter ESAC6A model. Figure courtesy of [PowerWorld](https://www.powerworld.com/WebHelp/)
## Model Parameters -Symbol | Units | Description | Typical Value | Note --------|-------|-------------|---------------|----- +Symbol | Units | JSON | Description | Typical Value | Note +------------------------------------|----------|-----------|---------------------------------------------------------|---------------|------ +$T_R$ | [sec] | `Tr` | Transducer time constant | 0.0 | Block name: `Tr`; if zero, $V_C$ is algebraic +$K_A$ | [p.u.] | `Ka` | Voltage-regulator gain | 40.0 | Block name: `Ka` +$T_A$ | [sec] | `Ta` | Regulator denominator time constant | 0.1 | Block name: `Ta` +$T_K$ | [sec] | `Tk` | Regulator numerator time constant | 0.0 | Block name: `Tk` +$T_B$ | [sec] | `Tb` | Lag time constant for second lead-lag block | 0.0 | Block name: `Tb` +$T_C$ | [sec] | `Tc` | Lead time constant for second lead-lag block | 0.0 | Block name: `Tc` +$V_A^{\max}$ | [p.u.] | `VaMax` | Maximum first regulator block output | 1.0 | Block name: `VAMAX` +$V_A^{\min}$ | [p.u.] | `VaMin` | Minimum first regulator block output | -1.0 | Block name: `VAMIN` +$V_R^{\max}$ | [p.u.] | `Vrmax` | Maximum voltage-regulator output | 1.0 | Block name: `Vrmax` +$V_R^{\min}$ | [p.u.] | `Vrmin` | Minimum voltage-regulator output | -1.0 | Block name: `Vrmin` +$T_E$ | [sec] | `Te` | Exciter alternator time constant | 0.5 | Block name: `Te` +$V_{\mathrm{fe}}^{\mathrm{lim}}$ | [p.u.] | `Vfelim` | Feedback-limiter summing-junction reference | 0.0 | Source label: `VFELIM` +$K_H$ | [p.u.] | `Kh` | Feedback-limiter gain | 1.0 | Block name: `KH` +$V_H^{\max}$ | [p.u.] | `Vhmax` | Maximum feedback-limiter lead-lag output | 1.0 | Block name: `VHMAX`; lower limit is zero +$T_H$ | [sec] | `Th` | Feedback-limiter denominator time constant | 0.0 | Block name: `TH` +$T_J$ | [sec] | `Tj` | Feedback-limiter numerator time constant | 0.0 | Block name: `TJ` +$K_C$ | [p.u.] | `Kc` | Rectifier loading current coefficient | 0.0 | Block name: `Kc`; forms $I_N$ +$K_D$ | [p.u.] | `Kd` | Demagnetizing factor feedback gain | 0.0 | Block name: `Kd` +$K_E$ | [p.u.] | `Ke` | Exciter field-resistance line-slope margin | 0.1 | Block name: `Ke` +$E_1$ | [p.u.] | `E1` | First saturation voltage point | 2.8 | Block name: `E1` +$S_E(E_1)$ | [p.u.] | `SE1` | Saturation value at $E_1$ | 0.08 | Block name: `Se1` +$E_2$ | [p.u.] | `E2` | Second saturation voltage point | 3.7 | Block name: `E2` +$S_E(E_2)$ | [p.u.] | `SE2` | Saturation value at $E_2$ | 0.33 | Block name: `Se2` +$s_{\mathrm{spd}}$ | [binary] | `Spdmlt` | Speed multiplier flag | 0 | Block name: `Spdmlt`; 1 enables the speed multiplier + +### Parameter Validation + +Invalid ESAC6A parameter sets are rejected by the following checks. + +```math +\begin{aligned} + &K_A > 0 \\ + &T_R \ge 0,\quad T_A > 0,\quad T_K \ge 0,\quad T_B \ge 0,\quad T_C \ge 0,\quad T_E > 0 \\ + &T_H \ge 0,\quad T_J \ge 0 \\ + &T_B > 0\quad\text{or}\quad(T_B = 0\ \text{and}\ T_C = 0) \\ + &T_H > 0\quad\text{or}\quad(T_H = 0\ \text{and}\ T_J = 0) \\ + &V_A^{\min} \le V_A^{\max},\quad V_R^{\min} \le V_R^{\max},\quad V_H^{\max} \ge 0 \\ + &s_{\mathrm{spd}} \in \{0,1\} +\end{aligned} +``` + +The saturation points are either disabled together or define a valid positive +two-point quadratic fit. ### Model Derived Parameters +The saturation curve is fitted from the two supplied saturation points. If both +saturation factors are zero, use $S_A=0$ and $S_B=0$. Otherwise: + +```math +\begin{aligned} + C &= \sqrt{\dfrac{S_E(E_2)}{S_E(E_1)}} \\ + S_A &= \dfrac{C E_1 - E_2}{C - 1} \\ + S_B &= \dfrac{S_E(E_1)}{(E_1 - S_A)^2} +\end{aligned} +``` + ## Model Variables ### Internal Variables #### Differential -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$V_E$ | [p.u.] | Exciter alternator voltage state before output multipliers | State 1 in Fig. 1; source label: `VE` +$V_C$ | [p.u.] | Sensed compensated voltage | State 2 in Fig. 1; source label: `Sensed Vt`; algebraic when $T_R=0$ +$x_A$ | [p.u.] | First regulator lead-lag denominator state | State 3 in Fig. 1; source label: `TA Block` +$x_{\mathrm{ll}}$ | [p.u.] | Second lead-lag denominator state | State 4 in Fig. 1; source label: `VLL` +$V_F$ | [p.u.] | Stabilizing feedback signal | State 5 in Fig. 1; source label: `VF` #### Algebraic -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$e_V$ | [p.u.] | Voltage-regulator input error before first lead-lag | Summing junction after sensed voltage +$V_A$ | [p.u.] | Limited first regulator lead-lag output | Limited by $V_A^{\min}$ and $V_A^{\max}$ +$V_{\mathrm{ll}}$ | [p.u.] | Second lead-lag output | Input to $V_R$ summing junction +$V_H$ | [p.u.] | Feedback-limiter lead-lag output before $K_H$ | Limited by 0 and $V_H^{\max}$ +$V_H^{\mathrm{pre}}$ | [p.u.] | Feedback-limiter lead-lag output before limits | Bypasses to $V_F$ when $T_H=T_J=0$ +$V_R$ | [p.u.] | Voltage-regulator output | Limited by $V_R^{\min}$ and $V_R^{\max}$ +$S_E$ | [p.u.] | Saturation coefficient evaluated at $V_E$ | Uses derived saturation curve +$I_N$ | [p.u.] | Normalized exciter loading current | Source label: `IN`; satisfies $V_E I_N=K_C I_{\mathrm{fd}}$ +$F_{\mathrm{ex}}$ | [p.u.] | Rectifier loading factor | Source label: `FEX`; source curve $F_{\mathrm{ex}}=f(I_N)$ +$V_{\mathrm{fe}}$ | [p.u.] | Exciter feedback signal | Sum of saturation/resistance, $K_D I_{\mathrm{fd}}$, and feedback-limiter paths +$E_{\mathrm{fd}}$ | [p.u.] | Field-voltage output | Output after rectifier loading and optional speed multiplier ### External Variables #### Differential -Symbol | Units | Description | Note --------|-------|-------------|----- +None. #### Algebraic -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$E_C$ | [p.u.] | Compensated terminal voltage magnitude | Source label: `EC` +$V_{\mathrm{ref}}$ | [p.u.] | Voltage-control reference | Source label: `VREF` +$V_{\mathrm{uel}}$ | [p.u.] | Under-excitation limiter input | Source label: `VUEL`; optional, defaults to zero +$V_S$ | [p.u.] | Stabilizer input signal | Source label: `VS`; optional, defaults to zero +$I_{\mathrm{fd}}$ | [p.u.] | Machine field current | Source label: `IFD` +$\omega$ | [p.u.] | Machine speed deviation | Source label: `Speed`; optional when $s_{\mathrm{spd}}=0$ ## Model Equations @@ -52,6 +136,11 @@ Symbol | Units | Description | Note ```math \begin{aligned} + 0 &= -T_R\dot V_C - V_C + E_C \\ + 0 &= -T_A\dot x_A - x_A + K_A e_V \\ + 0 &= -T_B\dot x_{\mathrm{ll}} - x_{\mathrm{ll}} + V_A \\ + 0 &= -T_E\dot V_E + V_R - V_{\mathrm{fe}} \\ + 0 &= -T_H\dot V_F - V_F + V_{\mathrm{fe}} \end{aligned} ``` @@ -59,14 +148,90 @@ Symbol | Units | Description | Note ```math \begin{aligned} + 0 &= -e_V + V_{\mathrm{ref}} + V_{\mathrm{uel}} + V_S - V_C - V_F \\ + 0 &= -V_A + + \text{clamp}\!\left( + x_A + \dfrac{T_K}{T_A}(K_A e_V - x_A), + V_A^{\min}, + V_A^{\max} + \right) \\ + 0 &= -T_B(V_{\mathrm{ll}} - x_{\mathrm{ll}}) + T_C(V_A - x_{\mathrm{ll}}) \\ + 0 &= -V_H^{\mathrm{pre}} + + + \begin{cases} + V_F, & T_H = T_J = 0 \\ + V_F + \dfrac{T_J}{T_H}(V_{\mathrm{fe}} - V_F), & T_H > 0 + \end{cases} \\ + 0 &= -V_H + \text{clamp}\!\left(V_H^{\mathrm{pre}}, 0, V_H^{\max}\right) \\ + 0 &= -V_R + \text{clamp}(V_{\mathrm{ll}} - K_H V_H, V_R^{\min}, V_R^{\max}) \\ + 0 &= -S_E + S_B\,q(V_E - S_A) \\ + 0 &= -V_E I_N + K_C I_{\mathrm{fd}} \\ + 0 &= -F_{\mathrm{ex}} + f(I_N) \\ + 0 &= -V_{\mathrm{fe}} + + (K_E + S_E)V_E + K_D I_{\mathrm{fd}} + V_{\mathrm{fe}}^{\mathrm{lim}} \\ + 0 &= -E_{\mathrm{fd}} + + \left(1+s_{\mathrm{spd}}\omega\right)F_{\mathrm{ex}}V_E \end{aligned} ``` +CommonMath defines helper targets for [clamp](../../../../CommonMath.md#derived-functions) +and the primitive [quadratic ramp](../../../../CommonMath.md#primitives) $q$. +The rectifier loading function $f(I_N)$ is the source curve shown in Fig. 1. +When $T_B=T_C=0$, the second lead-lag block is bypassed. When $T_H=T_J=0$, the +feedback-limiter lead-lag block is bypassed before the 0-to-$V_H^{\max}$ clamp. + ## Initialization +The machine initializes $E_{\mathrm{fd}}$ and $I_{\mathrm{fd}}$ first. For a +standard unsaturated start, ESAC6A reads those values and sets all internal +derivatives to zero. First solve the coupled rectifier-loading equations: + ```math \begin{aligned} + 0 &= -V_{E,0}I_{N,0} + K_C I_{\mathrm{fd},0} \\ + 0 &= -F_{\mathrm{ex},0} + f(I_{N,0}) \\ + 0 &= -E_{\mathrm{fd},0} + + \left(1+s_{\mathrm{spd}}\omega_0\right)F_{\mathrm{ex},0}V_{E,0} \end{aligned} ``` +Then evaluate: + +```math +\begin{aligned} + S_{E,0} &= S_B\,q(V_{E,0} - S_A) \\ + V_{\mathrm{fe},0} &= (K_E + S_{E,0})V_{E,0} + K_D I_{\mathrm{fd},0} + V_{\mathrm{fe}}^{\mathrm{lim}} \\ + V_{F,0} &= V_{\mathrm{fe},0} \\ + V_{H,0}^{\mathrm{pre}} &= V_{F,0} \\ + V_{H,0} &= \text{clamp}(V_{H,0}^{\mathrm{pre}}, 0, V_H^{\max}) \\ + V_{R,0} &= V_{\mathrm{fe},0} \\ + V_{\mathrm{ll},0} &= V_{R,0} + K_H V_{H,0} \\ + V_{A,0} &= V_{\mathrm{ll},0} \\ + x_{A,0} &= V_{A,0} \\ + x_{\mathrm{ll},0} &= V_{\mathrm{ll},0} \\ + V_{C,0} &= E_{C,0} \\ + e_{V,0} &= \dfrac{x_{A,0}}{K_A} \\ + V_{\mathrm{ref},0} &= e_{V,0} + V_{C,0} + V_{F,0} - V_{\mathrm{uel},0} - V_{S,0} +\end{aligned} +``` + +This standard start requires $1+s_{\mathrm{spd}}\omega_0\ne 0$, +$V_{E,0}\ne 0$, inactive $V_A$, $V_R$, and $V_H$ limits, and nonsingular +regulator gains/time constants. Starts that bind those limits are outside +these closed-form equations. + ## Model Outputs + +Output | Units | Description | Note +----------------|--------|-------------------------------------|------ +`efd` | [p.u.] | Field-voltage output | $E_{\mathrm{fd}}$ +`ve` | [p.u.] | Exciter alternator voltage state | $V_E$ +`vc` | [p.u.] | Sensed compensated voltage | $V_C$ +`va` | [p.u.] | First regulator output | $V_A$ +`vll` | [p.u.] | Second lead-lag output | $V_{\mathrm{ll}}$ +`vf` | [p.u.] | Feedback-limiter state | $V_F$ +`vh` | [p.u.] | Feedback-limiter output | $V_H$ +`vr` | [p.u.] | Voltage-regulator output | $V_R$ +`in` | [p.u.] | Normalized exciter loading current | $I_N$ +`fex` | [p.u.] | Rectifier loading factor | $F_{\mathrm{ex}}$ +`se` | [p.u.] | Saturation coefficient | $S_E$