Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

setmvar

Instantiate matrix variable and evaluate all LMI terms involving this matrix variable

Syntax

mnewsys = setmvar(lmisys,X,Xval)

Description

setmvar sets the matrix variable X with identifier X to the value Xval. All terms involving X are evaluated, the constant terms are updated accordingly, and X is removed from the list of matrix variables. A description of the resulting LMI system is returned in newsys.

The integer X is the identifier returned by lmivar when X is declared. Instantiating X with setmvar does not alter the identifiers of the remaining matrix variables.

The function setmvar is useful to freeze certain matrix variables and optimize with respect to the remaining ones. It saves time by avoiding partial or complete redefinition of the set of LMI constraints.

Examples

Consider the system

= Ax + Bu

and the problem of finding a stabilizing state-feedback law u = Kx where K is an unknown matrix.

By the Lyapunov Theorem, this is equivalent to finding P > 0 and K such that

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

With the change of variable Y := KP, this condition reduces to the LMI

AP + PAT + BY + YTBT + I < 0.

This LMI is entered by the commands

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

To find out whether this problem has a solution K for the particular Lyapunov matrix P = I, set P to I by typing

news = setmvar(lmis,P,1)

The resulting LMI system news has only one variable Y = K. Its feasibility is assessed by calling feasp:

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

The computed Y is feasible whenever tmin < 0.

See Also

|

Introduced before R2006a

Was this topic helpful?