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

CGMES: remove extension for Control Areas, use IIDM Area #3149

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

Conversation

zamarrenolm
Copy link
Member

@zamarrenolm zamarrenolm commented Sep 20, 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?

What kind of change does this PR introduce?

Update

What is the current behavior?

Information from CGMES control areas is stored using an extension to the Network Model (CgmesControlArea).

What is the new behavior (if this is a feature change)?
Information from CGMES control areas is stored using native IIDM objects of class Area.
CGMES pTolerance attribute is stored as a property.
The ENTSO-E attribute IdentifiedObject.energyIdentCodeEic is stored as an alias.

For assembled models (CGM), the new behaviour has support for tie flows of a control area located at the boundary point of tie lines

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

  • Yes
  • No

If yes, please check if the following requirements are fulfilled

  • The Breaking Change or Deprecated label has been added
  • The migration steps are described in the following section

What changes might users need to make in their application due to this PR? (migration steps)

Previously, during export, if the CgmesControlArea extension was not present in the exported network, a new one was created and a control area representing the whole network was added to it, with the terminals of all dangling lines defined as its tie flows. As a result, the CGMES export always had a control area of type interchange.

After this PR, no control area is automatically created during export. The export process itself will not add, remove or change the attributes of the objects in the IIDM model.

If the user wants to define a control area interchange based on the whole network, it can do it programmatically using the following line of code:

new CgmesExport().createDefaultControlAreaInterchange(network);

It is located in the CgmesExport exporter because the creation of a default area involves potential access to reference data (boundaries) and using some export parameters that the user may have already configured. The relevant data: the sourcing actor (that determines its region and the corresponding EIC code), the consideration of boundary nodes (and associated tie flows) as AC or DC. Also, the user can provide some of the parameters explicitly, if needed. As an example, including the final call to CGMES export:

Properties exportParams = new Properties();
exportParams.put(CgmesImport.BOUNDARY_LOCATION, "....");
exportParams.put(CgmesExport.NAMING_STRATEGY, NamingStrategyFactory.CGMES);

new CgmesExport().createDefaultControlAreaInterchange(network, exportParams);
network.write("CGMES", exportParams, outputPath);

Other information:

  • Check if the balancing adjustment mechanism has to be updated (in powsybl-entsoe) and adapt it if needed
  • Adapt UCTE import/export

@zamarrenolm zamarrenolm marked this pull request as ready for review October 25, 2024 12:09
@zamarrenolm zamarrenolm requested a review from rcourtier October 25, 2024 13:41
* @author Marcos de Miguel {@literal <demiguelm at aia.es>}
*/
@AutoService(ExtensionSerDe.class)
public class CgmesControlAreasSerDe extends AbstractExtensionSerDe<Network, CgmesControlAreas> {
Copy link
Member

Choose a reason for hiding this comment

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

I think that we should support at least the reading (ideally also the writing) of this extension and map it on IIDM Areas. This will allow to read previously exported IIDM without losing data.

I will write a compatibility SerDe handling it.

Copy link
Member

Choose a reason for hiding this comment

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

The PR is here: #3298

zamarrenolm and others added 5 commits January 30, 2025 11:45
…ion/elements/ControlAreaConversion.java

Co-authored-by: Olivier Perrin <[email protected]>
Signed-off-by: Luma <[email protected]>
…ion/elements/TieFlowConversion.java

Co-authored-by: Olivier Perrin <[email protected]>
Signed-off-by: Luma <[email protected]>
…ion/export/SteadyStateHypothesisExport.java

Co-authored-by: Olivier Perrin <[email protected]>
Signed-off-by: Luma <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Approved
Development

Successfully merging this pull request may close these issues.

5 participants