stack stack
561
BLOG

styk cyfrowo - analogowy

stack stack Technologie Obserwuj notkę 3

W mojej poprzedniej notce odniosłem się do błędów w oprogramowaniu Dreamliner'a oraz chipset'ach do nawigacji satelitarnej GPS:

http://stack.salon24.pl/645112,248-11111000-dreamliner-512-10-00000000-gps

Znalazłem jeszcze 2 ciekawe przypadki z tego "klimatu", tym razem brzemienne w skutkach. Pierwszy to start rakiety Arianne z 4/06/1996 drugi z czasów wojny w Zatoce Perskiej w 1991. W drugim przypadku zginęło 28 żołnierzy amerykańskich a problemem okazało się oprogramowanie systemu przeciwrakietowego, tak, tak - Patriot.

W pierwszym przypadku, rakieta Arianne 5, po około 37 sekundach lotu, zeszła z założonego kursu/trajektorii, rozpadła się w powietrzu i jak to bywa przy takich zabawkach eksplodowała. Start odbywał się z Gujany Francuskiej i na "grzbiecie" rakieta nośna miała satelitę Europejskiej Agencji Kosmicznej ESA. Po analizie danych telemetrycznych, zapisu stacji radarowych, kamer termowizyjnych i analizie szczątków odkryto, że za katastrofę odpowiada system sterowania i co nas najbardziej interesuje - błąd w oprogramowaniu. Przypadek Arianne 5 to przykład analogiczny do przypadku GPS z poprzedniej notki: zabrakło bitów. Jako, że oprogramowanie Arianne 5 pochodziło z poprzedniej generacji - Arianne 4, nikt nie zauważył, że parametry startowe obu generacji znacznie się różnią i prędkość reprezentowana jako 64 bitowa liczba zmiennoprzecinkowa w Arianne 5 nie zmieści się w 16 bitowej liczbie całkowitej (!) w oprogramowaniu z Arianne 4. Co ciekawe system to zauważył i uruchomił system redundantny (dublowanie), nic to nie dało, bo ten zapasowy był identyczny do podstawowego. No i po zawodach. Reset systemu jak zaleca się w Dreamliner'e nic by nie pomógł. Nie znalazłem informacji o ofiarach tych brakujących bitów.

W drugim przypadku w Zatoce Perskiej też właściwie zabrakło bitów. Raporty wskazywały, że system Patriot osiągnął 90% skuteczność w neutralizowaniu irackich rakiet Scud. Po wojnie w Zatoce przeprowadzono wiele analiz skuteczności i niektórzy twierdzili, że jest dokładnie odwrotnie - skuteczność 10%. Nas interesuje brak bitów, błąd w oprogramowaniu - tutaj mieliśmy do czynienia z zaokrągleniami i czasem. Kiedy system radarowy namierzał rakietę Scud rozpoczynał się zapis prędkości tej rakiety. Zapis prędkości wyrażany był jako liczba rzeczywista, wielokrotnie w ciągu sekundy. Czas odmierzany był w dziesiątkach sekundy, jednak jako liczba całkowita (liczba dziesiątek sekund). Te odcinki czasu zapisywane były w rejestrach 24 bitowych. Aby precyzyjnie obliczyć położenie rakiety Scud potrzebna była m. in. prędkość (liczba zmiennoprzecinkowa) i czas (liczba całkowita). Całość obliczeń jako liczby zmiennoprzecinkowej na rejestrze 24 bitowym była coraz mniej dokładna im ... dłużej działał system. Konkluzja była taka, że system Patriot traci celność wprost proporcjonalnie do prędkości celu i czasu działania systemu. W ten sposób zbyt długo działający system Patriot nie trafił w Scuda, który trafił w koszary USA w Dhahran w Arabii Saudyjskiej. Tutaj reset by pomógł.

P.S. Resetujcie swoje telefony i komputery i inteligentne piece, nie znacie dnia ani godziny :)

stack
O mnie stack

Nowości od blogera

Komentarze

Inne tematy w dziale Technologie