Releases: powsybl/powsybl-core
v6.1.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM
- Add disconnectors on all parallel bars except one and make naming consistent (#2729)
- Add a getSide() from a three windings transformer leg (#2745)
- Add limit violations for three windings transformers (#2725)
- Custom connection/disconnection of terminals (#2754)
- Remove JavaScript post processor (#2776)
- Add a listener on terminal connection (#2764)
- Standardize sides enum: using only TwoSides and ThreeSides (#2756)
- JSON support added and XML serialization refactoring (#2307, #2784, #2786, #2792)
- Add a reporter context for
Network
operations (#2690) - Reference priorities and reference terminals iIDM extensions (#2763)
- Use Breadth First Strategy (BFS) instead of Depth First Strategy (DFS) for reducer subnetwork predicate (#2549)
- Set all tck test methods accessibility to public (#2785)
- Generalise error message in tck (#2799)
- Fix iidm v1.11 equipment xsd (#2810)
IIDM Extensions
- BranchStatus renamed OperatingStatus and HVDC lines support (#2796)
Network modification
- Add minValue and maxValue to compound scalables (#2720)
- Use a naming strategy during network modifications (#2649)
Math
- Kinsol solver (#2797)
Matpower
- Matpower export : fix VSC without Hvdc line (#2813)
- Matpower export: fix low impedance branches and branches connected to same bus (#2814)
LoadFlow
CGMES
- Fix CGMES date parsing (#2794)
- Export: fix static var compensator with bmin = bmax = 0 (#2806)
- Export: load flow status for each topological island (#2782)
- Import: keeping references to equivalent injections of tie lines in assembled model (#2774)
Contingency
- Add
ONLY_CONTINGENCIES
ContingencyContext (#2791) - Fix identifier contingency list deserialization (#2807)
Sensitivity analysis
- Ensure correct initialization of contingencyIndex when loaded from JSON (#2801)
Short circuit
Dynamic simulation
- Add a reporter to dynamic simulation and its models suppliers (#2750)
- Dynamic simulation results (#2788)
AMPL
Compatibility
- Powsybl-core now uses java.time library instead of Joda.Time (#2778)
Vulnerability fix
- Bump ch.qos.logback logback-core and logback-classic from 1.4.11 to 1.4.14. Fixes CVE-2023-6378 (#2808, #2815)
Quality
- Fix Unix file permissions, text files should not be executable (#2727)
- Remove println from tests (#2812)
- Factorizing breadth/depth-first traversals (#2787)
- Refactor roundtrip for serializing/deserializing unit tests (#2811)
CI
- Update CI actions due to node.js v12 deprecation (#2766)
v6.0.3
v6.1.0-alpha-1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM
- Add disconnectors on all parallel bars except one and make naming consistent (#2729)
- Add a getSide() from a three windings transformer leg (#2745)
- Add limit violations for three windings transformers (#2725)
- Custom connection/disconnection of terminals (#2754)
- Remove JavaScript post processor (#2776)
- Add a listener on terminal connection (#2764)
- Standardize sides enum: using only TwoSides and ThreeSides (#2756)
- JSON support added and XML serialization refactoring (#2307, #2784, #2786)
- Add a reporter context for
Network
operations (#2690) - Reference priorities and reference terminals iIDM extensions (#2763)
- Set all tck test methods accessibility to public (#2785)
Network modification
- Add minValue and maxValue to compound scalables (#2720)
LoadFlow
- Load Flow Results API enhancements (#2767)
Short circuit
- Add detailedReport in parameters (#2755)
Dynamic simulation
- Add a reporter to dynamic simulation and its models suppliers (#2750)
Compatibility
- Powsybl-core now uses java.time library instead of Joda.Time (#2778)
Quality
- Fix Unix file permissions, text files should not be executable (#2727)
CI
- Update CI actions due to node.js v12 deprecation (#2766)
v6.0.2
Release notes
IIDM
CGMES
- Import: fix atan in symmetrical phase shifters (#2748)
- Import: HVDC fix lost configurations (#2744)
- Export: fix tap changer control issue (#2716)
- Clean logs related to regulating controls (#2752)
- Export: do not create new regulating controls for shunt compensators if not needed (#2768)
- Export: preserve original classes of loads (#2739)
- Export: add EquipmentContainer to EnergySource (#2771)
- Export: preserve static var compensator regulating control data even if disabled (#2770)
- Export: fix CGM export adding equivalent injection power flows at tie lines (#2773)
Quality
- Javadoc fix: add literal in mail addresses (#2753)
v6.0.1
CGMES conversion
- CGMES import: disconnect dangling line if disconnected at boundary (#2730)
- CGMES import: manage phase tap changers with
xMin
. It is now optional (CGMES 3.0) and consistent with transformer x (non zero and non negative) (#2731) - CGMES import: fix regression due to
ratedS
wrong format on three windings transformers (#2733) - CGMES import: improve log message for merged containers (#2738)
- CGMES import: adjust multiple unpaired dangling lines connected at same boundary node (#2737)
Short-circuit
- Correct value of min-voltage-drop-proportional-threshold in tests (#2734)
IIDM
v6.0.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM
- Switch flows: fix non-deterministic behaviour (#2615)
- Delete Merging View implementation (#2612)
- Tie line: improve remove method with the possibility to update
P0
andQ0
(#2647) - Network modifications : implement RemoveSubstation (#2637)
- Add a utility method to find the optional other side dangling line (#2680)
- Remove dangling lines merge by ID (#2677)
- Check minimumValidationLevel coherence before merging networks + update validationLevel (#2662)
- Traversal from terminal by depth or breadth first (#2626)
- Add getBusCount() to network and voltage level bus/breaker topology for symmetry (#2660)
- Added generator remote reactive power control iIDM extension XML serialization (#2694)
- Fix terminal ref to a tie line (#2719)
ThreeSides
to integer conversion helper in enum (#2721)
IIDM v1.11
Please refer to the detailed documentation of new version IIDM v1.11.
- Write properties for calculated buses in iidm export (#2631)
- Voltage angle limit (#2657)
- Subnetworks (#2442, #2678, #2718)
- Rename dangling line ucteXnodeCode to pairingKey (#2676)
CGMES
- Add possible values to naming strategies at CGMES import (#2609)
- Fix handling of T-Point during CGMES Bus-Branch import (#2610)
- Implement a pre-processor that completes the CGMES model with missing containers before starting the conversion (#2463)
- Fix StateVariableExport following branch changes (#2621)
- Remove CGMES properties and aliases from tie lines: keep mapping data in dangling lines (#2575)
- CGMES export: improve default ratedS value (#2598)
- CGMES export: loads with negative p0 as EnergySource (#2627)
- CGMES export: add new parameter to make ModelDescription custom (#2628)
- CGMES import: fix ensure unicity for switches (#2653)
- CGMES export: transformers with sorted ends (#2644), set new parameter
iidm.export.cgmes.export-transformers-with-highest-voltage-at-end1
toTrue
. - CGMES import: switches may not have a name attribute (#2691)
- CGMES export: fix SV export phase and ratio tap changer if both present (#2685 and #2693)
- CGMES import: support of optional ratedS value of transformers (#2648)
- CGMES export: support of equivalent shunts in EQ, SSH, SV (#2673)
- CGMES export: use region and base voltage references from boundaries (#2618), set new parameter
iidm.export.cgmes.sourcing-actor
to override the research of the sourcing actor using the network country. - CGMES export: updated control area, label as superseding for SSH (#2699)
- CGMES export: switch type and alias type for terminals of dangling lines (#2709)
- CGMES export using subnetworks for SSH, EQ and TP profiles by TSO (#2663 and #2711)
- CGMES force import of node/breaker as bus/breaker (#2717), set new parameter
iidm.import.cgmes.import-node-breaker-as-bus-breaker
toTrue
to force a node/breaker model to be imported as bus/breaker (TP instance file is required).
UCTE
- Improve error message for lines between 2 Xnodes (#2682)
Network modification
- Scalable: if equipment is disconnected, then it is not scaled (#2605)
- Fix post-removal equipment access (#2620)
- Invalid components after dangling lines merging and tie lines removal (#2623)
- Battery modification (#2625)
- Topology cleanup used in RemoveFeederBay was not checking if Connectables were connected to successive nodes in mixed branches (#2629)
- Add a substation removal modification (#2637)
- When connecting a generator or a shunt in regulation mode, consider regulating terminals to compute targetV (#2655)
- Handling updown scalable get steady state power (#2710)
Scaling modifications (#2666)
- Floats changed to doubles in the methods and constructors
- Scaling parameter
iterative
deprecated and replaced by the enumpriority
- New Scaling parameter:
scalingType
. It can be eitherTARGET_P
(the scaling value specified is the target to reach) orDELTA_P
(the scaling value specified is the difference to reach with the steady state value). - Add the possibility to create a
ProportionalScalable
from a list of injections and a distribution mode. This example shows a proportional scaling on two loads and a dangline line:
List<Injection<?>> injectionsList = Arrays.asList(network.getLoad("l1"), network.getLoad("l2"), network.getDanglingLine("dl1"));
ScalingParameters scalingParametersProportional = new ScalingParameters(Scalable.ScalingConvention.LOAD,
true, true, RESPECT_OF_VOLUME_ASKED, true, DELTA_P);
ProportionalScalable proportionalScalable = Scalable.proportional(injectionsList, PROPORTIONAL_TO_P0);
double variationDone = proportionalScalable.scale(network, 100.0, scalingParametersProportional);
- Add the possibility to create a
StackScalable
from a list of injections.
Matpower
- Fix non regulating generators connected PV buses (#2639)
- Matpower bus names params (#2642)
- Matpower export: fix nan in targetQ (#2695)
- Limits export (#2665)
- Add log for generators converted to a load (#2712)
IEEE CDF
- Fix IEEE 118 nominal voltages (#2708)
Security analysis
- Support of static var compensator action (#2654)
- Operator strategy as a list of conditional actions (#2635)
Short-circuit analysis
- Make the method toThreePhaseValue public in FortescueValue (#2670)
New parameters (#2638)
See new config.yml
example:
sub-transient-coefficient: 0.8 # in the case of a sub transient study, an optional coefficient by which the transient reactance of the generators is multiplied in order to obtain the sub transient reactance. This coefficient should be less than 1.
with-loads: true # if set to true means that loads are taken into account in the short-circuit calculation by using P0 and Q0 to retrieve the short-circuit feeding. If set to false, all loads are considered with P0 and Q0 equal to zero.
with-shunt-compensators: true # if set to true means that shunt compensators feeding is taken into account. P and Q are used to retrieve the short-circuit feeding. False means no feeding.
with-vsc-converter-stations: false # if set to true, VSC converter stations are modeled as equivalent reactances, if set to false, they are ignored.
with-neutral-position: true # for tap changers only. If false, the step defined in the network model is used, else the neutral step is used (rho = 1, alpha = 0).
initial-voltage-profile-mode: "CONFIGURED" # NOMINAL, CONFIGURED or PREVIOUS_VALUE.
voltage-ranges: "config/voltage-ranges.json" # the path to a JSON file containing a list of voltage ranges with associated coefficients to be applied to each nominal voltage in the range to get the initial voltage profile. To use if initial-voltage-profile-mode is set to CONFIGURED.
An example of the JSON file containing the voltage ranges and associated coefficients is:
[
{
"minimumNominalVoltage": 350.0,
"maximumNominalVoltage": 400.0,
"voltageRangeCoefficient": 1.1 // this coefficient should be between 0.8 and 1.2
},
{
"minimumNominalVoltage": 215.0,
"maximumNominalVoltage": 235.0,
"voltageRangeCoefficient": 1.2
},
{
"minimumNominalVoltage": 80.0,
"maximumNominalVoltage": 150.0,
"voltageRangeCoefficient": 1.05
}
]
Math
- Check dense matrix max element count at creation (#2669)
AMPL
- Ampl executor - Change parameters file IO streams (#2608)
Dynamic simulation
- Add command to list dynamic models and event models (#2674)
Compatibility
Quality
- Clean some deprecated methods (#2611) and sensitivity function types (#2705)
- Bump guava from 31.1-jre to 32.0.1-jre. Fix CVE-2020-8908 and CVE-2023-2976 (#2616)
- Add a missing space in logs and report during feeder bay's creation (#2658)
- Add some tests with a reporter different than NO_OP during network modification applications (#2667)
- Fix some issues detected by the new Sonar profile (#2671, #2684)
- Add a scope provided clause for
maven-core
dependency in `i...
v6.0.0-RC1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM
- Switch flows: fix non-deterministic behaviour (#2615)
- Delete Merging View implementation (#2612)
- Tie line: improve remove method with the possibility to update
P0
andQ0
(#2647) - Network modifications : implement RemoveSubstation (#2637)
- Add a utility method to find the optional other side dangling line (#2680)
- Remove dangling lines merge by ID (#2677)
- Check minimumValidationLevel coherence before merging networks + update validationLevel (#2662)
- Traversal from terminal by depth or breadth first (#2626)
- Add getBusCount() to network and voltage level bus/breaker topology for symmetry (#2660)
- Added generator remote reactive power control iIDM extension XML serialization (#2694)
IIDM v1.11
Please refer to the detailed documentation of new version IIDM v1.11.
- Write properties for calculated buses in iidm export (#2631)
- Voltage angle limit (#2657)
- Subnetworks (#2442, #2678) ]
- Rename dangling line ucteXnodeCode to pairingKey (#2676)
CGMES
- Add possible values to naming strategies at CGMES import (#2609)
- Fix handling of T-Point during CGMES Bus-Branch import (#2610)
- Implement a pre-processor that completes the CGMES model with missing containers before starting the conversion (#2463)
- Fix StateVariableExport following branch changes (#2621)
- Remove CGMES properties and aliases from tie lines: keep mapping data in dangling lines (#2575)
- CGMES export: improve default ratedS value (#2598)
- CGMES export: loads with negative p0 as EnergySource (#2627)
- CGMES export: add new parameter to make ModelDescription custom (#2628)
- CGMES import: fix ensure unicity for switches (#2653)
- CGMES export: transformers with sorted ends (#2644), set new parameter
iidm.export.cgmes.export-transformers-with-highest-voltage-at-end1
toTrue
. - CGMES import: switches may not have a name attribute (#2691)
- CGMES export: fix SV export phase and ratio tap changer if both present (#2685 and #2693)
- CGMES import: support of optional ratedS value of transformers (#2648)
- CGMES export: support of equivalent shunts in EQ, SSH, SV (#2673)
- CGMES export: use region and base voltage references from boundaries (#2618), set new parameter
iidm.export.cgmes.sourcing-actor
to override the research of the sourcing actor using the network country. - CGMES export: updated control area, label as superseding for SSH (#2699)
- CGMES export: switch type and alias type for terminals of dangling lines (#2709)
- CGMES export using subnetworks for SSSH, EQ and TP profiles by TSO (#2663 and #2711)
UCTE
- Improve error message for lines between 2 Xnodes (#2682)
Network modification
- Scalable: if equipment is disconnected, then it is not scaled (#2605)
- Fix post-removal equipment access (#2620)
- Invalid components after dangling lines merging and tie lines removal (#2623)
- Battery modification (#2625)
- Topology cleanup used in RemoveFeederBay was not checking if Connectables were connected to successive nodes in mixed branches (#2629)
- Add a substation removal modification (#2637)
- When connecting a generator or a shunt in regulation mode, consider regulating terminals to compute targetV (#2655)
- Handling updown scalable get steady state power (#2710)
Scaling modifications (#2666)
- Floats changed to doubles in the methods and constructors
- Scaling parameter
iterative
deprecated and replaced by the enumpriority
- New Scaling parameter:
scalingType
. It can be eitherTARGET_P
(the scaling value specified is the target to reach) orDELTA_P
(the scaling value specified is the difference to reach with the steady state value). - Add the possibility to create a
ProportionalScalable
from a list of injections and a distribution mode. This example shows a proportional scaling on two loads and a dangline line:
List<Injection<?>> injectionsList = Arrays.asList(network.getLoad("l1"), network.getLoad("l2"), network.getDanglingLine("dl1"));
ScalingParameters scalingParametersProportional = new ScalingParameters(Scalable.ScalingConvention.LOAD,
true, true, RESPECT_OF_VOLUME_ASKED, true, DELTA_P);
ProportionalScalable proportionalScalable = Scalable.proportional(injectionsList, PROPORTIONAL_TO_P0);
double variationDone = proportionalScalable.scale(network, 100.0, scalingParametersProportional);
- Add the possibility to create a
StackScalable
from a list of injections.
Matpower
- Fix non regulating generators connected PV buses (#2639)
- Matpower bus names params (#2642)
- Matpower export: fix nan in targetQ (#2695)
- Limits export (#2665)
- Add log for generators converted to a load (#2712)
IEEE CDF
- Fix IEEE 118 nominal voltages (#2708)
Security analysis
- Support of static var compensator action (#2654)
- Operator strategy as a list of conditional actions (#2635)
Short-circuit analysis
- Make the method toThreePhaseValue public in FortescueValue (#2670)
New parameters (#2638)
See new config.yml
example:
sub-transient-coefficient: 0.8 # in the case of a sub transient study, an optional coefficient by which the transient reactance of the generators is multiplied in order to obtain the sub transient reactance. This coefficient should be less than 1.
with-loads: true # if set to true means that loads are taken into account in the short-circuit calculation by using P0 and Q0 to retrieve the short-circuit feeding. If set to false, all loads are considered with P0 and Q0 equal to zero.
with-shunt-compensators: true # if set to true means that shunt compensators feeding is taken into account. P and Q are used to retrieve the short-circuit feeding. False means no feeding.
with-vsc-converter-stations: false # if set to true, VSC converter stations are modeled as equivalent reactances, if set to false, they are ignored.
with-neutral-position: true # for tap changers only. If false, the step defined in the network model is used, else the neutral step is used (rho = 1, alpha = 0).
initial-voltage-profile-mode: "CONFIGURED" # NOMINAL, CONFIGURED or PREVIOUS_VALUE.
voltage-ranges: "config/voltage-ranges.json" # the path to a JSON file containing a list of voltage ranges with associated coefficients to be applied to each nominal voltage in the range to get the initial voltage profile. To use if initial-voltage-profile-mode is set to CONFIGURED.
An example of the JSON file containing the voltage ranges and associated coefficients is:
[
{
"minimumNominalVoltage": 350.0,
"maximumNominalVoltage": 400.0,
"voltageRangeCoefficient": 1.1 // this coefficient should be between 0.8 and 1.2
},
{
"minimumNominalVoltage": 215.0,
"maximumNominalVoltage": 235.0,
"voltageRangeCoefficient": 1.2
},
{
"minimumNominalVoltage": 80.0,
"maximumNominalVoltage": 150.0,
"voltageRangeCoefficient": 1.05
}
]
Math
- Check dense matrix max element count at creation (#2669)
AMPL
- Ampl executor - Change parameters file IO streams (#2608)
Compatibility
Quality
- Clean some deprecated methods (#2611) and sensitivity function types (#2705)
- Bump guava from 31.1-jre to 32.0.1-jre. Fix CVE-2020-8908 and CVE-2023-2976 (#2616)
- Add a missing space in logs and report during feeder bay's creation (#2658)
- Add some tests with a reporter different than NO_OP during network modification applications (#2667)
- Fix some issues detected by the new Sonar profile (#2671, #2684)
- Add a scope provided clause for
maven-core
dependency initools-packager
(#2614) - Upgrade all runtime dependencies to the most recent version (#2704)
Utilities
CI
- Add a new branch name pattern for full Sonar analyses (#2656)
v5.3.2
Release notes
CGMES
- Fix handling of T-Point during CGMES Bus-Branch import (#2610)
- Fix StateVariableExport following branch changes (#2621)
Network modification
- Scalable: if equipment is disconnected, then it is not scaled (#2605)
- Fix post-removal equipment access (#2620)
- Invalid components after dangling lines merging and tie lines removal (#2623)
Quality
- Bump guava from 31.1-jre to 32.0.1-jre. Fix CVE-2020-8908 and CVE-2023-2976 (#2616)
v5.3.1
v5.3.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM
- Move FourSubstationsNodeBreakerWithExtensionsFactory to iidm-test (#2544)
- Load and line asymmetrical data extensions (#2533)
- Fix hvdc removal reporting (#2559)
- Fix severity for remove vl or hvdc reports (#2558)
- Improve move connectable notification (#2562)
- European LV test feeder case (#2542)
- Bump iidm xml version to 1.10 (#2466)
- Fix writing zero bPerSection for xiidm <1.5 for iidm4cpp (#2560)
- Replace HalfLine by DanglingLine (#2437, #2585, #2587, #2602)
- IIDM zip and exponential load model (#2555, #2579)
- Remove Xnode/mergedXnode extensions (#2568, #2601)
- Add HvdcUtils (#2567)
- Add new network (generator, VSC, SVC, tap changers, shunt compensator) modifications (#2557)
- SV: support of DC approximation (#2589 and #2593)
- Support of ShuntCompensatorModification (#2588)
- Branch does not extend connectable (#2591)
- Multiple data sources (#2600)
CGMES
- CGMES pre-processors (#2513)
- Add methods to access supplementary data in CGMES boundaries (#2525)
- Add method to retrieve CN from Xnode in CgmesBoundary (#2556)
- CGMES EQ export fixes (#2528 & #2546)
- Fix tculControlMode in CGMES export: it is a reference and not a field
- Add SynchronousMachine.type attribute
- LinearShuntCompensator.gPerSection is not optional
- Add WindGeneratingUnit.windGenUnitType attribute
- Fix
stepVoltageIncrement
to not be infinite - Bug fix: when creating or referencing TN for disconnected switches, naming strategy is called
- Name is truncated to 32 characters in CGMES export (Quality check)
- Bug fix: store all topological nodes in context to write all SvVoltage
- Add netInterchange for control areas
- Add TieFlow.positiveFlowIn
- neutralU in RTC and PTC is ratedU
- Copy dangling line limits on both sides
- Always write SvPowerFlow for Injections and Tieflows
- If ID of sub-region does not correspond to a name, return N/A
- Avoid processing non-exported equipment
- CGMES import: import TATL shortName or name, not ID (#2537)
- Support of batteries export (#2527)
- CGMES export: fix calculation of flows for switches (#2582)
- Fixes in CGMES export (#2574)
- CGMES: Export all SvPowerflow for switches (#2592)
PSS/E
- PSSE: Q record anywhere between blocks. (#2529)
- TwoTerminalDc: Negative setvl (#2530)
- PSSE : add test cases from Illinois repository (#2538)
- PSSE: Fix duplicate IDs for NonTransformerBranches, Transformers, Loads, Generators, Shunts (fixed and switched) (#2539)
- PSSE: Support null fields in rawx format (#2540)
- switched shunt: in rawx format fields "i" and "id" must be "ibus" and "shntid" (#2541)
- Fix Lcc power factor (#2572)
Matpower
- Matpower export: add support of VSC, LCC, SVC and batteries (#2567)
- Matpower export: considering different nominal voltage (#2571)
- Matpower export: various fixes (#2578)
UCTE
- UCTE export: bug fixes on phase and ratio tap changers (#2573)
AMPL
- Fix Ampl Writer (#2596)
Security Analysis
- Fix: support of BusContingency in ContingencyElement (#2561)
- Factorize CriterionContingencyListSerializer classes into a single one (#2565)
- Add method checkLimitsDc with dcPowerFactor param (#2581)
- Add tie lines support in limit violation detector (#2586)
Contingency
- Add several contingency elements in identifiable lists (#2515)
Short circuits
Computation
- Add command execution duration to local computation manager (#2570)
Network modifications
- Add logs when exception is thrown (#2551)
- Add parameter to allow or not a generator to scale when its initial targetP is outside minP - maxP (#2584)
- Rephrase bus/bbs not found report and factorize calls to it (#2590)
Quality