Kapak Resmi
Genel

KAYAR OTOMATLARDA YAPAY ZEKÂ TABANLI KALİTE KONTROL SİSTEMİ

Yazar: Bilinmiyor | 18.03.2025 14:28
KAYAR OTOMATLARDA YAPAY ZEKÂ TABANLI KALİTE KONTROL SİSTEMİ
Kod Örnekleriyle Birleştirilmiş Doküman

1. GİRİŞ
Kayar otomatlar (sliding head lathe), yüksek hassasiyet ve hızlı seri üretim kabiliyeti nedeniyle özellikle otomotiv, medikal ve benzeri sektörlerde yaygın kullanılan CNC tezgâhlardır. Ancak bu yüksek hız ve hassasiyete rağmen kalite kontrol aşamasında gecikmeler veya insan hatası kaynaklı sorunlar meydana gelebilir. Yapay zekâ (AI) tabanlı yaklaşımlar, üretim esnasında ret parça oluşumunu henüz üretim veya ölçüm tamamlanmadan tahmin edebilme imkânı sunar.

Bu dokümanda, kayar otomatlarda yapay zekâ tabanlı bir kalite kontrol sisteminin genel prensipleri ve adım adım yaklaşımı anlatılmaktadır. Ayrıca tezgâh duruşu (downtime) verilerinin de modele dahil edilmesiyle sistemin nasıl geliştirilebileceği gösterilir. Veritabanı tabloları veya işletme içi özel isimler yerine, genel kavramlar ve örnek Python kodları paylaşılacaktır.

2. HEDEFLER
Ölçüm Beklemeden Tahmin
Henüz kalite kontrol ölçümü yapılmamış parçaların ret/onay durumunu önceden tahmin etmek.

Kalite Operatörüne Anlık Uyarı
Tahmin “Red” çıktığında, operatöre kırmızı uyarı göstererek anında müdahale etmesini sağlamak.

Sürekli Öğrenme
Zamanla yeni ölçüm verileri ve tezgâh duruş bilgileri geldikçe modeli yeniden eğiterek tahmin doğruluğunu artırmak.

3. GENEL SİSTEM MİMARİSİ
Veri Toplama Katmanı

CNC tezgâhlardan (kayar otomatlar) gelen üretim verileri, bir MES (Manufacturing Execution System) veya benzeri veri toplama altyapısı ile kaydedilir.
Parça kodu, tezgâh kodu, üretim başlama/bitiş zamanları, kalite kontrol sonuçları (ret/onay), “otomatik onay” kodları vb. bilgiler depolanır.
Veri İşleme Katmanı

Yapay zekâ modeli için gerekli özellikler (ör. gecikme süresi, stok/ürün kodu, makine kodu, vb.) burada hazırlanır.
Eğer “reject_id=80” gibi özel durumlar varsa, “otomatik onay” şeklinde bir kural tanımlanır ve model bu kuralı öğrenir.
Tahmin (Inference) Katmanı

Eğitilmiş model, “ölçüm bekleyen” parçaların verilerini alarak ret/onay tahmini yapar.
Tahmin sonuçları, web veya masaüstü arayüzünde operatöre yansıtılır; “Red” satırlar kırmızı blink efektiyle uyarı verir.
Geri Bildirim ve Öğrenme

Gerçek ölçüm sonuçları sisteme işlendikçe, modelin tahminiyle karşılaştırılır.
Model düzenli aralıklarla yeniden eğitilerek performans güncel tutulur.

4. ADIM ADIM KURULUM VE UYGULAMA
4.1. Veri Toplama ve Özellik Seçimi
Adım 1: Kayar otomatlarda üretilen parçaların üretim başlangıç/bitiş zamanı, stok/ürün kodu, makine kodu (tezgâh kimliği), ret/onay durumu vb. veriler toplanır.

Adım 2: “reject_id=80” gibi özel bir kod “otomatik onay” anlamına geliyorsa, model bu kuralı öğrenebilmesi için veride onay (1) olarak işaretlenir.

Adım 3: Gecikme süresi (örn. üretim sonundan bu yana geçen saniye/dakika) bir ek özellik olarak tanımlanabilir.
(İleride duruş verileri de eklenecektir.)

4.2. Model Eğitimi
Adım 1: Daha önce ölçülmüş (ret/onay sonucu kesinleşmiş) parçaların verileri eğitim seti olarak seçilir.

Adım 2: Bir etiket (label) fonksiyonu tanımlanır. Örneğin:

python
def label_row(row):
if row["REJECT_ID"] == 80:
return 1 # Onay
elif row["STATUS"] == 0:
return 0 # Red
else:
return 1 # Onay
Adım 3: Özellikler (features) belirlenir. Örnek:

DelayTime (saniye cinsinden),
MakineKodu (one-hot encoding),
“XR” gibi özel bir ibare (operatör mesajında “XR” geçiyorsa 1, aksi halde 0), vb.
Adım 4: Bir makine öğrenmesi modeli (ör. RandomForestClassifier) ile eğitim yapılır. Aşağıdaki kod, train_model.py örneği olabilir:

python
import pandas as pd
import joblib
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

def label_row(row):
if row["REJECT_ID"] == 80:
return 1
elif row["STATUS"] == 0:
return 0
else:
return 1

def train_model(df_main):
# 1) Label
df_main["Label"] = df_main.apply(label_row, axis=1)

# 2) One-hot encoding
df_encoded = pd.get_dummies(df_main, columns=["STOCK_NO","MACHINE_KOD"], drop_first=True)

# 3) Feature selection
feature_columns = ["PARTS","DelayTime","XR_Measurement"] + [
col for col in df_encoded.columns
if col.startswith("STOCK_NO_") or col.startswith("MACHINE_KOD_")
]
X = df_encoded[feature_columns]
y = df_encoded["Label"]

# 4) Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 5) Model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 6) Kaydet
joblib.dump(model, "quality_control_model.pkl")
joblib.dump(feature_columns, "feature_columns.pkl")
print("Model trained and saved.")
Adım 5: Model ve kullanılan özellik listesi (feature_columns) dosyalar halinde saklanır.

4.3. Canlı Tahmin (Inference) Aşaması
Adım 1: “Ölçüm bekleyen” (henüz onay/ret sonucu belli olmayan) parçalar veritabanından sorgu ile çekilir.

Adım 2: Modelin predict fonksiyonu, bu parçaların özelliklerini alarak “Approved” veya “Red” çıktısı üretir.

Adım 3: Kullanıcı arayüzünde (ör. bir web tablosu), “Red” tahmini alan satırlar kırmızı yanıp sönen bir şekilde operatöre gösterilir. Aşağıdaki kod, main.py içinde “pending_data” route’una örnek olabilir:

python
import joblib
import numpy as np

@app.route('/pending_data')
def pending_data():
df_pending = get_pending_parts() # Ölçüm beklemekte olan parçalar
features = process_data(df_pending) # One-hot vs. için
model = joblib.load("quality_control_model.pkl")
preds = model.predict(features)
df_pending["Prediction"] = np.where(preds == 1, "Approved", "Red")
return df_pending.to_dict(orient="records")
Adım 4: Operatör, “Red” sinyali aldığında tezgâha anında müdahale ederek potansiyel hatalı üretimi engeller.

4.4. Sürekli Öğrenme
Adım 1: Ölçüm işlemi tamamlanan parçaların gerçek durumu (ret/onay) sisteme kaydedilir.

Adım 2: Belirli aralıklarla (ör. her 60 dakikada bir) sistem yeni ölçüm verilerini de ekleyerek modeli yeniden eğitir (retrain). Bu işlem yukarıdaki train_model fonksiyonunu otomatik olarak tetikleyebilir.

Adım 3: Böylece model, en güncel üretim koşullarına uyum sağlar ve zamanla doğruluğu artar.

4.5. Performans Analizi
Adım 1: Tüm ölçülmüş parçalar, modelin tahminleriyle karşılaştırılır.

Adım 2: Accuracy (doğruluk), Precision (kesinlik) ve Recall (duyarlılık) gibi metrikler hesaplanır.

Adım 3: Kullanıcı arayüzünde (ör. “Analysis” sekmesi) donut veya benzeri grafikle anlık başarı oranı gösterilir. Örneğin:

vbnet
Doğruluk Oranı (Accuracy): 97.9%
Precision: 98.5%
Recall: 99.3%
5. TEZGAH DURUŞLARINI (DOWNTIME) DAHİL ETME
Geliştirme Aşaması

Daha önce kurulan yapay zekâ tabanlı kalite kontrol sistemi, kayar otomatlarda (sliding head lathe) üretilen parçaların ret/onay tahminini yaparak operatör müdahalesini hızlandırmıştır. Bu aşamada, tezgah duruşu (downtime) verilerini de modele ekleyerek tahmin doğruluğunu ve erken uyarı mekanizmasını daha da iyileştirme hedeflenmektedir.

5.1. Tezgâh Duruş Bilgilerinin Önemi
Arıza Kaynaklı Duruş: Makine bozukken üretim durur veya verimsiz koşullarda devam eder. Arıza sonrası ilk birkaç parçanın kalitesinde düşüş olabilir.
Planlı Bakım Duruşu: Bakım sonrası parametre değişikliği ret/onay tahmininde avantaj veya dezavantaj yaratabilir.
Operatör Kaynaklı Duruş: Malzeme beslemesi, takım değişimi vb. kesintiler üretim ritmini etkiler.
Bu duruşların süresi, tipi ve sıklığı, parçaların üretim kalitesini veya gecikme süresini etkileyebilir. Model bu verileri de öğrenirse daha yüksek doğruluk elde edebilir.

