setmvar

Инстанцируйте матричной переменной и оцените все условия LMI, включающие эту матричную переменную

Синтаксис

mnewsys = setmvar(lmisys,X,Xval)

Описание

setmvar устанавливает матричную переменную X с идентификатором X к значению Xval. Все условия, включающие X, оценены, постоянные условия обновляются соответственно, и X удален из списка матричных переменных. Описание получившейся системы LMI возвращено в newsys.

Целочисленный X идентификатор, возвращенный lmivar когда X объявляется. Инстанцирование X с setmvar не изменяет идентификаторы остающихся матричных переменных.

Функциональный setmvar полезно, чтобы заморозить определенные матричные переменные и оптимизировать относительно остающихся единиц. Это экономит время путем предотвращения частичного или полного переопределения набора ограничений LMI.

Примеры

Рассмотрите систему

= Ax + Bu

и задача нахождения стабилизировавшийся закон обратной связи состояния u = Kx, где K является неизвестной матрицей.

Теоремой Ляпунова это эквивалентно нахождению P> 0 и K, таким образом что

(A + BK) P + P (A + BKT) + I <0.

С заменой переменной Y: = KP, это условие уменьшает до LMI

AP + PAT + BY + YT BT + I <0.

Этот LMI вводится командами

n = size(A,1)                 % number of states 
ncon = size(B,2)              % number of inputs

setlmis([]) 
P = lmivar(1,[n 1])           % P full symmetric 
Y = lmivar(2,[ncon n])        % Y rectangular

lmiterm([1 1 1 P],A,1,'s')    % AP+PA' 
lmiterm([1 1 1 Y],B,1,'s')    % BY+Y'B' 
lmiterm([1 1 1 0],1)          % I 
lmis = getlmis

Чтобы узнать, имеет ли эта проблема решение K для конкретной матрицы Ляпунова P = I, устанавливает P на I путем ввода

news = setmvar(lmis,P,1)

Получившаяся система LMI news имеет только одну переменную Y = K. Его выполнимость оценена путем вызова feasp:

[tmin,xfeas] = feasp(news) 
Y = dec2mat(news,xfeas,Y)

Вычисленный Y выполним каждый раз, когда tmin < 0.

Смотрите также

|

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