An set of tools to Automate LTSpice simulations
Project description
README
PySpicer is a toolchain of python utilities design to interact with LTSpice Electronic Simulator.
What is contained in this repository
-
LTSteps.py An utility that extracts from LTSpice output files data, and formats it for import in a spreadsheet,s uch like Excel or Calc.
-
LTSpice_RawRead.py A pure python class that serves to read raw files into a python class.
-
Histogram.py A python script that uses numpy and matplotlib to create an histogram and calculate the sigma deviations. This is useful for Monte-Carlo analysis.
-
LTSpiceBatch.py This is a script to launch LTSpice Simulations. This is useful because:
- Can overcome the limitation of only stepping 3 parameters
- Different types of simulations .TRAN .AC .NOISE can be run in a single batch
- The RAW Files are smaller and easier to treat
- When used with the LTSpiceRaw_Reader.py and LTSteps.py, validattion of the circuit can be done automatically.
- Different models can be simulation in a single batch. The principle of operation is the following :
- Add to the Spice circuit a .INC sim_settings.lib . In this include simulation directives are written by the script per each simulation call.
- Use the python script to update the simulation directives and call LTSpice to run the simulation in command line.
- When the simulation is complete, the simulation results are renamed according to user guidance.
Note: It only works with Windows based installations.
How to Install
Using PiP Installer
pip install --upgrade PyLTSpice
Using GITHub
git clone https://github.com/nunobrum/PyLTSpice.git
If using this method it would be good to add the path where you cloned the site to python path.
import sys
sys.path.append(<path to PyLTSpice>)
How to use
LTSpice_RawRead.py
Include the following line on your scripts
from PyLTSpice.LTSpiceRaw_Reader import LTSpiceRawRead
from matplotlib import plot
LTR = LTSpiceRawRead("Draft1.raw")
print(LTR.get_trace_names())
print(LTR.get_raw_property())
IR1 = LTR.get_trace("I(R1)")
x = LTR.get_trace(0) # Zero is always the X axis
steps = LT.get_steps()
for step in range(len(steps)):
# print(steps[step])
plt.plot(x.get_wave(step), IR1.get_wave(step), label=steps[step])
plt.legend() # order a legend.
plt.show()
LTSpice_Batch
from PyLTSpice.LTSpiceBatch import *
LTC = LTCommander("testfile.asc")
LTSteps.py
python -m PyLTSpice.LTSteps <logfile or directory where last simulation was made>
Histogram.py
python -m PyLTSpice.Histogram
To whom do I talk to?
- Tools website : https://www.nunobrum.com/pyspicer.html
- Repo owner : me@nunobrum.com
- Alternative contact : nuno.brum@gmail.com
History
-
Version 0.6 Histogram.py now has an option to make the histogram directly from values stored in the clipboard
-
Version 0.5 The LTSpice_RawReader.py now uses the struc.unpack function for a faster execution
-
Version 0.4 Added LTSpiceBatch.py to the collection of tools
-
Version 0.3 A version of LTSteps that can be imported to use in a higher level script
-
Version 0.2 Adding LTSteps.py and Histogram.py
-
Version 0.1 First commit to the bitbucket repository.
Project details
Release history Release notifications | RSS feed
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
Hashes for PyLTSpice-0.1.post4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51115d911c7be45eb81ac4a4fb44b0a6431517b4e4d7b6ff8a846361ccb4f5dc |
|
MD5 | 059107cd73728c09673435abe041de0e |
|
BLAKE2b-256 | c3e310942241867661ea0a0df553f4f581620bfa6fa568f31804b07f7ac6c159 |