полюс

Полюса динамической системы

Синтаксис

P = pole(sys)
P = pole(sys,J1,...,JN)

Описание

P = pole(sys) возвращает полюса SISO или модели sys динамической системы MIMO. Вывод выражается как обратная величина единиц измерения времени, заданных в sys.TimeUnit. Полюса динамической системы определяют устойчивость и ответ системы.

Разомкнутый цикл линейная независимая от времени система стабилен если:

  • В непрерывно-разовом все полюса передаточной функции имеют отрицательные действительные части. Когда полюса визуализируются на комплексной s-плоскости, затем они должны все лежать в левой полуплоскости (LHP), чтобы гарантировать устойчивость.

  • В дискретное время все полюса должны иметь значение, строго меньшее, чем одно, которое является, они должны все лежать в модульном кругу.

P = pole(sys,J1,...,JN) возвращает полюса P записей в образцовом массиве sys с индексами (J1,...,JN).

Примеры

свернуть все

Вычислите полюса следующей передаточной функции дискретного времени:

sys(z)=0.0478z-0.0464z2-1.81z+0.9048

sys = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1);
P = pole(sys)
P = 2×1 complex

   0.9050 + 0.2929i
   0.9050 - 0.2929i

Для стабильных дискретных систем все их полюса должны иметь значение, строго меньшее, чем одно, которое является, они должны все лежать в модульном кругу. Полюса в этом примере являются парой сопряженных комплексных чисел и лежат в модульном кругу. Следовательно, система sys стабильна.

Вычислите полюса следующей передаточной функции:

sys(s)=4.2s2+0.25s-0.004s2+9.6s+17

sys = tf([4.2,0.25,-0.004],[1,9.6,17]);
P = pole(sys)
P = 2×1

   -7.2576
   -2.3424

Для стабильных непрерывных систем все их полюса должны иметь отрицательные действительные части. sys стабилен, поскольку полюса отрицательны, то есть, они лежат в левой половине комплексной плоскости.

В данном примере загрузите invertedPendulumArray.mat, который содержит массив 3х3 инвертированных моделей маятника. Масса маятника отличается, когда вы перемещаетесь от модели до модели вдоль отдельного столбца sys, и длина маятника отличается, когда вы проходите одна строка. Массовые используемые значения составляют 100 г, 200 г и 300 г, и используемые длины маятника составляют 3 м, 2 м и 1 м соответственно.

Column1Column2Column3Row1100g,3m100g,2m100g,1mRow2200g,3m200g,2m200g,1mRow3300g,3m300g,2m300g,1m

load('invertedPendulumArray.mat','sys');
size(sys)
3x3 array of transfer functions.
Each model has 1 outputs and 1 inputs.

Найдите полюса образцового массива.

P = pole(sys);
P(:,:,2,1)
ans = 3×1

    2.1071
   -2.1642
   -0.1426

P(:,:,2,1) соответствует полюсам модели с 200-граммовым весом маятника и 3 м длиной.

Входные параметры

свернуть все

Динамическая система, заданная как SISO или модель динамической системы MIMO или массив SISO или моделей динамической системы MIMO. Динамические системы, которые можно использовать, включают непрерывно-разовое или дискретное время числовые модели LTI, такие как tf, zpk или модели ss.

Если sys является обобщенной моделью в пространстве состояний genss или неопределенная модель в пространстве состояний uss, pole возвращает полюса текущего значения или номинальную стоимость sys. Если sys является массивом моделей, pole возвращает полюса модели, соответствующей ее нижнему J1,...,JN в sys. Для получения дополнительной информации об образцовых массивах смотрите Образцовые Массивы (Control System Toolbox).

Индексы моделей в массиве, полюса которого вы хотите извлечь, заданный как положительное целое число. Можно обеспечить столько же индексов, сколько существуют измерения массива в sys. Например, если sys 4 5 массив моделей динамической системы, следующая команда извлекает полюса для записи (2,3) в массиве.

P = pole(sys,2,3);

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

свернуть все

Полюса динамической системы, возвращенной как скаляр или массив. Если sys:

  • Одна модель, затем P является вектор-столбцом полюсов модели sys динамической системы

  • Образцовый массив, затем P является массивом полюсов каждой модели в sys

P выражается как обратная величина единиц измерения времени, заданных в sys.TimeUnit. Например, полюс выражается в 1/минута если sys.TimeUnit = 'minutes'.

В зависимости от типа системной модели полюса вычисляются следующим образом:

  • Для моделей в пространстве состояний полюса являются собственными значениями матрицы A или обобщенными собственными значениями AλE в случае дескриптора.

  • Для передаточных функций SISO или моделей нулей и полюсов, полюса являются корнями знаменателя. Для получения дополнительной информации смотрите roots.

  • Для передаточных функций MIMO (или модели нулей и полюсов), полюса возвращены как объединение полюсов для каждой записи SISO. Если некоторые пары ввода-вывода имеют общий знаменатель, корни такого знаменателя пары ввода-вывода считаются только однажды.

Ограничения

  • Несколько полюсов численно чувствительны и не могут быть вычислены с высокой точностью. Полюс λ с кратностью m обычно приводит к кластеру вычисленных полюсов, распределенных на круге с центром λ и радиус порядка

    ρε1/m,

    где ε является относительной точностью машины (eps).

    Для получения дополнительной информации о нескольких полюсах смотрите Чувствительность Нескольких Корней (Control System Toolbox).

  • Если sys имеет внутренние задержки, полюса получены путем первого обнуления всех внутренних задержек так, чтобы система имела конечное число полюсов, таким образом, создавая нулевой порядок приближение Padé. Для некоторых систем обнуление задержек создает сингулярные алгебраические циклы, которые приводят или к неподходящим или к неточно указанным приближениям нулевой задержки. Для этих систем pole возвращает ошибку.

    Чтобы оценить устойчивость моделей с внутренними задержками, используйте step или impulse.

Смотрите также

| | | | |

Представленный в R2012a