Усовершенствованные методы LMI

Этот последний раздел дает несколько подсказок для того, чтобы максимально использовать LMI Lab. Это направлено к пользователям, которые довольны основами, как описано в Инструментах для Определения и Решения LMIs.

Структурированные матричные переменные

Довольно комплексные матричные переменные структуры и взаимозависимости могут быть заданы с lmivar. Вспомните, что симметричные диагональные блоком или прямоугольные структуры покрыты Типами 1 и 2 lmivar при условии, что матричные переменные независимы. Чтобы описать более комплексные структуры или корреляции между переменными, необходимо использовать Тип 3 и задать каждую запись матричных переменных непосредственно в терминах свободных скалярных переменных проблемы (так называемые переменные решения).

С Типом 3 каждая запись задана или как 0 или как ±xn, где xn является энной переменной решения. Следующие примеры иллюстрируют, как задать нетривиальные матричные переменные структуры с lmivar. Следующие структуры переменной show в качестве примера с некоррелироваными и взаимозависимыми матричными переменными.

Задайте матричные переменные структуры

Предположим, что переменные проблемы включают 3х3 симметрическую матрицу X и 3х3 симметричную матрицу Теплица, Y, данный:

Y=(y1y2y3y2y1y2y3y2y1).

Переменная 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=(x00y),Y=(z00t),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 на переменных решения (x1,x2,x3,x4):=(x,y,z,t).

sX
sX = 2×2

     1     0
     0     2

sY
sY = 2×2

     3     0
     0     4

Используя lmivar, можно теперь задать структуру переменной Z Типа 3 в терминах переменных решения x1=x и x4=t.

[Z,n,sZ] = lmivar(3,[0 -sX(1,1);-sY(2,2) 0]);

Поскольку sX(1,1) относится к x1 и sY(2,2) относится к x4, это выражение задает переменную Z как:

Z=(0-x1-x40)=(0-x-t0).

Подтвердите, что это заканчивается путем проверки мудрой записью зависимости Z на его переменных решения.

sZ
sZ = 2×2

     0    -1
    -4     0

LMIs с комплексным знаком

Решатели LMI записаны для матриц с действительным знаком и не могут непосредственно решить проблемы LMI, включающие матрицы с комплексным знаком. Однако LMIs с комплексным знаком может быть превращен в LMIs с действительным знаком путем замечания, что комплексная Эрмитова матрица L (x) удовлетворяет

L (x) <0

если и только если

(Re(L(x))Im(L(x))Im(L(x))Re(L(x)))<0.

Это предлагает выполняющую систематическую процедуру для превращения комплексного LMIs в действительные единицы:

  • Анализируйте каждую комплексную матричную переменную X как

    X = X1 + jX2

    где X1 и X2 действительны

  • Анализируйте каждый комплексный коэффициент матрицы как

    A = A1 + jA2

    где A1 и A2 действительны

  • Выполните все комплексные матричные произведения. Это дает к аффинным выражениям в X1, X2 для действительных и мнимых частей каждого LMI, и эквивалентный LMI с действительным знаком с готовностью выведен из вышеупомянутого наблюдения.

Для LMIs без внешнего фактора оптимизированная версия этой процедуры состоит из замены любого вхождения матричной переменной X = X1 + jX2

(X1X2X2X1)

и любая фиксированная матрица А = A1 + jA2, включая действительные единицы,

(A1A2A2A1).

Например, действительный дубликат системы LMI

MHXM < X,   X = XH > I(1)

чтения (учитывая разложения M = M 1 + jM2 и X = X1 + jX2 с Mj, действительный Xj):

(M1M2M2M1)T(X1X2X2X1)(M1M2M2M1)<(X1X2X2X1)(X1X2X2X1)<I.

Обратите внимание на то, что X = XH в свою очередь требует этого X1=X1H и X2+X2T=0. Следовательно, X1 и X2 должны быть объявлены как переменные симметрической и кососимметрической матрицы, соответственно.

