pole

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

Описание

пример

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 (Control System Toolbox), zpk (Control System Toolbox), или ss Модели (Control System Toolbox).

Если 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