Hi ,

Is there anyone to solve the error of convex file?

thank you…

# Question about convex optimization

**Mark_L_Stone**(Mark L. Stone) #2

You need to provide a much clearer description of your error. I have ni idea what you are talking about,

Perhaps English is not your native language, but if you show a program and the error message, maybe we can provide some help.

**eli**(elahe mastani) #3

I wanted to send the convex file but I can’t.

could you give your’s email address that i send it for you.?

the error is :

Error using * (line 80)

Invalid operand. Variables of type “cvx” cannot be combined with other models.

Error in karimi (line 78)

[(Q-A’*Q*A) (Q*A+MT-X*A)’ (B’*MT-B’*X*A)’ C’;

**Mark_L_Stone**(Mark L. Stone) #4

You can post your code on this forum. We don’t use emails here.

It might help if you show us the output of `whos`

(executed just prior to where the error occurs) , so we will know what things are.

**eli**(elahe mastani) #5

close all

clear all

clc

%%

% parameters contain uncertainty up to 20%

r1 = ureal(‘r1’,-0.1,‘percent’,20)

r2 = ureal(‘r2’,0.5,‘percent’,20)

r3 = ureal(‘r3’,-1.2,‘percent’,20)

r4 = ureal(‘r4’,0.2,‘percent’,20)

% open loop system

Ag =[0 0 -r1;1 0 -r2;0 1 -r3]

Bg = [r4;1;0]; Bw=zeros(3,1)

Cg=[0 0 1]

Cz=[0 0 1]

Dzu=0

Dzw=1

Dw=1

OP = ss(Ag,[Bg Bw],[Cz;Cg],[Dzu Dzw;0 Dw],0.1)

%% step procedure

% ST =epsilion > 0; % small tolerance

% step 1

for i=1:4

for l = 0

if l==0

%initial controller for each vertices

%i=1 first

if i==1

Aci=diag([0.2 0.5 -.3]) ;Bci=[1;0;-1] ;Cci=[0 0 1]; Dci=1;

Ki= ss(Aci,Bci,Cci,Dci,0.1);

else if i==2 %i=2 second

Aci=diag([0.1 -0.2 0.25]) ; Bci=[0;0;1] ;Cci=[0 0 -1] ;Dci=-1;

Ki= ss(Aci,Bci,Cci,Dci,0.1);

else if i==3 %i=3 third

Aci =diag([0.2 0.6 -0.5]) ; Bci=[1;0;0]; Cci=[1 0 0] ;Dci=1;

Ki= ss(Aci,Bci,Cci,Dci,0.1);

else %i=4 forth

Aci = diag([0.4 0.8 -0.2]); Bci=[0;1;1]; Cci=[0 1 0] ;Dci=1;

Ki= ss(Aci,Bci,Cci,Dci,0.1);

end

end

end

else

Aci=ACRi

Bci= BCRi

Cci = CCRi

Dci = DCRi

Ki=ss(ACRi,BCRi,CCRi,DCRi,0.1);

end

if i==1

Agi = [0 0 -r1;0 0 0;0 0 0]

Bgi = zeros(3,1)

```
else if i==2
Agi = [0 0 0;0 0 -r2;0 0 0]
Bgi = zeros(3,1)
else if i==3
Agi =[0 0 0;0 0 0;0 0 -r3]
Bgi = zeros(3,1)
else
end
end
end
Agi = [0 0 0;1 0 0;0 1 0]
Bgi = [-r4;1;0]
% step 2
A =[Agi+Bgi*Dci*Cg Bgi*Cci;Bci*Cg Aci];
B=[Bw+Bgi*Dci*Dw;Bci*Dw]; C=[Cz+Dzu*Dci*Cg Dzu*Cci] ; D=Dzw+Dzu*Dci*Dw;
n = size(A,1);
cvx_begin sdp
variable X(n,n) symmetric;
variable Q(n,n) ;
variable MT(n,n) ;
variable mu
minimize mu
subject to
[(Q-A'*Q*A) (Q*A+MT-X*A)' (B'*MT-B'*X*A)' C';
(Q*A+MT-X*A) 2*X-Q (B'*X)' zeros(n,1);
(B'*MT-B'*X*A) B'*X eye(n,1) D';
C zeros(1,n) D mu*eye(1,1)]<0;
cvx_end
T = inv(chol(X));
M = T'*MT*T;
P =T'*Q*T;
% step 3
m = size(Agi,1);
cvx_begin sdp
variable Aci(m,m) symmetric;
variable Bci(m,1) symmetric;
variable Cci(1,m) symmetric;
variable Dci(1,1) symmetric;
variable mu
minimize mu
subject to
[P-M'*P*M (P*M-M+inv(T)*A*T)' (zeros(1,2))' (C*T)';
P*M-M+inv(T)*A*T 2*eye(n,n)-P inv(T)*B zeros(1,2)';
zeros(1,2) (inv(T)*B)' eye(n,1) D';
C*T zeros(1,2) D mu*eye(1,1)]<0
ACRl=Aci
BCRl= Bci
CCRl=Cci
DCRil= Dci
cvx_end
pause
%step 4
if mu(l-1)-mu(l)>0
l=l+1
else
Kl=ss(ACRl,BCRl,CCRl,DCRl,0.1)
break
end
end
```

end

pause

% S1=[ACR1+jeye(3,3) BCR1;CCR1 DCR1];

% S2=[ACR2+jeye(3,3) BCR2;CCR2 DCR2];

% S3=[ACR3+jeye(3,3) BCR3;CCR3 DCR3];

% S4=[ACR4+jeye(3,3) BCR4;CCR4 DCR4];

% S = psys([S1,S2,S3,S4])

% pause

% Alanda =[Ag+Bg*Dc*Cg Bg*Cc;Bc*Cg Ac];

% Blanda=[Bw+Bg*Dc*Dw;Bc*Dw]; C=[Cz+Dzu*Dc*Cg Dzu*Cc] ; D=Dzw+Dzu*Dc*Dw;

% CL = ss(Alanda,Blanda,C,D,0.1);

% eigen(Alanda) % matrix A is called robustly stable if the magnitude of all its eigen va;ue is less then one for all landa…

**eli**(elahe mastani) #7

Screenshot%20(463)|690x387.

This is the paper that I should simulate it with convex.

**Mark_L_Stone**(Mark L. Stone) #9

You did not show the results of `whos`

, as I requested. However, I suspect the error you are receiving is a result of using `ureal`

(Create uncertain real parameter in robust control toolbox) The ureal items go into Agi and Bgi which go into A and B which are in the “LMI” in which you get the error message. As a result, A and B must be something other than (single or) double precision matrices, and therefore incompatible with CVX expressions.

I dob’t know what you are trying to do with ureal items, but you will have to find a different way to model your problem which does not involve using them in CVX expressions such as constraints.

**eli**(elahe mastani) #10

ureal is for modeling uncertainty.

But how can i model this convex problem. This approach is supposed in the article and I couldn’t find another way to model it.

Do you see the pictures of article that i send it for you.?

this is the way that i should model the problem.

**Mark_L_Stone**(Mark L. Stone) #11

I don’t know how uncertainty enters into your problem, but you can’t use ureal from the Robust Control Toolbox in combination with CVX. How to incorporate uncertainty into your optimization problem is a modeling matter outside the scope of this forum.

**eli**(elahe mastani) #12

so , I should understand that how can i model uncertainty in the problem. Is it correct?

**Mark_L_Stone**(Mark L. Stone) #13

It is your problem. You need to figure out how to model and incorporate whatever uncertainty you think needs to be accounted for,

**eli**(elahe mastani) #15

Hi ,

How are you?

I solved the problem of modeling uncertainty but I have another problem .

can you help me?