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) вычисляет верхнюю и нижнюю границы структурированного сингулярного значения, или u, для заданного блока структуры. M является double массив, frd модель, или пространство состояний (ss) модель.

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

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

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

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

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

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

  • если BlockStructure(i,:) = [r c], тогда i-й блок является 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, расчеты всегда выполняются точечно по частоте. Выходной аргумент bounds является 1-by-2 frd верхней и нижней границы на каждой частоте. Обратите внимание, что bounds.Frequency равен M.Frequency.

Если M является N-D массивом (либо double или frd), верхняя и нижняя границы вычисляются точечно вдоль 3-ьих и более высоких измерений массива (а также точечно по частоте, для frd). Например, предположим, что size(M) <reservedrangesplaceholder4> × <reservedrangesplaceholder3> × <reservedrangesplaceholder2> 1×...× dF. Затем size(bounds) 1×2× <reservedrangesplaceholder2> 1×...× 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'

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

'g N'

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

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

'i'

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

'm N'

Случайным образом повторно инициализируйте нижнюю связанную итерацию несколько раз. 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') добавляет опцию для бесшумного выполнения. Другие опции проигнорированы для обобщенных задач .r.

Обратите внимание, что в обобщённых структурированных расчетах сингулярных значений вычисляется только верхняя граница. 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

Алгоритмы

Нижняя граница вычисляется с помощью метода степени Young and Doyle, 1990 и Packard et al. 1988, и верхняя граница вычисляется с помощью метода сбалансированного/AMI, Young et al., 1992, для вычисления верхней границы от Fan et al., 1991.

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

Нижняя граница алгоритма степени получена из Янга и Дойла, 1990 и Packard et al. 1988.

Верхняя граница является реализацией границы от Fan et al., 1991, и подробно описана в Young et al., 1992. В верхних границах расчета матрица сначала сбалансирована с помощью изменения метода Осборна (Osborne, 1960), обобщенной для обработки повторных скалярных и полных блоков, или подхода Перрона. Это генерирует стандартную верхнюю границу для связанной комплексной задачи Метод собственного вектора Перрона основан на идее Сафонова, (Сафонов, 1982). Это даёт точный расчет .rдля положительных матриц со скалярными блоками, но сопоставимо с Осборном на общих матрицах. Методы Перрона и Осборна были изменены для обработки повторных скалярных и полных блоков. Перрон быстрее для малых матриц, но имеет скорость роста n3, по сравнению с менее чем n2 для Осборна. Отчасти это связано с MATLAB реализация, которая очень благоприятствует Perron. По умолчанию является использование Перрона для простых блочных структур и Осборна для более сложных блочных структур. Последовательность улучшений верхней границы затем выполняется на основе различных эквивалентных форм верхней границы. Используется ряд методов спуска, которые используют структуру задачи, завершая оптимизацией LMI общего назначения (Boyd et al.), 1993, чтобы получить окончательный ответ.

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

Ссылки

[1] Boyd, S. and L. El Ghaoui, «Methods of centers минимизация generalized eigenvalues», Линейная Алгебра and Its Applications, Vol. 188-189, 1993, pp. 63-111.

[2] Fan, M., A. Tits, and J. Doyle, «Robustness in the mixed parametric firety and unmodeled dynamics», IEEE Transactions on Automatic Control, Vol. AC-36, 1991, pp. 25-38.

[3] Osborne, E., «On preconditioning of matrices», Journal of Associated Computer Machines, Vol. 7, 1960, pp. 338-345.

[4] Packard, A.K., M. Fan and J. Doyle, «A power method for the structured сингулярное значение», Proc. of 1988 IEEE Conference on Control and Decision, December 1988, pp. 2132-2137.

[5] Сафонов, М. «Запасов устойчивости для диагонально возмущенных многопараметрических систем обратной связи», IEEE Proc., Vol. 129, Part D, 1992, pp. 251-256.

[6] Янг, П. и Дж. Дойл, «Расчет с реальными и сложными неопределенностями», Материалы 29-й Конференции IEEE по принятию решений и контролю, 1990, стр. 1230-1235.

[7] Young, P., M. Newlin, and J. Doyle, «Practical computation of the mixed problem», Proceedings of the American Control Conference, 1992, pp. 2190-2194.

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