Sunteți pe pagina 1din 20

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%% ALGORITMO DESARROLLADO %%
%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Diseo de Optimizacionde motor jaula de ardilla de FERNANDO LOZANO
%%%%
%%%%%%%%%%% UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%% ESCUELA PROFESIONAL INGENIERIA ELECTRICA %%
%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2017 %%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%% MATLAB 2013 b %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%

clc
clear all
close all

%%%% 3ph,%f750Sq.Cage IM wth Sq.Cage Rotor

KW=30;
V=440;
f=50;
P=6;
Vph=V;
pr=6; % polo de referencia , en este caso utilizaremos para pragramar la
condicional if %
p=P/2;

f2=fopen('Optimal_30KW_Output.m', 'w');
%----------------Standard Curves/Tables for%Data-------------------------->

SKW=[1 2 5 10 20 50 100 500];


SBav=[0.35 0.38 0.42 0.46 0.48 0.50 0.51 .53];
Sq=[16000 19000 23000 25000 26000 29000 31000 33000];

%Tabla 7.2 del libro de disenio de maquinas murthy, valores aproximados de


%factor de potencia para 4 polos , 6 polos o 8 polos(determinado en la parte
excel JA1)
SKWa=[5 10 20 50 100 200 500];

SPF6P=[0.82 0.83 0.85 0.87 0.89 0.9 0.92]; % a 1000rpm


SEFF6P=[0.83 0.85 0.87 0.89 0.91 0.92 0.93] ; % a 1000rpm

SPF4P=[0.85 0.86 0.88 0.9 0.91 .92 .93]; % a 1500rpm


SEFF4P=[.85 .87 .88 .9 .91 .93 .94] ; % a 1500rpm

SPF8P=[0.81 0.82 0.84 0.86 0.88 0.89 0.91]; % a 750rpm


SEFF8P=[0.82 0.84 0.86 0.88 0.9 0.91 0.92]; % a 750rpm

%------------------BH Curve for--0.5mm,LOHYS Quality---------------------->

BB=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2];
H=[50 65 70 80 90 100 110 120 150 180 220 295 400 580 1000 2400 5000
8900 15000 24000];

%----------------Carters Coefft for Air Gap------------------------------->

Ratio=[0 1 2 3 4 5 6 7 8 9 10 11 12];
CC=[0 0.18 0.33 0.45 0.53 0.6 0.66 0.71 0.75 0.79 0.82 0.86 0.89];

CCl=[0 0.14 0.27 0.37 0.44 0.5 0.54 0.58 0.62 0.65 0.68 0.69 0.7];

%<------------------------Main Dimensions--------------------------------->
%Specification -------------Input Data------------------------------------>

