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 аргументами. Следующее указывает количество входных аргументов и их интерпретацию:1:
ltiилиdltiсистема: (StateSpace,TransferFunctionилиZerosPolesGain)3: array_like: (нули, полюсы, коэффициент усиления)
- dt: float, опционально
Время дискретизации [с] для дискретных систем. По умолчанию None (непрерывного времени). Должен быть указан как аргумент ключевого слова, например,
dt=0.1.
- Атрибуты:
dtВозвращает время дискретизации системы, None для
ltiсистем.gainКоэффициент усиления
ZerosPolesGainсистема.polesПолюсы
ZerosPolesGainсистема.zerosНули
ZerosPolesGainсистема.
Методы
to_ss()Преобразовать представление системы в
StateSpace.to_tf()Преобразовать представление системы в
TransferFunction.to_zpk()Возвращает копию текущей системы 'ZerosPolesGain'.
Смотрите также
Примечания
Изменение значения свойств, которые не являются частью
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 )