许多控制设计算法不能处理时间delays directly. For example, techniques such as root locus, LQG, and pole placement do not work properly if time delays are present. A common technique is to replace delays with all-pass filters that approximate the delays.
To approximate time delays in continuous-time LTI models, use thepade
command to compute aPadé approximation. The Padé approximation is valid only at low frequencies, and provides better frequency-domain approximation than time-domain approximation. It is therefore important to compare the true and approximate responses to choose the right approximation order and check the approximation validity.
For discrete-time models, useabsorbDelay
to convert a time delay to factors of 1/zwhere the time delay is an integer multiple of the sample time.
Use thethiran
command to approximate a time delay that is a fractional multiple of the sample time as a Thiran all-pass filter.
For a time delay oftau
and a sample time ofTs
, the syntaxthiran(tau,Ts)
creates a discrete-time transfer function that is the product of two terms:
A term representing the integer portion of the time delay as a pure line delay,(1/z)N, whereN = ceil(tau/Ts)
.
A term approximating the fractional portion of the time delay (tau - NTs
) as a Thiran all-pass filter.
Discretizing a Padé approximation does not guarantee good phase matching between the continuous-time delay and its discrete approximation. Usingthiran
to generate a discrete-time approximation of a continuous-time delay can yield much better phase matching. For example, the following figure shows the phase delay of a 10.2-second time delay discretized with a sample time of 1 s, approximated in three ways:
a first-order Padé approximation, discretized using thetustin
method ofc2d
an 11th-order Padé approximation, discretized using thetustin
method ofc2d
an 11th-order Thiran filter
The Thiran filter yields the closest approximation of the 10.2-second delay.
See thethiran
reference page for more information about Thiran filters.