Download Proyecto: Síndrome Kessler. - Computacion1
Document related concepts
no text concepts found
Transcript
Proyecto: Síndrome Kessler. Elías Barrio García El siguiente proyecto es una simulación realizada con el programa Matlab del llamado síndrome Kessler. Este síndrome es un efecto dominó que inutilizaría determinadas órbitas de la Tierra dejándolas inservibles para los satélites artificiales. Asignatura: Computación I 07/04/2014 Índice: Síndrome Kessler introducción teórica y motivación: página 2 Problemas a resolver y método de resolución: Algoritmo simplex. Método de integración de las trayectorias: Verlet. Velocidad orbital. Probabilidad y distribución. página 5 Estructura: programas y funciones. Problemas dentro de la programación. página 8 Bibliografía: página 10 1 Síndrome Kessler introducción teórica y motivación Durante todos estos años desde el lanzamiento del primer satélite, el Sputnik 1, en 1957, se han enviado al espacio cientos de misiones, tanto como para viajar por el sistema solar (las menos), como para colocar en órbitas alrededor de la Tierra satélites que hoy día son imprescindibles para el día a día. Sin embargo todos los objetos enviados al espacio tienen una misma característica: sin importar a donde vayan dejan una importante cantidad de residuos en las órbitas más bajas. Como consecuencia, tras 57 años de era espacial tenemos una gigantesca cantidad de basura acumulada en las órbitas terrestres. Esta basura o chatarra espacial está formada por cualquier objeto artificial sin utilidad, que orbita la Tierra. Se compone de cosas tan variadas como grandes restos de cohetes y satélites viejos, a restos de explosiones, o restos de componentes de cohetes como polvo y pequeñas partículas de pintura. Como un pequeño ejemplo sobre la facilidad de aparición de la basura el 11 de enero de 2007, los chinos lanzaron un misil balístico el cual ascendió hasta una órbita de baja altitud -865 kilómetros- e impactó contra un viejo satélite meteorológico. En una décima de segundo quedó convertido en 2.000 fragmentos de entre 5 y 10 centímetros de lado, 35.000 de alrededor de un centímetro y cerca de un millón de pedacitos de más o menos un milímetro. En esa décima de segundo, el volumen de desechos espaciales orbitando en torno a la Tierra aumentó en cerca de un 15 por ciento. Estados Unidos y Rusia, dejaron de ensayar sus misiles en los años 80 precisamente para no saturar el inmenso basurero espacial en torno al planeta. Un mes más tarde, el 19 de febrero de 2007 un cohete ruso lanzado un año antes en una misión fallida que había quedado en órbita con todo su combustible, explotó por la elevada temperatura derivada del rozamiento con la atmósfera. Un millar de grandes fragmentos más, de entre 1 y 10 centímetros, dando vueltas en torno a la Tierra. Todos estos ejemplos más allá de la curiosidad de los mismos me parece destacable reseñarlos para visibilizar la dificultad de estimar la fragmentación de un cuerpo que explota o colisiona en el espacio. 2 Según datos de la ESA la composición de la basura es la siguiente: Es decir, la inmensa mayoría de los cuerpos que orbitan alrededor de la Tierra son totalmente inútiles. También hay que destacar la dificultad de eliminar esa basura, ya que en su mayoría son partículas minúsculas que son muy difíciles de detectar y controlar, por otra parte las enormes velocidades que llevan los cuerpos. Una de las tareas pues, que debemos plantearnos entonces es tratar de no aumentar esa basura, lo que se puede conseguir usando cohetes que dejen sus fases en órbitas bajas que colapsen y se desintegren en la atmósfera, haciendo lo propio con los satélites que estén en órbitas bajas y aquellos que se sitúen en órbitas altas como la geoestacionaria sean retirados hacia órbitas cementerio, demasiado alejadas como para tener una utilidad. Aunque por otra parte es cierto que se están intentando llevar a cabo proyectos para tratar de acabar con esta basura, como la destrucción de las partículas más pequeñas mediante el uso de láseres, como la recogida de los objetos grandes con satélites suicidas (proyecto CleanSpace One). La clasificación de las diferentes órbitas viene dada por: LEO (Low Earth Orbit) de baja altitud: hasta los 2000km MEO (Medium Earth Orbit) de media altitud. GEO (Geostationary Earth Orbit), siempre sobre el paralelo 0º (el ecuador de la Tierra) a ± 35.768 Km 3 En el proyecto solo nos hacemos cargo de las LEO ya que son las que tienen más probabilidades de verse afectadas por el efecto Kessler. El síndrome de Kessler es un escenario propuesto por el consultor de la NASA Donald J. Kessler en el cual el volumen de basura espacial en órbita baja terrestre sería tan alto que los objetos en órbita serían impactados con frecuencia por la basura, creándose así aún más basura y un mayor riesgo de otros impactos sobre otros objetos. Mientras que el número de satélites en órbita crece y los viejos satélites se acumulan, el riesgo de este escenario de colisiones se hace mayor. Con una colisión bastante grande (tal como una entre una estación espacial y un satélite), la cantidad de basura generada podría ser lo suficientemente alta como para hacer la órbita baja de la tierra inutilizable. Con este panorama lo que nos planteamos es elaborar un programa que simule de la forma más veraz el síndrome. Un programa en el que se pueda apreciar la evolución de un sistema inicial de basura hasta un escenario en el que las órbitas queden obstruidas tras darse una cadena de colisiones que aumenta en probabilidad. Como conclusión sobre la motivación del proyecto solamente el pensamiento de lo devastador que sería que se diera este efecto, acabando probablemente con nuestra forma de vivir la cotidianeidad. Resulta extraño pensar que algo tan ajeno, lejano y sobre todo desconocido podría afectarnos de una forma tan directa. 4 Problemas a resolver y método de resolución: Probabilidad y distribución: La primera cuestión que tenemos es que la gran mayoría del proyecto se basa en asignar variables de forma aleatoria, tanto como para posiciones, velocidades, masas, números de fragmentación… Por lo tanto es prioritario hacer que todas estas distribuciones se hagan de una forma con cierta coherencia física. Se escoge usar una distribución gaussiana, o distribución normal estándar para generar todos estos datos. Se elige este tipo de distribución porque: -Nos ofrece valores tanto negativos como positivos con la misma probabilidad, algo que otras funciones de Matlab no hacen. -Los valores que nos dan se encuentran con casi toda probabilidad en una horquilla fácilmente definible, estos son los llamados intervalos de confianza que vienen señalados en la figura más abajo. Además priorizan los valores medios. Una función gaussiana es de la forma: Y su integral: Donde tenemos que si a es igual al valor indicado arriba a la derecha, el valor de dicha integral es 1, en cuyo caso la función es la función de densidad de una variable aleatoria con distribución normal de media μ=b y varianza σ2=c2. 5 Velocidad orbital: La segunda cuestión que se nos plantea, es referente a la obtención de las velocidades. Nuestro programa en un inicio nos da posiciones iniciales de forma aleatoria, si siguiéramos el mismo camino para obtener las velocidades tendríamos que en primer lugar los vectores de la velocidad y la posición no fueran perpendiculares dando lugar a órbitas elípticas. Esto podría haber sido una opción no excesivamente compleja, pero en este caso el intentar complicarlo no habría aportado nada, ya que las órbitas de los satélites son casi perfectamente circulares. En segundo lugar generar las velocidades aleatoriamente podría dar energías que correspondiesen a órbitas abiertas, lo cual tampoco tiene sentido físico ya que queremos analizar los cuerpos que orbitan la Tierra. La gráfica superior es propia de un sistema de fuerzas centrales. Representa el potencial gravitatorio e indica cuando una órbita es abierta o cerrada en función de su energía, que a su vez depende tanto de su radio como de su velocidad. Para calcular el módulo de la velocidad para una órbita circular solo tenemos que calcular aplicando la segunda ley de Newton: √ 6 Con este otro método se podrían calcular fácilmente la velocidad de órbitas elípticas. Método de integración de las trayectorias: Verlet Integrando la ecuación del movimiento de newton mediante el método de Verlet obtenemos la trayectoria de cada partícula. El cálculo se realiza de la forma siguiente: De la aceleración: Despejamos la posición: Junto con una estimación de la velocidad: Podemos despejar la posición i+1, es decir, la inicial y todas las siguientes, de esta forma calculamos la trayectoria. 7 Estructura: programas y funciones. Problemas dentro de la programación. Siguiendo el orden en que leería Matlab todo el programa: MeanProgramKessler: Lo primero que recibe este programa es una llamada de la función: StartKessler: Esta función recibe el número n inicial de partículas y a partir de ahí elabora: Un número n de vectores de coordenadas x,y,z con radios superiores al de la Tierra distribuidos de forma normal en un cubo de lado veinte veces el radio de la Tierra con esta en su centro. Luego se pasan varios filtros que solo dejan las partículas que tuvieran un radio entre los 100 y los 1400 km de altura sobre la tierra. Un vector de masas cuyo primer componente es la masa de la Tierra y el resto masas de satélites consideradas en una horquilla entre 100kg y 1t. Un vector de velocidades que se elabora de la siguiente forma: primero se obtienen los modulos de las velocidades correspondientes a cada radio, luego se genera un vector unitario perpendicular a cada radio y finalmente se multiplican ambos, vector unitario y modulo de la velocidad. La función nos devuelve los radios velocidades y masas iniciales que vuelven al programa principal que en este punto hace: MeanProgramKessler: Con el output de startKessler llama a la función verletKessler y derivativeKessler que integran las posiciones y calculan las velocidades como se ha explicado en los apartados anteriores. Más adelante este programa representa en una figura una simulación de la Tierra y las n primeras partículas que la orbitan. Tras esto el programa nos introduce en un bucle while en el que se comprueba si hay colisiones y se generan nuevas partículas y del que saldrá cuando el nuevo número de partículas alcance las diez mil. Este bucle lo primero que hace es llamar a: collisionChecking_collisionResultsKessler Problemas: ¿Porque no se realiza la malla que en un principio se iba a hacer y se indicó en el hito? Como las orbitas son circulares en vez de comprobar las posiciones de cada partícula en cada momento podemos clasificar primeramente aquellas que sean probable colisionen, es decir aquellas que su r0 sea similar, luego se comparará las posiciones en cada instante de esas partículas, ya si la distancia entre ambas es menor que un determinado radio de colisión se entiende que se ha producido el choque y se generan nuevas partículas. No se hizo la malla porque para adjudicar a cada celda de la malla una partícula había que comparar todas las posiciones con otros tantos vectores que definirían la malla, y como la utilidad de la malla se intentaba que fuera reducir los cálculos para quitar labor a Matlab al final se desiste y se utiliza el método detallado arriba. 8 Esta función pues primero calcula la diferencia entre los radios de todas las órbitas (hay que recordar que las órbitas son en las tres dimensiones, no solo en un plano, por eso se puede hacer este filtro), luego se comprueba si los elementos de esa matriz son menores a diez km, de ser así se guardan las partículas entre las que se calculó la masa para más adelante calcular su distancia entre sus posiciones para todos los instantes. Si resulta que esa distancia en algún momento es menor que 10 km se guardan las posiciones y masas de las dos partículas que colisionan en respectivas matrices y se llama a la función que nos recreará el choque: elasticCollision Problemas: Para esta función finalmente solo se va a hacer uso de la conservación de la masa. La conservación del momento lineal y la energía finalmente porque la posible resolución del problema tampoco garantizaba que el proyecto se ajustara mejor a la realidad. Al ajustar las velocidades podrían quedar valores de la velocidad que no se ajustaran a órbitas cerradas circulares, sino elipses o trayectorias abiertas, cosa que no nos interesa para el programa. También podía pasar que si esas velocidades se forzaban a ser para orbitas circulares éstas tuvieran radios que no corresponden con la realidad, como radios menores que la tierra o en órbitas demasiado lejanas que no contribuirían al tema que queremos estudiar que es el colapso de las orbitas bajas de la tierra. Concluyendo lo que me echó para atrás para tratar de resolver este problema fue el gastar demasiado tiempo en un programa que luego podría resultar inútil y contraproducente para el proyecto. Esta función lo primero que hace es generar n nuevas masas que están escogidas a partir de una gaussiana estándar con la siguiente parametrización: media=50 y desviación típica=16, lo que nos da un vector de masas con un 99,73% de probabilidades de quedar entre 0 y 100, pero dando además mayor prioridad a los valores intermedios (lo realmente interesante es que no cogiera valores bajos). Tras generar el nuevo número de partículas resultantes, aplica la función randfixedsum para crear un vector de masas que cumpla la conservación de la masa. La nueva posición de las masas se calcula de sumarle a la posición media entre ambas partículas (no se encuentran en el mismo punto, si no que se ha dado un ‘’radio de impacto’’) un radio de dispersión. Este radio de dispersión no puede ser mayor de 10km y al igual que el resto de las partículas tampoco puede quedar fuera de la horquilla de LEO. Finalmente genera un vector de velocidades y masas con el mismo proceso que en la función startKessler y devuelve esas matrices a la función collisionChecking_collisionResultsKessler, que solamente las saca como outputs de nuevo en MeanProgramKessler: Luego lo que hace este programa es iterar con un bucle while la comprobación de colisiones hasta que se alcance el numero de particulas considerado como límite de colapso de la órbita baja. A cada nueva iteración le añade al vector de posiciones inicial el resultante de la colisión y ademas elimina las dos partículas que hayan colisionado. En último lugar representa la última posición de todas las partículas para mostrar la apariencia de saturación. 9 Otros problemas dentro de la computación: El principal problema al que me he enfrentado ha sido la falta de datos y por tanto a tener que hacer estimaciones de por ejemplo el número de fragmentos generados en una colisión de dos satélites. He tenido que ir haciendo demasiadas aproximaciones inciertas y que en la mayoría de los casos pueden resultar algo burdas. Y por otra parte las dificultades de parametrizar los radios de colisión y demás filtros que tienen, dado que filtros demasiado estrictos daban errores enseguida por generar bucles infinitos o no permitir avanzar al programa al no dar los outputs necesarios. O si por el contrario esos filtros eran demasiado laxos las condiciones se alcanzaban demasiado pronto y no daba tiempo a que se diese una evolución realista del sistema. Se añade un programa de prueba (pruebaCollisionCheckin_collisionResultsKessler) a los nombrados en la descripción del apartado anterior dado que el programa principal no funciona adecuadamente. En este programa de prueba se pone de manifiesto una colisión y se dibuja un resultado (como en la imagen inferior). Se puede apreciar que todas las partículas tras la colisión quedan en órbitas muy similares y en un rango determinado de direcciones. La similitud de todas esas órbitas aumenta o disminuye notablemente según se varíen los parámetros del radio de dispersión de las partículas. Este es solamente un ejemplo de todos los parámetros que influyen y que hacen que el proyecto, (que ya de por sí no permite un resultado realista por la necesidad de acotar el problema a algo plausible de realizar) sea muy complejo de ajustar para su correcto funcionamiento. (a la izquierda el radio de dispersión es muy amplio, a la derecha muy reducido, el primero permite que el programa pudiera seguir iterándose ya que la posición inicial de las partículas sería mayor que el radio determinado para la colisión, sin embargo tampoco es realista porque supone que un instante después de la colisión haya partículas que aparezcan a centenas de kilómetros de distancia) 10 Bibliografía: Vídeo sobre la evolución de la basura espacial: http://www.microsiervos.com/archivo/ciencia/20000-dias-en-el-espacio-y-un-monton-debasura-espacial.html Información teórica sobre órbitas de satélites y basura espacial: http://www.astropractica.org/tact/basesp/basesp.htm http://www.upv.es/satelite/trabajos/Grupo12_99.00/orbitas.htm http://www.gr.ssr.upm.es/docencia/grado/csat/material/CSAT09-2ManiobrasLanzamientos.pdf Programa versado sobre el ajuste de sumas para la conservación de la masa: http://www.mathworks.es/matlabcentral/fileexchange/9700-random-vectors-with-fixedsum/content/randfixedsum.m En general para ayudas con la programación: http://www.mathworks.es/es/help/matlab/ http://www.lawebdelprogramador.com/ 11