ZerosPolesGain#
- 类 scipy.signal.ZerosPolesGain(*system, **kwargs)[源代码]#
以零极点增益形式表示的线性时不变系统类。
通过连续或离散时间传递函数表示系统 \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\),其中 \(k\) 为
gain,\(z\) 为zeros,\(p\) 为poles。ZerosPolesGain系统根据所使用的系统表示,分别从lti(分别为dlti)类继承新增功能。- 参数:
- *system参数
可以用 1 或 3 个参数实例化
ZerosPolesGain类。以下是输入参数的个数及其解释1:
lti或dlti系统:(StateSpace,TransferFunction或ZerosPolesGain)3: 如 array_like:(zeros, poles, gain)
- dt: float,可选
离散时间系统的采样时间 [s]。默认为 None(连续时间)。必须指定为关键字参数,例如
dt=0.1。
备注
更改不属于
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 )
使用 0.1 秒的采样时间构建传递函数\(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\)
>>> signal.ZerosPolesGain([1, 2], [3, 4], 5, dt=0.1) ZerosPolesGainDiscrete( array([1, 2]), array([3, 4]), 5, dt: 0.1 )
- 属性:
dt返回系统的采样时间,对于
lti系统,返回None。gainZerosPolesGain系统的增益。polesZerosPolesGain系统的极点。zerosZerosPolesGain系统零点极点增益。
方法
to_ss()将系统表示转换为
StateSpace。to_tf()将系统表示转换为
TransferFunction。to_zpk()返回当前“ZerosPolesGain”系统副本。