Skip to content

Repository files navigation

MACHINOVA — CFRP Frezelemede Makine Öğrenmesi ile Yüzey Pürüzlülüğü (Ra) Tahmini

TUSAŞ "Lift Up" Bitirme Projesi Ekip: 4 Makine Mühendisliği + 1 Bilgisayar Mühendisliği öğrencisi

MACHINOVA masaüstü uygulaması

Bu doküman, projenin bilgisayar mühendisliği (veri bilimi / yazılım) katkısını makale (yayın) yazımında doğrudan kullanılabilecek ayrıntıda açıklar. Tüm yöntem adımları, istatistiksel analizler, makine öğrenmesi modelleri, doğrulama stratejisi, sonuç tabloları ve şekiller reports/ klasöründe hazır olarak üretilir.


1. Özet

Karbon fiber takviyeli polimer (CFRP) malzemelerin frezelenmesinde yüzey pürüzlülüğü (Ra), parça kalitesini belirleyen kritik bir çıktıdır. Bu çalışmada, Taguchi L9 dik dizisiyle tasarlanmış 126 deneysel ölçümden yola çıkılarak, üç kontrol edilebilir kesme parametresinden — kesme hızı (Vc), ilerleme (fn) ve kesme derinliği (ap) — Ra'yı tahmin eden bir regresyon tabanlı makine öğrenmesi modeli geliştirilmiş ve operatörlerin kullanımına yönelik bir masaüstü karar destek uygulaması (MACHINOVA) üretilmiştir.

Beş farklı regresyon modeli 10-katlı çapraz doğrulama ile karşılaştırılmış; en yüksek doğruluğa eşdeğer performansla birlikte pürüzsüz interpolasyon avantajı sağlayan ikinci derece Tepki Yüzeyi (RSM) regresyon modeli uygulamaya gömülmüştür (CV R² = 0.978, RMSE = 0.012 µm). İstatistiksel analizler (ANOVA + Taguchi S/N), yüzey pürüzlülüğü üzerinde kesme hızının (Vc) baskın faktör olduğunu (%83.2 katkı) ortaya koymuştur.


2. Proje Yapısı

lift-up/
├── Experiments.xlsx        # Taguchi L9 deney verisi (girdi, değiştirilmez)
├── train_model.py          # Eğitim + model karşılaştırma + en iyi modeli kaydetme
├── analysis.py             # Makale için istatistiksel analiz ve tüm görsellerin üretimi
├── app.py                  # MACHINOVA masaüstü uygulaması (CustomTkinter, açık tema)
├── requirements.txt        # Python bağımlılıkları
├── README.md               # bu doküman
├── api/                     # Flask REST API — modeli HTTP üzerinden servis eder (POST /predict)
├── model/
│   ├── ra_model.pkl        # Eğitilmiş pipeline (StandardScaler + RSM regresör)
│   └── model_meta.json     # Model adı, tüm metrikler, ANOVA/S/N sonuçları, aralıklar
└── reports/                # ↓ MAKALE İÇİN TÜM ŞEKİL VE TABLOLAR ↓
    ├── *.png  (14 şekil)
    └── *.csv  (9 tablo)

3. Veri Seti

Deneyler Taguchi L9 (3⁴) dik dizisine göre tasarlanmıştır: 3 faktör × 3 seviye = 9 kombinasyon, her kombinasyon 14 tekrar → toplam 126 ölçüm (eksik veri yok).

Faktör Açıklama Seviye 1 Seviye 2 Seviye 3 Birim
Vc Kesme Hızı 100 125 150 m/dak
fn İlerleme 0.02 0.04 0.06 mm/dev
ap Kesme Derinliği 1.0 1.5 2.0 mm
Ra Yüzey Pürüzlülüğü (hedef) µm

Ra aralığı: 0.882 – 1.190 µm, ortalama 1.045 µm, standart sapma 0.089 µm.

Önemli veri özelliği (makalede tartışılmalı): Her kombinasyonun 14 tekrarı, ölçüm sırasına göre hafif ve düzenli bir artış gösterir (her grupta std ≈ 0.012 µm). Bu durum, ardışık kesmelerde ilerleyen takım aşınmasının bir yansımasıdır. Veride zaman/pass indeksi bulunmadığından (ve uygulamaya yalnızca Vc/fn/ap girildiğinden), model her parametre kombinasyonu için ortalama Ra'yı öğrenir; tekrarlar arası yayılım ise tahminin belirsizlik bandı (±0.024 µm ≈ 2σ) olarak raporlanır.

📊 İlgili tablolar: descriptive_stats.csv, taguchi_design_table.csv


4. Yöntem (Bilgisayar Mühendisliği Katkısı)

