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

Review conditions of RegulatingControl creation at CGMES export #3279

Conversation

rcourtier
Copy link
Member

@rcourtier rcourtier commented Jan 21, 2025

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?

Bug fix.

What is the current behavior?

It is allowed in CGMES to define a SynchronousMachine with a ReactiveCapabilityCurve (or just the minQ and maxQ) but no RegulatingControl. It is imported flawlessly in iidm.
For instance, if a SynchronousMachine has no RegulatingControl, and a minQ < maxQ, it is imported with:

  • voltageRegulatorOn = false
  • no targetV, or rather it is Double.NaN
  • no RegulatingTerminal, or rather it is the local supplier
  • minQ
  • maxQ

But when exporting the network back to CGMES, a RegulatingControl is exported for that SynchronousMachine. The reason is primarily that the SynchronousMachine is considered in PowSyBl with regulating control capability since minQ < maxQ.

This generates issues in the CGM building process where an updated SSH is exported for the IGM, with a <cim:RegulatingControl rdf:about="#xxx"> whereas the <cim:RegulatingControl rdf:id="xxx"> isn't present in the original IGM EQ (and there is no export of the updated IGM EQ in the CGM building process).

What is the new behavior (if this is a feature change)?

The conditions of RegulatingControl creation at CGMES export have been reviewed. A RegulatingControl is created if one of the following condition is met:

  • A RemoteReactivePowerControl extension is present
  • There is a targetV different than Double.NaN AND minQ < maxQ

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

  • Yes
  • No

Other information:

Signed-off-by: Romain Courtier <romain.courtier@rte-france.com>
@rcourtier rcourtier requested a review from olperr1 January 21, 2025 13:58
@rcourtier rcourtier self-assigned this Jan 21, 2025
Signed-off-by: Romain Courtier <romain.courtier@rte-france.com>
Signed-off-by: Romain Courtier <romain.courtier@rte-france.com>
@rcourtier rcourtier requested a review from olperr1 January 22, 2025 10:38
@rcourtier rcourtier marked this pull request as ready for review January 22, 2025 11:42
Signed-off-by: Romain Courtier <romain.courtier@rte-france.com>
@olperr1 olperr1 merged commit 4887064 into main Jan 22, 2025
8 checks passed
@olperr1 olperr1 deleted the cgmes_export_regulatingcontrol_only_if_hasvoltagecontrolcapability branch January 22, 2025 15:49
olperr1 pushed a commit that referenced this pull request Jan 22, 2025
* Update conditions of generator's voltage control capability
* Create a constant for the CGMES.RegulatingControl property

Signed-off-by: Romain Courtier <romain.courtier@rte-france.com>
(cherry picked from commit 4887064)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants