چهارم ژوئن ۱۹۹۶ روزی که موشک آریان ۵ منفجر شد!

blog
۱۴۰۱-۰۱-۲۷
6 دقیقه

بالاخره بعد از ۷ میلیارد دلار هزینه و ده سال زمان برای توسعه و طراحی موشک بدون سرنشین آریان ۵، مهندسین آژانس فضایی اروپا شاهد پرتاب موشک آریان ۵ در کورو گویان فرانسه خواهند بود. همه‌چیز آماده پرتاب بود. وضعیت هوا در سایت کورو برای پرتاب مناسب بود و هیچ مانعی برای انتقال پرتابگر به سکوی پرتاب وجود نداشت، به شکل خاص رعدوبرق وجود نداشت و میدان‌های الکترومغناطیسی اندازه‌گیری شده در سایت ناچیز بودند، تنها میدان دید باعث ایجاد نگرانی و عدم قطعیت در پرتاب‌شده بود که بعد از چند ساعت مسئله مرتفع شد.

بعد از یک بار کنسل شدن پرتاب (میدان دید) بالاخره در ساعت ۹ و ۳۳ دقیقه و ۵۹ ثانیه به‌وقت محلی احتراق موتور Vulcain و دو بوستر سوخت جامد شروع شد. آریان ۵ بعد از ۳۷ ثانیه پرواز به‌طور ناگهانی از مسیر خود خارج شد و درنهایت سیستم خود تخریبگر آریان ۵ فعال شد و موشک آریان ۵ به همراه دو ماهواره‌ای که حمل می‌کرد درمجموع به ارزش ۵۰۰ میلیون دلار منفجر شد.

۰٫۷ ثانیه آخر پرتاب یعنی درست ۳۶٫۷ ثانیه بعد از پرتاب، شروع زنجیره‌ای از اتفاقات بود که باعث فعال شدن سیستم خوب تخریبگر موشک شد. اما واقعاً چه اتفاقی افتاد، در ادامه به بررسی اتفاقی که برای آریان ۵ افتاد می‌پردازیم. در ۳۶ ثانیه اول پرتاب همه‌چیز به خوبی پیش رفت و مشکلی نبود، بعدازآن سیستم مرجع اینرسی (Inertial Reference System) از کار افتاد و به دنبال آن سیستم پشتیبان مرجع اینرسی نیز از کار افتاد، به دنبال آن سیستم کنترلر پرواز از کار می‌افتد و نازل موتور Vulcain به‌شدت تغییر جهت می‌دهد و باعث انحراف موشک از مسیر اصلی می‌شود، و درنهایت سیستم خود تخریبگر آریان فعال می‌شود.

اما علت انفجار موشک آریان ۵ چه بود؟

به‌طورکلی، سیستم کنترل پرواز آریان ۵ از یک طراحی استاندارد بهره می‌برد. موقعیت موشک و حرکات آن در فضا توسط سیستم مرجع اینرسی (SRI) اندازه‌گیری می‌شود، این سیستم پردازنده (کامپیوتر) داخلی خود را دارد که در آن سرعت و زاویه حرکت و کلی داده حرکتی دیگر را با استفاده از پلتفرم اینرسی نظیر ژیروسکوپ های لیزری و شتاب سنج محاسبه می‌شود، داده‌های SRI از طریق دیتابیس (برای خودم هم عجیبه که دیتابیس ولی در مقاله دقیقاً ذکرشده دیتابیس) به کامپیوتر داخلی کنترل پرواز منتقل می‌شود و با استفاده از داده‌های SRI نازل‌های سوخت جامد و موتور برودتی Vulcain را از طریق ولوهای سرو و محرک‌های هیدرولیکی کنترل می‌کند.