Çalışmanın veri-bilimi iş akışı altı aşamadan oluşur: (1) veri yükleme/ön işleme → (2) keşifsel veri analizi (EDA) → (3) Taguchi S/N + ANOVA istatistiksel analizi → (4) çoklu model eğitimi → (5) çapraz doğrulama ile karşılaştırma ve model seçimi → (6) modelin masaüstü uygulamaya gömülmesi.

4.1. Veri Ön İşleme

  • Experiments.xlsx openpyxl ile okunur; kolon adları normalize edilir (Vc, fn, ap, Ra).
  • Girdiler X = [Vc, fn, ap], hedef y = Ra olarak ayrılır.
  • Tüm modeller, ölçek farklarını gidermek için StandardScaler ile aynı pipeline içinde eğitilir. Ölçekleyici modelle birlikte kaydedilir; böylece tahmin sırasında eğitimdeki dönüşüm birebir uygulanır (veri sızıntısı önlenir).

4.2. Keşifsel Veri Analizi (EDA)

4.3. Taguchi Sinyal/Gürültü (S/N) Analizi

  • Ra "küçük-daha-iyi" karakteristik olduğundan her kombinasyon için S/N = −10·log₁₀(ortalama(Ra²)) hesaplanır.
  • Faktör-seviye yanıt tablosu ve Delta (etki büyüklüğü) ile faktör önem sırası belirlenir; her faktör için S/N'i maksimize eden (Ra'yı minimize eden) optimum seviye saptanır.

4.4. Varyans Analizi (ANOVA)

  • Her faktörün kareler toplamı (SS), serbestlik derecesi, F değeri, p değeri ve toplam varyansa yüzde katkısı hesaplanır. Bu, makinist literatüründe standart olan parametre önem analizidir.

4.5. Makine Öğrenmesi Modelleri

Tezdeki karşılaştırmalı yaklaşımla uyumlu olarak beş regresyon modeli eğitilir:

# Model Rol / Gerekçe
1 Linear Regression Doğrusal taban (baseline)
2 Polinom/RSM Regresyon (derece 2) + RidgeCV Ana aday — ikinci derece tepki yüzeyi (kare + etkileşim terimleri). L9 dizisinde etkileşimler kısmen örtüşük (aliased) olduğundan koşulsuzluğu (ill-conditioning) önlemek için Ridge düzenlemesi (α, iç CV ile otomatik seçilir)
3 Random Forest (300 ağaç) Doğrusal olmayan topluluk; parça-parça sabit (pürüzsüz interpolasyon/ekstrapolasyon yapamaz)
4 SVR (RBF çekirdek) Çekirdek tabanlı; küçük veride güçlü genelleme
5 Yapay Sinir Ağı (MLP, 16-8, ReLU) Tezdeki ANN'i temsilen. Küçük veride kararlılık için lbfgs çözücü

4.6. Model Doğrulama Stratejisi

Üç bağımsız doğrulama yöntemi kullanılır:

  1. 10-katlı çapraz doğrulama (karıştırmalı): Ana metrik. R², RMSE, MAE (ortalama ± std).
  2. Kombinasyon-dışı CV (Leave-One-Combination-Out): Bir Taguchi kombinasyonunun tüm 14 tekrarı dışarıda bırakılarak model hiç görmediği bir parametre setine genelleme açısından test edilir. Bu, üç-seviyeli tasarımda bir köşenin çıkarılması anlamına gelen, dürüst ve zorlu bir metriktir.
  3. 80/20 ayrık test (kombinasyona göre stratify): Bağımsız gösterim skoru.

4.7. Model Seçimi

En yüksek 10-katlı CV R²'sine sahip model seçilir; skorların eşdeğer olması durumunda (≤0.01 fark) uygulamada pürüzsüz ve fiziksel olarak anlamlı interpolasyon sağladığı için Polinom/RSM modeli tercih edilir.

4.8. Belirsizlik Bandı

Grup-içi (tekrarlar arası) havuzlanmış standart sapma σ ≈ 0.012 µm olarak hesaplanır; uygulama tahmini ±2σ ≈ ±0.024 µm bandıyla sunar.


5. Bulgular ve Sonuçlar

5.1. Taguchi S/N ve Faktör Önemi

🖼️ taguchi_main_effects.png · taguchi_sn_response.png

Faktör Delta (S/N) Optimum Seviye Önem Sırası
Vc 1.50 150 m/dak 1
fn 0.58 0.02 mm/dev 2
ap 0.39 2.0 mm 3

Ra'yı minimize eden optimum kombinasyon: Vc=150, fn=0.02, ap=2.0 (deneysel olarak da en düşük Ra = 0.902 µm bu kombinasyondadır).

5.2. ANOVA — Yüzde Katkı

🖼️ anova_contribution.png · 📊 anova_table.csv