5.2. Downtime Verilerinin Toplanması
Duruş Kayıtları: Her tezgâhta duruş (başlangıç ve bitiş zamanı, duruş tipi vb.) kayıt altına alınır.
Süre ve Tip: Duruşun ne kadar sürdüğü (saniye/dakika), hangi tip olduğu (arıza, bakım, operatör duruşu vb.) saklanır.

Zaman Eşleştirmesi: Üretim/ölçüm aralığı ile duruş aralığı kesiştirilerek “Bu parçanın üretimi sırasında toplam X saniye duruş yaşandı” gibi bir değer elde edilir.
5.3. Modelin Güncellenmesi
Özellik Mühendisliği

downtime_during_production (parça üretilirken toplam duruş süresi)
downtime_count (kaç kez durdu)
downtime_type_failure=1, downtime_type_operator=1 vb. (one-hot encoding ile duruş tipleri)
Label

reject_id=80 => Approved kuralı gibi mevcut kurallar korunur.
Eğitim

Model yeniden eğitildiğinde, tezgâh duruşlarını da göz önünde bulundurarak ret/onay tahmininde daha isabetli hale gelir.
5.4. Tahmin Aşaması
Duruş Bilgileri: “Pending” parçalarda, üretim/ölçüm bekleme sürecinde duruş yaşanmışsa, model bu ek süre/tip verisini de hesaba katar.
Erken Uyarı: Planlı bakım sonrası ilk parçalar için model “Red” tahminini artırabilir. Operatör bu uyarıyla hızla kontrol yapar.
5.5. Performans Takibi
Accuracy, Precision, Recall
Duruş verilerini ekledikten sonra modelin doğruluğunda ne kadar artış olduğunu gözlemleyin.
Sürekli Öğrenme
Yeni duruş kayıtları geldikçe model kendini güncel tutar.
Operatör Geri Bildirimi
Operatörler, “duruş sonrası tahminlerin daha tutarlı hale geldiğini” raporlayabilir.

6. SONUÇ VE KAZANIMLAR
Operatör Verimliliği
Tahmini “Red” çıkan parçalar için anında müdahale → Hurda miktarı düşer, maliyet azalır.
Tezgâh Bazlı Öğrenme
Makine kodu ve duruş tiplerini dikkate alan model, her tezgâhın karakteristik hatalarını erkenden tespit eder.
Otomatik Onay (reject_id=80)
Özel durumlar model eğitimine dâhil edilerek, sistemle bütünlük sağlanır.
Sürekli İyileşme
Periyodik retrain ile model her yeni veriyle güncellenir, tahminler hep güncel kalır.
Downtime Entegrasyonu
Arıza, bakım, operatör duruşları modele eklenince ret/onay tahmininde daha yüksek doğruluk sağlanır.
Yüksek Başarı Oranları
Örneğin %97.9 doğruluk, %98.5 precision, %99.3 recall gibi seviyeler yakalanabilir.

7. ÖZET
Bu dokümanda, kayar otomatlarda yapay zekâ tabanlı kalite kontrol sisteminin nasıl kurulabileceği ve tezgâh duruş verilerinin (downtime) modele nasıl entegre edilebileceği anlatılmıştır. Projenin temel aşamaları:

Veri Toplama ve Özellik Seçimi: Gecikme süresi, makine kodu, reject_id, duruş bilgileri vb.
Model Eğitimi: reject_id=80 => Approved gibi kuralları içeren label fonksiyonuyla RandomForest (veya başka bir ML algoritması) kullanımı.
Canlı Tahmin (Inference): “Pending” parçalar için “Approved”/“Red” tahmini → “Red” tahmini için kırmızı blink uyarısı.
Sürekli Öğrenme: Düzenli aralıklarla modelin yeniden eğitilmesi.
Downtime Dahil Etme: Duruş tipleri/süreleriyle tahmin doğruluğunun artırılması.
Sonuç olarak, kayar otomatlarda henüz ölçülmemiş parçaların hatalı (Red) olma ihtimali erken tespit edilerek, operatör müdahalesi hızlanır, üretim verimliliği artar ve hurda oranı düşer. Tezgâh duruşu verileri de sisteme katıldığında, modelin isabeti daha da yükselir. Bu sayede sürekli iyileşen ve gerçek zamanlı uyarı sunan bir kalite kontrol sistemi elde edilir.

Yorumlar

Henüz yorum yok. İlk yorumu sen yap!

Yorum Yaz