ElectricPy

Electrical-Engineering-for-Python

Python functions and constants related to electrical engineering.

The functions and constants that make up these modules represent a library of material compiled with the intent of being used primarily for research, development, education, and exploration in the realm of electrical engineering.

The base module for the electricpy package, electricpy.py may be leveraged in any Python script or program by using the import command similar to that shown below.

>>> import electricpy as ep

Filled with calculators, evaluators, and plotting functions, this package will provide a wide array of capabilities to any electrical engineer.

Built to support operations similar to Numpy and Scipy, this package is designed to aid in scientific calculations.

Contents:

logo

ElectricPy

Electrical-Engineering-for-Python

sphinx Documentation Status Tox Import Test

pytest pydocstyle Coverage

Matrix

"Buy Me A Coffee"

Python Libraries with functions and constants related to electrical engineering.

The functions and constants that make up these modules represent a library of material compiled with the intent of being used primarily for research, development, education, and exploration in the realm of electrical engineering.

Check out our full documentation: https://electricpy.readthedocs.io/en/latest/

Antu dialog-warning Documentation has recently been updated to use ReadTheDocs

GitHub Pages are still active, and will continue to be for the forseeable future, but they’re intended for developmental updates rather than primary documentation.

Features

  • Extensive set of common functions and formulas for electrical engineering and electronics.

  • Support for LaTeX math generation (use this in conjunction with your Jupyter notebooks!)

  • Generate focussed and simple plots, diagrams, and figures.

Samples Generated with ElectricPy

Phasor Plot

Power Triangle

Induction Motor Circle

RLC Frequency Response

Receiving Power Circle

Installing / Getting Started

  1. ElectricPy has a few basic installation options for use with pip. For most common users, use the following command to install ElectricPy with pip

pip install electricpy[full]
  1. Check installation success in Python environment:

import electricpy
electricpy._version_
  1. Start using the electrical engineering formulas

>>> import electricpy as ep
>>> voltage = ep.phasor(67, 120) # 67 volts at angle 120 degrees
>>> voltage
(-33.499999999999986+58.02370205355739j)
>>> ep.cprint(voltage)
67.0 ∠ 120.0°
Installing from Source

If you’re looking to get the “latest and greatest” from electricpy, you’ll want to install directly from GitHub, you can do that one of two ways, the easiest of which is to simply issue the following command for pip

pip install git+https://github.com/engineerjoe440/ElectricPy.git

Alternatively, you can do it the “old fashioned way” by cloning the repository and installing locally.

  1. Clone/Download Source Code from GitHub Repository

  2. Open Terminal and Navigate to Folder with cd Commands:

  • cd <path\to\containing\folder>\electricpy

  1. Use Python to Install Module from setup.py:

  • pip install .

Dependencies
Optional Dependencies

For numerical analysis (install with pip install electricpy[numerical]):

For fault analysis (install with pip install electricpy[fault])

Get Involved / Contribute

If you’re interested in contributing, we’d love to see your support in a number of ways!

  1. Write Tests - We’re really lacking in this area. We’ve recently added simple GitHub actions to test installation, but that’s about it. We hope that someday we can test all functions in this module for verification.

  2. Contribute New Electrical Engineering Functions - If you’ve got a new function related to electrical engineering that you’d like to see added, we’d love to throw it into this module. Our goal is that this module can become the comprehensive electrical engineering toolkit in Python. Drop us a note, or create a pull request!

  3. Report Issues - We don’t want issues to go unnoticed. Please help us track bugs in our issues and resolve them!

  4. Get the Word Out - This project is still in its infancy, so please share it with your friends and colleagues. We want to make sure that everyone has the opportunity to take advantage of this project.

Check out the contribution guide

Come chat about ElectricPy

Special thanks to…
  • Stephen Weeks | Student - U of Idaho

  • Jeremy Perhac | Student - U of Idaho

  • Daniel Allen | Student - Universtiy of Idaho

  • Dr. Dennis Sullivan | Proffessor - U of Idaho

  • Dr. Brian Johnson | Proffessor - U of Idaho

  • Dr. Joe Law | Proffessor - U of Idaho

  • StackOverflow user gg349

  • Shaurya Uppal | Online Code Contributor

  • Paul Ortman | Power Quality Engineer - Idaho Power | Instructor - U of Idaho

and

contributors

Contact

For more information regarding this resource, please contact Joe Stanley

License and Usage

ElectricPy is licensed under the standard MIT license, and as such, you are permitted to use this resource as you see fit. Please feel free to ask questions, suggest edits and report bugs or other issues.