Random Forest asistat de simulare termodinamică: Diagnosticarea explicabilă a defecțiunilor pentru componentele camerei de ardere a motoarelor diesel marine

Congcong Luo a , Minghang Zhao a,* , Xuyun Fu a , Shisheng Zhong a , Song Fu b , Kai Zhang c , Xiaoxia Yu d
a Department of Mechanical Engineering, Harbin Institute of Technology, Weihai, Weihai 264209, China
b School of Mechatronics Engineering, Harbin Institute of Technology, Harbin 150001, China
c School of Mechanical Engineering, Southwest Jiaotong University, Chengdu 610031, China
d School of Mechanical Engineering, Chongqing University of Technology, Chongqing 400054, China

Rezumat

Metodele tradiționale de diagnosticare inteligentă a defecțiunilor motoarelor diesel marine suferă adesea de o capacitate slabă de generalizare din cauza lipsei eșantioanelor de antrenament pentru defecțiuni și de o explicabilitate scăzută, deoarece nu integrează suficient cunoștințele a priori despre mecanismele de defectare. Pentru a aborda aceste probleme, această lucrare propune o metodă Random Forest Asistat de Simulare Termodinamică (TSRF) .

Această metodă dezvăluie caracteristicile evoluției defecțiunilor prin simulare termodinamică și le integrează ca și cunoștințe a priori în proiectarea modelului de diagnosticare inteligentă a defecțiunilor. În primul rând, au fost dezvoltate cinci modele termodinamice de defecțiuni prin ajustarea fină a parametrilor de bază ai sistemului pentru a simula caracteristicile semnificative ale diferitelor avarii. Ulterior, pe baza rezultatelor simulării numerice, au fost identificați potențialii indicatori termodinamici care caracterizează degradarea componentelor camerei de ardere.

Selecția caracteristicilor a fost efectuată prin calcularea valorilor SHapley Additive exPlanations (SHAP), păstrând doar variabilele cu o corelație semnificativă cu starea defecțiunii. În cele din urmă, starea de sănătate a camerei de ardere a fost evaluată folosind parametrii selectați. Rezultatele experimentale arată că metoda TSRF propusă prezintă o performanță excelentă de clasificare, cu o precizie medie de 99,07% pe setul de date de defecțiuni.

Cuvinte cheie:
Motor diesel marin Diagnosticarea defecțiunilor AI explicabil Valori SHAP

Motivația cercetării

În domeniul ingineriei marine și al Prognosticului și Managementului Sănătății (PHM), industria se confruntă cu două blocaje pe termen lung:

  • Lipsa datelor: Motoarele diesel marine (în special motoarele principale ale navelor oceanice) sunt inima navei. O defecțiune gravă pe mare poate duce la pierderea propulsiei, eșuare sau chiar dezastre maritime. Prin urmare, factorii lor de siguranță în proiectare sunt extrem de mari, iar probabilitatea defecțiunilor grave este inerent foarte scăzută. În plus, industria navală implementează sisteme stricte de întreținere preventivă (cum ar fi reviziile planificate pe baza orelor de funcționare). Marea majoritate a pieselor de uzură sunt înlocuite forțat înainte de a se defecta efectiv și de a genera date de eroare. Acest lucru duce la o abundență de date de sănătate și date de uzură timpurie, dar la o lipsă extremă de date reale despre defectarea completă sau defecțiuni grave.
  • Problema "Black Box": Deoarece modelele de învățare profundă (deep learning) lipsesc de obicei de transparență, este dificil pentru ingineri să aibă încredere în ele dacă nu pot explica cauzele fizice ale unei defecțiuni. În industria navală, strict reglementată de societățile de clasificare, această opacitate este critică. Dacă AI diagnostică greșit (sau omite) griparea pistonului sau ruperea arborelui cotit, iar sistemul nu poate urmări dacă eroarea provine din biasul datelor, un defect de algoritm sau deriva senzorului, această imposibilitate de urmărire este inacceptabilă în investigațiile accidentelor maritime.

Pentru a aborda aceste provocări, am propus metoda TSRF. Prin fuziunea modelelor mecanice bazate pe fizică cu tehnici avansate de explicabilitate și utilizarea modelelor de simulare de înaltă fidelitate pentru a rezolva problema lipsei de date, ne asigurăm că deciziile de diagnosticare sunt conforme cu principiile termodinamice fundamentale.


