Clear Filters
Clear Filters

[lmivar, lmiterm]: How to define type 2 decision variables inside other type 3 variables with lmivar and lmiterm when it includes products with other matrices?

7 views (last 30 days)
% A_11, etc. are system matrices defined earlier and are known. They are NOT
% decision variables
N_states = 4
setlmis([])
[X,n,sX] = lmivar(2,[N_states/2 N_states/2]);
[Y,n,sY] = lmivar(2,[N_states/2 N_states/2]);
[A_hat,n,sA_hat] = lmivar(2,[N_states/2 N_states/2]);
[B_F,n,sB_F] = lmivar(2,[N_states/2 1]);
[C_hat,n,sC_hat] = lmivar(2,[1 N_states/2]);
[D_hat,n,sD_hat] = lmivar(2,[1 1]);
[M,n,sM] = lmivar(2,[N_states/2 N_states/2]);
% Reproducable up until this point
% ----------------------------------
[Gamma_A,n,sGamma_A] = lmivar(3,[A_11*sX or A_11*X ???]) % The question is related to this line
The LMIs are denoted in (12) in the lower figure. These include the term which is given in the upper figure. The decision variables are X, Y, , , , , and M.
How would I go about this problem and more specifically, about the product terms (e.g. )?
The second example in https://www.mathworks.com/help/robust/ref/lmivar.html says to use sX defined in the third line of code above. But the example does not take into account product terms and sX contains the indices of the decision variables (right?) so multiplying those by the elements of seems a bit odd. Alternatively, do I multiply with X instead of sX? This is however in contrast to the method in the example. And X is just "1" when I call it in the command window.
Thanks in advance!

Answers (1)

Ayush Aniket
Ayush Aniket on 26 Sep 2023
As per my understanding only the decision variables are defined using the ‘lmivar’ function. The decision variables as mentioned: X,Y,A_hat,B_F,C_hat,D_hat,M are defined properly in the code provided.
The composition of these decision variables with given matrices does not comprise of another decision variable.
[Gamma_A,n,sGamma_A] = lmivar(3,[A_11*sX or A_11*X ???]) % The question is related to this line
Hence, this definition of Gamma_A with the use of ‘lmivar’ function is incorrect.
Instead of this, you should use the ‘lmitermfunction to define these terms as shown in the Examples section of the following documentation page:
After putting all the definitions of and in eq.12 (as in the image attached), each term of the final matrix must be defined separately using proper ‘typeId argument of the ‘lmiterm’ function.
Hope it helps.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!