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] Returning real slack buses mismatches in SlackBusResult when using multiple slacks #1161

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SylvestreSakti
Copy link
Contributor

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?

When using multi-slack, the returned slack buses result returned the same mismatch for all the slackbuses which is. This approach can be wrong because the mismatches may not be exactly the same between slack buses depending on the solver criterias.
Moreover, this led to hide a wrong slack distribution use case (fixed in #1160) where the global mismatch was almost zero but unequally distributed between slack buses (because of the presence of a load in the first slack and wrong equation definition in this case).

This PR proposes to display the real mismatch in each slack bus independently.

What is the current behavior?
Currently, the component result has a SlackBusResult list containing the same mismatch for each slack bus which equals to : SlackBusMismatch/nbSlack.

What is the new behavior (if this is a feature change)?
In the new behavior, each SlackBusResult has a mismatch corresponding to SlackBus.getMismatchP().
NB : This introduces a functional change which is the handling of SlackbusFailureBehaviour.FAIL which leads to have the initial mismatch as the displayed mismatch in each bus since no distribution has been done.

A cleaner way to do such a change would be to introduce the breaking change of having SlackBusResult list instead of a SlackBusActivePowerMismatch in the LoadFlowResult interface in order to display only data that is contained in the LoadFlow result (instead of computing each MismatchP in the final network to retreive the correct mismatches) but such a major refactoring is not done in this PR. This can be discussed.

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

  • Yes
  • No

@geofjamg
Copy link
Member

A cleaner way to do such a change would be to introduce the breaking change of having SlackBusResult list instead of a SlackBusActivePowerMismatch in the LoadFlowResult interface in order to display only data that is contained in the LoadFlow result (instead of computing each MismatchP in the final network to retreive the correct mismatches) but such a major refactoring is not done in this PR. This can be discussed.

Yes, it would worse an API evolution to get real mismatches for each of the slacks

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.

2 participants