После того, как система LMI может быть изменена несколькими способами с функциями dellmi
, delmvar
, и setmvar
.
Первая возможность состоит в том, чтобы удалить весь LMI из системы с dellmi
. Например, предположим, что система LMI Specify LMI System описана в LMISYS
и что мы хотим удалить ограничение позитивности на X. Это сделано
NEWSYS = dellmi(LMISYS,2)
где второй аргумент задает удаление второго LMI. Получившаяся система из двух LMI возвращается в NEWSYS
.
Идентификаторы LMI (начальный рейтинг LMI в системе LMI) не изменяются удалениями. В результате последний LMI
S > I
остается известным как третий LMI, хотя теперь он занимает второе место в измененной системе. Чтобы избежать путаницы, безопаснее обращаться к LMI через идентификаторы, возвращенные newlmi
. Если BRL
, Xpos
, и Slmi
являются ли идентификаторы присоединенными к трем LMI, описанным в Specific LMI System, Slmi
продолжает указывать на S > I даже после удаления второго LMI по
NEWSYS = dellmi(LMISYS,Xpos)
Другой способ изменения системы LMI - удалить матричную переменную, то есть удалить все переменные условия с помощью этой матричной переменной. Эта операция выполняется delmvar
. Например, рассмотрите LMI
ATX + XA + BW + WTBT + I < 0
с переменными X = XT ∊ R4×4 и W ∊ R2×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
автоматически удаляет все LMI, которые зависели только от удаленной матричной переменной.
Идентификаторы матричных переменных не затронуты удалениями и продолжают указывать на ту же матричную переменную. Для последующих манипуляций, поэтому желательно обратиться к оставшимся переменным через их идентификатор. Наконец, обратите внимание, что удаление матричной переменной эквивалентно установке ее в нулевую матрицу тех же размерностей с setmvar
.
Функция setmvar
используется для задания матричной переменной заданного значения. В результате эта переменная удаляется из задачи, и все условия, связанные с ней, становятся постоянными терминами. Это полезно, например, чтобы исправитьsetmvar
некоторые переменные и оптимизируются относительно остальных таковых.
Рассмотрим еще раз Задайте систему LMI и предположим, что мы хотим знать, является ли пиковое усиление самого G меньше единицы, то есть, если
∥ G ∥∞ < 1
Это эквивалентно установке масштабной матрицы D (или эквивалентно S = DTD) к произведению матрицы тождеств. Учитывая ограничение S > I, законный выбор является S = 2-βψ-I. Чтобы задать S это значение, введите
NEWSYS = setmvar(LMISYS,S,2)
Вторым аргументом является идентификатор переменной S
, и третий аргумент является значением, которому S должно быть задано. Здесь значение 2 кратко для 2-by-I. Получившаяся система NEWSYS
читает
Обратите внимание, что последний LMI теперь свободен от переменных и тривиально удовлетворен. Поэтому его можно было бы исключить путем
NEWSYS = dellmi(NEWSYS,3)
или
NEWSYS = dellmi(NEWSYS,Slmi)
если Slmi
- идентификатор, возвращенный newlmi
.