Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lista de algoritmos
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Clculo del ngulo de apagado y corriente media y efectiva para carga RL en puentes
rectificadores de media onda no controlados . . . . . . . . . . . . . . . . . . . . . .
Clculo del ngulo de apagado y corriente media y efectiva para carga activa en puentes rectificadores de media onda no controlados . . . . . . . . . . . . . . . . . . . .
Puente rectificador de media onda no controlado . . . . . . . . . . . . . . . . . . . .
Puente rectificador de media onda no controlado con diodo de descarga libre . . . . .
Clculo del ngulo de apagado y corriente media y efectiva para carga activa en puentes rectificadores de media onda controlados . . . . . . . . . . . . . . . . . . . . . .
Puente rectificador de media onda controlado . . . . . . . . . . . . . . . . . . . . .
Puente rectificador monofsico controlado . . . . . . . . . . . . . . . . . . . . . . .
Puente rectificador monofsico no controlado . . . . . . . . . . . . . . . . . . . . .
Puente rectificador trifsico controlado . . . . . . . . . . . . . . . . . . . . . . . . .
Puente rectificador trifsico no controlado . . . . . . . . . . . . . . . . . . . . . . .
Rectificador trifsico controlado con carga activa e inductancia de fuente . . . . . . .
Rectificador monofsico controlado con carga activa e inductancia de fuente . . . . .
Puente convertidor AC-AC semi controlado . . . . . . . . . . . . . . . . . . . . . .
Puente convertidor AC-AC controlado . . . . . . . . . . . . . . . . . . . . . . . . .
Clculo de puente convertidor AC-AC controlado . . . . . . . . . . . . . . . . . . .
Modelo puente controlador AC-AC por PWM . . . . . . . . . . . . . . . . . . . . .
Funcin de integracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Clculo de tensin efectiva y THD para el controlador AC-AC por PWM . . . . . . .
Convertidor AC-AC trifsico controlado . . . . . . . . . . . . . . . . . . . . . . . .
Chopper reductor condicin continuada de corriente . . . . . . . . . . . . . . . . . .
Chopper elevador en rgimen permanente . . . . . . . . . . . . . . . . . . . . . . .
Inversor monofsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inversor trifsico modelado en vectores espaciales . . . . . . . . . . . . . . . . . . .
Rutina de integracin de paso fijo "ode1.m" . . . . . . . . . . . . . . . . . . . . . .
Clculo del contenido armnico de las diferentes modulaciones para cada referencia .
Clculo del contenido armnico de las modulacin SP W M . . . . . . . . . . . . .
Inversor monofsico accionado por modulacin delta . . . . . . . . . . . . . . . . .
5
6
7
7
8
9
10
11
12
13
14
15
17
18
19
20
21
22
23
25
26
28
29
30
31
32
33
LISTA DE ALGORITMOS
Captulo 1
Puentes Convertidores AC - DC
1.1.
Algoritmo 1 Clculo del ngulo de apagado y corriente media y efectiva para carga RL en puentes
rectificadores de media onda no controlados
% Archivo principal
global fi potencia % variables generales
fi=input(angulo de la carga ); % Angulo de la carga en radianes
potencia=1;
y=fsolve(eind,[4],optimset(Display,off)); % Solucin numrica
Matlab
y=fsolve(eind,[4]); % Solucin numrica Octave
Imedia=1/(2*pi)*(quad(eind,0,y)); % Corriente media
potencia=2;
Iefectiva=sqrt(1/(2*pi)*(quad(eind,0,y))); %Corriente efectiva
% Ecuacin Trascendental (eind.m)
function F=eind(x)
global fi
potencia F=(sin(x-fi)+sin(fi)*exp(-x/tan(fi))).^potencia; %Ecuacin
% potencia se utiliza para elevar la ecuacin trascendental al
cuadrado para el clculo de la corriente efectiva.
Algoritmo 2 Clculo del ngulo de apagado y corriente media y efectiva para carga activa en puentes
rectificadores de media onda no controlados
% Archivo principal
global fi a m potencia
% variables generales
V=input(Tension efectiva de la fuente sinusoidal );
E=input(Tension DC de la Carga );
R=input(Resistencia [Ohm] );
L=input(Inductancia [H] );
f=input(Frecuencia de la fuente [Hz] );
alfa2=input(Angulo de Encendido en grados );
a=alfa2*pi/180; %Clculo del ngulo de encendido en rad
fi=atan(2*pi*f*L/R); %Angulo de la Carga
m=E/(sqrt(2)*V);
Z=sqrt((2*pi*f*L)^2+R^2); %Impedancia
potencia=1;
beta=fsolve(eindg,[3.2],optimset(Display,off)) %Angulo de
apagado Matlab
beta=fsolve(eindg,[3.2]) %Angulo de apagado para Octave
In=sqrt(2)*V/Z*1/(2*pi)*(quad(eindg,0,beta)) %Corriente media
potencia=2;
Ir=sqrt(2)*V/Z*sqrt(1/(2*pi)*(quad(eindg,0,beta))) %Corriente
efectiva
%Ecuacin Trascendental (eindg.m)
function F=eindg(x)
global fi a m potencia
F=(sin(x-fi)-m/cos(fi)-(sin(a-fi)-m/cos(fi))*exp(-(x-a)/tan(fi)))
.^potencia;
% potencia se utiliza para elevar la ecuacin trascendental al
cuadrado para el clculo de la corriente efectiva.
Algoritmo 4 Puente rectificador de media onda no controlado con diodo de descarga libre
* Rectificador de Media Onda con Diodo de Descarga Libre
******************* Parmetros ***********************************
.PARAM VM=120 ;Tensin RMS de la fuente
.PARAM R=60 ;Carga resistiva
.PARAM L=223MH ;Carga inductiva
******************** Fuente ***********************************
VS 1 0 SIN(0 {sqrt(2)*VM} 60)
******************** Circuito ***********************************
D1 1 2 DMOD
D2 0 2 DMOD
********************* Carga ************************************
R 2 3 {R} L 3 0 {L} IC=0
********************* Modelo ***********************************
.MODEL DMOD D(N=1E-4) ; DIODO IDEALIZADO
********************* Anlisis *********************************
.TRAN .1MS 150MS 0 .1MS UIC
.FOUR 60 V(2) I(R)
.PROBE
.PRINT TRAN V(2) I(R) I(D1) I(D2) V(1) ;salida a archivo
.END
1.2.
Algoritmo 5 Clculo del ngulo de apagado y corriente media y efectiva para carga activa en puentes
rectificadores de media onda controlados
% Archivo principal
global fi a m potencia
% variables generales
V=input(Tension efectiva de la fuente sinusoidal );
E=input(Tension DC de la Carga );
R=input(Resistencia [Ohm] );
L=input(Inductancia [H] );
f=input(Frecuencia de la fuente [Hz] );
alfa2=input(Angulo de Encendido en grados );
a=alfa2*pi/180;
%Clculo del ngulo de encendido en rad
fi=atan(2*pi*f*L/R); %Angulo de la Carga
m=E/(sqrt(2)*V);
Z=sqrt((2*pi*f*L)^2+R^2); %Impedancia
potencia=1;
beta=fsolve(eindg,[3.2],optimset(Display,off)) %Angulo de
apagado para Matlab
beta=fsolve(eindg,[3.2]) %Angulo de apagado para Octave
In=sqrt(2)*V/Z*1/(2*pi)*(quad(eindg,0,beta)) %Corriente media
potencia=2;
Ir=sqrt(2)*V/Z*sqrt(1/(2*pi)*(quad(eindg,0,beta))) %Corriente
efectiva
%Ecuacin Trascendental (eindg.m)
function F=eindg(x)
global fi a m potencia
F=(sin(x-fi)-m/cos(fi)-(sin(a-fi)-m/cos(fi))*exp(-(x-a)/tan(fi)))
.^potencia;
% potencia se utiliza para elevar la ecuacin trascendental al
cuadrado para el clculo de la corriente efectiva.
10
1.3.
11
12
1.4.
13
14
1.5.
15
16
Captulo 2
Puentes Convertidores AC - AC
17
18
19
Algoritmo 15 Clculo de puente convertidor AC-AC controlado
% Programa Principal
global fi potencia alfa
% ************* Clculo de Puente Controlador AC-AC **********
% *************** Variables ***********************************
V=input(Tensin efectiva de la fuente );
R=input(Carga Resistiva );
L=input(Carga Inductiva );
f=input(Frecuencia );
alfa=input(Angulo de disparo en grados );
% ************** Clculo **************************************
alfa=alfa*pi/180; % Conversin a rad
Z=sqrt(R^2+(2*pi*f*L)^2); % Impedancia
fi=atan((2*pi*f*L)/R); % ngulo de la Impedancia
% ************* ngulo de apagado *****************************
potencia=1;
%beta=fsolve(ecuacion,[4],optimset(Display,off)); %
Intruccin Matlab
beta=fsolve(ecuacion,[4]); % Intruccin Octave
Beta=beta*180/pi % ngulo de apagado en grados
% ************ Tensin y Corriente Efectiva **********************
% Tensin Efectiva de la Carga
Vrms= V*sqrt(1/pi*(beta-alfa-(sin(2*beta))/2+(sin(2*alfa))/2))
% Corriente Efectiva de la Carga.
potencia=2;
Irms=sqrt(2)*V/Z*(sqrt(1/(pi)*(quad(ecuacion,alfa,beta))))
% Funcin "ecuacion.m"
function F=ecuacion(x)
global fi potencia alfa
% Ecuacin de corriente
F=(sin(x-fi)-sin(alfa-fi)*exp(-(x-alfa)/tan(fi))).^potencia;
20
21
Algoritmo 17 Funcin de integracin
function [tout, yout] = ode(ypfun, t0, tfinal, y0, paso)
t = t0;
hmax = (tfinal - t)/paso;
h = paso; y = y0(:);
chunk = round(hmax);
tout = zeros(chunk,1);
yout = zeros(chunk,length(y));
k = 1; tout(k) = t;
yout(k,:) = y.;
while (t <tfinal) % Compute the slopes
s1 = feval(ypfun, t, y);
s1 = s1(:);
t = t + h;
y=y+h*s1;
k = k+1;
if k >length(tout)
tout = [tout; zeros(chunk,1)];
yout = [yout; zeros(chunk,length(y))];
end
tout(k) = t;
yout(k,:) = y.;
tout = tout(1:k);
yout = yout(1:k,:);
end
22
Algoritmo 18 Clculo de tensin efectiva y THD para el controlador AC-AC por PWM
% Controlador AC-AC por PWM Evaluacin de Tensin Efectiva
% Variables
V=input(Tensin efectiva de la fuente );
f=input(Frecuencia de la fuente );
Duty=input(Porcentaje del Subida );
fp=input(Mltiplo de la fundamental de la portadora );
fp=fp*f;
T=1/f;
t=0:T/100:T;
Vf=sqrt(2)*V*sin(2*pi*f*t); % Tensin de la fuente
PWM=(square(2*pi*fp*t,Duty)+1)/2; % Modulacin
onda=PWM.*Vf; % Tensin de la carga
figure(1)
plot(t,Vf,t,onda,r);grid
% Contenido Armnico
Np=length(onda);
a=fft(onda)*2/Np; a(1)=a(1)/2;
figure(2)
bar((0:49),abs(a(1:50))./abs(a(2))); grid;
axis([-1 50 0 1.2]);
xlabel(Armnica de la fundamental)
ylabel(p.u. fundamental)
legend(Contenido Armnico de Tensin)
np=floor(Np/2);
Vrms=sqrt((sum((abs(a(2:np))/sqrt(2)).^2))+abs(a(1))^2)
THDv= sqrt(Vrms^2-(abs(a(2))/sqrt(2))^2)/(abs(a(2))/sqrt(2))
23
24
Captulo 3
Puentes Convertidores DC -DC
25
26
27
28
Captulo 4
Puentes Convertidores DC - AC
Algoritmo 22 Inversor monofsico
% Programa Principal
global V f R L
% Inversor Monofsico
% Variables
V=input(Tensin DC ); R=input(Carga Resistiva );
L=input(Carga Inductiva ); f=input(Frecuencia );
% Clculo de la corriente
y0=0; % Condicin Inicial
[T,X]=ode1(corriente,0,20/f,y0,1/(100*f)); % Corriente en la Carga
Onda=(square(2*pi*f*T,50)); % Forma de Onda
Vcarga=V*Onda; % Tensin sobre la Carga
Vf=V*ones(length(T));
figure(3)
subplot(2,1,1); plot(T,X); xlabel(Tiempo [s]); ylabel(Corriente [A]); grid;
subplot(2,1,2); plot(T,Vf,T,Vcarga,r); grid;
xlabel(Tiempo [s]); ylabel(Tensin [V]);legend(fuente,carga);
% Clculo de Armnicos
Deltat=T(2)-T(1);largo=length(T);
Np=100; carga=[X,Vcarga];
a=carga(largo-Np+1:largo,:);
a1=fft(a(:,1))*2/(Np); a1(1)=a1(1)/2;
a2=fft(a(:,2))*2/(Np); a2(1)=a2(1)/2;
figure(1)
subplot(2,1,1); bar((0:49),abs(a1(1:50))./abs(a1(2)),r);
xlabel(Armnicas); ylabel(p.u.fundamental)
legend(Contenido Armnico de Corriente);axis([-1 50 0 1.2]); grid;
subplot(2,1,2); bar((0:49),abs(a2(1:50))./abs(a2(2))); grid;
xlabel(Armnica); ylabel(p.u. fundamental)
legend(Contenido Armnico de Tensin); axis([-1 50 0 1.2]);
% Clculo de Distorsin armnica
np=floor(Np/2);
Vrms=sqrt((sum((abs(a2(2:np))/sqrt(2)).^2))+abs(a2(1))^2)
THDv= sqrt(Vrms^2-(abs(a2(2))/sqrt(2))^2)/(abs(a2(2))/sqrt(2))
Irms=sqrt((sum((abs(a1(2:np))/sqrt(2)).^2))+abs(a1(1))^2)
THDi= sqrt(Irms^2-(abs(a1(2))/sqrt(2))^2)/(abs(a1(2))/sqrt(2))
% Funcin corriente.m
function px=corriente(t,x)
global V f R L
i=x;
Vcarga=V*(square(2*pi*f*t,50)); % Tensin sobre la Carga
px=(Vcarga-R*i)/L; % Derivada de la corriente en la Carga
29
Algoritmo 23 Inversor trifsico modelado en vectores espaciales
% Progrma Principal
global V f R L w
% Inversor trifsico
% Variables
V=input(Tensin DC );
R=input(Carga Resistiva );
L=input(Carga Inductiva );
f=input(Frecuencia ); T=1/f; w=2*pi*f;
% Cculo de la corriente
y0=0; % Condicin Inicial
[t,ies]=ode1(corriente3f,0,.2,y0,T/100); % Corriente en la Carga
% Tensiones
vab=(((square(w*t,1/3*100)+1)*.5)-((square(w*t-pi,1/3*100)+1)*.5));
vbc=(((square(w*t-2*pi/3,1/3*100)+1)*.5)-((square(w*t-pi-2*pi/3,1/3*100)+1)*.5));
vca=(((square(w*t-4*pi/3,1/3*100)+1)*.5)-((square(w*t-pi-4*pi/3,1/3*100)+1)*.5));
ves=sqrt(2/3)*V*(vab+exp(j*2*pi/3)*vbc+exp(j*4*pi/3)*vca)*exp(-j*pi/6)/sqrt(3); %
vector espacial
i=length(ies)-100:length(ies);
%Series de Fourier
Fv=fft(sqrt(2/3)*real(ves(i)))/(length(i)/2); Fv(1)=Fv(1)/2; Fv=Fv/Fv(2)*100;
Fi=fft(sqrt(2/3)*real(ies(i)))/(length(i)/2); Fi(1)=Fi(1)/2; Fi=Fi/Fi(2)*100;
figure(1)
magv=max(abs(ves(i)))/100; magi=max(abs(ies(i)))/100;
plot(real(ves(i))/magv,imag(ves(i))/magv,real(ies(i))/magi,imag(ies(i))/magi,r);
grid;
xlabel(Real); ylabel(Imag); legend(Tensin,Corriente); axis(equal);
figure(2)
va=sqrt(2/3)*real(ves(i))/(sqrt(2/3)*max(real(ves(i))))*100;
ia=sqrt(2/3)*real(ies(i))/(sqrt(2/3)*max(real(ies(i))))*100;
plot(t(i),va,t(i),ia,r); grid;
xlabel(Tiempo (s)); ylabel( % del valor pico); legend(Tensin,Corriente);
figure(3)
clf
subplot(2,1,1); bar(0:30,abs(Fv(1:31))); grid; axis([0 30 0 100]);
xlabel(Armnicas); ylabel( % de la Fundamental); legend(Tensin);
subplot(2,1,2); bar(0:30,abs(Fi(1:31)),r); grid; axis([0 30 0 100]);
xlabel(Armnicas); ylabel( % de la Fundamental); legend(Corriente);
% Funcin corriente3f.m
function px=corriente3f(t,x)
global V f R L w
i=x;
% Tensin sobre la Carga
vab1=(((square(w*t,1/3*100)+1)*.5)-((square(w*t-pi,1/3*100)+1)*.5));
vbc1=(((square(w*t-2*pi/3,1/3*100)+1)*.5)-((square(w*t-pi-2*pi/3,1/3*100)+1)*.5));
vca1=(((square(w*t-4*pi/3,1/3*100)+1)*.5)-((square(w*t-pi-4*pi/3,1/3*100)+1)*.5));
% Vector Espacial
ves1=sqrt(2/3)*V*(vab1+exp(j*2*pi/3)*vbc1+exp(j*4*pi/3)*vca1)*exp(-j*pi/6)/sqrt(3);
px=(ves1-R*i)/L; % Derivada de la corriente en la Carga
30
31
Algoritmo 25 Clculo del contenido armnico de las diferentes modulaciones para cada referencia
t=0:0.01:2*pi; % Definicin del tiempo
ref(1,:)=sin(t); y=ref(1,:); % Referencia sinusoidal
% Referencia Trapezoidal
Trap=-2.5*sawtooth(t-pi/2,.5);
for i=1:length(t);if abs(Trap(i))>1 Trap(i)=sign(Trap(i)); end; end; ref(2,:)=Trap;
arm=1.15*sin(t)+.27*sin(3*t)-.029*sin(9*t); ref(3,:)=arm; % Referencia Armnica
% Referencia Escalera de 2 peldaos
for i=1:length(t)
if abs(sin(t(i)))<0.5; y2(i)=sign(sin(t(i)))*.5;
else y2(i)=sign(sin(t(i))); end; end; ref(4,:)=y2;
% Escalera 3 peldaos
for i=1:length(t)
if abs(y(i))<.25; y3(i)=sign(y(i))*.5;
else; if abs(y(i))<.5; y3(i)=sign(y(i))*.75;
else; y3(i)=sign(y(i)); end; end; end; ref(5,:)=y3;
% Escalera 4 peldaos
for i=1:length(t)
if abs(y(i))<.25; y4(i)=sign(y(i))*.25;
else; if abs(y(i))<.5; y4(i)=sign(y(i))*.5;
else; if abs(y(i))<.75; y4(i)=sign(y(i))*.75;
else; y4(i)=sign(y(i)); end; end; end; end; ref(6,:)=y4;
y5=(round(y*10))/10; ref(7,:)=y5; % Escalonada
% PWM Clasica
mf=input(Indice de modulacin de frecuencia );
ma=input(Indice de modulacin de amplitud );
PWM=(sawtooth(mf*t,.5)+1)*.5;
PWM1=square(t,50); Unipolar=ma*PWM1.*PWM; Bipolar=ma*sawtooth(mf*t,.5);
for j=1:7; for i=1:length(t);
if abs(Unipolar(i))>=abs(ref(j,i));
Sunipolar(j,i)=0; else; Sunipolar(j,i)=sign(ref(j,i)); end;
if (Bipolar(i))>=(ref(j,i)); Sbipolar(j,i)=-1; else Sbipolar(j,i)=1;end; end; end;
% Contenido Armnico
Bi=zeros(7,length(t)); Ui=zeros(7,length(t));
for i=1:7 Bi(i,:)=fft(Sbipolar(i,:))/(length(t)/2);
Bi(i,1)=Bi(i,1)/2; Bi(i,:)=abs(Bi(i,:));
Ui(i,:)=fft(Sunipolar(i,:))/(length(t)/2);
Ui(i,1)=Ui(i,1)/2; Ui(i,:)=abs(Ui(i,:));
VrmsBin(i)=sqrt(sum(Bi(i,2:72).^2))/sqrt(2);
VrmsBi(i)=sqrt(Bi(i,1)^2+VrmsBin(i)^2);
THDBi(i)=sqrt(VrmsBi(i)^2-Bi(i,2)^2/2)/(Bi(i,2)/sqrt(2));
VrmsBi1(i)=Bi(i,2)/sqrt(2); VrmsUin(i)=sqrt(sum(Ui(i,2:72).^2))/sqrt(2);
VrmsUi(i)=sqrt(Ui(i,1)^2+VrmsUin(i)^2);
THDUi(i)=sqrt(VrmsUi(i)^2-Ui(i,2)^2/2)/(Ui(i,2)/sqrt(2));
VrmsUi1(i)=Ui(i,2)/sqrt(2);end;
salida=[THDBi,VrmsBi,VrmsBi1,THDUi,VrmsUi,VrmsUi1] %Salidas
i=input(salida a graficar ); % Grafica a realizar
% (1) sinusoide (2) trapezoida (3) armnicas (4) escalera 2 niveles
%(5) escalera 3 niveles (6) escalera 4 niveles (7) por pasos
figure(1) clf
subplot(2,1,1); plot(t,ref(i,:),t,Unipolar,r); grid; axis([0 2*pi -1.2 1.2]);
ylabel(Magnitud); xlabel(Tiempo); legend(Referencia,Portadora);
subplot(2,1,2); plot(t,Sunipolar(i,:));grid; axis([0 2*pi -1.2 1.2]);
ylabel(Magnitud); xlabel(Tiempo); legend(Salida);
figure(2); clf;
subplot(2,1,1); plot(t,ref(i,:),t,Bipolar,r); grid; axis([0 2*pi -1.2 1.2]);
ylabel(Magnitud); xlabel(Tiempo); legend(Referencia,Portadora);
subplot(2,1,2); plot(t,Sbipolar(i,:)); grid; axis([0 2*pi -1.2 1.2]);
ylabel(Magnitud); xlabel(Tiempo); legend(Salida)
figure(3); clf; n=0:72;
bar(n,[Ui(i,n+1),Bi(i,n+1)]*100);grid; axis([0 72 0 120]);
xlabel(Armnicas); ylabel(Amplitud ( % de VDC));legend(Unipolar,Bipolar)
32
33