Termodynamisk simuleringsstödd Random Forest: Förklaringsbar feldiagnostik för förbränningskammarens komponenter i marina dieselmotorer

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

Sammanfattning

Traditionella metoder för intelligent feldiagnostik av marina dieselmotorer lider ofta av dålig generaliseringsförmåga på grund av bristen på träningsprover för fel, och låg förklaringsbarhet eftersom de inte tillräckligt integrerar a priori-kunskap om felmekanismer. För att ta itu med dessa problem föreslår denna artikel en metod för Termodynamisk simuleringsstödd Random Forest (TSRF) .

Denna metod avslöjar egenskaperna för felutveckling genom termodynamisk simulering och integrerar dem som a priori-kunskap i utformningen av den intelligenta feldiagnostikmodellen. Först utvecklades fem termodynamiska felmodeller genom att finjustera systemets grundläggande parametrar för att simulera de signifikanta egenskaperna hos olika fel. Därefter identifierades potentiella termodynamiska indikatorer som kännetecknar nedbrytningen av förbränningskammarens komponenter baserat på numeriska simuleringsresultat.

Funktionsurval (feature selection) genomfördes genom att beräkna SHapley Additive exPlanations (SHAP)-värden, varvid endast variabler med signifikant korrelation med felstatusen behölls. Slutligen utvärderades förbränningskammarens hälsotillstånd med hjälp av de valda parametrarna. Experimentella resultat visar att den föreslagna TSRF-metoden uppvisar utmärkt klassificeringsprestanda, med en genomsnittlig noggrannhet på 99,07% på feldatasetet.

Nyckelord:
Marin dieselmotor Feldiagnostik Förklaringsbar AI SHAP-värden

Forskningsmotiv

Inom området marinteknik och Prognostics and Health Management (PHM) står industrin inför två långsiktiga flaskhalsar:

  • Databrist: Marina dieselmotorer (särskilt huvudmotorer på oceangående fartyg) är fartygets hjärta. Ett allvarligt fel till sjöss kan leda till förlust av framdrivning, grundstötning eller till och med sjökatastrofer. Därför är deras säkerhetsfaktorer vid konstruktion extremt höga, och sannolikheten för allvarliga fel är i sig mycket låg. Dessutom tillämpar sjöfartsindustrin strikta förebyggande underhållssystem (t.ex. schemalagda översyner baserade på driftstimmar). De allra flesta slitdelar byts ut med tvång innan de faktiskt går sönder och genererar feldata. Detta leder till ett överflöd av hälsodata och data om tidigt slitage, men en extrem brist på verkliga data om fullständigt haveri eller allvarliga fel.
  • "Black Box"-problemet: Eftersom djupinlärningsmodeller vanligtvis saknar transparens är det svårt för ingenjörer att lita på dem om de inte kan förklara de fysiska orsakerna till ett fel. Inom sjöfartsindustrin, som är strikt reglerad av klassificeringssällskap, är denna otydlighet kritisk. Om AI feldiagnostiserar (eller missar) en kolvskärning eller vevaxelbrott, och systemet inte kan spåra om felet härrör från databias, en algoritmdefekt eller sensordrift, är denna spårbarhetsbrist oacceptabel vid utredningar av sjöolyckor.

För att möta dessa utmaningar föreslog vi TSRF-metoden. Genom att sammanfoga fysikbaserade mekanistiska modeller med avancerade förklarbarhetstekniker och använda simuleringsmodeller med hög fidelitet för att lösa problemet med databrist, säkerställer vi att diagnostiska beslut överensstämmer med grundläggande termodynamiska principer.


Metodik

Arbetsflödet i denna studie omfattar följande fyra huvudfaser (som visas i figuren):

  1. Termodynamisk modellering: Istället för att enbart förlita oss på fysiska testbänkar byggde vi en endimensionell termodynamisk modell med hög fidelitet av en sexcylindrig marin dieselmotor. Modellen kalibrerades rigoröst baserat på verkliga driftdata, med ett simuleringsfel under 5%.
  2. Felinjicering: Baserat på den kalibrerade modellen simulerade vi fem specifika fel i förbränningskammaren (såsom sprickor i cylinderhuvudet, kolvablation etc.) genom att finjustera fysiska parametrar, och genererade därmed ett dataset som täcker olika grader av verkliga motorfel.
  3. SHAP-baserat funktionsurval: Vi använde SHAP-värden för att kvantitativt identifiera nyckelfunktioner och valde ut 14 kritiska parametrar som dominerar diagnosbeslutet.
  4. Klassificeringsdiagnostik: Med hjälp av detta fysiskt berikade dataset tränade vi en Random Forest (RF)-klassificerare och uppnådde feldiagnostik med hög precision.
Structure of TSRF method combining Thermodynamic Simulation and Random Forest for Explainable AI

