From e974c47528589960650f6f00b7c88fb5be2475c5 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:33:36 -0500 Subject: [PATCH 1/9] init: folders and readme --- .../PhasorDynamics/Exciter/EXDC1/README.md | 105 ++++++++++++++++ .../PhasorDynamics/Exciter/IEEET1/README.md | 92 ++++++++++++++ src/Model/PhasorDynamics/Exciter/README.md | 113 ++---------------- 3 files changed, 207 insertions(+), 103 deletions(-) create mode 100644 src/Model/PhasorDynamics/Exciter/EXDC1/README.md create mode 100644 src/Model/PhasorDynamics/Exciter/IEEET1/README.md diff --git a/src/Model/PhasorDynamics/Exciter/EXDC1/README.md b/src/Model/PhasorDynamics/Exciter/EXDC1/README.md new file mode 100644 index 00000000..320a10ba --- /dev/null +++ b/src/Model/PhasorDynamics/Exciter/EXDC1/README.md @@ -0,0 +1,105 @@ +# **EXDC1** + +
+ + + Figure 1: Exciter EXDC1 model. Figure courtesy of [PoweWorld](https://www.powerworld.com/WebHelp/). +
+ +## Nomenclature + +### Inputs +- $V_{REF}$ - voltage reference set point +- $E_{C}$ - output from the terminal voltage transducer +- $V_{S}$ - power system stabilizer output signal (if present) +- $V_{UEL}$ and $V_{OEL}$ - limiters + +### Differential Variables +- $V_{t}$ - terminal voltage (2 is sensed $V_{t}$) +- $V_{B}$ - input to a voltage regulator (3) +- $V_{R}$ - voltage regulator output also know as exciter field voltage (4) +- $V_{F}$ - stabilizing feedback signal (5) +### Parameters +- $T_{R}$ - filter time constant, sec (0) +- $K_{A}$ - voltage regulator gain (40) +- $T_{A}$ - time constant, sec (0.1) +- $T_{B}$ - lag time constant, sec (0) +- $T_{C}$ - lead time constant, sec (0) +- $V_{RMAX}$ - maximum control element output, pu (1) +- $V_{RMIN}$ - minimum control element output, pu (-1) +- $K_{E}$ - exciter field resistance line slope margine, pu (0.1) +- $T_{E}$ - exciter time constant, sec (0.5) +- $K_{F}$ - rate feedback gain, pu (0.05) +- $T_{F1}$ - rate feedback time constant, sec (0.7) +- $E1$ - field voltage value, 1 (2.8) +- $SE1$ - saturation factor at E1, (3.7) +- $E2$ - field voltage value, 2 (3.7) +- $SE2$ - saturation factor at E2, (0.33) + +## Equations +First block +```math +\dfrac{dV_{t}}{dt}=\dfrac{1}{T_{R}}(E_{C}-V_{t}) +``` +Second block +```math +\dfrac{dx_{1}}{dt}=\dfrac{1}{T_{B}}((V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL})-V_{B}) +``` +```math +V_{B}=x_{1}+\dfrac{T_{C}}{T_{B}}(V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL}) +``` +Third block +```math +\dfrac{dV_{R}}{dt} = \begin{cases} + \dfrac{1}{T_{A}}(K_{A}V_{B}-V_{R}) &\text{if } V_{RMIN}<=V_{R}<= V_{RMAX}\\ + 0 &\text{if } V_{B}>0 \text{ and } V_{R}>=V_{RMAX} &\text{ also then } V_{R}=V_{RMAX}\\ + 0 &\text{if } V_{B}<0 \text{ and } V_{R}<=V_{RMIN} &\text{ also then } V_{R}=V_{RMIN}\\ +\end{cases} +``` +Fourth block +```math +\dfrac{d\dfrac{E_{FD}}{\omega}}{dt}=\dfrac{1}{T_{E}}(V_{R}-\dfrac{(K_{E}+S_{E})E_{FD}}{\omega}) +``` +Feedback loop +```math +\dfrac{dx_{2}}{dt}=-\dfrac{V_{F}}{T_{F1}} +``` +```math +V_{F}=x_{2}+\dfrac{K_{F}}{T_{F1}}\dfrac{E_{FD}}{\omega} +``` +Saturation is modeled using an alternative quadratic function, with the value of Se specified at two points : +```math +Sat(x) = \begin{cases} + \dfrac{B(x-A)^2}{x} &\text{if } x>A \\ + 0 &\text{if } x<=A +\end{cases} +``` +same as with the synchronous machines. There are two solutions, and one where $A<1$ should be chosen. + +## Initialization +```math +V_{t}=V_{t_{0}} +``` +```math +E_{C}=V_{t_{0}} +``` +```math +(V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL})=V_{B} +``` +```math +V_{R}=V{R_{0}} +``` +```math +V_{B}=\dfrac{V{R_{0}}}{K_{A}} +``` +```math +\dfrac{E_{FD}}{\omega}=\dfrac{E_{FD_{0}}}{\omega} +``` +```math +V_{R}-\dfrac{(K_{E}+S_{E})E_{FD}}{\omega}=0 +``` +```math +V_{F}=0 +``` +```math +x_{2_{0}}=-\dfrac{K_{F}}{T_{F1}}\dfrac{E_{FD}}{\omega} diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md new file mode 100644 index 00000000..6fe0982e --- /dev/null +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -0,0 +1,92 @@ +# **IEEET1** + +## Control Diagram + +Standard model of the IEEET1 Exciter. + +
+ + + + Figure 1: Exciter IEEET1 model. Figure courtesy of [PowerWorld](https://www.powerworld.com/WebHelp/) +
+ +## Nomenclature + +### Algebraic Variables +- $V_{tr}$ - +- $V_{F}$ - +- $V_{E}$ - +- $E_{fd}$ - +- $k_{sat}$ - + +These can be constants or external states +- $E_{C}$ - +- $V_{ref}$ - +- $V_{UEL}$ - +- $V_{OEL}$ - +- $V_{S}$ - +- $\omega$ - Machine speed deviation from machine model + +### Differential Variables +- $V_{ts}$ - Sensed terminal voltage +- $V_{R}$ - Voltage regulator +- $E_{FD}'$ - Field-current pre-speed multiplier +- $V_{fx}$ - Exciter feedback internal state + +### Parameters +- $T_R$ - Time constant for voltage sensing +- $K_a, T_a$ - Coefficient and time constant for voltage regulation +- $K_e, T_e$ - Coefficient and time constant for excitation system +- $K_f, T_f$ - Coefficient and time constant for feedback +- $V_{rmin}, V_{rmax}$ - Limits to voltage regulation +- $E_1, S_{e1}, E_{2}, S_{e2}$ - Saturation Parameters +- $I_{spdlm}$ - Speed Limit flag indicator + +## Equations + + +### Algebraic Equations +The algebraic equation dictating the mechnical power output. +```math +\begin{aligned} + V_{tr} &= V_{ref} - V_{ts}+V_{UEL} + V_{OEL} + V_S - V_F\\ +\end{aligned} +``` + +### Differential Equations +The TGOV1 differential equations, as derived from the model diagram. +```math +\begin{aligned} + \dot{V}_{ts} &= \dfrac{1}{T_R}(E_C-V_{ts}) \\ + \dot{V}_{R} &= + \dfrac{1}{T_A} + \begin{cases} + -V_{R}+K_{a}V_{tr} + & \text{if } V_R \in (V_{rmin}, V_{rmax})\\ + 0 + & \text{else } \\ + \end{cases} +\end{aligned} +``` +The domain of the state variable $P_{v}\in(V_{min}, V_{max})$ is enforced +through the piece-wise definition above. However, depending on the +general solver's requirments, this may need to be expressed as a +smooth approximation (bump function/smooth indicator). Perhaps like the +following. +```math +\begin{aligned} + I(x,x_0,\epsilon) + &= \dfrac{1}{2} + \dfrac{1}{2}\tanh + \left(\dfrac{x-x_0}{\epsilon}\right) \\ + \phi(x) &= I \left(x;V_{min}, \epsilon \right) - + I \left(x;V_{max}, \epsilon \right) + \qquad \epsilon <<1 \\ + \dot{P}_{v} + &= + \dfrac{1}{T_1}\cdot \phi(P_v) + \left[ + -P_{v} + \frac{1}{R}(P_{ref}-\omega) + \right] \\ +\end{aligned} +``` diff --git a/src/Model/PhasorDynamics/Exciter/README.md b/src/Model/PhasorDynamics/Exciter/README.md index 79b743b3..c3df8f53 100644 --- a/src/Model/PhasorDynamics/Exciter/README.md +++ b/src/Model/PhasorDynamics/Exciter/README.md @@ -1,109 +1,16 @@ -# **Exciter** +# **Exciter Models** +> [!NOTE] +> No implementation yet. -**Note: Exciter model not yet implemented** -
- - - - Figure 1: Exciter EXDC1 model. Fifure courtesy of [PoweWorld](https://www.powerworld.com/WebHelp/). -
+## Introduction -## Nomenclature +An exciter generally models, regulates, and sustains +device internal voltage. -### Inputs -- $`V_{REF}`$ - voltage reference set point -- $`E_{C}`$ - output from the terminal voltage transducer -- $`V_{S}`$ - power system stabilizer output signal (if present) -- $`V_{UEL}`$ and $`V_{OEL}`$ - limiters -### States -- $`V_{t}`$ - terminal voltage (2 is sensed $`V_{t}`$) -- $`V_{B}`$ - input to a voltage regulator (3) -- $`V_{R}`$ - voltage regulator output also know as exciter field voltage (4) -- $`V_{F}`$ - stabilizing feedback signal (5) -### Parameters -- $`T_{R}`$ - filter time constant, sec (0) -- $`K_{A}`$ - voltage regulator gain (40) -- $`T_{A}`$ - time constant, sec (0.1) -- $`T_{B}`$ - lag time constant, sec (0) -- $`T_{C}`$ - lead time constant, sec (0) -- $`V_{RMAX}`$ - maximum control element output, pu (1) -- $`V_{RMIN}`$ - minimum control element output, pu (-1) -- $`K_{E}`$ - exciter field resistance line slope margine, pu (0.1) -- $`T_{E}`$ - exciter time constant, sec (0.5) -- $`K_{F}`$ - rate feedback gain, pu (0.05) -- $`T_{F1}`$ - rate feedback time constant, sec (0.7) -- $`E1`$ - field voltage value, 1 (2.8) -- $`SE1`$ - saturation factor at E1, (3.7) -- $`E2`$ - field voltage value, 2 (3.7) -- $`SE2`$ - saturation factor at E2, (0.33) - -## Equations -First block -```math -\dfrac{dV_{t}}{dt}=\dfrac{1}{T_{R}}(E_{C}-V_{t}) -``` -Second block -```math -\dfrac{dx_{1}}{dt}=\dfrac{1}{T_{B}}((V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL})-V_{B}) -``` -```math -V_{B}=x_{1}+\dfrac{T_{C}}{T_{B}}(V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL}) -``` -Third block -```math -\dfrac{dV_{R}}{dt} = \begin{cases} - \dfrac{1}{T_{A}}(K_{A}V_{B}-V_{R}) &\text{if } V_{RMIN}<=V_{R}<= V_{RMAX}\\ - 0 &\text{if } V_{B}>0 \text{ and } V_{R}>=V_{RMAX} &\text{ also then } V_{R}=V_{RMAX}\\ - 0 &\text{if } V_{B}<0 \text{ and } V_{R}<=V_{RMIN} &\text{ also then } V_{R}=V_{RMIN}\\ -\end{cases} -``` -Fourth block -```math -\dfrac{d\dfrac{E_{FD}}{\omega}}{dt}=\dfrac{1}{T_{E}}(V_{R}-\dfrac{(K_{E}+S_{E})E_{FD}}{\omega}) -``` -Feedback loop -```math -\dfrac{dx_{2}}{dt}=-\dfrac{V_{F}}{T_{F1}} -``` -```math -V_{F}=x_{2}+\dfrac{K_{F}}{T_{F1}}\dfrac{E_{FD}}{\omega} -``` -Saturation is modeled using an alternative quadratic function, with the value of Se specified at two points : -```math -Sat(x) = \begin{cases} - \dfrac{B(x-A)^2}{x} &\text{if } x>A \\ - 0 &\text{if } x<=A -\end{cases} -``` -same as with the synchronous machines. There are two solutions, and one where $`A<1`$ should be chosen. - -## Initialization -```math -V_{t}=V_{t_{0}} -``` -```math -E_{C}=V_{t_{0}} -``` -```math -(V_{REF}-V_{t}-V_{F}+V_{S}+V_{UEL}+V_{OEL})=V_{B} -``` -```math -V_{R}=V{R_{0}} -``` -```math -V_{B}=\dfrac{V{R_{0}}}{K_{A}} -``` -```math -\dfrac{E_{FD}}{\omega}=\dfrac{E_{FD_{0}}}{\omega} -``` -```math -V_{R}-\dfrac{(K_{E}+S_{E})E_{FD}}{\omega}=0 -``` -```math -V_{F}=0 -``` -```math -x_{2_{0}}=-\dfrac{K_{F}}{T_{F1}}\dfrac{E_{FD}}{\omega} +## Types +There are a few standard Exciter models +- IEEE Type 1 Excitation Model (See [IEEET1](IEEET1/README.md)) +- IEEE DC1 Excitation Model (See [EXDC1](EXDC1/README.md)) \ No newline at end of file From 0bcca911d6d9eb8f99d2dc6a545decb40ae25440 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:43:25 -0500 Subject: [PATCH 2/9] edit: equations draft --- .../PhasorDynamics/Exciter/IEEET1/README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index 6fe0982e..41c51079 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -51,9 +51,20 @@ The algebraic equation dictating the mechnical power output. ```math \begin{aligned} V_{tr} &= V_{ref} - V_{ts}+V_{UEL} + V_{OEL} + V_S - V_F\\ + V_{f} &= \dfrac{E_{fd}' K_F}{T_F} - V_{fx}\\ + E_{fd}&= \begin{cases} + E_{fd}^{'} & \text{if } I_{spdlm}\\ + (1+\omega)E_{fd}^{'} & \text{else } \\ + \end{cases}\\ + k_{sat}&= \begin{cases} + S_B(E_{fd}^{'} -S_A)^2 & \text{if } E_{fd}^{'} >S_A\\ + 0 & \text{else } \\ + \end{cases} + V_{E} &= k_{sat}\cdot E_{fd}^{'} \\ \end{aligned} ``` + ### Differential Equations The TGOV1 differential equations, as derived from the model diagram. ```math @@ -69,7 +80,7 @@ The TGOV1 differential equations, as derived from the model diagram. \end{cases} \end{aligned} ``` -The domain of the state variable $P_{v}\in(V_{min}, V_{max})$ is enforced +The domain of the state variable $V_{R}\in(V_{rmin}, V_{rmax})$ is enforced through the piece-wise definition above. However, depending on the general solver's requirments, this may need to be expressed as a smooth approximation (bump function/smooth indicator). Perhaps like the @@ -79,8 +90,8 @@ following. I(x,x_0,\epsilon) &= \dfrac{1}{2} + \dfrac{1}{2}\tanh \left(\dfrac{x-x_0}{\epsilon}\right) \\ - \phi(x) &= I \left(x;V_{min}, \epsilon \right) - - I \left(x;V_{max}, \epsilon \right) + \phi(x) &= I \left(x;V_{rmin}, \epsilon \right) - + I \left(x;V_{rmax}, \epsilon \right) \qquad \epsilon <<1 \\ \dot{P}_{v} &= From 705d3329d8d9112bb41237993960f10075b0e377 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:46:56 -0500 Subject: [PATCH 3/9] edit: brief var descr --- .../PhasorDynamics/Exciter/IEEET1/README.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index 41c51079..808fef6b 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -14,24 +14,24 @@ Standard model of the IEEET1 Exciter. ## Nomenclature ### Algebraic Variables -- $V_{tr}$ - -- $V_{F}$ - -- $V_{E}$ - -- $E_{fd}$ - -- $k_{sat}$ - +- $V_{tr}$ - Terminal Voltage Error input to controller +- $V_{F}$ - Feedback Voltage +- $V_{E}$ - Excitation control voltage +- $E_{fd}$ - Field winding voltage +- $k_{sat}$ - Saturation variable These can be constants or external states -- $E_{C}$ - -- $V_{ref}$ - -- $V_{UEL}$ - -- $V_{OEL}$ - -- $V_{S}$ - +- $E_{C}$ - Compensated machine terminal voltage magnitude +- $V_{ref}$ - Referebce ternubak voltage +- $V_{UEL}$ - Input from under excitation limiter +- $V_{OEL}$ - Input from over excitation limiter +- $V_{S}$ - Input from stabilizer controller - $\omega$ - Machine speed deviation from machine model ### Differential Variables - $V_{ts}$ - Sensed terminal voltage - $V_{R}$ - Voltage regulator -- $E_{FD}'$ - Field-current pre-speed multiplier +- $E_{fd}'$ - Field-current pre-speed multiplier - $V_{fx}$ - Exciter feedback internal state ### Parameters @@ -59,7 +59,7 @@ The algebraic equation dictating the mechnical power output. k_{sat}&= \begin{cases} S_B(E_{fd}^{'} -S_A)^2 & \text{if } E_{fd}^{'} >S_A\\ 0 & \text{else } \\ - \end{cases} + \end{cases} \\ V_{E} &= k_{sat}\cdot E_{fd}^{'} \\ \end{aligned} ``` From bc781aee2bd16cd53884f552327e98172710eeb5 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:49:11 -0500 Subject: [PATCH 4/9] edit: bump function --- src/Model/PhasorDynamics/Exciter/IEEET1/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index 808fef6b..864e978c 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -93,11 +93,11 @@ following. \phi(x) &= I \left(x;V_{rmin}, \epsilon \right) - I \left(x;V_{rmax}, \epsilon \right) \qquad \epsilon <<1 \\ - \dot{P}_{v} + \dot{V}_{R} &= - \dfrac{1}{T_1}\cdot \phi(P_v) + \dfrac{1}{T_A}\cdot \phi(V_R) \left[ - -P_{v} + \frac{1}{R}(P_{ref}-\omega) + -V_{R}+K_{a}V_{tr} \right] \\ \end{aligned} ``` From 6c985a44dca680acfd2b8fde2d2878503d431db0 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:53:28 -0500 Subject: [PATCH 5/9] edit: diagram image PW --- docs/Figures/PhasorDynamics_IEEET1_Diagram.png | Bin 0 -> 46913 bytes .../PhasorDynamics/Exciter/IEEET1/README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/Figures/PhasorDynamics_IEEET1_Diagram.png diff --git a/docs/Figures/PhasorDynamics_IEEET1_Diagram.png b/docs/Figures/PhasorDynamics_IEEET1_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..78542f219b7089005b88a17ab7f707478033a391 GIT binary patch literal 46913 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 p`=5) - + Figure 1: Exciter IEEET1 model. Figure courtesy of [PowerWorld](https://www.powerworld.com/WebHelp/) From 2d608b9f01d7276ba4e686d1d8b9a1862532a595 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Tue, 6 May 2025 12:55:09 -0500 Subject: [PATCH 6/9] edit: typo --- src/Model/PhasorDynamics/Exciter/IEEET1/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index e4133704..fc5c8ad6 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -47,7 +47,7 @@ These can be constants or external states ### Algebraic Equations -The algebraic equation dictating the mechnical power output. +The algebraic equations of the exciter. ```math \begin{aligned} V_{tr} &= V_{ref} - V_{ts}+V_{UEL} + V_{OEL} + V_S - V_F\\ @@ -66,7 +66,7 @@ The algebraic equation dictating the mechnical power output. ### Differential Equations -The TGOV1 differential equations, as derived from the model diagram. +The IEEET1 differential equations, as derived from the model diagram. ```math \begin{aligned} \dot{V}_{ts} &= \dfrac{1}{T_R}(E_C-V_{ts}) \\ From 3d3f658f323d6f71d091384a22871024afaed0e0 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Wed, 7 May 2025 19:12:57 +0000 Subject: [PATCH 7/9] Apply pre-commmit fixes --- src/Model/PhasorDynamics/Exciter/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/PhasorDynamics/Exciter/README.md b/src/Model/PhasorDynamics/Exciter/README.md index c3df8f53..2d66575b 100644 --- a/src/Model/PhasorDynamics/Exciter/README.md +++ b/src/Model/PhasorDynamics/Exciter/README.md @@ -13,4 +13,4 @@ device internal voltage. ## Types There are a few standard Exciter models - IEEE Type 1 Excitation Model (See [IEEET1](IEEET1/README.md)) -- IEEE DC1 Excitation Model (See [EXDC1](EXDC1/README.md)) \ No newline at end of file +- IEEE DC1 Excitation Model (See [EXDC1](EXDC1/README.md)) From 2aca6f0b9233ce80d559681cca13b3364c2e2663 Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Sun, 11 May 2025 13:15:56 -0500 Subject: [PATCH 8/9] edit: title and speed deviation [skip ci] --- src/Model/PhasorDynamics/Exciter/IEEET1/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index fc5c8ad6..9211b16d 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -1,4 +1,4 @@ -# **IEEET1** +# **IEEE Type 1 Excitation System Model (IEEET1)** ## Control Diagram @@ -26,7 +26,7 @@ These can be constants or external states - $V_{UEL}$ - Input from under excitation limiter - $V_{OEL}$ - Input from over excitation limiter - $V_{S}$ - Input from stabilizer controller -- $\omega$ - Machine speed deviation from machine model +- $\Delta \omega$ - Machine speed deviation from machine model ### Differential Variables - $V_{ts}$ - Sensed terminal voltage @@ -53,14 +53,14 @@ The algebraic equations of the exciter. V_{tr} &= V_{ref} - V_{ts}+V_{UEL} + V_{OEL} + V_S - V_F\\ V_{f} &= \dfrac{E_{fd}' K_F}{T_F} - V_{fx}\\ E_{fd}&= \begin{cases} - E_{fd}^{'} & \text{if } I_{spdlm}\\ - (1+\omega)E_{fd}^{'} & \text{else } \\ + E_{fd}' & \text{if } I_{spdlm}\\ + (1+\Delta \omega)E_{fd}' & \text{else } \\ \end{cases}\\ k_{sat}&= \begin{cases} - S_B(E_{fd}^{'} -S_A)^2 & \text{if } E_{fd}^{'} >S_A\\ + S_B(E_{fd}' -S_A)^2 & \text{if } E_{fd}' >S_A\\ 0 & \text{else } \\ \end{cases} \\ - V_{E} &= k_{sat}\cdot E_{fd}^{'} \\ + V_{E} &= k_{sat}\cdot E_{fd}' \\ \end{aligned} ``` From 5a24ecd9cd3b0a8caaa0b6adb9eafdbe9511019f Mon Sep 17 00:00:00 2001 From: Wyatt Lowery Date: Sun, 11 May 2025 13:17:45 -0500 Subject: [PATCH 9/9] edit: indicator notation [skip ci] --- src/Model/PhasorDynamics/Exciter/IEEET1/README.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md index 9211b16d..4b136b89 100644 --- a/src/Model/PhasorDynamics/Exciter/IEEET1/README.md +++ b/src/Model/PhasorDynamics/Exciter/IEEET1/README.md @@ -81,21 +81,13 @@ The IEEET1 differential equations, as derived from the model diagram. \end{aligned} ``` The domain of the state variable $V_{R}\in(V_{rmin}, V_{rmax})$ is enforced -through the piece-wise definition above. However, depending on the -general solver's requirments, this may need to be expressed as a -smooth approximation (bump function/smooth indicator). Perhaps like the -following. +through the piece-wise definition above. This may need to be expressed as a +smooth approximation (smooth indicator $\phi$) expressed generically as follows. ```math \begin{aligned} - I(x,x_0,\epsilon) - &= \dfrac{1}{2} + \dfrac{1}{2}\tanh - \left(\dfrac{x-x_0}{\epsilon}\right) \\ - \phi(x) &= I \left(x;V_{rmin}, \epsilon \right) - - I \left(x;V_{rmax}, \epsilon \right) - \qquad \epsilon <<1 \\ \dot{V}_{R} &= - \dfrac{1}{T_A}\cdot \phi(V_R) + \phi(V_R)\cdot \dfrac{1}{T_A} \left[ -V_{R}+K_{a}V_{tr} \right] \\