ZerosPolesGain#
- class scipy.signal.ZerosPolesGain(*system, **kwargs)[source]#
以零点、极点、增益形式表示的线性时不变系统类。
将系统表示为连续时间或离散时间传递函数 \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\),其中 \(k\) 是
增益
,\(z\) 是零点
,\(p\) 是极点
。ZerosPolesGain
系统继承了额外的功能,分别来自lti
和dlti
类,具体取决于使用的系统表示形式。- 参数:
- *system参数
ZerosPolesGain
类可以接受 1 个或 3 个参数进行实例化。下面列出了输入参数的数量及其解释:1:
lti
或dlti
系统: (StateSpace
,TransferFunction
或ZerosPolesGain
)3: array_like: (零点, 极点, 增益)
- dt: float, 可选
离散时间系统的采样时间 [s]。默认为 None (连续时间)。必须指定为关键字参数,例如
dt=0.1
。
- 属性:
dt
返回系统的采样时间,对于
lti
系统为 None。gain
ZerosPolesGain
系统的增益。poles
ZerosPolesGain
系统的极点。zeros
ZerosPolesGain
系统的零点。
方法
to_ss
()将系统表示转换为
StateSpace
。to_tf
()将系统表示转换为
TransferFunction
。to_zpk
()返回当前 'ZerosPolesGain' 系统的副本。
另请参阅
注意
更改不属于
ZerosPolesGain
系统表示(例如 A、B、C、D 状态空间矩阵)的属性值效率非常低,并可能导致数值不准确。最好先转换为特定的系统表示形式。例如,在访问/更改 A、B、C、D 系统矩阵之前,请先调用sys = sys.to_ss()
。示例
构建传递函数 \(H(s) = \frac{5(s - 1)(s - 2)}{(s - 3)(s - 4)}\)
>>> from scipy import signal
>>> signal.ZerosPolesGain([1, 2], [3, 4], 5) ZerosPolesGainContinuous( array([1, 2]), array([3, 4]), 5, dt: None )
构建传递函数 \(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\),采样时间为 0.1 秒
>>> signal.ZerosPolesGain([1, 2], [3, 4], 5, dt=0.1) ZerosPolesGainDiscrete( array([1, 2]), array([3, 4]), 5, dt: 0.1 )