scipy.signal.dlti¶
- class scipy.signal.dlti(*system, **kwargs)[源代码]¶
离散时间线性时不变系统基类。
- 参数
- *system: arguments
这个
dlti
类可以用2、3或4个参数实例化。下面给出了参数的数量和创建的相应离散时间子类:2:
TransferFunction
:(分子、分母)3:
ZerosPolesGain
:(零、极、增益)4:
StateSpace
:(A、B、C、D)
每个参数可以是数组或序列。
- DT:浮点,可选
采样时间 [s] 离散时间系统。默认为
True
(未指定采样时间)。必须指定为关键字参数,例如,dt=0.1
。
注意事项
dlti
实例不直接存在。相反,dlti
创建其一个子类的实例:StateSpace
,TransferFunction
或ZerosPolesGain
。更改不直接作为当前系统表示形式一部分的属性的值(如 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 )
方法:
bode
\([w, n] )计算离散时间系统的波德幅值和相位数据。
freqresp
\([w, n, whole] )计算离散时间系统的频率响应。
impulse
\([x0, t, n] )返回离散时间的脉冲响应
dlti
系统。output
\(U,t[, x0] )将离散时间系统的响应返回给输入 u 。
step
\([x0, t, n] )返回离散时间的阶跃响应
dlti
系统。