[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gnucap] Convergence problem
From: |
al davis |
Subject: |
Re: [Help-gnucap] Convergence problem |
Date: |
Tue, 19 Jul 2011 22:25:25 -0400 |
User-agent: |
KMail/1.13.7 (Linux/2.6.32-trunk-amd64; KDE/4.6.4; x86_64; ; ) |
On Tuesday 19 July 2011, Ramiro Aceves wrote:
> I have a convergence problem:
Quick answer, based on experience, so I can give you an
immediate response ..
Convergence problems are often tied to the model used.
You are using the old "modelgen" BJT model, which will be phased
out.
Try instead to use the Spice BJT model from the spice models
tarball.
The modelgen models in gnucap (analogous to the spice "code-
models") check convergence by recursively checking the
subcircuit. This often results in overly critical checking,
where really everything is ok, but it indicates non-convergence.
Convergence checking in the spice models is less critical, so
often just switching to the other model will solve the problem.
Try this ..
get the plugin tarball
http://gnucap.org/devel/gnucap-2009-12-07-models-spice3f5.tar.gz
unpack it, compile the "bjt" model .. "load" it as a plugin.
More detailed response, for the curious ..
The modelgen models use an underlying subcircuit, and check
every part of it individually for convergence, the equivalent of
checking every state variable and the derivatives separately,
then a check pass checks all of the voltages node-to-node. To
accept, all must pass. This includes the internal nonlinear
capacitances, and all strays. The down side is that
occasionally one of the strays can get stuck on amplified
numerical noise and never be accepted, when in fact it could be
ignored.
Spice uses a quick check for convergence, where only a few
parameters are checked, as a composite. This method often
accepts incorrect values as converged, sometimes leading to
believable incorrect results.
Gnucap with the spice model is somewhere in the middle .. It
first uses the spice method, it's part of the model code, then
checks node-to-node voltages. The node-to-node check seems to
catch the false convergence problems.
Convergence handling is a big issue in simulator and model
design. There are trade-offs, impossible to really know what is
best in general.