Kaynak DF SS F p Katkı %
Vc (Kesme Hızı) 2 0.833 1775.9 < 0.001 %83.2
fn (İlerleme) 2 0.103 220.5 < 0.001 %10.3
ap (Kesme Derinliği) 2 0.037 79.1 < 0.001 %3.7
Hata 119 0.028 %2.8

→ Üç faktör de istatistiksel olarak anlamlıdır (p < 0.001); kesme hızı baskın faktördür. Bu sonuç, Random Forest özellik önemi analiziyle de doğrulanır (🖼️ feature_importance.png: Vc %85, fn %13, ap %2).

5.3. Model Karşılaştırması (10-katlı CV)

🖼️ model_comparison.png · all_models_actual_vs_pred.png · 📊 model_comparison.csv

Model CV R² RMSE (µm) MAE (µm) Kombinasyon-dışı R²
SVR (RBF) 0.979 0.0121 0.0105 0.468
Polinom/RSM (derece 2 + Ridge) 0.978 0.0123 0.0107 0.674
Random Forest 0.978 0.0123 0.0107 0.842
Yapay Sinir Ağı (ANN/MLP) 0.978 0.0124 0.0106 0.030
Linear Regression 0.789 0.0371 0.0322 0.496

Dört doğrusal-olmayan model neredeyse özdeş doğruluk verir (CV R² ≈ 0.978). Doğrusal model belirgin şekilde geride kalır; bu, parametre–Ra ilişkisinin doğrusal olmadığını gösterir. (Not: Karşılaştırma tablosu kat-başına R²'lerin ortalamasını; saçılım grafikleri ise havuzlanmış OOF tahminleri üzerinden R²'yi verir — ikisi de standart CV metrikleridir.)

5.4. Seçilen Model — RSM Regresyon Denklemi

İkinci derece tepki yüzeyi denklemi (orijinal birimler):

Ra = 3.00444 − 0.02966·Vc − 0.00005·fn + 0.10292·ap
     + 0.00011·Vc² + 0.01045·Vc·fn − 0.00124·Vc·ap
     − 0.00016·fn² + 0.00774·fn·ap + 0.00507·ap²

🖼️ actual_vs_predicted.png · residuals.png · response_surface.png · response_contours.png

Eğitilmiş model bilinen 9 kombinasyonu 0.0002 µm'den düşük hatayla yeniden üretir ve ara değerlerde fiziksel olarak tutarlı, pürüzsüz interpolasyon yapar.


6. Masaüstü Uygulama (MACHINOVA)

Mimari — "Arayüz / Model Motoru" Ayrımı

Uygulama, eğitilmiş model/ra_model.pkl pipeline'ını (StandardScaler + RSM regresör) çalışma zamanında yükler. Model güncellendiğinde arayüz kodu değişmeden yalnızca model dosyası değiştirilebilir. Bu katmanlı tasarım, tezde önerilen mimariyle uyumludur.

Özellikler

  • Açık (light) temalı, modern CustomTkinter arayüzü.
  • Üç sayısal girdi: Vc, fn, ap (ondalık ayraç olarak hem . hem , kabul edilir).
  • "TAHMİN ET" → büyük ve net Ra ≈ X.XXX µm + belirsizlik bandı (±0.024 µm).
  • Sayısal doğrulama; girdi modelin eğitildiği veri aralığının dışındaysa ekstrapolasyon uyarısı verir (sonuç yine de üretilir).
  • Alt bilgi çubuğunda aktif model adı ve CV R² gösterilir.

🖼️ Arayüz ekran görüntüsü: reports/app_screenshot.png

6.1. REST API (api/)

Masaüstü uygulamasının yanı sıra, aynı eğitilmiş model Flask tabanlı bir REST API ile de servis edilir (api/ klasörü). Böylece tahmin motoru başka araçlara veya panolara entegre edilebilir.

  • GET / — sağlık kontrolü
  • POST /predict — gövde { "Vc": 150, "fn": 0.02, "ap": 2.0 } → yanıt { "status": "success", "Ra_Tahmin": 0.90 }
cd api && pip install -r requirements.txt && python app.py   # http://0.0.0.0:5000

Ayrıntılar: api/README.md.


7. Makale İçin Şekil ve Tablo Dizini

Aşağıdaki tüm dosyalar reports/ klasöründedir ve makaleye doğrudan eklenebilir.

Şekiller (PNG, 160 dpi)

