Professional Documents
Culture Documents
clear all
L=
Ts =
R=
I = 10 ;
Vdc = 1200; C = 2000e-6;
f = 50 ;
ws = 2*pi*f;
%-------- theta
teta(k+1) = atan(v_beta_ref(k)/v_alpha_ref(k));
if Vp(k+1)>=Vn(k+1)
%***************** first sector
if sec(k) == 1
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,3); sb_123(2) = states(2,3); sc_123(2) = states(3,3);
sa_123(3) = states(1,5); sb_123(3) = states(2,5); sc_123(3) = states(3,5);
end
if reg(k+1) == 2;
sa_123(1) = states(1,3); sb_123(1) = states(2,3); sc_123(1) = states(3,3);
sa_123(2) = states(1,5); sb_123(2) = states(2,5); sc_123(2) = states(3,5);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
if reg(k+1) == 3;
sa_123(1) = states(1,17); sb_123(1) = states(2,17); sc_123(1) = states(3,17);
sa_123(2) = states(1,5); sb_123(2) = states(2,5); sc_123(2) = states(3,5);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
if reg(k+1) == 4;
sa_123(1) = states(1,3); sb_123(1) = states(2,3); sc_123(1) = states(3,3);
sa_123(2) = states(1,15); sb_123(2) = states(2,15); sc_123(2) = states(3,15);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
%****************** Second sector
elseif sec(k) == 2
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,5); sb_123(2) = states(2,5); sc_123(2) = states(3,5);
sa_123(3) = states(1,7); sb_123(3) = states(2,7); sc_123(3) = states(3,7);
end
if reg(k+1) == 2;
sa_123(1) = states(1,5); sb_123(1) = states(2,5); sc_123(1) = states(3,5);
sa_123(2) = states(1,7); sb_123(2) = states(2,7); sc_123(2) = states(3,7);
sa_123(3) = states(1,18); sb_123(3) = states(2,18); sc_123(3) = states(3,18);
end
if reg(k+1) == 3;
sa_123(1) = states(1,7); sb_123(1) = states(2,7); sc_123(1) = states(3,7);
sa_123(2) = states(1,18); sb_123(2) = states(2,18); sc_123(2) = states(3,18);
sa_123(3) = states(1,19); sb_123(3) = states(2,19); sc_123(3) = states(3,19);
end
if reg(k+1) == 4;
sa_123(1) = states(1,5); sb_123(1) = states(2,5); sc_123(1) = states(3,5);
sa_123(2) = states(1,7); sb_123(2) = states(2,7); sc_123(2) = states(3,7);
sa_123(3) = states(1,18); sb_123(3) = states(2,18); sc_123(3) = states(3,18);
end
%**************** third sector
elseif sec(k) == 3
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,7); sb_123(2) = states(2,7); sc_123(2) = states(3,7);
sa_123(3) = states(1,9); sb_123(3) = states(2,9); sc_123(3) = states(3,9);
end
if reg(k+1) == 2;
sa_123(1) = states(1,7); sb_123(1) = states(2,7); sc_123(1) = states(3,7);
sa_123(2) = states(1,9); sb_123(2) = states(2,9); sc_123(2) = states(3,9);
sa_123(3) = states(1,10); sb_123(3) = states(2,10); sc_123(3) = states(3,10);
end
if reg(k+1) == 3;
sa_123(1) = states(1,9); sb_123(1) = states(2,9); sc_123(1) = states(3,9);
sa_123(2) = states(1,20); sb_123(2) = states(2,20); sc_123(2) = states(3,20);
sa_123(3) = states(1,21); sb_123(3) = states(2,21); sc_123(3) = states(3,21);
end
if reg(k+1) == 4;
sa_123(1) = states(1,7); sb_123(1) = states(2,7); sc_123(1) = states(3,7);
sa_123(2) = states(1,19); sb_123(2) = states(2,19); sc_123(2) = states(3,19);
sa_123(3) = states(1,20); sb_123(3) = states(2,20); sc_123(3) = states(3,20);
end
%************ fourth sector
elseif sec(k) == 4
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,9); sb_123(2) = states(2,9); sc_123(2) = states(3,9);
sa_123(3) = states(1,11); sb_123(3) = states(2,11); sc_123(3) = states(3,11);
end
if reg(k+1) == 2;
sa_123(1) = states(1,9); sb_123(1) = states(2,9); sc_123(1) = states(3,9);
sa_123(2) = states(1,11); sb_123(2) = states(2,11); sc_123(2) = states(3,11);
sa_123(3) = states(1,22); sb_123(3) = states(2,22); sc_123(3) = states(3,22);
end
if reg(k+1) == 3;
sa_123(1) = states(1,11); sb_123(1) = states(2,11); sc_123(1) = states(3,11);
sa_123(2) = states(1,22); sb_123(2) = states(2,22); sc_123(2) = states(3,22);
sa_123(3) = states(1,23); sb_123(3) = states(2,23); sc_123(3) = states(3,23);
end
if reg(k+1) == 4;
sa_123(1) = states(1,9); sb_123(1) = states(2,9); sc_123(1) = states(3,9);
sa_123(2) = states(1,21); sb_123(2) = states(2,21); sc_123(2) = states(3,21);
sa_123(3) = states(1,22); sb_123(3) = states(2,22); sc_123(3) = states(3,22);
end
%******** fifth sector
elseif sec(k) == 5
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,11); sb_123(2) = states(2,11); sc_123(2) = states(3,11);
sa_123(3) = states(1,13); sb_123(3) = states(2,13); sc_123(3) = states(3,13);
end
if reg(k+1) == 2;
sa_123(1) = states(1,11); sb_123(1) = states(2,11); sc_123(1) = states(3,11);
sa_123(2) = states(1,13); sb_123(2) = states(2,13); sc_123(2) = states(3,13);
sa_123(3) = states(1,24); sb_123(3) = states(2,24); sc_123(3) = states(3,24);
end
if reg(k+1) == 3;
sa_123(1) = states(1,13); sb_123(1) = states(2,13); sc_123(1) = states(3,13);
sa_123(2) = states(1,24); sb_123(2) = states(2,24); sc_123(2) = states(3,24);
sa_123(3) = states(1,25); sb_123(3) = states(2,25); sc_123(3) = states(3,25);
end
if reg(k+1) == 4;
sa_123(1) = states(1,11); sb_123(1) = states(2,11); sc_123(1) = states(3,11);
sa_123(2) = states(1,23); sb_123(2) = states(2,23); sc_123(2) = states(3,23);
sa_123(3) = states(1,24); sb_123(3) = states(2,24); sc_123(3) = states(3,24);
end
% ------------- sixth sctor
elseif sec(k) == 6
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,3); sb_123(2) = states(2,3); sc_123(2) = states(3,3);
sa_123(3) = states(1,13); sb_123(3) = states(2,13); sc_123(3) = states(3,13);
end
if reg(k+1) == 2;
sa_123(1) = states(1,3); sb_123(1) = states(2,3); sc_123(1) = states(3,3);
sa_123(2) = states(1,5); sb_123(2) = states(2,5); sc_123(2) = states(3,5);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
if reg(k+1) == 3;
sa_123(1) = states(1,3); sb_123(1) = states(2,3); sc_123(1) = states(3,3);
sa_123(2) = states(1,13); sb_123(2) = states(2,13); sc_123(2) = states(3,13);
sa_123(3) = states(1,26); sb_123(3) = states(2,26); sc_123(3) = states(3,26);
end
if reg(k+1) == 4;
sa_123(1) = states(1,3); sb_123(1) = states(2,3); sc_123(1) = states(3,3);
sa_123(2) = states(1,15); sb_123(2) = states(2,15); sc_123(2) = states(3,15);
sa_123(3) = states(1,26); sb_123(3) = states(2,26); sc_123(3) = states(3,26);
end
end
end
%---------------------Vp < Vn
if Vp(k+1)<Vn(k+1)
%***************** first sector
if sec(k) == 1
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,4); sb_123(2) = states(2,4); sc_123(2) = states(3,4);
sa_123(3) = states(1,6); sb_123(3) = states(2,6); sc_123(3) = states(3,6);
end
if reg(k+1) == 2;
sa_123(1) = states(1,4); sb_123(1) = states(2,4); sc_123(1) = states(3,4);
sa_123(2) = states(1,6); sb_123(2) = states(2,6); sc_123(2) = states(3,6);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
if reg(k+1) == 3;
sa_123(1) = states(1,6); sb_123(1) = states(2,6); sc_123(1) = states(3,6);
sa_123(2) = states(1,16); sb_123(2) = states(2,16); sc_123(2) = states(3,16);
sa_123(3) = states(1,17); sb_123(3) = states(2,17); sc_123(3) = states(3,17);
end
if reg(k+1) == 4;
sa_123(1) = states(1,4); sb_123(1) = states(2,4); sc_123(1) = states(3,4);
sa_123(2) = states(1,15); sb_123(2) = states(2,15); sc_123(2) = states(3,15);
sa_123(3) = states(1,16); sb_123(3) = states(2,16); sc_123(3) = states(3,16);
end
%****************** Second sector
elseif sec(k) == 2
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,6); sb_123(2) = states(2,6); sc_123(2) = states(3,6);
sa_123(3) = states(1,8); sb_123(3) = states(2,8); sc_123(3) = states(3,8);
end
if reg(k+1) == 2;
sa_123(1) = states(1,6); sb_123(1) = states(2,6); sc_123(1) = states(3,6);
sa_123(2) = states(1,8); sb_123(2) = states(2,8); sc_123(2) = states(3,8);
sa_123(3) = states(1,18); sb_123(3) = states(2,18); sc_123(3) = states(3,18);
end
if reg(k+1) == 3;
sa_123(1) = states(1,8); sb_123(1) = states(2,8); sc_123(1) = states(3,8);
sa_123(2) = states(1,18); sb_123(2) = states(2,18); sc_123(2) = states(3,18);
sa_123(3) = states(1,19); sb_123(3) = states(2,19); sc_123(3) = states(3,19);
end
if reg(k+1) == 4;
sa_123(1) = states(1,6); sb_123(1) = states(2,6); sc_123(1) = states(3,6);
sa_123(2) = states(1,17); sb_123(2) = states(2,17); sc_123(2) = states(3,17);
sa_123(3) = states(1,18); sb_123(3) = states(2,18); sc_123(3) = states(3,18);
end
%**************** third sector
elseif sec(k) == 3
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,8); sb_123(2) = states(2,8); sc_123(2) = states(3,8);
sa_123(3) = states(1,10); sb_123(3) = states(2,10); sc_123(3) = states(3,10);
end
if reg(k+1) == 2;
sa_123(1) = states(1,8); sb_123(1) = states(2,8); sc_123(1) = states(3,8);
sa_123(2) = states(1,10); sb_123(2) = states(2,10); sc_123(2) = states(3,10);
sa_123(3) = states(1,20); sb_123(3) = states(2,20); sc_123(3) = states(3,20);
end
if reg(k+1) == 3;
sa_123(1) = states(1,10); sb_123(1) = states(2,10); sc_123(1) = states(3,10);
sa_123(2) = states(1,20); sb_123(2) = states(2,20); sc_123(2) = states(3,20);
sa_123(3) = states(1,21); sb_123(3) = states(2,21); sc_123(3) = states(3,21);
end
if reg(k+1) == 4;
sa_123(1) = states(1,8); sb_123(1) = states(2,8); sc_123(1) = states(3,8);
sa_123(2) = states(1,19); sb_123(2) = states(2,19); sc_123(2) = states(3,19);
sa_123(3) = states(1,20); sb_123(3) = states(2,20); sc_123(3) = states(3,20);
end
%************ fourth sector
elseif sec(k) == 4
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,10); sb_123(2) = states(2,10); sc_123(2) = states(3,10);
sa_123(3) = states(1,12); sb_123(3) = states(2,12); sc_123(3) = states(3,12);
end
if reg(k+1) == 2;
sa_123(1) = states(1,10); sb_123(1) = states(2,10); sc_123(1) = states(3,10);
sa_123(2) = states(1,12); sb_123(2) = states(2,12); sc_123(2) = states(3,12);
sa_123(3) = states(1,22); sb_123(3) = states(2,22); sc_123(3) = states(3,22);
end
if reg(k+1) == 3;
sa_123(1) = states(1,12); sb_123(1) = states(2,12); sc_123(1) = states(3,12);
sa_123(2) = states(1,22); sb_123(2) = states(2,22); sc_123(2) = states(3,22);
sa_123(3) = states(1,23); sb_123(3) = states(2,23); sc_123(3) = states(3,23);
end
if reg(k+1) == 4;
sa_123(1) = states(1,10); sb_123(1) = states(2,10); sc_123(1) = states(3,10);
sa_123(2) = states(1,21); sb_123(2) = states(2,21); sc_123(2) = states(3,21);
sa_123(3) = states(1,22); sb_123(3) = states(2,22); sc_123(3) = states(3,22);
end
%******** fifth sector
elseif sec(k) == 5
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,12); sb_123(2) = states(2,12); sc_123(2) = states(3,12);
sa_123(3) = states(1,14); sb_123(3) = states(2,14); sc_123(3) = states(3,14);
end
if reg(k+1) == 2;
sa_123(1) = states(1,12); sb_123(1) = states(2,12); sc_123(1) = states(3,12);
sa_123(2) = states(1,14); sb_123(2) = states(2,14); sc_123(2) = states(3,14);
sa_123(3) = states(1,24); sb_123(3) = states(2,24); sc_123(3) = states(3,24);
end
if reg(k+1) == 3;
sa_123(1) = states(1,14); sb_123(1) = states(2,14); sc_123(1) = states(3,14);
sa_123(2) = states(1,24); sb_123(2) = states(2,24); sc_123(2) = states(3,24);
sa_123(3) = states(1,25); sb_123(3) = states(2,25); sc_123(3) = states(3,25);
end
if reg(k+1) == 4;
sa_123(1) = states(1,12); sb_123(1) = states(2,12); sc_123(1) = states(3,12);
sa_123(2) = states(1,23); sb_123(2) = states(2,23); sc_123(2) = states(3,23);
sa_123(3) = states(1,24); sb_123(3) = states(2,24); sc_123(3) = states(3,24);
end
% ------------- sixth sctor
elseif sec(k) == 6
if reg(k+1) == 1;
sa_123(1) = states(1,1); sb_123(1) = states(2,1); sc_123(1) = states(3,1);
sa_123(2) = states(1,4); sb_123(2) = states(2,4); sc_123(2) = states(3,4);
sa_123(3) = states(1,14); sb_123(3) = states(2,14); sc_123(3) = states(3,14);
end
if reg(k+1) == 2;
sa_123(1) = states(1,4); sb_123(1) = states(2,4); sc_123(1) = states(3,4);
sa_123(2) = states(1,14); sb_123(2) = states(2,14); sc_123(2) = states(3,14);
sa_123(3) = states(1,26); sb_123(3) = states(2,26); sc_123(3) = states(3,26);
end
if reg(k+1) == 3;
sa_123(1) = states(1,4); sb_123(1) = states(2,4); sc_123(1) = states(3,4);
sa_123(2) = states(1,15); sb_123(2) = states(2,15); sc_123(2) = states(3,15);
sa_123(3) = states(1,26); sb_123(3) = states(2,26); sc_123(3) = states(3,26);
end
if reg(k+1) == 4;
sa_123(1) = states(1,14); sb_123(1) = states(2,14); sc_123(1) = states(3,14);
sa_123(2) = states(1,25); sb_123(2) = states(2,25); sc_123(2) = states(3,25);
sa_123(3) = states(1,26); sb_123(3) = states(2,26); sc_123(3) = states(3,26);
end
end
end
g_opt = inf;
for j = 1:3
g = abs(v_alpha_ref(k+1)-v_alpha_pre(j))+abs(v_beta_ref(k+1)-v_beta_pre(j));
if g<g_opt
g_opt = g;
j_opt = j;
end
end