Releases: powsybl/powsybl-open-loadflow
Releases · powsybl/powsybl-open-loadflow
v2.2.0
Labels correspond the associated described change.
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Dependencies
- Bump powsybl-core to v7.2.0 (#1378) Breaking Change Breaking changes are mentioned in the powsyble-core 7.2.0 migration guide
Load flow
- First implementation of loadflow for AC DC networks: this new feature supports the new DC detailed components (for now DC Line, DC Bus, Voltage Source Converter, DC Ground) for load flow calculations on one single connected component (#1302, #1373)
This feature is enabled with the parameter acDcNetwork
Robustness and accuracy
- Multiple operational limits groups can be selected at the same time, LimitViolations are detected in each of these selected groups (#1345)
The output limit violations now contain the operationalLimitGroupId.
- HVDC AC emulation saturation is now managed by its specific outer loop, it is available in AC calculation and DC load flow (
Modeling of saturation in DC load flow is new, this is a functional breaking change). Note that AC emulation saturation is still not supported in Woodbury based calculation (DC Fast Security Analysis and DC Sensitivity Analysis)
Reports and output values can vary.
- Update of R/X/G/B values of transformers on tap changes (#1311)
- Add Q-threshold for voltage controller buses in reactive limits outerloop (#1333)
PV <-> PQ switching can vary in the corner case of being close to the reactive power tolerance
- Fix JSON update of OpenLoadFlowParameters extension (#1335)
This fix can change parameters in use cases where JSON parameters were incorrectly loaded
- Fix sensitivity based connectivity calculation (#1341)
- Fix generationTargetQ freezing and invalidating for LfBus. This fix solves an exception throwing corner case when using Secondary Voltage Control Outer Loop (#1334)
- Fix reported ignored target V and perform inconsistent target V checks (#1362) ![Test Data Change] (https://img.shields.io/badge/-Test%20Data%20Change-c98e00.svg) Reports are impacted
- Fix Area Interchange Control failing if one area cannot distribute its slack bus active power (#1322)
- Fix Static VAR compensator shared voltage control (#1361)
Security Analysis
- Add distributedActivePower to results (#1351)
- Support filtered conditions (on limit violation type) for Security Analysis with actions (#1337)
- Support threshold conditions for Security Analysis with actions (#1330)
- Support three windings transformer in terminal connection actions (#1338)
- Contingency connectivity report: Do not count HVDC stations as lost injections if both stations belong to the same synchronous component (#1307)
Connectivity results may be impacted
- Zero impedance branches can be monitored with state monitors in zero impedance mode (#1298)
- Fix Security Analysis exception contingency on half-connected non-impedance branch (#1339)
- Fix disconnectedElements ID-s in ContingencyResult ConnectivityResult for three windings transformer and dangling lines (#1349)
- Fix infinite and NaN flowTransfer values in security analysis results (#1367)
- Disable inconsistent voltage target checking tool for contingencies (the check is now only done for the base case) (#1363)
Sensitivity Analysis
- Operator Strategies are now supported in DC sensitivity analysis (#1326)
- Support sensitivity variable type BUS_TARGET_VOLTAGE for Battery object (#1313)
- Clearer and earlier exception message in case of duplicate variable set ids (#1310)
The exception thrown in case of duplicate variable set ids is modified
Performance
- Improve naive connectivity calculation performance (#1347) (used in security analysis with remedial actions, and now also in DC sensitivity analysis with remedial actions)
Reports
- Add reports to describe AC Load flow voltage initialization step (#1368)
- Add trace reports for generators that have been discarded from active power control or voltage control in the network loading (#1357)
These reports are enabled with the enum
NETWORK_LOADINGin the parameter reportedFeatures - Remove VoltageMonitoring outerloop when not needed by the network to avoid useless line in the reports (#1320)
Tests on reports can be impacted
- Convert french reports encoding from Latin1 to UTF-8 (#1324)
Tests including french reports are impacted
Documentation
- Fix load flow documentation inconsistency (theta vs. phi) (#1346)
Developper
v2.1.1
v2.1.0
Labels correspond the associated described change.
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Dependencies
- Bump powsybl-core to v7.1.0 (#1306 )
Breaking changes are mentioned in the powsyble-core 7.1.0 migration guide
Robustness and accuracy
- Automatic fix of incompatible voltage targets (#1115). This debugging feature helps finding and disabling voltage targets that are mutually incompatible, that can trigger convergence issues (enabled through the parameter fixVoltageTargets
) . The public method
VoltageTargetChecker.findElementsToDiscardFromVoltageControlcan also be used to display incompatible voltage to users in interactive applications. - Use of generator
equivalentLocalTargetV(new IIDM value) when switching from remote voltage control to local voltage control (#1295) - Support of fictitious bus injections (#1114)
Load flow results may change in IIDM networks that already had non zero values for
fictitiousP0orfictitiousQ0since they are now taken into account - Maximum number of shunt sections change per Shunt incremental outerloop (#1297) Introduction of parameter incrementalShuntControlOuterLoopMaxSectionShift
Changes can happen when computing load flow with incremental shunt voltage control
- Split Area Interchange Control remaining slack mismatch into several distributions, one per area (#1283)
- Run load flow with main synchronous component mode.
The new choice
MAIN_SYNCHRONOUSis introduced for LoadFlowParameter componentMode (previously named connectedComponentMode) (#1292)
Performance
- Vectorization of AC EquationSystem (#1275) leading to gain in performance for AC calculation
- Support of multi-thread computation for AC Sensitivity Analysis (#1288) with introduction of a new open sensitivity analysis parameter threadCount
Reports
- Reduce some log levels and send some functional log messages to reports (#1278)
v2.0.0
Labels correspond the associated described change.
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Dependencies
- Built with Java 21 (PR #1267). You need java 21 or later to run OpenLoadFlow.
- Update maven wrapper to version 3.3.3 (PR #1274)
- Bump powsybl-core to v7.0.0 (
include new load flow API support and new sensitivity API support, see the powsyble-core migration guide section Deprecated methods)
Reports
- Report messages are available in French (PR #1260). To see reports in French, add
.withLocale(Locale.FRANCE)to the root report node builder.
Robustness and accuracy
- Update target Q of generators when target P changes (PR #1240) : when using forceTargetQWithinReactiveLimits parameter, generators Q limits can depend on target P (that can change during the load flow because of active power distribution). Now target Q can be updated whenever the target P changes during the load flow
- Option to consider generators at zero TargetP as started (PR #1265)
. To activate this mode, set parameter generatorsWithZeroMwTargetAreNotStarted to true. By default, the previous behaviour is kept: generators connected to the network with targetP set to zero do not participate to the slack distribution even if 0 is between minP and maxP.
Update default parameter values (PR #1273). Default parameters now provide values for reliable loadflow in most use cases, by failing if the slack distribution fails. The modified defaults are slackDistributionFailureBehavior (previous default LEAVE_ON_SLACK_BUS, now FAIL), transformerVoltageControlMode (previous default WITH_GENERATOR_VOLTAGE_CONTROL now INCREMENTAL_VOLTAGE_CONTROL) and plausibleActivePowerLimit (previous default 5000, now 10000). The latter parameter has been increased to allow powsybl sample models to run with these new defauts..
- Fix NPE in Security Analysis in breaker mode if a generator regulates voltage on disconnected remote terminal (#1261 )
When startWithFrozenACEmulation is set to true, HVDC in AC emulation begin the simulation in fixed setPoint mode, with active set point defined by the previous values of angles of the stations. It is only after the first newton raphson converges that the HVDC AC emulation is taken into account. By default, this mode is deactivated for a loadflow, but activated for post contingency computation in security analysis and sensitivity analysis. See PR (#1199) and (#1289). This mode can help detect situations where power cannot flow to/from and HVDC station after a contingency, and until the HVDC automata reacts to the angle change (which may take several minutes).
Since the new behaviour is active by default for security analysis or sensitivity analysis, may change some tests using HVDC emulation. .
- Fix Q dispatch not meeting requested reactive power mismatch threshold (#1241).
may break some tests that compare reactive injection with a tolerance smaller than the previous Q dispatch threshold.
Security analysis
- Add scope control for applying overridden load flow parameters to operator strategies (PR #1257) : When operator strategies are defined for a contingency, the
scopeattribute ofContingencyLoadFlowParametersdefines whether the overridden parameters also apply to the operator strategy simulations.
Sensitivity analysis
- Allow to specify a battery ID as an injection variable id (PR #1272)
- Support sensitivity of BRANCH_CURRENT per HVDC_LINE_ACTIVE_POWER (PR #1258)
Any sensitivity cannot be computed according to an HVDC in AC emulation mode (because its active power set point cannot be set). This case has been clarified in this PR and now throws an exception.
- New sensitivity API support [#1285).
See the powsyble-core migration guide section Deprecated methods
- Sensivity Analysis computation supports thread interruption and can be cancelled (PR #1284 )
Load Flow
- Fix serialization of open load flow provider parameters to map. The result map can now be reused to update all parameters. (PR #1280)
- New loadflow API support [#1285) .
See the powsyble-core migration guide section Deprecated methods
- The Fast_Decoupled algorithm is available as an alternative to Newton-Raphson or Newton-Krylov to solve the AC equation system. PR #1241 . For more information, see the Fast_Decoupled documentation.
Performance
- Reduce time consumed by Equation.rhs() and EquationSystemIndex (PR #1269)
Developper
v1.16.0
Labels correspond the associated described change.
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Dependencies
- Bump powsybl-core to v6.8.0
This release introduces breaking changes in IIDM 1.14. See the migration guide
Reports
- Reports i18n (#1216) and {#1225}. Implements the powsybl-core report node V3 for i18n API.
. When creating a root report node, you need to include the OpenLoadFlow message bundle as explained in https://github.com/powsybl/powsybl-core/wiki/Migration-guide-v6.7.0#report-node-v3-for-i18n .
- Active Power Distribution: better reports severities when residual mismatch remains #1215 . Before this change, the active power distribution could emit a report with error severity when it failed to distribute the slack, even if the load flow parameters (such as slackBusPMaxMismatch or slackDistributionFailureBehavior) would not consider this as a failure.
IIDM changes
#1246 the field tapPosition of tap changers, and the field sectionCount of shunt compensators are no longer updated after a loadFlow. Instead, the fields solvedTapPosition and solvedSection are updated. For more information, see the migration guide
Robustness and accuracy
- Fix double slack distribution in DC Security Analysis (#1209)
- Ensure all parameters are read from the platform configuration file (#1214)
- In Connectivity Report do not count twice lost loads and generators that are on a contingency bus (#1204)
- Filter disabled generators when computing bus Q limits (#1220). Before the targetQ of disconnected groups of a PV bus was counted and shifted the PQ diagram .
may change results of tests that were affected by the issue.
- Change load flow result when there is no voltage control in a component (leads to NO_CALCULATION instead of FAILED) (#1226)
may change results of tests that check load flow result status.
- Force area boundary branches to min impedance (PR #1218). For more details see the Area Interchange Control algorithm description.
Extrapolate reactive capability curve limits when outside active power limits (PR #1224) adds the new parameter extrapolateReactiveLimits to allow a different computation of reactive limits for generators that control voltage during startup (targetP < pMin) instead of using the bounds of minP.
Add parameter to define min nominal voltage for unrealistic state check (PR #1217) adds the new parameter minNominalVoltageRealisticVoltageCheck to allow setting strict realistic voltage boundaries that would apply only to high voltage substations.
- Fix slack mismatch remaining after AIC (#1223 )
Security Analysis
- Add switch actions in Fast DC Security Analysis (PR #1153). For a list of remaining limitations of Fast DC security Analysis vs default DC security Analysis, see parameter dcFastMode documentation at https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/security/parameters.html
Sensitivity Analysis
- Sensitivity Analysis : Select tie line factor with its dangling line id (PR #1228). This change enables to use the same API to get a dangling line sensitivity whether it is paired or not. When a dangling line id is specified, if the dangling line is paired (and its studied side is the side 1 corresponding to the network side), the corresponding LfTieLineBranch is selected.
- Added support of BRANCH_REACTIVE_POWER and BRANCH_CURRENT per INJECTION REACTIVE POWER (PR #1237)
Performance
- Refactor access to branch limits when detecting limit violations (#1197)
- Save and restore only active power changes in Fast DC Security Analysis (#1205)
- Change log levels of messages in fast DC Security Analysis (#1222) Detailed logs for post-contingency and post-operator strategy simulations are now in DEBUG level. Setting the
com.powsybl.openloadflow.sa.AbstractSecurityAnalysislogger to DEBUG in your logging configuration file enables the display of detailed logs (but it is recommended to avoid it for better performance, use it only for debugging and detailed analysis purpose) - Cache loadTargetQ in buses (PR #1232)
v1.15.2
v1.15.1
v1.15.0
Labels correspond the associated described change.*
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Documentation
- Enable download of documentation in pdf format (#1149) enables to download the doc in PDF format (from the button at the lower right corner of the documentation page https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/ ). Diagrams and pictures are not yet included in the PDF documentation.
- Add documentation to list the currently implemented security analysis (#1166) documents the remedial actions supported by OpenLoadFlow security analysis (https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/security/inputs.html)
- Fix doc for newtonRaphsonStoppingCriteriaType=UNIFORM_CRITERIA (#1175)
- Advanced programming guide added by #1155 . The advanced programming guide is available at https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/advanced_programming/index.html
Usability
- Clearer error message when initial LF fails in AC Sensi (#1170)
- Improve log and report when max outerloop iterations reached (#1179)
- Reports improved for multi-thread security analysis (#1168). They now appear in the same way whether computation is single threaded or multi-threaded. In addition reports contain information about operator strategy actions that could not be applied to a particular contingency.
- The generators configured to control voltage that reached their reactive diagram limits or local voltage limits during loadflow computation are now reported (#1182). This can help identify causes for large number of outerloop iterations or understand why some groups are not maintaining voltage in the solution.
Security Analysis
- For Security Analysis it is possible to override some loadflow parameters for specific contingencies via a Contingency extension (#1139 and #1156). For more information see 'Contingency Load Flow Parameters' in the Open Load Flow security analysis documentation documentation https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/security/parameters.html
- The violation location is now reported with node information in Node Breaker topology, even when a contingency changes the merged buses ( #1180)
- The AreaInterchangeTargetAction is now supported (#1172 and #1186)
- In Fast DC security analysis, HVDC emulation is disabled (#1173). The active power set point is used instead for HVDC lines configured with AC emulation. Previously, fast DC could give incorrect results if the model contained HVDC lines configured with AC emulation.
Sensitivity Analysis
- Support more voltage sensitivities cases (#1181). For a list of sensitivity supported on OpenLoadFlow see https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/sensitivity/getting_started.html
- Support ThreeWindingsTransformer in DC sensibility analysis (#1190)
Robustness and accuracy
- Fix injections ignored on first slack bus when using multiple slacks (#1160) Completes the fix on multi-slack made in V14.0.
. May impact the result of models using multiple slack buses that were subject to this bug. With this fix loadflow runs are expected to provide the same result -after slack distribution- whether they are run with one or several slack nodes. (but before slack distribution the loss depends on the slack location).
- Fix secondary voltage control in case of generator remote voltage control (#1165). Secondary Voltage Control is an optional outerloop, not activated by default, that provides a fast, static, approximation of the equilibrium state of the generator reactive power alignment process that controls the voltage of a remote pilot point.
- Operator strategies are now supported when Security Analysis is performed in multi-thread mode (#1177)
A new parameter forceTargetQInReactiveLimits can be used to force generator targetQ to be within the generator's reactive limits (#1154). By default the parameter is set to false and, as in previous versions, if targetQ is outside the reactive limits diagram, targetQ is used for a group that is not controlling voltage.
- Slack distribution participation factors: use maxP instead of maxTargetP (#1178 (comment)) (#1178)
. May change test results for models that have an ActivePowerControl with a maxTargetP value that overrides a generator's maxP.
- Unrealistic voltage check is now performed for all AC solvers #1188 . Previously the check was only performed for the NewtonRaphson AC Solver.
The minRealisticVoltage and maxRealisticVoltage parameters now have an effect for any AC Solver (NewtonRaphson, NewtonKrylov or custom solver)
The new parameter disableInconsistentVoltageControl can be set so that Open Load Flow disables inconsistent generator voltage controls #1185 . By default, Open Load Flow will continue to keep the voltage control of an inconsistent bus, with one arbitrary configuration from the conflicting set on the bus.
- Reduce unrealistic voltage created by remote voltage control by #1135 via a new parameter, voltageRemoteControlRobustMode set to True by default.
. For more information, see the parameter documentation at https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/loadflow/parameters.html .
Models that previously failed with unrealistic voltage may now succeed since voltageRemoteControlRobustMode is true by default.
- Balance type PROPORTIONAL_TO_REMAINING_MARGIN checks active mismatch sign for participation factors [#1189]. Previously the margin vs pMax was always taken into account even when the slack mismatch was negative.
may change the results of test using the PROPORTIONAL_TO_REMAINING_MARGIN balance type.
Advanced API
An ordered list of outerloops, which advanced users could specify in AC, can now also be specified in DC (#1159) via the outerLoopNames parameter. For more information see the documentation of the outerLoopNames parameter at https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/loadflow/parameters.html .
- Security Analysis: custom redistribution of injections lost by the contingency can be specified by a plugin (#1155). See the new Advanced Programming Guide for more details https://powsybl.readthedocs.io/projects/powsybl-open-loadflow/en/latest/advanced_programming/index.html
- A library can provide a LoadFlowDefaultParametersLoader that defines default loadflow values including default OpenLoadFLow parameters.(#1176).
Performance
- Fix performance issue when accessing loading limits from IIDM (#1162) makes the access to load limits more efficient and accelerates slightly the AC, DC and fast DC security analysis.
- Load active power target caching (#1163) accelerates slightly fast DC security analysis.
This PR changes the order of some double operations at may create small differences in the last bits...
v1.14.1
v1.14.0
Labels correspond the associated described change.*
indicates that some methods were deprecated;
indicates a breaking change which could impact all users;
indicates a change in the simulation results that may affect existing tests in your application;
indicates a new parameter, a new parameter default or a new parameter usage;
📜 Release notes
Reports
- Report buses out of realistic voltage range in sub reports [#1105]
May change reference reports layout for tests having this error condition.
LoadFlow
- The Area Interchange control is now available in DC [#1123]. Before it was only available in AC. This features, activated by the parameter areaInterchangeControl constrains OpenLoadFlow to find a solution where area interchanges match the input target interchange values. The areaInterchangeControl parameter now impacts DC computations.
Security Analysis
- ViolationLocation are now returned for bus voltage violations. ViolationLocation allow to know the precise location of a bus related violation inside a VoltageLevel, in BusBreaker topology or in NodeBreakerTopology. [#1134]
- The criteria to stop the active power flow through a disconnected HVDC line has been modified in [#1120]. Previously an HVDC line was considered disconnected if one of its stations was connected to an isolated merged bus that was not connected to a Generator or a Load. With this fix, fictive loads are ignored. So if an HVDC station is only connected to a fictive load, the HVDC line is now considered disconnected.
- With parameter connectedComponentMode set to ALL, the security analysis now handles correctly all synchronous components of the main connected component (#1129). Previously, only the largest synchronous component of the main connected component was run.
. May impact tests running SA on all components where the first connected component has several synchronous parts.
- PST actions for fast DC SA are supported [#1095]. Fast DC SA is an optional algorithm for security analysis in DC activate by the dcFastMode parameter. It is much faster than the default algorithm but has currently some limitations (see the dcFastMode parameter documentation for a list of limitations)
Robustness and accuracy
- Retry LU decomposition if incremental mode fails (#1108). This change helps in particular for the SA computation of large modes with HVDC in AC emulation that can reach or quit the maximal HVDC Active Power Range.
- Fix injections ignored on slack buses when using multi slack (#1116)
. May impact the result of models using multiple slack buses that were subject this this bug.
- DC Load Flow reference bus and multi slack support [#1118]. Provides a better DC initialization for AC simulations using multiple slack buses.
- Fixed a bug in DC : incorrect transit if a PST is near zero impedance lines, or if a HVDC in AC emulation is near a zero impedance line. FIxed by #1138.
May change results of tests that were subject to the bug
In DC, the slackDistributionFailureBehavior parameter is now honoured [#1146]. Previously the behaviour was always LEAVE_ON_SLACK_BUS even if the parameter had a different value.
Tests with a different value than LEAVE_ON_SLACK_BUS and a slack distribution failure condition may behave differently with this release.
Advanced API
- An extension API is provided to allow external AC Solvers in addition to the existing NewtonRaphson and NewtonKrylov solvers (#1107). The acSolverType has evolved to support other AC solvers available in the classpath.
- The utility class com.powsybl.openloadflow.util.MatrixUtil has been removed and the utility functions added to the com.powsybl.math.matrix.DenseMatrix class from powsybl-core [#1136].
This may break code of projets that took advantage of this internal utility class.