Random Forest Assistido por Simulação Termodinâmica: Diagnóstico Explicável de Falhas para Componentes da Câmara de Combustão de Motores Diesel Marítimos

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

Resumo

Os métodos tradicionais de diagnóstico inteligente de falhas para motores diesel marítimos sofrem frequentemente de baixa capacidade de generalização devido à falta de amostras de treinamento de falhas, e de baixa explicabilidade por não integrarem suficientemente o conhecimento a priori sobre os mecanismos de falha. Para abordar esses problemas, este artigo propõe um método de Random Forest Assistido por Simulação Termodinâmica (TSRF) .

Este método revela as características de evolução das falhas através da simulação termodinâmica e as integra como conhecimento a priori no projeto do modelo de diagnóstico inteligente. Primeiramente, cinco modelos termodinâmicos de falhas foram desenvolvidos ajustando os parâmetros básicos do sistema para simular as características significativas de diferentes avarias. Posteriormente, com base nos resultados da simulação numérica, foram identificados indicadores termodinâmicos potenciais que caracterizam a degradação dos componentes da câmara de combustão.

A seleção de características foi realizada calculando os valores SHapley Additive exPlanations (SHAP), mantendo apenas as variáveis com correlação significativa com o estado da falha. Finalmente, o estado de saúde da câmara de combustão foi avaliado utilizando os parâmetros selecionados. Os resultados experimentais mostram que o método TSRF proposto apresenta um excelente desempenho de classificação, com uma precisão média de 99,07% no conjunto de dados de falhas.

Palavras-chave:
Motor diesel marítimo Diagnóstico de falhas IA explicável Valores SHAP

Motivação

No campo da engenharia naval e do Gerenciamento de Prognóstico e Saúde (PHM), a indústria enfrenta dois grandes gargalos de longo prazo:

  • Escassez de dados: Os motores diesel marítimos (especialmente os motores principais de navios oceânicos) são o coração do navio. Uma falha grave no mar pode levar à perda de propulsão, encalhe ou até naufrágios. Portanto, seus fatores de segurança no projeto são extremamente altos e a probabilidade de falhas graves é intrinsecamente muito baixa. Além disso, a indústria naval aplica rigorosos sistemas de manutenção preventiva (como revisões programadas com base nas horas de operação). A grande maioria das peças de desgaste é substituída forçosamente antes de falhar realmente e gerar dados de avaria. Isso leva a uma abundância de dados de saúde e desgaste inicial, mas a uma extrema falta de dados reais sobre falhas completas ou avarias graves.
  • O problema da "Caixa Preta": Como os modelos de aprendizado profundo geralmente carecem de transparência, é difícil para os engenheiros confiarem neles se não puderem explicar as causas físicas de uma falha. Na indústria naval, estritamente regulamentada pelas sociedades classificadoras, essa opacidade é crítica. Se uma IA diagnosticar erroneamente (ou não detectar) um engripamento de pistão ou uma quebra de virabrequim, e o sistema não puder rastrear se o erro se deve a um viés nos dados, um defeito do algoritmo ou uma deriva do sensor, essa falta de rastreabilidade é inaceitável em investigações de acidentes marítimos.

Para enfrentar esses desafios, propusemos o método TSRF. Ao fundir modelos mecanísticos baseados na física com técnicas avançadas de explicabilidade e utilizar modelos de simulação de alta fidelidade para resolver o problema da escassez de dados, garantimos que as decisões de diagnóstico estejam em conformidade com os princípios termodinâmicos fundamentais.


Metodologia

O fluxo de trabalho deste estudo compreende as seguintes quatro fases principais (ver figura):

  1. Modelagem termodinâmica: Em vez de depender exclusivamente de bancos de ensaio físicos, construímos um modelo termodinâmico unidimensional de alta fidelidade de um motor diesel marítimo de seis cilindros. O modelo foi rigorosamente calibrado com base em dados operacionais reais, mantendo o erro de simulação abaixo de 5%.
  2. Injeção de falhas: Com base no modelo calibrado, simulamos cinco falhas específicas da câmara de combustão (como trincas no cabeçote, ablação do pistão, etc.) ajustando os parâmetros físicos, gerando assim um conjunto de dados que cobre vários graus de falhas reais do motor.
  3. Seleção de características baseada em SHAP: Utilizamos valores SHAP para identificar quantitativamente as características-chave, selecionando 14 parâmetros críticos que dominam a decisão de diagnóstico.
  4. Diagnóstico de classificação: Utilizando este conjunto de dados fisicamente aumentado, treinamos um classificador Random Forest (RF) e alcançamos um diagnóstico de falhas de alta precisão.
Structure of TSRF method combining Thermodynamic Simulation and Random Forest for Explainable AI

