Thermodynamische Simulation unterstützt Random Forest: Erklärbare Fehlerdiagnose für Brennraumkomponenten von Schiffsdieselmotoren

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

Zusammenfassung

Herkömmliche intelligente Fehlerdiagnoseverfahren für Schiffsdieselmotoren leiden oft unter mangelnder Generalisierungsfähigkeit aufgrund fehlender Fehlertrainingsdaten und geringer Erklärbarkeit, da Vorwissen über Fehlermechanismen nicht ausreichend integriert wird. Um diese Probleme anzugehen, schlägt diese Arbeit eine Methode namens Thermodynamic Simulation-Assisted Random Forest (TSRF) vor.

Diese Methode nutzt thermodynamische Simulationen, um Charakteristika der Fehlerentwicklung aufzudecken, und integriert diese als Vorwissen in das Design des intelligenten Diagnosemodells. Zunächst wurden fünf thermodynamische Fehlermodelle entwickelt, indem grundlegende Systemparameter feinjustiert wurden, um die signifikanten Merkmale verschiedener Fehler zu simulieren. Anschließend wurden basierend auf numerischen Simulationsergebnissen potenzielle thermodynamische Indikatoren identifiziert, die die Degradation der Brennraumkomponenten charakterisieren.

Durch die Berechnung von SHapley Additive exPlanations (SHAP)-Werten wurde eine Merkmalsselektion durchgeführt, bei der nur Variablen beibehalten wurden, die eine signifikante Korrelation mit dem Fehlerzustand aufweisen. Schließlich wurde der Gesundheitszustand des Brennraums unter Verwendung der ausgewählten Parameter bewertet. Die experimentellen Ergebnisse zeigen, dass die vorgeschlagene TSRF-Methode eine hervorragende Klassifikationsleistung mit einer durchschnittlichen Genauigkeit von 99,07 % auf dem Fehlerdatensatz erreicht.

Schlüsselwörter:
Schiffsdieselmotor Fehlerdiagnose Erklärbare KI SHAP-Werte

Motivation

Im Bereich der Meerestechnik und des Prognostics and Health Management (PHM) steht die Industrie vor zwei langfristigen Engpässen:

  • Datenknappheit: Schiffsdieselmotoren (insbesondere Hauptmaschinen von Hochseeschiffen) sind das Herzstück des Schiffes. Ein schwerwiegender Ausfall auf See kann zu Antriebsverlust, Strandung oder sogar Katastrophen führen. Daher sind ihre Sicherheitsfaktoren bei der Konstruktion extrem hoch, und die Wahrscheinlichkeit schwerwiegender Fehler ist an sich sehr gering. Zudem führt die Schifffahrtsindustrie strenge vorbeugende Wartungssysteme durch (z. B. zeitbasierte Überholung nach Betriebsstunden). Die überwiegende Mehrheit der Verschleißteile wird zwangsweise ausgetauscht, bevor sie tatsächlich ausfallen und Fehlerdaten generieren. Dies führt dazu, dass zwar große Mengen an Gesundheitsdaten und Daten zu frühem Verschleiß vorhanden sind, aber echte Daten zu vollständigem Ausfall oder schweren Fehlern extrem fehlen.
  • Das „Black-Box“-Problem: Da Deep-Learning-Modelle in der Regel intransparent sind, fällt es Ingenieuren schwer, ihnen zu vertrauen, wenn die physikalischen Ursachen eines Fehlers nicht erklärt werden können. In der streng regulierten Schifffahrtsindustrie (durch Klassifikationsgesellschaften) ist diese Intransparenz besonders kritisch. Wenn eine KI fälschlicherweise einen Kolbenfresser oder Kurbelwellenbruch prognostiziert (oder übersieht) und das System nicht nachvollziehen kann, ob der Fehler auf Datenverzerrung, Algorithmusmängel oder Sensordrift zurückzuführen ist, ist dies bei der Untersuchung von Seeunfällen inakzeptabel.

Um diesen Herausforderungen zu begegnen, haben wir die TSRF-Methode vorgeschlagen. Durch die Fusion von physikbasierten mechanistischen Modellen mit fortschrittlichen Techniken der Erklärbarkeit und der Nutzung von High-Fidelity-Simulationsmodellen lösen wir das Problem der Datenknappheit und stellen sicher, dass Diagnoseentscheidungen den thermodynamischen Grundprinzipien entsprechen.


Methodik

Der Arbeitsablauf dieser Studie umfasst die folgenden vier Hauptphasen (siehe Abbildung):

  1. Thermodynamische Modellierung: Anstatt uns ausschließlich auf physische Prüfstände zu verlassen, haben wir ein hochgenaues eindimensionales thermodynamisches Modell eines Sechszylinder-Schiffsdieselmotors erstellt. Das Modell wurde streng auf Basis realer Betriebsdaten kalibriert, wobei der Simulationsfehler unter 5 % gehalten wurde.
  2. Fehlerinjizierung: Basierend auf dem kalibrierten Modell simulierten wir fünf spezifische Brennraumfehler (z. B. Zylinderkopfrisse, Kolbenabbrand), indem wir physikalische Parameter feinjustierten, um einen Datensatz zu generieren, der verschiedene Schweregrade realer Motorfehler abdeckt.
  3. SHAP-basierte Merkmalsselektion: Wir nutzten SHAP-Werte, um Schlüsselmerkmale quantitativ zu identifizieren und 14 kritische Parameter auszuwählen, die die Diagnoseentscheidung dominieren.
  4. Klassifikation und Diagnose: Unter Verwendung dieses physikalisch erweiterten Datensatzes trainierten wir einen Random Forest (RF) Klassifikator und erzielten eine hochpräzise Fehlerdiagnose.
