📄 f1236734067.m
字号:
function []=induction_motor()
%电机参数
Rs=3.712; Rr=2.789;M=0.295; Ls=0.311; Lr=0.311;
sigma=1-M*M/(Ls*Lr);p=2.0; J=0.003;
%状态方程中的系数
a11a=-Rs/(sigma*Ls); a11b=-(1-sigma)/sigma;a12a=M*Rr/(sigma*Ls*Lr);a12b=-M/(sigma*Ls);
a21a=M*Rs/(sigma*Ls*Lr); a21b=M/(sigma*Lr); a22a=-Rr/(sigma*Lr); a22b=1/sigma;
b1=1/(sigma*Ls); b2=(1-sigma)/(sigma*M);
%初始和给定值
T_L=10.65; n_rpm=1440; omega_re=1440*p*pi/30; % [N.m], [r/min],[rad/s]
i_alphas=3.6846; i_betas=5.1631; i_alphar=0; i_betar=-4.8975; omegat=1.6678;
omega=100*pi; Vs=220; T_e=10.65;theta=0; % 三相电源电压的角频率和有效值
v_us=sqrt(2)*Vs*cos(omegat);v_vs=sqrt(2)*Vs*cos(omegat-2*pi/3);v_ws=-v_us-v_vs;
v_as=sqrt(2/3)*(v_us-1/2*v_vs-1/2*v_ws);v_bs=sqrt(1/2)*(v_vs-v_ws);
v_alphas=v_as;v_betas=v_bs;
i_as=i_alphas; i_bs=i_betas; i_ar=i_alphar; i_br=i_betar;
i_us=sqrt(2/3)*i_as;i_vs=sqrt(2/3)*(-1/2*i_as+sqrt(3)/2*i_bs);i_ws=-i_us-i_vs;
i_ur=sqrt(2/3)*i_ar;i_vr=sqrt(2/3)*(-1/2*i_ar+sqrt(3)/2*i_br);i_wr=-i_ur-i_vr;
i_s=i_alphas+j*i_betas; i_r=i_alphar+j*i_betar; v_s=v_alphas+j*v_betas;
%运行时间、采样周期
timer_m=0.000001; %电流计算所需时间间隔
timer1=0.0001; %采样周期
time_sigma=0.1; %总运行时间
K_root=timer1/timer_m; %每采样周期内的计算电流反复次数
K_root1=time_sigma/timer1; %总采样点数
%为画图,预留数据空间
n_point=K_root1+1;
y_timer=zeros(n_point,1);
y_vus=y_timer; y_vvs=y_timer; y_vws=y_timer;
y_vas=y_timer; y_vbs=y_timer;y_vMs=y_timer; y_vTs=y_timer;
y_ius=y_timer; y_ivs=y_timer; y_iws=y_timer;
y_ias=y_timer; y_ibs=y_timer;y_iMs=y_timer; y_iTs=y_timer;
y_iur=y_timer; y_ivr=y_timer; y_iwr=y_timer;
y_iar=y_timer; y_ibr=y_timer;y_iMr=y_timer; y_iTr=y_timer;
y_Te=y_timer; y_nrpm=y_timer; y_theta=y_timer;
%初始值代入数据库中
y_timer=0:timer1:time_sigma;
y_vus(1,1)=v_us; y_vvs(1,1)=v_vs;y_vws(1,1)=v_ws;
y_vas(1,1)=v_as; y_vbs(1,1)=v_bs;y_valphas(1,1)=v_alphas; y_vbetas(1,1)=v_betas;
y_ius(1,1)=i_us; y_ivs(1,1)=i_vs;y_iws(1,1)=i_ws;
y_ias(1,1)=i_as; y_ibs(1,1)=i_bs;y_ialphas(1,1)=i_alphas; y_ibetas(1,1)=i_betas;
y_iur(1,1)=i_ur; y_ivr(1,1)=i_vr;y_iwr(1,1)=i_wr;
y_iar(1,1)=i_ar; y_ibr(1,1)=i_br;y_ialphar(1,1)=i_alphar; y_ibetar(1,1)=i_betar;
y_Te(1,1)=T_e; y_nrpm(1,1)=n_rpm; y_theta(1,1)=theta;
%-----------
for s1=1:1:K_root1
for s2=1:1:K_root
omegat=omegat+omega*timer_m;
if omegat>2.0*pi
omegat=omegat-2.0*pi;
end
v_us=sqrt(2)*Vs*cos(omegat);v_vs=sqrt(2)*Vs*cos(omegat-2*pi/3);v_ws=-v_us-v_vs;
v_as=sqrt(2/3)*(v_us-1/2*v_vs-1/2*v_ws);v_bs=sqrt(1/2)*(v_vs-v_ws);
v_alphas=v_as;v_betas=v_bs;v_s=v_alphas+j*v_betas;
dis=(a11a+j*a11b*omega_re)*i_s+(a12a+j*a12b*omega_re)*i_r+b1*v_s;
dir=(a21a+j*a21b*omega_re)*i_s+(a22a+j*a22b*omega_re)*i_r-b2*v_s;
i_s=i_s+dis*timer_m; i_r=i_r+dir*timer_m;
T_e=p*M*imag(i_s*i_r');
if (omega_re<=0.0)&(T_e<=T_L)
omega_re=0.0;
else
omega_re=omega_re+p*timer_m/J*(T_e-T_L);
end
theta=theta+omega_re/p*timer_m;
if theta>2.0*pi
theta=theta-2.0*pi;
end
end
i_alphas=real(i_s); i_betas=imag(i_s); i_alphar=real(i_r); i_betar=imag(i_r);
i_as=i_alphas; i_bs=i_betas; i_ar=i_alphar*cos(p*theta)+i_betar*sin(p*theta);
i_br=-i_alphar*sin(p*theta)+i_betar*cos(p*theta);
i_us=sqrt(2/3)*i_as;i_vs=sqrt(2/3)*(-1/2*i_as+sqrt(3)/2*i_bs);i_ws=-i_us-i_vs;
i_ur=sqrt(2/3)*i_ar;i_vr=sqrt(2/3)*(-1/2*i_ar+sqrt(3)/2*i_br);i_wr=-i_ur-i_vr;
y_vus(s1+1,1)=v_us; y_vvs(s1+1,1)=v_vs;y_vws(s1+1,1)=v_ws;
y_vas(s1+1,1)=v_as; y_vbs(s1+1,1)=v_bs;y_valphas(s1+1,1)=v_alphas; y_vbetas(s1+1,1)=v_betas;
y_ius(s1+1,1)=i_us; y_ivs(s1+1,1)=i_vs;y_iws(s1+1,1)=i_ws;
y_ias(s1+1,1)=i_as; y_ibs(s1+1,1)=i_bs;y_ialphas(s1+1,1)=i_alphas; y_ibetas(s1+1,1)=i_betas;
y_iur(s1+1,1)=i_ur; y_ivr(s1+1,1)=i_vr;y_iwr(s1+1,1)=i_wr;
y_iar(s1+1,1)=i_ar; y_ibr(s1+1,1)=i_br;y_ialphar(s1+1,1)=i_alphar; y_ibetar(s1+1,1)=i_betar;
y_Te(s1+1,1)=T_e; y_nrpm(s1+1,1)=omega_re*30/(p*pi); y_theta(s1+1,1)=theta;
end
figure(1)
subplot(311);
plot(y_timer,y_vus,y_timer,y_vvs,y_timer,y_vws)
subplot(312);
plot(y_timer,y_ius,y_timer,y_ivs,y_timer,y_iws)
subplot(313);
plot(y_timer,y_iur,y_timer,y_ivr,y_timer,y_iwr)
figure(2)
subplot(311);
plot(y_timer,y_vas,y_timer,y_vbs)
subplot(312);
plot(y_timer,y_ias,y_timer,y_ibs)
subplot(313);
plot(y_timer,y_iar,y_timer,y_ibr)
figure(3)
subplot(311);
plot(y_timer,y_valphas,y_timer,y_vbetas)
subplot(312);
plot(y_timer,y_ialphas,y_timer,y_ibetas)
subplot(313);
plot(y_timer,y_ialphar,y_timer,y_ibetar)
figure(4)
subplot(311);
plot(y_timer,y_Te)
subplot(312);
plot(y_timer,y_nrpm)
subplot(313);
plot(y_timer,y_theta)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -