Filter Pages and LTspice Goodies
The following links contain macro models built for LTspice with the purpose of turning large-scale simulations into block-level schematics, similar to hierarchy design but with predefined models. The domains of interest include, but are not limited to, digital devices (), filtering and control theory ([Filt]), mathematics equations ([Math]), power electronics ([Pwr]). In addition, there is one more model, Filter, that is made to be a sort of a universal filter for LTspice. All the files can be found in the provided links.
The links go to an external site, for now hosted on the same http://ltwiki.org. The lists describing the contents of every folder is limited to enumeration and a simple description, details are in the links.
The Filter is a library encompassing analog and digital filters and it was made with the thought of making life easier when dealing with schematics that use filtering but don't emphasize the filters, in particular. The filters range from analog passive and active to digital IIR and FIR, where the IIRs are the digitized analog active filters and the FIRs are windows such as rectangular, Hann, Hamming, Blackman, Kaiser, Dolph-Chebyshev (and many others), but also differentiator, Hilbert transformer and frequency sampling method. The list contains:
Bessel2, an older version)
FIR_FS are, element-wise, the same, except for the windows/functions they perform and maximum length, while the last two moving averages and just some analog approaches. In fact, all of them are since LTspice's engine is a dedicated analog simulator. Because of that, the digital filters will not be faster than their analog cousins, quite the contrary. They may also suffer from random spikes around transitions from one sample to another, mainly due to the imperfections of the simulation time-step or to tiny mismatches in sampling time (don't forget that the rise and fall times do count).
In the end, the Filter is a handy tool for anyone who needs a quick implementation of a filter without going through the hassle of calculating, placing all elements, attributing values and wiring them to form a filter when the purpose of the schematic is different, not to mention the bother of repeating the steps anytime a change is needed.
The files can be found in the Home link (the top menu), the Filter manual paragraph.
A few models which I found useful, this folder holds the following:
|an asynchronous (max) 16bit ADC
|a binary to decimal translator
|an asynchronous (max) 16bit counter
|a (max) 16bit DAC
|a decimal to binary translator
|a behavioural JK flip-flop
The contents of this folder is mixed, in general, filtering and control theory, but can be applied anywhere.
|an automatic gain controller w/out external frequency control
exp(-sT) -- or digital --
z-1 -- delay
|actually a continuous-time Fourier decomposition, but
FFT is shorter
|a linear/dB gain/buffer with variable output resistance
|resettable integrator w/out external period control
|two versions for a
<-π..π> lead-lag control, w/out external control
|a simple externally controlled analog multiplexer
|a universal PID/PI/PD/ID/P/I/D analog/digital controller
|a phase-locked loop with single/quadrature inputs
|LTspice's own SINE and/or PULSE sources, sampled
|1st/2nd/3rd order, SISO state-space block
LTspice's mathematical functions for behavioural sources plus a few others in a more accessible, streamlined package. There's no point in enumerating them since they're all packed into a specific symbol, depending on how many variables the functions allow.
For example, the function
abs() requires one variable and that variable is the input. The symbol that makes use of one variable functions is
Math1. In the case of
atan2(), the two variables are the two inputs and the symbols for these are
Math2rT. There are also two 5-input symbols,
Math5r but they do only summing and/or difference.
Except a few models, all are three-phase and power electronics related.
|3-level modulation w/out external carrier and dead-time
|a rather simplified DQ reference frame AC motor which allows either inductances/resistances or power/frequency inputs, respectively.
|current-/voltage-mode switching bridges
|harmonics generator up to 51st, w/out external amplitude/frequency/phase control
|3-phase to 3-phase timed switch
|simple and thyristor bridge rectifiers
|a simple Π LC with terminating resistances cable model
|disturbance inducer, meant to be used together with
3ph_gen, but not only
|single-phase hysteresis comparator w/out external error control and dead-time
|isolated current and voltage sensors
|universal RLC load, can be series or parallel, w/out null, wye or delta
|space-vector hysteresis current controller and PWM, respectively
|symmetrical components analyzer, abc-to-120 and inverse
|Clarke and Park matrices, 2- or 3-inputs, direct and inverse, plus a cvasi-instantaneous approach for a symmetrical components analyzer
|one-phase wattmeter, outputs apparent/active/reactive powers, power-factor and RMS voltage/current
|PLL angle generator
The two purposes in creating these were to have some schematics concerning power conditioning, in general, and that they should be made with the symbols and libraries from the above folders. In no particular order, the schematics are:
- two shunt active power filters, pq theory, sine and power strategies
- shunt active power filter, dq theory
- shunt active power filter, pq/sine strategy, full schematic but with ideal blocks
- universal power quality conditioner, dq theory for both shunt and series filters
- simple passive reactive power compensation
- positive sequence detectors, pq and dq, and filtering methods test case
- phase-locked loop for grid-tied inverters
- quadrature signal generator based on generalized integrators
- three-phase, three-level modulation example
- three-phase thyristor bridge rectifier
- a small extra find
Not related specifically to LTspice, but with SPICE, in general, there are two files made to help editing netlist/librariy/subcircuit/model files (text files with *.net, *.cir, *.sp, *.lib, *,sub, *.mod extensions) with editors based on GtkSourceView (gEdit, Mousepad, Scribes or others that may be using): a syntax highlighting and an optional colour theme matching LTspice's.
This part deals with some thoughts about modelling or, in general, related to SPICE (and LTspice, in particular):
- Implicit Math: Mathematical functions in behavioural sources can take a toll, sometimes, so having an alternative way to perform these can pay off: linearized nonlinear functions.
- Efficient Filtering: The simplest filters are the ones that have just the needed states, and no more. That means LC networks, which are the simplest and fastest, but not so easy to calculate. So this is about how a Sallen-Key, multiple feedback, Antoniou, etc, can be so slow and inefficient, and what (and how) to do about it.
If only the files are needed and there's no need for extra browsing, below is the list with all the files: