scipy.signal.dlti

class scipy.signal.dlti(*system, **kwargs)[源代码]

离散时间线性时不变系统基类。

参数
*system: arguments

这个 dlti 类可以用2、3或4个参数实例化。下面给出了参数的数量和创建的相应离散时间子类:

每个参数可以是数组或序列。

DT:浮点,可选

采样时间 [s] 离散时间系统。默认为 True (未指定采样时间)。必须指定为关键字参数,例如, dt=0.1

注意事项

dlti 实例不直接存在。相反, dlti 创建其一个子类的实例: StateSpaceTransferFunctionZerosPolesGain

更改不直接作为当前系统表示形式一部分的属性的值(如 zeros 属于 StateSpace 系统)效率非常低,并且可能导致数值不准确。最好先转换为特定的系统表示。例如,调用 sys = sys.to_zpk() 在访问/改变零点、极点或增益之前。

如果传入的(分子,分母)为 *system 分子和分母的系数都应该以指数降序指定(例如, z^2 + 3z + 5 将表示为 [1, 3, 5] )。

0.18.0 新版功能.

示例

>>> from scipy import signal
>>> signal.dlti(1, 2, 3, 4)
StateSpaceDiscrete(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: True
)
>>> signal.dlti(1, 2, 3, 4, dt=0.1)
StateSpaceDiscrete(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: 0.1
)

构造传递函数 \(H(z) = \frac{{5(z - 1)(z - 2)}}{{(z - 3)(z - 4)}}\) 采样时间为0.1秒时:

>>> signal.dlti([1, 2], [3, 4], 5, dt=0.1)
ZerosPolesGainDiscrete(
array([1, 2]),
array([3, 4]),
5,
dt: 0.1
)

构造传递函数 \(H(z) = \frac{{3z + 4}}{{1z + 2}}\) 采样时间为0.1秒时:

>>> signal.dlti([3, 4], [1, 2], dt=0.1)
TransferFunctionDiscrete(
array([3., 4.]),
array([1., 2.]),
dt: 0.1
)
属性
dt

返回系统的采样时间。

poles

系统的两极。

zeros

系统的零。

方法:

bode \([w, n] )

计算离散时间系统的波德幅值和相位数据。

freqresp \([w, n, whole] )

计算离散时间系统的频率响应。

impulse \([x0, t, n] )

返回离散时间的脉冲响应 dlti 系统。

output \(U,t[, x0] )

将离散时间系统的响应返回给输入 u

step \([x0, t, n] )

返回离散时间的阶跃响应 dlti 系统。