航空機エンジンの予知保全を生存分析を用いて向上させる

航空業界は、運用をスムーズかつ安全、コスト効率良く保つために予測保全に大きく依存しています。その中でも最も効果的なツールの一つが生存分析であり、航空機エンジンの残存有用寿命(RUL)を推定します。歴史的な保守および故障データを使用して、生存分析はMRO(保守、修理、オーバーホール)チームが故障が発生する前に予防保全を計画するのに役立ち、コストを節約し、航空機のアップタイムを改善する可能性があります。この記事では、PythonのLifelinesライブラリを使用して生存分析を行い、エンジンRULを推定し、データ駆動型の保守決定を行う方法について説明します。
序章
予測保全のために生存分析を使用する理由は何ですか?
生存分析は、患者の生存時間を推定するために医療分野で発祥しましたが、「イベントまでの時間」を予測する必要があるどのドメインにも適用できます。航空分野では、「イベントまでの時間」とは、エンジン故障までの時間や次の必要なメンテナンス間隔を予測することを指すかもしれません。予測保守のための生存分析を使用することにはいくつかの利点があります:
- プロアクティブ修理:エンジンの寿命を見積もって予期しないダウンタイムを防ぎます。
- 最適化されたメンテナンス間隔:実際の使用状況と歴史データに基づいてメンテナンスをスケジュールし、固定間隔ではなく行います。
- コスト削減:重大な故障が発生する前に介入して、コストのかかるリアクティブメンテナンスを最小限に抑えます。
生存分析の基礎:カプラン・マイヤー推定量
カプラン・マイヤー推定量は生存分析で最も一般的なツールの一つです。与えられた時間点を過ぎた生存確率を計算し、打ち切りデータ(例えば、故障などのイベントがまだ発生していないケース)を考慮に入れます。これはMROチームにとって理想的で、現役サービス中のエンジンの生存確率を推定し、将来のメンテナンスニーズを予測することができます。
コードに飛び込もう!
ステップ1: 環境構築
まず、必要なPythonパッケージがインストールされていることを確認してください。pandasとlifelinesライブラリが必要になります。
pip install pandas lifelines
ステップ2: カプラン・マイヤー推定量を用いた生存確率の計算
私たちは今、エンジンの生存確率を分析するためにlifelinesライブラリからカプラン・マイヤー推定量を使用することができます。この推定量は、エンジンが特定の時間を超えて稼働し続ける可能性を予測するのに役立ちます。
from lifelines import KaplanMeierFitter import matplotlib.pyplot as plt
# KaplanMeierFitterモデルをインスタンス化する
kmf = KaplanMeierFitter()
# データを使用してモデルにフィットさせる
kmf.fit(durations=engine_df['Operating_Hours'], event_observed=engine_df['Event'])
# 生存関数をプロットする plt.figure(figsize=(10, 6)) kmf.plot_survival_function() plt.title("エンジン寿命のカプラン・マイヤー生存推定") plt.xlabel("稼働時間") plt.ylabel("生存確率") plt.grid() plt.show()
生存機能のプロットは、稼働時間が増加するにつれて生存確率がどのように減少するかを明確に示しています。曲線の各下降は観測された故障を表し、安定した部分は故障イベントがない期間を表しています。
ステップ3:カプラン・マイヤー法の結果の解釈
カプラン・マイヤー曲線は、エンジンが特定の稼働時間を超えて生存する確率を示しています。例えば、曲線が3,000時間で生存確率0.8を示している場合、これはエンジンが3,000時間を超えて稼働し続ける可能性が80%であることを意味します。これらの洞察により、MROチームは重大な故障点に達する前にメンテナンスをスケジュールすることができます。
ステップ4: 予測保全のための平均稼働時間の推定
平均生存時間は、ほとんどのエンジンがメンテナンスを必要とするか、故障する可能性がある時期を推定するものです。これにより、メンテナンス間隔の決定に役立ちます。
# 平均生存時間(予想される寿命)を取得 mean_survival_time = kmf.median_survival_time_
print(f"推定中央値生存時間:{mean_survival_time}時間")
この結果からは、エンジンの50%がメンテナンスを必要とすると予想される稼働時間の推定値がわかります。
ステップ5: アドバンスドシナリオ – エンジンタイプの比較
データセットに複数のエンジンタイプが含まれている場合、これらのグループ間で生存曲線を比較することができます。例えば、Engine_Typeという列を追加して、異なるタイプの生存推定を比較することができます。
# 比較エンジン用のデータセットをエンジンタイプで更新 engine_df['Engine_Type'] = ['A', 'A', 'B', 'B', 'A', 'A', 'B', 'B', 'A', 'B']
# Kaplan-Meierモデルのインスタンス化
kmf_a = KaplanMeierFitter()
kmf_b = KaplanMeierFitter()
# エンジンタイプAの生存関数をフィットしてプロット plt.figure(figsize=(10, 6)) kmf_a.fit(engine_df[engine_df['Engine_Type'] == 'A']['Operating_Hours'], event_observed=engine_df[engine_df['Engine_Type'] == 'A']['Event'], label='エンジンタイプA') kmf_a.plot_survival_function() # エンジンタイプBの生存関数をフィットしてプロット kmf_b.fit(engine_df[engine_df['Engine_Type'] == 'B']['Operating_Hours'], event_observed=engine_df[engine_df['Engine_Type'] == 'B']['Event'], label='エンジンタイプB') kmf_b.plot_survival_function() plt.title("Kaplan-Meier 生存推定によるエンジンタイプ別") plt.xlabel("稼働時間") plt.ylabel("生存確率") plt.legend() plt.grid() plt.show()
エンジンの種類による生存曲線を比較することで、ある種類が他の種類より一般的に長持ちするかどうかが明らかになり、MROチームが調達を決定したり、リソースの優先順位を決めたり、エンジンの特性に基づいてメンテナンス間隔を調整したりする際に役立ちます。
ステップ6: サバイバル分析を使用してメンテナンスの推奨事項を出す
生存分析を用いることで、定期的なスケジュールに基づくのではなく、生存確率に基づいて保守間隔を設定することができます。例えば、生存確率が4,000時間で著しく低下する場合、故障リスクを最小限に抑えるためにその時点を中心にメンテナンスをスケジュールすることができます。
# 特定の時間での生存確率を計算する time_point = 4000 survival_prob_at_time_point = kmf.predict(time_point)
print(f"{time_point}稼働時間における生存確率: {survival_prob_at_time_point:.2f}")
この結果は指定された時間における生存確率を示し、重要なメンテナンスポイントを特定するのに役立ちます。確率が低い場合、理想的にはこの閾値を超える前にメンテナンスを行うべきです。
結論
生存分析は、MROチームに予防的でデータ駆動型のメンテナンス計画のための強力な洞察を提供します。エンジンの残存有用寿命を推定することで、予期せぬ故障を避け、メンテナンス作業のタイミングを最適化することができます。ここではカプラン・マイヤー推定量を示しましたが、生存分析には、複雑な予測保守シナリオに対応するためのより高度な技術(コックス比例ハザードモデルのような)が含まれています。
主なポイント:
- プロアクティブメンテナンス:エンジンの寿命を見積もって予期せぬ故障を防ぎます。
- データに基づく意思決定:実際のエンジン使用状況と生存確率に基づいて保守決定を行います。
- コスト最適化:リアクティブなメンテナンスを避け、部品調達を最適化することでコストを削減します。
予測保全は航空業界において画期的な変化をもたらし、航空会社とMROチームが効率と信頼性を向上させることを可能にします。ePlaneAIでは、生存分析のような高度なMLモデルを活用してMROオペレーションを変革し、お客様の航空機が空中に留まるよう支援しています。
不確実な状況下で勢いを増す可能性のある航空機整備のトレンド
航空機の運航期間が長くなり、サプライチェーンは火薬庫のように不安定になり、テクノロジーは急速に進化しています。勢いを増すメンテナンスのトレンドと、運航維持と収益確保を目指す運航事業者にとっての意味を探ります。

Vector DB。航空業界の非構造化インテリジェンスを解き放つ。
ベクターデータベースは、高次元の埋め込みベクトルにインデックスを付けて、非構造化データに対するセマンティック検索を可能にします。これは、キーワードの完全一致を使用する従来のリレーショナルストアやドキュメントストアとは異なります。テーブルやドキュメントの代わりに、ベクターストアはテキストまたは画像のセマンティクスを表す高密度の数値ベクトル (多くの場合 768~3072 次元) を管理します。クエリ時に、データベースは近似最近傍 (ANN) 検索アルゴリズムを使用して、クエリベクトルに最も近いものを検索します。たとえば、階層型ナビゲート可能スモールワールド (HNSW) などのグラフベースのインデックスは、粗い検索用の小さな最上位層と、絞り込み用の大きな下位層という階層化された近接グラフを構築します (下の図を参照)。検索はこれらの層を「ホップ」して下降し、ローカルな近傍を徹底的に検索する前にクラスターにすばやくローカライズします。これにより、再現率 (真の最近傍の検索) とレイテンシがトレードオフされます。つまり、HNSW 検索パラメータ (efSearch) を上げると、再現率は上がりますが、クエリ時間は長くなります。

サプライ チェーン ポータル。1 つの販売者。多数の購入者。完全なコントロール。
航空サプライ チェーン ポータルは、本質的には、航空サプライヤーとその顧客向けにカスタマイズされたプライベート e-コマース プラットフォームです。航空会社、MRO、部品販売業者専用に設計されており、在庫、調達、サプライヤーとのコラボレーションを 1 つの安全なシステムに一元化します。実際には、OEM または部品販売業者がこのポータルを「ホワイト ラベル化」し、承認されたバイヤー (航空会社、MRO など) にログインを招待します。これらのバイヤーは、部品の完全なカタログ (販売者の ERP からリアルタイムで同期) を参照し、大規模なオンライン マーケットプレイスと同じようにアイテムを検索、フィルター、比較できます。ただし、公開されている取引所とは異なり、このポータルはプライベートです。プラットフォーム上には 1 つのサプライヤー (多くのバイヤーを持つ) のみが存在

在庫AI。あらゆる航空部品のニーズを予測します。
在庫AIのためのデータエンジニアリングと準備
効果的な在庫AIは、堅牢なデータパイプラインから始まります。企業システムと外部ソースからのすべての関連データは、AIが利用できるように集約、クレンジング、変換される必要があります。これには、在庫データ(過去の売上、現在の在庫レベル、部品の属性)と需要促進要因(市場動向、保守スケジュール、プロモーションなど)が含まれます。社内ERPレコードと外部要因(業界動向や季節パターンなど)を統合することで、モデルは需要に影響を与える要因を包括的に把握できます。データパイプラインの主なステップは、通常、以下のとおりです。
- データ抽出と統合:ERPシステム(SAP、Oracle、Quantumなど)やその他のソース(サプライヤーデータベース、マーケットフィードなど)からデータを取得します。プラットフォームは、様々な航空システムへの自動コネクタをサポートし、スムーズなデータインフローを実現します。例えば、過去の使用状況、リードタイム、未発注の注文情報を、グローバルな航空機稼働率やマクロ経済指標などの外部データと統合できます。
- データ変換とクリーニング:取り込まれたデータは、クリーニングと標準化が行われます。これには、欠損値の処理、単位の正規化(例:飛行時間、サイクル)、そして意味のある特徴量への構造化が含まれます。AI対応データセットを準備するために、カスタム変換とデータウェアハウス自動化を適用することも可能です。目標は、在庫状況(在庫数、場所、コスト)とコンテキスト変数(例:需要の共変量、ベンダーのリードタイム)を捉える統合データモデルを作成することです。
- クラウドへのデータロード:準備されたデータは、スケーラブルなクラウドデータプラットフォームにロードされます。当社のアーキテクチャでは、Snowflakeを中央クラウドデータウェアハウスとして使用し、バッチまたはリアルタイムストリームを取り込み、大量のトランザクションデータを処理できます。Snowflakeの即時的な弾力性により、ストレージとコンピューティングをオンデマンドで拡張できるため、大規模なERPデータセットや予測機能も効率的に処理できます。このクラウドベースのリポジトリは、下流のすべての分析と機械学習における唯一の信頼できる情報源として機能します。
- 事業固有の微調整:重要な準備ステップは、データとモデルのパラメータを各航空事業の微妙な差異に合わせて調整することです。航空会社やMROはそれぞれ、独自の消費パターン、リードタイム制約、サービスレベル目標を持つ場合があります。Inventory AIシステムは、クライアントの履歴データとビジネスルールに合わせてモデルを「微調整」し、組織の需要リズムと在庫ポリシーを効果的に学習します。これには、企業データのサブセットを使用して予測モデルを調整したり、最適化の制約(重要なAOG部品の最小在庫レベルなど)を調整したりすることが含まれます。AIを事業に合わせてカスタマイズすることで、予測と推奨事項はより正確になり、クライアントの業務に即したものになります。
継続的なデータ更新:在庫AIは一度きりの分析ではなく、継続的に学習します。データパイプラインは頻繁に(例:毎日または毎時間)更新されるようにスケジュール設定されており、新しいトランザクション(売上、出荷、見積依頼など)がモデルに入力されます。これにより、AIは常に在庫と需要の最新の状態に基づいて意思決定を行うことができます。入力データの異常を検出するために、自動化されたデータ品質チェックとモニタリングが実施されているため、不要なデータが誤った予測につながることはありません。つまり、クラウドに統合されたクリーンなデータの強固な基盤があることで、AIモデルは最適なパフォーマンスを発揮し、時間の経過とともに変化に適応することができます。
