scipy.signal.

dlsim#

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

模拟离散时间线性系统的输出。

参数:
systemdlti | tuple

LTI 类 dlti 的一个实例,或描述该系统的元组。元组中元素的数量决定了其解释方式。例如:

  • system:LTI 类 dlti 的实例。请注意,也允许使用派生实例,例如 TransferFunctionZerosPolesGainStateSpace 的实例。

  • (num, den, dt):如 TransferFunction 中所述的有理多项式。多项式的系数应按降序幂次指定,例如,z² + 3z + 5 将表示为 [1, 3, 5]

  • (zeros, poles, gain, dt):如 ZerosPolesGain 中所述的零点、极点、增益形式。

  • (A, B, C, D, dt):如 StateSpace 中所述的状态空间形式。

uarray_like

一个输入数组,描述在每个时间点 t 处的输入(假定在给定时间之间进行插值)。如果存在多个输入,则二维数组的每一列代表一个输入。

tarray_like, 可选

定义输入的时间步长。如果给出了 t,则其长度必须与 u 相同,并且 t 中的最终值决定了输出中返回的步数。

x0array_like, 可选

状态向量的初始条件(默认为零)。

返回:
toutndarray

输出的时间值,作为一维数组。

youtndarray

系统响应,作为一维数组。

xoutndarray, 可选

状态向量随时间的变化。仅当输入是 StateSpace 系统时生成。

另请参阅

lsim, dstep, dimpulse, cont2discrete

示例

一个离散时间步长为 1.0 的简单积分器传递函数可以实现为

>>> 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.]])