Задайте содержимое терминов LMI
lmiterm(termID,A,B,flag)
lmiterm
задает содержимое терминов LMI по одному термину за раз. Напомним, что термин LMI относится к элементарным векторам свободных членов, участвующим в блочно-матричном выражении LMI. Перед использованием lmiterm
, описание LMI должно быть инициализировано с setlmis
и матричные переменные должны быть объявлены с lmivar
. Каждый lmiterm
команда добавляет один дополнительный термин к описанной в настоящее время системе LMI.
Термины LMI являются одной из следующих сущностей:
внешние факторы
постоянные условия (фиксированные матрицы)
переменные условия AXB или AXTB, где X является матричной переменной, и A и B заданы матрицы, называемые терминальными коэффициентами.
При описании LMI с несколькими блоками не забудьте задать только условия в блоках на или ниже диагонали (или эквивалентно, только условия в блоках на или выше диагонали). Для образца задайте блоки (1,1), (2,1) и (2,2) в LMI с двумя блоками.
В вызове lmiterm
, termID
является вектором с четырьмя входами из целых чисел, задающих местоположение термина и участвующую переменную матрицы.
где положительный p для терминов на левой стороне p -th LMI и отрицательный p для терминов на правой стороне p -th LMI.
Напомним, что по договоренности левая сторона всегда относится к меньшей стороне LMI. Область индекса p
относится к порядку объявления и соответствует идентификатору, возвращаемому newlmi
.
где x
- идентификатор матричной переменной X
как возвращено lmivar
.
Аргументы A
и B
содержат числовые данные и устанавливаются согласно:
Тип термина | A | B |
---|---|---|
внешний коэффициент N | матричное значение N | опустить |
постоянный термин C | матричное значение C | опустить |
переменный термин AXB или AXTB | матричное значение A (1, если A отсутствует) | матричное значение B (1, если B отсутствует) |
Обратите внимание, что не нужно задавать единичные внешние факторы и нулевые постоянные условия.
Дополнительный аргумент flag
является необязательным и касается только сопряженных выражений формы
(<reservedrangesplaceholder1>) + (<reservedrangesplaceholder0>)T = AXB + BTXTAT
в диагональных блоках. Настройка flag = 's'
позволяет вам задавать такие выражения с помощью одной lmiterm
команда. Для образца,
lmiterm([1 1 1 X],A,1,'s')
добавляет симметризованное выражение AX + XTAT в блок (1,1) первого LMI и суммирует две команды
lmiterm([1 1 1 X],A,1) lmiterm([1 1 1 -X],1,A')
Помимо удобства, этот ярлык также приводит к более эффективному представлению LMI.
Рассмотрим LMI
где X 1, X 2 являются матричными переменными Типов 2 и 1, соответственно, и x 3 является скалярной переменной (Тип 1).
После инициализации описания LMI с помощью setlmis
и объявите матричные переменные, используя lmivar
, укажите условия в левой части этого LMI.
lmiterm([1 1 1 X2],2*A,A') % 2*A*X2*A' lmiterm([1 1 1 x3],-1,E) % -x3*E lmiterm([1 1 1 0],D*D') % D*D' lmiterm([1 2 1 -X1],1,B) % X1'*B lmiterm([1 2 2 0],-1) % -I
Вот X1
, X2
, и x3
возвращаются ли идентификаторы переменных lmivar
при объявлении переменных.
Точно так же задайте содержимое термина для правой оси.
lmiterm([-1 0 0 0],M) % outer factor M lmiterm([-1 1 1 X1],C,C','s') % C*X1*C'+C*X1'*C' lmiterm([-1 2 2 X2],-f,1) % -f*X2
Обратите внимание, что CX 1CT + <reservedrangesplaceholder0> 1TCT задается одной lmiterm
команда с флагом 's'
для обеспечения правильной симметризации.