TUSAŞ "Lift Up" Bitirme Projesi Ekip: 4 Makine Mühendisliği + 1 Bilgisayar Mühendisliği öğrencisi
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.
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.
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)
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
Ç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.
Experiments.xlsxopenpyxlile okunur; kolon adları normalize edilir (Vc, fn, ap, Ra).- Girdiler
X = [Vc, fn, ap], hedefy = Raolarak ayrılır. - Tüm modeller, ölçek farklarını gidermek için
StandardScalerile 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).
- Ra dağılımı, faktör seviyelerine göre kutu grafikleri, Pearson korelasyon matrisi ve faktör–Ra saçılım grafikleri üretilir.
- 🖼️ Şekiller:
ra_distribution.png,boxplots_by_factor.png,correlation_heatmap.png,feature_vs_ra.png
- 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.
- 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.
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ü |
Üç bağımsız doğrulama yöntemi kullanılır:
- 10-katlı çapraz doğrulama (karıştırmalı): Ana metrik. R², RMSE, MAE (ortalama ± std).
- 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.
- 80/20 ayrık test (kombinasyona göre stratify): Bağımsız gösterim skoru.
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.
Grup-içi (tekrarlar arası) havuzlanmış standart sapma σ ≈ 0.012 µm olarak hesaplanır; uygulama tahmini ±2σ ≈ ±0.024 µm bandıyla sunar.
🖼️ 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).
🖼️ 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).
🖼️ 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.)
İ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.
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.
- 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
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:5000Ayrıntılar: api/README.md.
Aşağıdaki tüm dosyalar reports/ klasöründedir ve makaleye doğrudan eklenebilir.
| 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 |
| 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.jsondosyası ayrıca tüm sayısal sonuçları (metrikler, ANOVA katkıları, S/N optimumları, RSM denklemi) makine-okunur biçimde içerir.
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.
pip install -r requirements.txt
python train_model.py # modeli eğit + 15 grafik & 9 tablo üret
python app.py # masaüstü uygulaması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 sklearnmodeli açmak (unpickle) için,--collect-all customtkintertema 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.
- 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ı.
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).
