cupyx.scipy.signal.TransferFunction#

class cupyx.scipy.signal.TransferFunction(*system, **kwargs)[source]#

传递函数形式的线性时不变系统类。

将系统表示为连续时间传递函数 \(H(s)=\sum_{i=0}^N b[N-i] s^i / \sum_{j=0}^M a[M-j] s^j\) 或离散时间传递函数 \(H(z)=\sum_{i=0}^N b[N-i] z^i / \sum_{j=0}^M a[M-j] z^j\),其中 \(b\) 是分子 num 的元素,\(a\) 是分母 den 的元素,且 N == len(b) - 1M == len(a) - 1。根据使用的系统表示形式,TransferFunction 系统分别继承了 ltidlti 类的附加功能。

参数:
  • *system (参数) –

    TransferFunction 类可以使用 1 或 2 个参数实例化。下面给出输入参数的数量及其解释

    • 1: ltidlti 系统: (StateSpace, TransferFunctionZerosPolesGain)

    • 2: array_like: (分子, 分母)

  • dt (float, 可选) – 离散时间系统的采样时间 [s]。默认为 None (连续时间)。必须指定为关键字参数,例如 dt=0.1

注意

修改不属于 TransferFunction 系统表示的属性值(例如 ABCD 状态空间矩阵)效率非常低,并可能导致数值不准确。最好先转换为特定的系统表示形式。例如,在访问/修改 A、B、C、D 系统矩阵之前,调用 sys = sys.to_ss()

如果为 *system 传入 (分子, 分母),则分子和分母的系数都应按降幂顺序指定(例如 s^2 + 3s + 5z^2 + 3z + 5 将表示为 [1, 3, 5]

方法

to_ss()[source]#

将系统表示转换为 StateSpace

返回:

sys – 当前系统的状态空间模型

返回类型:

StateSpace 实例

to_tf()[source]#

返回当前 TransferFunction 系统的副本。

返回:

sys – 当前系统(副本)

返回类型:

TransferFunction 实例

to_zpk()[source]#

将系统表示转换为 ZerosPolesGain

返回:

sys – 当前系统的零点、极点、增益表示

返回类型:

ZerosPolesGain 实例

__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。

属性

den#

TransferFunction 系统的分母。

dt#

返回系统的采样时间,对于 lti 系统为 None

num#

TransferFunction 系统的分子。

poles#

系统的极点。

zeros#

系统的零点。