exponenta event banner

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

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

Переменные структурированной матрицы

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

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

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

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

Y = (y1y2y3y2y1y2y3y2y1).

Переменная 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, со следующей структурой.

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

Сложные 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 на

(X1X2−X2X1)

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

(A1A2−A2A1).

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

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

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

(M1M2 M2M1) Т (X1X2 X2X1) (M1M2 M2M1) < (X1X2 X2X1) (X1X2 − X2X1) < 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 = (X1X2 X2X1).

  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, когда цель является аффинной функцией матричных переменных. Для иллюстрации рассмотрим линейную цель

Трассировка (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 = Trace (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 и 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. Обратите внимание, что это не изменяет проблему из-за ее однородности.

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

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

Минимизировать λ при условии

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

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

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

с B1 (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, обычно приводит к более высокой эффективности, чем каноническое представление

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.

Решение 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 ∥.

Связанные темы