Skip to main content

Ultra fast power flow based in Laurent series expansion.

Project description

binder https://img.shields.io/github/license/MauricioSalazare/tensorpowerflow https://img.shields.io/pypi/pyversions/tensorpowerflow.svg https://img.shields.io/pypi/dm/tensorpowerflow.svg https://img.shields.io/github/languages/code-size/MauricioSalazare/tensorpowerflow https://img.shields.io/pypi/v/tensorpowerflow https://img.shields.io/github/workflow/status/MauricioSalazare/tensorpowerflow/Python%20package/master https://img.shields.io/github/workflow/status/MauricioSalazare/tensorpowerflow/Python%20package/master?label=tests

TensorPowerFlow

What is TensorPowerFlow?

An ultra-fast power flow based on Laurent series expansion. The power flow is intended for applications where massive amounts of power flow computations are required. e.g., electrical load time series, metaheuristics, electrical grid environments for reinforcement learning.

How to install

The package can be installed via pip using:

pip install tensorpowerflow

Example:

Run the load base case as:

from tensorpowerflow import GridTensor
import numpy as np

#%% Solve base case (34 node bus)
network = GridTensor()
solution = network.run_pf_sequential()
print(solution["v"])

#%% Solve 10_000 power flows on the 34 node bus case.
network_size = network.nb - 1  # Remove slack node
active_ns = np.random.normal(50, scale=1, size=(10_000, network_size)) # Power in kW
reactive_ns = active_ns * 0.1  # kVAr
solution_tensor = network.run_pf_tensor(active_power=active_ns, reactive_power=reactive_ns)
print(solution_tensor["v"])

#%% Generate random radial network of 100 nodes and a maximum of 1 to 3 branches per node.
network_rnd = GridTensor.generate_from_graph(nodes=100, child=3, plot_graph=True)
solution_rnd = network_rnd.run_pf_sequential()
print(solution_rnd["v"])

More examples can be found in the examples folder (under development). Also, you can try the package via jupyter lab clicking in the binder icon:

binder

Reading and citations:

The mathematical formulation of the power flow can be found at:

“A Fixed-Point Current Injection Power Flow for Electric Distribution Systems using Laurent Series.” J.S. Giraldo, O.D. Montoya, P.P. Vergara, F. Milano. Power Systems Computational Conference (PSCC) 2022. link

How to contact us

Any questions, suggestions or collaborations contact Juan S. Giraldo at <jnse@ieee.org>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tensorpowerflow-0.0.4.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

tensorpowerflow-0.0.4-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file tensorpowerflow-0.0.4.tar.gz.

File metadata

  • Download URL: tensorpowerflow-0.0.4.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for tensorpowerflow-0.0.4.tar.gz
Algorithm Hash digest
SHA256 e99930e30ffc5ac8409b932421d10f53863504dc81bc3dc2f57c31c39486b7d4
MD5 055b9049effc751274b14345dd2d46b7
BLAKE2b-256 735a16f054495e2722b6b6037feda8036c200fea570a32dbdb16454f8a678395

See more details on using hashes here.

File details

Details for the file tensorpowerflow-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for tensorpowerflow-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 84be2fd1f414be8a2c9ec6b8ae6800908855ed44c2ac35bf22a6e22eab405e07
MD5 1707314efa1ea099c155d9ab928ba1a3
BLAKE2b-256 df30330523d0256822b78fb4df9818593419b3ea3cb2831294c99f088369d93d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page