You are on page 1of 7

Sistema Antimisiles

Abstract
Se tomó un sistema antimisiles y expuso su funcionamiento, analizando el error producido
por el contador del reloj interno, que almacena el tiempo transcurrido en décimas de
segundo, en un registro entero de 32bits, el cual es usado para hacer los cálculos del
seguimiento de posibles misiles. Al hacerse la conversión a punto flotante 24bits se genera
un error en la nueva posición calculada para el misíl, el cual al ser demasiado grande causa
que sea imposible realizar el seguimiento.

Keywords : Missiles, floating point rounding errors, computation, numerical analysis

Introducción
El MIM-104 Patriot, es un sistema de misiles de tierra-aire con alcance efectivo de
160 km y velocidad máxima mach 5 (cinco veces la velocidad del sonido). Este fue
fabricado por la compañía estadounidense Raytheon, creados para reemplazar a los
misiles nike-hércules de longitud media-alta.
El sistema Patriot funciona como un batallón, donde cada uno de estos tiene seis
baterías Patriot y un centro de comando. Cada batería, contiene a su vez, seis
lanzadores de misiles, una unidad de radar, una estación de control de compromiso
y un grupo de transmisión de comunicaciones.

Por último, cada lanzador tiene cuatro contenedores adjuntos, cada uno con un misil
Patriot que contiene una ojiva que pesa entre 70 y 80 kg.

El 25 de febrero de 1991, este sistema de defensa operando en Dhahran (Arabia


Saudita) no logró interceptar un misil Scud entrante, el cual impactó en los cuarteles
del ejército de los Estados Unidos, matando a 28 soldados e hiriendo a 98.

La causa principal, fueron los errores numéricos por utilizar truncamiento en lugar de
redondeo en el sistema que calcula el momento exacto en que debe ser lanzado el
misil. (By Roberto y Juan :v )
Conceptos Previos y Componentes del sistema
Patriot

Punto flotante

Para representar los números reales se introduce el punto decimal. De esta forma, los
números positivos menores que la unidad se representan como

0.a_{1}a_{2}...a_{n} = a_{1}10^{-1}+a_{2}10^{-2}+...+a_{n}10^{-n}

Por ejemplo:
0.123= 1x10^{-1}+2x10^{-2}+3x10^{-3}
Dado que los números reales pueden tener un número infinito de dígitos, los números
reales se representan en un ordenador mediante un formato denominado de punto flotante,
que utiliza solo un número finito de dígitos.

Truncamiento

El truncamiento consiste en reducir el número de dígitos a la derecha del separador


decimal,descartando los menos significativos.

Por ejemplo: Dados los números reales:

3.14159265358979...
32.438191288
6.34444444444
Truncar estos números a 4 dígitos decimales consiste en limitar a 4 los dígitos a la derecha
de la coma decimal. El resultado es:

3.1415
32.4381
6.3444

Radar
Un radar de red de fase multifuncional, que permite detectar y rastrear objetivos.
Cómo máximo se puede rastrear hasta 100 objetivos de los cuales nueve pueden
ser interceptados de manera simultánea.

Además, la unidad de radar tiene una antena receptora de seguimiento de misiles


que se utiliza para comunicarse con el misil Patriot. Otra parte importante de la
unidad de radar es la puerta de alcance,este es un dispositivo de detección
electrónico en el sistema de radar que filtra toda la información que no proviene de
un determinado rango de distancia, es decir, solo procesa la información que
proviene desde dentro del rango de distancia. (By Roberto y Juan)

Misiles
Los misiles Patriot son lanzados desde cada batería del sistema a velocidades
superiores a mach 5. Cuando el misil Patriot se acerca lo suficiente al objetivo, que
en este caso sería el misil Scud, la ojiva en su interior detona y los fragmentos se
disparan en la dirección del objetivo para destruirlo. (By Roberto y Juan)

Sistema de Cómputo / algoritmo


El sistema de control de los misiles Patriot cuenta con un reloj interno, que
almacena el tiempo transcurrido desde el inicio del equipo, en 0.1 segundos.
Este tiempo es almacenado en un registro de 32 bits, como un entero.
El algoritmo para determinar si la amenaza era real, consiste en almacenar los datos
del objeto detectado : posición, tiempo y velocidad.
Tomando en cuenta que el radar demora una cantidad de tiempo para enfocar la
puerta de alcance, se calcula la zona en la que el objeto estará, a partir de los datos
iniciales, en un tiempo t’.
Dado que la velocidad y coordenadas del objeto están almacenadas como punto
flotante en registros de 24 bits (2 bits signo, 16 mantisa, 6 exponente) se necesita
que el tiempo también esté almacenado como punto flotante para poder realizar los
cálculos, así que el tiempo de máquina (entero) se multiplica por 0.1 para obtener el
tiempo en segundos, y en punto flotante.
Teniendo estos datos, se calcula la nueva supuesta posición del objeto con la
fórmula de P’ = P + (t_new - t_old)*v
Una vez calculada la nueva posición, se enfoca en esa zona la puerta de alcance y
se determina si el objeto se encuentra o no, y según eso coordina si se lanza los
misiles de intercepción, o si se calcula nuevamente una posición para determinar si
el misil Scud se encuentra efectivamente ahí. (Los misiles no se lanzan a menos
que se esté seguro de la trayectoria de los misiles Scud)

