Skip to content

v3.0.0

Compare
Choose a tag to compare
@pet-mit pet-mit released this 16 Jul 14:30

Release note

Breaking changes

This is a major FARAO release. It contains a big overhaul of the CRAC and RAO APIs.
Modify your applications accordingly.

Refactoring

CRAC API

  • The CRAC creation now relies exclusively on adders. The adders have been updated to allow you to create the most complete business objects that you may need.
  • There's a new CRAC json exporter and importer. The json file is easier to read, and does not depend on the underlying CRAC object. Instead, the importer and exporter use the CRAC API like all other importers and exporters should. The json file is versioned and will be stable through the few upcoming releases.
  • Some new helper classes in the crac-creation-util package are here to help you map the CRAC's objects to elements in the network, when creating a FARAO CRAC object.

RAO API

  • The RAO API is now more feature-rich. It now relies on clearly defined inputs and outputs.
  • There's a new RaoResult interface provided by the RAO providers, containing all the RAO results you need. You no longer have to go through the CRAC's extensions in order to look for the RAO results.
  • The RaoResult has a json exporter and importer. It will be stable for the next few releases and will be versioned in the future.
  • The CRAC's extensions are not used anymore: the CRAC stays untouched through the whole RAO.

New features

Second preventive RAO

  • You now have the possibility to turn on the "with-second-preventive-optimization" in SearchTreeParameters, enabling you to run a second preventive RAO after the curative RAOs.
  • This second preventive RAO can help mitigate some constraints created by the first one, that were not resolved by the curative RAOs.
  • The second preventive RAO takes into account all the CNECs in the CRAC, as well as the optimal remedial actions decided during the curative RAOs.

On-constraint remedial actions

  • The CRAC API and the RAO now handle the definition and optimization of remedial actions available in case of a constraint on a given CNEC.

New settings

  • You can now define a maximum number of curative remedial actions to use in a given curative perimeter, using "max-curative-ra"
  • You can now define a maximum number of TSOs that can use curative remedial actions in a given curative perimeter, using "max-curative-tso"
  • You should now turn MNEC constraints ON or OFF using "rao-with-mnec-limitation", instead of using non-zero/zero mnec violation cost.

Bug fixes

RAO

  • Aligned PSTs with different initial setpoints (in the network) are now excluded from the RAO. This ensures the initial solution is feasible for the RAO.

Some remarks on the quick evolution of Farao's API

The code of farao-core is still evolving significantly from one release to the next. Several of those evolutions are impacting, in one way or another, the APIs of FARAO, and consequently the applications that rely on it. We are indeed in a stage in which we are still allowing ourselves to bring many breaking changes to our API.

These quick evolutions of the API give us the flexibility in the current stages of the Farao development to question some of our initial choices, and adapt some parts of the source code in order to make it more robust, scalable, easy-to-read and fitted to the newly developed features.

Eventually, the API of FARAO will be stabilized. Breaking changes will be made with more parsimony and be accompanied by more documentation. But this stabilization will come later as significant changes in the crac-api are still expected in the next releases.