Fig. 1: Arquitetura do método TSRF.


Detalhes da modelagem termodinâmica

Para garantir alta fidelidade, construímos um modelo de simulação de motor diesel unidimensional. Este modelo mecanístico equilibra a precisão física com a eficiência computacional necessária para a geração do conjunto de dados.

Topologia do modelo

O sistema do motor é discretizado como uma rede de condutos de fluidos e componentes funcionais:

  • Unidade de potência central: Configuração em linha, seis cilindros, dois tempos.
  • Sistema de ar: Os coletores de admissão/escape (PL1, PL2) são conectados por uma complexa rede de tubulações.
  • Sistema de sobrealimentação: Turbocompressor (TC1) acoplado a um intercooler (CO1).

Calibração e validação

Antes de prosseguir com a injeção de falhas, o modelo base foi rigorosamente calibrado com base em dados medidos.

  • Fonte de dados: Dados operacionais reais do navio adquiridos através do Módulo de Aquisição de Dados (DCM).
  • Validação: Os desvios dos parâmetros-chave (como potência, temperatura de escape) foram rigorosamente controlados dentro de uma faixa de erro de ±5% .
1-D thermodynamic simulation model

Fig. 2: Esquema do modelo termodinâmico unidimensional do motor diesel.

Model Validation Results

Fig. 5: Módulo de Aquisição de Dados (DCM).

Mecanismo de injeção de falhas

Como os modelos unidimensionais não podem representar diretamente defeitos estruturais 3D, adotamos um método de mapeamento fenomenológico para traduzir os mecanismos de degradação física em deslocamentos equivalentes de parâmetros termodinâmicos.

Tipo de falha Mecanismo físico Implementação da modelagem
F1: Trinca no cabeçote Condução térmica prejudicada. Aumento da temperatura superficial do cabeçote ($T_H$) para 346°C.
F2: Ablação do pistão Perda de material e falha de vedação. Aumento da temperatura do pistão ($T_P$) + leve fuga de gases (blow-by) (0,01 kg/s).
F3: Desgaste da camisa Aumento do diâmetro interno devido ao desgaste. Aumento do diâmetro + fuga de gases severa (0,03 kg/s).
F4: Desgaste dos anéis Vazamento de gás. Ajuste do fluxo mássico de fuga de gases (0,02 kg/s).
F5: Emperramento dos anéis Aumento do atrito e falha de vedação. Mudança no diâmetro interno + aumento da temperatura da camisa + fuga de gases.

Análise de explicabilidade

Uma inovação central deste estudo reside em mudar o foco de "Qual é a falha?" para "Por que essa falha foi diagnosticada?". Demonstramos essa capacidade através da análise do desgaste dos anéis do pistão (F4):

  • Explicação local (Gráfico de cascata): O gráfico de cascata decompõe a lógica de previsão específica. Por exemplo, o modelo previu "desgaste dos anéis" porque o fluxo térmico de fuga de gases (P06) e o fluxo mássico de fuga de gases (P07) apresentaram valores específicos, aumentando assim a probabilidade de previsão desta falha. Isso é consistente com as leis físicas: o desgaste dos anéis destrói a vedação, causando vazamento de gás (fuga de gases).
  • Explicação global (Gráfico de enxame): A análise global revela as leis gerais aprendidas pelo modelo. Descobrimos que uma baixa pressão de escape pré-turbina (P11) é um forte indicador de desgaste dos anéis. Fisicamente, isso é coerente: anéis desgastados causam vazamento de gás do cilindro, reduzindo assim a energia disponível para acionar a turbina.
SHAP Analysis,including Waterfall plot, beeswarm plot, interaction plot and dependence plot

Fig. 11: Análise de falha de desgaste dos anéis (F4) baseada em valores SHAP: (a) Gráfico de cascata; (b) Gráfico de enxame; (c) Gráfico de interação; (d) Gráfico de dependência.

Ver código de visualização SHAP (Python)

Se você estiver interessado nos detalhes de implementação dos gráficos acima, aqui está um código de exemplo para gerar os gráficos de cascata, enxame, interação e dependência.👇

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

Destaques da pesquisa

Acreditamos que este trabalho trouxe as seguintes contribuições-chave para a área:

  • Estabelecimento de modelos parametrizados para cinco falhas típicas de componentes da câmara de combustão em motores diesel marítimos.
  • Validação da eficácia do método SHAP através da comparação com vários métodos de seleção de características.
  • Fornecimento de uma nova perspectiva para o diagnóstico explicável de falhas através da fusão de métodos baseados em dados com modelos mecanísticos termodinâmicos.

Citação

Se você achar este trabalho útil para sua pesquisa, por favor, considere ler o seguinte artigo 😊

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

Formato padrão

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.