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

zp2ss

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

Библиотека

EngeeDSP

Синтаксис

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

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



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

    Вектор-столбец p определяет положение полюсов, а матрица z — положение нулей, при этом количество столбцов равно числу выходов. Коэффициенты усиления для каждой передаточной функции числителя находятся в векторе k. Матрицы A, B, C и D возвращаются в канонической форме контроллера.

Аргументы

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

# z — нули
вектор

Details

Нули системы, заданные как вектор. Нули должны быть вещественными или представлять собой комплексно-сопряженные пары.

Значения Inf можно использовать в качестве заполнителей в z, если в некоторых столбцах нулей меньше, чем в других.

Типы данных

Float64

Поддержка комплексных чисел

Да

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

Details

Полюса системы, заданные как вектор. Полюса должны быть вещественными или представлять собой комплексно-сопряженные пары.

Типы данных

Float64

Поддержка комплексных чисел

Да

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

Details

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

Типы данных

Float64

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

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

Details

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

Типы данных

Float32, Float64

# B — матрица преобразования входных данных в состояния
матрица

Details

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

Типы данных

Float32, Float64

# C — матрица преобразования состояний в выходные данные
матрица

Details

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

Типы данных

Float32, Float64

# D — матрица входных сигналов
матрица

Details

Матрица входных сигналов, возвращаемая в виде матрицы. Если система имеет выходов, то D имеет размерность на .

Типы данных

Float32, Float64

Примеры

Представление системы масса-пружина в пространстве состояний

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. Для этого нули и полюса должны быть вещественными или комплексно-сопряженными парами.