Skip to main content

A package to convert spice netlist into space state representation

Project description

Netlist to space state

This program converts a spice like netlist into a state-space representation of the system. You can choose the input variables, linearize unlinear systems, calculate the dc operating point, and choose the output variables. The states are column vector taken as the voltage in the capacitors and the current in the inductos, respecting the same order in which they are included in the netlist from top to bottom.

More details and examples can be found below:

Files

test: folder containing all the tests for the code. Type ./test/run_all.sh to run them.

examples: sample netlists

/netlist2ss/netlist2ss.py: calculate the space space-state representation

/netlist2ss/sisotf.py: instantiate the netlist2ss package in order to compute the transfer function for a single input and single output system (the sisotf command is added when you install this package using the setup-tools)

/netlist2ss/__init__.py: init file

Simple Example

  1. Open python3 in a terminal

  2. Calculate the space state matrices of 'cap_filt.sp' circuit by typing the following lines in the python interpreter

    from netlist2ss import netlist2ss 
    handle  = open('./examples/cap_filt.sp', 'r')
    netlist = handle.read()
    handle.close()
    A,B,C,D,OP = netlist2ss(netlist,['IN'],['VnOUT'])
* ['IN'] is the list of the input variables. Input variables can be any variable used as value of a device in the netlist.
* ['VnOUT'] list of output measurements. Use Vn<node> to mesaure the voltage in a specific node, Vd<dev> to measure de voltage across a device, and Id<dev> for the current across a device. Vc<dev> and Ic<dev> returns the voltage and the current between the control pins of controlled sources, respectively.
  1. The transfer function can be calculated by running:
    import sympy as si
    s = si.symbols('s')
    H = si.simplify(C*((s*(si.eye(A.shape[0]))-A).inv())*B + D)[0,0]

Netlist

As shown in the example, the netlist is composed of a list of devices. The interconections between the devices (the nets) can written as any valid spice net name. The keywords gnd (in any combination of up and lower case letters) and 0 means the reference potential node and they must be present at least once.

The value of the device can be any variable name or constant. Don't use any reserved word of sympy!

The device type is identified by its first letter. You can find a list of the supported devices below:

type Description
V Independent voltage source
I Independent current source
E Voltage controlled voltage source
F Current controlled current source
G Voltage controlled current source
H Current controlled voltage source
L Inductor
C Capacitor
R Resistor
T Ideal transformer

Limitations

* capacitors can't be connected in parallel with voltage sources or in parallel with other capacitors.
* inductors can't be connected in series with current sources or in series with other inductors.

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

netlist2ss-0.0.1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

netlist2ss-0.0.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file netlist2ss-0.0.1.tar.gz.

File metadata

  • Download URL: netlist2ss-0.0.1.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for netlist2ss-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9a822e1a8eba6aa9bdefd03769cb7155e6224d2dcf1c5673c48d920d6c4768fb
MD5 a16b49e2cb645321c70b923501272b89
BLAKE2b-256 7c81cc22f6def507338946693dad9559800882e8747af1aa74ce75c9a9f888ac

See more details on using hashes here.

File details

Details for the file netlist2ss-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: netlist2ss-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for netlist2ss-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87f066177666a522c1b6547c06d2a77efdeaa8d14c2324b7c9878400cdecd9ab
MD5 fdedf2809a0113d18a65c4011b9ceb5d
BLAKE2b-256 8940803be9da72d2047b9447c655ff214a84efa9d185dc0ff788de1b6c7e94ad

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