[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: geda-user Digest, Vol 54, Issue 32
On Nov 10, 2010, at 4:09 PM, clif@xxxxxxxxxxxxx wrote:
Hi Gang,
I've been playing with ngspice and gnucap and have gotten good results
with the Non-Linerar Dependent Sources eg ASRC Bxxxx devices in
ngspice. I mostly use those with VC-Switches to make full wave bridges,
SCRs, Triacs, etc...
Why not use the semiconductor models for semiconductor devices? Make
full wave bridges from diodes, SCR's from cross-coupled transistors,
etc. A great deal of effort has gone into accurately modeling
semiconductor physics in these simulators: why not exploit it? A Google
search for "spice scr model" turns up quite a few subcircuit models of
this sort. If you can't find exactly the model you need, it's probably
better to tweak one of these than make one up.
I do try to use models that I find out there when I can, though some are
overkill for anything more then just a few devices, and can really bog
down the simulation. At other times I've had problems with the diodes in a
full wave bridge breaking down not at the peak reverse voltage but in the
middle range somewhere. I wasn't sure if this was a bug or some esoteric
behavior that my circuit was tickleing. Either way I wanted to get on with
designing my circuit so I switched to a voltage controled switch model.
I relize that it's not advisable to brut force a simulation to what you
think it should be... but I had to move on. Maybe I'll go back later to
see if I can figure out why it behaves that way.
Though I see that they are not supported in gnucap. I guess the
alternative is to use POLYs. I've looked around and except for a short
description in the gnucap manual I haven't found a comprehensive howto
on how to use them.
A common way to go from data sheets to model parameters is to model test
circuits and then tweak the parameters until there's a decent
resemblance.
Yes and I've done this too.
I sapose you would want a curve fitting program to help you generate
the coeficents like grace, or simfit, or you could use the fit function
in gnucap. However this isn't supported in ngspice, so you couldn't use
that model in both.
You can configure ngspice to support POLY. See
http://www.brorson.com/gEDA/SPICE/x496.html.
Yes but there isn't much in the way of examples on how to use them.
Are POLYs really that much better at solving convergence problems to be
worth the extra trouble? Is there a good into or howto on how to use
them?
There is a vast literature on the subject of constructing polynomial
approximations to functions. Google for "polynomial approximation".
You'll never be able to digest it all.
True, but that dosn't help with for exmaple how to make models for
multiple variables. Apparently you can say something like POLY(2) or
POLY(3) but then how do you list the values? In Gnucap it seems you list
the coeficent of X^0 (1) but a lot of models start with X^1. It would be
helpfull to have a howto that described the best practices for all of this
with some example problems.
Also some discussion on when to use them vs arbituray expressions as in
Bxxxx sources. Naively one might assume that becuase they should be well
behaived functions that each point would have a usable first or even
second derivative, and this would help convergance. Though here is a quote
from the NGspice manual Chapt 12.2.7 BSIM1 model (level 4):
"A known problem of this model is the negative output conductance and the
convergence problems, both related to poor behavior of the polynomial
equations."
So it's not even obvious that they will perform better. Are they there
just to support legacy models, or are there times when they are the best
tool we have?
Are negitive coeficents even legal?
Sure, why not?
Sorry, I thought I read somewhere that they weren't, can't find it now.
John Doty Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd@xxxxxxxxx
Thanks,
Clif
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user