Документация Engee

ss2zp

Преобразование параметров фильтра из пространства состояний в форму с нулями, полюсами и коэффициентом усиления.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • z,p,k = ss2zp(A,B,C,D) — преобразует представление в пространстве состояний



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

    нули, полюса и коэффициенты усиления которого представляют передаточную функцию в разложенном на множители виде.

  • z,p,k = ss2zp(A,B,C,D,ni) — указывает на то, что система имеет несколько входов и что ni-й вход был возбужден единичным импульсом.

Аргументы

Входные аргументы

# A — матрица состояний
матрица

Details

Матрица состояний. Если система имеет входов и выходов и описывается переменными состояния, то A имеет размерность на .

Типы данных

Float32, Float64

# B — матрица «вход-состояние»
матрица

Details

Матрица «вход-состояние». Если система имеет входов и выходов и описывается переменными состояния, то B имеет размерность на .

Типы данных

Float32, Float64

# C — матрица «выход-состояние»
матрица

Details

Матрица «выход-состояние». Если система имеет входов и выходов и описывается переменными состояния, то C имеет размерность на .

Типы данных

Float32, Float64

# D — матрица сквозной передачи
матрица

Details

Матрица сквозной передачи. Если система имеет входов и выходов и описывается переменными состояния, то D имеет размерность на .

Типы данных

Float32, Float64

# ni — индекс входа
1 (по умолчанию) | скаляр

Details

Индекс входа, заданный как целочисленный скаляр. Если система имеет входов, используйте функцию ss2zp с последним аргументом ni для вычисления отклика на единичный импульс, приложенный к ni-му входу. Указание этого аргумента заставляет функцию ss2zp использовать ni-е столбцы матриц B и D.

Типы данных

Float32, Float64

Выходные аргументы

# z — нули
матрица

Details

Нули системы, возвращаемые в виде матрицы. Аргумент z содержит нули числителя в своих столбцах. Матрица z имеет столько столбцов, сколько имеется выходов (строк в матрице C).

# p — полюса
вектор

Details

Полюса системы, возвращаемые в виде вектора-столбца. Аргумент p содержит координаты полюсов коэффициентов знаменателя передаточной функции.

# k — коэффициенты усиления
вектор

Details

Коэффициенты усиления системы, возвращаемые в виде вектора-столбца. Аргумент k содержит коэффициенты усиления для каждой передаточной функции числителя.

Примеры

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

Details

Рассмотрим дискретную систему, определяемую передаточной функцией

Определим нули, полюса и коэффициент усиления непосредственно из передаточной функции. Дополним числитель нулями, чтобы его длина была равна длине знаменателя.

import EngeeDSP.Functions: tf2zp

b = [2 3 0]
a = [1 0.4 1]
z, p, k = tf2zp(b, a)
println("z = ", z, "\np = ", p, "\nk = ", k)
z = [-1.5, 0.0]
p = ComplexF64[-0.20000000000000004 - 0.9797958971132713im, -0.20000000000000004 + 0.9797958971132713im]
k = 2.0

Представим систему в форме пространства состояний и определим нули, полюса и коэффициент усиления, используя функцию ss2zp.

import EngeeDSP.Functions: tf2ss, ss2zp

A, B, C, D = tf2ss(b, a)
z, p, k = ss2zp(A, B, C, D, 1)
println("z = ", z, "\np = ", p, "\nk = ", k)
z = [-1.4999999999999998; -2.1535571616345988e-16;;]
p = ComplexF64[-0.20000000000000004 + 0.9797958971132713im; -0.20000000000000004 - 0.9797958971132713im;;]
k = 2.0

Алгоритмы

Функция ss2zp находит полюса по собственным значениям матрицы A. Нули представляют собой конечные решения обобщенной задачи на собственные значения:

using LinearAlgebra
eigvals([A B; C D], diagm([ones(n); 0]))

Во многих ситуациях этот алгоритм выдает ложные большие, но конечные нули. Функция ss2zp интерпретирует эти большие нули как бесконечные.

Функция ss2zp находит коэффициент усиления, решая уравнение для первых ненулевых параметров Маркова.

Литература

  1. Laub, A. J., and B. C. Moore. «Calculation of Transmission Zeros Using QZ Techniques.» Automatica. Vol. 14, 1978, p. 557.