برای بهبود قابلیت اطمینان دو سامانه SRI با سخت‌افزار و نرم‌افزار دقیقاً یکسان تعبیه‌شده که به شکل موازی باهم کار می‌کنند، یکی از SRI ها در حالت فعال و دیگری در حالت آماده‌به‌کار است که در صورت ازکارافتادن SRI عملیاتی وارد عمل شود. به همین ترتیب دو سامانه کنترل پرواز (OBC) وجود دارد. طراحی SRI در آریان ۵ عملاً همان طراحی SRI در آریان ۴ است به‌ویژه در قسمت نرم‌افزاری.

چهارم ژوئن ۱۹۹۶ روزی که موشک آریان ۵ منفجر شد!

حال که با ساختار کلی کنترل پرواز موشک آریان ۵ آشنا شدیم، بیایید باهم به زنجیره اتفاقاتی که موجود شد مأموریت ۵۰۱ با شکست مواجه شود بپردازیم:

  • موشک در ثانیه ۳۹ بعد از پرتاب به دلیل فشارهای زیاد آرودینامیکی و البته زاویه حرکت بیش از ۲۰ درجه شروع به متلاشی شدن کرد، که منجر به جدا شدن بوسترهای سوخت جامد و فعال شدن سیستم خود تخریبگر موشک شد.
  • تغییر زاویه حرکت موشک به دلیل انحراف کامل نازل‌های تقویت‌کننده‌های سوخت جامد و موتور اصلی بود.
  • انحراف نازل‌ها توسط نرم‌افزار OBC (on-board computer) و بر اساس داده‌های ارسال‌شده توسط مرجع اینرسی پشتیبان فرمان داده‌شده بود.
  • عدم صحت داده‌های SRI2 یک خطای نرم‌افزاری بود (software exception)
  • OBC نمی‌توانست از داده‌های SRI1 استفاده کند چراکه آن واحد در چرخه قبلی (۷۲ میلی‌ثانیه قبل) به همان دلیل SRI2 ازکارافتاده بود.
  • خطای نرم‌افزاری رخ‌داده در SRI به دلیل تبدیل داده ممیز شناور ۶۴ بیتی به یک عدد علامت‌دار ۱۶ بیتی رخ‌داده بود، عدد ممیز شناور داری ارزشی بیشتر از 32767 بود و در پردازنده یک خطای Operand ایجاد شد. دستورالعمل‌های تبدیل داده (در کد Ada) از ایجاد خطای Operand محافظت نمی‌شوند.
  • این خطا در بخشی از برنامه اتفاق افتاد که در هنگام بلند شدن پارامترهای مهمی را محاسبه می‌کند و بعدازآن کاربرد خاصی ندارد.
  • عملیات هم‌ترازی به مدت ۵۰ ثانیه پس از شروع پرواز در آریان ۴ لازم است اما در آریان ۵ این زمان ۳ ثانیه اول پرواز است بااین‌حال این عملیات تا ۵۰ ثانیه ادامه داشته است.

با دقت در زنجیره بالا درمی‌یابیم که اگر برنامه برای آریان ۵ نوشته‌شده بود احتمالاً این اتفاق رخ نمی‌داد، چراکه در چند ثانیه اول پرواز موشک شتاب کمی دارد و احتمالاً خطای Operand اتفاق نمی‌افتاد، یا اگر خطای Operand هندل شده بود این اتفاق نمی‌افتاد.

در سناریوی خرابی، دلایل فنی اولیه خطای Operand هنگام تبدیل متغیر بایاس افقی (BH) و عدم محافظت از این تبدیل است، برخی از تبدیل‌ها در مقابل خطای تبدیل محافظت‌شده‌اند و برخی از آنها محافظت نشده‌اند، زیرا حداکثر مصرف 80 درصد برای رایانه SRI تعیین‌شده بود. برای تعیین آسیب‌پذیری کد محافظت نشده، تجزیه‌وتحلیلی بر روی هر عملیاتی که می‌تواند منجر به استثنا شود، ازجمله یک خطای Operand انجام شد.
 
