scipy.signal.

ZerosPolesGain#

класс scipy.signal.ZerosPolesGain(*система, **kwargs)[источник]#

Класс линейной инвариантной во времени системы в форме нулей, полюсов и коэффициента усиления.

Представляет систему как непрерывную или дискретную передаточную функцию \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\), где \(k\) является gain, \(z\) являются zeros и \(p\) являются poles. ZerosPolesGain системы наследуют дополнительную функциональность от lti, соответственно dlti классы, в зависимости от используемого системного представления.

Параметры:
*systemаргументы

The ZerosPolesGain класс может быть создан с 1 или 3 аргументами. Следующее указывает количество входных аргументов и их интерпретацию:

dt: float, опционально

Время дискретизации [с] для дискретных систем. По умолчанию None (непрерывного времени). Должен быть указан как аргумент ключевого слова, например, dt=0.1.

Атрибуты:
dt

Возвращает время дискретизации системы, None для lti систем.

gain

Коэффициент усиления ZerosPolesGain система.

poles

Полюсы ZerosPolesGain система.

zeros

Нули ZerosPolesGain система.

Методы

to_ss()

Преобразовать представление системы в StateSpace.

to_tf()

Преобразовать представление системы в TransferFunction.

to_zpk()

Возвращает копию текущей системы 'ZerosPolesGain'.

Смотрите также

TransferFunction, StateSpace, lti, dlti
zpk2ss, zpk2tf, zpk2sos

Примечания

Изменение значения свойств, которые не являются частью ZerosPolesGain представление системы (такое как A, B, C, D матрицы пространства состояний) очень неэффективен и может привести к числовым неточностям. Лучше сначала преобразовать в конкретное представление системы. Например, вызвать sys = sys.to_ss() перед доступом/изменением системных матриц A, B, C, D.

Примеры

Построить передаточную функцию \(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
)