После того, как заданный, система LMIs может быть изменена несколькими способами с функциями dellmi
, delmvar
и setmvar
.
Первая возможность состоит в том, чтобы удалить целый LMI из системы с dellmi
. Например, предположите, что система LMI Указывает, что Система LMI описана в LMISYS
и что мы хотим удалить ограничение положительности на X. Это сделано
NEWSYS = dellmi(LMISYS,2)
где второй аргумент задает удаление второго LMI. Получившаяся система двух LMIs возвращена в NEWSYS
.
Идентификаторы LMI (начальный рейтинг LMI в системе LMI) не изменены удалениями. В результате последний LMI
S> Я
остается известным как третий LMI даже при том, что это теперь занимает второе место в измененной системе. Чтобы избежать беспорядка, более безопасно относиться к LMIs через идентификаторы, возвращенные newlmi
. Если BRL
, Xpos
и Slmi
являются идентификаторами, присоединенными к трем LMIs, описанным в, Задают Систему LMI, Slmi
продолжает указывать на S> I даже после удаления второго LMI
NEWSYS = dellmi(LMISYS,Xpos)
Другой способ изменить систему LMI состоит в том, чтобы удалить матричную переменную, то есть, чтобы удалить все переменные условия, включающие эту матричную переменную. Эта операция выполняется delmvar
. Например, рассмотрите LMI
ATX + XA + BW + WTBT + I <0
с переменными X = XT ∊ R 4×4 и W ∊ R 2×4. Этот LMI задан
setlmis([]) X = lmivar(1,[4 1]) % X W = lmivar(2,[2 4]) % W lmiterm([1 1 1 X],1,A,'s') lmiterm([1 1 1 W],B,1,'s') lmiterm([1 1 1 0],1) LMISYS = getlmis
Чтобы удалить переменную W
, введите команду
NEWSYS = delmvar(LMISYS,W)
Получившийся NEWSYS
теперь описывает неравенство Ляпунова
ATX + XA + I <0
Обратите внимание на то, что delmvar
автоматически удаляет весь LMIs, который зависел только от удаленной матричной переменной.
Матричные идентификаторы переменных не затронуты удалениями и продолжают указывать на ту же матричную переменную. Для последующих манипуляций поэтому желательно относиться к остающимся переменным через их идентификатор. Наконец, обратите внимание, что удаление матричной переменной эквивалентно установке его к нулевой матрице тех же размерностей с setmvar
.
Функциональный setmvar
используется, чтобы установить матричную переменную на некоторое данное значение. В результате эта переменная удалена из проблемы, и все условия, включающие его, становятся постоянными условиями. Это полезно, например, к fixsetmvar
некоторые переменные, и оптимизируйте относительно остающихся единиц.
Рассмотрите снова Задают Систему LMI и предполагают, что мы хотим знать, является ли пиковое усиление самого G меньше чем одним, то есть, если
∥G ∥∞ <1
Это составляет установку масштабирующейся матрицы D (или эквивалентно, S = DTD) к кратному единичной матрице. Имея в виду ограничение S> I, законным выбором является S = 2 \U 03B2\\U 03C8\I. Чтобы установить S на это значение, войти
NEWSYS = setmvar(LMISYS,S,2)
Второй аргумент является идентификатором переменной S
, и третий аргумент является значением, в которое должен быть установлен S. Здесь значение 2 является сокращением для 2 мной. Получившаяся система чтения NEWSYS
Обратите внимание на то, что последний LMI теперь свободен от переменной и тривиально удовлетворенный. Это могло, поэтому, быть удалено
NEWSYS = dellmi(NEWSYS,3)
или
NEWSYS = dellmi(NEWSYS,Slmi)
если Slmi
является идентификатором, возвращенным newlmi
.