2. Pemanfaatan AI untuk menganalisis
saya menggunakan AI untuk melakukan curve fitting pada setiap baris data, mulai dari J2 hingga J10. Dengan pendekatan ini, kita dapat menghitung heat flux untuk setiap baris, yang menggambarkan aliran panas dalam sistem. Selanjutnya, daya dihitung untuk setiap baris berdasarkan hasil heat flux. Terakhir, daya dari setiap baris dijumlahkan untuk mendapatkan total energi yang berpindah dalam sistem, memberikan gambaran menyeluruh tentang proses perpindahan panas yang terjadi.
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import html
# 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])
# Data temperatur (K) untuk setiap dataset
data = {
'J2': [303, 310, 320, 330, 340, 350, 360, 370, 353, 303],
'J3': [303, 312, 322, 332, 342, 352, 362, 372, 353, 303],
'J4': [303, 314, 324, 334, 344, 354, 364, 374, 353, 303],
'J5': [303, 316, 326, 336, 346, 356, 366, 376, 353, 303],
'J6': [303, 318, 328, 338, 348, 358, 368, 378, 353, 303],
'J7': [303, 320, 330, 340, 350, 360, 370, 380, 353, 303],
'J8': [303, 322, 332, 342, 352, 362, 372, 382, 353, 303],
'J9': [303, 324, 334, 344, 354, 364, 374, 384, 353, 303],
'J10': [303, 326, 336, 346, 356, 366, 376, 386, 353, 303]
}
# Koefisien konduktivitas termal (W/m·K)
k = 16.2
# Fungsi kuadratik untuk fitting
def quadratic(x, a, b, c):
return a * x**2 + b * x + c
# Fungsi untuk menghitung turunan dT/dx
def dT_dx(x, a, b):
return 2 * a * x + b
# Fungsi untuk menghitung heat flux q_x = -k * dT/dx
def heat_flux(x, a, b):
return -k * dT_dx(x, a, b)
# Membuat plot
plt.figure(figsize=(12, 8))
# Variabel untuk menyimpan hasil fitting dan perhitungan
fitting_results = ""
total_power = 0
# Plot data asli dan kurva fitting untuk J2 hingga J10
for label, y in data.items():
try:
# Lakukan fitting
params, _ = curve_fit(quadratic, x, y)
a, b, c = params
# 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, 0.9, 100)
y_fit = quadratic(x_fit, *params)
plt.plot(x_fit, y_fit, label=f'{label} Fit', linestyle='--', alpha=0.8)
# Menampilkan persamaan fitting dalam plot
eq = f'{a:.2f}x² + {b:.2f}x + {c:.2f}'
plt.text(0.02, y_fit[-1], eq, fontsize=8, verticalalignment='bottom')
# Tambahkan hasil fitting ke string HTML
fitting_results += f"<h3>{label}</h3><p>Persamaan Temperatur: T(x) = {a:.2f}x² + {b:.2f}x + {c:.2f}</p>\n"
# Hitung heat flux (q_x = -k * dT/dx)
q_x = heat_flux(x_fit, a, b)
fitting_results += f"<p>Persamaan Heat Flux: q_x = {-k * 2 * a:.2f}x + {-k * b:.2f} W/m²</p>\n"
# Hitung daya dengan integral (P = ∫ q_x dx dari 0 hingga 0.9)
power = np.trapz(q_x, x_fit)
total_power += power
fitting_results += f"<p>Daya: {power:.2f} W</p>\n"
print(f"{label}:")
print(f" Persamaan Temperatur: T(x) = {a:.2f}x² + {b:.2f}x + {c:.2f}")
print(f" Persamaan Heat Flux: q_x = {-k * 2 * a:.2f}x + {-k * b:.2f} W/m²")
print(f" Daya: {power:.2f} W")
except RuntimeError as e:
print(f"Error fitting {label}: {e}")
continue
# Menambahkan label dan legenda pada plot
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()
# Cetak total daya
print(f"\nTotal Daya Sistem: {total_power:.2f} W")
fitting_results += f"<h2>Total Daya Sistem: {total_power:.2f} W</h2>"
# Simpan hasil fitting dan perhitungan ke file HTML
html_content = f"""
<!DOCTYPE html>
<html>
<head>
<title>Curve Fitting and Heat Flux Results</title>
<style>
body {{ font-family: Arial, sans-serif; margin: 20px; }}
h3 {{ color: #2c3e50; }}
h2 {{ color: #e74c3c; }}
p {{ margin: 5px 0; }}
</style>
</head>
<body>
<h1>Hasil Curve Fitting dan Perhitungan Heat Flux</h1>
<p>Data diambil dari J2 hingga J10 untuk posisi x (I2 hingga I10).</p>
{fitting_results}
</body>
</html>
"""
with open("curve_fitting_and_heat_flux_results.html", "w", encoding='utf-8') as f:
f.write(html_content)
print("File 'curve_fitting_and_heat_flux_results.html' telah disimpan.")
One response to “Studi Kasus Integrasi Numerik Menggunakan DAI5 Untuk Konduksi Panas Steady State 2D PART 2– Golda Meirstein (2306155395)”
blog ini terdiri dari beberapa part
1. part 1 (https://ccitonline.com/wp/2025/03/10/studi-kasus-integrasi-numerik-menggunakan-dai5-untuk-konduksi-panas-steady-state-2d-golda-meirstein-2306155395/)
2. part 2(https://ccitonline.com/wp/2025/03/10/2775/)
3. part 3 (https://ccitonline.com/wp/2025/03/10/studi-kasus-integrasi-numerik-menggunakan-dai5-untuk-konduksi-panas-steady-state-2d-part-3-golda-meirstein-2306155395/)
4. part 4 (https://ccitonline.com/wp/2025/03/10/studi-kasus-integrasi-numerik-menggunakan-dai5-untuk-konduksi-panas-steady-state-2d-part-4-golda-meirstein-2306155395/)