Troubleshooting a Transient-Convolution Simulation
This section presents suggestions for using this simulation tool and improving the accuracy of results.
Avoiding Simulation Errors in Transient Analysis
This section lists a variety of steps that can be taken to avoid errors in simulation.
- Check the circuit's schematic diagram carefully, and turn on the topology checker if it has been turned off. Consider using DC_Block and DC_Feed components where applicable.
- Check the parameter Min time step. This parameter sets the smallest time step that the simulator is allowed to take, and should be smaller than the fastest rise time in the circuit. The default value of Min time step is Max time step/10 12. ( Stop time is the last time point in the simulation.) The default value should be satisfactory.
- Check to verify that the absolute and relative current and voltage tolerances (in the Options component) are not too small. For initial Transient analysis, try to use I_RelTol = V_RelTol = 1e-3, and tighten these values only when higher accuracy is needed. The simulation will run much faster with these settings compared to 1e-6, and will relax Newton convergence tolerance as well as LTE tolerance. Try increasing I_AbsTol to 1e-10 instead of using the default 1e-12.
- The models for some frequency-dependent devices have a high-frequency limit, beyond which they are not valid. Unless the very-high-frequency response of the device is important, the simulation results will still be valid.
- If a lossy inductor model is included in the circuit, and the inductance has been set to zero, you may need to replace the lossy inductor with a resistor.
- A lossy inductor model cannot be used with an initial condition. To solve this problem, replace the lossy inductor model with a lossless inductor in series with a resistor.
- The simulator supports user-defined models that can have any impedance. However, it is easy for users to define nonphysical or noncausal components for which there is no correct answer. If a component has a constant reactance that does not vary with frequency (or has a nonzero reactance at DC), then the component is mathematically nonphysical. In these cases, the simulator will produce an answer that may not be physically realistic. To eliminate this problem, change the component's definition.
- Sometimes, in the case of user-defined devices, the simulator cannot handle certain types of time dependencies with guaranteed accuracy. These devices often work correctly, but the simulation results should be checked carefully.
- The simulator cannot support S-parameter ports with zero impedances. To use a source with a zero impedance, use a simple voltage source instead.
- Transient analysis convergence problems are often caused by jumps in the solution. This most often occurs in circuits with overly simplified models that exhibit positive feedback, or when the circuit contains nodes that do not have a capacitive path to ground. Add a small capacitor from the troublesome node to ground and give a complete capacitance model when specifying the nonlinear device model parameters.
- Generally analog circuits are sensitive to truncation error due to their relative long time constants. Use LTE time step control to ensure the accuracy of the results. Also try relaxing TruncTol by increasing this value to 10 times or more to relax LTE tolerance.
- Try different integration methods. Backward Euler (Gear1 or Mu=0 in Trapezoidal) and Gear2 are stable for all stable and some unstable differential equations. However, trapezoidal rule are stable only on stable differential equations. Switch to Gear1 or Gear2 when trapezoidal rule fails on unstable differential equations.
- Add break points. Use piecewise linear source to add break points to the region where the waveform changes abruptly.
Solving Convergence Problems
Nonconvergence is a numerical problem encountered by the simulator when it cannot reach a solution, within a given tolerance, after a given number of iterations.
There is no single solution for solving convergence problems in transient and convolution analysis. Several ways to approach those problems are listed below.
- Make sure that you have specified an appropriate value for Max time step. Reduce this value if necessary to ensure enough time points for sharp edges.
- Vary Integration coefficient mu in the case of high-Q circuits.
- Increase the time-point iteration limit, Max iterations per time step. Increase this value to 50 or more to increase the possible number of Newton iterations on each time step.
- If the circuit includes a GaAsFET, reduce the value of the transit time TAU in the device model itself.
- Adjust the current and voltage relative and absolute tolerances in the Options component. Note the following guidelines:
The relative tolerance parameters have a greater effect on simulation speed and accuracy than the absolute tolerance parameters.
Each order-of-magnitude change in accuracy (for example, from 10-3 to 10-4) will result in approximately three times as many time points in the simulation.
Typical Convergence Problems
If you can attribute nonconvergence to any of the following areas, try these tips:
Capacitor model problems:
- Use simplified device models that do not include capacitance model or incomplete capacitance model give a complete capacitance model when specifying nonlinear device model parameters, in junction capacitance, include both depletion (at least) and diffusion capacitances.
- Discontinuous jumps in waveforms when circuit contains nodes have no capacitive path to ground add small capacitor to ground or specify Cmin.
- Capacitance model does not conserve charge GaAsFET Statz's, MOSFET Meyer's capacitance models switch to charge based model.
- Large floating capacitors that are similar to the small-floating resistor problem in DC (finite precision problem) check capacitance unit, use smaller capacitance.
- Discontinuous capacitance models in user defined model, SDD device fix the model.
Slow Transient analysis:
- Make sure I_RelTol and V_RelTol are set to 1e-3 or not set at all.
- Decrease these values when higher accuracy is needed.
Oscillator circuit does not oscillate:
- Apply a short pulse at the beginning of the simulation.
- Avoid using Gear2 or backward Euler.
Circuit exhibits ringing or divergence:
- Reduce Mu value from 0.5 toward 0 if trapezoidal rule is used.
- Use Gear1 or Gear2.
Circuit does not converge at first time point:
- Reduce Min time step.
Avoiding Simulation Errors in Convolution Analysis
This section lists a variety of tips that can be used to avoid errors in simulation.
Using Convolution:
- Don't set any convolution parameters (let the adaptive algorithm figure it out).
- Set ImpMaxFreq first (larger than signal bandwidth).
- Set convolution parameters on component, not controller, when possible.
- Don't allowed measured data to be extrapolated (either set ImpMaxFreq or provide more data).
Convolution Modeling for Time-Domain Simulation:
- In time-domain simulation, simulate devices that can only be defined in the frequency domain:
- Transmission lines with dispersion
- Devices with frequency-dependent loss
- Measured frequency-domain data
- Convolution is the key
- Inverse Fourier transform of frequency-domain data produces the impulse response h(t)
- The impulse response is convolved with time-domain signal
Time and Frequency Range:
- Impulse response is computed from the inverse Fourier transform of frequency-domain response. Frequency is uniformly sampled from 0 to some upper value.
- Upper frequency sets the time-domain spacing of the impulse response
- Frequency spacing sets the length of the impulse response
Adaptive Impulse Response Calculation:
- Estimate of system bandwidth is made from source frequencies and rise times – initial guess at fmax.
- Build a trial impulse response with 32 timepoints – very coarse frequency spacing.
- Build a second impulse response with 64 timepoints – less coarse frequency spacing.
- Keep doubling the number of timepoints until a good impulse response is obtained – increase fmax, decrease Df.
- y11 and y12 may be sampled with different fmax and Df.
- Adaptive calculation is only done if ImpDeltaFreq is not specified – don't set ImpDeltaFreq if you don't have to.
Good Impulse Responses:
- Compare impulse responses with N and 2N points. The second impulse response is twice as long in time domain and has half the frequency spacing.
- An impulse is considered "good" when no appreciable energy is present in the second half of the impulse response.
- If energy is present in the second half, implies either that the impulse is not long enough or it is noncausal.
- If not good, Controller keeps doubling the length.
- Controller also tries doubling the maximum frequency, giving smaller impulse timesteps.

