【案例导读】阿丽亚娜5型火箭事故
1996年6月4日,阿丽亚娜(Ariane)5型火箭在法属圭亚那库鲁航天中心首次发射。当火箭离开发射台升空30 s后,距地面约4 000 m,天空中传来两声巨大的爆炸声并出现一团橘黄色的巨大火球,火箭碎块带着火星撒落在直径约2 km的地面上。与阿丽亚娜5型火箭一同化为灰烬的还有4颗太阳风观察卫星。这是世界航天史上又一大悲剧。
阿丽亚娜5型火箭由欧洲航天局研制,火箭高约52.7 m,总质量约740 t,研制费用约为70亿美元,研制时间1985—1996年,参研人员约万人。事故原因报道:阿丽亚娜5型火箭采用阿丽亚娜4型火箭初始定位软件。软件不适应物理环境的变化。阿丽亚娜5型火箭起飞推力约15 900 kN,质量约740 t,阿丽亚娜4型火箭起飞推力约5 400 kN,质量约474 t。阿丽亚娜5型火箭加速度为21.5 g,阿丽亚娜4型火箭加速度为11.4 g。阿丽亚娜5型火箭加速度值输入到计算机系统的整型加速度值产生上溢出,以加速度为参数的速度、位置计算错误,导致惯性导航系统对火箭控制失效,程序只得进入异常处理模式,引爆自毁。火箭装载的两套计算机系统,但是由于硬件、软件完全相同,没有达到软件容错的目的。
专为地面设计的校准系统,使用16位字来存储水平速度(对由于风和地球运行产生的位移计算而言,16位是绰绰有余的)。但飞行30 s后,阿丽亚娜5的水平速度计算产生了溢出,由此引出了一种意外,采取通过关掉机载计算机来处理这一问题,把控制权交给后备系统。因此,飞行器在发射后37 s便从原始路径偏移,最终不得不启动了火箭自毁程序。(www.daowen.com)
【案例分析】
阿丽亚娜5型火箭基于前一代4型火箭开发。在4型火箭系统中,对一个水平速率的测量值使用了16位的变量及内存,因为在4型火箭系统中反复验证过,这一值不会超过16位的变量,而5型火箭的开发人员简单复制了这部分程序,而没有对新火箭进行数值的验证,结果发生了致命的数值溢出,经济损失达3.7亿美元。
由于火箭开发人员缺乏科学严谨的态度和一丝不苟的精神,过于依赖原始数据,不能实事求是,没有充分考虑到数据类型的存储范围的问题,造成了巨大的损失。C语言为我们提供了丰富的数据类型,每种数据类型都有其特定的使用规则,同学们要想打好程序设计基础,乃至今后有所作为,就必须将这部分内容“消化掉”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。