Was Boing 737 Max a victim of Automation?
Recently another crash with the Boing 737 Max happened taking the lives of everyone aboard. There is a lot of speculation going on and this article will just be a technical overview (and probably create even more speculation) of the known facts that are available through the information shared on the Internet.
This is what we know so far:
- Both 737 max crashes happened just after takeoff
- Both crashes seem to be triggered by misinterpretation by the anti-stall system
- It is unclear why it is really happening
- Without knowledge of why is happening, air carriers are grounding the planes
The part that is really curious is that the anti-stall system seems to believe that the plane is on the process to stall and starts to push the plane back down. A process that is explained by how the MCAS function. Basically, when the AoA (angle of attack) is high, the autopilot is disengaged and the flaps are up, the MCAS is activated and dive the nose of the plane.
Under normal conditions, this would actually be a very reasonable concept for any software that is running these corrections but looks like something is missing because:
- It does not respond to the pilot or does not let the pilot take control
- It continually believes that the condition for a plane stall is happening
Only the engineers that developed this have the real code but this is how I read that information:
if (_aoa > _threshold AND _autopilotEngaged === false AND _areFlapsUp === true)
{
_mcas->activate()
}
During a takeoff the following conditions are true:
- Autopilot is disengaged
- Flaps are up
The condition that seems out of place there is that the AoA is being triggered as higher than the threshold. That is a very specific condition where the angle and speed are higher than a specified threshold that triggers the MCAS and keeps the MCAS under this condition. Take that into consideration and
- Why the pilot can’t take over control? (unclear if that is possible)
- Why the MCAS continue to believe that the plane is on a stall and keep correcting it?
- Why the MCAS doesn’t seem to consider altitude on the process of mitigation of a stall? (at least it is not mentioned anywhere)
- Do we have 1 or a series of triggers that together generate the condition?
A lot of this is speculation and it will be. After all, I’m not an official investigator and simply a curious bystander. As a software engineer, this case in specific interests me because it shows how unpredictable an automated system and that more than ever humans must be a part of the decision making of the automated system. As a person that enjoy flying on these impressive machines, I do hope that this issue is fixed sooner than later. I wouldn’t like to see any more crashes caused by this or anything else for that matter.
To the families of the crashes of Lion and Ethiopian, my thoughts and prayers go with you all.