Error
Antes de explicar cómo afecta la teoría del error en nuestro problema particular,
daremos las definiciones estándar de error, para poder estar en contexto.
Aproximación ​: forma numérica de expresar cifras como números de máquina. La
aproximación que se da, depende de la máquina usada y de cuánta precisión
queremos. Líneas arriba, se habló del truncamiento, el cual es un tipo de
aproximación muy usada actualmente y es la que usaremos en el presente trabajo.
Error absoluto​ : Si $x \in \mathbb{R}^n$ y $x^{*} \in \mathbb{R}^n$ una
aproximación de x. Se define el error absoluto ( respecto a esta aproximación )
cómo :

$$ || x-x* || $$

Una pregunta natural, es saber que norma usar. La respuesta es cualquiera, sin
embargo, no es algo tan sutil como eso. Al cambiar de norma nuestro error,
inevitablemente, va a cambiar empero como todas las normas en $\mathbb{R}^n$
son equivalentes podemos acotar y llegar a expresiones con otros errores
provenientes de otras normas. En la práctica, se usa la norma del máximo o de la
suma, por su sencilla forma de cálculo.

Error relativo​ : Si $x \in \mathbb{R}^n$ y $x^{*} \in \mathbb{R}^n$ una aproximación


de x. Se define el error relativo ( respecto a esta aproximación ) cómo :

$$ \dfrac{|| x-x* ||}{||x||} , x \neq 0$$

La causa principal del desastre fueron los errores numéricos de la computadora. El


sistema mide el tiempo en décimas de segundo, así que ese tiempo se multiplica
por 0,1 para producir el tiempo en segundos. Este cálculo se realiza utilizando un
registro de punto fijo de 24 bits. En particular, el valor 0,1, como tiene una expansión
binaria sin terminación, se corta a 24 bits después de la coma. El pequeño error de
corte, cuando se multiplica por un gran número que da el tiempo en décimas de
segundo, da lugar a un error más significativo. De hecho, la batería del misil Patriot
duran aproximadamente alrededor de 100 horas. El número 0,1 es igual a

1 1 1 1 1 1
24
+ 25
+ 28
+ 29
+ 2 12
+ 2 13
+ .....

En otras palabras, la expansión binaria de 0,1 es:

0, 0001100110011001100110011001100.....

Ahora el registro de 24 bits en el Patriot tendría que almacenar en su lugar


0,00011001100110011001100 introduciendo un error de:
0, 0000000000000000000000011001100.....

binario, o aproximadamente 0,000000095 decimal. Multiplicando por la cantidad de


décimas de segundo en 100 horas, da:

0, 000000095 × 100 × 60 × 60 × 60 × 10 = 0, 34 segundos

Entonces, el error de tiempo resultante debido al error de corte magnificado es de


aproximadamente 0,34 segundos.
Un Scud viaja aproximadamente a unos 1.676 metros por segundo, y por eso viaja
más de medio kilómetro en este tiempo. Esto es lo suficientemente lejos como para
que el Scud entrante estuviera fuera de la "puerta de rango" que rastreaba el Patriot.
(By Jimmy)

Análisis

¿Qué aumentó la inexactitud hasta un punto en que se convirtió en un problema?

Según el informe de la Oficina de Contabilidad General, el efecto de la inexactitud