Fig. 1: Arkitektur för TSRF-metoden.


Detaljer om termodynamisk modellering

För att säkerställa hög fidelitet byggde vi en endimensionell simuleringsmodell för dieselmotorer. Denna mekanistiska modell balanserar fysisk noggrannhet med den beräkningseffektivitet som krävs för generering av dataset.

Modelltopologi

Motorsystemet diskretiseras som ett nätverk av vätskeledningar och funktionella komponenter:

  • Kärnkraftsenhet: Rak konfiguration, sex cylindrar, tvåtakt.
  • Luftsystem: Insugs-/avgasgrenrör (PL1, PL2) är anslutna via ett komplext rörnätverk.
  • Överladdningssystem: Turboaggregat (TC1) kopplat till intercooler (CO1).

Kalibrering och validering

Innan felinjicering genomfördes kalibrerades basmodellen rigoröst baserat på uppmätta data.

  • Datakälla: Verkliga fartygsdriftdata förvärvade via datainsamlingsmodulen (DCM).
  • Validering: Avvikelser för nyckelparametrar (som effekt, avgastemperatur) kontrollerades strikt inom ett felintervall på ±5% .
1-D thermodynamic simulation model

Fig. 2: Schema över den endimensionella termodynamiska modellen av dieselmotorn.

Model Validation Results

Fig. 5: Datainsamlingsmodul (DCM).

Mekanism för felinjicering

Eftersom endimensionella modeller inte direkt kan representera 3D-strukturdefekter, antog vi en fenomenologisk mappningsmetod för att översätta fysiska nedbrytningsmekanismer till motsvarande termodynamiska parameterförskjutningar.

Feltyp Fysisk mekanism Modelleringsimplementering
F1: Spricka i cylinderhuvud Hindrad värmeledning. Höjning av cylinderhuvudets yttemperatur ($T_H$) till 346°C.
F2: Kolvablation Materialförlust och tätningsfel. Ökning av kolvtemperatur ($T_P$) + lätt blow-by (0,01 kg/s).
F3: Foder (Liner) Slitage Förstorad cylinderdiameter på grund av slitage. Ökad diameter + allvarlig blow-by (0,03 kg/s).
F4: Ring-slitage Gasläckage. Justering av massflöde för blow-by (0,02 kg/s).
F5: Ring-fastsättning (Sticking) Ökad friktion och tätningsfel. Ändring av cylinderdiameter + ökning av fodertemperatur + blow-by.

Förklarbarhetsanalys

En kärninnovation i denna studie ligger i att flytta fokus från "Vad är felet?" till "Varför diagnostiserades detta fel?". Vi demonstrerade denna förmåga genom analys av kolvringsslitage (F4):

  • Lokal förklaring (Vattenfallsdiagram): Vattenfallsdiagrammet dissekerar den specifika förutsägelselogiken. Till exempel förutspådde modellen "ringslitage" eftersom värmeflödet från blow-by (P06) och massflödet från blow-by (P07) visade specifika värden, vilket ökade sannolikheten för förutsägelse av detta fel. Detta överensstämmer med fysiska lagar: ringslitage förstör tätningen, vilket leder till gasläckage (blow-by).
  • Global förklaring (Bisvärmsdiagram): Den globala analysen avslöjar de allmänna lagar som modellen lärt sig. Vi fann att ett lågt värde på avgastrycket före turbinen (P11) är en stark indikator för ringslitage. Fysiskt sett är detta konsekvent: slitna ringar leder till gasläckage från cylindern, vilket minskar den tillgängliga energin för att driva turbinen.
SHAP Analysis,including Waterfall plot, beeswarm plot, interaction plot and dependence plot

Fig. 11: Felanalys av kolvringsslitage (F4) baserad på SHAP-värden: (a) Vattenfallsdiagram; (b) Bisvärmsdiagram; (c) Interaktionsdiagram; (d) Beroendediagram.

Visa SHAP-visualiseringskod (Python)

Om du är intresserad av implementeringsdetaljerna för ovanstående diagram, här är exempelkod för att generera vattenfalls-, bisvärms-, interaktions- och beroendediagram.👇

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()

Forskningens höjdpunkter

Vi anser att detta arbete har gett följande viktiga bidrag till området:

  • Etablering av parametriserade modeller för fem typiska fel på förbränningskammarens komponenter i marina dieselmotorer.
  • Validering av effektiviteten hos SHAP-metoden genom jämförelse med flera metoder för funktionsurval.
  • Tillhandahållande av ett nytt perspektiv för förklaringsbar feldiagnostik genom att sammanfoga datadrivna metoder med termodynamiska mekanistiska modeller.

Cigering

Om du finner detta arbete användbart för din forskning, vänligen läs följande artikel 😊

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},
}

Standardformat

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.