- The impulse response is sampled with a uniform timestep, but is not guaranteed to match the simulation timestep. The simulation may even be using a variable timestep.
- Interpolate the signal v(t) to match the timepoints in the impulse response.
- Don't interpolate the impulse response because the Fourier transform of the interpolated impulse response would no longer match the original frequency response.
Impulse Evaluation:
- Signal response at time zero extends back to minus infinity.
- Evaluate the integral as a sum.

Solving an Invalid Impulse Response
This is the most commonly encountered problem during convolution. It does not necessarily imply noncausality but means that significant energy is present in the second half of the impulse response. In addition, simulation results may or may not be valid.
- Set ImpMaxFreq or ImpDeltaFreq. Set ImpMaxFreq first, typically only for measured data.
- For every component that generates this message, fix each component one at a time to simplify the design.
Viewing an Impulse Response
- In an S-parameter simulation, analyze over the given frequency spacing and maximum frequency - inverse Fourier transform the response by plotting ts(x).
- In the time domain, apply an impulse and simulate plot the transient result - the pulse rise time is used to set fmax and thus can influence the impulse response.
Setting ImpMaxFreq and ImpDeltaFreq
Generally a good impulse response can be found without manually setting ImpMaxFreq and ImpDeltaFreq.
- If ImpMaxFreq is set, the adaptive algorithm tries different lengths but doesn't modify fmax.
- If ImpDeltaFreq is set, the adaptive algorithm is disabled and the impulse is computed from ImpDeltaFreq and ImpMaxFreq.
- Set ImpMaxFreq on the component, then set ImpDeltaFreq on component if necessary, and finally, set ImpMaxFreq on the transient controller if necessary.
- For transmission lines, set ImpMaxFreq to at least n/td, where td is the delay time and n is a small integer (2-3).
- For lowpass and bandpass filters, set ImpMaxFreq to at least twice the upper passband edge.
Measured Data with S2P Component
- The algorithm that computes the impulse response has no special knowledge of the component it's working on and assumes data is available at any desired frequency. It has no knowledge of:
- f low and f high of measured data
- frequency spacing of measured data
- S2P interpolates and extrapolates data as needed.
- Be sure to supply good data to prevent dangerous extrapolation extends down to DC and up to f max.
- Set ImpMaxFreq on S2P component to match frequency limits in datafile (avoid extrapolation).
- Typically there is not enough frequency-domain data in the S2P file for use in the simulation.
- Given a pulse with a rise time of tr, the equivalent bandwidth in Hertz is 0.35/tr (0.1 ns rise time represents a 3.5 GHz bandwidth).
- Package models typically must be measured up to 10x higher than the signal frequency to represent transmission line effects well.
Solving a Noncausal Impulse Response
This is the second most commonly encountered problem during convolution. The Time-domain simulation starts at time zero and moves forward in time, computing the value of next timepoint from all previous timepoints. And the Controller deals with this by introducing a delay to force causality. Length of delay set to ImpNoncausalLength (default=32) with timestep set by default ImpMaxFreq.
Simulation results will not be accurate because of the added delay, especially if the delay is added in a critical timing or phase path.
All physically realizable devices are causal (the output is dependent only on past states and not any future states) while noncausal devices are nonphysical. Some ADS components, user-defined data or equations may be noncausal.
- Frequency-dependent real part with constant imaginary part, for example resistance as a function of frequency without any reactance.
- Constant real and constant non-zero imaginary part.
- Negative time delays.
- INDQ, CAPQ, PLCQ, SLCQ have problems in some modes.
Comparing Time-Domain and Steady-State Results
Certain circuit elements such as microstrip, discontinuities, and so on, are represented by simplified models in a transient analysis. A few planar discontinuities are also treated as ideal short or open circuits. Therefore, results from transient or convolution simulation may differ from those for steady-state simulation on the same circuit, depending upon the types of elements used in the circuit. (A convolution simulation should yield results closer to those of a steady-state simulation.)
The frequency of operation also plays a major role. At low frequencies, simplified models or short-circuits may be valid approximations for certain dispersive models.
Setting Max Frequency and Other Convolution Parameters
In general, the synthesized impulse response accurately represents the frequency domain function over the frequency range specified by the convolution control parameter Max Frequency. The simulation techniques require negligible spectral energy outside this frequency range. An accurate solution is not guaranteed if this principle is not obeyed. Therefore, setting Max Frequency correctly is the most important aspect of any transient simulation using convolution-based devices.
Max Frequency is similar to choosing the number of harmonics in a harmonic balance simulation or a time step in SPICE. In these cases you must estimate the value of the parameter prior to the simulation. Examination of the results reveals whether the parameter was chosen correctly. The built-in estimation of Max Frequency is always a good starting point.
The remaining convolution-control parameters described below are best used with their default values for any causal device, such as a microstrip transmission line.
The Discrete convolution mode option, by causing a periodic extension of the frequency response, generally leads to the most accurate and efficient description of the device from DC to Max Frequency. Provided Max Frequency is set correctly, the frequency response beyond Max Frequency is irrelevant, because no significant spectral energy exists beyond this value. The PWL Continuous option always leads to a low-pass response (which may be desirable in cases where a low-pass response is being modeled). The discrete mode is many times faster than the continuous mode.
Delta frequency defines the frequency spacing with which the convolution-based devices are sampled in the frequency domain. If Delta frequency is not specified, the simulator adaptively samples the frequency function until an appropriate value is determined. If you are unsure about the correct value of Delta frequency, simply allow the simulator to decide.
Non-causal fcn imp response length adjusts the length of the impulse response associated with the treatment of noncausal frequency responses (see discussion below).
Smoothing window type specifies the smoothing window to be applied to the time-domain impulse responses that are derived from noncausal frequency functions (such as Hilbert transforms). The window reduces ripple in the approximation caused by discontinuities in the frequency function. (Refer to Dealing with Noncausal Frequency Responses".)
Max impulse sample points places an upper limit on the allowed impulse-response length. It is mainly used when Max Frequency is specified but Delta Frequency is not. It is necessary to increase this value (default = 4096) if you specify a frequency response that requires a long impulse response.
Relative impulse truncation factor and Absolute impulse truncation factor are used to remove redundancy from the impulse responses. Setting them to a small value leads to longer impulse responses and a more accurate description of the frequency response of a convolution-based device. The simulator uses them to make decisions about the relative sizes of individual members of an impulse response.
Dealing with Noncausal Frequency Responses
A causal system has the property that if the input is zero for t < t 1, then the output is also zero for t < t 1. The value of t 1 is usually defined to be 0. Therefore, the impulse response of a causal system is zero for negative time. This may be stated in the frequency domain by saying that the real and imaginary parts of a causal frequency response are related by the Hilbert transform. Only causal frequency-domain transfer functions can be handled directly by means of transient simulation methods.
However, there are many ideal frequency functions that are noncausal but are extremely valuable in processing signals (such as Hilbert transforms). The transient simulator provides a way to use these functions in defining the frequency response of a nonlinear device.
A frequency response is considered noncausal if it has one of the following forms:
R + jI
R(w) + j0
R + jI(w)
When you select Non-causal fcn imp response length, non-causal frequency functions are approximated by a digital filter that introduces a time delay in the impulse response. This time delay is sufficient to make the apparent impulse response causal. Non-causal fcn imp response length defines the length of this filter. The Smoothing window type can be selected to reduce Gibb's phenomenon, which may be present if the non-causal frequency response contains discontinuities. Increasing non-causal leads to a more accurate description of the frequency function over the chosen band set by Max Frequency. However, increasing non-causal causes a longer delay through the filter and a longer simulation time. Only even values of non-causal are allowed. If an odd value is specified, the simulator adds 1 and issues a warning. The delay associated with the causal approximation is given by the equation: (noncausal/2-1)/(2*max Frequency).
If a non-causal frequency response is specified which does not fit into one of the forms described above, the simulator will assume it is a causal function. This will almost certainly cause unexpected and erroneous results. Noncausal frequency responses should be avoided if possible.
The concept of causality is not an issue when using the harmonic balance simulator. All excitations and responses are sums of sinusoids and exist for all time. For this reason, any bounded frequency response can be simulated. When moving from harmonic balance to transient simulation, it must be remembered that non-causal frequency functions cannot be simulated directly. Only a band-limited approximation to these functions can be simulated. This is particularly important when using SDD weighting functions.
Using Measured and Simulated S-Parameter Data
The ability to handle convolution-based devices allows the user of measured or simulated S-parameter data to describe a wide variety of devices and circuits. A dataset or file containing the S-parameter values can be used to integrate the frequency response into a time-domain simulation. This adds a tremendous amount of flexibility to the number and types of devices and circuits which can be used in a simulation.
When S-parameter data is used, it is important that the frequency response be adequately sampled over the entire bandwidth to ensure negligible interpolation errors when the impulse response is being calculated. The Max Frequency parameter should never be set to a value which is greater that the maximum S-parameter data frequency. doing so will lead to erroneous results as the available data would have to be extrapolated. S-parameter data must also extend all the way down to DC.
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()