欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
SVPWM實現(xiàn) Matlab軟件編程
[打印本頁]
作者:
78788787
時間:
2018-5-18 19:29
標題:
SVPWM實現(xiàn) Matlab軟件編程
SVPWM編程實現(xiàn)了
0.jpg
(26.25 KB, 下載次數(shù): 21)
下載附件
2018-5-19 03:36 上傳
單片機源程序如下:
% generates switching pulses(iga,igb,igc) to be used in simulink( 100 cycles)
% SVM - 3 level, output from states and t1,t2,t0
clear all
clc;
vdc=300;
vdp = 150;
vdn = -150;
samples = 48;
vsr=0.8*vdc;
ts=0.02/samples;
alpha = 360.0/samples;
ss=samples/6; %samples per sector
step_alp=0;
Tclk = 0.00001; % 10us clock time period.
k=(2*vsr)/(sqrt(3)*vdc)
Tsr = round(ts / Tclk);
for i = 1:samples
j=rem((i-1),ss);
if(i==1 | j==0)
step_alp=alpha;
end
ta1=2*k*ts*sin((60-step_alp)*pi/180.0);
ta2=2*ts*(1-k*sin((step_alp+60)*pi/180.0));
ta3=ts*(1-2*k*sin(step_alp*pi/180.0));
ta4=ts*(2*k*sin(step_alp*pi/180.0)-1);
tb1=ts*(1-2*k*sin((step_alp+60)*pi/180.0));
tb2=2*k*ts*sin(step_alp*pi/180.0);
tb3=ts*(2*k*sin((step_alp+60)*pi/180.0)-1);
tb4=ts*2*k*sin((60-step_alp)*pi/180.0);
tc1=2*k*ts*sin(step_alp*pi/180.0);
tc2=ts*(2*k*sin((60-step_alp)*pi/180.0)-1);
tc3=ts*(2*k*sin((step_alp-60)*pi/180.0)+1);
tc4=2*ts*(1-k*sin((step_alp+60)*pi/180.0));
%sector(1);
if i>=1 & i<=3 %(i>1*ss) & (i<(2*ss+1))
sect_no(i) = 1.2;
if i==1 | i==3
s1(i)=5; s2(i)=17; s3(i)=16; s4(i)=4;
P(i)=ta2/2; q(i)=tb2; r(i)=tc2; s(i)=ta2/2;
else
s1(i)=4; s2(i)=16; s3(i)=17; s4(i)=5;
P(i)=ta2/2; q(i)=tc2; r(i)=tb2; s(i)=ta2/2;
end
elseif i==4 %(i>2*ss) & (i<(3*ss+1))
sect_no(i) = 1.3;
s1(i)=4; s2(i)=7; s3(i)=17; s4(i)=5;
P(i)=ta3/2; q(i)=tc3; r(i)=tb3; s(i)=ta3/2;
elseif i>=5 & i<=8 %(i>3*ss) & (i<(4*ss+1))
sect_no(i)=1.4;
if i==5 | i==7
s1(i)=6; s2(i)=18; s3(i)=17; s4(i)=7;
P(i)=tc4/2; q(i)=ta4; r(i)=tb4; s(i)=tc4/2;
else
s1(i)=7; s2(i)=17; s3(i)=18; s4(i)=6;
P(i)=tc4/2; q(i)=tb4; r(i)=ta4; s(i)=tc4/2;
end
elseif i>=9 & i<=11 %(i>4*ss) & (i<(5*ss+1))
sect_no(i)=2.2;
if i==9 | i==11
s1(i)=6; s2(i)=18; s3(i)=19; s4(i)=7;
P(i)=tc2/2; q(i)=ta2; r(i)=tb2; s(i)=tc2/2;
else
s1(i)=7; s2(i)=19; s3(i)=18; s4(i)=6;
P(i)=tc2/2; q(i)=tb2; r(i)=ta2; s(i)=tc2/2;
end
elseif i==12 %(i>5*ss) & (i<(6*ss+1))
sect_no(i) = 2.3;
s1(i)=9; s2(i)=19; s3(i)=7; s4(i)=8;
P(i)=ta3/2; q(i)=tb3; r(i)=tc3; s(i)=ta3/2;
elseif i>=13 & i<=16 %(i>6*ss) & (i<(7*ss+1))
sect_no(i) = 2.4;
if i==13 |i==15
s1(i)=9; s2(i)=19; s3(i)=20; s4(i)=8;
P(i)=ta4/2; q(i)=tb4; r(i)=tc4; s(i)=ta4/2;
else
s1(i)=8; s2(i)=20; s3(i)=19; s4(i)=9;
P(i)=ta4/2; q(i)=tc4; r(i)=tb4; s(i)=ta4/2;
end
elseif i>=17 & i<=19 %(i>7*ss) & (i<(8*ss+1))
sect_no(i)=3.2;
if i==17 | i==19
s1(i)=9; s2(i)=21; s3(i)=20; s4(i)=8;
P(i)=ta2/2; q(i)=tb2; r(i)=tc2; s(i)=ta2/2;
else
s1(i)=8; s2(i)=20; s3(i)=21; s4(i)=9;
P(i)=ta2/2; q(i)=tc2; r(i)=tb2; s(i)=ta2/2;
end
elseif i==20 %(i>8*ss) & (i<(9*ss+1))
sect_no(i)=3.3;
s1(i)=11; s2(i)=8; s3(i)=21; s4(i)=10;
P(i)=tc3/2; q(i)=ta3; r(i)=tb3; s(i)=tc3/2;
elseif i>=21 & i<=24 %(i>9*ss) & (i<(10*ss+1))
sect_no(i) = 3.4;
if i==21 | i==23
s1(i)=10; s2(i)=22; s3(i)=21; s4(i)=11;
P(i)=tc4/2; q(i)=ta4; r(i)=tb4; s(i)=tc4/2;
else
s1(i)=11; s2(i)=21; s3(i)=22; s4(i)=10;
P(i)=tc4/2; q(i)=tb4; r(i)=ta4; s(i)=tc4/2;
end
elseif i>=25 & i<=27 %(i>10*ss) & (i<(11*ss+1))
sect_no(i)=4.2;
if i==25 |i==27
s1(i)=10; s2(i)=22; s3(i)=23; s4(i)=11;
P(i)=tc2/2; q(i)=ta2; r(i)=tb2; s(i)=tc2/2;
else
s1(i)=11; s2(i)=23; s3(i)=22; s4(i)=10;
P(i)=tc2/2; q(i)=tb2; r(i)=ta2; s(i)=tc2/2;
end
elseif i==28 %(i>11*ss) & (i<(12*ss+1))
sect_no(i)=4.3;
s1(i)=12; s2(i)=23; s3(i)=11; s4(i)=13;
P(i)=ta3/2; q(i)=tb3; r(i)=tc3; s(i)=ta3/2;
elseif i>=29 & i<=32 %(i>12*ss) & (i<(13*ss+1))
sect_no(i)=4.4;
if i==29 | i==31
s1(i)=12; s2(i)=23; s3(i)=24; s4(i)=13;
P(i)=ta4/2; q(i)=tb4; r(i)=tc4; s(i)=ta4/2;
else
s1(i)=13; s2(i)=24; s3(i)=23; s4(i)=12;
p(i)=ta4/2; q(i)=tc4; r(i)=tb4; s(i)=ta4/2;
end
elseif i>=33 & i<=35 %(i>13*ss) & (i<(14*ss+1))
sect_no(i) = 5.2;
if i==33 | i==35
s1(i)=12; s2(i)=25; s3(i)=24; s4(i)=13;
P(i)=ta2/2; q(i)=tb2; r(i)=tc2; s(i)=ta2/2;
else
s1(i)=13; s2(i)=24; s3(i)=25; s4(i)=12;
P(i)=ta2/2; q(i)=tc2; r(i)=tb2; s(i)=ta2/2;
end
elseif i==36 %(i>14*ss) & (i<(15*ss+1))
sect_no(i)=5.3;
s1(i)=12; s2(i)=25; s3(i)=15; s4(i)=13;
P(i)=ta3/2; q(i)=tb3; r(i)=tc3; s(i)=ta3/2;
elseif i>=37 & i<=40 %(i>15*ss) & (i<(16*ss+1))
sect_no(i)=5.4;
if i==37 | i==39
s1(i)=14; s2(i)=26; s3(i)=25; s4(i)=15;
P(i)=tc4/2; q(i)=ta4; r(i)=tb4; s(i)=tc4/2;
else
s1(i)=15; s2(i)=25; s3(i)=26; s4(i)=14;
P(i)=tc4/2; q(i)=tb4; r(i)=ta4; s(i)=tc4/2;
end
elseif i>=41 & i<=43 %(i>17*ss) & (i<(18*ss+1))
sect_no(i)=6.2;
if i==41 | i==43
s1(i)=14; s2(i)=26; s3(i)=27; s4(i)=15;
P(i)=tc2/2; q(i)=ta2; r(i)=tb2; s(i)=tc2/2;
else
s1(i)=15; s2(i)=27; s3(i)=26; s4(i)=14;
P(i)=tc2/2; q(i)=tb2; r(i)=ta2; s(i)=tc2/2;
end
elseif i==44 %(i>18*ss) & (i<(19*ss+1))
sect_no(i)=6.3;
s1(i)=5; s2(i)=27; s3(i)=15; s4(i)=4;
P(i)=ta3/2; q(i)=tb3; r(i)=tc3; s(i)=ta3/2;
else i>=45 & i<=48
sect_no(i) = 6.4;
if i==45 | i==47
s1(i)=5; s2(i)=27; s3(i)=16; s4(i)=4;
P(i)=ta4/2; q(i)=tb4; r(i)=tc4; s(i)=ta4/2;
else
s1(i)=4; s2(i)=16; s3(i)=27; s4(i)=5;
P(i)=ta4/2; q(i)=tc4; r(i)=tb4; s(i)=ta4/2;
end
end
step_alp = step_alp + alpha;
end
iga = []; vao =[];
igb = []; vbo = [];
igc = []; vco = [];
for i = 1:samples
Tp(i) = round(P(i)/Tclk);
Tq(i) = round(q(i)/Tclk);
Tr(i) = round(r(i)/Tclk);
Ts(i) = round(s(i)/Tclk);
for j = 1 : Tp(i)
st(j) = s1(i);
end
for j = (Tp(i) + 1) : (Tp(i) + Tq(i))
st(j) = s2(i);
end
for j = (Tp(i) + Tq(i)+1) : (Tp(i) + Tq(i) + Tr(i))
st(j) = s3(i);
end
for j = (Tp(i) + Tq(i) + Tr(i)+1) : Tsr
st(j) = s4(i);
end
for j = 1 : Tsr
if st(j) == 1
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 2
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; +1]; vco= [vbo ; vdp];
end
if st(j) == 3
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 4
iga = [iga ; 0]; vao = [vao ; 0];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 5
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 6
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 7
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 8
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 9
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 10
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 11
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 12
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 13
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 14
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 15
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 16
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 17
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 18
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 19
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 20
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; -1]; vco= [vco ; vdn];
end
if st(j) == 21
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; 0]; vco= [vco ; 0];
end
if st(j) == 22
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; +1]; vbo= [vbo ; vdp];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 23
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; 0]; vbo= [vbo ; 0];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 24
iga = [iga ; -1]; vao= [vao ; vdn];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 25
iga = [iga ; 0]; vao= [vao ; 0];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 26
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; +1]; vco= [vco ; vdp];
end
if st(j) == 27
iga = [iga ; +1]; vao= [vao ; vdp];
igb = [igb ; -1]; vbo= [vbo ; vdn];
igc = [igc ; 0]; vco= [vco ; 0];
end
end
end
a = 100; %take two cycles in the plot
n = a * size(iga); %caluclte the no of samples in theplotted figgure
step1 = (samples * a * ts) / n(1,1) %caluclate the step size in the figgure for each sample
t = 0:step1:(samples*a*ts-step1); %create the time vector for the figgure for samples upto
%the step before the last sample
iga = [ iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
iga ; iga ; iga ; iga ; iga; iga ; iga; iga; iga; iga;
];
igb = [ igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
igb ; igb; igb; igb; igb; igb ; igb; igb; igb; igb;
];
igc = [ igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
igc ; igc; igc; igc; igc; igc ; igc; igc; igc; igc;
];
復制代碼
所有資料51hei提供下載:
11880608svpwm.rar
(131.01 KB, 下載次數(shù): 20)
2018-5-18 19:27 上傳
點擊文件名下載附件
SVPWM
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1