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

В этом последнем разделе приведены несколько подсказок по максимальному использованию 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=(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, можно теперь задать структуру переменной типа 3 Z с точки зрения переменных принятия решений 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

Комплексные LMI

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

L (x) < 0

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

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

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

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

    X = X1 + jX2

    где X1 и X2 реальны

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

    A = A1 + jA2

    где A1 и A2 реальны

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

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

(X1X2X2X1)

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

(A1A2A2A1).

Например, реальный аналог системы LMI

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

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

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

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

Принимая, например, что MC5×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,

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. Примеры включают Trace (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 установлены в нуль, кроме x j: = 1. Эта операция выполняется функциейdefcx. Кроме lmisys и j, входы defcx являются ли идентификаторы X и P переменных, участвующих в цели, и выходов Xj и Pj являются соответствующими значениями.

  2. Оцените выражение цели для 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. Обратите внимание, что это не изменяет проблему из-за ее однородности.

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

Рассмотрим обобщенную задачу минимизации собственных значений

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

A (<reservedrangesplaceholder6>) <λB (<reservedrangesplaceholder4>), B (<reservedrangesplaceholder2>)> 0, C (<reservedrangesplaceholder0>) <0.(3)

Технически положительность B (x) для некоторых x ∊ Rn требуется для хорошо расположения задачи и применимости методов внутренней точки с полиномиальным временем. Отсюда и проблемы, где

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

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

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

около

A(x)<(Y000),Y<λB1(x),B1(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.

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

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

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

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

Похожие темы