После того, как система 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.