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