Предположение, например, что ∊ C5×5 M, система 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,

bigX=(X1X2X2X1).

  1. Задайте X1 как (действительную) переменную симметрической матрицы и сохраните ее описание структуры sX1 а также номер n1 из переменных решения, используемых в X1.

  2. Задайте X2 как переменную кососимметрической матрицы использование Типа 3 lmivar и служебный skewdec. Команда skewdec(5,n1) создает скошено-симметричную структуру 5 на 5 в зависимости от переменных n1 + решения 1,  n1 + 2,...

  3. Задайте структуру bigX в терминах структур sX1 и sX2 из X1 и X2.

Дополнительную информацию см. в Структурированных Матричных Переменных на таких манипуляциях со структурами.

Определение cTx Цели для mincx

Решатель LMI mincx минимизирует линейные цели формы cTx, где x является вектором переменных решения. В большинстве проблем управления, однако, такие цели выражаются в терминах матричных переменных, а не x. Примеры включают Трассировку (X), где X переменная симметрической матрицы или uTXu, где u является данным вектором.

Функциональный defcx упрощает деривацию c вектора, когда цель является аффинной функцией матричных переменных. Ради рисунка рассмотрите линейную цель

Trace(X)+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 вектор, таким образом, что cTx=Трассировка(X)+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 цикл выполняет следующие операции:

  1. Оцените матричные переменные X и P, когда все записи вектора решения x будут обнулены кроме xj: = 1. Эта операция выполняется функциональным defcx. Кроме lmisys и j, входные параметры defcx идентификаторы X и P из переменных, вовлеченных в цель и выходные параметры Xj и Pj соответствующие значения.

  2. Оцените выражение цели для X:= Xj and P:= Pj. Это дает к j-th записи 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 к отрицательной величине означает “нет твердый связанный”, в этом случае радиус выполнимости увеличен во время оптимизации при необходимости. Этот “гибкий связанный” режим может дать к решениям больших норм.

Хорошо-Posedness проблемы

Решатели 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 <0, P> 0

В то время как эта проблема технически хорошо изложена, оптимизация LMI, вероятно, произведет решения близко к нулю (тривиальное решение нестрогой проблемы). Чтобы вычислить нетривиальную матрицу Ляпунова и легко дифференцироваться между выполнимостью и недопустимостью, замените ограничение P> 0 P> αI с α> 0. Обратите внимание на то, что это не изменяет проблему из-за ее гомогенного характера.

Полуопределенный B (x) в gevp проблемах

Рассмотрите обобщенную задачу минимизации собственного значения

Минимизируйте λ, удовлетворяющий

A (x) <λB (x), B (x)> 0, C (x) <0.(3)

Технически, положительность B (x) для некоторого xR n требуется для хорошо-posedness проблемы и применимости полиномиально-разовых методов внутренней точки. Следовательно проблемы, где

B(x)=(B1(x)000)

с B 1 (x) > 0 строго выполнимых, не может быть непосредственно решен с gevp. Простое средство состоит из замены ограничений

(x) <B (x), B (x)> 0

A(x)<(Y000),Y<λB1(x),B1(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-by-N2, когда числовая нестабильность гарантирует использование QR-факторизации вместо этого.

В то время как теория гарантирует, что итерация худшего случая считает пропорциональными M, количество итераций, на самом деле выполняемых, медленно растет с M в большинстве проблем. Наконец, в то время как feasp и mincx сопоставимы в сложности, gevp обычно требования больше вычислительного усилия. Убедитесь, что ваша задача LMI не может быть решена с mincx перед использованием gevp.

Решение M + PTXQ + QTXTP <0

Во многих проблемах синтеза выходной обратной связи проект может быть выполнен на двух шагах:

  1. Вычислите функцию Ляпунова с обратной связью через оптимизацию LMI.

  2. Учитывая эту функцию Ляпунова, выведите матрицы пространства состояний контроллера путем решения 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 ∥.

Похожие темы