Fixing Non-Convergence in Twin Builder
In case of non-convergence during transient simulation (that is, the maximum number of iterations has been exceeded), using the steps below will lead to convergence and accurate simulations in most cases. Most options below (unless otherwise noted) can be found under the TR tab under Solution Options.
Note:
The items below are given in the recommended order of use.
- Change the acceptable
tolerance values – The two absolute errors and the one relative
tolerance value are used internally by the solver to check accuracy
(convergence). Relaxing the tolerances may aid the simulation convergence.
- It is usually safe to add a relative tolerance. Set the relative tolerance to 0.1%.
- If acceptable, raise the values of the absolute RHS and LHS tolerances.
- Increase the maximum allowed iterations – By default this value is set to 40. Try setting this value to 100 or more. The solver converges very rapidly (in quadratic order) if the initial solution is close to the actual solution. If not, it can exceed the max iteration limit very quickly.
- Reduce the minimum time
step – If increasing max iterations does not work, the system
may be changing faster that the minimum time step allows the simulator
to solve it. Reduce the minimum time step to allow sufficient sampling
for the highest frequency signal in the simulation.
Note:
In some cases, increasing the allowed time step value can aid convergence by allowing the simulator to step over discontinuous, difficult to solve points in the simulation.
- Specify initial conditions (when available) – When possible, such as with capacitors, inductors, and especially in VHDL-AMS models (using the break statement), specify the initial values of quantities. Since the solver relies largely on a good initial guess, it can help tremendously if a good starting point is supplied to it.
- Adjust the slider position – When dealing with certain systems, (possibly systems which lead to a near singular matrix) partial pivoting may not work. Try forcing full pivoting. This guarantees the same or greater accuracy and a better chance of convergence. For more information about adjusting the slider, see Using the Simulator Performance Slider.
- Use the Simulation Parameters model (located in the Component Libraries under Basic Elements > Tools > Simulator Parameters) – A very useful model that can debug simulator issues, such as non-convergence. By monitoring the various solver parameters like the time step used by the solver, the number of iterations required, number of rollbacks, and so on, it is possible to easily diagnose and remedy the problem. The SIMPARAM parameters are defined in Simulator Parameters in the Basic Elements Library help.
- Change the LDF – The LDF (the integration algorithm truncation error) value can be reduced to force the solver to make smaller increases in the step size and may help convergence at the current time step. Increasing LDF may also work by allowing the solver to jump over problematic solution points, but is not a recommended practice.
- Turn on "Apply operating-point convergence scheme" – Achieving convergence at the transient operating point (at t = 0) can be difficult for circuits with highly nonlinear models. When such circuits provide invalid results, turning on Apply operating-point convergence scheme in the TR option may provide better results. This option applies the continuation methods Gmin-stepping and Source-stepping to improve convergence.
- Improve the Model – Some simple model improvements can save the simulator a lot of work and aid convergence. For example, smooth out any discontinuities, add damping for highly non-linear models, check and fix any inconsistencies and errors in circuit topology and connectivity, make models more realistic, and so on.