scipy.signal.dlsim#

scipy.signal.dlsim(system, u, t=None, x0=None)[source]#

Simulate output of a discrete-time linear system.

Parameters:
systemtuple of array_like or instance of dlti

A tuple describing the system. The following gives the number of elements in the tuple and the interpretation:

  • 1: (instance of dlti)

  • 3: (num, den, dt)

  • 4: (zeros, poles, gain, dt)

  • 5: (A, B, C, D, dt)

uarray_like

An input array describing the input at each time t (interpolation is assumed between given times). If there are multiple inputs, then each column of the rank-2 array represents an input.

tarray_like, optional

The time steps at which the input is defined. If t is given, it must be the same length as u, and the final value in t determines the number of steps returned in the output.

x0array_like, optional

The initial conditions on the state vector (zero by default).

Returns:
toutndarray

Time values for the output, as a 1-D array.

youtndarray

System response, as a 1-D array.

xoutndarray, optional

Time-evolution of the state-vector. Only generated if the input is a StateSpace system.

Examples

A simple integrator transfer function with a discrete time step of 1.0 could be implemented as:

>>> import numpy as np
>>> from scipy import signal
>>> tf = ([1.0,], [1.0, -1.0], 1.0)
>>> t_in = [0.0, 1.0, 2.0, 3.0]
>>> u = np.asarray([0.0, 0.0, 1.0, 1.0])
>>> t_out, y = signal.dlsim(tf, u, t=t_in)
>>> y.T
array([[ 0.,  0.,  0.,  1.]])