-
Notifications
You must be signed in to change notification settings - Fork 43
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
Extrapolation of getMinQ and getMaxQ for reactive capability curves #3250
base: main
Are you sure you want to change the base?
Conversation
…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>
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/ReactiveCapabilityCurve.java
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
iidm/iidm-impl/src/test/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImplTest.java
Outdated
Show resolved
Hide resolved
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>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
There was a problem hiding this 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>
|
@olperr1 |
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ReactiveCapabilityCurveImpl.java
Outdated
Show resolved
Hide resolved
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
Hello @olperr1 thank you for your reviews. The log warning now shows the owner description, but I removed specific values, so that a repeated log message can be filtered by the logging system |
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/util/ReactiveCapabilityCurveUtil.java
Outdated
Show resolved
Hide resolved
Signed-off-by: PRABAKARAN Sylvestre <sylvestre.prabakaran@rte-france.com>
|
Please check if the PR fulfills these requirements
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)
andgetMaxQ(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 ofgetMinQ(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 forgetMaxQ(...)
) that behaves like existinggetMinQ(double p)
if the boolean is set tofalse
. If set totrue
, 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?
If yes, please check if the following requirements are fulfilled
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 existinggetMinQ(p)
andgetMaxQ(p)
The method must be implemented by custom IIDM implementations.
A new utility method,
ReactiveCapabilityCurveUtil.extrapolateReactiveLimitsSlope(...)
, which computes a point outside [minQ ; maxQ], was added to help you to implement the new API methods.