-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathforopt.m
32 lines (31 loc) · 862 Bytes
/
foropt.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function [bound_ofUmax,bound_ofUmin,bound_ofYmax,bound_ofYmin,H,M1,M3,C1] = foropt(phi,phi_phi,R,Umax,Umin,Ymax,Ymin,in,out,Np,Nc)
if size(Umax)~=0
bound_ofUmin=[];
bound_ofUmax=[];
for j=1:Nc
bound_ofUmin((j-1)*in+1:j*in,:)=Umin;%[-40.68;-2.102;0];%[-500;-500;-500]
bound_ofUmax((j-1)*in+1:j*in,:)=Umax;%[79.32;4.898;10];%[500;500;500]
end
C1=zeros(Nc*in,in);
C2=zeros(Nc*in,Nc*in);
for j=1:Nc;
C1(in*(j-1)+1:in*j,:)=eye(in,in);
end
for j=1:Nc
C2(in*(j-1)+1:in*Nc,in*(j-1)+1:in*j)=C1(1:in*(Nc-j+1),:);
end
M1=[-C2;C2];
else
M1=[];
end
if size(Ymax)~=0
for j=1:Np
bound_ofYmin((j-1)*out+1:j*out,:)=Ymin;%[-40.68;-2.102;0];%[-500;-500;-500]
bound_ofYmax((j-1)*out+1:j*out,:)=Ymax;%[79.32;4.898;10];%[500;500;500]
end
M3=[-phi;phi];
else
M3=[];
end
H=2*(phi_phi+R*eye(Nc*in,Nc*in));
end