El fracaso de los Patriot y el número de 24 bits

Imagen de El fracaso de los Patriot y el número de 24 bits

El caso de los misiles Patriot está un poco olvidado porque pasaron unos cuantos años desde la Guerra del Golfo pero para refrescarles la memoria (o si son jóvenes y no tienen idea), luego de que Saddam Hussein invadiese Kuwait creyendo que nadie iba a reaccionar una gran coalición internacional se formó para liberar el país.

Durante los meses previos, y justo antes del avance aliado, Hussein lanzó numerosos cohetes Scud contra las posiciones de la ONU en Arabia Saudita y sobre Israel y, para contrarrestar esto, estaban los misiles Patriot... pero resultaron ser un fiasco enorme y todo por un error de diseño...

El 25 de Febrero de 1991 un misil Scud iraquí impactó contra las barracas de la base de Dhahran en Arabia Saudita matando a 28 solados de los EEUU ¿Cómo había llegado el misil sin ser interceptado?

Era un error muy estúpido pero una investigación encontró el problema: las marcas de tiempo en el software.

Resulta que la batería de misiles, como toda instalación, tiene una parte que compone el radar y mando de tiro y por otra parte el misil en sí. El sistema Patriot implica ambas partes.

El radar había estado operando más de cien horas, algo que uno esperaría normal, sin un rebooteo pero he aquí que el reloj interno se iba corriendo un tercio de segundo cada cien horas, que, en términos de velocidades de un misil, es como errarle por 600 metros.

El radar había detectado el misil entrante, predijo dónde iba a estar el Scud en la siguiente pasada del radar, pero como los tiempos estaban mal miró dodne no debía ver y allí no había nada. Esos 600 metros de desfasaje fueron suficientes para que el radar cancelara la detección asumiendo que se trataba de un error.

Lo que sucedía es que el tiempo se fijaba en una variable de 24 bits con el punto flotante fijo. Luego de 100 horas la precisión se iba perdiendo a tal punto de ser totalmente inútil el dato.

En el caso de Dhrahan ni siquiera la batería de misiles intentó disparar y contraatacar, asumió todo como un error y lo dejó pasar. El Scud impactó directamente en las barracas.

Según el informe del GAO

"La predicción de la ventana de rango de dónde aparecerá el Scud a continuación es una función de la velocidad conocida del Scud y el tiempo de la última detección de radar. La velocidad es un número real que se puede expresar como un número entero y un decimal (por ejemplo, 3750.2563 ... millas por hora). El tiempo se mantiene continuamente por el reloj interno del sistema en décimas de segundos pero se expresa como un número entero o entero (por ejemplo, 32, 33, 34 ...). Cuanto más tiempo haya estado funcionando el sistema, mayor será el número que representa el tiempo. Para predecir dónde aparecerá el Scud a continuación, tanto el tiempo como la velocidad deben expresarse como números reales. Debido a la forma en que la computadora Patriot realiza sus cálculos y el hecho de que sus registros tienen sólo 24 bits de longitud, la conversión de tiempo de un número entero a un número real no puede ser más precisa que 24 bits. Esta conversión da como resultado una pérdida de precisión causando un cálculo de tiempo menos preciso. El efecto de esta inexactitud en el cálculo de la ventana de rango es directamente proporcional a la velocidad del objetivo y la longitud del sistema que ha estado funcionando. En consecuencia, realizar la conversión después de que el Patriot haya estado funcionando continuamente durante períodos prolongados hace que la ventana de alcance se aleje del centro del objetivo, lo que hace menos probable que el objetivo, en este caso un Scud, sea interceptado con éxito."


Dos semanas antes de esto los israelíes habían detectado el problema e informado tanto al ejército de los EEUU como la oficina del proyecto Patriot y hasta al desarrolador del software. Inteligentemente los israelíes recomendaron rebootear regularmente el sistema para que el contador de tiempo arrancara siempre desde cero y no arrastrara el error hasta las cien horas.

La actualización del software llegó el día después del ataque a las barracas.

Cuando el presidente de EEUU de ese entonces hablaba públicamente del "éxito" de los Patriot contra los Scud mencionaba un 97% de efectividad, sólo uno había pasado de largo. Pero esto no era cierto: estaba por debajo del 10%.

Para evitar no interceptar nada se lanzaban varios misiles al mismo tiempo (un enorme desperdicio pero mejor que nada).

Por ejemplo , si un misil tiene un 50% de probabilidades de acertar dos elevan ese número al 75% y tres al 87.5%, básicamente interceptaron por fuerza bruta. Si lanzaban 20 seguro acertaban con un 0.1% de margen de error.

Otra razón por la que no hubo muchas víctimas de los Scud es que el ejército Iraquí le había hecho muchas modificaciones para aumentar su autonomía y varios de éstos realizaban su reentrada ya destruidos por las fuerzas G (sí, los misiles balísticos van hasta el espacio y vuelven).

El problema para los Patriot es que era imposible detectar cual de todos los pedazos cayendo era la ojiva explosiva y cual el resto del cohete desarmado.

restos de un Scud en el desierto

La única ventaja en Arabia era que la mayoría de las bases estaban en el desierto, el problema para Israel era que siempre le disparaban hacia las ciudades. "Algo" terminaba cayendo y lastimando gente. Adicionalmente a esto Israel no es una dictadura que censura las malas noticias, Arabia Saudita sí, así que se supo más del daño producido donde menos restricciones al flujo de información había.

En Israel estaban tan disconformes con la performance del Patriot que empezaron a planear su propio ataque contra Irak pero, por suerte para todos, la guerra llegó a su fin ante de esto.

Luego el sistema fue debidamente corregido por Raytheon y estos problemas dejados en el pasado pero es interesante que una cosa tan tonta como manejar un decimal fijo en un registro podía generar tantos problemas. Faltó testing ahí.


Volver al inicio Ver original

copyright©2025 Fabio Baccaglioni - Fabio.com.ar - Versión simplificada Old School