zp2ss
Преобразование параметров фильтра с нулевым и полюсным усилением в форму пространства состояний.
| Библиотека |
|
Аргументы
Входные аргументы
#
z —
нули
вектор
Details
Нули системы, заданные как вектор. Нули должны быть вещественными или представлять собой комплексно-сопряженные пары.
Значения Inf можно использовать в качестве заполнителей в z, если в некоторых столбцах нулей меньше, чем в других.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
p —
полюса
вектор
Details
Полюса системы, заданные как вектор. Полюса должны быть вещественными или представлять собой комплексно-сопряженные пары.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
k —
линейный коэффициент усиления
скаляр
Details
Линейный коэффициент усиления системы, заданный как скаляр.
| Типы данных |
|
Выходные аргументы
#
A —
матрица состояний
матрица
Details
Матрица состояний, возвращаемая в виде матрицы. Если система описывается переменными состояния, то A имеет размерность на .
| Типы данных |
|
#
B —
матрица преобразования входных данных в состояния
матрица
Details
Матрица преобразования входных данных в состояния, возвращаемая в виде матрицы. Если система описывается переменными состояния, то B имеет размерность на .
| Типы данных |
|
#
C —
матрица преобразования состояний в выходные данные
матрица
Details
Матрица преобразования состояний в выходные данные, возвращаемая в виде матрицы. Если система имеет выходов и описывается переменными состояния, то C имеет размерность на .
| Типы данных |
|
#
D —
матрица входных сигналов
матрица
Details
Матрица входных сигналов, возвращаемая в виде матрицы. Если система имеет выходов, то D имеет размерность на .
| Типы данных |
|
Примеры
Представление системы масса-пружина в пространстве состояний
Details
Создадим представление системы масса-пружина с демпфированием в пространстве состояний, которое подчиняется дифференциальному уравнению:
Измеряемой величиной является ускорение , а — движущая сила. В пространстве Лапласа система представлена следующим образом:
Система имеет единичный коэффициент усиления, двойной ноль при и два комплексно-сопряженных полюса.
z = [0, 0]
p = roots([1, 0.01, 1])
p = reshape(p, :)
2-element Vector{ComplexF64}:
-0.0050000000000000044 + 0.999987499921874im
-0.004999999999999977 - 0.999987499921874im
k = 1
Используем функцию zp2ss для нахождения матриц пространства состояний.
import EngeeDSP.Functions: zp2ss
A,B,C,D = zp2ss(z,p,k)
println("A = ", A, "\nB = ", B, "\nC = ", C, "\nD = ", D)
A = [-0.010000000000000009 -1.0; 0.9999999999999998 0.0]
B = [1.0; 0.0;;]
C = [-0.010000000000000009 -1.0]
D = [1.0;;]
Алгоритмы
Функция zp2ss для систем с одним входом группирует комплексные пары в блоки размером два на два по диагонали матрицы A. Для этого нули и полюса должны быть вещественными или комплексно-сопряженными парами.