【译文】爱国者导弹软件问题

美国审计总署的一份报告开头写道:”1991年2月25日,沙漠风暴行动期间在沙特阿拉伯宰赫兰运行的爱国者导弹防御系统未能跟踪和拦截一枚飞毛腿导弹。这枚飞毛腿导弹随后击中了一个军营,造成 28 名美国人死亡”。更多详情可参阅以下参考资料:

爱国者导弹防御系统:软件问题导致沙特阿拉伯达兰的系统故障。报告 GAO/IMTEC-92-26,美国审计总署信息管理和技术司,华盛顿特区,11992 年 2 月,16 页。

报告认为,未能跟踪飞毛腿导弹是由于软件的精度问题造成的。

用于控制 “爱国者 “导弹的计算机是基于 20 世纪 70 年代的设计,使用 24 位算术运算。爱国者系统通过测量雷达脉冲从目标弹回所需的时间来跟踪目标。系统时钟以十分之一秒为单位记录时间,但以整数形式存储。为了进行跟踪计算,时间被转换为 24 位浮点数。时间转换中的舍入误差会导致用于跟踪目标的系统 “测距门(range gate) “发生偏移。

表 1:延长运行时间对 “爱国者 “导弹运行的影响

1991 年 2 月 11 日,”爱国者 “项目办公室收到的现场数据显示,”爱国者 “系统连续运行 8 小时后,其射程门发生了 20% 的偏移。这一数据意味着,在连续使用 20 小时后,系统将无法跟踪和拦截飞毛腿导弹。陆军官员于 2 月 16 日发布了经过修改的软件,对不准确的时间计算进行了补偿。2 月 25 日,保护宰赫兰空军基地的阿尔法炮台已连续工作 100 多个小时。不准确的时间计算导致射程门偏移过大,以至于系统无法跟踪来袭的飞毛腿导弹。2 月 26 日,也就是第二天,修改后的软件运抵宰赫兰。摘自上述报告的表 1 清楚地显示了随着运行时间的增加,”爱国者 “如何失去对目标的跟踪。请注意,表 1 中的数字与计算机在表示 0.1 时所产生的 20-20 的相对误差是一致的,这个常数用于将系统时钟的十分之一秒转换为一秒(20-20 是将 0.1 切为二进制点后的 23 位所产生的相对误差)。

[1]连续运行超过 20 小时不在目标范围内。

[2]阿尔法电池连续运行 100 小时。

图 3:y = f(x) 的后向和前向误差。粗线为精确值,细线为计算值。

本文文字及图片出自 Patriot Missile Software Problem

余下全文(1/3)
分享这篇文章:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注