El documento presenta código MATLAB para simular diferentes aspectos de sistemas electromagnéticos, incluyendo: 1) calcular el flujo en un núcleo de dos regiones, 2) graficar la velocidad de un motor lineal en función de la carga aplicada, y 3) modelar la corriente de magnetización en un transformador a diferentes frecuencias.
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
PLC y Electroneumática: Maquinas eléctricas 5ta edición por Stephen J. Chapman parte 1
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.
28.
29.
30.
31. % Archivo M: ex1_1.m
% Archivo M para calcular el flujo en el ejemplo 1-1
11 0.45; % Longitud de la región 1
12 1.3; % Longitud de la región 2
a1 0.01; % Área de la región 1
a2 0.015; % Área de la región 2
ur 2 500; % Permeabilidad relativa
u0 4*pi*1E-7; % Permeabilidad del espacio libre
n 200; % Número de vueltas sobre el núcleo
i 1; % Corriente en amperes
% Calcular la primera reluctancia
r1 11 / (ur * u0 * a1);
disp (['r1 ' num2str(r1)]);
% Calcular la segunda reluctancia
r2 12 / (ur * u0 * a2);
disp (['r2 ' num2str(r2)]);
% Calcular la reluctancia total
rtot r1 r2;
% Calcular la fmm
mmf n * i;
% Finalmente, obtener el flujo del núcleo
flujo fmm / rtot;
% Mostrar el resultado
disp ([' flujo ' num2str(flujo)]);
» ex1_1
r1 14323.9449
r2 27586.8568
Flujo 0.004772
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54. % Archivo - M ex1_10.m
% Archivo M para calcular y hacer una gráfica de la velocidad de
% un motor lineal como una función de la carga
VB 120; % Voltaje de la batería (V)
r 0.3; % Resistencia (ohms)
l 1; % Longitud de la barra (m)
B 0.6; % Densidad de flujo (T)
% Seleccionar las fuerzas que se aplicarán a la barra
F 0:10:50; % Fuerza (N)
% Calcular la corriente que fluye en el motor
i F ./ (1 * B); % Corriente (A)
% Calcular los voltajes inducidos en la barra
eind VB - i . * r; % Voltaje inducido (V)
% Calcular la velocidad de la barra
v_bar eind ./ (l * B); % Velocidad (m/s)
55. % Gráfica de la velocidad de la barra contra la fuerza
plot (F, V_bar);
title ('Gráfico de velocidad contra fuerza aplicada');
xlabel ('Fuerza (N)') ;
ylabel ('Velocidad (m/s)') ;
axis ([0 50 0 200]);
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101. % Archivo M para calcular y hacer una gráfica de la regulación de
% voltaje de un transformador en función de la carga para
% factores de potencia de 0.8 en retraso y 1.0 y 0.8 en adelanto.
VS 230; % Voltaje secundario (V)
amps 0:6.52:65.2; % Valores de corriente (A)
Req 0.0445; % R equivalente (ohms)
Xeq 0.0645; % X equivalente (ohms)
% Calcular el valor de las corrientes para los tres
% factores de potencia. La primera fila de 1 contiene
% las corrientes en retraso, la segunda fila contiene
% las corrientes unitarias y la tercera fila contiene
% las corrientes en adelanto.
I(1, :) amps .* ( 0.8 - j*0.6); % En retraso
I(2, :) amps .* ( 1. 0); % Unitaria
I(3, :) amps .* ( 0.8 j*0.6); % En adelanto
% Calcular VP/a
VPa VS Req.*I j.*Xeq.*I;
% Calcular la regulación de voltaje
VR (abs(VPa) - VS) ./ VS .* 100;
102. % Hacer una gráfica de la regulación de voltaje
plot(amps,VR(l,:), 'b-');
hold on;
plot(amps, VR(2,:), 'k-');
plot(amps, VR(3,:), 'r-');
title ('Regulación de voltaje-carga');
xlabel ('Carga (A)');
ylabel ('Regulación de voltaje (%)');
legend ('0.8 PF en retraso','l.0 PF','0.8 PF en adelanto');
hold off;
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126. freq 60; % Freq (Hz)
w 2 * pi * freq;
% Calcular el flujo contra el tiempo
time 0:1/3000:1/30; % 0 a 1/30 seg
flux -VM/(w*NP) * cos(w .* time);
% Calcular la mmf correspondiente a un flujo dado
% por medio de la función de interpolación del flujo
mmf interpl(flux_data,mmf_data,flux);
% Calcular la corriente de magnetización
im mmf / NP;
% Calcular el valor rms de la corriente
irms sqrt(sum(im.^2)/length(im));
disp(['La corriente rms a 60 Hz es ', num2str(irms)]);
% Hacer la gráfica de la corriente de magnetización.
figure(l)
subplot(2, 1, 1);
plot(time,im) ;
title ('bfCorriente de Magnetización a 60 Hz');
xlabel ('bfTime (s)');
ylabel ('bfitI_{m} rm(A)');
axis([0 0.4 -2 2]);
grid on;
% Calcular la velocidad angular a 50 Hz
freq 50; % Freq (Hz)
w 2 * pi * freq;
% Calcular el flujo contra el tiempo
time 0:1/2500:1/25; % 0 a 1/25 seg
flux -VM/(w*NP) * cos(w .* time);
% Calcular la mmf correspondiente a un flujo dado
% por medio de la función de interpolación del flujo
mmf interpl(flux_data, mmf_data,flux);
127. % Calcular la corriente de magnetización
im mmf / NP;
% Calcular el valor rms de la corriente
' '
% Hacer la gráfica de la corriente de magnetización.
subplot(2,1,2);
plot(time,im);
title ('bfCorriente de Magnetización a 50 Hz');
xlabel ('bfTime (s)');
ylabel ('bfitI_{m} rm(A)');
axis ([0 0.4 -2 2]);
grid on;
» mag_current
La corriente rms a 60 Hz es 0.4894
La corriente rms a 50 Hz es 0.79252
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150. plot(circle, 'k');
hold on;
% Hacer una gráfica de los cuatro campos magnéticos
plot([0 real(Baa(ii))], [0 imag(Baa(ii))],'k','LineWidth', 2);
plot([0 real(Bbb(ii))],[0 imag(Bbb(ii))],'b','LineWidth', 2);
plot([0 real(Bcc(ii))],[0 imag(Bcc(ii))],'m','LineWidth', 2);
plot([0 real (Bnet(ii))],[0 imag(Bnet(ii))],'r','LineWidth',3);
axis square;
axis([-2 2 -2 2]);
drawnow;
hold off;
end
233. % Archivo M: v_curve.m
% Archivo M para crear una gráfica de la corriente en el inducido
% y la corriente de campo en el motor síncrono del ejemplo 5-2.
234. % Primero, inicializar los valores de la corriente de campo (21
% valores en el rango de 3.8-5.8 A)
i_f (38:1:58) / 10;
% Ahora inicializar todos los demás valores
i_a zeros(1,21); % Crear espacio para la matriz i_a
x_s 2.5; % Reactancia síncrona
v_phase 208; % Voltaje de fase a 0 grados
delta1 -17.5 * pi/180; % delta 1 en radianes
e_a1 182 * (cos(delta1) j * sin(delta1));
% Calcular la corriente en el inducido para cada valor
ii 1:21
% Calcular la magnitud de e_a2
e_a2 45.5 * i_f(ii);
% Calcular delta2
delta2 asin ( abs(e_a1) / abs(e_a2) * sin(delta1) );
% Calcular el fasor e_a2
e_a2 e_a2 * (cos(delta2) j * sin(delta2));
% Calcular i_a
i_a(ii) ( v_phase – e_a2 ) / ( j * x_s);
end
% Hacer la gráfica de la curva en V.
plot(i_f,abs (i_a),'Color', 'k','Linewidth',2.0);
xlabel('Corriente de campo (A)','Fontweight','Bold');
ylabel('Corriente en el inducido (A)','Fontweight','Bold');
title ('Curva en V del motor síncrono'),'Fontweight','Bold');
grid on;