В этом последнем разделе приведены несколько подсказок по максимальному использованию LMI Lab. Он направлен на пользователей, которым удобны основы, как описано в Tools for Specificing and Solving LMIs.
Довольно сложные матричные переменные структуры и взаимозависимости могут быть заданы lmivar
. Напомним, что симметричные блочно-диагональные или прямоугольные структуры покрыты типами 1 и 2 lmivar
при условии, что матричные переменные являются независимыми. Чтобы описать более сложные структуры или корреляции между переменными, необходимо использовать Тип 3 и задать каждую запись матричных переменных непосредственно в терминах свободных скалярных переменных задачи (так называемых переменных решения).
С типом 3 каждая запись задается как 0 или ± xn, где xn является n-й переменной принятия решений. Следующие примеры иллюстрируют, как задать нетривиальные матричные переменные структуры сlmivar
. В следующих примерах показаны переменные структуры с некоррелированными и взаимозависимыми матричными переменными.
Предположим, что переменные задачи включают 3 на 3 симметричную матрицу X и 3 на 3 симметричную матрицу Теплица Y, заданную:
Переменная Y имеет три независимых значения и, таким образом, включает три переменные принятия решений. Поскольку Y не зависит от X, пометьте эти переменные принятия решений n + 1, n + 2 и n + 3, где n - количество переменных принятия решений, участвующих в X. Чтобы получить это число, задайте переменную типа 1 X.
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 со следующей структурой.
где 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 от переменных принятия решений
sX
sX = 2×2
1 0
0 2
sY
sY = 2×2
3 0
0 4
Используя lmivar, можно теперь задать структуру переменной типа 3 Z с точки зрения переменных принятия решений и .
[Z,n,sZ] = lmivar(3,[0 -sX(1,1);-sY(2,2) 0]);
Потому что sX(1,1)
ссылается на и sY(2,2)
ссылается на , это выражение задает переменную Z
как:
Подтвердите эти результаты путем проверки входной зависимости Z
о переменных ее принятия решений.
sZ
sZ = 2×2
0 -1
-4 0
Решатели LMI записаны для вещественных матриц и не могут непосредственно обрабатывать задачи LMI, включающие комплексные матрицы. Однако комплексные LMI могут быть превращены в реальные LMI, наблюдая, что комплексная эрмитова матрица L (x) удовлетворяет
L (x) < 0
если и только если
Это предполагает следующую систематическую процедуру превращения сложных LMI в реальные таковые:
Разложите каждую комплексную матричную переменную X как
X = X1 + jX2
где X1 и X2 реальны
Разложите каждый комплексный матричный коэффициент A как
A = A1 + jA2
где A1 и A2 реальны
Выполните все сложные матричные продукты. Это приводит к выражениям в X1, X2 для действительных и мнимых частей каждого LMI, и эквивалентный реальный LMI легко получают из вышеописанного наблюдения.
Для LMI без внешнего фактора упорядоченная версия этой процедуры состоит из замены любого вхождения матричной переменной X = X1 + jX2 на
и любые фиксированные матрицы А = A1 + jA2, включая реальные таковые,
Например, реальный аналог системы LMI
MHXM < X, X = X H > I | (1) |
читается (учитывая разложение M = M 1 + jM2 и X = X1 + jX2 с Mj, X j real):
Обратите внимание, что X = XH в свою очередь требует, чтобы и . Следовательно, 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
,
Задайте 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, когда цель является аффинной функцией матричных переменных. Ради рисунка рассмотрим линейную цель
где 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 таким, что может быть вычислено следующим образом:
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 установлены в нуль, кроме x j: = 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 Lab, основаны на методах оптимизации внутренней точки. Для вычисления возможных решений такие методы требуют, чтобы система ограничений LMI была строго выполнимой, то есть допустимый набор имел непустое внутреннее пространство. В результате эти решатели могут столкнуться с трудностью, когда ограничения LMI допустимы, но не строго допустимы, то есть, когда LMI
L (x) ≤ 0
имеет решения, в то время как
L (x) < 0
не имеет решения.
Для задач выполнимости эта сложность автоматически обходится feasp
, который переформулирует задачу:
Найдите x такое, что
L (<reservedrangesplaceholder0>) ≤ 0 | (2) |
как:
Минимизируйте t, удовлетворяющие
Lx < <reservedrangesplaceholder1> × <reservedrangesplaceholder0> .
В этой измененной задаче ограничение LMI всегда строго допустимо в x, t и исходное уравнение LMI 2 допустимо тогда и только тогда, когда глобальный минимум tmin уравнения 2 удовлетворяет
tmin ≤ 0
Однако для допустимых, но не строго выполнимых задач вычислительные усилия обычно выше, чем feasp
стремится приблизиться к глобальному оптимуму tmin = 0 с высокой точностью.
Для проблем LMI, решаемых mincx
и gevp
, ненужная осуществимость обычно приводит к ошибке решателей и возвращению диагноза «недопустимость». Несмотря на отсутствие универсального средства от этой трудности, иногда можно устранить базовые алгебраические ограничения, чтобы получить строго допустимую задачу с меньшим количеством переменных.
Другая проблема связана с однородными проблемами выполнимости, такими как
ATP + P A < 0, P > 0
Хотя эта задача технически хорошо поставлена, оптимизация LMI, вероятно, даст решения, близкие к нулю (тривиальное решение задачи nonstrict). Чтобы вычислить нетривиальную матрицу Ляпунова и легко дифференцировать допустимость и недопустимость, замените ограничение P > 0-by-P > αI на α > 0. Обратите внимание, что это не изменяет проблему из-за ее однородности.
Рассмотрим обобщенную задачу минимизации собственных значений
Минимизируйте λ, удовлетворяющие
A (<reservedrangesplaceholder6>) <λB (<reservedrangesplaceholder4>), B (<reservedrangesplaceholder2>)> 0, C (<reservedrangesplaceholder0>) <0. | (3) |
Технически положительность B (x) для некоторых x ∊ Rn требуется для хорошо расположения задачи и применимости методов внутренней точки с полиномиальным временем. Отсюда и проблемы, где
с B 1 ( x) > 0 строго выполнимым, не может быть непосредственно решен сgevp
. Простое средство состоит из замены ограничений
A (x) < B (x), B (x) > 0
около
где Y - дополнительная симметричная переменная соответствующих размерностей. Получившаяся задача эквивалентна уравнению 3 и может быть решена непосредственно с gevp
.
Как объяснено в инструменты для определения и решения LMI, ориентированное на термин описание LMI, используемых в LMI Lab, обычно приводит к более высокой эффективности, чем каноническое представление
<reservedrangesplaceholder3> 0 + <reservedrangesplaceholder2> 1 <reservedrangesplaceholder1> 1 +... + xNAN <0. | (4) |
Это больше не верно, однако, когда количество переменных членов почти равно или больше, чем количество N переменных решения в задаче. Если ваша задача LMI имеет мало свободных скалярных переменных, но много членов в каждом LMI, поэтому лучше переписать его как Уравнение 4 и задать его в этой форме. Каждый скаляр переменная x j затем объявляется независимо, и условия LMI имеют вид x j A j.
Если M обозначает общий размер строки системы LMI, а N - общее количество скалярных переменных решения, количество флопов на итерацию для feasp
и mincx
решатели пропорциональны
N3 когда задача наименьших квадратов решается посредством факторизации Холесского матрицы Гессия (по умолчанию) [2].
M-на-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 ∥.