ORNL / ORNL/GridKit

Compensation Voltage on Exciters

Open
#518 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
27
Forks
11
Avg merge
3d 8h
Merged PRs (30d)
23

Description

Summary

Raised in #424

  • The 'Compensation voltage', $E_C$, typically comes from the machine model instead of the terminal Bus. This is because there is a parameter specified by the machine model (e.g.GENROU) that we do not currently support: $R_{comp}$ and $X_{comp}$. When these are both zero-valued, $E_C=|V_{bus}|$. Sometimes, the compensation reactance is configured to be nonzero specifically to decouple $E_C$ from $|V_{bus}|$ and improve numerical stability. I think there is a broader conversation to be had about how we can model sensed terminal voltage.
  • This exciter as well as IEEET1, locally compute $E_C=\sqrt{V_r^2+V_i^2}$, despite $E_C$ being documented as an external variable. This was a temporary design choice before we had signals.
  • For more advanced grid cases and models, the terminal voltage magnitude is consumed more than once. Therefore, I encourage us to introduce $V_{m}$ as a third internal algebraic variable of Bus, conditionally included based on consumption (otherwise we could introduce unused nonlinear algebraic equations incessantly!). Same for $\theta_{bus}$. I will soon need models that need the bus frequency (i.e., time derivative of $\theta_{bus}$).
Rationale

Will clean this up in a bit

Description

No response

Additional information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the exciter and bus modeling code for the affected exciter, IEEET1, and GENROU models, then trace how E_C is currently computed and passed. The issue does not name files or tests and leaves the desired design unresolved; done criteria would need to be established for compensation parameters and conditional Bus variables before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.