Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fictitious generators and condensers controlling voltage even if stopped #1044

Merged
merged 10 commits into from
Jun 28, 2024

Conversation

vidaldid-rte
Copy link
Collaborator

@vidaldid-rte vidaldid-rte commented Jun 6, 2024

Note also that this solves a problem similar to powsybl/powsybl-core#2999 and needs coordination with resolution of that issue (generators controlling voltage whether they produce power or not).

Please check if the PR fulfills these requirements

  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce?
Feature

What is the current behavior?
When modeling a network outside of the area of interest, the network is simplified and voltage control is sometime incorrect. In particular, a generator with a zero targetP is disabled from voltage control, but it is desirable to keep voltage control for external equivalents.

What is the new behavior (if this is a feature change)?
In order to give a more realistic voltage behavior, we can use "fictitious" generators that may or may not provide active power, but that can also control voltage even when not generating active power.
A generator with status fictitious and controlling voltage will control voltage even if target P is zero or outside normal operating range. Note that fictitiousGeneratorVoltageControlCheckMode option is introduced and allows to return to previous behavior.

Does this PR introduce a breaking change or deprecate an API?

  • No
    ⚠️ but a behavioral change: fictitious generators with voltage control and zero targetP will with default parameters now control voltage. Previous behavior can be restored by setting fictitiousGeneratorVoltageControlCheckMode to NORMAL.

@vidaldid-rte vidaldid-rte changed the base branch from main to pmin_pmax_override June 6, 2024 14:54
@vidaldid-rte vidaldid-rte force-pushed the gen_fictif branch 2 times, most recently from 2ba368a to fea2d6b Compare June 18, 2024 13:10
…ven if stopped

Signed-off-by: VIDAL Didier (Externe) <didier.vidal_externe@rte-france.com>
Signed-off-by: VIDAL Didier (Externe) <didier.vidal_externe@rte-france.com>
Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
Signed-off-by: VIDAL Didier (Externe) <didier.vidal_externe@rte-france.com>
Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
@vidaldid-rte vidaldid-rte changed the base branch from pmin_pmax_override to main June 24, 2024 15:08
@vidaldid-rte vidaldid-rte changed the title [WIP] Make fictive generators keep voltage even if stopped Make fictive generators keep voltage even if stopped Jun 24, 2024
Copy link
Member

@annetill annetill left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should use the new condenser attribute of generator I think.

Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
@vidaldid-rte
Copy link
Collaborator Author

You should use the new condenser attribute of generator I think.

I have added the condenser currently modelled now as "generators" not generating power but controlling tension.
For now, I keep fictif for generators that can generate power and always control tension (unless parameter for fictive generators mode set to 'NORMAL')

Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
@@ -120,6 +120,13 @@ public enum SlackDistributionFailureBehavior {

protected static final double GENERATOR_VOLTAGE_CONTROL_MIN_NOMINAL_VOLTAGE_DEFAULT_VALUE = -1d;

public enum FictitiousGeneratorVoltageControlMode {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need en enum here? What happens when the enum is NORMAL?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean instead of a boolean parameter ? No "need". I just saw the fictitiousGeneratorVoltageControlMode as a string param with values ALWAYS , NORMAL. ALWAYS meaning Always maintaining voltage, and NORMAL the normal behaviour - that is maintaining Voltage in started and target P between pmin and pmax.

annetill and others added 2 commits June 28, 2024 10:43
Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
@annetill annetill changed the title Make fictive generators keep voltage even if stopped Make fictive generators and condensers keep voltage even if stopped Jun 28, 2024
annetill added 2 commits June 28, 2024 12:01
Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
@jeandemanged jeandemanged changed the title Make fictive generators and condensers keep voltage even if stopped Fictitious generators and condensers controlling voltage even if stopped Jun 28, 2024
Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
Copy link

@annetill annetill merged commit efe1815 into main Jun 28, 2024
7 checks passed
@annetill annetill deleted the gen_fictif branch June 28, 2024 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants