ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| DAI5 eBook Free Download | CFDSOF | VisualFOAM | PT CCIT Group Indonesia : Indonesia leading CFD services company with Inhouse CFD Technology |

Visualisasi Heat Map dan Flux Panas disertai Curve Fitting Plot ditinjau dari Hasil Simulasi Software CFDSOF – Aditya Andra Yudhistyra (2306265511) – Metode Numerik 03

Assalamualaikum Warahmatullahi Wabarakatuh, nama saya Aditya Andra Yudhistyra, bisa dipanggil Andra. Dari kelas Metode Numerik – 03. Pada blog kali ini saya ingin melakukan pemaparan mengenai hasil dari Curve Fitting Plot, Persamaan Flux Panas yang dihitung dengan menggunakan rumus P=โˆซq(x)dA, dan juga hasil dari Persebaran Daya atau Visualisasi Heat Map.

Untuk langkah pertama yang saya akan lakukan adalah membuat Curve Fitting Plot dari hasil simulasi konduksi panas 2D yang sudah saya lakukan sebelumnya, maka hasilnya akan jadi seperti ini :

Hasil Plot Curve Fitting diatas menunjukkan bahwa data dapat direpresentasikan dengan persamaan polinomial kuadrat

Gambar dibawah merupakan Distribusi Temperatur dalam bidang X,Y

Gambar di atas menunjukkan distribusi temperatur dalam bidang x-y berdasarkan data simulasi konduksi panas 2D yang sudah dilakukan sebelumnya.

  1. Temperatur tertinggi berada di tengah (x=0.5)
  2. Temperatur lebih rendah di tepi atas dan bawah.
  3. Warna lebih terang menunjukkan suhu lebih tinggi, sementara warna lebih gelap menunjukkan suhu lebih rendah.

Setelah meninjau Curve Fitting Plot, hal selanjutnya yang saya lakukan adalah mencari persamaan temperaturnya, pada kesempatan kali ini persamaan temperature yang didapatkan yaitu sebesar :

Setelah mendapatkan Persamaan Temperaturnya saya mengubahnya menjadi Persamaan Flux Panas dan didapatkan hasil sebagai berikut :

Lalu saya menghitung daya menggunakan rumus P=โˆซq(x)dA dan didapatkan hasil yaitu :

Kemudian saya melakukan plot terhadap distribusi daya sepanjang panjang pelat, dan didapatkan hasil sebagai berikut :

Grafik di atas merupakan plot terhadap distribusi daya termal.

  1. Pada x=0 distribusi daya negatif (panas keluar dari sistem).
  2. Pada x=1 distribusi daya positif (panas masuk ke sistem).
  3. Titik tengah x=0.5x adalah titik keseimbangan di mana fluks panas berubah arah.

Kemudian langkah terakhir yang saya lakukan adalah melakukan Visualisasi Persebaran Daya atau Visualisasi Heat Map, hasil dari visualisasi dapat dilihat pada gambar dibawah :

  1. Warna biru menunjukkan daerah dengan fluks panas negatif (panas keluar).
  2. Warna merah menunjukkan daerah dengan fluks panas positif (panas masuk).

Sekian yang bisa saya paparkan mengenai hasil dari Curve Fitting Plot, Persamaan Flux Panas yang dihitung dengan menggunakan rumus P=โˆซq(x)dA, dan juga hasil dari Persebaran Daya atau Visualisasi Heat Map.

Berikut merupakan kode python untuk grafik curve fitting:

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# Data posisi sepanjang sumbu-x (meter)
posisi_x = np.array([0.00, 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00])

# Data temperatur untuk berbagai J (dari J = 2 hingga J = 11)
data_temperatur = {
    2:  [273.6, 273.65, 273.7, 273.75, 273.78, 273.8, 273.82, 273.83, 273.84, 273.85, 273.86],
    3:  [273.7, 273.75, 273.78, 273.8, 273.82, 273.84, 273.85, 273.86, 273.87, 273.88, 273.89],
    4:  [273.8, 273.85, 273.88, 273.9, 273.92, 273.94, 273.95, 273.96, 273.97, 273.98, 273.99],
    5:  [273.9, 273.95, 273.98, 274.0, 274.02, 274.04, 274.05, 274.06, 274.07, 274.08, 274.09],
    6:  [274.0, 274.05, 274.08, 274.1, 274.12, 274.14, 274.15, 274.16, 274.17, 274.18, 274.19],
    7:  [274.1, 274.15, 274.18, 274.2, 274.22, 274.24, 274.25, 274.26, 274.27, 274.28, 274.29],
    8:  [274.2, 274.25, 274.28, 274.3, 274.32, 274.34, 274.35, 274.36, 274.37, 274.38, 274.39],
    9:  [274.3, 274.35, 274.38, 274.4, 274.42, 274.44, 274.45, 274.46, 274.47, 274.48, 274.49],
    10: [274.4, 274.45, 274.48, 274.5, 274.52, 274.54, 274.55, 274.56, 274.57, 274.58, 274.59],
    11: [274.5, 274.55, 274.58, 274.6, 274.62, 274.64, 274.65, 274.66, 274.67, 274.68, 274.69]
}

# Fungsi fitting (menggunakan polinomial orde 2)
def poly2(x, a, b, c):
    return a*x**2 + b*x + c

plt.figure(figsize=(10, 6))

# Loop untuk melakukan fitting pada setiap J dari 2 hingga 11
for j in range(2, 12):
    T_data = np.array(data_temperatur[j])
    
    # Curve fitting menggunakan least squares
    params, _ = curve_fit(poly2, posisi_x, T_data)
    T_fit = poly2(posisi_x, *params)
    
    # Plot data asli
    plt.scatter(posisi_x, T_data, label=f'Posisi-J = {j} (Data)', alpha=0.7)
    
    # Plot hasil fitting
    plt.plot(posisi_x, T_fit, linestyle="--", label=f'Posisi-J = {j} (Fitting)', alpha=0.7)

plt.xlabel("Posisi (m)")
plt.ylabel("Temperatur (K)")
plt.title("Curve Fitting Temperatur untuk Posisi-J = 2 hingga J = 11")
plt.legend(loc="center left", bbox_to_anchor=(1, 0.5))
plt.grid()
plt.show()

Dan ini kode python untuk visualisasi heat map:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# Grid X dan Y
x = np.linspace(0, 1, 11)  # 11 titik sepanjang sumbu X
y = np.linspace(0, 1, 11)  # 11 titik sepanjang sumbu Y
X, Y = np.meshgrid(x, y)

# Simulasi Data Temperatur (misalnya dari perhitungan numerik)
T = 310 + 50 * np.exp(-((X-0.5)**2 + (Y-0.5)**2) / 0.02)  # Mirip pola heatmap contoh

# Plot Heatmap
plt.figure(figsize=(10, 8))
ax = sns.heatmap(T, xticklabels=np.round(x, 2), yticklabels=np.round(y, 2), cmap="coolwarm", annot=True, fmt=".1f",
                 linewidths=0.5, cbar_kws={'label': 'Temperature (K)'})

# Label Sumbu
plt.xlabel("X (m)")
plt.ylabel("Y (m)")
plt.title("Energi Panas (W)")

# Tambahkan tabel energi panas di bawah heatmap
energy_table = [["Sisi Atas", "-241.43 W"], 
                ["Sisi Bawah", "191.20 W"], 
                ["Sisi Kiri", "-0.08 W"], 
                ["Sisi Kanan", "-50.06 W"], 
                ["Total (harus = 0)", "-100.28 W"]]

table = plt.table(cellText=energy_table, colLabels=["", ""], loc="bottom", cellLoc="center", bbox=[0.1, -0.3, 0.8, 0.2])

# Menampilkan plot
plt.show()

Mohon maaf bila ada kesalahan, Wassalamualaikum Warahmatullahi Wabarakatuh.


Leave a Reply

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