represents a time delay of δ in a StateSpaceModel or TransferFunctionModel.
SystemsModelDelay 
represents a time delay of δ in a StateSpaceModel or TransferFunctionModel.
Details
- SystemsModelDelay[δ] makes it possible to represent systems involving time delays and efficiently manipulate, approximate, and simulate these systems.
- SystemsModelDelay[δ] is typeset in StandardForm as δ and can be entered using
delay
. - For a StateSpaceModel, SystemsModelDelay[δ] can occur linearly in any of the system matrices. For a signal
, SystemsModelDelay[δ]w[t] is taken to be
. - For a TransferFunctionModel, SystemsModelDelay[δ] can occur linearly in the coefficients of the polynomials. It is taken to represent a transformed time delay:
-
-δ s in a continuous-time system z-δ in a discrete-time system - Here, s is the Laplace-transform variable, and z is the z-transform variable.
- For discrete-time systems, the delay δ is taken to be a multiple of the SamplingPeriod.
Examples
open all close allBasic Examples (3)
A state-space model with an input delay:
StateSpaceModel[{{{-1}}, {{SystemsModelDelay[2]}}, {{1}}}]A transfer-function model with delay:
TransferFunctionModel[{{{Subscript[, 3] - 1}}, s + 3}, s]A time-delay state-space model created from delay differential equations:
StateSpaceModel[{x'[t] == x[t] - 2x[t - T] + u[t]},
{x[t]}, {u[t]}, {3x[t - T]}, t]Scope (7)
A continuous-time state-space model with a state delay:
StateSpaceModel[{{{a + Subscript[a, d]SystemsModelDelay[τ]}}, {{b}}, {{c}}, {{d}}}]A discrete-time state-space model with an output delay:
StateSpaceModel[{{{1 / 4, 1}, {0, 1 / 2}}, {{0}, {1}}, {{1 + Subscript[, 3], 0}}}, SamplingPeriod -> T]A continuous-time transfer-function model with delay:
TransferFunctionModel[{{{1}}, s ^ 2 + Subscript[, 2]s + 1}, s]Or represent the delay as an exponential:
TransferFunctionModel[{{{1}}, s ^ 2 + Exp[-2s] + 1}, s]A discrete-time transfer-function model with delay:
TransferFunctionModel[{{{SystemsModelDelay[3](z - 1 / 2)}}, (z + 1 / 2)(z + 1)}, z, SamplingPeriod -> 2]A state-space model with a delay in the descriptor matrix:
StateSpaceModel[{(| | |
| --- | --- |
| -1. | 0 |
| 0.9 | -1. |), (| |
| -- |
| 0. |
| 1 |), (| | |
| ----- | - |
| 1 / 2 | 0 |
| 0 | 1 |), (| |
| - |
| 0 |
| 0 |), (| | |
| - | -------------- |
| 1 | 0 |
| 0 | 1 - 0.8 1 / 2 |)}]A continuous-time state-space model created from delay differential equations:
StateSpaceModel[{Subscript[x, 1]'[t] == Subscript[x, 1][t] - 2Subscript[x, 2][t - T] + 5Subscript[x, 2][t - 3] + 1 / 2Subscript[x, 2][t], Subscript[x, 2]'[t] == 3u[t] - Subscript[x, 2][t]}, {{Subscript[x, 1][t], 0}, {Subscript[x, 2][t], 0}}, {{u[t], 0}}, {Subscript[x, 1][t], Subscript[x, 2][t]}, t]A discrete-time system from a difference equation including SystemsModelDelay:
StateSpaceModel[{x[t] == 3 / 4x[t - 1] - 1 / 4SystemsModelDelay[T]x[t - 1] + u[t - 1]}, {{x[t], 0}}, {{u[t], 0}}, {x[t]}, t]Applications (1)
The delay differential equation below describes the motion of the cutting tool in a lathe where the force on the tool depends on the position of the tool
from the previous rotation:
dde = m x''[t] + c x'[t] + k x[t] == -α(f[t] + x[t] - x[t - τ])latheChatter = StateSpaceModel[dde, {x[t], x'[t]}, {f[t]}, x[t], t]The delay creates peaks in the frequency response:
BodePlot[latheChatter /. {m -> .1, k -> 1000, τ -> .1, α -> 1000, c -> 1}, {1, 1000}]Properties & Relations (5)
SystemsModelDelay[0]Delays in continuous-time transfer functions are equivalent to exponentials:
TransferFunctionModel[{{{1}}, 1 + s^2 + s*SystemsModelDelay[2]},
s][s]Delays in discrete-time transfer-function models are equivalent to additional poles:
TransferFunctionModel[{{{SystemsModelDelay[δ]}}, 1 + z}, z,
SamplingPeriod -> 2][z]State-space systems with neutral delays have delays in the descriptor matrix:
StateSpaceModel[{x'[t] - x'[t - 2] == u[t]}, {x[t]}, {u[t]}, {2x[t]}, t]When converting to a transfer function, state delays appear in the denominator:
TransferFunctionModel[StateSpaceModel[{{{-2 + SystemsModelDelay[4]}}, {{2}}, {{1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], s]Possible Issues (1)
In discrete-time systems, delays should have integer values:
ss = StateSpaceModel[{{{0.1 , 1}, {0, 0.3}}, {{0}, {Subscript[, T]}}, {{2, 0}}}, SamplingPeriod -> 1]When necessary, zero-order approximations are used:
outputsInt = OutputResponse[ss /. T -> 3, {UnitStep[t]}, {t, 0, 10}];
outputsFrac = OutputResponse[ss /. T -> 2.8, {UnitStep[t]}, {t, 0, 10}];
outputsInt === outputsFracApproximating delays before simulation can give a more accurate result:
ssApprox = SystemsModelDelayApproximate[ss /. T -> 2.8]outputsApprox = OutputResponse[ssApprox, {UnitStep[t]}, {t, 0, 10}];
ListLinePlot[Join[outputsInt, outputsApprox]]Related Guides
History
Text
Wolfram Research (2012), SystemsModelDelay, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemsModelDelay.html.
CMS
Wolfram Language. 2012. "SystemsModelDelay." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SystemsModelDelay.html.
APA
Wolfram Language. (2012). SystemsModelDelay. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemsModelDelay.html
BibTeX
@misc{reference.wolfram_2026_systemsmodeldelay, author="Wolfram Research", title="{SystemsModelDelay}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/SystemsModelDelay.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_systemsmodeldelay, organization={Wolfram Research}, title={SystemsModelDelay}, year={2012}, url={https://reference.wolfram.com/language/ref/SystemsModelDelay.html}, note=[Accessed: 13-June-2026]}