Rekenfoutje bij Saturnus

000e08
Toen op 14 januari 2005 beelden van de Saturnusmaan Titan de aarde bereikten, was dat kantje boord. De Cassini, met aan boord de Huygens sonde die naar Titan afdaalde, was namelijk al bij Jupiter, toen de makers een onherstelbare softwarefout ontdekten die de hele missie bedreigde. Er kwam het nodige mathematische stuntwerk aan te pas om het toch nog tot een goed einde te brengen.

Cassini nadert Saturnus

Saturnus, de planeet met de ringen, heeft 33 manen. Sommige daarvan hebben de meer dan warme belangstelling van wetenschappers, met name Titan, dat net als de aarde een atmosfeer heeft, een dikke mist van stikstof en methaan. Dit zijn omstandigheden die sterk overeenkomen met de aarde miljarden jaren geleden – en dat prikkelt uiteraard de nieuwsgierigheid.

Drie sondes van de Nasa vlogen al eens voorbij Saturnus, maar de Cassini is de eerste die rondjes om de planeet gaat draaien. De Cassini, met Huygens aan boord, werd op 15 oktober 1997 gelanceerd en bereikte op 1 juli 2004 de verre planeet. Het is een gezamenlijk project van Nasa en Esa, waarbij de eerste Cassini bouwde en de laatste verantwoordelijk was voor Huygens, inclusief het deel van Cassini dat tijdens de afdaling van Huygens de signalen van de sonde moest opvangen.

Die afdaling was een kritieke operatie. De bedenkers van de missie gingen ervan uit dat Huygens maximaal drie uur contact zou kunnen houden met de Cassini. Daarna zou de batterij op zijn en Cassini voorbij de horizon verdwenen. Voor die tijd loerden allerlei andere gevaren. Titans atmosfeer kon het signaal vertroebelen en de sonde kon, hoewel uitgerust met parachutes, te pletter slaan op de maan of wegzinken in een methaanzee.
Logisch dus dat het ontwerp van de Huygens tot in den treure geverifieerd was. De sonde reisde in slaaptoestand met de Cassini mee, maar werd af en toe op afstand aangezet om te kijken of hij nog in orde was. Het werkte allemaal zoals bedoeld. Dacht men.

Cassini bij Jupiter

Eind 2000 bereikte de Cassini Jupiter, met de bedoeling van diens zwaartekracht gebruik te maken om extra vaart te maken. Rond die tijd waren de ingenieurs aan het thuisfront bezig met een nieuw type test. Vanaf de aarde werd een sterk signaal naar de ruimtereiziger gestuurd, dat precies het signaal simuleerde dat Huygens tijdens de afdaling naar Cassini zou sturen. Zo’n signaal is niet een-twee-drie in elkaar gezet: er komt nogal wat rekenwerk aan te pas om de draaiing van de aarde eruit te halen, de relatieve snelheid tussen Huygens en Cassini te simuleren, het Dopplereffect te verdisconteren en zo nog het een en ander. De aarde stuurde dus een signaal naar het ontvangstdeel van Huygens aan boord van Cassini, die het op zijn beurt terugstuurde naar de aarde.

‘De resultaten waren bizar’, zegt Luitjens Popken, systeemingenieur bij Esa. ‘Je zou bijvoorbeeld verwachten dat de ontvangst van het signaal beter zou gaan naar mate het sterker was. Het tegenovergestelde bleek het geval. Soms viel het signaal helemaal weg, als je het versterkte. Ook was duidelijk dat het probleem zich niet manifesteerde als de Dopplerverschuiving beperkt bleef.’

De ingenieurs die het ontdekten hadden vervolgens grote moeite om hun bazen ervan te overtuigen dat er echt iets mis was met de Huygens, en niet met hun testopzet. Uiteindelijk gingen de managers door de bocht en schakelden een groep signaalspecialisten in, onder wie Popken. Omdat hij niet eerder bij het project betrokken was, had hij wel een achterstand: hij had de hardware nooit gezien. Bovendien wist hij niet zeker of de gevonden signalen iets fundamenteels zeiden over de foute werking van de ontvanger. Het kon ook een toevallige fout zijn – evengoed verontrustend, maar lastiger aan te pakken.
‘In het begin had ik werkelijk geen idee waar ik het zoeken moest’, vertelt Popken. ‘Dus ben ik begonnen met het ontwerp goed te bestuderen. Sommige

mensen zeiden dat het Dopplereffect in het ontwerp over het hoofd gezien was, maar dat was natuurlijk onzin. Het ontwerp deugde. De Huygens hield gewoon rekening met Doppler. Vandaar ook dat bij de vele checks niemand iets opgevallen was.’

Ringen van Saturnus

De basisgedachte van een moederschip met een sonde die onderling contact moeten houden, is bepaald niet nieuw. Het basisontwerp hiervoor dateert uit de jaren zestig en is al vaak genoeg probleemloos gebruikt. De gebruikte transponders dateren van eind jaren tachtig en werden ook al vaak genoeg succesvol ingezet.

Popken: ‘Toen ik het signaal ging bestuderen, bleek het probleem te zitten in de synchronisatie van het signaal tussen de zender aan boord van de Huygens en de ontvanger aan boord van Cassini. Omdat het probleem niet in het ontwerp zat, ben ik naar de implementatie gaan kijken. Het probleem bleek te zitten in een schalingsparameter.’

