scipy.signal.
dlsim#
- scipy.signal.dlsim(system, u, t=None, x0=None)[source]#
模拟离散时间线性系统的输出。
- 参数:
- systemdlti | tuple
LTI 类
dlti
的一个实例,或描述该系统的元组。元组中元素的数量决定了其解释方式。例如:system
:LTI 类dlti
的实例。请注意,也允许使用派生实例,例如TransferFunction
、ZerosPolesGain
或StateSpace
的实例。(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
系统时生成。
另请参阅
示例
一个离散时间步长为 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.]])