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] )返回当前系统的离散化版本。