Circuit simulator written in python
Project description
About SpicePy
SpicePy is a name coming from the merge of SPICE (Simulation Program with Integrated Circuit Emphasis) and Python, hence, it goes without saying that it is a Circuit simulator written in python
SpicePy borns as a teaching project. It is shared with students of basic circuit theory with two aims:
- to allow them to check the results of exercises solved analytically
- to show them how a numerical code to solve circuit is made
This document provides information basic about features and installation procedure. For the user's guide please refer to the Wiki section.
What can I do with SpicePy?
SpicePy allows you to simulate
- linear circuits
- operating point
- transient simulation
- alternating current simulation
- the following components:
- resistor
- capacitor
- inductor
- independent voltage source
- independent current source
- dependent sources (
VCVS
,VCCS
,CCVS
,CCCS
)
- transient sources (
pwl
,pulse
,sin
,exp
)
Installation
From Pypi
Run this command (optionally you can activate you virtual environment first):
pip install spicepy
From GitHub
- Clone the repository:
git clone https://github.com/giaccone/SpicePy.git
- add SpicePy folder to the python path
- done!
Requirements
This project is based on Python 3. I'm use to run this project on the latest version provided by miniconda. Side note, Python 2 is not supported.
The project makes use of the following Python modules:
numpy
scipy
matplotlib
Usually, the last version of this Python modules is the one under use.
Last but not least, as many other Python tools a convenient method to handle SpicePy is within an interactive shell like: iPython
, jupyter notebook
, google colab
Work in progress
Here you can read about aspects that I'm thinking to include in this project. The list does not certifies that I will integrate all it is described. It's a simple list of the topics that potentially will be developed.
- non-linearity: I'm planning to implement a non-linear solver based on Newthon-Rapshon method. A rough implementation already exists but it is far from be harmonized to the entire project. Since I prefer stability over new features I will include non-linearity when I will have some more (free) time that currently I do not have.
- GUI: a small project was developed in order to create a text editor with tools to write netlists and with SpicePy integrated. But It is not sufficiently stable.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.