Mostrando entradas con la etiqueta Programas y scripts. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programas y scripts. Mostrar todas las entradas

jueves, 31 de enero de 2013

EL PROYECTO FORCE Y EL FORTRAN 77

Para aquellos que desean programar en FROTRAN 77, el línk abajo les llevará a la página del proyecto FORCE.
 
La página del proyecto FORCE, contiene: el software necesario para correr los programas en plataforma Windows 7 y también varios recursos así como documentación.


De modo a animarlos a programar con FORCE, en este link se adjuntan los programas elaborados en Fortran por el administrador de esta página; naturalmente están guardados como documento, por lo que se deberá realizar la respectiva transcripción respetando las reglas que FORTRAN requiere (si alguien necesita los archivos originales solo tiene que pedirlo y se hara el envio sin ningún costo). Estos programas tienen varios añitos pero aún trabajan bien; el programa es propiedad de esta página y puede ser empleado con fines académicos, debiendo mencionar a electricosas.blogspot.com como origen. El programa fue elaborado en base a las ecuaciones que se plantean en el libro: "Analysis of Electric Machinery" de los autores: Paul Krause, Oleg Wasynczuk y Scott Sudhoff. Los datos que se adjuntan corresponden a un motor de 2210 W, al cual se le aplican 127 V a 60 Hz; el tiempo de analisis fue de 0.6 segundos. En la página 190 de la referencia indicada, podrán encontrar otros parámetros de otras máquinas de inducción.

La figura siguiente muestra dos trazos correspondientes al torque y la velocidad del motorcito. Notese que una vez compilado y ejecutado el programa, se genera un archivo denominado TORVEL.TXT, el cual debe ser recuperado con excel para obtener los respectivos trazos.
 

RECORDANDO AL FORTRAN 77

El lenguaje FORTRAN es un tanto antiguo pero no obsoleto, aún posee muchas aplicaciones que en el presente artículo se pretende mostrar.

De modo a probar el sistema planteado en el artículo, el siguiente link proporciona los programas para la simulación y los datos necesarios.
El programa principal posee rutinas para poder efectuar el cambio de parámetros del sistema; sin embargo aqui no se los presenta y el programa es totalmente funcional sin las mismas. Se deberá transcribir todas las líneas de código tal y como lo requiere FORTRAN y creando las respectivas subrutinas.

jueves, 8 de diciembre de 2011

OPTIMIZACION DINAMICA NO LINEAL: EL METODO DEL GRADIENTE

Otra producción del blog que ya fue publicada en otros medios de difusión, pero que esta vez incluye los scripts en MATLAB con el que se elaboró el documento.
Control Optimo


También puedes descargar el documento y el script, aqui.

jueves, 13 de octubre de 2011

ALGUNAS CONSIDERACIONES BASICAS EN LOS ESTUDIOS DE ESTABILIDAD TRANSITORIA

En el presente post se deja un programa en MATLAB y el articulo correspondiente al título.


En el artículo encontrarás el programa para solucionar el problema planteado. Por la forma como fue elaborado el script, resulta algo lento. El programa lo puedes descargar aqui.

El srcipt fue desarrollado de tal forma que lee los datos de una carpeta ubicada en d:\MATLAB WORK archivos, pero se puede cambiar el lugar cambiando tambien las líneas correspondientes del programa. Los datos que requiere el programa en excel los puedes descargar aqui. Si te interesa conocer como se formó la matriz Ybus, lo puedes descargar aqui. Posteriormente puedes graficar con el comando plot los ángulos o las velocidades, por ejemplo si deseas graficar los angulos anotarás en el espacio de trabajo de MATLAB:

plot(time,xx1,time,xx2,time,xx3,time,xx4)

Si deseas las velocidades anotarás:

plot(time,xx5,time,xx6,time,xx7,time,xx8)

domingo, 27 de febrero de 2011

FILTRO KALMAN APLICADO A UN MOTOR DC

El siguiente programa es un script en MATLAB para estimar la velocidad de un motor DC.

%DATOS DEL SISTEMA
A=[0.4146 -0.0066;1.4643 0.9916];
B=[0.2802;0.3521];
H=[1 0];
u=12;
%MATRICES DE VARIANZA Y ERRORES
%cambiar este factor por 5, 10, 100 y ver
%como mejora la velocidad estimada
%----------------
factor=1;
%----------------
Q=[0.095 0.1194;0.1194 0.15]/factor;
R=0.04;
err_med_corr_armad=0.2;
err_med_tens_ent=1.1;
%DATOS INICIALES
x_est_apriori=[0;0];
P_apriori=[0 0;0 0];
K=[0;0];
x_est=[0;0];
P=Q;
x=[0;0];
%PARA LA SIMULACION
ia=zeros(1,1000);
w=zeros(1,1000);
t=1:1000;
t=t*0.0001;
%PROCESO ITERATIVO
for i=1:1000
%GENERAMOS LAS MEDICIONES RUIDOSAS
%-----------------------------------------------------------------
ruido_de_proceso=err_med_tens_ent*[0.2802*randn;0.3521*randn];
x=A*x+B*u+ruido_de_proceso;
ruido_mediciones=err_med_corr_armad*randn;
z=H*x+ruido_mediciones;
%-----------------------------------------------------------------
%ECUACIONES DE PREDICCION
%-----------------------------------------------------------------
x_est_apriori=A*x_est+B*u;
P_apriori=A*P*A'+Q;
%-----------------------------------------------------------------
%ECUACIONES DE CORRECCION
%-----------------------------------------------------------------
INNOVA=H*P_apriori*H'+R;
K=P_apriori*H'/INNOVA;
x_est=x_est_apriori+K*(z-H*x_est_apriori);
P=A*P_apriori*A'-A*P_apriori*H'*(1/R)*H*P_apriori*A'+Q;
%-----------------------------------------------------------------
%ALMACENAMOS RESULTADOS DE CADA ITERACION
%-----------------------------------------------------------------
ia(i)=x_est(1);
w(i)=x_est(2);
%-----------------------------------------------------------------
end
%GRAFICAMOS LA VELOCIDAD DEL ROTOR
plot(t,w,'k')


Los resultados obtenidos para un "factor" = 100, se muestra en la siguiente figura:

La señal medida y corrompida con ruido es: