next up previous contents index
Next: History List Up: Transmission Lines Previous: Initial Conditions   Contents   Index

Timestep and Breakpoint Control

Internally, the transmission line models store a table of past values of the currents and voltages at the terminals, which become excitations after the delay time. As excitations, these signals can cause errors or nonconvergence if their rate of change is too large. These errors are reduced or eliminated by two mechanisms: time step truncation and breakpoint setting. Time step truncation occurs if the excitation derivative exceeds a certain threshold. A breakpoint which occurs at this time will also be rescheduled to one delay-time later. Breakpoints are set by the independent voltage and current sources at times where a slope change occurs, in piecewise linear outputs. At a breakpoint, the internal time step is cut and integration order reduced to accommodate the change in input accurately.

truncdontcut
If this flag is given, no timestep cutting will be done.

truncsl
If this flag is given, the device will use a slope-test timestep cutting algorithm. This is the default.

slopetol
When using the slope-test timestep cutting algorithm, this is the fraction used in the slope test. The default is 0.1.

trunclte
This applies to level = 1 only. When this flag is given, a local truncation error method is used for timestep control.

truncnr
This applies to level = 1 only. When this flag is given, a Newton-Raphson iterative method is used for timestep control.

Time step cutting can be turned off by setting the truncdontcut flag. The default setting, which has a redundant flag truncsl, uses a slope test to limit the next time step, in conjunction with the parameter slopetol. The algorithm computes the difference between the quadratic extrapolation from the last three and the linear extrapolation from the last two time points, and uses this difference formula to determine the time when this error is equal to slopetol multiplied by the the maximum absolute value of the signal at the three time points. The slopetol parameter defaults to 0.1.

When using level = 1, there are two alternative timestep control options. If the trunclte flag is given, the timestep is reduced by one half if the computed local truncation error is larger than an error tolerance, which is given by

tol = trtol . (reltol . (abs(input1) + abs(input2)) + abstol

where trtol, reltol and abstol are the values of the SPICE options trtol, reltol and abstol, and input1 and input2 are the internally stored excitations. If the truncnr flag is given, a timestep is computed based on limiting the local truncation error to the tolerance given above. Only one of the trunc flags should be given. The latter two apply only to the RLC line, and if given in the LC case the default truncsl is applied.

NOTE: The trunclte and truncnr algorithms do not appear to work in the RLC case, except by limiting the time step to a tiny value.

nobreaks
When this flag is given, there will be no breakpoint rescheduling.

allbreaks
When this flag is give, all breakpoints are rescheduled.

testbreaks
When this flag is given, which is the default, a test is applied and only breakpoints that pass this test are rescheduled.

rel
When testing breakpoints, this is the relative tolerance value. The default is .001.

abs
When testing breakpoints, this is the absolute tolerance value. The default is 1e-12.

The breakpoint setting is controlled by the three flags nobreaks, allbreaks, and testbreaks. Only one should be given, and the default is testbreaks. If nobreaks is set, breakpoints will not be rescheduled. If allbreaks is set, all breakpoints will be rescheduled to the break time plus the delay time. The default testbreaks will reschedule a breakpoint if a slope test is passed. This slope test makes use of the rel and abs parameters. The slopes at the last two time points are computed. The breakpoint is rescheduled if

abs(d1 - d2) > max(.01 . rel . vmax, abs)/dt

where d1 and d2 are the two slopes. The parameters rel and abs default to 1e-3 and 1e-12, respectively. The dt parameter is the sum of the last two time deltas, and vmax is a running peak detect function representing the maximum voltage applied to the line. Note that these are different defaults (and a different algorithm) from the parameters of the same name used in the SPICE3 transmission line models.

In most cases, the defaults for the timestep and breakpoint controls are sufficient. Excessive setting of breakpoints and timestep truncation increases execution time, while insufficient control can produce errors. An alternative approach is to limit the maximum internal timestep used with the .tran line, which can provide highly accurate results for comparison when experimenting with the control parameters.

See the description of the transmission line model (2.17.5) for more information.


next up previous contents index
Next: History List Up: Transmission Lines Previous: Initial Conditions   Contents   Index
Stephen R. Whiteley 2006-10-23