الصيانة التنبؤية (PdM) هي طريقة لاستبدال الأجزاء تماماً قبل أن تتعطل. الهدف هو حساب العمر الإنتاجي المتبقي (RUL) للمحرك بناءًالصيانة التنبؤية (PdM) هي طريقة لاستبدال الأجزاء تماماً قبل أن تتعطل. الهدف هو حساب العمر الإنتاجي المتبقي (RUL) للمحرك بناءً

التنبؤ بفشل محرك الطائرة باستخدام Python وAutoML

في مجال الطيران، "كسر الأشياء" ليس خياراً متاحاً.

إذا تعطل خادم، يمكنك إعادة تشغيله. أما إذا فشل محرك نفاث أثناء الطيران، فالعواقب ستكون كارثية. لهذا السبب تتحول صناعة الطيران من الصيانة الوقائية (استبدال الأجزاء وفقاً لجدول زمني سواء كانت بحاجة إلى ذلك أم لا) إلى الصيانة التنبؤية (PdM) (استبدال الأجزاء تماماً قبل أن تتعطل).

بالنسبة لعلماء البيانات، هذه هي مشكلة الانحدار النهائية للسلاسل الزمنية. الهدف هو حساب العمر الإنتاجي المتبقي (RUL) للمحرك بناءً على بيانات المستشعرات (درجة الحرارة، الضغط، الاهتزاز).

تقليدياً، كان هذا يتطلب نماذج فيزيائية معقدة أو هياكل التعلم العميق المضبوطة يدوياً (LSTMs). ولكن مؤخراً، نضج التعلم الآلي الآلي (AutoML) إلى النقطة التي يمكنه فيها التفوق على الضبط اليدوي.

في هذا الدليل، بناءً على التحليل باستخدام مجموعة بيانات NASA C-MAPSS، سنبني خط أنابيب للتنبؤ بفشل المحرك باستخدام اثنين من الأوزان الثقيلة مفتوحة المصدر: AWS AutoGluon و H2O.ai.

خط أنابيب PdM

نحن لا نقوم فقط بتصنيف الصور هنا؛ نحن نتعامل مع بيانات السلاسل الزمنية متعددة المتغيرات. يتطلب خط الأنابيب تحويل سجلات المستشعرات الخام إلى هدف انحدار (RUL).

المرحلة 1: البيانات (NASA C-MAPSS)

نحن نستخدم مجموعة بيانات NASA Commercial Modular Aero-Propulsion System Simulation (C-MAPSS) الشهيرة. تحتوي على بيانات محاكاة من التشغيل حتى الفشل.

  • المدخلات: 21 مستشعراً (درجة الحرارة الإجمالية، الضغط عند مدخل المروحة، سرعة النواة، إلخ).
  • الهدف: العمر الإنتاجي المتبقي (RUL).

حساب RUL

مجموعة البيانات لا تعطينا RUL بشكل صريح؛ بل تعطينا الدورة الحالية. علينا حساب الهدف.

المنطق: RUL = أقصىدورةللمحرك - الدورةالحالية

import pandas as pd # Load dataset (Simulated example structure) # Columns: ['unit_number', 'time_in_cycles', 'sensor_1', ... 'sensor_21'] df = pd.read_csv('train_FD001.txt', sep=" ", header=None) # 1. Calculate the maximum life of each engine unit max_life = df.groupby('unit_number')['time_in_cycles'].max().reset_index() max_life.columns = ['unit_number', 'max_life'] # 2. Merge back to original dataframe df = df.merge(max_life, on='unit_number', how='left') # 3. Calculate RUL (The Target Variable) df['RUL'] = df['max_life'] - df['time_in_cycles'] # Drop columns we don't need for training (like max_life) df = df.drop(columns=['max_life']) print(df[['unit_number', 'time_in_cycles', 'RUL']].head())

المرحلة 2: المقياس (لماذا الدقة خاطئة)

في الصيانة التنبؤية، "الدقة" البسيطة لا تعمل. نحتاج إلى قياس مدى البعد عن توقعنا.

نعتمد على RMSE (جذر متوسط مربع الخطأ).

  • إذا كان المحرك لديه 50 يوماً متبقياً، وتوقعنا 45، فالخطأ هو 5.
  • إذا توقعنا 100، فالخطأ هو 50 (عقوبة ضخمة).

import numpy as np def calculate_rmse(y_true, y_pred): """ y_true: The actual Remaining Useful Life y_pred: The model's prediction """ mse = np.mean((y_true - y_pred)**2) return np.sqrt(mse)

ملاحظة: يسلط التحليل الضوء أيضاً على RMSLE (الخطأ اللوغاريتمي). هذا أمر بالغ الأهمية لأن التنبؤ بعمر أقل (التنبؤ بالفشل مبكراً) آمن، لكن التنبؤ بعمر أكثر (التنبؤ بالفشل لاحقاً من الواقع) خطير. يتعامل RMSLE مع الأخطاء النسبية بشكل أفضل عبر مقاييس مختلفة.

المرحلة 3: مواجهة AutoML

اختبرنا إطارين لنرى أيهما يمكنه التعامل مع بيانات المستشعرات المعقدة والمشوشة بشكل أفضل دون ضبط يدوي مكثف.

المتنافس 1: AutoGluon (الفائز)

يستخدم AutoGluon (الذي طورته AWS) استراتيجية تكديس ودمج نماذج متعددة (الشبكات العصبية، LightGBM، CatBoost) تلقائياً.

الكود:

from autogluon.tabular import TabularPredictor # AutoGluon handles feature engineering automatically # 'RUL' is our target label calculated in Phase 1 predictor = TabularPredictor(label='RUL', eval_metric='root_mean_squared_error').fit( train_data=df_train, time_limit=600, # Train for 10 minutes presets='best_quality' ) # Inference y_pred = predictor.predict(df_test) results = predictor.evaluate(df_test) print(f"AutoGluon RMSE: {results['root_mean_squared_error']}")

المتنافس 2: H2O AutoML

H2O هو محارب قديم في المجال، معروف بقدرات الحوسبة الموزعة القابلة للتوسع.

الكود:

import h2o from h2o.automl import H2OAutoML h2o.init() # Convert pandas df to H2O Frame hf_train = h2o.H2OFrame(df_train) hf_test = h2o.H2OFrame(df_test) # Train aml = H2OAutoML(max_models=20, seed=1) aml.train(y='RUL', training_frame=hf_train) # Inference preds = aml.predict(hf_test) perf = aml.leader.model_performance(hf_test) print(f"H2O RMSE: {perf.rmse()}")

المرحلة 4: النتائج

كشف التحليل عن تفاوت هائل في الأداء عند تطبيقه على مجموعة بيانات المستشعرات المحددة هذه.

| المكتبة | المقياس | الهدف: RUL | النتيجة (الأقل أفضل) | |----|----|----|----| | AutoGluon | RMSE | RUL | 14.07 | | H2O | RMSE | RUL | 44.85 |

**التحليل: \ تفوق AutoGluon على H2O بشكل كبير (14.07 مقابل 44.85). في سياق المحركات النفاثة، هامش خطأ قدره 14 دورة مقبول لجدولة الصيانة. هامش خطأ قدره 44 دورة يجعل النموذج عديم الفائدة.

لماذا فاز AutoGluon؟

  1. التكديس: يتفوق AutoGluon في التكديس متعدد الطبقات، مما يجمع نقاط القوة في النماذج القائمة على الأشجار والشبكات العصبية.
  2. معالجة الميزات: تعامل مع ضوضاء المستشعرات الخام بشكل أفضل دون الحاجة إلى خطوات إزالة التشويش اليدوية.

الخلاصة: توقف عن الضبط، ابدأ التكديس

بالنسبة للتطبيقات الصناعية التي تتضمن بيانات متعددة المتغيرات معقدة، لم يعد AutoML مجرد أداة للنماذج الأولية - بل هو قدرة إنتاجية.

من خلال التحول من اختيار النماذج اليدوي إلى نهج التجميع الآلي مثل AutoGluon، يمكن للمطورين تقليل وقت الهندسة من أسابيع إلى ساعات مع تحقيق دقة فائقة.

النقطة الرئيسية للمطورين: عند بناء تطبيقات إنترنت الأشياء الصناعية، ركز جهدك على المرحلة 1 (هندسة البيانات) تنظيف سجلات المستشعرات وحساب RUL الصحيح. دع AutoML يتعامل مع اختيار النموذج.

\

فرصة السوق
شعار Cyberlife
Cyberlife السعر(LIFE)
$0.0356
$0.0356$0.0356
-6.31%
USD
مخطط أسعار Cyberlife (LIFE) المباشر
إخلاء مسؤولية: المقالات المُعاد نشرها على هذا الموقع مستقاة من منصات عامة، وهي مُقدمة لأغراض إعلامية فقط. لا تُظهِر بالضرورة آراء MEXC. جميع الحقوق محفوظة لمؤلفيها الأصليين. إذا كنت تعتقد أن أي محتوى ينتهك حقوق جهات خارجية، يُرجى التواصل عبر البريد الإلكتروني service@support.mexc.com لإزالته. لا تقدم MEXC أي ضمانات بشأن دقة المحتوى أو اكتماله أو حداثته، وليست مسؤولة عن أي إجراءات تُتخذ بناءً على المعلومات المُقدمة. لا يُمثل المحتوى نصيحة مالية أو قانونية أو مهنية أخرى، ولا يُعتبر توصية أو تأييدًا من MEXC.