Dosya İçerik Makalede önerilen bölüm
ra_distribution.png Ra histogramı Veri Seti
boxplots_by_factor.png Faktör seviyelerine göre Ra kutu grafikleri EDA
correlation_heatmap.png Pearson korelasyon matrisi EDA
feature_vs_ra.png Faktör–Ra saçılım + seviye ortalamaları EDA
taguchi_main_effects.png Ortalama Ra ana etki grafiği Taguchi Analizi
taguchi_sn_response.png S/N oranı ana etki grafiği Taguchi Analizi
anova_contribution.png Faktörlerin % katkısı ANOVA
feature_importance.png Random Forest özellik önemi Sonuçlar
model_comparison.png Modellerin CV R² karşılaştırması Modelleme
all_models_actual_vs_pred.png 5 modelin CV gerçek-vs-tahmin grafiği Modelleme
actual_vs_predicted.png Seçilen model gerçek-vs-tahmin Sonuçlar
residuals.png Artık (residual) analizi Sonuçlar
response_surface.png 3B tepki yüzeyi (Ra–Vc–fn) Sonuçlar
response_contours.png 2B kontur haritaları (3 ap seviyesi) Sonuçlar

Tablolar (CSV, Excel/LaTeX'e aktarılabilir)

Dosya İçerik
descriptive_stats.csv Tanımlayıcı istatistikler
taguchi_design_table.csv 9 kombinasyon + Ra ortalama/std
correlation_matrix.csv Korelasyon değerleri
taguchi_sn_per_run.csv Her kombinasyonun S/N değeri
taguchi_sn_response.csv S/N yanıt tablosu (faktör×seviye)
taguchi_sn_ranking.csv Faktör önem sırası + optimum seviyeler
anova_table.csv Tam ANOVA tablosu (SS, DF, MS, F, p, %)
feature_importance.csv RF Gini + permütasyon önemleri
model_comparison.csv Tüm modeller × tüm metrikler

model/model_meta.json dosyası ayrıca tüm sayısal sonuçları (metrikler, ANOVA katkıları, S/N optimumları, RSM denklemi) makine-okunur biçimde içerir.


8. Kurulum ve Çalıştırma

A) Son kullanıcı — derlenmiş uygulama (Python GEREKMEZ)

Pakette hazır MACHINOVA.exe (~88 MB, model gömülü) bulunur. Çift tıklayın; Vc, fn, ap girip **"TAHMİN ET"**e basın. İlk açılış birkaç saniye sürebilir (onefile exe geçici dizine açılır). Windows SmartScreen uyarısında: Ek bilgi → Yine de çalıştır (imzasız exe'lerde normaldir). Ayrıntı: KULLANIM.txt.

B) Geliştirici — Python ile

pip install -r requirements.txt
python train_model.py     # modeli eğit + 15 grafik & 9 tablo üret
python app.py             # masaüstü uygulaması

C) .exe'yi yeniden derleme

build_exe.bat dosyasına çift tıklayın veya:

pip install pyinstaller
pyinstaller --noconfirm --onefile --windowed --name MACHINOVA ^
  --collect-all customtkinter --collect-submodules sklearn ^
  --add-data "model;model" app.py

--collect-submodules sklearn modeli açmak (unpickle) için, --collect-all customtkinter tema dosyaları için gereklidir. Çıktı dist/MACHINOVA.exe; model exe içine gömülür, böylece tek dosya kendine yeter. Boyut nedeniyle paylaşımda Drive/WeTransfer pratiktir.


9. Sınırlılıklar ve Gelecek Çalışma

  • Tasarım uzayı: Yalnızca 9 farklı parametre kombinasyonu (L9). Model, grid içinde güvenilir interpolasyon yapar; aralık dışı tahminler uygulamada ekstrapolasyon olarak işaretlenir. Kombinasyon-dışı CV, tamamen görülmemiş köşelere genellemenin orta düzeyde olduğunu gösterir (RSM R²=0.67, RF R²=0.84) — üç-seviyeli tasarımda beklenen.
  • Takım aşınması zamansal bir etkidir ancak veride zaman/pass kolonu olmadığından modele girdi değildir; tekrarlar arası yayılım belirsizlik bandı olarak ele alınmıştır.
  • Gelecek çalışma: daha geniş deney tasarımı (örn. L27 / merkezi kompozit), takım-aşınması/ zaman özniteliği eklenmesi, daha fazla veriyle ANN, ve tezde öngörülen yüzey kalite sınıfı (Grade 1/2/3) sınıflandırması.

10. Ekip

MACHINOVA — TUSAŞ "Lift Up" Bitirme Projesi 4 Makine Mühendisliği + 1 Bilgisayar Mühendisliği öğrencisi. Bilgisayar mühendisliği katkısı: veri analizi, makine öğrenmesi modellemesi ve masaüstü karar destek uygulaması (bu depodaki tüm kod ve çıktılar).

About

ML surface-roughness (Ra) prediction for CFRP milling — TUSAŞ Lift Up graduation project (MACHINOVA): RSM regression, desktop app & REST API.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages