TransferFunction#
- класс scipy.signal.TransferFunction(*система, **kwargs)[источник]#
Класс линейной инвариантной во времени системы в форме передаточной функции.
Представляет систему как непрерывную передаточную функцию \(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) - 1,M == len(a) - 1.TransferFunctionсистемы наследуют дополнительную функциональность отlti, соответственноdltiклассы, в зависимости от того, какое представление системы используется.- Параметры:
- *system: аргументы
The
TransferFunctionкласс может быть создан с 1 или 2 аргументами. Ниже указано количество входных аргументов и их интерпретация:1:
ltiилиdltiсистема: (StateSpace,TransferFunctionилиZerosPolesGain)2: array_like: (числитель, знаменатель)
- dt: float, опционально
Время дискретизации [с] для дискретных систем. По умолчанию None (непрерывного времени). Должен быть указан как аргумент ключевого слова, например,
dt=0.1.
- Атрибуты:
denЗнаменатель
TransferFunctionсистема.dtВозвращает время дискретизации системы, None для
ltiсистем.numЧислитель
TransferFunctionсистема.polesПолюса системы.
zerosНули системы.
Методы
to_ss()Преобразовать представление системы в
StateSpace.to_tf()Вернуть копию текущего
TransferFunctionсистема.to_zpk()Преобразовать представление системы в
ZerosPolesGain.Смотрите также
Примечания
Изменение значения свойств, которые не являются частью
TransferFunctionпредставление системы (такое как A, B, C, D матрицы пространства состояний) очень неэффективен и может привести к числовым неточностям. Лучше сначала преобразовать в конкретное представление системы. Например, вызватьsys = sys.to_ss()перед доступом/изменением системных матриц A, B, C, D.Если (числитель, знаменатель) передается для
*system, коэффициенты как для числителя, так и для знаменателя должны быть указаны в порядке убывания степеней (например,s^2 + 3s + 5илиz^2 + 3z + 5будет представлен как[1, 3, 5])Примеры
Построить передаточную функцию \(H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}\):
>>> from scipy import signal
>>> num = [1, 3, 3] >>> den = [1, 2, 1]
>>> signal.TransferFunction(num, den) TransferFunctionContinuous( array([1., 3., 3.]), array([1., 2., 1.]), dt: None )
Построить передаточную функцию \(H(z) = \frac{z^2 + 3z + 3}{z^2 + 2z + 1}\) с временем дискретизации 0.1 секунды:
>>> signal.TransferFunction(num, den, dt=0.1) TransferFunctionDiscrete( array([1., 3., 3.]), array([1., 2., 1.]), dt: 0.1 )