fprintf(f2,'insW Hw HL insH nvd bvd ki Bc Zr kwr cdb Tb cde dd Brc sn Ml M2 M3


M4 EFFmax minKgPkw minTr minIOby');

fprintf(f2,'---- -- -- ---- --- --- -- -- -- --- --- -- --- -- --- -- -- -- -- -- ------ -------- -----
-------');

insW=3.4;
Hw=4;
HL=1;
insH=6;
nvd=2;
ki=0.92;
Bc=1.35;
Zr=1;
kwr=1;
cdb=6;
Tb=6;
cde=6;
dd=0.05;
Brc=1.35;
sn=0;
Ml=0;
M2=0;
M3=0;
M4=0;
EFFmax=90;
minKgPkw=9;
minTr=75;
minIObyI=5;

%Assumptions

Bav=interp1(SKW,SBav,KW, 'spline');
q=interp1(SKW,Sq,KW, 'spline');

Kw=0.955;
bvd=10;
Tstrip=1.9;
insS=0.5;
Lme=0,8755;

%Tabla 7.4 del libro de disenio de maquinas murthy, valores aproximados de


%de la densidad de corriente del estator.
SD=[100 150 200 300 400 500 750 1000];
SCDSW=[4 3.8 3.6 3.5 3.5 3.5 3.5 3.5];

%Figura 7.1 del libro de disenio de maquinas murthy, perdidas del nucleo
%por cada 0.5mm de apilado
B=[0.8 1.2 1.6 2 2.4];
WpKg=[7 15 24 34 50];
for p=4:2:10;

if p<pr
pf=interp1(SKWa,SPF4P,KW, 'spline');
elseif p==pr
pf=interp1(SKWa,SPF6P,KW, 'spline');
elseif p>pr
pf=interp1(SKWa,SPF8P,KW, 'spline');
end

if p<pr
eff=interp1(SKWa,SEFF4P,KW, 'spline');
elseif p==pr
eff=interp1(SKWa,SEFF6P,KW, 'spline');
elseif p>pr
eff=interp1(SKWa,SEFF8P,KW, 'spline');
end

%%%

KWinp=KW/eff;

Iph=((KWinp*10^3)/(3*Vph*pf));

Ns=120*(f/p);
ns=Ns/60;

CO=11*Kw*Bav*q*eff*pf*(1/1000);
DsqL=((1/CO)*(KW/ns));
Ll=sqrt(DsqL/(0.135^2*p^2));
L=floor(Ll*100)*10;

Ls=(L-nvd*bvd);
Li=ki*Ls;

Dl=sqrt(DsqL/(L/1000));
D=ceil(Dl*100)*10;

PP=pi*(D/p);

LbyPP=L/PP;

if LbyPP < 0.8 && LbyPP > 2


disp ('OK: LbyPP su Rango esta entre 0.8 y 2');
else
disp ('ERROR: LbyPP su Rango No esta entre 0.8 y 2');
end

v=pi*D*(ns/1000);

if v > 30
disp ('OK: v es mayor que 30');
else
disp ('ERROR: v NO es mayor que 30');
end

FI=pi*(D/P)*L*(Bav/(10^6));
Tphi=((Vph)/(4.44*f*FI*Kw));
CDSW=interp1(SD,SCDSW,D,'spline');

for CDSW=3:0.5:5;
Asl=Iph/CDSW;

for spp=3:1:5;
S=spp*P*3;
SPitch=pi*D/S;
if SPitch < 18 && SPitch >= 25
disp ('OK: SPitch su Rango esta entre 18 y 25');
else
disp ('ERROR: SPitch su Rango No esta entre 18 y 25');
end

Zphi=2*Tphi;
sph=S/3;
Zsl=Zphi/sph;

Zs=ceil(Zsl);
Tph=Zs*(sph/2);

FI=(Vph/(4.44*f*Tph*Kw)); %

for Tstrip=1:0.1:2;
Hstripl=Asl/Tstrip;
Hstrip=ceil(Hstripl*2)/2;
WbyT=Hstrip/Tstrip;

%Condicional para verificar las altura por ancho(Height/Width) lies , esta


%entre el rango de lo deseado para el correcto disenio.
if (WbyT<=3.5 && WbyT>2.5)
disp ('OK: Rango del cociente altura/ancho de la ranura esta entre 2.5 y
3.5');
else
disp ('ERROR: Rango del cociente altura/ancho de la ranura NO esta entre
2.5 y 3.5');
end

As=0.967*Hstrip*Tstrip;

for Zsw=1:1:4;

Ws=(Zsw*(Tstrip+insS)+insW);
Zsh=Zs/Zsw;

Hs=(Zsh*(Hstrip+insS)+Hw+HL+insH+2);
Dl3=D+(2/3)*Hs;

sp13=pi*Dl3/S;
Wtl3=sp13-Ws;

Atl3=Li*Wtl3;
Bl3= (FI*P*10^6)/(Atl3*S);
Btmax=0.7*Bl3;

if Btmax > 1.8 && Btmax < 1.4


disp ('OK: Btmax su Rango esta entre 1.4 y 1.8');
else
disp ('ERROR: Btmax su Rango No esta entre 1.4 y 1.8');
end
Lmt=(2*L+2.3*PP+240)/1000;
Rph=0.021*Lmt*(Tph/As);

Pcus=3*(Iph^2)*Rph;
Wcus=Lmt*Tph*3*As*(8.9/1000);

Fic=FI/2;
Ac=Fic*(10^6/Bc);
Hc=Ac/Li;

DOl=D+2*(Hs+Hc);
DO=ceil(DOl/10)*10;

Hc=((DO-D)/(2))-Hs;
Wt=Atl3*S*Hs*(7.8/10^6);

Drncs=D+2*Hs+Hc;
Wc=Ac*pi*Drncs*(7.8/10^6);

PitpKg=interp1(B,WpKg,Btmax,'spline');
PicpKg=interp1(B,WpKg,Bc,'spline');

Pit=PitpKg*Wt;
Pic=PicpKg*Wc;

%--------------------------------ROTOR------------------------------------>

kws=Kw;
Ss=S;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
operado=((D)*(L/10^6));
raiz=sqrt(operado);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Lgl=(0.2 + 2*raiz); % determinando la longitud del entrehierro


operado1=(Lgl*100);
Lg1=ceil(operado1);
Lg=Lg1/100; % longitud del entrehierro

Dr=D-2*Lg;
d1=Ss-3*P;
d2=Ss-P;
d3=Ss-2*P;
d4=Ss-5*P;
d5=Ss-1;
d6=Ss-2;
d7=Ss-7;
d8=Ss-8;

Sr=Ss-9;
sp2=pi*(Dr/Sr);

Ir=0.85*Iph;
Ib=((Ir*kws*Ss*Zs)/(kwr*Sr*Zr));

Abi=Ib/cdb;
Wb=ceil(Abi/Tb);
Ab=Tb*Wb*0.98;

Wsr=Tb+0.5;
Hsr=Wb+0.5;
Lb=L+50;

Rb=((0.021*Lb)/(Ab*1000)); % resistencia de las varillas antes de corregir


Ie=((Ib*Sr)/(P*pi));
Dme=Dr-dd;
Ae=Ie/cde; % area del nucleo del rotor
Re=((0.021*pi*Dme)/(1000*Ae)); % resistencia de las varillas corregidas

Pcub=(Ib^2)*Rb*Sr; % perdidas de cobre en una varilla


Pcue=2*(Ie^2)*Re; % perdidas de cobre en dos varillas

Pcur=Pcub+Pcue; % perdidas totales en el rotor

Rr=((Pcur)/(3*Ir^2)); % resistencia equivalente del rotor


Dr13=Dr-2*(2/3)*Hsr; % diametro a 1/3 del diente del rotor
spr13=(pi*Dr13)/Sr; % franja de las ranuras del rotor
Wtr13=spr13-Wsr; % ancho de los dientes del rotor
Atr=Wtr13*Li*(Sr/P); % Area de los dientes
Brt=(FI*10^6)/(Atr); % densidad de flujo en los dientes

Brtrnax=Brt*1.5; % densidad de flujo maximo en los dientes

if Brtrnax<=1.4 && Brtrnax>1.2


disp ('OK: densidad de flujo maximo en los dientes "Brtrnax" su Rango
esta entre 1.2 y 1.4');
else
disp ('ERROR: densidad de flujo maximo en los dientes "Brtrnax" su Rango
NO esta entre 1.2 y 1.4');
end

Ac=(FI*10^6)/(2*Brc); % area del nucleo del rotor


dcr=Ac/Li; % Profundidad el nucleo del rotor
Pfw=0.01*KW*10^3; % friccion de la curva de perdidad en
porcentaje

PnL=Pit+Pic+Pfw; % perdidas en el arranque del motor

Iw=PnL/3/V; % corriente total antes en vacio


Wcur=(Lb*Sr*Ab*8.9)/10^6; % peso de cobre del rotor
Wcue=(Lme*2*Ae*8.9)/10^3; % peso de las ranuras del rotor

%-----------------AmpTurns and Magnetizing-Current------------------------>

%---------------BH Curve for--0.5mm,LOHYS Quality------------------------->

% Los datos ya se introdujeron en las lineas Nro.50


WssO=4;
WsrO=2;
Wss0=4;
Wsr0=2;
Bt30=Bl3*1.36;
rat2=WsrO/Lg;
%Assumptions

atsc=interp1(BB,H,Bc,'spline');

atst=interp1(BB,H,Bt30,'spline');

Dcav=(D+(2*Hs)+Hc); % Diametro del nucleo del estator


reducido
ATSC=((pi*Dcav*atsc)/(P*3*1000)); % amper-vueltas para el nucleo del
estator
ATST=(atst*(Hs/1000)); % Amper-vueltas para los dientes del
estator
ATS=ATSC+ATST; % Total Amper-vueltas para nucleo del
estator
ratl=WssO/Lg;
%determinando los puntos de Kg , de las figuras 7.1 y 7.2 del libro de
%murthy
kul=interp1(Ratio,CC,ratl,'spline');
kgs=(SPitch/(SPitch-WssO*kul));
k02=interp1(Ratio,CC,rat2,'spline');

spru=pi*Dr/Sr; % longitud cerca del punto de la ranura del


rotor
kgr=((spru)/(spru-(WsrO*k02))); % Coeficiente de capa para las ranuras
del rotor
kg=kgs*kgr; % Coeficiente de la capa de aire o entrehierro
del motor
Lgd=Lg*kg; % Longitud efectiva de la capa del aire o
entrehierro
rat3=bvd/Lg; % Factor de ventilacion del ducto

kv=interp1(Ratio,CCl,rat3,'spline');
if rat3>=12
kv=0.7;
disp ('coeficiente de carter FUERA de rango en la grafica entonces kv = 0.7');
else
disp ('coeficiente de carter DENTRO de rango en la grafica entonces kv =
interpolando');
end

Ld=(L-(kv*nvd*bvd)); % Longitud axial efectiva


Aag=((pi*D*Ld)/(P)); % Relacion de la capa de aire en area entre
polo
Bg=(FI*1000000)/Aag; % densidad de flujo del entrehierro
B30d=1.36*Bg; % Densidad de flujo de la abertura del rotor
del diente a 30 grados de angulo
ATg=0.796*B30d*Lgd*1000; % Capa de aire en la relacion amper-
vueltas de los debanados
Btr30=Brt*1.36; % densidad de flujo en la ranura del diente
30 grados desde el centro del polo
atrt=interp1(BB,H,Btr30,'spline'); % Amper por vuelta entre metro de los
conductores
ATRT=((atrt*Hsr)/1000); % Amper vuelta oara los dientes del rotor
atrc=interp1(BB,H,Brc,'spline');
Dcrav=(Dr-(2*Hsr)-dcr);
ATRC=(pi*Dcrav*atrc/(1000*P*3)); % Amper-vueltas para el nuecleo del
rotor
ATR=ATRC+ATRT; % Amper-vueltas totales par el rotor
ATT=ATS+ATR+ATg; % Amper-vueltas totales del motor
Im=((P*ATT)/(2*1.17*Kw*Tph)); % Corriente d magnetizacion
IO=sqrt(Iw^2+Im^2); % Corriente de fase en vacio sin
sobrecarga

pfO=Iw/IO;
IObyI=IO/Iph;
%(5)<----------Short-Circuit-Current-------------------->');

h2=1.6;
h2r=0;
h3r=0;
h4r=0.5;
ks=1;

%Assumptions

h3=Hw;
h4=HL;

bs=Ws;
b0=Wss0;
h1r=Wb;
br=Wsr;
brO=Wsr0;
h1=Zsh*(Hstrip+insS);

Lmdss=(h1/(3*bs)) + h2/bs + ((2*h3)/(bs+b0)) + (h4/b0); % permeancia


especifica de la ranuras del esttor
Lmdsr=((h1r)/(3*br)+(h2r/br)+((2*h3r)/(br+brO))+(h4r/brO)); % permeancia
especifica de la ranura del rotor
Lmddsr=(Kw^2*(S/Sr)*Lmdsr);
ssp=Lmdss+Lmddsr; % permeancia especifica de
las ranuras del motor

gd=S/P/3;
Xs=((15.8*f*L*ssp)*((Tph^2)/(p*gd*1000000000))); % reactancia de
las ranuras
LOLmdO=((ks*PP^2)/(pi*SPitch*1000)); % factor de la caida
de la reactancia
XO=((15.8*f*LOLmdO*Tph^2)/(p*gd*1000000)); % reactancia
overhang

gs=S/P; % relacion ranuras entre polos del


estator
gr=Sr/P; % relacion ranuaras entre polos del
rotor
Xm=Vph/Im; % reactancia de magnetizacion

Xz=(5/6)*Xm*(1/gs^2+1/gr^2); % reactancia de zigzag


X=Xs+XO+Xz; % reactancia por fase total
R=Rph+Rr; % resistencia total
Z=sqrt((R^2)+(X^2)); % impedancia por fase
Isc=Vph/Z; % corriente de corto circuito
pfsc=R/Z; % coeficiente de la resistencia y la
impedancia en corto circuito
RAT=Isc/Iph; % relacion de amper vueltas en
corto circuito

%(6)<--------------Performance-------------------->');

Pt=PnL+Pcus+Pcur; % perdidas totales del motor


EFF=KW/(KW+Pt/1000)*100; % eficiencia del motor
I0=8.9936;

if EFF < 88.8


disp ('OK: EFF es menor que 88.8');
else
disp ('ERROR: EFF NO es menor que 88.8');
end

Rinp=KW*1000+Pfw+Pcur;
SFL=(Pcur/Rinp)*100;
Tst=(Isc/Ir)^2*(SFL/100);

Deno=(Isc-I0);
Nume=(1+pfsc);

Pmax=((3*Vph*Deno)/(2*Nume*1000)); % potencia maxima del


motor

Acooll=((pi*D*(L*2.5))+(2*pi*(D+50)*0.04))/1000000; % area interna del


sector de ventilacion
Acool2=Acooll*(1+0.1*v); % area interna del sector de
ventilacion
Acool3=pi*DO*L/1000000; % area externa del sector de
ventilacion
AcoolT=Acool2+Acool3; % area total del sistema de
ventilacion

Pst=Pcus+Pit+Pic;
Tr=0.04*(Pst/AcoolT);

if Tr > 56
disp ('OK: Tr es mayor que 56');
else
disp ('ERROR: Tr NO es mayor que 56');
end

Ars=Wsr*Hsr*Sr;
Dri=Dcrav-dcr;

Wri=((pi*(Dr^2-Dri^2)/4)-(Ars))*L*(7.8/1000000); % peso del rotor


Wtot=1.01*(Wcus+Wt+Wc+Wri+Wcur+Wcue); % peso total del
motor
KgPkw=Wtot/KW; % relacion del peso total entre la
potencia total del motor

if KgPkw > 6.1


disp ('OK: KgPkw es mayor que 6.1');
else
disp ('ERROR: KgPkw NO es mayor que 6.1');
end

%------------------End of Program-------------------------->

sn=sn+1;

if EFF >= EFFmax && EFFmax == EFF;


end;

if abs(EFF-EFFmax)<= 0.002 && M2==sn;


end;

if KgPkw <= minKgPkw && minKgPkw==KgPkw;


end;

if abs(KgPkw-minKgPkw) <= 0.001 && Ml==sn;


end;
if Tr <= minTr && minTr==Tr;
end;

if abs(Tr-minTr) <= 0.0001 && M3==sn;


end;

if IObyI <= minIObyI && minIObyI==IObyI;


end;

if abs(IObyI-minIObyI) <= 0.0001 && M4==sn;


end;

fprintf(f2,'\n%2d%3d%3d%4.0f%3.0f%4.0f%3d%4.1fX%3.1f
%4.1f',sn,P,Zs,D,v,L,S,Tstrip,Hstrip,CDSW);
fprintf(f2,'%5.1fX%2.0f%6.3f%5.1f%4.0f%6.2f%5.0f%6.2f%5.2f%5.2f%5.2f
%4.1f',Ws,Hs,Btmax,Tr,DO,EFF,Wtot,KgPkw,IObyI,pfO,pfsc,SFL);
end;
end;
end;
end;
end;

fprintf(f2,'\n-- -- ------ -- -------- -- ----- -- --------\n');

fprintf(f2, 'Selection of desing variant based on Optimization Criteria:');

fprintf(f2, '\nIf Maximum Efficlency is Required, Select Variant (Sn)=-%3d


(%5.2f perc)', M2,EFFmax);
fprintf(f2, '\nIf Minimum Kg/KW is Required, Select Variant(Sn)=%3d (%5.2f)',
Ml,minKgPkw);

fprintf(f2, '\nIf Minimum Temp-Rise is Reqd, Select Variant (Sn)=%3d (%4.2f)',


M3,minTr);

fprintf(f2, '\nIf Minimum ratio of IOIr is Reqd, Select Variant (Sn)=%3d


(%4.2)' ,M4,minIObyI);

fclose(f2);

S-ar putea să vă placă și