marchel@sys:~$ exec ./projects/milk-spray-drying --interactive --industry=kalbe-farma
// PROJECT_DETAIL — INDUSTRIAL_ML · CFD · PROCESS_OPTIMIZATION
Milk Spray Drying
Parameter Optimization
Machine Learning + CFD Simulation
ML  ·  CFD
Python  ·  SciPy
PT. Kalbe Farma, Tbk.
2024 – 2025
CFD / Spray Drying ODE / Euler Integration Random Forest Inverse ML Model Ranz-Marshall Correlation Rosin-Rammler Distribution Energy Optimization Python · NumPy · SciPy · sklearn
PROJECT_OVERVIEW.md
Proyek riset industri di PT. Kalbe Farma, Tbk. untuk mengoptimasi konsumsi energi mesin spray dryer dalam proses pengeringan susu bubuk. Pendekatan hybrid: simulasi fisika berbasis CFD menggunakan persamaan diferensial parsial (model droplet evaporation, transfer panas, transfer massa), diikuti inverse ML model yang mengambil target kadar air produk akhir sebagai input dan memberikan rekomendasi parameter operasi optimal — kebalikan dari pendekatan forward modeling konvensional.
── PIPELINE ARSITEKTUR ──
ML_PIPELINE.arch
01
CFD Simulation
Physics-based spray dryer model: geometry, fluid properties, droplet ODE, Euler integration
02
Dataset Gen
2000+ samples, parameter sweep: T_inlet, v_air, diameter, humidity, residence time
03
Forward Model
Random Forest: params → final moisture, temperature, quality score
04
Inverse Model
RF + GBM + MLP: target moisture → optimal operating parameters
05
Optimization
scipy.minimize L-BFGS-B: fine-tune params untuk target moisture tertentu
TRAINING SAMPLES
2,000+
+ edge cases
BEST MODEL
Random Forest
100 estimators
TARGET MOISTURE
2 – 5 %
wet basis optimal
── INTERACTIVE DROPLET SIMULATOR ──
PARAMETER_CONTROLS.cfg
T_sim — Durasi Simulasi (s) 10
d₀ — Initial Droplet Diameter (μm) 70
SIMULATION_OUTPUT.dat
FINAL MOISTURE (wb)
-
FINAL TEMP (°C)
-
FINAL DIAMETER (μm)
-
QUALITY SCORE
-
QUALITY ASSESSMENT
OVERDRIED OPTIMAL (2–5%) UNDERDRIED
Moisture Content (wb %)
Temperature (°C scaled)
Evaporation Rate (scaled)
Visualisasi 2D axisymmetric geometry spray dryer (Kieviet & Kerkhof) dengan droplet trajectory berdasarkan parameter saat ini. Warna droplet = suhu (biru→merah = dingin→panas).
CHAMBER SPECS
Cylinder D1.0 m
Cylinder H1.5 m
Cone H1.0 m
Cone Bottom D0.3 m
Spray Angle76°
Nozzle Vel.59 m/s
Distribusi ukuran droplet menggunakan model Rosin-Rammler dengan parameter mean diameter dan spread parameter yang dapat dikonfigurasi.
Mean Diameter (μm) 70.5
n Spread Parameter 2.09
PDF (Probability Density)
CDF (Cumulative)
Koefisien transfer panas dan massa menggunakan korelasi Ranz-Marshall: Nu = 2 + 0.6·Re0.5·Pr1/3 dan Sh = 2 + 0.6·Re0.5·Sc1/3
v=5 m/s
v=15 m/s
v=30 m/s
v=59 m/s
NUSSELT NUMBER vs Re
SHERWOOD NUMBER vs Re
── PHYSICS MODEL ──
DROPLET_EVAPORATION.ode
Evaporation Rate (Ranz-Marshall)
= k_m · A · (P_surf − P_bulk) / (R·T)
Heat Transfer (Net)
Q_net = h·A·(T_air − T) ṁ·λ
Moisture Change (dry basis)
dX/dt = ṁ / m_solids
Activity Coefficient (bound water)
a_w = 1.0  if X > X_crit
a_w = X / X_crit  otherwise
QUALITY_SCORE.func
Fungsi kualitas gabungan yang membobot kadar air akhir (70%) dan suhu produk (30%). Target produk susu bubuk berkualitas: kadar air 2–5% wb, suhu produk < 60°C untuk menjaga integritas protein.
Moisture Score
100  if 2% ≤ X_wb ≤ 5%
max(0, 100 − |X − X_target|·scale)  otherwise
Combined Quality Score
Q = 0.7·S_moisture + 0.3·S_temperature
OVERDRIED
X_wb < 2%
Protein denaturasi
UNDERDRIED
X_wb > 5%
Caking, degradasi
── INVERSE ML MODEL ──
INVERSE_OPTIMIZER.ml
Model invers menerima target kadar air sebagai input dan mengeluarkan parameter operasi optimal. Dilatih dengan 3 model berbeda dan dipilih yang terbaik berdasarkan avg R².
SET TARGET MOISTURE → GET OPTIMAL PARAMS
Target Moisture Content (%wb) 3.5
SIMULATION_LOG.out
// Tekan RUN_SIMULATION untuk memulai...