نرم افزاری که باعث مرگ بیش از ۳۶۰ سرنشین دو هواپیما شد

پرونده بررسی نقص نرم افزاری هواپیمای بوئینگ Max 737

مقدمه

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

نحوه کارکرد کامپیوتر هواپیماهای مسافربری و تاثیر آن در پرواز هواپیما

الان مدت های زیادی است که کامپیوترها پروازهای مسافربری رو که ما سوار اون میشیم رو کنترل میکنن. اصلاحا به کامپبورترها و نرم افزارهایی که هواپیما رو کنترل میکنن (سیستم اویونیک هواپیما )گفته میشه. طی دهه های گذشته سیستم های اویونیک پرواز پیشرفت کردن و روز به روز کارهای بیشتری رو انجام میدن و زحمت خلبان ها رو در هدایت پرواز ها کمتر و کمتر میکنن اما مسلما هر تکنولوژی جدیدی اگر بدون بررسی عواقب اون استفاده بشه و یا آثار جانبی اون به درستی تحلیل نشه میتونه فاجعه های زیادی رو به بار بیاره. بگذارید در ادامه به این نکته اشاره کنیم که چرا در هواپیماها شروع به استفاده از کامپیوترها کردیم؟ به چند دلیل ساده :

  1. احتمال ایجاد اشتباه انسانی بسیار بیشتر از اشتباهات نرم افزاری است
  2. کم کردن بار کاری خلبان ها برای افزایش تمرکز خلبان به موارد حیاتی پرواز
  3. کاهش خستگی خدمه پرواز
  4. جلوگیری از اشتباهات مرگبار خدمه پرواز با استفاده از نرم افزارهای کنترل پرواز.
  5. پرواز با کمترین تعداد خدمه (امروزه بهترین پرنده ها میتوانند تنها با دو خلبان و در شرایط اضطراری با یک خلبان به راحتی به پرواز ادامه دهند. در صورتی که در گذشته نه چندان دور برای پرواز مسافربری به ۴ یا ۳ خدمه نیاز بود) و کاهش هزینه های پرواز

البته دلائل دیگری  هم وجود دارد که از حوصله بحث خارج است . در ادامه به یکی از ساده ترین سیستم های نرم افزاری که در تمام پرنده های مسافربری مدرن وجود دارد و تغییر  و دستکاری در این سامانه باعث کشته شدن مسافران دو پرواز ۷۳۷ مکس گردید اشاره میکنیم.

در تمامی هواپیماها خلبان خودکار(کامپیوتر هواپیما) وظیفه حفظ ارتفاع و زاویه دماغه هواپیما در طول پرواز را به عهده دارد اما این سیستم چگونه کار میکند ؟ خیلی ساده بوسیله دو حسگر زائده شکل در دو طرف هواپیما در روی کابین خلبان و مقابل بال های هواپیما(AOA Sensor) این سنسورها وضعبت دماغه را در هر لحظه به کامپیوتر پرواز اطلاع داده و کامپیوتر پرواز دماغه هواپیما را با کنترل و تنظیم قسمت های متحرک دم و بال ها تنظیم میکند تا در مسیر مستقیم نسبت به افق قرار گیرد و خلبان مجبور نباشد در کل طول پرواز سکان هواپیما را کنترل کند. اما اگر این سنسورها از کار بیفتند چه؟

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

اتفاقی که برای پرواز ۶۱۰ اندونزی و هواپیمایی اتیوپی افتاد چه بود؟

پس از سقوط هواپیمایی اندونزی و کشف داده های FDR(جعبه سیاه) هواپیما و تحلیل آن، کارشناسان متوجه شدند طی ۶ دقیقه قبل از سقوط ،هواپیما طی ۲۴ بار به سمت زمین شیرجه زده و خلبان های بیچاره هربار هواپیما را کنترل کرده اند ولی بالاخره این غول آهنی خلبان ها را شکست داده و سقوط می کند.

