SmithDelayCompensator[sys,con]
gives the Smith compensator for the time-delay system sys and the delay-free controller con.
SmithDelayCompensator
SmithDelayCompensator[sys,con]
gives the Smith compensator for the time-delay system sys and the delay-free controller con.
Details and Options
- The system can be a StateSpaceModel or TransferFunctionModel object.
- A Smith delay compensator is a controller for time-delay systems that eliminates internal delays in the closed-loop system.
- Block diagram of a Smith predictor with controller con and system model sys, where sys0 denotes all delays being set to zero:
Examples
open all close allBasic Examples (1)
A compensator for a time-delay TransferFunctionModel with feedback gain k:
SmithDelayCompensator[TransferFunctionModel[{{{SystemsModelDelay[4]}}, 2 + s}, s], TransferFunctionModel[{{{k}}, 1}, s]]Scope (2)
A symbolic controller for a time-delay TransferFunctionModel with a PI controller:
SmithDelayCompensator[TransferFunctionModel[{{{k/E^s}}, 1 + s*τ}, s], TransferFunctionModel[{{{Subscript[k, i] + s*Subscript[k, p]}}, s}, s]]A compensator for a StateSpaceModel with internal delays:
SmithDelayCompensator[StateSpaceModel[{{{1, (1/2) + Subscript[, 3] - 2 Subscript[, T]}, {0, -1}}, {{0}, {3}}, {{1, 0}, {0, 1}}, {{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{-16/3, 8/3}}, 1}, s]]Applications (2)
Use a Smith predictor to design a pole-placement controller for a time-delay system:
ssm = StateSpaceModel[{{{1, -2 Subscript[, T]}, {0, -1}}, {{0}, {3}}, {{1, 0}, {0, 1}}, {{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];delayfree = SystemsModelDelayApproximate[ssm, 0]l = EstimatorGains[delayfree, {-1, -4}]
k = StateFeedbackGains[delayfree, {-3, -5}]con = EstimatorRegulator[delayfree, {l, k}]sp = SmithDelayCompensator[ssm, con]The closed-loop system has no internal delays:
Simplify@TransferFunctionModel[SystemsModelFeedbackConnect[SystemsModelSeriesConnect[sp, ssm]]]A chemical reactor train (Ogunnaike and Ray, 1979):
reactor = StateSpaceModel[{{{-2, 0.5 Subscript[, 1]}, {0.5, -2}}, {{0.4, 0}, {0, 0.5}}, {{Subscript[, 3], 0}, {0, Subscript[, 2]}}, {{0, 0}, {0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> {{Subscript[c, f][t], Subscript[c, 2 f][t]}, {Overscript[Subscript[c, 1], ^ ][-3 + t], Overscript[Subscript[c, 2], ^ ][-2 + t]}, {Subscript[c, 1][t], Subscript[c, 2][t]}}];A Smith predictor for a diagonal feedback matrix:
con = TransferFunctionModel[{{Subscript[k, 1c], 0}, {0, Subscript[k, 2c]}}, s];sp = SmithDelayCompensator[reactor, con]Compare the closed-loop response with and without the Smith predictor:
cl1 = SystemsModelFeedbackConnect[SystemsModelSeriesConnect[sp, reactor]] /. {Subscript[k, 1c] -> 20, Subscript[k, 2c] -> 20}//Simplifycl2 = SystemsModelFeedbackConnect[SystemsModelSeriesConnect[con, reactor]] /. {Subscript[k, 1c] -> 3.0, Subscript[k, 2c] -> 3.5}//Simplifyor1 = OutputResponse[cl1, {.5, 1}UnitStep[t], {t, 0, 20}];
or2 = OutputResponse[cl2, {.5, 1}UnitStep[t], {t, 0, 20}];Plot[or1, {t, 0, 20}, PlotRange -> All]Plot[or2, {t, 0, 20}, PlotRange -> All]Properties & Relations (1)
A Smith predictor for a time-delay TransferFunctionModel and PID controller:
sp = SmithDelayCompensator[tf = TransferFunctionModel[{{{Subscript[ω, n]^2/E^(del*s)}}, s^2 + ((2*s)*ζ)*Subscript[ω, n] +
Subscript[ω, n]^2}, s], TransferFunctionModel[{{{s^2*Subscript[k, d] + Subscript[k, i] + s*Subscript[k, p]}}, s}, s]]The resulting closed-loop system has no internal delays:
SystemsModelFeedbackConnect[SystemsModelSeriesConnect[sp, tf]]//SimplifySee Also
Related Guides
History
Text
Wolfram Research (2012), SmithDelayCompensator, Wolfram Language function, https://reference.wolfram.com/language/ref/SmithDelayCompensator.html.
CMS
Wolfram Language. 2012. "SmithDelayCompensator." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SmithDelayCompensator.html.
APA
Wolfram Language. (2012). SmithDelayCompensator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SmithDelayCompensator.html
BibTeX
@misc{reference.wolfram_2026_smithdelaycompensator, author="Wolfram Research", title="{SmithDelayCompensator}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/SmithDelayCompensator.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_smithdelaycompensator, organization={Wolfram Research}, title={SmithDelayCompensator}, year={2012}, url={https://reference.wolfram.com/language/ref/SmithDelayCompensator.html}, note=[Accessed: 13-June-2026]}