
Sebuah blok mesin mobil mengalami pendinginan dengan udara dari radiator yang mengalir di sekitarnya. Kita ingin mengetahui bagaimana suhu di dalam blok mesin berubah seiring waktu, dengan mempertimbangkan konduksi panas di dalam logam dan konveksi panas ke udara sekitar.
Kita akan menggunakan metode numerik untuk:
- Menganalisis distribusi suhu dalam blok mesin menggunakan metode beda hingga.
- Mensimulasikan proses pendinginan menggunakan software CFD seperti CFDSOF.
- Melakukan curve fitting terhadap data hasil simulasi untuk mendapatkan model matematis yang mendekati.
Berikut adalah codingan dalam Python yang saya telah perintahkan AI untuk menyelesaikan pendinginan blok mesin menggunakan metode beda hingga.
import numpy as np
import matplotlib.pyplot as plt
# Parameter blok mesin
L = 0.1 # Panjang blok mesin (m)
Nx = 50 # Jumlah titik diskritisasi
dx = L / (Nx - 1) # Jarak antar titik
alpha = 1.2e-5 # Difusivitas termal (mยฒ/s)
# Parameter waktu
dt = 0.1 # Langkah waktu (s)
Nt = 1000 # Jumlah iterasi waktu
T_inf = 300 # Suhu lingkungan (K)
# Properti material
h = 50 # Koefisien konveksi (W/mยฒ.K)
rho = 7850 # Densitas baja (kg/mยณ)
cp = 500 # Kapasitas panas jenis (J/kg.K)
# Inisialisasi suhu awal (misalnya mesin dimatikan dari 600K)
T = np.ones(Nx) * 600
T_new = np.copy(T)
# Simulasi numerik menggunakan beda hingga eksplisit
for n in range(Nt):
for i in range(1, Nx-1):
T_new[i] = T[i] + (alpha * dt / dx**2) * (T[i+1] - 2*T[i] + T[i-1]) - (h * dt / (rho * cp)) * (T[i] - T_inf)
# Kondisi batas
T_new[0] = 600 # Ujung blok mesin tetap panas
T_new[-1] = T_new[-2] # Neumann condition (isolasi di ujung)
# Update suhu
T = np.copy(T_new)
# Plot hasil simulasi
plt.plot(np.linspace(0, L, Nx), T, label="Suhu di dalam blok mesin")
plt.xlabel("Posisi dalam blok mesin (m)")
plt.ylabel("Temperatur (K)")
plt.title("Distribusi Temperatur dalam Blok Mesin")
plt.legend()
plt.grid()
plt.show()
Pada kode diatas, kita bisa mengganti dimensi, waktu, suhu, dan material yang kita inginkan.
Setelah mendapatkan hasil numerik, kita bisa melakukan curve fitting menggunakan metode least squares regression untuk mendapatkan fungsi T(x) yang mendekati distribusi suhu.
Berikut adalah contoh curve fitting menggunakan fungsi polinomial:
from scipy.optimize import curve_fit
# Model polinomial yang akan digunakan untuk fitting
def poly_fit(x, a, b, c):
return a*x**2 + b*x + c
# Data simulasi (posisi dan suhu)
x_data = np.linspace(0, L, Nx)
y_data = T # Hasil dari simulasi numerik
# Melakukan curve fitting
params, _ = curve_fit(poly_fit, x_data, y_data)
# Plot hasil fitting
plt.plot(x_data, y_data, 'bo', label="Data Simulasi") # Data asli
plt.plot(x_data, poly_fit(x_data, *params), 'r-', label="Curve Fit") # Fitting
plt.xlabel("Posisi dalam blok mesin (m)")
plt.ylabel("Temperatur (K)")
plt.title("Curve Fitting untuk Distribusi Temperatur")
plt.legend()
plt.grid()
plt.show()
# Menampilkan parameter fungsi polinomial
print(f"Persamaan yang cocok: T(x) = {params[0]:.5f}xยฒ + {params[1]:.5f}x + {params[2]:.5f}")
Dengan menggunakan metode numerik:
– Heat conduction & convection dalam blok mesin bisa disimulasikan menggunakan metode beda hingga.
– Hasil simulasi bisa difitting dengan fungsi polinomial untuk mendapatkan persamaan pendekatan.
– Model ini bisa digunakan untuk memprediksi suhu di dalam blok mesin tanpa harus menjalankan simulasi ulang.
Langkah Selanjutnya
- Visualisasi Web dengan JavaScript: Bisa menggunakan Chart.js untuk menampilkan hasil di web.
- Implementasi di CFD Software (CFDSOF): Bisa dibandingkan dengan hasil dari software CFD.
- Eksperimen Fisik: Hasil simulasi bisa diuji dengan data eksperimen di laboratorium.
Link Simulasi CFDSOF Pada Heat Conduction 2D