DC Operating Point

In this topic:

Overview

As explained in DC Operating Point Algorithms, SIMetrix has four different algorithms at its disposal to solve the DC operating point. For this analysis mode to fail, and assuming the default settings are being used, all four algorithms must fail.

The following sections describe the possible reasons for failure of each mode and what can be done about them.

The general procedure is as follows:

  1. Check your circuit. Check that all components are the correct way around and have the correct values. Make sure you haven't used 'M' when you meant 'Meg'.
  2. Refer to section Source and GMIN Stepping and see if GMIN or source stepping can be made to work.
  3. Refer to section Pseudo Transient Analysis to get pseudo transient analysis converging.
  4. Contact technical support. We don't officially offer a convergence fixing service and reserve the right to decline help. However, we are always interested in non-converging circuits and usually we will look at your circuit to see if we can identify the problem.

Source and GMIN Stepping

By default, if these modes fail, SIMetrix will carry on and attempt pseudo transient analysis. It will not do so only if instructed not to using the dcopSequence option (See Controlling DC Method Sequence). Pseudo transient analysis usually succeeds but sometimes can take a long time so you may prefer to get one of these methods working instead. Also, if pseudo transient analysis fails it is desirable to first see if GMIN or source stepping can be made to work.

There are a few options you can set to encourage these modes to converge. These are

Name Default Set to What it does
GMINSTEPITERLIMIT 20 100 The number of iterations attempted for each GMIN step
GMINMAXITERS 1000 0 (equivalent to infinity) Total number of iterations allowed for GMIN stepping
SOURCEMAXITERS 1000 0 (equivalent to infinity) Total number of iterations allowed for source stepping
It is only worth changing gminMaxIters or sourceMaxIters if the iteration limit is actually being reached. Often GMIN and source stepping fail to converge before the iteration limit is reached. To find out, select the menu Simulator > Show Statistics. This displays, amongst other things, the number of iterations used for GMIN and/or source stepping. If they exceed 1000 then the iteration limit has been reached. This means that GMIN/source stepping may have succeeded if it had been given a chance.

Pseudo Transient Analysis

Pseudo transient analysis is the most powerful method that SIMetrix uses and it is rare for it to fail. It is not however infallible and can go wrong for the following reasons:

  1. The transient analysis itself failed to converge. (This is rare)
  2. The circuit oscillates

Convergence failure in pseudo transient analysis

You will get the error message

Cannot find DC operating point
No convergence in pseudo transient analysis

The reasons why this may happen are the same as for transient analysis and are covered in Fixes for Transient Non-convergence.

Circuit oscillation

You will see the message

Cannot find DC operating point
Iteration limit exceeded in pseudo transient analysis

The circuit can oscillate because:

  1. It is designed to i.e. it is or has an oscillator
  2. It is supposed to be stable but passes an unstable region during supply ramping
  3. It is supposed to be stable but has a fault in its design
  4. It is stable but is made unstable by the capacitors added during the pseudo transient analysis

If the circuit is an oscillator

If 1. then you must disable the oscillator during the DC solution. You can do this by one of the following methods:

  1. Apply an initial condition to a point on the circuit that will break the oscillator's feedback loop.
  2. Use the capacitor/inductor PTAVAL parameter to change its value during pseudo transient analysis. This parameter can be applied to a component or components that form part of the oscillator. In the netlist the parameter is applied at the end of the component line. E.g for a capacitor:

    C12 N2 N6 1.2n PTAVAL=1

    In the above a 1.2n capacitor will take the value of 1 farad during pseudo transient analysis.

The circuit is not supposed to be an oscillator

If the circuit does not have any intentionally unstable elements then diagnosis of the problem is a little harder. Firstly, you need to rule out 4. above as a possible cause. As explained in DC Operating Point Algorithms, SIMetrix adds its own capacitors to your circuit during pseudo transient analysis in order to overcome potential problems with regenerative action. The problem is that these added capacitors can themselves make a circuit unstable. So the first thing to try is to inhibit the addition of these capacitors. To do this, add the following line to the netlist (See Adding Extra Netlist Lines to find out how to add to a schematic):

.OPTIONS PTACONFIG=1

then re-run the simulation.

The circuit is not supposed to be an oscillator but it is

If this fails, then life gets even more complicated! If it fails with the message

Iteration limit exceeded in pseudo transient analysis

then it is very likely that the circuit is oscillating or entering an unstable region. If a different message is displayed go to The circuit doesn't oscillate but still doesn't converge. To allow diagnosis of what is happening SIMetrix provides a method of analysing the circuit during the pseudo transient ramp. By default, no data is output during pseudo transient analysis but this can be changed as follows:

  1. Set the analysis mode to DC operating point only.
  2. Add the simulator option ptaOutputVecs by adding the following line to the netlist:
    .OPTIONS PTAOUTPUTVECS
  3. Now run the simulation for a while or until it stops.
You can now probe the circuit in the normal way to see what is oscillating. Once the oscillation has been fixed, you should be able to simulate the circuit successfully.

The circuit doesn't oscillate but still doesn't converge

As there are no added capacitors, there is a risk that pseudo transient analysis can fail for the same reason that GMIN and source stepping sometimes fail. In this case you will get the message:

No convergence in pseudo transient analysis

If this happens your only recourse is the final desperation measure. This is to repeat the simulation with all valid values of ptaConfig from 2 to 15. (You can skip 7 as this is the default). ptaConfig is a simulator option that controls some of the parameters used in pseudo transient analysis. Most circuits pass for all settings but a few are more selective.

Accept Pseudo Transient Unconditionally

You can specify pseudo transient analysis to be accepted unconditionally at some time after it has started. This is often a good solution to problems caused by circuit oscillation especially if the oscillation is small and unintended. To accept pseudo transient unconditionally, set the option:

.OPTIONS PTAACCEPTAT=time

Specify a time value that is adequate for the circuit state to settle as much as possible.

Junction Initialised Iteration

By default, this is the first method to be tried. If it fails, SIMetrix will then attempt source stepping, GMIN stepping and finally pseudo transient analysis. Usually one of these other methods will succeed and it is not worth spending time getting this method to work.

If it does work, however, this is usually the fastest method and this can be put to good use for repetitive runs e.g. Monte Carlo. It can be made to succeed using nodesets (see next section) and with a wisely chosen selection it is possible to speed up repetitive runs. Assuming one of the other methods does complete to a solution, the best way of creating nodesets is by using the SaveRHS command. This is explained in the next section.

Using Nodesets

Nodesets have two uses, one to aid convergence and the other to bias the solution in circuits that have more than one stable state.

Initially nodesets work exactly the same way as initial conditions. The nodeset voltage is applied via a 1 Ohm (by default) resistor and the solution is completed to convergence (by any of the methods). The nodeset is then released and the solution repeated. If the nodeset voltage is close to the actual solution the convergence of the second solution should be rapid.

With SIMetrix, it is rarely necessary to use nodeset's to find the DC solution of a circuit. They can, however, be useful for speeding up the operating point analysis for circuit that have already been solved. You may wish to do this for a Monte-Carlo analysis, for example.

SIMetrix provides a means of creating nodeset's using the SaveRHS command. To make use of this, proceed as follows:

  1. Run a DC operating point analysis
  2. Save the solution to a file using the SaveRhs command as follows:

    SaveRhs /nodeset RHS.TXT

    This will save to the file RHS.TXT a .nodeset statement specifying the solution at each node.
  3. Paste the contents of RHS.TXT to the netlist. Alternatively, include the file using the .INC statement. (See Adding Extra Netlist Lines to find out how to add to a schematic).
If you now repeat the DC analysis, you should now find that the solution is very rapid. Depending on the nature of your circuit, you may also find that the solution is found easily even if you modify the circuit. This is not, however, guaranteed.