Metodologie

Fluxul de lucru al acestui studiu cuprinde următoarele patru faze principale (după cum se arată în figură):

  1. Modelare termodinamică: În loc să ne bazăm exclusiv pe bancuri de testare fizice, am construit un model termodinamic unidimensional de înaltă fidelitate al unui motor diesel marin cu șase cilindri. Modelul a fost riguros calibrat pe baza datelor reale de operare, menținând eroarea de simulare sub 5%.
  2. Injectarea defecțiunilor: Pe baza modelului calibrat, am simulat cinci defecțiuni specifice ale camerei de ardere (cum ar fi fisuri ale chiulasei, ablația pistonului etc.) prin ajustarea fină a parametrilor fizici, generând astfel un set de date care acoperă diferite grade de defecțiuni reale ale motorului.
  3. Selecția caracteristicilor bazată pe SHAP: Am utilizat valorile SHAP pentru a identifica cantitativ caracteristicile cheie, selectând 14 parametri critici care domină decizia de diagnosticare.
  4. Diagnosticarea clasificării: Folosind acest set de date îmbogățit fizic, am antrenat un clasificator Random Forest (RF) și am obținut o diagnosticare a defecțiunilor de înaltă precizie.
Structure of TSRF method combining Thermodynamic Simulation and Random Forest for Explainable AI

Fig. 1: Arhitectura metodei TSRF.


Detalii modelare termodinamică

Pentru a asigura o fidelitate ridicată, am construit un model de simulare a motorului diesel unidimensional. Acest model mecanic echilibrează acuratețea fizică cu eficiența computațională necesară pentru generarea setului de date.

Topologia modelului

Sistemul motorului este discretizat ca o rețea de conducte de fluid și componente funcționale:

  • Unitatea de putere centrală: Configurație în linie, șase cilindri, doi timpi.
  • Sistemul de aer: Galeriile de admisie/evacuare (PL1, PL2) sunt conectate printr-o rețea complexă de conducte.
  • Sistemul de supraalimentare: Turbocompresor (TC1) cuplat cu intercooler (CO1).

Calibrare și validare

Înainte de a efectua injectarea defecțiunilor, modelul de bază a fost riguros calibrat pe baza datelor măsurate.

  • Sursa datelor: Date reale de operare ale navei achiziționate prin Modulul de Achiziție Date (DCM).
  • Validare: Abaterile parametrilor cheie (cum ar fi puterea, temperatura gazelor de eșapament) au fost strict controlate într-un interval de eroare de ±5% .
1-D thermodynamic simulation model

Fig. 2: Schema modelului termodinamic unidimensional al motorului diesel.

Model Validation Results

Fig. 5: Modulul de Achiziție Date (DCM).

Mecanismul de injectare a defecțiunilor

Deoarece modelele unidimensionale nu pot reprezenta direct defectele structurale 3D, am adoptat o metodă de mapare fenomenologică pentru a traduce mecanismele de degradare fizică în schimbări echivalente ale parametrilor termodinamici.

Tip defecțiune Mecanism fizic Implementare modelare
F1: Fisură chiulasă Conducție termică împiedicată. Creșterea temperaturii suprafeței chiulasei ($T_H$) la 346°C.
F2: Ablația pistonului Pierdere de material și eșecul etanșării. Creșterea temperaturii pistonului ($T_P$) + scăpări ușoare de gaze (blow-by) (0,01 kg/s).
F3: Uzura cămășii (Liner) Mărirea alezajului din cauza uzurii. Creșterea alezajului + scăpări severe de gaze (0,03 kg/s).
F4: Uzura segmenților Scurgere de gaz. Ajustarea debitului masic al scăpărilor de gaze (0,02 kg/s).
F5: Blocarea segmenților Frecare crescută și eșecul etanșării. Modificarea diametrului alezajului + creșterea temperaturii cămășii + scăpări de gaze.

Analiza explicabilității

