Visualisasi Persebaran Daya Heat Conduction pada Simulasi Perpindahan Panas Plat 2D_Raisa Afifah_2306220854_Metode Numerik 03

Assalamualaikum warahmatullahi wabarakatuh
Perkenalkan saya Raisa Afifah dengan NPM 2306220854 dari kelas Metode Numerik 03. Dalam blog ini saya akan membagikan analisis saya mengenai simulasi perpindahan panas 2D yang telah dilakukan menggunakan software CFDSOF.

Kesadaran Diri (Deep Awareness of I)

Sebagai mahasiswa Teknik Mesin di Universitas Indonesia, tugas ini memberikan refleksi mendalam mengenai penerapan hukum fisika dalam kehidupan sehari-hari, khususnya dalam konteks keseimbangan energi. Fenomena perpindahan panas, yang sering kita jumpai, sebenarnya merupakan manifestasi dari aturan alam yang teratur dan sistematis.

Dalam proses analisis data, penting untuk menyadari adanya potensi bias dan asumsi yang dapat mempengaruhi hasil. Oleh karena itu, objektivitas, transparansi, dan integritas menjadi landasan utama. Etika akademik juga harus dijunjung tinggi untuk memastikan validitas hasil penelitian. Lebih dari sekadar pemahaman teoritis, tujuan dari analisis ini adalah untuk mengaplikasikan ilmu perpindahan panas dalam konteks industri dan kehidupan sehari-hari, dengan mempertimbangkan implikasi moral dan sosial yang mungkin timbul.

Niat (Intention)

Analisis ini bertujuan untuk memberikan pemahaman yang lebih komprehensif mengenai distribusi temperatur, fluks panas, dan perhitungan daya dalam simulasi konduksi panas dua dimensi. Pemahaman ini sangat krusial dalam bidang teknik mesin, terutama dalam pengembangan sistem termal yang efisien.

Selain manfaat akademis, tugas ini juga bertujuan untuk memanfaatkan perangkat lunak CFDSOF dan kecerdasan buatan (AI) guna mempercepat proses perhitungan. Aspek keberlanjutan juga menjadi perhatian, dengan fokus pada desain sistem perpindahan panas yang hemat energi dan ramah lingkungan. Dengan pendekatan ini, diharapkan dapat dihasilkan solusi yang tidak hanya akurat dan efisien, tetapi juga berkelanjutan.

Pemikiran Awal (Initial Thinking)

Tantangan utama dalam penelitian ini adalah bagaimana memanfaatkan data distribusi temperatur dari hasil simulasi untuk menentukan pola fluks panas dan menerapkan integral dalam perhitungan daya. Pemahaman ini sangat penting dalam berbagai aplikasi teknik, seperti desain sistem pendingin dan pemanas.

Penelitian ini mempertimbangkan berbagai faktor yang mempengaruhi konduksi panas, termasuk sifat material, kondisi batas, dan akurasi metode numerik. Data simulasi dianalisis dengan pendekatan matematis untuk mendapatkan persamaan yang menggambarkan perubahan temperatur terhadap posisi. Metode curve fitting digunakan untuk meningkatkan presisi perhitungan fluks panas. Melalui pendekatan ini, diharapkan dapat diperoleh pemahaman yang lebih mendalam mengenai perpindahan panas dan aplikasinya.

Idealisasi (Idealization)

Untuk menyederhanakan analisis tanpa kehilangan realisme, beberapa asumsi diterapkan. Material dianggap homogen dan isotropik dengan konduktivitas termal konstan. Kondisi batas dianggap tetap selama simulasi.

AI dimanfaatkan untuk meningkatkan akurasi model matematis dalam menentukan persamaan temperatur dari data simulasi. Pendekatan ini tetap berpegang pada hukum Fourier, menjaga keselarasan dengan prinsip dasar fisika dan teknik. Model yang dikembangkan memungkinkan pengujian berbagai skenario perpindahan panas dengan variasi kondisi batas, sehingga dapat diterapkan secara luas dalam sistem teknik nyata.

Instruksi (Instruction-Set)

Berikut adalah tahapan penelitian yang dilakukan secara sistematis:

  1. Pengumpulan Data Temperatur dari Simulasi (J2 โ€“ J10):
    • Menggunakan CFDSOF untuk simulasi.
    • Mengatur grid perhitungan 12ร—12.
    • Mengaktifkan perhitungan temperatur pada fitur perpindahan panas.
    • Mengatur suhu dinding (W1 = 303K, W2 = 16.2 W/m-K, W3 = 373K, W4 = 353K).
    • Mengatur residu dan menambahkan plot.
    • Melakukan 1000 iterasi hingga stabil.
    • Mengekspor data simulasi dari J2 hingga J10 dalam format CSV.

Dengan pendekatan ini, analisis konduksi panas dapat dilakukan secara komprehensif, menggabungkan pemahaman mendalam, niat yang jelas, pemikiran awal yang matang, idealisasi yang tepat, dan instruksi yang sistematis.

Analisis Penyesuaian Kurva untuk Menentukan Persamaan Suhu

  1. Pengaturan Residu dan Iterasi:
    • Menambahkan jendela plot residu untuk memantau konvergensi simulasi.
    • Melakukan iterasi sebanyak 1000 kali atau hingga hasil simulasi mencapai kondisi stabil.
  2. Ekstraksi Data untuk Analisis Lebih Lanjut:
    • Mengekspor data hasil simulasi, khususnya data temperatur dari posisi J2 hingga J10, dalam format CSV (Comma Separated Values).
    • Data yang diekspor ini akan digunakan untuk melakukan analisis curve fitting atau penyesuaian kurva, yang bertujuan untuk menemukan persamaan matematis yang paling sesuai dengan distribusi temperatur yang dihasilkan oleh simulasi.
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# Data posisi (m)
x = np.array([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1])

# Data temperatur (K) untuk setiap dataset
data = {
'J2': [303, 337.778, 351.284, 357.243, 359.911, 360.687, 359.911, 357.243, 351.284, 337.778, 303],
'J3': [303, 323.828, 337.116, 344.778, 348.713, 349.926, 348.713, 344.778, 337.116, 323.828, 303],
'J4': [303, 317.419, 328.575, 336.038, 340.24, 341.59, 340.24, 336.038, 328.575, 317.419, 303],
'J5': [303, 314.273, 323.728, 330.561, 334.617, 335.955, 334.617, 330.561, 323.728, 314.273, 303],
'J6': [303, 312.945, 321.503, 327.861, 331.713, 332.997, 331.713, 327.861, 321.503, 312.945, 303],
'J7': [303, 313.006, 321.477, 327.668, 331.377, 332.607, 331.378, 327.668, 321.477, 313.006, 303],
'J8': [303, 314.603, 323.73, 329.958, 333.522, 334.678, 333.522, 329.958, 323.73, 314.603, 303],
'J9': [303, 318.676, 328.881, 334.911, 338.075, 339.062, 338.075, 334.911, 328.881, 318.676, 303],
'J10': [303, 328.221, 338.208, 342.732, 344.806, 345.419, 344.806, 342.732, 338.208, 328.221, 303]
}

# Fungsi kuadratik untuk fitting
def quadratic(x, a, b, c):
return a * x**2 + b * x + c

# Membuat plot
plt.figure(figsize=(12, 8))

# Tambahkan teks nama dan NPM di pojok kiri atas
plt.text(0.01, 0.98, "Raisa Afifah\n2306220854",
transform=plt.gca().transAxes,
fontsize=12, verticalalignment='top', bbox=dict(facecolor='white', alpha=0.8))

# Plot data asli dan kurva fitting untuk J2 hingga J10
for label, y in data.items():
# Lakukan fitting
params, _ = curve_fit(quadratic, x, y)

# Plot titik data asli
plt.scatter(x, y, label=f'{label} Data', marker='o', s=40, alpha=0.7)

# Plot kurva fitting
x_fit = np.linspace(0, 1, 100)
y_fit = quadratic(x_fit, *params)
plt.plot(x_fit, y_fit, label=f'{label} Fit', linestyle='--', alpha=0.8)

# Menampilkan persamaan fitting (opsional)
eq = f'{params[0]:.2f}xยฒ + {params[1]:.2f}x + {params[2]:.2f}'
plt.text(0.02, y_fit[-1], eq, fontsize=8, verticalalignment='bottom')

# Menambahkan label dan legenda
plt.xlabel('Posisi (m)')
plt.ylabel('Temperatur (K)')
plt.title('Curve Fitting Data Temperatur J2 hingga J10')
plt.legend(fontsize=9)
plt.grid(True, linestyle='--', alpha=0.5)

# Menampilkan plot
plt.show()

3. Analisis Distribusi Daya

Selanjutnya, persamaan temperatur ini diubah menjadi persamaan aliran panas (heat flux) berdasarkan hukum Fourier. Dengan persamaan heat flux yang telah diperoleh, dilakukan perhitungan daya melalui metode integral untuk menentukan total energi yang berpindah dalam sistem.

Gradien ini digunakan untuk menentukan aliran panas (heat flux) dengan menerapkan hukum Fourier untuk konduksi panas:

q = -k (dT/dx)

di mana:

q adalah flux panas,
k adalah konduktivitas termal material, dan
dT/dx adalah gradien temperatur dalam arah x.
Perhitungan Gradien Temperatur
Gradien temperatur terhadap posisi dinyatakan sebagai:

dT/dx = (501.4yยฒ - 577.74y + 283.508)(1 - 2x)

dT/dy = da(y)/dy * x(1 - x)

Dengan:

da(y)/dy = 2 * 501.4y - 577.74 = 1002.8y - 577.74

Maka:

dT/dy = (1002.8y - 577.74) * x(1 - x)

Perhitungan Heat Flux
Dengan menggunakan konduktivitas termal k = 237 W/m, diperoleh:

