Time-Delay Systems
Time-delay systems can be specified in multiple ways and conveniently converted between state-space and transfer-function representations.
StateSpaceModel[x'[t] + x[t - 1] == 2 u[t] + u[t - 3], x[t], u[t], x[t], t]A system specified using state-space matrices and the SystemsModelDelay operator:
StateSpaceModel[{{{-SystemsModelDelay[2]}}, {{3 + SystemsModelDelay[1]}}, {{1}}, {{0}}}]TransferFunctionModel[(3 + Exp[-s]/s + Exp[-2 s]), s]TransferFunctionModel[(3 + SystemsModelDelay[1]/s + SystemsModelDelay[2]), s]A discrete-time system is determined with the SamplingPeriod option:
StateSpaceModel[{{{-SystemsModelDelay[2]}}, {{3 + SystemsModelDelay[1]}}, {{1}}, {{0}}}, SamplingPeriod -> 2]TransferFunctionModel[(3 + SystemsModelDelay[1]/z + SystemsModelDelay[2]), z, SamplingPeriod -> 2]StateSpaceModel[TransferFunctionModel[{{{3 + SystemsModelDelay[1]}}, s + SystemsModelDelay[2]}, s]]TransferFunctionModel[StateSpaceModel[{{{-Subscript[, 2]}}, {{3 + Subscript[, 1]}}, {{1}}, {{0}}}, SamplingPeriod -> 2, SystemsModelLabels -> None], z]ToContinuousTimeModel[StateSpaceModel[{{{-Subscript[, 2]}}, {{1}}, {{3 + Subscript[, 1]}}, {{0}}}, SamplingPeriod -> 2, SystemsModelLabels -> None], Method -> "BilinearTransform"]ToDiscreteTimeModel[StateSpaceModel[{{{-Subscript[, 1]}}, {{2 + Subscript[, 3]}}, {{1}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None], 2]