Why my code is not working, showing the error "Illegal use of reserved keyword "elseif"
Parse error: Illegal use of reserved keyword "elseif".
Function 'MATLAB Function' (#23.614.615), line 44, column 5: "e" Launch diagnostic report.
function [SaT, SaB, SbT, SbB, ScT, ScB] = pwm(u) f = 50; ts=0.0002; vdc=1; peak_phase_max = vdc/sqrt(3);
x=u(2);
y=u(3); mag=(u(1)/peak_phase_max) * ts;
% sector I if (x>=0) && (x<pi/3)
ta = mag * sin(pi/3-x); tb = mag * sin(x); t0 =(ts-ta-tb); t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1);
v1=[0 1 1 1 1 1 0]; v2=[0 0 1 1 1 0 0]; v3=[0 0 0 1 0 0 0]; for j=1:7 if(y<t1(j)) break end end SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j);
end
% sector II elseif (x>=pi/3) && (x<2*pi/3)
adv= x-pi/3; tb = mag * sin(pi/3-adv); ta = mag * sin(adv); t0 =(ts-ta-tb);
t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1);
v1=[0 0 1 1 1 0 0]; v2=[0 1 1 1 1 1 0]; v3=[0 0 0 1 0 0 0];
for j=1:7 if(y<t1(j)) break end end
SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j);
end %sector III
elseif (x>=2*pi/3) && (x<pi)
adv=x-2*pi/3;
ta = mag * sin(pi/3-adv);
tb = mag * sin(adv);
t0 =(ts-ta-tb);t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1); v1=[0 0 0 1 0 0 0]; v2=[0 1 1 1 1 1 0]; v3=[0 0 1 1 1 0 0]; for j=1:7 if(y<t1(j)) break end end SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j); end
%sector IV
elseif (x>=-pi) && (x<-2*pi/3)
adv = x + pi;
tb= mag * sin(pi/3 - adv); ta = mag * sin(adv); t0 =(ts-ta-tb);
t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1); v1=[0 0 0 1 0 0 0]; v2=[0 0 1 1 1 0 0]; v3=[0 1 1 1 1 1 0];
for j=1:7 if(y<t1(j)) break end end
SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j);
end % sector V
elseif (x>=-2*pi/3) && (x<-pi/3)
adv = x+2*pi/3;
ta = mag * sin(pi/3-adv); tb = mag * sin(adv); t0 =(ts-ta-tb);
t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1); v1=[0 0 1 1 1 0 0]; v2=[0 0 0 1 0 0 0]; v3=[0 1 1 1 1 1 0];
for j=1:7 if(y<t1(j)) break end end
SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j);
end
%Sector VI (x>=-pi/3) && (x<0)
else
adv = x+pi/3; tb = mag * sin(pi/3-adv); ta = mag * sin(adv); t0 =(ts-ta-tb);
t1=[t0/4 ta/2 tb/2 t0/2 tb/2 ta/2 t0/4]; t1=cumsum(t1); v1=[0 1 1 1 1 1 0]; v2=[0 0 0 1 0 0 0]; v3=[0 0 1 1 1 0 0]; for j=1:7 if(y<t1(j)) break end end SaT = v1(j); SaB = 1-v1(j); SbT = v2(j); SbB = 1-v2(j); ScT = v3(j); ScB = 1-v3(j); end
Réponses (2)
0 votes
1 commentaire
Catégories
En savoir plus sur Software Development dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!