به‌طورخاص، تبدیل مقادیر ممیز شناور به اعداد صحیح مورد تجزیه‌وتحلیل قرار گرفت و عملیات شامل هفت متغیر درخطر منجر به خطای عملوند بود. بااین‌حال، سه تا از متغیرها بدون محافظت رها شدند. هیچ اشاره‌ای به توجیه این تصمیم نشده است.
دلیل محافظت نشدن سه متغیر باقیمانده، ازجمله متغیری که نشان‌دهنده سوگیری افقی است، این استدلال بود که نشان داد که آنها یا ازنظر فیزیکی محدود هستند یا حاشیه ایمنی زیادی وجود دارد، استدلالی که در مورد متغیر BH مشخص شد.
اگرچه دلیل عدم موفقیت مأموریت آریان ۵ خطای Operand ذکرشده است، اما این به‌خودی‌خود باعث شکست مأموریت نشد. مکانیزم رسیدگی به‌استثناء نیز به شکست کمک کرده است.

 

منبع 1، منبع 2، منبع 3

اطلاعات
8
0
لینک و اشتراک
profile

Zeus ‌

متخصص الکترونیک

زئوس هستم ساکن المپ

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
احمدمحمدنژاد گفت :
۱۴۰۱-۰۱-۲۸ ۱۷:۵۹

در گذشته تبدیل اعداد اعشاری به صحیح و برعکس چالش کمپایلرها بود:
https://frama-c.com/2013/10/09/Overflow-float-integer.html

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۲۹ ۰۹:۱۳

بسیار جالب بود
هرچند فکر میکنم الان هم همچنان به شکل چالش هستند اعداد اعشاری مخصوصا در سیستم های امبدد

profile
احمدمحمدنژاد گفت :
۱۴۰۱-۰۱-۲۹ ۰۹:۴۸

بی گمان
در 99.9 درصد سیستمهای امبدد به اعداد اعشاری نیاز نمیشه و براحتی میشه با مقیاس کردن اعداد صحیح، از اعشار پرهیز کرد. اما بندرت در معادلات غیرخطی رنج دینامیکی بالایی لازمه که چاره ای جز استفاده از اعشار نیست. در این موارد حتما باید محاسبات را در همه حالتها بررسی کرد تا محدودیت های کمپایلر و پردازنده باعث گرفتاری نشوند.
https://www.st.com/resource/en/application_note/dm00047230-floating-point-unit-demonstration-on-stm32-microcontrollers-stmicroelectronics.pdf

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۳۰ ۰۹:۳۴

اتفاقا همیشه از اعداد اعشاری فراری بوده ام، چون هم هزینه حافظه بالایی بر روی سیستم اعمال می‌کنند هم پردازش سنگینی دارند، تا جای ممکن سعی میکنم که محاسبات به ساده ترین شکل ممکن انجام بشه ولی خوب گاهی واقعا هیچ راه فراری نیست و مجبور به انجام محاسبات اعشاری هستیم ، هرچند که سخت افزار های جدید مجهز به واحد های fpu هستند با این حال ممکنه که سرعت محاسبات را جبران کنند ولی همچنان سعی میکنم روش سنتی خودم رو پیش بگیرم
🙂

profile
احسان گفت :
۱۴۰۱-۰۱-۲۸ ۱۶:۲۰

این به
A million dollar bug
معروف هست …

profile
Sisoog Os گفت :
۱۴۰۱-۰۱-۲۸ ۱۶:۳۰

خیلی هم بهش میاد 🙂

profile
Mahdi.h   گفت :
۱۴۰۱-۰۱-۲۸ ۰۸:۴۶

ممنون از شما.
ولی سطح توضیحات زیادی بالا بود?(مبحث سنگین بود).

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۲۸ ۱۳:۱۰

خواهش میکنم، تازه سعی کردم تا جای ممکن ساده و گویا باشه
ولی خوب کلیت ماجرا مهمه که چطور این طورخطا ها توی پروژه های این چنین بزرگ پیش میآد

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله