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] Extrapolation of getMinQ and getMaxQ for reactive capability curve #3250

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

Conversation

SylvestreSakti
Copy link
Contributor

@SylvestreSakti SylvestreSakti commented Dec 10, 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?

This PR adresses this issue in Open Load Flow : powsybl/powsybl-open-loadflow#1143

What kind of change does this PR introduce?
For accuracy of load flow when generators are outside their active power limits (e.g for starting generators that may have P < Pmin). We want to model the reactive limits getMinQ(p) and getMaxQ(p) in a more accurate way than just getting the reactive power limits of the bound Pmin or Pmax. (See figure given in the linked issue)

What is the current behavior?
When P < Pmin or P > Pmax, reactive limits of P : getMinQ(P) getMaxQ(P) are the values of getMinQ(Pmin) getMaxQ(Pmin) (or Pmax).

What is the new behavior (if this is a feature change)?
We introduce new methods getMinQ(double p, boolean extrapolateReactiveLimitSlope) (and same for getMaxQ(...)) that behaves like existing getMinQ(double p) if the boolean is set to false. If set to true, the reactive limit slope of the PQ diagram is extrapolated outside active power limits (as shown in the figure given in the linked issue).

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)

ReactiveCapabilityCurve API has been modified, introducing two methods :
getMinQ(double p, boolean extrapolateReactiveLimitSlope)
getMaxQ(double p, boolean extrapolateReactiveLimitSlope)
If extrapolateReactiveLimitSlope = false the behavior is the same as existing getMinQ(p) and getMaxQ(p)

The method must be implemented by custom IIDM implementations.

…apolation of reactive limit slope

Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
…d maxQ when extrapolated

Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
@SylvestreSakti SylvestreSakti added the Breaking Change API is broken label Dec 10, 2024
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
@vidaldid-rte vidaldid-rte changed the title Extrapolation of getMinQ and getMaxQ for reactive capability curve [WIP] Extrapolation of getMinQ and getMaxQ for reactive capability curve Dec 11, 2024
Copy link
Contributor

@vidaldid-rte vidaldid-rte left a comment

Choose a reason for hiding this comment

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

Approved but marked in WIP until we understand better whether this extrapolation is justified for usual groups.

Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
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.

2 participants