Mars_Climate_Orbiter_2

وقتی یک تبدیل واحد ساده، فضاپیمای ۳۲۷ میلیون دلاری ناسا را پودر کرد!

وقتی در کلاس فیزیک از «اندازه‌گیری و یکاها» صحبت می‌شود، خیلی از دانش‌آموزان فکر می‌کنند با مبحثی خشک، پر از حفظیات جدول پیشوندها و چند تبدیل واحد کسل‌کننده طرف هستند.

اما واقعیت این است که اندازه‌گیری، زبان گفت‌وگوی انسان با جهان ماده است! هر فاجعه بزرگ مهندسی، هر کشف شگفت‌انگیز در کیهان‌شناسی و حتی تعریف مدرن ما از زمان و مکان، همگی به همین مفاهیم ساده اما عمیق گره خورده‌اند.

در این پست، به سراغ یک پرونده واقعی و جذاب از دنیای اندازه‌گیری می‌رویم که دیدگاه شما را به این فصل برای همیشه تغییر خواهد داد.

در سال ۱۹۹۹، فضاپیمای Mars Climate Orbiter ناسا پس از ماه‌ها سفر در دل فضا به مدار مریخ رسید؛ اما ناگهان ارتباط با آن قطع شد و درون اتمسفر مریخ متلاشی شد.

دلیل این شکست فضایی چه بود؟ یک اشتباه مضحک در تبدیل یکاها!

تیم مهندسی شرکت «لاکهید مارتین» نرم‌افزار پیشرانش را بر اساس یکای انگلیسی یعنی پوند-نیرو (lbf) برنامه‌ریزی کرده بود، در حالی که تیم ناوبری ناسا فرض می‌کرد خروجی‌ها بر مبنای سیستم بین‌المللی یکاها یعنی نیوتون (N) است . این ناهمخوانی به ظاهر ساده، مدار فضاپیما را منحرف و سرمایه‌ای عظیم را نابود کرد.

در این گزارش رسمی هیئت بررسی سانحه ناسا (Mars Climate Orbiter Mishap Investigation Board Phase I Report)، این موضوع به عنوان علت ریشه‌ای و مستقیم سانحه (Root Cause) در چند بخش کلیدی این گزارش آمده که برایتان در ادامه ارائه خواهم کرد :

۱. صفحه ۶ و صفحه ۱۳ (بخش Executive Summary و Fact 4)

مهم‌ترین و صریح‌ترین اشاره در صفحه ۱۳ زیر عنوان Fact 4 و همچنین صفحه ۶ خلاصه گزارش آمده است:

 

ترجمه:

«هیئت بررسی MCO (MCO MIB) تعیین کرد که علت اصلی از دست رفتن فضاپیمای MCO، عدم استفاده از واحدهای متریک در کدنویسی یکی از فایل‌های نرم‌افزاری زمینی به نام «Small Forces»  بوده است که در مدل‌های تعیین مسیر کاربرد داشت. به‌طور مشخص، در کدِ برنامه نرم‌افزاریِ موسوم به SM_FORCES ، داده‌های مربوط به عملکرد پیشرانه‌ها به‌جای واحدهای متریک، بر اساس واحدهای انگلیسی (امپریال) وارد شده بود. خروجی‌های نرم‌افزار SM_FORCES در فایلی با عنوان «Angular Momentum Desaturation» یا AMD ذخیره می‌شد. طبق مستندات موجودِ مربوط به رابط نرم‌افزاری، داده‌های موجود در فایل AMD می‌بایست بر حسب واحدهای متریک می‌بودند، اما طراحان مدل‌های مسیر تصور می‌کردند که این داده‌ها مطابق با الزامات، با واحدهای متریک ارائه شده‌اند.»

۲. صفحه ۱۶ و ۱۷ (بخش Finding 2 – تبیین دقیق یکاها: پوند-ثانیه در برابر نیوتون-ثانیه)

در این بخش، دقیقاً به نوع یکاها و خطای ضریب تبدیل اشاره می‌کند:

ترجمه:

«در مشخصات رابط نرم‌افزاری (SIS) که برای تعیین فرمت فایل AMD به کار می‌رود، واحد «نیوتن-ثانیه» (N-s) برای مقدار ضربه (impulse) تعیین شده است. نیوتن-ثانیه واحد استاندارد متریک برای کمیت ضربه (حاصل‌ضرب نیرو در زمان) محسوب می‌شود. نرم‌افزار AMD نصب‌شده روی فضاپیما برای محاسبات از واحدهای متریک استفاده می‌کرد و عملکرد صحیحی داشت؛ اما در مورد نرم‌افزار زمینی، مقدار ضربه ثبت‌شده در فایل AMD به جای واحدهای متریکِ تعیین‌شده، بر حسب واحدهای انگلیسی «پوند-نیرو-ثانیه» (lbf-s) بود. در مراحل بعدی، هنگامی که نرم‌افزار ناوبری مقادیر ضربه را از فایل AMD پردازش کرد، تأثیر عملکرد پیشران‌ها بر مسیر حرکت فضاپیما را به میزان ۴٫۴۵ برابر کمتر از مقدار واقعی برآورد نمود (زیرا هر پوند-نیرو معادل ۴٫۴۵ نیوتن است).»

 

نکته فنی گزارش:

  • نرم‌افزار زمینی که تکانه رانشگرها را حساب می‌کرد، داده‌ها را بر حسب پوند-ثانیه(lbf.s) خروجی می‌داد.
  • نرم‌افزار ناوبری تیم عملیات ناسا بر اساس توافق پروژه انتظار داشت خروجی بر حسب نیوتون-ثانیه (N.s) باشد.
  • چون هر پوند-نیرو تقریباً برابر با ۴.۴۵ نیوتون است ()، محاسبات رانشگرها با خطای ضریب ۴.۴۵ برابری اعمال شد و فضاپیما به جای عبور ایمن از ارتفاع بالای مریخ (حدود ۲۲۶ کیلومتری)، مستقیماً وارد لایه‌های غلیظ جو مریخ (ارتفاع ۵۷ کیلومتری) شد و متلاشی گردید!

نکته آموزشی: یادگیری سیستم بین‌المللی (SISI) و استفاده از یکاهای هماهنگ، تشریفات امتحانی نیست؛ زبان مشترک علم برای حفظ ایمنی و بقای مأموریت‌هاست!