scipy.signal.

ZerosPolesGain#

class scipy.signal.ZerosPolesGain(*system, **kwargs)[源代码][源代码]#

线性时不变系统的零极点增益形式类。

表示系统的连续或离散时间传递函数 \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\),其中 \(k\)增益\(z\)零点\(p\)极点ZerosPolesGain 系统根据所使用的系统表示,分别从 ltidlti 类继承了额外的功能。

参数:
*系统参数

ZerosPolesGain 类可以用1个或3个参数实例化。以下给出了输入参数的数量及其解释:

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
)