exponenta event banner

полюс

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

Описание

пример

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

Линейная инвариантная по времени система с разомкнутым контуром стабильна, если:

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

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

пример

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

Примеры

свернуть все

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

sys (z) = 0 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, 3m100 г, 2m100 г, 1mRow2200 г, 3m200 г, 2m200 г, 1mRow3300 г, 3m300 г, 2m300 г, 1 м

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. Дополнительные сведения о массивах моделей см. в разделе Массивы моделей (панель инструментов системы управления).

Индексы моделей в массиве, полюса которых необходимо извлечь, заданные как положительное целое число. Можно предоставить столько индексов, сколько имеется измерений массива в 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).

    Дополнительные сведения о нескольких полюсах см. в разделе Чувствительность нескольких корней (панель инструментов системы управления).

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

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

См. также

| | | | |

Темы

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