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

implement getV and getAngle for busbarsection [WIP] #217

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

Conversation

jonenst
Copy link
Collaborator

@jonenst jonenst commented Oct 5, 2021

Signed-off-by: HARPER Jon [email protected]

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
NO

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)
bbs.getV() throws TODO UnsupportedException

What is the new behavior (if this is a feature change)?
bbs.getV() works

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

@jonenst jonenst requested a review from geofjamg October 5, 2021 08:59
@sonarcloud
Copy link

sonarcloud bot commented Oct 5, 2021

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@jonenst jonenst changed the title implement getV and getAngle for busbarsection implement getV and getAngle for busbarsection [WIP] Oct 5, 2021
@jonenst
Copy link
Collaborator Author

jonenst commented Oct 5, 2021

To investigate further. Immediate problem: usually algorithms (e.g. a loadflow) will use setV and setAngle on the getBusView(), not the getBusBreakerView(). So use getBusBreakerViewer here doesn't work well.

Other problems:

  • V and Angle are stored in the calculated buses (once in the busView calculated buses and once in the busBreakerview calculated buses: these are separate attributes of the voltage level). But they are also stored in the configured buses :

    • nodebreakertopology, getBusBreakerView().setV(...) => calculated BusBreakerView bus
    • nodebreakertopology, getBusView().setV(...) => calculated BusView bus
    • busbreakertopology, getBusBreakerView().setV(...) => configured bus
    • busbreakertopology, getBusView().setV(...) => calculated BusView bus
      But nothing keeps any of these in sync.
  • in the iidm inmemory implementation, v and angle are set in all the Terminals (which for the same bus will have the same values), but in networkstore we don't have that. What are the implications

@jonenst
Copy link
Collaborator Author

jonenst commented Oct 5, 2021

Maybe we can try the following implementation:

  • v theta are only ever stored in the busview-bus objects
  • for busbreaker topologies, the configured bus doesn't store the v theta. the busview has the mapping configuredbus -> busview-bus, so it can be used to get v/theta for each configuredbus.
  • for nodebreaker topologies, the equipment (e.g. terminal node in iidm in memory) doesn't store the v/theta. The busbreaker view has a mapping from equipments to busbreakerview-buses. The bus view has the mapping from these busbreakerviewb-bus to busview-bus.

@sylvlecl
Copy link

sylvlecl commented Nov 3, 2021

We encountered the exception while using network-store implementation for visualizing differences between voltage levels.

Without answering the question of "who should carry the voltage information", it seems to me that it would make sense to simply get the voltage value from the bus view. Indeed the voltage on a busbar must be equal to the voltage of the bus it belongs to.

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