Structure of TSRF method combining Thermodynamic Simulation and Random Forest for Explainable AI

Abb. 1: Architektur der TSRF-Methode.


Details zur thermodynamischen Modellierung

Um eine hohe Wiedergabetreue zu gewährleisten, haben wir ein eindimensionales Dieselsimulationsmodell erstellt. Dieses mechanistische Modell hält die Balance zwischen physikalischer Genauigkeit und der für die Datensatzgenerierung erforderlichen Recheneffizienz.

Modelltopologie

Das Motorsystem wird als Netzwerk aus Fluidleitungen und Funktionskomponenten diskretisiert:

  • Kernantriebseinheit: Sechszylinder, Zweitakt-Reihenanordnung.
  • Gassystem: Ein-/Auslasskrümmer (PL1, PL2) sind über ein komplexes Rohrleitungsnetz verbunden.
  • Aufladesystem: Turbolader (TC1) gekoppelt mit Ladeluftkühler (CO1).

Kalibrierung und Validierung

Vor der Fehlerinjizierung wurde das Basismodell anhand von Messdaten streng kalibriert.

  • Datenquelle: Reale Schiffsbetriebsdaten, erfasst über das Datenerfassungsmodul (DCM).
  • Validierung: Abweichungen wichtiger Parameter (wie Leistung, Abgastemperatur) wurden streng innerhalb eines Fehlerbereichs von ±5% gehalten.
1-D thermodynamic simulation model

Abb. 2: Schematische Darstellung des eindimensionalen thermodynamischen Modells des Dieselmotors.

Model Validation Results

Abb. 5: Datenerfassungsmodul (DCM).

Mechanismus der Fehlerinjizierung

Da eindimensionale Modelle 3D-Strukturdefekte nicht direkt darstellen können, verwendeten wir eine phänomenologische Abbildungsmethode, um physikalische Degradationsmechanismen in äquivalente thermodynamische Parameterverschiebungen umzuwandeln.

Fehlertyp Physikalischer Mechanismus Modellierungsimplementierung
F1: Zylinderkopfriss Behinderte Wärmeleitung. Erhöhung der Zylinderkopfoberflächentemperatur ($T_H$) auf 346°C.
F2: Kolbenabbrand Materialverlust und Dichtungsversagen. Erhöhung der Kolbentemperatur ($T_P$) + leichtes Blow-by (0,01 kg/s).
F3: Laufbuchsenverschleiß Vergrößerung des Bohrungsdurchmessers durch Verschleiß. Vergrößerung der Bohrung + starkes Blow-by (0,03 kg/s).
F4: Kolbenringverschleiß Gasaustritt. Anpassung des Blow-by-Massenstroms (0,02 kg/s).
F5: Kolbenringklemmen Erhöhte Reibung und Dichtungsversagen. Änderung des Bohrungsdurchmessers + Erhöhung der Laufbuchsentemperatur + Blow-by.

Analyse der Erklärbarkeit

Eine Kerninnovation dieser Studie besteht darin, den Fokus von „Was ist der Fehler?“ auf „Warum wurde dieser Fehler diagnostiziert?“ zu verlagern. Wir demonstrierten diese Fähigkeit anhand der Analyse des Kolbenringverschleißes (F4):

  • Lokale Erklärung (Waterfall-Plot): Der Waterfall-Plot schlüsselt die spezifische Vorhersagelogik auf. Zum Beispiel prognostizierte das Modell „Kolbenringverschleiß“, weil der Blow-by-Wärmestrom (P06) und der Blow-by-Massenstrom (P07) spezifische Werte annahmen, was die Vorhersagewahrscheinlichkeit für diesen Fehler erhöhte. Dies stimmt mit den physikalischen Gesetzen überein: Kolbenringverschleiß zerstört die Abdichtung und führt zu Gasaustritt (Blow-by).
  • Globale Erklärung (Beeswarm-Plot): Die globale Analyse offenbart die vom Modell erlernten allgemeinen Gesetze. Wir stellten fest, dass ein niedriger Abgasdruck vor der Turbine (P11) ein starker Indikator für Kolbenringverschleiß ist. Physikalisch ist dies konsistent: Verschlissene Kolbenringe führen zu Gasleckagen aus dem Zylinder, wodurch die verfügbare Energie zum Antrieb der Turbine verringert wird.
SHAP Analysis,including Waterfall plot, beeswarm plot, interaction plot and dependence plot

Abb. 11: Auf SHAP-Werten basierende Fehleranalyse für Kolbenringverschleiß (F4): (a) Waterfall-Plot; (b) Beeswarm-Plot; (c) Interaktionsdiagramm; (d) Abhängigkeitsdiagramm.

SHAP-Visualisierungscode anzeigen (Python)

Wenn Sie an den Implementierungsdetails der obigen Diagramme interessiert sind, finden Sie hier Beispielcode zur Generierung von Waterfall-, Beeswarm-, Interaktions- und Abhängigkeitsdiagrammen.👇

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

Forschungshighlights

Wir glauben, dass diese Arbeit folgende wichtige Beiträge zu diesem Bereich geleistet hat:

  • Etablierung parametrisierter Modelle für fünf typische Fehler von Brennraumkomponenten in Schiffsdieselmotoren.
  • Validierung der Wirksamkeit der SHAP-Methode durch Vergleich mit mehreren Merkmalsselektionsmethoden.
  • Bereitstellung einer neuen Perspektive für erklärbare Fehlerdiagnose durch die Fusion datengetriebener Methoden mit thermodynamischen mechanistischen Modellen.

Zitation

Wenn Sie diese Arbeit für Ihre Forschung nützlich finden, lesen Sie bitte die folgende Veröffentlichung 😊

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.