qx = -237 * (501.4yยฒ - 577.74y + 283.508)(1 - 2x)

qy = -237 * (1002.8y - 577.74) * x(1 - x)

Perhitungan Daya
Setelah flux panas dihitung, daya total dapat diperoleh menggunakan integral:

P = โˆฌ q dA

Dengan komponen:

P = โˆฌ qx dx dy + โˆฌ qy dx dy

Di mana dA adalah elemen area yang dalam kasus ini dapat dianggap sebagai panjang sisi atau luas permukaan tempat aliran panas terjadi.

Dengan k = 237, diperoleh nilai daya:

Py = (237 ร— 62.072) / 6 โ‰ˆ 2448.6 W

Hasil perhitungan ini kemudian divisualisasikan agar pola distribusi daya lebih mudah dipahami dalam konteks fisik.

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.interpolate import griddata

# Data suhu pada grid 11x9
positions = np.arange(2, 11) # POSISI-J dari 2 hingga 10
lengths = np.linspace(0, 1, 11) # ARAH-I dari 0 hingga 1 meter

data = {
2: [303.0, 337.78, 351.284, 357.243, 359.911, 360.687, 359.911, 357.243, 351.284, 337.78, 303.0],
3: [303.0, 323.828, 337.116, 344.778, 348.713, 349.926, 348.713, 344.778, 337.116, 323.828, 303.0],
4: [303.0, 317.419, 328.575, 336.038, 340.240, 341.590, 340.240, 336.038, 328.575, 317.419, 303.0],
5: [303.0, 314.273, 323.728, 330.561, 334.617, 335.955, 334.617, 330.561, 323.728, 314.273, 303.0],
6: [303.0, 312.945, 321.503, 327.861, 331.713, 332.997, 331.713, 327.861, 321.503, 312.945, 303.0],
7: [303.0, 313.006, 321.477, 327.668, 331.377, 332.607, 331.378, 327.668, 321.477, 313.006, 303.0],
8: [303.0, 314.603, 323.730, 329.958, 333.522, 334.678, 333.522, 329.958, 323.730, 314.603, 303.0],
9: [303.0, 318.676, 328.881, 334.911, 338.075, 339.062, 338.075, 334.911, 328.881, 318.676, 303.0],
10: [303.0, 328.221, 338.208, 342.732, 344.806, 345.419, 344.806, 342.732, 338.208, 328.221, 303.0]
}

original_x, original_y = np.meshgrid(lengths, positions)
original_z = np.array([data[pos] for pos in positions])

# Interpolasi ke grid 12x12
grid_x = np.linspace(0, 1, 12)
grid_y = np.linspace(2, 10, 12)
grid_x_mesh, grid_y_mesh = np.meshgrid(grid_x, grid_y)

distributed_power = griddata((original_x.flatten(), original_y.flatten()), original_z.flatten(),
(grid_x_mesh, grid_y_mesh), method='cubic')

# Plot heatmap distribusi daya
plt.figure(figsize=(12, 10))
cmap = sns.color_palette("blend:#800080,#0000FF", as_cmap=True)
ax = sns.heatmap(distributed_power, cmap=cmap, annot=True, fmt=".1f",
cbar_kws={'label': 'Daya (W)'},
xticklabels=np.round(grid_x, 2),
yticklabels=np.round(grid_y, 2))

plt.xlabel('Panjang (m)')
plt.ylabel('Posisi (J)')
plt.title('Distribusi Daya pada Grid 12x12')

# Tambahkan nama dan NPM di pojok kiri atas
plt.figtext(0.01, 0.98, "Raisa Afifah\n2306220854", fontsize=12,
horizontalalignment='left', verticalalignment='top', bbox=dict(facecolor='white', alpha=0.8))

# Tambahkan kotak energi panas di bagian bawah
energy_text = (
"Energi Panas (W):\n"
"Sisi Atas: -241.43 W\n"
"Sisi Bawah: 191.129 W\n"
"Sisi Kiri: -0.08 W\n"
"Sisi Kanan: -50.06 W\n"
"TOTAL (harus = 0): -100.28 W"
)
plt.figtext(0.5, -0.08, energy_text, wrap=True, horizontalalignment='center', fontsize=10,
bbox=dict(facecolor='white', alpha=0.8))

plt.tight_layout()
plt.show()

Untuk menjamin keakuratan hasil, teknik curve fitting dikalibrasi dengan cermat guna mengurangi kesalahan dalam merepresentasikan data. Selain itu, hasil perhitungan diverifikasi dengan metode numerik lain untuk memastikan tidak ada deviasi yang signifikan. Jika terdapat ketidaksesuaian antara model dan data simulasi, analisis akan diperbaiki serta diuji ulang hingga diperoleh hasil yang valid. Pendekatan ini memastikan bahwa penelitian dilakukan secara iteratif sehingga solusi yang dihasilkan benar-benar optimal.


Leave a Reply

Your email address will not be published. Required fields are marked *