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

[WIP] Slack distribution on generators (optionally) only considering generators on voltage control #1063

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

jeandemanged
Copy link
Member

@jeandemanged jeandemanged commented Jul 10, 2024

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)

Does this PR already have an issue describing the problem?

No

What kind of change does this PR introduce?

Feature

What is the current behavior?

List of generators participating in slack distribution does not consider whether the generator is on voltage control.

What is the new behavior (if this is a feature change)?
We can restrict the list of generators participating in slack distribution to generators on voltage control.

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

  • No

Other information:

Motivation: European Merging Function Requirements Specification v3, page 40, option generation distribution active power and voltage nodes only.

generation distribution active power ... suggests this option should apply only for Balance Type PROPORTIONAL_TO_GENERATION_P, but in this PR we allow also to restrict also for the other possible Balance Types involving generators (today PROPORTIONAL_TO_GENERATION_P_MAX, PROPORTIONAL_TO_GENERATION_REMAINING_MARGIN, PROPORTIONAL_TO_GENERATION_PARTICIPATION_FACTOR)

Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Copy link

sonarcloud bot commented Jul 10, 2024

@jeandemanged jeandemanged changed the title [WIP] Slack distribution on generators (optionally) only considering generators on voltage control Slack distribution on generators (optionally) only considering generators on voltage control Jul 10, 2024
Comment on lines +122 to +124
* If a generator voltage control is enabled in input data but internally disabled due to a consistency check,
(see e.g. `reactiveRangeCheckMode` and `disableVoltageControlOfGeneratorsOutsideActivePowerLimits`),
then no slack distribution will occur for that generator.
Copy link
Member Author

Choose a reason for hiding this comment

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

not sure this is right, changing PR to WIP

Copy link
Member Author

Choose a reason for hiding this comment

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

this is not right, or say, not what I need. I need to consider only the input setting of the generator.

@jeandemanged jeandemanged changed the title Slack distribution on generators (optionally) only considering generators on voltage control [WIP] Slack distribution on generators (optionally) only considering generators on voltage control Jul 11, 2024
// check first if generator:
// - is set to be participating
// - and if option is set to distribute only on generators on voltage control
if (!generator.isParticipating() ||
Copy link
Member

Choose a reason for hiding this comment

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

At each distribution outer loop, the controlled buses are changing (PV buses) so are the associated controller buses too. If you want a dynamic behavior, you must prefer using the method isGeneratorVoltageControlEnabled() from the controller bus (even if in case of remote voltage control? It is not the PV bus...). If you don't want a dynamic behavior, I think you can use the type (but without a dedicated method called `hasVoltageControl' because we have too much and we have tried to make the difference between voltage control, controllers and controlled buses).

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't want dynamic behavior. Also I fear that doing this would result in "distributed slack" and "reactive limits" fighting each other.

But checking again my requirements, the hasVoltageControl as currently implemented is not what I need functionally speaking, i need usage of the "raw" voltageRegulatorOn generator status.

Copy link
Member

Choose a reason for hiding this comment

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

So, maybe you have to add a new type because "OFF" can mean off in input data and off because checks are not passing.

Copy link
Member Author

Choose a reason for hiding this comment

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

yes exactly, this is why I wrote #1063 (comment) ...

but I am wondering if this is a feature we want in OLF or if we want to leave this feature outside ... it is quite easy to disable slack distribution on a generator via ActivePowerControl extension ...

Copy link
Member

Choose a reason for hiding this comment

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

Sorry I miss that, yes if you only need IIDM "voltageRegulatorOn" status, better try first to use active power control extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants