Solve electrical circuits
Project description
RTDS Circuit Analysis
RTDS Circuit Analysis is a Python software for solving electrical circuits, when given their netlist.
Installation
If you plan on using the command line interface for this software, you can use pipx for this:
pipx install rtds-circuit-analysis
If you want to use the library, however, you might prefer using pip for the installation:
pip install rtds-circuit-analysis
Netlist
Before actually using this program, you will need to write the circuit you want to analise as a netlist.
This software uses a netlist style similar to SPICE programs, where each line corresponds to each component in the
circuit. They will be formatted like Vin in 0 V, where:
- The the first letter in the first word,
Vis the component type (V for voltage source, R for resistors, etc), and together with the rest,Vin, make up the component name. - The second and third words are the nodes the component is connected to. Their names are arbitrary, except for the node 0, which will always be ground. It is also always necessary.
- The final word will be the value for the circuit. It can be a literal (such as in this case,
V), a numeric value (like10k), or a combination of both (like10V).
For example, here is a basic RLC circuit...
... and its netlist representation:
V1 1 0 10
R1 1 2 1k
L1 2 3 100m
C1 3 0 10u
Usage
Command Line Interface
The basic usage for the CLI software is in the form:
rtds-circuit-analysis netlist.cir
netlist.cir being the path for the file containing the netlist. This will print all the solutions for the
circuit (node voltages, currents, states, etc). You can use flags to filter the output. For example, to show only the
currents for each component, you can run:
rtds-circuit-analysis netlist.cir -i
You can filter it even more, by giving the components/node names to the flags as parameters. So, if you want the voltage and current for the resistor R1 only, you can run:
rtds-circuit-analysis netlist.cir -v R1 -i R1
Library
To solve the circuit, you need to import the Circuit class, and pass the netlist as a parameter, creating a circuit
object.
from rtds_circuit_analysis import Circuit
circuit = Circuit("netlist.cir")
This Circuit object will have all circuit solutions stored as attributes. So, for example, to find the voltage at node "2", you can use:
circuit.node_voltages["2"]
You can also use the print methods to print the solutions for the circuit in a formatted manner, similar to the
CLI. For example, to print the voltages for the components R1 and R2, you can run:
circuit.print_component_voltages("R1", "R2")
License
This project is licensed under the MIT License. See the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rtds_circuit_analysis-0.0.1.tar.gz.
File metadata
- Download URL: rtds_circuit_analysis-0.0.1.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d562f42575824f7a0fb477d8cd5d86963e67c12aa202c2b52d0dae5018c6f7de
|
|
| MD5 |
e07208a30dc0eac2ea1770728f816436
|
|
| BLAKE2b-256 |
9284cd96ffb453f133778fde3b8edc8a88f0135ef95ef3a8a0e63a5eaddc3938
|
File details
Details for the file rtds_circuit_analysis-0.0.1-py3-none-any.whl.
File metadata
- Download URL: rtds_circuit_analysis-0.0.1-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5a98cbea4228b206a88cbd572e0dcb2c2bd857d4cc1c82fcba559dd7fe24cf5
|
|
| MD5 |
98c74ccc05f6c468f393adf16d7daa50
|
|
| BLAKE2b-256 |
0f7d371d1fa4877e73f34184107d97eb0d6f576b4a4b6f2b01d3ba166bc12167
|