ss2zp
Преобразование параметров фильтра из пространства состояний в форму с нулями, полюсами и коэффициентом усиления.
| Библиотека |
|
Синтаксис
Вызов функции
-
z,p,k = ss2zp(A,B,C,D)— преобразует представление в пространстве состояний
для заданной непрерывной или дискретной системы в эквивалентное представление нулей, полюсов и коэффициентов усиления
нули, полюса и коэффициенты усиления которого представляют передаточную функцию в разложенном на множители виде.
Аргументы
Входные аргументы
#
A —
матрица состояний
матрица
Details
Матрица состояний. Если система имеет входов и выходов и описывается переменными состояния, то A имеет размерность на .
| Типы данных |
|
#
B —
матрица «вход-состояние»
матрица
Details
Матрица «вход-состояние». Если система имеет входов и выходов и описывается переменными состояния, то B имеет размерность на .
| Типы данных |
|
#
C —
матрица «выход-состояние»
матрица
Details
Матрица «выход-состояние». Если система имеет входов и выходов и описывается переменными состояния, то C имеет размерность на .
| Типы данных |
|
#
D —
матрица сквозной передачи
матрица
Details
Матрица сквозной передачи. Если система имеет входов и выходов и описывается переменными состояния, то D имеет размерность на .
| Типы данных |
|
#
ni —
индекс входа
1 (по умолчанию) | скаляр
Details
Индекс входа, заданный как целочисленный скаляр. Если система имеет входов, используйте функцию ss2zp с последним аргументом ni для вычисления отклика на единичный импульс, приложенный к ni-му входу. Указание этого аргумента заставляет функцию ss2zp использовать ni-е столбцы матриц B и D.
| Типы данных |
|
Выходные аргументы
#
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 находит коэффициент усиления, решая уравнение для первых ненулевых параметров Маркова.