Skip to content

geddy11/sysloss

Repository files navigation

Actions Status Code coverage Codacy PyPI Conda Code style: black Conv. commits Zenodo DOI

sysLoss

sysLoss is a tool for analyzing power trees, system power and losses. From the smallest IoT sensor to large industrial installations. The tool is efficient and easy to use, the analysis result provides a detailed report on voltages, currents, power and efficiency for every component defined in the system. Output format is Pandas DataFrame: Create charts, plots and export to Excel and other formats.

Installation

$ pip install sysloss

or

$ conda install conda-forge::sysloss

Usage

Analyze the power tree of a simple battery-powered bluetooth sensor:

from sysloss.components import *
from sysloss.system import System

bts = System("Bluetooth sensor", Source("CR2032", vo=3.0, rs=10))
bts.add_comp("CR2032", comp=Converter("Buck 1.8V", vo=1.8, eff=0.87))
bts.add_comp("Buck 1.8V", comp=PLoad("MCU", pwr=13e-3))
bts.add_comp("CR2032", comp=Converter("Boost 5V", vo=5.0, eff=0.82))
bts.add_comp("Boost 5V", comp=RLoss("RC filter", rs=6.8))
bts.add_comp("RC filter", comp=ILoad("Sensor", ii=6e-3))
bts.tree()
Bluetooth sensor
└── CR2032
    ├── Boost 5V
    │   └── RC filter
    │       └── Sensor
    └── Buck 1.8V
        └── MCU
df = bts.solve()
print(df)

result

Create graphical power tree diagrams:

import sysloss.diagram as sd

sd.make_diag(bts, fname="bts.png")

tree

Documentation

The documentation includes tutorials in the form of Jupyter notebooks, located in docs/nb.

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

sysloss was created by Geir Drange. It is licensed under the terms of the MIT license.