O inovație centrală a acestui studiu constă în mutarea atenției de la "Care este defecțiunea?" la "De ce a fost diagnosticată această defecțiune?". Am demonstrat această capacitate prin analiza uzurii segmenților pistonului (F4):

  • Explicație locală (Diagrama Waterfall): Diagrama Waterfall descompune logica specifică de predicție. De exemplu, modelul a prezis "uzura segmenților" deoarece fluxul termic al scăpărilor de gaze (P06) și debitul masic al scăpărilor de gaze (P07) au prezentat valori specifice, crescând astfel probabilitatea de predicție a acestei defecțiuni. Acest lucru este conform cu legile fizice: uzura segmenților distruge etanșarea, ducând la scurgeri de gaz (blow-by).
  • Explicație globală (Diagrama Beeswarm): Analiza globală dezvăluie legile generale învățate de model. Am descoperit că o valoare scăzută a presiunii de evacuare înainte de turbină (P11) este un indicator puternic al uzurii segmenților. Fizic, acest lucru este consistent: segmenții uzați duc la scurgeri de gaz din cilindru, reducând astfel energia disponibilă pentru antrenarea turbinei.
SHAP Analysis,including Waterfall plot, beeswarm plot, interaction plot and dependence plot

Fig. 11: Analiza defecțiunii de uzură a segmenților (F4) bazată pe valorile SHAP: (a) Diagrama Waterfall; (b) Diagrama Beeswarm; (c) Diagrama interacțiunii; (d) Diagrama dependenței.

Vezi codul de vizualizare SHAP (Python)

Dacă sunteți interesat de detaliile de implementare ale graficelor de mai sus, iată un exemplu de cod pentru generarea diagramelor waterfall, beeswarm, interacțiune și dependență.👇

import shap
import matplotlib.pyplot as plt
import numpy as np

# --- 0. Setup & Global Settings ---
plt.rcParams['font.family'] = 'Arial'
plt.rcParams['font.size'] = '24'
plt.rcParams['axes.unicode_minus'] = False

# Assumption: 'best_model' is your trained XGBoost/RF model
# Assumption: 'X_train' and 'X_test' are pandas DataFrames

# 1. Calculate SHAP values as Numpy Arrays (for Beeswarm, Dependence, Interaction)
explainer_tree = shap.TreeExplainer(best_model)
shap_values_numpy = explainer_tree.shap_values(X_train) 

# 2. Calculate SHAP values as Explanation Object (Specifically for Waterfall)
explainer_obj = shap.Explainer(best_model, X_test)
shap_values_obj = explainer_obj(X_test)


##################################################################
#                                                                #
#                      (a) Waterfall Plot                        #
#          Visualizes contribution for a single sample           #
#                                                                #
##################################################################

class_idx = 4  # Target class
sample_idx = 3 # Specific sample to explain

plt.figure()
shap.plots.waterfall(
    shap_values_obj[sample_idx, :, class_idx], 
    max_display=9, 
    show=False
)

# Customizing style
ax = plt.gca()
ax.set_xlabel(ax.get_xlabel(), fontsize=36)
ax.set_ylabel(ax.get_ylabel(), fontsize=36)
ax.spines['bottom'].set_linewidth(3)
plt.show()


##################################################################
#                                                                #
#                      (b) Beeswarm Plot                         #
#              Global summary of feature importance              #
#                                                                #
##################################################################

class_idx = 5
plt.figure(figsize=(10, 8))

shap.summary_plot(
    shap_values_numpy[..., class_idx], 
    X_train, 
    feature_names=X_train.columns, 
    plot_type="dot", 
    show=False, 
    cmap='Greys' # or 'plasma'
)

# Customize Color Bar
cbar = plt.gcf().axes[-1] 
cbar.set_ylabel('Parameter Value', fontsize=24)
cbar.tick_params(labelsize=20)
plt.show()


##################################################################
#                                                                #
#                     (c) Interaction Plot                       #
#          Visualizes interaction effects between features       #
#                                                                #
##################################################################

# Note: Calculation can be expensive
shap_interaction_values = explainer_tree.shap_interaction_values(X_test)
class_idx = 4

plt.figure()
shap.summary_plot(
    shap_interaction_values[..., class_idx], 
    X_test, 
    show=False, 
    max_display=6, 
    cmap='Greys' 
)

# Clean up subplots
axes = plt.gcf().axes
for ax in axes:
    ax.spines['bottom'].set_linewidth(2)
    ax.tick_params(axis="x", labelsize=18, width=2)
    ax.set_title(ax.get_title(), fontsize=14) 

plt.subplots_adjust(wspace=0.3, hspace=0.4)    
plt.show()


##################################################################
#                                                                #
#                     (d) Dependence Plot                        #
#           Feature relationship colored by interaction          #
#                                                                #
##################################################################