پس از این فاجعه بوئینگ و سازمان ایمنی هوایی آمریکا دستورالعملی را به تمام شرکت های دارای هواپیمای ۷۳۷ مکس ارسال می نمایند تا خلبان ها را برای کنترل شرایط پیش آمده آموزش دهند.(بوئبنگ باید پیش از این نسبت به آگاهی و آموزش کامل خلبانها نسبت به این سامانه اقدام میکرد اما با دیدگاهی ساده انگارانه تصور کرده که نیازی به این کار وجود ندارد. در اینجا به ضرورت آموزش صحیح پرسنل برای استفاده از نرم افزارها میتوان اشاره کرد)

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

چرایی سقوط هواپیماهای ۷۳۷ مکس بر اثر خطای نرم افزاری؟

مشکل از کجا شروع شد؟

با توجه به اینکه هواپیماهای ۷۳۷ محبوب ترین و یکی از برترین هواپیماهای مسافربری در دنیا طی چند دهه گذشته بوده اند واقعا چه چیزی باعث بروز این فاجعه و به زمین افتادن این غول آهنی شد؟ مشکل از جایی آغاز شد که بوئینگ تصمیم گرفت در آخرین سری این پرنده بهترین ، قوی ترین ، کم مصرف ترین و بزرگ ترین موتورها را استفاده کند موتورهایی که آنقدر بزرگ بودند که در زیر بالهای قبلی جا نمی شدند و بوئینگ مجبور شد آنها را کمی جلوتر و بالاتر از محل قبلی نصب کند. اما تا اینجا که ظاهرا همه چیز خوب است ولی با توجه به اینکه هر تغییر کوچکی در سازه هواپیما مقدورات پروازی آن را دچار تغییر میکند خلبانهای ۷۳۷ برای پرواز با این نوع جدید ۷۳۷ باید آموزش های زیادی را دریافت می کردند تا بتوانند با شرایط جدید این پرنده کنار آمده  و به راحتی در شرایط گوناگون آن را هدایت کنند. ولی این چیزی نبود که بوئینگ و شرکت های مسافربری هوایی از آن خوششان بیاد آموزش اضافه یعنی هزینه زیاد برای شرکت ها پس بوئینگ دست به یک ابتکار بزرگ زد و آن ابتکار تغییر اویونیک هواپیما و اضافه کردن یک نرم افزار جدید به نام ام کس (M cas) بود.

 

ام کس(M cas) چه بود و چرا به هواپیمای ۷۳۷ Max اضافه شد؟

وقتی مهندسین مجبور شدند موتورهای جدید را کمی جلوتر و بالاتر قرار دهند دماغه هواپیما در زمان پرواز تمایل به بالارفتن و اوج گیری پیدا کرد برای رفع این مشکل کافی است خلبان با کنترل زاویه دم هواپیما این مشکل را رفع کند اما این مساله نیاز به آموزش خدمه را بالا میبرد پس بویینگ ام مکس را طراحی کرد تا این نرم افزار بتواند بصورت اتوماتیک با موتورهای الکتریکی که در دم هواپیما وجود داشت این کار را انجام دهد و نیازی نباشد خلبان ها کاری انجام دهند و مثل پرنده های قبلی با آن پرواز می کردند. تا اینجا ایده خوبی به نظر میاید ولی مساله مهمی را فراموش کرده بودند؟ اگر ام کس با مشکل مواجه شود با وجود خدمه ای که برای رویارویی با این شرایط آموزش ندیده اند چه اتفاقی خواهد افتاد؟ نقص بزرگ طراحی ام کس آنجایی بود که فقط به یکی از دو سنسور (AOA Sensor) هواپیما متکی بود سنسور سمت راست هواپیما و اگر برای آن سنسور مشکلی پیش میامد همانند فاجعه هواپیمای ۷۳۷ مکس هواپیمایی اتیوپی عملا کار خدمه ومسافرین پرواز تمام بود.

بوئینگ 737 مکس

اما چرا سیستم چنین نقص بزرگی داشت؟

