mussv

Вычислите границы на структурированном сингулярном значении (µ)

Синтаксис

bounds = mussv(M,BlockStructure)
[bounds,muinfo] = mussv(M,BlockStructure)
[bounds,muinfo] = mussv(M,BlockStructure,Options)
[ubound,q] = mussv(M,F,BlockStructure)
[ubound,q] = mussv(M,F,BlockStructure,'s')

Описание

bounds = mussv(M,BlockStructure) вычисляет верхние и нижние границы на структурированное сингулярное значение или µ, для данной блочной структуры. M является массивом double, моделью frd или моделью (ss) пространства состояний.

  • Если M является массивом N-D (с N ≥ 3), то вычисление выполняется pointwise вдоль третьих и более высоких измерений массива.

  • Если M является моделью frd, то вычисления выполняются pointwise в частоте (а также любые измерения массива).

  • Если M является моделью ss, вычисления выполняются с помощью алгоритмов пространства состояний. Частоты адаптивно выбраны, и верхние границы, как гарантируют, будут держать над каждым интервалом между частотами. M должен быть единой системой без измерений массива.

BlockStructure является матрицей, задающей блочную структуру возмущения. BlockStructure имеет 2 столбца, и столько же строк сколько блоки неуверенности в структуре возмущения. i-th строка BlockStructure задает размерности i'th блока возмущения.

  • Если BlockStructure(i,:) = [-r 0], то i-th блок является r-by-r повторенный, диагональное действительное скалярное возмущение;

  • если BlockStructure(i,:) = [r 0], то i-th блок является r-by-r повторенный, диагональ, объединяет скалярное возмущение;

  • если BlockStructure(i,:) = [r c], то i-th блок является r-by-c комплексное возмущение полного блока.

  • Если BlockStructure не использован, его значением по умолчанию является ones(size(M,1),2), который подразумевает структуру возмущения всех комплексных блоков 1 на 1. В этом случае, если size(M,1) не равняется size(M,2), ошибка заканчивается.

Если M является двумерной матрицей, то bounds является массивом 1-by-2, содержащим верхнее (первый столбец) и ниже (второй столбец) связанный структурированного сингулярного значения M. Для всех матриц Delta с диагональной блоком структурой, заданной BlockStructure и с нормой меньше, чем 1/bounds(1) (верхняя граница), матричный I - M*Delta не сингулярен. Кроме того, существует матричный DeltaS с диагональной блоком структурой, заданной BlockStructure и с нормой, равной 1/bounds(2) (нижняя граница), для которой матричный I - M*DeltaS сингулярен.

Формат, используемый в 3-м выходном аргументе от lftdata, также приемлем для описания блочной структуры.

Если M является frd, вычисления всегда выполняются pointwise в частоте. Выходным аргументом bounds является 1-by-2 frd верхних и нижних границ на каждой частоте. Обратите внимание на то, что bounds.Frequency равняется M.Frequency.

Если M является массивом N-D (или double или frd), верхние и нижние границы вычисляются pointwise вдоль 3-х и более высоких измерений массива (а также pointwise в частоте для frd). Например, предположите, что size(M) является r ×c×d1×...×dF. Затем size(bounds) 1×2×d1×...×dF. Используя одно индексное обозначение, bounds(1,1,i) является верхней границей для структурированного сингулярного значения M(:,:,i), и bounds(1,2,i) является нижней границей для структурированного сингулярного значения M(:,:,i). Здесь, любой i между 1 и d 1 · d 2... dF (продукт dk) был бы допустим.

Если M является моделью ss, bounds возвращен как модель frd.

bounds = mussv(M,BlockStructure,Options) задает опции вычисления. Options является вектором символов, содержа любую комбинацию следующих символов:

Опция

Значение

'a'

Верхняя граница с самой большой точностью, с помощью решателя LMI. Это - поведение по умолчанию, когда количество переменных решения в рамках масштабирований D/G - меньше чем 45.

'f'

Обеспечьте быструю верхнюю границу (обычно не столь трудный как значение по умолчанию)

'G'

Обеспечьте верхнюю границу, чтобы использовать градиентный метод. Это - поведение по умолчанию, когда количество переменных решения в рамках масштабирований D/G больше, чем или равно 45.

'U'

Верхняя граница “только” (нижняя граница использует быстрый/дешевый алгоритм).

'gN'

Используйте основанный на усилении метод нижней границы многократно. Значение N устанавливает число раз, согласно 10+N*10. Например, 'g6' использует основанную на усилении нижнюю границу 70 раз. Большее число обычно дает лучшие нижние границы.

Если все блоки неуверенности, описанные blk, действительны, то значением по умолчанию является 'g1'. Если по крайней мере один блок неуверенности является комплексным, то mussv использует нижнюю границу итерации степени по умолчанию.

'i'

Повторно инициализируйте вычисление нижней границы в каждой новой матрице (только релевантный, если M является массивом ND или frd).

'mN'

Случайным образом повторно инициализируйте итерацию нижней границы многократно. N является целым числом между 1 и 9. Например, 'm7' случайным образом повторно инициализирует итерацию нижней границы 7 раз. Большее число является обычно более в вычислительном отношении дорогим, но часто дает лучшие нижние границы.

'p'

Используйте метод итерации степени, чтобы вычислить нижнюю границу. Когда по крайней мере один из блоков неуверенности, описанных BlockStructure, является комплексным, затем 'p' является методом нижней границы по умолчанию.

's'

Подавите (тихую) информацию о прогрессе.

'd'

Выведите предупреждения.

'x'

Уменьшите итерации в вычислении нижней границы (быстрее, но не столь трудные как значение по умолчанию). Используйте 'U' для еще более быстрой нижней границы.

'an'

То же самое как 'a', но без автоматического предварительного масштабирования.

'o'

Запустите “старые” алгоритмы от версии 3.1.1 и прежде. Включенный, чтобы позволить точную репликацию более ранних вычислений.

[bounds,muinfo] = mussv(M,BlockStructure) возвращает muinfo, структуру, содержащую более подробную информацию. Информация в muinfo должна быть извлечена с помощью mussvextract.

Обобщенное структурированное сингулярное значение

ubound = mussv(M,F,BlockStructure) вычисляет верхняя граница на обобщенном структурированном сингулярном значении (обобщил µ) для данной блочной структуры. M является объектом double или frd. M и BlockStructure как прежде. F является дополнительным (double или frd).

ubound = mussv(M,F,BlockStructure,'s') добавляет опция, чтобы запуститься тихо. Другие опции проигнорированы для обобщенных µ проблем.

Обратите внимание на то, что в обобщенных структурированных вычислениях сингулярного значения, только верхняя граница вычисляется. ubound является верхней границей обобщенного структурированного сингулярного значения парного (M,F) относительно диагональной блоком неуверенности, описанной BlockStructure. Следовательно, ubound 1 на 1 (с дополнительной зависимостью массивов, в зависимости от M и F). Для всех матриц Delta с диагональной блоком структурой, заданной BlockStructure и norm<1/ubound, матричный [I-Delta*M;F], как гарантируют, не потеряет ранг столбца. Это проверяется матричным Q, который удовлетворяет mussv(M+Q*F,BlockStructure,'a')<=ubound.

Примеры

Смотрите mussvextract для подробного примера структурированного сингулярного значения.

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

M является комплексной матрицей 5 на 5, и F является комплексом 2 5 матрица. Блочная структура BlockStructure является неопределенным действительным параметром δ1, неопределенный действительный параметр δ2, неопределенный комплексный параметр δ3 и дважды повторенный неопределенный комплексный параметр δ4.

rng(929,'twister')
M = randn(5,5) + sqrt(-1)*randn(5,5); 
F = randn(2,5) + sqrt(-1)*randn(2,5); 
BlockStructure = [-1 0;-1 0;1 1;2 0]; 
[ubound,Q] = mussv(M,F,BlockStructure); 
bounds = mussv(M,BlockStructure); 
optbounds = mussv(M+Q*F,BlockStructure); 

Количества optbounds(1) и ubound должны быть чрезвычайно близкими, и значительно ниже, чем bounds(1) и bounds(2).

[optbounds(1) ubound] 
ans =

    2.2070    2.1749
[bounds(1)  bounds(2)] 
ans =

    4.4049    4.1960

Алгоритмы

Нижняя граница вычисляется с помощью метода степени, Янга и Дойла, 1990, и Паккард и др. 1988, и верхняя граница вычисляется с помощью сбалансированного/AMI метода, Янг и др., 1992, для вычисления верхней границы от Фэна и др., 1991.

Питер Янг и Мэтт Ньюлин записали исходную функцию.

Алгоритм степени нижней границы от Янга и Дойла, 1990, и Паккард и др. 1988.

Верхняя граница является реализацией связанного от Фэна и др., 1991, и описана подробно в Янге и др., 1992. В вычислении верхней границы матрица сначала сбалансирована с помощью любого изменение метода Осборна (Осборн, 1960) обобщенный, чтобы обработать повторенный скаляр и полные блоки или подход Крыльца. Это генерирует стандартную верхнюю границу для связанного комплекса µ проблема. Метод собственного вектора Крыльца основан на идее Сафонова, (Сафонов, 1982). Это дает точное вычисление µ для положительных матриц со скалярными блоками, но сопоставимо с Осборном на общих матрицах. И методы Крыльца и Осборна были изменены, чтобы обработать повторенный скаляр и полные блоки. Крыльцо быстрее для маленьких матриц, но имеет темп роста n 3, по сравнению с меньше, чем n 2 для Осборна. Это происходит частично из-за реализации MATLAB, которая значительно способствует Крыльцу. Значение по умолчанию должно использовать Крыльцо для простых блочных структур и Осборна для более сложных блочных структур. Последовательность улучшений верхней границы затем сделана на основе различных эквивалентных форм верхней границы. Много методов спуска используются, которые используют структуру проблемы, завершающей оптимизацией LMI общего назначения (Бойд и др.), 1993, чтобы получить окончательный ответ.

Оптимальный выбор Q (чтобы минимизировать верхнюю границу) в обобщенной µ проблеме решен путем переформулировки оптимизации в полуопределенную программу (Паккард и др., 1991).

Ссылки

[1] Бойд, S. и Л. Эль Гаоуи, “Методы центров минимизации обобщенных собственных значений”, Линейная алгебра и Ее Приложения, Издание 188-189, 1993, стр 63–111.

[2] Вентилятор, M., А. Титс и Дж. Дойл, “Робастность в присутствии смешанной параметрической неуверенности и несмоделированной динамики”, Транзакции IEEE на Автоматическом управлении, издании AC-36, 1991, стр 25–38.

[3] Осборн, E., “При предварительном создании условий матриц”, Журнал Связанных Компьютерных Машин, Издания 7, 1960, стр 338–345.

[4] Паккард, A.K., М. Фэн и Дж. Дойл, “Метод степени для структурированного сингулярного значения”, Proc. 1 988 Конференций по IEEE по Управлению и Решению, декабрь 1988, стр 2132–2137.

[5] Сафонов, M., “Запасы устойчивости для по диагонали встревоженных многомерных систем с обратной связью”, IEEE Proc., Издание 129, Часть D, 1992, стр 251–256.

[6] Молодой, P. и Дж. Дойл, “Вычисление с действительной и комплексной неуверенностью”, Продолжения 29-й Конференции по IEEE по Решению и Управлению, 1990, стр 1230–1235.

[7] Молодой, P., М. Ньюлин и Дж. Дойл, “Практическое вычисление смешанной задачи”, Продолжения американской Конференции по Управлению, 1992, стр 2190–2194.

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

| | | |

Представлено до R2006a