lmivar

Задайте матричные переменные в задаче LMI

Синтаксис

X = lmivar(type,struct)
[X,n,sX] = lmivar(type,struct)

Описание

lmivar задает новую матричную переменную, X в описанной в настоящее время системе LMI. Необязательный выход X является идентификатором, который может использоваться для последующей ссылки на эту новую переменную.

Первый аргумент type выбирает среди доступных типов переменных и второй аргумент struct приводит дополнительную информацию о структуре X в зависимости от ее типа. Доступные типы переменных включают:

type = 1: Симметричные матрицы с блок-диагональной структурой. Каждый диагональный блок либо полон (произвольная симметричная матрица), либо скаляр (кратные тождества матрице), либо идентично равен нулю.

Если у X R диагональных блоков, struct - матрица R -by-2, где

  • struct(r,1) - размер r -го блока

  • struct(r,2) - тип r -го блока (1 для полного, 0 для скаляра, -1 для нулевого блока).

type = 2: Полная m -by n прямоугольная матрица. Задайте struct = [m,n] в этом случае.

type = 3: Другие структуры. С типом 3 каждая запись X задается как нуль или ± x где xn является n-й переменной принятия решений.

Соответственно struct является матрицей тех же размерностей, что и X, что и

  • struct(i,j)=0 если X (i, j) жесткий нуль

  • struct(i,j)=n если X (i, j) = xn

  • struct(i,j)=–n если X (i, j) = - xn

Сложные матричные переменные структуры могут быть заданы типом 3. Чтобы задать X переменных типа 3, сначала определите, сколько свободных независимых записей участвует в X. Они составляют набор переменных принятия решений, сопоставленных с X. Если задача уже связана с n переменными принятия решений, пометьте новые свободные переменные как xn + 1,..., xn+p. Структура X затем определяется в терминах xn + 1,..., xn+p как указано выше. Чтобы помочь задать матричные переменные типа 3, lmivar опционально возвращает два дополнительных выходов: (1) общее количество n используемых до сих пор скалярных переменных принятия решений и (2) матрицу sX показывает входную зависимость X от переменных принятия решений x 1,..., xn.

Примеры

свернуть все

Рассмотрим систему LMI с тремя матричными переменными X1, X2, и X3 таким, что

  • X1 - симметричная матрица 3 на 3 (неструктурированная),

  • X2 - прямоугольная матрица 2 на 4 (неструктурированная),

  • X3 =

(Δ000δ1000δ2I2),

где И - произвольная симметричная матрица 5 на 5, δ1 и δ2 являются скалярами, и I2 обозначает тождества матрицу размера 2.

Задайте эти три переменные с помощью lmivar.

setlmis([]) 
X1 = lmivar(1,[3 1]);          % Type 1 
X2 = lmivar(2,[2 4]);         % Type 2 of dimension 2-by-4 
X3 = lmivar(1,[5 1;1 0;2 0]);  % Type 1

Последняя команда задает X3 как переменная типа 1 с одним полным блоком размера 5 и двумя скалярными блоками размеров 1 и 2 соответственно.

В сочетании с дополнительными выходами n и sX от lmivar, Тип 3 позволяет вам задать довольно сложные матричные переменные структуры. Например, рассмотрим матричную переменную X со структурой, заданной:

X=(X100X2)

где X1 и X2 представляют собой прямоугольные матрицы 2 на 3 и 3 на 2 соответственно. Задайте эту структуру следующим образом.

Задайте прямоугольные переменные X1 и X2.

setlmis([]) 
[X1,n,sX1] = lmivar(2,[2 3]); 
[X2,n,sX2] = lmivar(2,[3 2]);

Выходные выходы sX1 и sX2 задайте содержимое переменной решения X1 и X2.

sX1
sX1 = 2×3

     1     2     3
     4     5     6

sX2
sX2 = 3×2

     7     8
     9    10
    11    12

Для образца, sX2(1,1) = 7 означает, что (1,1) запись X2 - седьмая переменная принятия решений.

Затем используйте Type 3, чтобы задать матричную переменную X и определить ее структуру в терминах структур X1 и X2.

[X,n,sX] = lmivar(3,[sX1,zeros(2);zeros(3),sX2]);

Подтвердите, что полученное X имеет желаемую структуру.

sX
sX = 5×5

     1     2     3     0     0
     4     5     6     0     0
     0     0     0     7     8
     0     0     0     9    10
     0     0     0    11    12

См. также

| | | | | |

Представлено до R2006a