1
1 Ariane 5 1 Ariane 5 Flight 501 1 2 History 2 3 Why Ariane - - PowerPoint PPT Presentation
1 Ariane 5 1 Ariane 5 Flight 501 1 2 History 2 3 Why Ariane - - PowerPoint PPT Presentation
1 Ariane 5 1 Ariane 5 Flight 501 1 2 History 2 3 Why Ariane 5? 3 Why Ariane 5? Program initiated in 1987 3 Why Ariane 5? Program initiated in 1987 Evolutive 3 Why Ariane 5? Program initiated in 1987
Ariane 5
1
Ariane 5
Flight 501
1
2
History
2
3
- Why Ariane 5?
3
- Why Ariane 5?
- Program initiated in 1987
3
- Why Ariane 5?
- Program initiated in 1987
- Evolutive
3
- Why Ariane 5?
- Program initiated in 1987
- Evolutive
- Now number one world luncher
3
4
4
5
Costs
5
Costs
- 130 000 000 € / 10 000 kg
5
Costs
- 130 000 000 € / 10 000 kg
- US$370 million
5
6
What happened?
6
7
7
8
Architecture
8
Inertial Platform
Architecture
8
IGC 2 Inertial Platform
Architecture
8
IGC 2 IGC 1 Inertial Platform
Architecture
8
IGC 2 IGC 1 Inertial Platform OBC 2
Data Bus
Architecture
8
IGC 2 IGC 1 Inertial Platform OBC 2 OBC 1
Data Bus
Architecture
8
9
Chronology
9
Chronology
- H0 + 37 : Trajectory angle > 20°
9
Chronology
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
9
10
10
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
11
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
11
12
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
12
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
- Brutal Nozzle Inclination
12
13
Ariane 5 - Vulcain 2
13
14
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
14
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations which were
misinterpreted.
14
15
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
15
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- Solid Rocket Booster Separation
- Self destruction!
- IGC 2 sends a sequence of bits which meant
IGC failure
15
16
- IGC 2 sends a sequence of bits which
meant IGC failure
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- ....
- Self destruction!
16
- IGC 2 sends a sequence of bits which
meant IGC failure
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- ....
- Self destruction!
- IGC 2 shuts down thanks to a software
- exception. It tries to switch on IGC 1.
16
17
- SRI 2 shuts down thanks to a software
- exception. It tries to switch on SRI 1.
- SRI 2 sends a sequence of bits which meant
SRI failure
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- ....
17
- SRI 2 shuts down thanks to a software
- exception. It tries to switch on SRI 1.
- SRI 2 sends a sequence of bits which meant
SRI failure
- OBC gives Nozzle Inclination Order based
- n IGC2’s informations, which were
misinterpreted.
- Brutal Nozzle Inclination
- H0 + 37 : Trajectory angle > 20°
- ....
- SRI 1 already down thanks to the
same software exception.
17
18
The software failure
18
The software failure
declare vertical_veloc_sensor: float; horizontal_veloc_sensor: float; vertical_veloc_bias: integer; horizontal_veloc_bias: integer; ... begin declare pragma suppress(numeric_error, horizontal_veloc_bias); begin sensor_get(vertical_veloc_sensor); sensor_get(horizontal_veloc_sensor); vertical_veloc_bias := integer(vertical_veloc_sensor); horizontal_veloc_bias := integer(horizontal_veloc_sensor); ... exception when numeric_error => calculate_vertical_veloc(); when others => use_irs1(); end; end irs2;
18
19
The unprotected variable
19
The unprotected variable
- 80% maximum charge for the IGC
19
The unprotected variable
- 80% maximum charge for the IGC
- Need to find out which variables to protect
19
The unprotected variable
- 80% maximum charge for the IGC
- Need to find out which variables to protect
- The HVB variable was not considered
dangerous...
19
The unprotected variable
- 80% maximum charge for the IGC
- Need to find out which variables to protect
- The HVB variable was not considered
dangerous...
- ...but the Ariane 5 trajectory data was not
in the IGC’s spec file!
19
20
Ariane’s reaction to exceptions
20
Ariane’s reaction to exceptions
- Send a sequence of bits on the bus defining
the error
20
Ariane’s reaction to exceptions
- Send a sequence of bits on the bus defining
the error
- Save the context in an EEPROM
20
Ariane’s reaction to exceptions
- Send a sequence of bits on the bus defining
the error
- Save the context in an EEPROM
- /!\ Shut down the IGC /!\
20
21
- Untreated exceptions are obviously
raised because of a hardware failure...
21
- Untreated exceptions are obviously
raised because of a hardware failure...
- ...but not this time!
21
22
The Mistakes
22
23
Ariane 4 code Re-use
23
Ariane 4 code Re-use
- IGC code was re-used code from Ariane 4
23
Ariane 4 code Re-use
- IGC code was re-used code from Ariane 4
- Software exception caused by a useless
program!
23
24
...and one missing test
24
...and one missing test
- ...which was not considered useful, because
the ariane 5 trajectory not mentioned in the IGC’s spec file!
24
25