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