[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gnucap] Modal analysis using gnucap
From: |
al davis |
Subject: |
Re: [Help-gnucap] Modal analysis using gnucap |
Date: |
Thu, 23 Sep 2010 02:23:14 -0400 |
On Wednesday 22 September 2010, Jasper wrote:
> Thanks for both of your suggestions for trying NGspice. I did
> but so far it has not been a success. Under OSX the PZ
> analysis segfaults. Under my Ubuntu Virtualbox it works
> somewhat. I can obtain the correct pole-zero values for up
> to 3 RL element in series with Cs to ground in between. For
> more the output values become garbage. But that problem is
> probably for the NGspice mailing list.
maybe ..
That's a 6th order network.
Spice PZ analysis uses a method known as "unit circle
interpolation".
To understand the method, consider this ...
(very very rough description, designed to give a first clue)
Start with an AC sweep, giving you a plot, then find a "Pade
approximant" to the plot. Then the roots of the numerator are
zeros, the roots of the denominator are poles.
A "Pade approximant" (With an accent on the e in Pade) .. is a
rational function approximant. The idea is to find an
approximating function consisting of a polynomial numerator over
a polynomial denominator.
Now ask how to find the best points on the curve to use as
input.
In doing an AC sweep, if you think of it as on an S plane, the
AC sweep traverses along the imaginary axis. You can also look
at other points, but that isn't really what we think of as "AC"
anymore.
For "unit circle interpolation", choose to traverse around a
unit circle instead of the traditional AC sweep.
This means instead of considering a pure imaginary (j omega), it
uses a complex number for frequency, in an AC like algorithm.
Spice models really have the "AC" part twice .. once as "acload"
and once as "pzload". That really isn't necessary, because
"acload" is a special case of "pzload" where the real part of
frequency is zero. But pz was added later, so both are there.
The AC model code in gnucap has always accomodated complex
frequency (as opposed to pure imaginary) so is really equivalent
to the spice pzload.
So, to add PZ to gnucap, make a modified AC to do a complex
"unit circle" sweep, then add the curve fitter. (Pade
approximant)