SystemsModelDelayApproximate[sys,ord]
gives a delay-free system by using approximations of order ord of the time delays in system sys.
SystemsModelDelayApproximate
SystemsModelDelayApproximate[sys,ord]
gives a delay-free system by using approximations of order ord of the time delays in system sys.
Details and Options
- The system can be either a StateSpaceModel or a TransferFunctionModel.
- For continuous-time systems, delays are approximated using PadeApproximant with order ord.
- For discrete-time systems, delays are approximated poles for the integer part of the delay and a Thiran all-pass filter of order ord for the fractional part of the delay.
Examples
open all close allBasic Examples (2)
Approximate a StateSpaceModel with an input delay:
SystemsModelDelayApproximate[StateSpaceModel[{{{-1}}, {{SystemsModelDelay[2]}}, {{1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], 3]A TransferFunctionModel with delay:
SystemsModelDelayApproximate[TransferFunctionModel[{{{-1 + SystemsModelDelay[3]}}, 3 + s}, s], 2]Scope (4)
A continuous-time StateSpaceModel with symbolic delay:
SystemsModelDelayApproximate[StateSpaceModel[{{{1, 1/2 + 2*SystemsModelDelay[τ]}, {0, -1}}, {{0}, {3}},
{{1, 0}, {0, 3}}, {{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None], 2]A discrete-time StateSpaceModel:
SystemsModelDelayApproximate[StateSpaceModel[{{{0, 1}, {-1 + SystemsModelDelay[4]/2, -1/3}}, {{0}, {1}},
{{SystemsModelDelay[1], 2}}, {{0}}}, SamplingPeriod -> 0.25, SystemsModelLabels -> None]]A continuous-time TransferFunctionModel:
SystemsModelDelayApproximate[TransferFunctionModel[{{{1, 2}, {E^(-3*s), s}},
4 - 2*(1 + E^(-s))*s + s^2}, s]
, 2]A discrete-time TransferFunctionModel with integer delay:
SystemsModelDelayApproximate[TransferFunctionModel[{{{4*(-1/2 + z)*SystemsModelDelay[3]}},
4*(1/2 + z)*(1 + z)}, z, SamplingPeriod -> 2,
SystemsModelLabels -> None]]SystemsModelDelayApproximate[TransferFunctionModel[{{{4*(-1/2 + z)*SystemsModelDelay[5/2]}},
4*(1/2 + z)*(1 + z)}, z, SamplingPeriod -> 2,
SystemsModelLabels -> None]]Use only a first-order approximation:
SystemsModelDelayApproximate[TransferFunctionModel[{{{4*(-1/2 + z)*SystemsModelDelay[5/2]}},
4*(1/2 + z)*(1 + z)}, z, SamplingPeriod -> 2,
SystemsModelLabels -> None], 1]Generalizations & Extensions (1)
Applications (1)
The model of the lathe below uses an internal delay to account for a varying chip size:
dde = 10 x''[t] + x'[t] + 100 x[t] == -200(f[t] + x[t] - x[t - 1]);
lathe = StateSpaceModel[dde, {x[t], x'[t]}, {f[t]}, x[t], t]The delay causes an instability:
OutputResponse[lathe, UnitStep[t], {t, 0, 5}];
Plot[%, {t, 0, 5}, PlotRange -> All]Approximate the delays to allow for controller design:
approxLathe = Simplify@SystemsModelDelayApproximate[lathe, 2]kgains = StateFeedbackGains[approxLathe, {-5, -10, -15, -20}];
lgains = EstimatorGains[approxLathe, {-5, -10, -15, -20}];er = EstimatorRegulator[approxLathe, {lgains, kgains}, "EstimatorRegulatorFeedbackModel"]Apply the controller to the original time-delay system:
cl = SystemsModelFeedbackConnect[lathe, er]The resulting closed-loop system is stable:
OutputResponse[cl, UnitStep[t], {t, 0, 5}];
Plot[%, {t, 0, 5}, PlotRange -> All]Properties & Relations (1)
Possible Issues (1)
Approximating a discrete-time system with too large an order creates an unstable system:
SystemsModelDelayApproximate[TransferFunctionModel[{{{(0.5 + z)*SystemsModelDelay[1.5]}},
(-0.2 + z)*(0.2 + z)}, z, SamplingPeriod -> 1], 4]//TransferFunctionPolesInstead, allow the order to be chosen automatically:
SystemsModelDelayApproximate[TransferFunctionModel[{{{(0.5 + z)*SystemsModelDelay[1.5]}},
(-0.2 + z)*(0.2 + z)}, z, SamplingPeriod -> 1]]//TransferFunctionPolesRelated Guides
History
Text
Wolfram Research (2012), SystemsModelDelayApproximate, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemsModelDelayApproximate.html.
CMS
Wolfram Language. 2012. "SystemsModelDelayApproximate." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SystemsModelDelayApproximate.html.
APA
Wolfram Language. (2012). SystemsModelDelayApproximate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemsModelDelayApproximate.html
BibTeX
@misc{reference.wolfram_2026_systemsmodeldelayapproximate, author="Wolfram Research", title="{SystemsModelDelayApproximate}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/SystemsModelDelayApproximate.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_systemsmodeldelayapproximate, organization={Wolfram Research}, title={SystemsModelDelayApproximate}, year={2012}, url={https://reference.wolfram.com/language/ref/SystemsModelDelayApproximate.html}, note=[Accessed: 13-June-2026]}