Этот последний раздел содержит несколько советов по использованию LMI Lab. Он направлен на пользователей, которым удобны основы, как описано в разделе Инструменты для определения и решения LMI.
Довольно сложные матричные переменные структуры и взаимозависимости могут быть определены с помощью lmivar. Напомним, что симметричные блок-диагональные или прямоугольные структуры покрыты типами 1 и 2 из lmivar при условии, что переменные матрицы независимы. Чтобы описать более сложные структуры или корреляции между переменными, необходимо использовать тип 3 и указать каждую запись матричных переменных непосредственно в терминах свободных скалярных переменных задачи (так называемых переменных принятия решения).
При типе 3 каждая запись указывается как 0 или ± xn, где xn - переменная n-го решения. Следующие примеры иллюстрируют, как указать нетривиальные матричные переменные структуры сlmivar. Следующие примеры показывают структуры переменных с некоррелированными и взаимозависимыми матричными переменными.
Предположим, что переменные задачи включают в себя 3 на 3 симметричную матрицу X и 3 на 3 симметричную матрицу Toeplitz, Y, заданную как:
).
Переменная Y имеет три независимых элемента и, таким образом, включает три переменные принятия решения. Поскольку Y не зависит от X, маркируйте эти переменные решения n + 1, n + 2 и n + 3, где n - количество переменных решения, задействованных в X. Чтобы получить это число, определите переменную X типа 1.
setlmis([]) [X,n] = lmivar(1,[3 1]); n
n = 6
Второй выходной аргумент n дает общее количество используемых на данный момент переменных принятия решений, которое в данном случае равно n = 6. Учитывая это число, можно определить Y.
Y = lmivar(3,n+[1 2 3;2 1 2;3 2 1]);
Эквивалентное выражение для определения Y использует команду MATLAB (R)toeplitz для создания матрицы.
Y = lmivar(3,toeplitz(n+[1 2 3]));
Чтобы подтвердить переменные, визуализируйте распределения переменных решения в X и Y с помощью decinfo.
lmis = getlmis; decinfo(lmis,X)
ans = 3×3
1 2 4
2 3 5
4 5 6
decinfo(lmis,Y)
ans = 3×3
7 8 9
8 7 8
9 8 7
Рассмотрим три матричные переменные, X, Y и Z, со следующей структурой.
0-x-t0),
где x, y, z и t - независимые скалярные переменные. Чтобы задать такую тройку, сначала определите две независимые переменные, X и Y, которые оба являются типом 1.
setlmis([]); [X,n,sX] = lmivar(1,[1 0;1 0]); [Y,n,sY] = lmivar(1,[1 0;1 0]);
Третий выход lmivar даёт входную зависимость X и Y от решающих переменных z, t).
sX
sX = 2×2
1 0
0 2
sY
sY = 2×2
3 0
0 4
Теперь с помощью lmivar можно задать структуру переменной Z типа 3 в терминах переменных решения x = t.
[Z,n,sZ] = lmivar(3,[0 -sX(1,1);-sY(2,2) 0]);
Поскольку sX(1,1) относится к и sY(2,2) ссылается на , это выражение определяет переменную Z как:
0-x-t0).
Подтвердите эти результаты путем проверки зависимости от ввода Z по переменным принятия решений.
sZ
sZ = 2×2
0 -1
-4 0
Решатели LMI записываются для вещественных матриц и не могут непосредственно обрабатывать задачи LMI, включающие в себя комплексные матрицы. Однако комплексные LMI можно превратить в действительные LMI, наблюдая, что комплексная эрмитова матрица L (x) удовлетворяет
L (x) < 0
если и только если
(L (x))) < 0.
Это предполагает следующую систематическую процедуру превращения комплексных LMI в реальные:
Разложить каждую комплексную матричную переменную X как
X = X1 + jX2
где X1 и X2 реальны
Разложить каждый комплексный матричный коэффициент A как
A = A1 + jA2
где A1 и A2 реальны
Выполнить все сложные матричные продукты. Это дает аффинные выражения в X1, X2 для действительной и мнимой частей каждого LMI, и эквивалентная действительная LMI легко выводится из вышеупомянутого наблюдения.
Для LMI без внешнего фактора упрощенная версия этой процедуры состоит из замены любого вхождения переменной матрицы X = X1 + jX2 на
и любую фиксированную матрицу A = A1 + jA2, включая вещественные, на
Например, реальный аналог системы LMI
| MHXM < X, X = XH > I | (1) |
считывает (учитывая разложения M = M1 + jM2 и X = X1 + jX2 с Mj, Xj вещественными):
(X1X2 − X2X1) < I.
Обратите внимание, что X = XH, в свою очередь, требует, чтобы X1H X2T = 0. Следовательно, X1 и X2 должны быть объявлены как симметричные и асимметричные матричные переменные соответственно.
Предполагая, например, что M ∊ C5 × 5, система LMI ( уравнение 1) будет определена следующим образом:
M1=real(M), M2=imag(M) bigM=[M1 M2;-M2 M1] setlmis([]) % declare bigX=[X1 X2;-X2 X1] with X1=X1' and X2+X2'=0: [X1,n1,sX1] = lmivar(1,[5 1]) [X2,n2,sX2] = lmivar(3,skewdec(5,n1)) bigX = lmivar(3,[sX1 sX2;-sX2 sX1]) % describe the real counterpart of (1.12): lmiterm([1 1 1 0],1) lmiterm([-1 1 1 bigX],1,1) lmiterm([2 1 1 bigX],bigM',bigM) lmiterm([-2 1 1 bigX],1,1) lmis = getlmis
Обратите внимание на трехшаговое объявление переменной структурированной матрицы bigX,
X2X1).
Укажите X1 в качестве (вещественной) симметричной переменной матрицы и сохраните описание ее структуры sX1 а также номер n1 переменных принятия решений, используемых в X1.
Укажите X2 как переменную кососимметричной матрицы, используя тип 3 из lmivar и утилита skewdec. Команда skewdec(5,n1) создает наклонно-симметричную структуру 5 на 5 в зависимости от переменных решения n1 + 1, n1 + 2,...
Определение структуры bigX в части конструкций sX1 и sX2 X1 и X2.
Дополнительные сведения о таких манипуляциях со структурой см. в разделе Переменные структурированной матрицы.
Решатель LMI mincx минимизирует линейные цели вида cTx, где x - вектор переменных принятия решения. Однако в большинстве проблем управления такие цели выражены в терминах матричных переменных, а не x. Примеры включают Trace (X), где X является симметричной матричной переменной, или uTXu, где u является заданным вектором .
Функция defcx облегчает получение вектора c, когда цель является аффинной функцией матричных переменных. Для иллюстрации рассмотрим линейную цель
x0TPx0
где X и P - две симметричные переменные, а x0 - данный вектор. Если lmsisys - внутреннее представление системы LMI и, если x0, X,
P были объявлены
x0 = [1;1] setlmis([]) X = lmivar(1,[3 0]) P = lmivar(1,[2 1]) : : lmisys = getlmis
вектор c таким образом, что x0TPx0 может быть вычислен следующим образом:
n = decnbr(lmisys) c = zeros(n,1) for j=1:n, [Xj,Pj] = defcx(lmisys,j,X,P) c(j) = trace(Xj) + x0'*Pj*x0 end
Первая команда возвращает количество переменных принятия решения в задаче, а вторая команда соответственно измеряет c. Затем for цикл выполняет следующие операции:
Вычислите матричные переменные X и P, если все записи вектора принятия решения x равны нулю, за исключением xj: = 1. Эта операция выполняется функцией defcx. Кроме lmisys и j, входы defcx являются идентификаторами X и P переменных, участвующих в достижении цели, и результатов Xj и Pj являются соответствующими значениями.
Вычислить целевое выражение для X:= Xj и P:= Pj. Это дает j-й вход c по определению.
В нашем примере результат
c = 3 1 2 1
Другие задачи обрабатываются аналогичным образом путем редактирования следующего базового скелета:
n = decnbr( LMI system ) c = zeros(n,1) for j=1:n, [ matrix values ] = defcx( LMI system,j, matrix identifiers) c(j) = objective(matrix values) end
При решении проблем LMI с feasp, mincx, или gevp, возможно ограничить решение x лежанием в шаре
xTx < R2
где R > 0 называется радиусом осуществимости. Это задает максимальную (евклидову норму) величину для x и позволяет избежать получения решений очень большой нормы. Это также может ускорить вычисления и улучшить числовую стабильность. Наконец, граница радиуса осуществимости упорядочивает проблемы с избыточными наборами переменных. В грубых выражениях набор скалярных переменных является избыточным, когда эквивалентная задача может быть сформулирована с меньшим числом переменных.
Радиус осуществимости R задается третьей записью вектора опций решателей LMI. Значение по умолчанию - R = 109. Установка R в отрицательное значение означает «отсутствие жесткой связи», в этом случае радиус осуществимости при необходимости увеличивается во время оптимизации. Этот режим «гибких связей» может дать решения больших норм.
Решатели LMI, используемые в LMI Lab, основаны на методах оптимизации внутренних точек. Для вычисления возможных решений такие методы требуют, чтобы система ограничений LMI была строго осуществимой, то есть выполнимый набор имел непустую внутреннюю часть. В результате эти решатели могут столкнуться с трудностями, когда ограничения LMI выполнимы, но не строго осуществимы, то есть когда LMI
L (x) ≤ 0
имеет решения, в то время как
L (x) < 0
не имеет решения.
Для проблем выполнимости эта трудность автоматически обходится feasp, которая переформулирует проблему:
Найти x таких, что
| L (x ) ≤ 0 | (2) |
как:
Минимизировать t, подлежащее
Lx < t × I.
В этой модифицированной задаче ограничение LMI всегда строго выполнимо в x, t, и исходное уравнение LMI 2 возможно тогда и только тогда, когда глобальный минимум tmin уравнения 2 удовлетворяет
tmin ≤ 0
Однако для возможных, но не строго осуществимых проблем вычислительные усилия обычно выше, так как feasp стремится приблизиться к глобальному оптимуму tmin = 0 с высокой точностью.
Для проблем LMI, решаемых mincx и gevpнеограниченная осуществимость, как правило, приводит к сбою решателей и возврату диагноза «несходимости». Хотя не существует универсального средства для этой трудности, иногда возможно устранить лежащие в основе алгебраических ограничений, чтобы получить строго выполнимую проблему с меньшим количеством переменных.
Другая проблема связана с однородными проблемами осуществимости, такими как
ATP + P A < 0, P > 0
Хотя эта проблема технически хорошо поставлена, оптимизация LMI, скорее всего, приведет к решениям, близким к нулю (тривиальное решение неограниченной задачи). Чтобы вычислить нетривиальную матрицу Ляпунова и легко дифференцировать осуществимость и несходимость, замените ограничение P > 0-by-P > αI на α > 0. Обратите внимание, что это не изменяет проблему из-за ее однородности.
Рассмотрим обобщенную проблему минимизации собственных значений
Минимизировать λ при условии
| A (x) < λ B (x), B (x) > 0, C (x) < 0. | (3) |
Технически положительность B (x) для некоторого значения x ∊ Rn необходима для обоснованности проблемы и применимости методов внутренней точки полиномиального времени. Отсюда проблемы, где
000)
с B1 (x ) > 0 строго осуществимо, не может быть непосредственно решен сgevp. Простое средство состоит в замене ограничений
A (x) < B (x), B (x) > 0
около
B1 (x) > 0
где Y - дополнительная симметричная переменная правильных размеров. Результирующая задача эквивалентна уравнению 3 и может быть решена непосредственно с помощью gevp.
Как объясняется в документе Инструменты для определения и решения LMI, терминоориентированное описание LMI, используемых в LMI Lab, обычно приводит к более высокой эффективности, чем каноническое представление
| A0 + x1A1 + ... + xNAN < 0. | (4) |
Однако это уже не верно, когда число переменных членов почти равно или больше числа N переменных принятия решения в задаче. Если ваша задача LMI имеет мало свободных скалярных переменных, но много членов в каждом LMI, поэтому предпочтительно переписать его как уравнение 4 и указать его в этой форме. Каждая скалярная переменная xj затем объявляется независимо, и члены LMI имеют вид xjAj.
Если M обозначает общий размер строки системы LMI, а N - общее число скалярных переменных принятия решения, то число триггеров на итерацию для feasp и mincx решатели пропорциональны
N3, когда задача наименьших квадратов решается посредством факторизации Чолеского матрицы Гессена (по умолчанию) [2].
M-by-N2, когда численные нестабильности оправдывают использование факторизации QR.
В то время как теория гарантирует подсчет наихудших итераций, пропорциональный M, количество фактически выполненных итераций растет медленно с M в большинстве задач. Наконец, пока feasp и mincx сопоставимы по сложности, gevp обычно требуется больше вычислительных усилий. Убедитесь, что проблема LMI не может быть решена с помощью mincx перед использованием gevp.
Во многих проблемах синтеза с выходной обратной связью конструкция может быть выполнена в два этапа:
Вычислите функцию Ляпунова с замкнутым циклом с помощью оптимизации LMI.
Учитывая эту функцию Ляпунова, выведите матрицы состояния-пространства контроллера, решив LMI вида
| M + PTXQ + QTXTP < 0 | (5) |
где M, P, Q заданы матрицами, а X является неструктурированной переменной матрицы m-на-n.
Оказывается, что конкретное решение Xc уравнения 5 можно вычислить с помощью простых манипуляций с линейной алгеброй [1]. Обычно Xc соответствует центру эллипсоида матриц, определенных уравнением 5.
Функция basiclmi возвращает «явное» решение Xc:
Xc = basiclmi(M,P,Q)
Поскольку это центральное решение иногда имеет большую норму, basiclmi также предлагает вариант вычисления аппроксимационного наименее нормального решения уравнения 5. Это делается
X = basiclmi(M,P,Q,'Xmin')
и включает оптимизацию LMI для минимизации ∥X ∥.