Kestirimci bakım, ekipmanın ne zaman arıza yapacağını kestirip bakımı tam zamanında yapma stratejisidir. Bu modül, fikri NASA C-MAPSS turbofan motor verisi üzerinden adım adım anlatır.
Şekil 0.1Turbofan motor çevrimleri boyunca sensör verisinden bozulma örüntüsü okumanın şematik özeti.
0.1Bakım yaklaşımları
Bir sistem üç farklı şekilde bakım görür. Hangisini seçtiğinizi belirleyen şey, arızanın size kaça mal olduğudur.
Reaktif bakım
Arıza olur, sonra müdahale edilir. Maliyetli ve duruşa yol açar.
Planlı bakım
Takvime göre bakım yapılır. Bazen erken, bazen geç müdahaledir.
Kestirimci bakım
Sensör verisinden sağlık durumu izlenir; bakım gerçek ihtiyaca göre planlanır.
0.2Anahtar kavramlar
Terim
Tanım
Prognostik
Gelecekteki sağlık durumunu ve olası arıza zamanını tahmin etme problemi.
RUL
Remaining Useful Life — arızaya kadar kalan çevrim / kullanım birimi sayısı.
HI
Health Indicator — sensör verisinden türetilmiş tek skaler sağlık göstergesi.
Run-to-failure
Bir motorun çalıştırılıp arıza anına kadar gözlenmesi.
0.3Veri seti: NASA C-MAPSS FD001
FD001, simüle edilmiş yüz adet turbofan motorunun çalışma kayıtlarını içerir. Her satır bir motorun bir çevrimine karşılık gelir ve şu sütunlardan oluşur:
Eğitim seti: Her motor arıza anına kadar gözlenmiştir. RUL hesaplanabilir.
Test seti: Motorlar arızadan önce bir noktada kesilmiştir. Gerçek RUL gizlidir.
RUL dosyası: Test motorlarının kalan ömrü, doğrulama amaçlı ayrı verilir.
Not
Bu modül bir model gösterisi değildir; sayıdan çok nasıl düşünüldüğünü gösterir. Her bölüm bir adım: veriyi tanı, işle, tek bir sağlık sinyaline indir, sonra benzerlikle RUL fikrini oku.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Modellemeye başlamadan önce veriyi tanımak gerekir. EDA, hangi motor ne kadar yaşıyor, hangi sensör bilgi taşıyor sorularını sayısal değil görsel olarak yanıtlar.
1.1Veriyi okuma
FD001 dosyaları başlıksız, boşluk ayrımlıdır. İlk iş sütunları adlandırmak ve motorlara göre gruplamaktır.
import pandas as pd
cols = ["unit", "cycle"] + [f"set_{i}"for i in range(1,4)] \
+ [f"sensor_{i}"for i in range(1,22)]
train = pd.read_csv("train_FD001.txt", sep=r"\s+", header=None, names=cols)
1.2Motor ömür dağılımı
İlk soru basit: motorlar genelde kaç çevrim yaşıyor? Her motor için son gözlenen çevrim sayısı alınır ve dağılımı çizilir.
Şekil 1.1Motorların büyük çoğunluğu 150–250 çevrim arasında arızalanıyor; uzun ömürlü birkaç motor sağa yatık bir kuyruk oluşturuyor.
Dağılım simetrik değildir. Bu nedenle erken yaşam, orta yaşam ve arızaya yakın dönem aynı şekilde ele alınmaz; modül boyunca bu farkı göz önünde tutacağız.
1.3Sensör eğilimleri
21 sensörün hepsi aynı bilgiyi taşımaz. Bazıları sabittir, bazıları gürültülüdür, bazılarında ise arıza yaklaştıkça net bir eğilim görülür. Tek bir sensörü birkaç motorda çizmek bunu anında ortaya koyar.
Şekil 1.2sensor_11 çevrim ilerledikçe belirgin biçimde değişiyor. Farklı motorlar aynı uzunlukta yaşamasa da arıza öncesi izleri benzer bir örüntü taşır.
Anahtar fikir
Bir sensörün kullanışlı olması için arıza yaklaştıkça değerinin sistematik bir yönde değişmesi gerekir. Rastgele dalgalanma bilgi taşımaz.
1.4RUL ile korelasyon
Hangi sensör ne kadar bilgi taşıyor? Eğitim verisinde RUL biliniyor olduğundan, her sensörün RUL ile Pearson korelasyonunu hesaplayıp sıralayabiliriz.
Şekil 1.3Çubukların yönü sensörün bozulmayla birlikte artma ya da azalma eğilimini gösterir. Sıfıra yakın kalan sensörler bu ilk okumada zayıf adaydır.
Uyarı
Korelasyon nedensellik değildir. Bu sadece aday sensörleri belirleme yöntemidir; nihai seçim, sensörün fiziksel anlamı ve eğitim üzerindeki davranışıyla birlikte yapılır.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Ham sensör verisi modele doğrudan beslenmez. Önce gürültü azaltılır, farklı ölçekteki sensörler aynı düzleme getirilir, RUL etiketleri tutarlı biçimde oluşturulur.
2.1RUL etiketinin hesaplanması
Eğitim verisinde her motor arızaya kadar gözlendiği için kalan ömür etiketi doğrudan çıkarılır. Mantık basittir: bir motorun son görülen çevrimi arıza noktası kabul edilir; o noktaya ne kadar kaldığı RUL etiketidir.
Her satır için motorun son çevrimine olan uzaklık hesaplanır. Bu değer, o satırdaki kalan faydalı ömür etiketidir.
Bu işlem yalnızca eğitim verisinde güvenlidir; test motorları arızadan önce kesildiği için aynı bilgi gerçek hayatta baştan bilinmez.
# motor bazında son çevrimi bul, RUL'u türet
max_cycle = train.groupby("unit")["cycle"].transform("max")
train["RUL"] = max_cycle - train["cycle"]
2.2RUL tavanı
Motor henüz çok genç iken, ona çok yüksek bir kalan ömür etiketi vermek öğretici değildir; o dönemde sensörler genellikle belirgin bozulma sinyali vermez. Bu yüzden RUL belirli bir üst sınırda tutulur.
Modül yorumu: Çok erken yaşam bölgesindeki motorları “sağlıklı bölge” olarak birlikte ele almak, modeli arıza öncesi değişime odaklamayı kolaylaştırır.
Şekil 2.1RUL tavanı, erken yaşamı tek bir sağlıklı bölge gibi okumaya yardım eder. Böylece modül odağı, arıza yaklaştıkça sensörlerde beliren değişime kayar.
2.3Sensör seçimi
FD001'de 21 sensör vardır fakat hepsi kullanışlı değildir. Pratikte üç kovaya ayırırız:
Grup
Davranış
Karar
Sabit
Tüm motorda neredeyse aynı değer
At
Gürültü
Eğilim yok, sadece dalgalanma
At
Trendli
Çevrim ilerledikçe yön gösteriyor
Tut
Tipik olarak tutulan sensörler: sensor_2, 3, 4, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 21.
2.4Normalizasyon
Sensörlerin birimleri farklıdır: bazıları sıcaklık, bazıları basınç, bazıları akış bilgisini temsil eder. Bu nedenle sensörleri ortak bir ölçeğe taşırız.
Modül yorumu: Ölçekleme yalnızca eğitim verisinden öğrenilir; test verisine aynı dönüşüm uygulanır.
Böyle yapılmazsa test verisinden bilgi sızar ve çalışma gerçek hayattaki tahmin koşullarını temsil etmez.
Tekil çevrim okumaları gürültülüdür. Bozulma daha çok bir eğilim olarak görüldüğü için küçük dalgalanmaları yumuşatmak gerekir.
Modül yorumu: Kısa pencere hızlı tepki verir ama daha gürültülüdür; uzun pencere daha temiz görünür ama ani değişimleri geciktirebilir.
Bu seçim tek başına teknik bir ayrıntı değildir; sensör çizimlerine bakarak karar verilmelidir.
İşlem sırası
1) RUL etiketle → 2) Sensör seç → 3) Eğitim üzerinde scaler fit et → 4) Eğitim ve teste uygula → 5) Smoothing uygula. Sıranın değişmesi sızıntıya yol açar.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Her sensör kestirimci bakım için aynı derecede değerli değildir. Varyans, RUL ile ilişki, çevrim trendi ve erken/geç yaşam farkı birlikte değerlendirilir.
3.1Dört basit gösterge
Her sensör için dört basit istatistik bakılır; tek bir metriğe değil, bunların ortak resmine güvenilir.
Varyans
Sıfıra yakınsa sensör tüm motorlarda neredeyse aynı değeri verir. Bilgi yok.
RUL korelasyonu
Sensörle kalan ömür arasındaki Pearson ilişkisinin gücü. Mutlak değeri yüksekse aday.
Çevrim trendi
Sensör değeri çevrim ilerledikçe sistematik biçimde yükseliyor veya düşüyor mu?
Erken / geç fark
İlk %20 ile son %20 yaşam ortalamaları arasındaki ayrışma. Büyükse sensör bozulma bilgisi taşır.
3.2Sensör-RUL ilişkisi
EDA'da gördüğümüz korelasyon grafiği, sensörleri ilk filtreden geçirmenin pratik yoludur. Burada amaç en iyi sensörü bulmak değil; düşük bilgi taşıyan adayları elemektir.
Şekil 3.1Mutlak değeri yüksek korelasyona sahip sensörler aday listesine alınır; sıfıra yakın olanlar elenir.
3.3Sensör faydalılığı tablosu
Tipik FD001 analizinde sensörler kabaca şu şekilde gruplanır:
Sensör
Varyans
|RUL kor.|
Trend
Karar
sensor_1
≈ 0
≈ 0
yok
At
sensor_2
orta
0.6
↑
Tut
sensor_3
orta
0.6
↑
Tut
sensor_4
orta
0.7
↑
Tut
sensor_5
≈ 0
≈ 0
yok
At
sensor_7
orta
0.6
↓
Tut
sensor_11
yüksek
0.7
↑
Tut
sensor_14
orta
0.5
↓
Tut
sensor_21
orta
0.6
↓
Tut
Bu özetle elde edilen tipik aday küme: sensor_2, 3, 4, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 21.
Anahtar fikir
Sensör seçimi mekanik bir filtre değildir. Korelasyon yön ve büyüklük verir; trend ve erken/geç fark, sinyalin gerçek bir bozulma izi mi yoksa rastlantı mı olduğunu söyler.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
14 sensör yerine, motorun sağlık durumunu özetleyen tek bir skaler değişken kurmak istiyoruz. Bu değişkene Health Indicator (HI) denir; bozulma sinyalinin sıkıştırılmış halidir.
4.1Neden tek bir gösterge?
Çok boyutlu sensör uzayında "yaklaşan iki motor" tanımı zordur. Tek skaler bir HI ile, motorların bozulma yörüngelerini bir grafikte yan yana çizebilir, benzerliği gözle ve sayıyla ölçebiliriz. Sonraki bölümde göreceğimiz benzerlik tabanlı RUL bu sıkıştırmayı temel alır.
4.2HI etiketinin kurulması
Tanım gereği bir motor başlangıçta daha sağlıklı, arıza anına yaklaştıkça daha bozulmuş kabul edilir. Health Indicator bu ilerlemeyi tek bir çizgide göstermeye çalışır.
Modül fikri: Erken çevrimler “sağlıklı bölge”, arızaya yakın çevrimler “bozulmuş bölge” olarak okunur.
Bu modülde amaç kusursuz bir sağlık indeksi kurmak değil; sensörlerden tek bir bozulma eksenine nasıl geçildiğini anlamaktır.
Pratik yaklaşım: Seçilen sensörler ölçeklenir, bozulma yönleri hizalanır ve birlikte tek bir HI çizgisine dönüştürülür.
4.3Sensörlerden HI'a geçiş
Seçili sensörleri tek bir değere indirmek için basit bir ağırlıklı birleştirme kullanılabilir. Sensörler önce aynı ölçeğe getirilir; sonra bozulmayla aynı yönde okunacak şekilde hizalanır.
Modül fikri: Birden fazla sensörün ortak bozulma davranışı tek bir sağlık çizgisi olarak özetlenir.
PCA, doğrusal regresyon veya basit korelasyon ağırlıkları bu amaçla kullanılabilir. Burada önemli olan yöntem karşılaştırmak değil, HI kavramını sezgisel hale getirmektir.
from sklearn.linear_model import LinearRegression
X = train[selected_sensors].values
y = train["RUL_capped"].values / 125.0 # 0 ile 1 arası
reg = LinearRegression().fit(X, y)
train["HI"] = reg.predict(X)
test["HI"] = reg.predict(test[selected_sensors].values)
4.4HI yörüngeleri
Tek tek motorların HI eğrileri çizildiğinde, hepsinin sağlıklı bir bölgeden başlayıp bozulma bölgesine doğru ilerlediği görülür. Çevrim sayıları farklı olsa da şekil benzerdir — bu, benzerlik tabanlı yöntemin çalışmasının temel sebebidir.
Şekil 4.1Dört örnek motor için HI yörüngeleri. Yörüngeler başlangıçta daha düşük, arıza yaklaştıkça yükselen bir bozulma göstergesi gibi okunur; gürültü temizlendiğinde tek bir bozulma imzası ortaya çıkar.
4.5HI'ı düzleştirme
Ham HI hâlâ gürültülüdür çünkü tek tek sensör örnekleri gürültülüdür. Bu yüzden HI çizgisi de hafifçe düzleştirilir.
Modül yorumu: Düzleştirilmiş HI, benzer motorları karşılaştırırken daha kararlı bir iz sağlar.
Çıkarım
HI tek başına bir "RUL tahmini" değildir; bozulmanın özetidir. Esas iş, bu özet üzerinden motorlar arası benzerliği kurmaktır.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Eğitim verisinde tüm motorların bozulma yörüngeleri bilinmektedir. Bir test motorunun şu ana kadarki yörüngesi, eğitim motorlarının yörüngeleriyle eşleştirilir; en çok benzeyenlerin kalan ömrü, test motorunun RUL'u olarak kullanılır.
5.1Fikir: hafıza tabanlı tahmin
Klasik regresyon "sensörler → RUL" eşlemesini öğrenmeye çalışır. Benzerlik tabanlı yaklaşım ise daha temel bir soru sorar:
"Geçmişte bu motora en çok benzeyen motorlar arızadan ne kadar önceydi?"
Cevap: bu benzer motorların geri kalan ömürlerinin ağırlıklı ortalaması. Hafıza tabanlı (instance-based / lazy) bir yöntemdir; eğitim aşamasında "model" eğitilmez, eğitim verisi kütüphane olarak saklanır.
5.2Kütüphanenin kurulması
Her eğitim motoru için iki bilgi saklanır: düzleştirilmiş HI eğrisi ve o motorun arızaya kadar nasıl ilerlediği. Bu kayıtlar, geçmiş motorlardan oluşan küçük bir referans kütüphanesi gibi düşünülebilir.
Modül fikri: Kütüphane, “geçmişte hangi motor nasıl bozulmuştu?” sorusunun görsel belleğidir.
5.3Test motoruyla eşleştirme
Test motorunun şu ana kadarki HI eğrisi alınır. Sonra bu eğri, eğitim motorlarının geçmiş HI eğrileri üzerinde farklı konumlarda denenir.
Modül fikri: Test motorunun kısa izi, geçmiş motorların uzun izleri üzerinde en benzer yere oturtulur.
En iyi eşleşme, test motorunun geçmişteki hangi bozulma aşamasına benzediğini gösterir.
Şekil 5.1Animasyonda koyu test izi soldan başlar, geçmiş motor eğrisi üzerinde yatay olarak kayar ve en benzer bölgeye oturur. O eşleşme noktasından eğitim motorunun arızaya kadar kalan kısmı, test motoru için RUL yorumu üretir.
5.4Mesafeden benzerliğe
İki HI eğrisi birbirine ne kadar yakınsa, motorların bozulma durumu da o kadar benzer kabul edilir. Yakın eşleşmeler daha fazla, uzak eşleşmeler daha az etkili olur.
Modül fikri: Benzerlik bir “yakınlık ağırlığı” gibi okunur; çok benzeyen motorlar tahminde daha çok söz sahibi olur.
Bu ağırlığın ne kadar seçici olacağı modülün hiperparametrelerinden biridir. Çok seçici olursa yalnızca birkaç motor dikkate alınır; fazla gevşek olursa benzemeyen motorlar da karara karışır.
5.5RUL tahmini: ağırlıklı ortalama
Her benzer eğitim motoru, test motoru için bir kalan ömür yorumu önerir. Bu yorum, eğitim motorunun eşleşen noktadan sonra ne kadar daha çalıştığına bakılarak yapılır.
Modül fikri: Test motoru geçmişteki birkaç motora benziyorsa, bu motorların arızaya kadar kalan yolları RUL için sezgisel bir rehber olur.
Nihai tahmin, benzer motorların önerilerini birlikte okuyarak elde edilir. Buradaki amaç kesin sayıdan çok yöntemin mantığını kavramaktır.
5.6Algoritma — özet
Kütüphaneyi oluştur. Eğitim motorlarının HI izlerini sakla. Örneğin motor 46, 31 ve 54 geçmişte arızaya kadar izlenmiş üç referans motordur.
Test motorunu hazırla. Test motoru 59 için aynı sensör işlemleri uygulanır ve yaklaşık 94 çevrimlik bir HI izi çıkarılır.
Eşleştir. Bu kısa iz, her eğitim motorunun uzun HI eğrisi üzerinde kaydırılır. En iyi oturduğu yer, test motorunun hangi bozulma aşamasına benzediğini gösterir.
Benzerliği puanla. Şekilde motor 46 en yakın eşleşmedir; motor 31 ve 54 de benzer ama biraz daha uzaktır.
RUL önerilerini topla. Eşleşen geçmiş motorlar “ben bu noktadayken arızaya şu kadar çevrim kalmıştı” der. Bu örnekte öneriler yaklaşık 139–161 çevrim bandındadır.
Önerileri birleştir. Tek bir motora güvenmek yerine en benzer birkaç motorun yorumunu birlikte oku; sonuç kesin sayı değil, bakım önceliği için sezgisel bir RUL aralığıdır.
Örnek okuma
Şekil 5.1'de test motoru 59, motor 46'nın geçmiş izine çok yakın oturuyor. Motor 46 o eşleşme noktasından sonra yaklaşık 147 çevrim daha çalışmış. Motor 31 ve 54 de benzer izler verdiği için bu örnek “hemen arıza” değil, izlemeye devam edilmesi gereken daha erken/orta yaşam davranışı olarak okunur.
5.7Örneği okumak
Modül amaçlı bir tahmin üretildiğinde, grafiğe tek doğru cevap gibi değil, yöntemin nasıl davrandığını anlamak için bakılır. Gerçek RUL ile basit tahminin birlikte çizilmesi, yöntemin nerelerde zorlandığını gösterir.
Şekil 5.2Test motorlarında gerçek RUL ile basit modül tahmini birlikte gösterilir. Amaç nihai başarı ilanı değil, RUL fikrinin nasıl okunacağını göstermektir.Şekil 5.3Tahmin farklarının dağılımı, yöntemin hangi yönde yanılma eğiliminde olduğunu görmeye yarar. Bu grafik bir performans notu değil, okuma aracıdır.
5.8Hiperparametreler
Parametre
Anlamı
Tipik aralık
pencere
HI düzleştirme uzunluğu
Kısa / orta / uzun
rul_tavani
Erken yaşam RUL sınırı
Veri setine göre seçilir
hassasiyet
Benzerlikte seçicilik düzeyi
Dar veya geniş komşuluk
komsu_sayisi
Kaç benzer motor birlikte okunsun
Az, orta veya çok
5.9Yöntemin güçlü ve zayıf yanları
Artı
Eğitim gerektirmez. Yorumlanabilir: hangi motorların hangi ağırlıkla katkı verdiği görülebilir. Yeni veri geldikçe kütüphane büyütülebilir.
Eksi
Kütüphanenin tüm motorlara karşı taranması gerekir; büyük veride yavaşlar. HI'ın kalitesine duyarlıdır.
Bağlamda kullanım
Bu yöntem özellikle öğreticidir: “bu motor geçmişteki şu motorlara benziyor” diyebilir. Bu yüzden ileri modellerden önce kestirimci bakım düşünme biçimini anlatmak için iyi bir başlangıçtır.
Oguz Bektas ile Kestirimci Bakım 101 droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Bu modülün ana mesajı basit: kestirimci bakım, tek bir model sonucundan önce veriyi okuma, bozulma sinyalini ayırma ve kalan ömür fikrini doğru yorumlama problemidir.
6.1Akışı tek bakışta oku
1 · Veriyi tanı
Motor ömrü dağılımı, RUL etiketi ve sensör eğilimleri incelenmeden model kurmak kör tahmindir.
2 · Sensörü ayıkla
Sabit, gürültülü veya RUL ile ilişkisi zayıf sensörler sağlık göstergesine gereksiz yük bindirir.
3 · HI üret
Birden fazla sensör, bozulmayı temsil eden tek bir Health Indicator çizgisine indirgenir.
4 · Benzerliği oku
Test motorunun HI izi, geçmiş motor izleriyle karşılaştırılır; en benzer geçmişler RUL yorumu üretir.
6.2Karar mantığı
Soru
Grafikte ne aranır?
Bakım yorumu
Motor hangi yaşam bölgesinde?
Cycle ve RUL dağılımı
Erken yaşamda izleme, arızaya yakın bölgede öncelik artar.
Sensör bozulma taşıyor mu?
Trend, varyans, erken/geç fark
Belirgin trend taşıyan sensörler HI için adaydır.
Tek sağlık izi okunabiliyor mu?
HI yörüngesi
HI düzenli bozuluyorsa motorlar karşılaştırılabilir hale gelir.
Bu motor kime benziyor?
Similarity eşleşmesi
Benzer geçmiş motorların kalan yolu RUL yorumu için referanstır.
Kapanış fikri
Bu modülde hedef “en iyi tahmin” değil, kestirimci bakımın okuma disiplinini kurmaktır: sensör sinyalini ayır, bozulmayı özetle, geçmiş örneklerle karşılaştır ve bakım önceliğini veriyle tartış.
6.3Devam yolu
FD002, FD003 ve FD004 alt kümelerinde çalışma koşulu ve arıza modu değiştiğinde sensör seçiminin nasıl değiştiğini incele.
Health Indicator için PCA, korelasyon ağırlığı veya küçük bir otokodlayıcı yaklaşımını karşılaştır.
Benzerlik hesabında sabit pencere yerine DTW gibi zaman esnetmeye izin veren yöntemleri dene.
Son aşamada LSTM, Temporal CNN veya Transformer gibi zaman serisi modellerini kur; similarity-based yaklaşımı açıklanabilir referans olarak yanında tut.
Son not
Bu modül, ileri seviye derin öğrenme modellerinden önce temel kestirimci bakım mantığını kavramak için hazırlanmıştır. Kod iddiadan değil, fikirden yanadır.
Doç. Dr. Oğuz BEKTAŞ -
Dr Oguz BEKTAS droguzbektas.github.io
Lisans: CC BY 4.0 · NASA C-MAPSS verisi eğitim amaçlı kullanılmıştır.
Bu çalışma, Dr. Oğuz BEKTAŞ tarafından İstanbul Medeniyet Üniversitesi adına bursiyer olarak Warwick Üniversitesi'nde yürütülen doktora araştırmaları ve kestirimci bakım çalışmaları çerçevesinde hazırlanmıştır.