es proporcionalmente lineal a la velocidad de los objetivos y al tiempo de ejecución
de los sistemas Patriot. Un Scud vuela aproximadamente a una velocidad de 3750
millas por hora. Tales altas velocidades están incrementando significativamente el
efecto de la inexactitud. Pero el tiempo de ejecución es un factor aún mayor en esta
ecuación porque cuanto más alto es el reloj inicial en décimas de segundo, mayor
es el error de redondeo. El ejército israelí midió un cambio del 20 por ciento del
alcance después de que el sistema funcionó durante ocho horas seguidas. Estos 20
por ciento eran 55 metros en total y equivale a un error de reloj de 0.0275 segundos.
De acuerdo con los funcionarios de la Oficina del Proyecto Patriot, el sistema Patriot
no rastreará a un Scud cuando haya un cambio de alcance del 50 por ciento. Este
cambio se calculó para aparecer después de 20 horas de uso continuo. Pero los
oficiales del Ejército creían que los usuarios no estaban ejecutando su sistema
Patriot por más de ocho horas continuas. Pero la batería en cuestión en Dhahran
funcionó durante 100 horas el 25 de febrero de 1991. Este tiempo de ejecución en
segundos (100h × 60 × 60 × 10) equivale a un valor de reloj de 3600000 10 o
110110111011101000000 2 , un error de 0,3433 segundos y un cambio de rango de
687 metros. Esos 687 metros son un poco más de un 250 por ciento de
desplazamiento del alcance, que es cinco veces más alto que el cambio donde el
Patriota ya no puede rastrear a un Scud. (By Jimmy)
Tiempo Tiempo Tiempo Inexactitud Cambio de
(Horas) (Segundos) calculado (Segundos) rango (Metros)
(Segundos)

0 0 0 0 0

1 3600 3599.9966 0.0034 7

8 28800 28799.9725 0.0275 55

20 72000 71999.9313 0.0687 137

48 172800 172799.8352 0.1648 330

72 259200 259199.7528 0.2472 494

100 360000 355999.6667 0.3433 687

Observaciones
El error a causa de truncamiento pudo ser evitado si se empleaba 8 o 16 conteos
por segundo en lugar de 10, pues ⅛ y 1/16 tienen expansión finita en base 2.

En caso de ser necesario el conteo en décimas de segundo y el truncamiento, lo


recomendable sería reiniciar el sistema en periodos de tiempo para que el error no
se incremente más de lo permitido o emplear más bits para el almacenamiento de
tiempo para tener un mayor duración de operación sin riesgo.

Propuestas de solución :
Reinicio forzado del sistema :
La primera sugerencia para evitar errores demasiado grandes es : Reiniciar el sistema antes
de que el error acumulado llegue a límites inadmisibles. Ya que esto tendrá el efecto de
reiniciar el contador del reloj a 0, se podría coordinar un reinicio regular cada 10 horas por
ejemplo.
Sin embargo este método tiene también sus desventajas, entre ellas está el que mientras el
sistema esté reiniciándose no se puede detectar amenazas entrantes, por lo que el sistema
tendrá unos minutos de vulnerabilidad.

Uso de más precisión en los registros:


Esta sugerencia está en usar un registro más grande para almacenar los valores
involucrados en los cálculos, especialmente de los registros usados para almacenar el
tiempo en punto flotante proveniente del contador del reloj, lo que aumentaría
significativamente la precisión de los valores calculádos e incrementara el tiempo de uso del
sistema antes de que el error acumulado llegue a valores que hagan el sistema ineficaz.

Sin embargo, este método también presenta inconvenientes, entre los cuales estaría que
habría que realizar no solo cambios en el software, sino también en el hardware, lo cual
traería consigo una cantidad de problemas de compatibilidad a resolver.

Evitar el cálculo crítico:


Una solución mucho más práctica, sería la de evitar la multiplicación crítica de 0.1 por el
valor del registro del contador del reloj. Para esto multiplicaremos el valor del contador (en
décimas de segundo) por la velocidad del misíl que habrá que convertir en la unidad
apropiada, y esto se logra multiplicando por 0.1.
Si bien, la multiplicación por 0.1 se sigue dando, esta se encuentra en otra parte del cálculo,
y se dará por una cantidad que no pasará de la velocidad del misil (aproximadamente
2011.68 m/s). Por lo que este cálculo producirá un error mucho menor, y que no es
acumulado con el paso del tiempo.
Finalmente se multiplicará por el tiempo transcurrido para obtener la distancia, y seguir con
el proceso de verificación, y seguimiento (en caso de que se confirme que se trata de una
amenaza).

Este método no trae desventajas serias, aparte de la necesidad de hacer los cambios
respectivos en el algoritmo, y asegurarse de que no quede ninguna operación en ninguna
subrutina que no sea actualizada.

Conclusiones
Hay varias lecciones que se pueden aprender de ese incidente. Primero, uno nunca
puede ser demasiado cuidadoso al escribir software. Es importante estar
absolutamente seguro de lo preciso que debe ser un sistema. En segundo lugar,
uno nunca puede subestimar la importancia de las pruebas adecuadas y la
recopilación de datos en el entorno para el que fue creado. En tercer lugar, no se
puede confiar en suposiciones sobre el comportamiento del usuario, especialmente
si su dispositivo fue desarrollado para salvar vidas.

You might also like