مشکل از آنجایی ناشی میشود که برنامه نویسان و مهندسین طراح سامانه های نرم افزاری خلبانی بلد نیستند! مهندسین بوئینگ برای شرایط خرابی و نقص ام کس و سامانه های مشابه پروازی دو دکمه در پایین ساسات های کنترل سوخت موتورها برای قطع برق موتورهای الکتریکی دم هواپیما قرار داده بودند تا ام کس نتواند آنها را تغییر دهد و خلبان بصورت دستی و با سیستم مکانیکی بتواند زاویه دم را تنظیم کرده و پرنده را به حالت تعادل برگرداند. این ایده هم بسیار مسخره و ناکارآمد بود زیرا در زمان پایین آمدن دماغه با سرعت بیش از ۷۰۰ کیلومتر در ساعت و فشار باد ایجاد شده بر روی دم تغییر زاویه دم بصورت مکانیکی تقریبا غیر ممکن است وخلبان برای رفع این مشکل تنها ۴ ثانیه زمان برای خاموش کردن موتور الکتریکی  دارد و پس از آن و افزایش زاویه اگر اینکار را انجام دهد عملا قبر خودش را با اینکار کنده است.

 

کاهش هزینه ها عامل نابودی بوئینگ ۷۳۷ مکس و نقص یک ایده هوشمندانه!

از نظر من ایده ساخت نرم افزار ام کس بوئینگ در کل ایده بدی نبود فقط بسیار عجولانه و سرسری و بدون در نظر گرفتن مشکلات بوجود آمده در حین پرواز پیاده سازی شد. در پرواز اتیوپی برخورد یک پرنده با سنسور AOA  و کنده شدن آن در حین پرواز باعث بوجود آمدن این خسارت بزرگ برای مسافرین ، شرکت هواپیمایی و آبروی چندین ساله بوئینگ شد. بصورتی که نرم افزار بدون وجود سنسور، داده های اشتباهی که از سنسور خراب را بدست میاورد معیار محاسبه قرار داد و انقدر دماغه را پایین کشید تا باعث سقوط پرنده با سرعت ۸۰۰ کیلومتر بر ساعت شد. فقط کافی بود بوئینگ کمی بیشتر وقت گذاشته و هزینه کند و با افزودن لایه های امنیتی جدید به قسمت تصمیم گیری نرم افزار ام کس و دریافت اطلاعات از سنسور سمت چپ و دیگر سنسورهای پرنده تصمیمات صحیحی را گرفته و یا پیش از آن خدمه پرواز را مطلع از بروز اشتباه نماید.(بوئینگ در حال حاضر پس از مرگ سهراب در حال انجام همین کار است)

بوئینگ حتی مسیر ساده تری را هم میتوانست پیش بگیرد و تنها یک سوئیچ برای خاموشی مستقیم ام کس قرار دهد (کمی هزینه بیشتر برای آموزش این مورد به نظر منطقی تر می آمد) به جای اینکه خلبان بیچاره را مجبور کند موتورهای الکتریکی کنترل دم پرنده را خاموش کند و پس از آن مجبور باشد با یک غول پرنده بین زمین و آسمان کشتی بگیرد.

نتیجه گیری

به  مدیران پروژه و کارفرماها توصیه میکنم با فشار آوردن به تیم نرم افزاری خود برای کاهش هزینه یا زمان باعث بوجود آمدن فاجعه های اینچنینی نشوند درست است که ما نرم افزارهای کنترل پرواز را در شرکت های خودمان تولید نمی کنیم اما در نظر بگیرید یک نقص کوچک در محاسبات یک نرم افزار حسابداری ساده در طول یکسال یا دو سال چه هزینه های کلانی را می تواند به بک شرکت یا سازمان وارد کند. از زمانی که دانشجو بودم داستان نرم افزار مالی یک سازمان نیمه دولتی را بخاطر دارم که بخاطر مشکل در نرم افزارحسابداری در طول یکسال متحمل چند میلیارد تومان  خسارت شده بود . خسارتی که قابل برگشت نبود.  علوم نرم افزار و برنامه نویسی یکی از جدیدترین و مدرنترین علوم دنیای ما هستند ما هر روز در حال یادگیری روش های جدید و کسب تجربه هستیم. به مهندسین خود اعتماد کنید و آنها را برای کسب نتیجه دلخواه خود بصورت غیر کارشناسی تحت فشار نگذارید تا از فاجعه نجات پیدا کنید. امیدوارم که این مقاله کوتاه مورد توجه شما قرار گرفته باشد. با نظرات خود ما را راهنمایی کنید.

نویسنده : پیمان شاهکار

اشتراک گذاری:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *