Этот последний раздел дает несколько подсказок для того, чтобы максимально использовать LMI Lab. Это направлено к пользователям, которые довольны основами, как описано в Инструментах для Определения и Решения LMIs.
Довольно комплексные матричные переменные структуры и взаимозависимости могут быть заданы с lmivar
. Вспомните, что симметричные диагональные блоком или прямоугольные структуры покрыты Типами 1 и 2 lmivar
при условии, что матричные переменные независимы. Чтобы описать более комплексные структуры или корреляции между переменными, необходимо использовать Тип 3 и задать каждую запись матричных переменных непосредственно в терминах свободных скалярных переменных проблемы (так называемые переменные решения).
С Типом 3 каждая запись задана или как 0 или как ±xn, где xn является энной переменной решения. Следующие примеры иллюстрируют, как задать нетривиальные матричные переменные структуры с lmivar
. Следующие структуры переменной show в качестве примера с некоррелироваными и взаимозависимыми матричными переменными.
Предположим, что переменные проблемы включают 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, можно теперь задать структуру переменной Z Типа 3 в терминах переменных решения и .
[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, включающие матрицы с комплексным знаком. Однако LMIs с комплексным знаком может быть превращен в LMIs с действительным знаком путем замечания, что комплексная Эрмитова матрица L (x) удовлетворяет
L (x) <0
если и только если
Это предлагает выполняющую систематическую процедуру для превращения комплексного LMIs в действительные единицы:
Анализируйте каждую комплексную матричную переменную X как
X = X1 + jX2
где X1 и X2 действительны
Анализируйте каждый комплексный коэффициент матрицы как
A = A1 + jA2
где A1 и A2 действительны
Выполните все комплексные матричные произведения. Это дает к аффинным выражениям в X1, X2 для действительных и мнимых частей каждого LMI, и эквивалентный LMI с действительным знаком с готовностью выведен из вышеупомянутого наблюдения.
Для LMIs без внешнего фактора оптимизированная версия этой процедуры состоит из замены любого вхождения матричной переменной X = X1 + jX2
и любая фиксированная матрица А = A1 + jA2, включая действительные единицы,
Например, действительный дубликат системы LMI
MHXM < X, X = XH > I | (1) |
чтения (учитывая разложения M = M 1 + jM2 и X = X1 + jX2 с Mj, действительный Xj):
Обратите внимание на то, что 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. Примеры включают Трассировку (X), где X переменная симметрической матрицы или uTСюй, где 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 будут обнулены кроме xj: = 1. Эта операция выполняется функцией defcx
. Кроме lmisys
и j
, входные параметры defcx
идентификаторы X
и P
из переменных, вовлеченных в цель и выходные параметры Xj
и Pj
соответствующие значения.
Оцените выражение цели для X:= Xj
and 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, и исходное уравнение 2 LMI выполнимо, если и только если глобальный минимум tmin уравнения 2 удовлетворяет
tmin ≤ 0
Для выполнимого, но не строго выполнимых проблем, однако, вычислительное усилие обычно выше как feasp
стремится приблизиться к глобальному оптимуму tmin = 0 с высокой точностью.
Для проблем LMI, решенных mincx
и gevp
, нестрогая выполнимость обычно заставляет решатели приводить к сбою и возвращать диагноз “недопустимости”. Несмотря на то, что нет никакого универсального средства от этой трудности, иногда возможно устранить базовые алгебраические ограничения, чтобы получить строго выполнимую проблему с меньшим количеством переменных.
Другая проблема имеет отношение к гомогенным проблемам выполнимости такой как
ATP + P <0, P> 0
В то время как эта проблема технически хорошо изложена, оптимизация LMI, вероятно, произведет решения близко к нулю (тривиальное решение нестрогой проблемы). Чтобы вычислить нетривиальную матрицу Ляпунова и легко дифференцироваться между выполнимостью и недопустимостью, замените ограничение P> 0 P> αI с α> 0. Обратите внимание на то, что это не изменяет проблему из-за ее гомогенного характера.
Рассмотрите обобщенную задачу минимизации собственного значения
Минимизируйте λ, удовлетворяющий
A (x) <λB (x), B (x)> 0, C (x) <0. | (3) |
Технически, положительность B (x) для некоторого x ∊ Rn требуется для хорошо-posedness проблемы и применимости полиномиально-разовых методов внутренней точки. Следовательно проблемы, где
с B 1 (x) > 0 строго выполнимых, не может быть непосредственно решен с gevp
. Простое средство состоит из замены ограничений
(x) <B (x), B (x)> 0
где Y является дополнительной симметричной переменной соответствующих размерностей. Получившаяся задача эквивалентна уравнению 3 и может быть решена непосредственно с gevp
.
Как объяснено в Инструментах для Определения и Решения LMIs, ориентированное на термин описание LMIs, используемого в LMI Lab обычно, приводит к более высокому КПД, чем каноническое представление
A 0 + x 1A1 + ... + xNAN < 0. | (4) |
Это более не верно, однако, когда количество переменных терминов почти равно или больше, чем количество N переменных решения в проблеме. Если ваша проблема LMI имеет немного свободных скалярных переменных, но много терминов в каждом LMI, поэтому предпочтительно переписать его как уравнение 4 и задать его в этой форме. Каждая скалярная переменная xj затем объявляется независимо, и термины LMI имеют форму xjAj.
Если 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.
function basiclmi
возвращает “явное” решение Xc:
Xc = basiclmi(M,P,Q)
Поскольку это центральное решение иногда имеет большую норму, basiclmi
также предлагает опцию вычисления аппроксимированного решения наименьшего-количества-нормы уравнения 5. Это сделано
X = basiclmi(M,P,Q,'Xmin')
и включает оптимизацию LMI, чтобы минимизировать ∥X ∥.