scipy.signal.
lti#
- class scipy.signal.lti(*system)[源代码][源代码]#
连续时间线性时不变系统基类。
- 参数:
- *系统参数
lti
类可以用2、3或4个参数实例化。以下列出了参数的数量及其对应的连续时间子类:2:
TransferFunction
: (分子, 分母)3:
ZerosPolesGain
: (零点, 极点, 增益)4:
StateSpace
: (A, B, C, D)
每个参数可以是一个数组或一个序列。
- 属性:
方法
bode
([w, n])计算连续时间系统的Bode幅值和相位数据。
freqresp
([w, n])计算连续时间系统的频率响应。
impulse
([X0, T, N])返回连续时间系统的脉冲响应。
output
(U, T[, X0])返回连续时间系统对输入 U 的响应。
step
([X0, T, N])返回连续时间系统的阶跃响应。
to_discrete
(dt[, method, alpha])返回当前系统的离散化版本。
注释
lti
实例并不直接存在。相反,lti
创建其子类之一的一个实例:StateSpace
、TransferFunction
或ZerosPolesGain
。如果为
*system
传递了 (分子, 分母),则分子和分母的系数应按降幂顺序指定(例如,s^2 + 3s + 5
应表示为[1, 3, 5]
)。更改不是当前系统表示直接部分的属性值(例如
StateSpace
系统的 zeros)是非常低效的,并且可能导致数值不准确。最好先转换为特定的系统表示。例如,在访问/更改零点、极点或增益之前,调用sys = sys.to_zpk()
。示例
>>> from scipy import signal
>>> signal.lti(1, 2, 3, 4) StateSpaceContinuous( array([[1]]), array([[2]]), array([[3]]), array([[4]]), dt: None )
构建传递函数 \(H(s) = \frac{5(s - 1)(s - 2)}{(s - 3)(s - 4)}\):
>>> signal.lti([1, 2], [3, 4], 5) ZerosPolesGainContinuous( array([1, 2]), array([3, 4]), 5, dt: None )
构建传递函数 \(H(s) = \frac{3s + 4}{1s + 2}\):
>>> signal.lti([3, 4], [1, 2]) TransferFunctionContinuous( array([3., 4.]), array([1., 2.]), dt: None )