Feature_X = 'P06'  # Main feature
Feature_Y = 'P07'  # Interaction feature
class_idx = 4

shap.dependence_plot(
    Feature_X, 
    shap_values_numpy[..., class_idx], 
    X_train, 
    interaction_index=Feature_Y, 
    dot_size=100, 
    show=False
)

# Customize Axes
ax = plt.gca()
ax.tick_params(axis='both', which='major', labelsize=36, width=2)
ax.set_ylabel(f'SHAP value ({Feature_X})', fontsize=36)
ax.spines['bottom'].set_linewidth(3)
ax.spines['left'].set_linewidth(3)
plt.show()


##################################################################
#                                                                #
#            (e) Advanced Composite Plot (Beeswarm + Bar)        #
#      Combines Beeswarm (Bottom Axis) & Importance (Top Axis)   #
#                                                                #
##################################################################

class_idx = 5
fig, ax1 = plt.subplots(figsize=(10, 8))

# 1. Main Beeswarm Plot (on ax1)
shap.summary_plot(
    shap_values_numpy[..., class_idx], 
    X_train, 
    feature_names=X_train.columns, 
    plot_type="dot", 
    show=False, 
    color_bar=True, 
    cmap='Greys' # or 'plasma'
)

# Customize Color Bar
cbar = plt.gcf().axes[-1] 
cbar.set_ylabel('Parameter Value', fontsize=24)
cbar.tick_params(labelsize=20)

# Adjust layout to make room for the top axis
plt.gca().set_position([0.2, 0.2, 0.65, 0.65]) 

# 2. Feature Importance Bar Plot (on Top Axis ax2)
# Create a twin axis sharing the y-axis
ax2 = ax1.twiny() 

shap.summary_plot(
    shap_values_numpy[..., class_idx], 
    X_train, 
    plot_type="bar", 
    show=False
)

# Align position with the main plot
plt.gca().set_position([0.2, 0.2, 0.65, 0.65]) 

# Style the bars (Transparent & Light Color)
bars = ax2.patches
for bar in bars:
    bar.set_color('#CCE5FB') # Light blue background bars
    bar.set_alpha(0.4)       # Transparency

# Customize Axes Labels
ax1.set_xlabel(f'Shapley Value Contribution (F{class_idx})', fontsize=24, labelpad=5)
ax1.set_ylabel('Parameters', fontsize=24)
ax2.set_xlabel('Mean Shapley Value (Parameter Importance)', fontsize=24, labelpad=10)

# Move ax2 (Bar plot axis) to the top
ax2.xaxis.set_label_position('top') 
ax2.xaxis.tick_top()

# Ensure ax1 (dots) is drawn ON TOP OF ax2 (bars)
ax1.set_zorder(ax1.get_zorder() + 1) 
ax1.patch.set_visible(False) # Make ax1 background transparent

plt.show()

Reperele cercetării

Considerăm că această lucrare a adus următoarele contribuții cheie în acest domeniu:

  • Stabilirea modelelor parametrizate pentru cinci defecțiuni tipice ale componentelor camerei de ardere a motoarelor diesel marine.
  • Validarea eficacității metodei SHAP prin comparație cu mai multe metode de selecție a caracteristicilor.
  • Oferirea unei noi perspective pentru diagnosticarea explicabilă a defecțiunilor prin fuziunea metodelor bazate pe date cu modele mecanice termodinamice.

Citare

Dacă găsiți această lucrare utilă pentru cercetarea dumneavoastră, vă rugăm să citiți următorul articol 😊

BibTeX

@article{luo2025thermodynamic,
  title     = {Thermodynamic simulation-assisted random forest: Towards explainable fault diagnosis of combustion chamber components of marine diesel engines},
  author    = {Luo, Congcong and Zhao, Minghang and Fu, Xuyun and Zhong, Shisheng and Fu, Song and Zhang, Kai and Yu, Xiaoxia},
  journal   = {Measurement},
  volume    = {251},
  pages     = {117252},
  year      = {2025},
  publisher = {Elsevier},
  doi       = {10.1016/j.measurement.2025.117252},
}

Format standard

C. Luo, M. Zhao, X. Fu, S. Zhong, S. Fu, K. Zhang, X. Yu. Thermodynamic simulation-assisted random forest: Towards explainable fault diagnosis of combustion chamber components of marine diesel engines[J]. Measurement, 2025, 251: 117252.