Hello Al, Thank you for your reply. I think I've been working in a similar direction. I now import the output from the gnucap AC analysis into Matlab. From there I do a curve fit according to this algorithm (which I had from before):
http://www.ece.ucsb.edu/~roy/classnotes/234/McKelvey_TAC96_fdsubspace.pdf >From the resulting system I can obtain the poles and zeros. What remains now is the mode shapes. I cannot derive them from the fitted system, since all physical information is lost. Maybe it's possible to excite the system at the pole frequencies, the resulting response should be similar to the mode shape. But the forced excitation will influence the result I think. If I understand correctly, the AC circuit analysis is not based on a state-space from of the differential equations? Up until now I have been using state-space equations for the circuits, similar to what is described here: http://www.profjrwhite.com/system_dynamics/sdyn/s3/ex3_6/ex3_6.html Best regards, Jasper On Thu, Sep 23, 2010 at 8:23 AM, al davis <[email protected]> wrote: > 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) > > > _______________________________________________ > Help-gnucap mailing list > [email protected] > http://lists.gnu.org/mailman/listinfo/help-gnucap > _______________________________________________ Help-gnucap mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gnucap
