Teorema de Ferrari (Máquinas eléctricas) en Octave

Este es un pequeño programa escrito en GNU Octave, un lenguaje de alto nivel para cómputo numérico.
El programa hace un pequeña simulación del Teorema de Ferrari, el cual nos permite hacer la equivalencia entre un campo pulsante y dos campos rotativos de sentido contrario de la mitad de amplitud que el campo inicial.
El programa es el siguiente:

# teorema_de_ferrari.m
#Licensed under GPL_v3.
# Un campo pulsante se puede escribir como dos
# campos rotativos de la mitad de amplitud que el original.
clear;
#Se establecen las condiciones basicas:
freq=60; # 60Hz
w=2*pi*freq; # velocidad angular (rad/s)
t=[0:1/6000:1/60]; # el tiempo para 60Hz
theta=0; # desfasaje de 0 grados
# Se definen los campos rotativos
Bsmr=0.5*cos(w*t-theta)-0.5*j*sin(w*t-theta);
Bscmr=0.5*cos(w*t-theta)+0.5*j*sin(w*t-theta);
# Se calcula el campo resultante:
Bs=Bsmr + Bscmr;
# Este circulo representa el valor maximo
# que esperamos:
circle_max=1*(cos(w*t)+j*sin(w*t));
circle=0.5*circle_max;
for ii=1:length(t)
plot(circle_max,’k’);
hold on;
plot(circle,’k’);
title(“Terorema de Ferrari:\n Un campo pulsante se puede escribir como dos campos rotativos de la mitad de amplitud que el original.”);
grid on;
# Se dibujan los cuatro campos magnéticos:
plot([0 real(Bsmr(ii))],[0 imag(Bsmr(ii))],’k’,’LineWidth’,2);
plot([0 real(Bscmr(ii))],[0 imag(Bscmr(ii))],’b’,’LineWidth’,2);
plot([0 real(Bs(ii))],[0 imag(Bs(ii))],’r’,’LineWidth’,2);
axis square;
axis ([-1 1 -1 1]);
drawnow;
hold off;
endfor



La salida es por GNUPlot:

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s