In this topic:
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:
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 |
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:
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.
You will see the message
Cannot find DC operating point Iteration limit exceeded in pseudo transient analysis
The circuit can oscillate because:
If 1. then you must disable the oscillator during the DC solution. You can do this by one of the following methods:
C12 N2 N6 1.2n PTAVAL=1In the above a 1.2n capacitor will take the value of 1 farad during pseudo transient analysis.
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.
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:
.OPTIONS PTAOUTPUTVECS
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.
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.
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.
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:
SaveRhs /nodeset RHS.TXTThis will save to the file RHS.TXT a .nodeset statement specifying the solution at each node.
◄ Overview | Transient Analysis ▶ |