Критерий устойчивости жюри

редактировать

В обработке сигналов и теории управления, то критерий устойчивости жюри представляет собой способ определения устойчивости линейной дискретной системы времени путем анализа коэффициентов ее характеристического полинома. Это дискретный аналог критерия устойчивости Рауса – Гурвица. Критерий устойчивости Жюри требует, чтобы полюса системы располагались внутри единичной окружности с центром в начале координат, в то время как критерий устойчивости Рауса-Гурвица требует, чтобы полюса находились в левой половине комплексной плоскости. Критерий жюри назван в честь Элиаху Ибрахама Юри.

Содержание
  • 1 Метод
  • 2 Испытание на стабильность
  • 3 Пример реализации
  • 4 См. Также
  • 5 ссылки
Метод

Если характеристический многочлен системы равен

ж ( z ) знак равно а п + а п - 1 z 1 + а п - 2 z 2 + + а 1 z п - 1 + а 0 z п {\ Displaystyle е (г) = а_ {п} + а_ {п-1} г ^ {1} + а_ {п-2} г ^ {2} + \ точки + а_ {1} г ^ {п-1 } + a_ {0} z ^ {n}}

то таблица строится следующим образом:

строка z n z n −1 z n −2 z .... z 1 z 0
1 а 0 а 1 а 2 ... а n −1 а н
2 а н а n −1 а n −2 ... а 1 а 0
3 б 0 б 1 ... b n −2 b n −1
4 b n −1 b n −2 ... б 1 б 0
5 c 0 c 1 ... с n −2
6 с n −2 с n −3 ... c 0
... ... ... ... ... ... ...
2 п −5 p 0 п 1 п 2 стр 3
2 п −4 стр 3 п 2 п 1 p 0
2 п −3 q 2 q 1 q 0

То есть первая строка построена из полиномиальных коэффициентов по порядку, а вторая строка является первой строкой в ​​обратном порядке и сопряжена.

Третья строка таблицы вычисляется путем вычитания второй строки из первой строки, а четвертая строка - это третья строка с первыми n элементами, перевернутыми (поскольку последний элемент равен нулю). а п а 0 {\ displaystyle {\ frac {a_ {n}} {a_ {0}}}}

а 0 а 1 а п - 1 а п а п а п - 1 а 1 а 0 ( а 0 - а п а п а 0 ) ( а 1 - а п - 1 а п а 0 ) ( а п - 1 - а 1 а п а 0 ) 0 ( а п - 1 - а 1 а п а 0 ) ( а 1 - а п - 1 а п а 0 ) ( а 0 - а п а п а 0 ) 0 {\ displaystyle {\ begin {align} a_ {0} \; \; amp; a_ {1} \; \; amp; \ dots \; \; amp; a_ {n-1} \; \; amp; a_ {n} \\ a_ { n} \; \; amp; a_ {n-1} \; \; amp; \ dots \; \; amp; a_ {1} \; \; amp; a_ {0} \\\ left (a_ {0} -a_ {n} { \ frac {a_ {n}} {a_ {0}}} \ right) \; \; amp; \ left (a_ {1} -a_ {n-1} {\ frac {a_ {n}} {a_ {0 }}} \ right) \; \; amp; \ dots \; \; amp; \ left (a_ {n-1} -a_ {1} {\ frac {a_ {n}} {a_ {0}}} \ right) \; \; amp; 0 \\\ left (a_ {n-1} -a_ {1} {\ frac {a_ {n}} {a_ {0}}} \ right) \; \; amp; \ dots \; \; amp; \ left (a_ {1} -a_ {n-1} {\ frac {a_ {n}} {a_ {0}}} \ right) \; \; amp; \ left (a_ {0} -a_ {n} {\ frac {a_ {n}} {a_ {0}}} \ right) \; \; amp; 0 \\\ конец {выровнено}}}

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

Обратите внимание, что это для первых двух строк. Затем для 3-й и 4-й строки коэффициент меняется (т.е.). Это можно рассматривать как новый многочлен, который имеет на одну степень меньше, а затем продолжается. а п а 0 {\ displaystyle {\ frac {a_ {n}} {a_ {0}}}} а п {\ displaystyle a_ {n}} б п - 1 б 0 {\ displaystyle {\ frac {b_ {n-1}} {b_ {0}}}}

Тест на стабильность

Если тогда для каждого значения..., которое отрицательно, многочлен имеет один корень вне единичного диска. Это означает, что метод может быть остановлен после обнаружения первого отрицательного значения при проверке стабильности. а 0 gt; 0 {\ displaystyle {a_ {0}}gt; 0} а 0 , б 0 , c 0 {\ displaystyle a_ {0}, b_ {0}, c_ {0}}

Пример реализации

Этот метод очень легко реализовать с помощью динамических массивов на компьютере. Он также сообщает, все ли модули корней ( комплексные и действительные ) лежат внутри единичного круга. Вектор v содержит действительные коэффициенты исходного многочлена в порядке от наивысшей степени до низшей степени.

 /* vvd is the jury array */ vvd.push_back(v); // Store the first row reverse(v.begin(),v.end()); vvd.push_back(v); // Store the second row for (i=2;;i+=2) { v.clear(); double mult = vvd[i-2][vvd[i-2].size()-1]/vvd[i-2][0]; // This is an/a0 as mentioned in the article. for (j=0; jlt;vvd[i-2].size()-1; j++) // Take the last 2 rows and compute the next row v.push_back(vvd[i-2][j] - vvd[i-1][j] * mult); vvd.push_back(v); reverse(v.begin(), v.end()); // reverse the next row vvd.push_back(v); if (v.size() == 1) break; } // Check is done using for (i=0; ilt;vvd.size(); i+=2) { if (vvd[i][0]lt;=0) break; } if (i == vvd.size()) "All roots lie inside unit disc " else "no"
Смотрите также
Рекомендации

Для получения более подробной информации, пожалуйста, проверьте эти ссылки:

Для дополнительных ресурсов:

Для реализаций:

Последняя правка сделана 2024-01-07 03:22:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте