Herramientas de usuario

Herramientas del sitio


acemu:ensayos:jornadas:03_2010:software

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
acemu:ensayos:jornadas:03_2010:software [2012/06/18 18:17] luisacemu:ensayos:jornadas:03_2010:software [2012/06/19 16:47] (actual) – [Página en Construcción] luis
Línea 3: Línea 3:
 ====== Simulación - Programa Escrito en AWK para RUNGE-KUTTA 4 ====== ====== Simulación - Programa Escrito en AWK para RUNGE-KUTTA 4 ======
  
-==== Página en Construcción ====+El siguiente es el fuente para la simulación de altura y velocidad de un cohete, con los datos de empuje del motor, utilizando el método de Runge-Kutta de 4to orden.\\
  
-Explicacion, fuentes y pruebas del programa desarrollado por kenneth+La base de este programa, es la vista en la sección anterior  [[ACEMU:Ensayos:Jornadas:03_2010:runge-kutta|Simulación por Método Runge Kutta]]
  
-Modifiqué el programa para usar RK4 y el código es el que adjunto:+==== El Fuente ==== 
 + 
 +<code>
 Código: [Seleccionar] Código: [Seleccionar]
 # Programa AWK para calcular altura y velocidad de un cohete a partir de # Programa AWK para calcular altura y velocidad de un cohete a partir de
 # los datos de empuje del motor. # los datos de empuje del motor.
-# El método empleado es Runge-Kutta de orden 2+# El método empleado es Runge-Kutta de orden 4
 # Inicializamos algunos datos # Inicializamos algunos datos
 BEGIN { BEGIN {
Línea 17: Línea 19:
   Cd=0.7;              #Coeficiente de Fricción del Cohete (drag Coeff)   Cd=0.7;              #Coeficiente de Fricción del Cohete (drag Coeff)
   da=1.29;             #Densidad del aire   da=1.29;             #Densidad del aire
-  A=0.00196           #Area de sección transversal del cohete: radio=2.5cm +  A=0.00196            #Area de sección transversal del cohete: radio=2.5cm 
-  C=0.5*A*Cd*da    #coeficiente para calculo de drag del cohete+  C=0.5*A*Cd*da        #coeficiente para calculo de drag del cohete
 } }
 # Primero leemos todos los datos. El archivo de datos tiene 2 columnas: tiempo # Primero leemos todos los datos. El archivo de datos tiene 2 columnas: tiempo
Línea 81: Línea 83:
 } }
  
-En este caso queda en evidencia la importancia de incluir el término de fricción con el aire, algo por demás obvio. Obtuve los siguientes resultados:+</code> 
 + 
 +==== Resultados Obtenidos ==== 
 + 
 +En este caso al incluir el término de fricción del aire, se obtienen los siguientes resultados : 
 + 
 +**Tiempo de vuelo total**: aprox. 18.7 seg.\\ 
 +**Velocidad máxima alcanzada**: 87.97 m/s a los 1.283 segundos de vuelo (en ese momento se encuentra a unos 64.6 mts. de altura)\\ 
 +**Apogeo**: 401 mts. a los 9.35 seg.\\ 
 +**Velocidad final del vector al llegar a tierra**: -80.6 m/s (no se considera apertura de paracaídas)\\ 
 + 
 +La diferencia con el vuelo sin fricción es de nada menos que 84 mts. 
 + 
 +Una cosa en la que hubo que improvisar fue en la manera que actúa la fuerza de fricción, porque siempre se opone al movimiento, eso quiere decir que cambia de signo cuando el cohete empieza a caer.\\ 
 +Lamentablemente AWK es un lenguaje para procesar textos, no para cálculo científico, y si bien cuenta con una muy pequeña biblioteca de funciones matemáticas, no tiene la función valor absoluto.\\ 
 + 
 +Para poder solucionar este problema, incluimos una variable "**sig**" que registra el signo de la velocidad, de manera de cambiar el sentido en que se aplica la fuerza de fricción del aire en la ecuación diferencial. 
 + 
 +Evidentemente con esto estamos llegando al límite de lo que puede darnos AWK para resolver este tipo de problemas. 
  
-Tiempo de vuelo totalaprox 18.7 s +==== Comparaciónsimulación presentada vssimulación OpenRocket ====
-Velocidad máxima alcanzada: 87.97 m/s a los 1.283 segundos de vuelo (en ese momento se encuentra a unos 64.6 m de altura) +
-Apogeo: 401 m a los 9.35 s +
-Velocidad final del vector al llegar a tierra: -80.6 m/s (sigue sin abrir el paracaidas!  :D)+
  
