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

Two windings transformer: add phaseAngleClock, only one tap changer regulating. #1012

Merged
merged 68 commits into from
Nov 15, 2019

Conversation

marqueslanauja
Copy link
Contributor

Please check if the PR fulfills these requirements (please use '[x]' to check the checkboxes, or submit the PR and then click the checkboxes)

  • 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 ? If so, link to this issue using '#XXX' and skip the rest

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Feature

What is the current behavior? (You can also link to an open issue here)
More than one tap changer regulating control enabled is allowed (ratio and phase)

What is the new behavior (if this is a feature change)?
Only one tap changer regulating control enabled is allowed
PhaseAngleClock is added in twoWindingsTransformer as an extension

Does this PR introduce a breaking change or deprecate an API? If yes, check the following:

  • The Breaking Change or Deprecated label has been added
  • The migration guide has been updated in the github wiki (What changes might users need to make in their application due to this PR?)

Other information:

(if any of the questions/checkboxes don't apply, please delete them entirely)
Some tests has been adjusted as they have twoWindingsTransformers with more than one tapChanger control enabled.

marqueslanauja and others added 30 commits October 1, 2019 10:57
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
…(step 1: generators)

Signed-off-by: Luma Zamarreño <zamarrenolm@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>

# Conflicts:
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/RegulatingControlMapping.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/RegulatingControlMappingForGenerators.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/RegulatingControlMappingForTransformers.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ExternalNetworkInjectionConversion.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/PhaseTapChangerConversion.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/RatioTapChangerConversion.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/SynchronousMachineConversion.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/TwoWindingsTransformerConversion.java
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
… enabled.

Signed-off-by: José Antonio Marqués <marquesja@aia.es>
…rsion_svcRegulatingControl

Signed-off-by: José Antonio Marqués <marquesja@aia.es>

# Conflicts:
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/RegulatingControlMapping.java
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/StaticVarCompensatorConversion.java
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
…rsion_regulatingControlUniformization

Signed-off-by: José Antonio Marqués <marquesja@aia.es>

# Conflicts:
#	cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/RegulatingControlMappingForStaticVarCompensators.java
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
miovd and others added 6 commits November 11, 2019 12:07
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>

# Conflicts:
#	iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/RatioTapChangerImpl.java
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
@coveralls
Copy link

coveralls commented Nov 12, 2019

Coverage Status

Coverage increased (+0.02%) to 84.291% when pulling a96f59d on cgmes_conversion_T2x into 2844971 on master.

Copy link
Member

@zamarrenolm zamarrenolm left a comment

Choose a reason for hiding this comment

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

We could add a test to check the set method in the phase angle clock extension, to increase coverage

@zamarrenolm
Copy link
Member

sonar warning about duplicated code is related to common methods with other XML serializers. It is not relevant.

One option to fix the duplicated code would be to set the name of the XSD resource, the namespace URI and the namespace prefix as attributes at ExtensionXmlSerializer, so methods to obtain these items can be implemented at ExensionXmlSerializer, without the need to override at every child class.

@miovd
Copy link
Contributor

miovd commented Nov 13, 2019

sonar warning about duplicated code is related to common methods with other XML serializers. It is not relevant.

One option to fix the duplicated code would be to set the name of the XSD resource, the namespace URI and the namespace prefix as attributes at ExtensionXmlSerializer, so methods to obtain these items can be implemented at ExensionXmlSerializer, without the need to override at every child class.

For now, we consider this as false positive, it will not block the merging into master for us.

marqueslanauja and others added 2 commits November 13, 2019 10:39
Signed-off-by: José Antonio Marqués <marquesja@aia.es>
@geofjamg
Copy link
Member

Should it be flagged as breaking change (and added to migration guide) as for instance load flow impl have to be modified to take this attribute into account?

@miovd
Copy link
Contributor

miovd commented Nov 13, 2019

Should it be flagged as breaking change (and added to migration guide) as for instance load flow impl have to be modified to take this attribute into account?

I am not sure this PR qualifies as Breaking Change since no breaking change is explicitly made here... Behavior is not modified anywhere by this PR. Maybe in another PR, a LF parameter indicating if phase angle clocks are ignored or not will be added and this PR should then be declared as broken change but not this one in my opinion.

@zamarrenolm
Copy link
Member

Should it be flagged as breaking change (and added to migration guide) as for instance load flow impl have to be modified to take this attribute into account?

I am not sure this PR qualifies as Breaking Change since no breaking change is explicitly made here... Behavior is not modified anywhere by this PR. Maybe in another PR, a LF parameter indicating if phase angle clocks are ignored or not will be added and this PR should then be declared as broken change but not this one in my opinion.

I agree with Miora. Phase angle clock values are relevant for short-circuit analysis and load flow calculations can safely ignore them (voltages and flows obtained will be the same with or without these values).

Some TSOs take them into account in their load flow calculations, but it is not a requirement. In these cases load flow results angles have a phase shift in some buses (after the transformer end that has the phase angle clock). As these buses are not connected to other parts of the network, this phase shift has no real impact on the electric analysis using load flow. Storing phase angle clocks has been introduced mainly to be able to do comparisons in these situations.

Next pull request related to this set of changes will be a breaking change, as it will introduce the new three winding transformer API.

@geofjamg
Copy link
Member

Should it be flagged as breaking change (and added to migration guide) as for instance load flow impl have to be modified to take this attribute into account?

I am not sure this PR qualifies as Breaking Change since no breaking change is explicitly made here... Behavior is not modified anywhere by this PR. Maybe in another PR, a LF parameter indicating if phase angle clocks are ignored or not will be added and this PR should then be declared as broken change but not this one in my opinion.

I agree with Miora. Phase angle clock values are relevant for short-circuit analysis and load flow calculations can safely ignore them (voltages and flows obtained will be the same with or without these values).

Some TSOs take them into account in their load flow calculations, but it is not a requirement. In these cases load flow results angles have a phase shift in some buses (after the transformer end that has the phase angle clock). As these buses are not connected to other parts of the network, this phase shift has no real impact on the electric analysis using load flow. Storing phase angle clocks has been introduced mainly to be able to do comparisons in these situations.

Next pull request related to this set of changes will be a breaking change, as it will introduce the new three winding transformer API.

Ok thanks.

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

Successfully merging this pull request may close these issues.

None yet

5 participants