De synchronisatie van bits is niet zo’n ingewikkelde klus. Je krijgt een analoog signaal binnen in de vorm van een radiogolf. Om te opeenvolgende bits te detecteren, moet je dat signaal samplen. Het tempo waarmee je samplet moet minstens even hoog liggen als het tempo waarmee de zender bits in het analoge signaal gecodeerd heeft, anders raak je bits kwijt. De ontvangende software was ontworpen voor een standaardsnelheid van 2 kilobit per seconde. Omdat de afdalende Huygens slechts een levensduur van drie uur was toebedacht, zou die echter 16 kilobit per seconde aanhouden, om maar zoveel mogelijk beelden naar Cassini te kunnen versturen.

Die wijziging was geïmplementeerd in de ontvanger, maar er was niet consequent rekening gehouden met het feit dat bij een acht keer hogere bitrate ook de absolute Dopplerverschuiving acht keer zo groot wordt (afhankelijk uiteraard van de relatieve snelheid tussen Huygens en Cassini). Op zich werd de bijbehorende berekening goed uitgevoerd, maar ergens zat daar een schalingsfactor 64 in. Daardoor kreeg bij een bitrate van 16 kilobit per seconde een deling een te kleine uitkomst, met als gevolg dat de bandbreedte en de signaalversterking van de synchronisatie onder een drempelwaarde doken. Was de schalingsfactor 16 geweest, dan was er niks aan de hand geweest.

Nu hebben ruimtevaartuigen voor dit soort gevallen een mogelijkheid om software te uploaden. Cassini zelf kreeg in juni 2001 bijvoorbeeld nog een patch toegestuurd om een programmeerfoutje in het Imaging Science Subsystem te repareren. Ook het ontwerp voor communicatie tussen sonde en moederschip voorzag in een stukje software om foutreparatie mogelijk te maken. Alleen was die software bij de Huygens weggelaten, omdat het in dit zo beproefde ontwerp overbodig leek. Popken: ‘Was de mogelijkheid om patches te sturen gebleven, dan waren we in een halve dag klaar geweest. Dat is dus een belangrijke les: houd de mogelijkheid van reparaties aan de software open, tenzij je alles door en door getest hebt.’

Oppervlak Titan

De Huygens zou het dus moeten doen met de foute programmaregel. Om de missie te redden begon Popken vervolgens aan een ingewikkelde exercitie met Matlab, een programma dat in staat is wiskundige problemen op te lossen, niet alleen numeriek, maar ook door daadwerkelijk met formules te stoeien. Dat komt de nauwkeurigheid ten goede.

Popken stelde zich tot doel precies in kaart te brengen wanneer de synchronisatie niet werkte en wanneer wel. De sterkte van het signaal is vooral afhankelijk van de afstand en hoek tussen Huygens en Cassini. De frequentie hangt af van onder meer de relatieve snelheid tussen beide (Dopplereffect) en klokverschillen. Daarnaast waren er nog allerlei ruisinvloeden om rekening mee te houden, bijvoorbeeld van Titans atmosfeer. Uiteindelijk leverde het rekenwerk een zaagtandgrafiek op van signaalsterkte versus signaalfrequentie. Onder de zaagtand zou Huygens werken, erboven niet.

‘We hebben de berekeningen geverifieerd met dezelfde signaaltest die de problemen aanvankelijk aan het licht bracht’, vertelt Popken. ‘Het bleek te kloppen. De bandbreedte waarin Huygens werkte was beperkt, maar wel voorspelbaar. Die informatie konden we doorspelen aan de navigators.’

Oorspronkelijk zou Cassini de afdalende Huygens op afstand volgen en dan vlak langs Titan scheren. Dat zou zorgen voor een constante relatieve snelheid, een constante onderlinge hoek en dus een constant Dopplereffect. Helaas echter een effect dat boven de zaagtand zat. Daarom moesten de navigators de koers van Cassini verleggen, zodat snelheid en hoek binnen de randvoorwaarden voor een bruikbaar signaal bleven. Uiteindelijk viel de keus op een koers waarbij Cassini verder weg bleef en langzaam afboog, zodat het signaal precies onder de rand van een zaagtand langs zou gaan.

Slechts één ding kon niet getest worden: de zender van de Huygens. Tijdens de afdaling zou blijken dat één van de twee kanalen niet werkte, waardoor slechts 350 van de in totaal 700 genomen foto’s Cassini en de aarde bereikten. Die beelden gingen inmiddels de wereld over: het blijkt op Titan methaan te regenen en te waaien, maar dan bij 170 graden onder nul.

Tijdens het grote moment zelf zat Popken in de kantine van het Esa controlecentrum in Darmstadt naar de monitoren te kijken. ‘Ik was erg nerveus, maar tegelijkertijd ook wel zeker van mijn zaak. We hadden alles tenslotte eindeloos getest. Maar als het dan in drie uur moet gebeuren, doet dat je toch wat’, zegt Popken, om met gevoel voor understatement te vervolgen: ‘Als dan blijkt dat geen enkel pakket door fouten met synchronisatie verloren is gegaan, dan geeft dat best een goed gevoel.’

Huygens daalt af

Eerder verschenen in De Ingenieur, 18 februari 2005 (illustraties: Esa).