-¡La diferencia con el vuelo sin friccion es de nada menos que 84 m!!!  :o+Realizamos algunos ajustes al modelo de cohete con [[http://openrocket.sourceforge.net/OpenRocket|OpenRocket]], para lo cual elegimos un motor con un impulso total similar al valor del MX#001, de 185 Ns.\\ 
 +Se ajustó el peso del cohete con una más cercana a la que creemos sea la real, y se efectuó una simulación con un motor similar (lo más parecido posible) al MX#001.\\ 
  
-Una cosa en la que tuve que improvisar fue en la manera que actúa la fuerza de fricción, porque siempre se opone al movimiento, eso quiere decir que cambia de signo cuando el cohete empieza a caerLamentablemente AWK es un lenguaje para procesar textos, no para cálculo científico, y si bien cuenta con una muy pequeña biblioteca de funciones matemáticas, no tiene la función valor absoluto. Así que metí una variable sig que registra el signo de la velocidad de manera de cambiar el sentido en que se aplica la fuerza de fricción del aire en la ecuación diferencial Este último punto seguro que muchos de mis alumnos se lo comerían, y al caer el cohete ¡aceleraría gracias a la fricción del aire!  :o ;D  :P +La altura obtenida con estos datos utilizando OpenRocket, fue de 760 mts.
  
-Evidentemente con esto estamos llegando al límite de lo que puede darnos AWK para resolver este tipo de problemas. Las próximas versiones tendrán que ser en perl o python    ::)+Utilizando el programa de simulación antes visto, usando los datos de empuje reales del motor, obtuvimos una altura de 790 metros, que coincide bastante bien con la simulación del OpenRocket.
  
-Estuve haciendo algunos ajustes al modelo de cohete con OpenRocket y elegí un motor con un impulso total similar al MX001 de 185 Ns. En realidad me había extralimitado un poco con el peso del coheteahora lo ajusté un poco más y pude hacer una simulación más acorde con a la realidadcon una masa estimada más cercana a la que creo será la real y con un motor más parecido al MX001.+Somos conscientes que no estamos comparando las mismas cosasporque hay una discrepancia en la masa y en los motorespero para ser datos similares, reconforta que la simulación propuesta arrojo resultados parecidos.
  
-La altura que obtuve fue de 760 metrosnada mal!+Respecto a las simulaciones vistas en [[ACEMU:Ensayos:Jornadas:03_2010:runge-kutta|Simulación por Método Runge Kutta]]se corrigió la masa del cohete, reduciendo la misma en 300 grs, y ajustando el coeficiente de fricción a lo que maneja OpenRocket: 0.61.\\ 
 +Ajustando ambos valores las simulaciones se parecen bastante. 
  
-Con mi programita de simulación caserousando los datos de empuje reales del motor, obtuve una altura de 790 metros, que coincide bastante bien con la simulación del OpenRocket  8)+De todos modos creemos que pueden haber ocurrido algunas compensaciones de erroresque nos acercaron a los resultados de OpenRocket.
  
-Claro que no estoy comparando las mismas cosasporque hay una discrepancia en la masa y en los motorespero para ser cosas parecidas, al menos me reconforta que dió algo parecido. En las simulaciones anteriores le había metido como 300 g de más al peso del cohete y un coeficiente de fricción un poco mayor que el que calcula OpenRocket de 0.61. Ajustando ambos valores las simulaciones se parecen bastanteo sea que creo que vamos por buen camino  +**Las dos diferencias fundamentales entre los cálculos son:** 
-El programita ya lo viste, es lo que publiqué en el foro 8)+  - no usamos el mismo motorsino motores con igual impulso total.  
 +  - en el cálculo en usamos un coeficiente de fricción constante y no variable como creemos usa Openrocket, pero como las velocidades no son tan altasel período de aceleración es muy corto, las discrepancias no serían tan grandes.
  
-Pero me imagino que ahí deben haber ocurrido algunas compensaciones de errores que me acercaron al resultado de OpenRocket. Las dos diferencias fundamentales entre los cálculos son: +Aunque el programa es absolutamente casero y está a años luz de estos otros programasal menos parece reproducir razonablemente bien la altura máxima que puede alcanzar el vector.
-a) no usamos el mismo motor, sino motores con igual impulso total (una deficiencia importante de OpenRocket es la dificultad de insertar datos de motros en su base de datosporque lo ideal para comparar sería meter los datos que recogimos en la prueba de motores). +
-b) en el cálculo en sí, uso un coeficiente de fricción constante y no variable como creo que usa Openrocket, pero como las velocidades no son tan altas y el período de aceleración es muy corto, se ve que no da para que la discrepancia sea tan grande.+
  
-Pero por lo menos me dejó contento que en condiciones similares el resultado obtenido sea parecido. Es como decía en otro post, no estamos tan lejos de reproducir los resultados de RockSim u OpenRocket, no son TAN sofisticados, no creo que estén haciendo otra cosa que lo mismo que hago yo: aplicar la ley de Newton a secas. Aunque mi programa es absolutamente casero y está a años luz de estos otros programas, al menos parece reproducir razonablemente bien la altura máxima que puede alcanzar el vector. Ojo, eso no es lo mismo que simular el vuelo. Lo que estoy haciendo es asumir que el vector se mueve en una sola dimensión (la vertical), y sabemos que el bicho en realidad puede agarrar para cualquier lado, pero por lo menos sirve para estimar la altura máxima que podría alcanzar el cohete.+Claro que eso no es lo mismo que simular el vuelo; lo que estamos haciendoes asumir que el vector se mueve en una sola dimensión (la vertical), y sabemos que el cohete en realidad puede volar para cualquier lado, pero al menos este programa sirve para estimar la altura máxima que podría alcanzar el cohete.
  
  
  
 [[ACEMU:Ensayos:Jornadas:03_2010|Retorno a página anterior]] [[ACEMU:Ensayos:Jornadas:03_2010|Retorno a página anterior]]
acemu/ensayos/jornadas/03_2010/software.1340068648.txt.gz · Última modificación: 2012/06/18 18:17 por luis