PowSyBl (Power System Blocks) is an open source library written in Java, that makes it easy to write complex software for power systems simulations and analysis. Its modular approach allows developers to extend or customize its features.
PowSyBl is part of the LF Energy Foundation, a project of The Linux Foundation that supports open source innovation projects within the energy and electricity sectors.
Read more at https://www.powsybl.org !
This project and everyone participating in it is governed by the PowSyBl Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
PowSyBl Open Load Flow provides:
Almost all of the code is written in Java. It only relies on native code for the KLU sparse linear solver. Linux, Windows and MacOS are supported.
The AC calculations are based on full Newton-Raphson algorithm. The DC calculations are based on direct current linear approximation. Open Load Flow relies on:
Open Load Flow supports:
Open Load Flow both supports AC and DC calculations. Even if it comes from the same powsybl-core API, the calculations behind are radically different. The AC post contingency sensitivities calculation is based on the same principles than the AC security analysis. The DC post contingency sensitivities calculation is highly optimized and fully documented here.
It supports all types of sensitivity factors that can be find in the API:
It supports contingencies of type:
Running a load flow with PowSyBl Open Load Flow is easy. First let's start loading a IEEE 14 bus network. We first add a few Maven dependencies to respectively have access to network model, IEEE test networks and simple logging capabilities:
<dependency> <groupId>com.powsybl</groupId> <artifactId>powsybl-iidm-impl</artifactId> <version>6.0.2</version> </dependency> <dependency> <groupId>com.powsybl</groupId> <artifactId>powsybl-ieee-cdf-converter</artifactId> <version>6.0.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.9</version> </dependency>
We are now able to load the IEEE 14 bus:
Network network = IeeeCdfNetworkFactory.create14();
After adding a last Maven dependency on Open Load Flow implementation:
<dependency> <groupId>com.powsybl</groupId> <artifactId>powsybl-open-loadflow</artifactId> <version>1.4.0</version> </dependency>
We can run the load flow with default parameters on the network:
State variables and power flows computed by the load flow are have been updated inside the network model and we can for instance print on standard output buses voltage magnitude and angle:
network.getBusView().getBusStream().forEach(b -> System.out.println(b.getId() + " " + b.getV() + " " + b.getAngle()));
PowSyBl Open Load Flow could support more features. The following list is not exhaustive and is an invitation to collaborate:
We can always increase or improves features and implementations. We have thought about:
For more details, to report bugs or if you need more features, visit our github and do not hesitate to write new issues.
If you don't have a proper Maven installation, you could use the provided Apache Maven Wrapper scripts. They will download a compatible maven distribution and use it automatically.