ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| AI.DAI5 | DAI5 eBook Free Download | CFDSOF | VisualFOAM | PT CCIT Group Indonesia|

Curve fitting dan visualisasi Heat Map flux panas dalam simulasi konduksi panas pada plat 2D-Rakha Janitra Adiwidya(2306247295)-Metode numerik 01

Assalamualaikum Warahmatullahi Wabarakatuh.

Pertama-tama, mari kita panjatkan puji syukur kehadirat Allah SWT atas nikmat yang dianugerahkan kepada kita semua sehingga diberi kenikmatan berupa kesehatan jasmani dan rohani untuk teman-teman dan juga Pak Dai.

Saya disini ingin menjelaskan tugas ke 3 dari metode numerik 10 maret 2025. Disini saya ingin memaparkan hasil curve fitting dan visualisasi heat map dari J2 sampai dengan J10 dan juga menghitung daya dari data cfdsof yang sudah saya lakukan 2 minggu lalu.

Menemukan curve fitting dan persamaan

Langkah pertama yang saya lakukan adalah menemukan curve fitting. Jadi, dari data yang saya sudah dapatkan saya meminta bantua AI untuk mencari hasil persamaan dan juga curve fitting pada data tersebut. Saya mendapatkan hasil sebagai berikut

Saya mendaptkan hasil grafik tersebut dengan menggunkan coding yang dibuta oleh bantuan AI

import numpy as np
import matplotlib.pyplot as plt

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y_J2 = np.array([300, 326.832, 337.506, 342.369, 344.611, 345.275, 344.611, 342.369, 337.506, 326.832, 300])
y_J3 = np.array([300, 316.822, 327.823, 334.358, 337.802, 338.878, 337.802, 334.358, 327.823, 316.822, 300])
y_J4 = np.array([300, 312.634, 322.605, 329.438, 333.360, 334.635, 333.360, 329.438, 322.605, 312.634, 300])
y_J5 = np.array([300, 311.108, 320.528, 327.427, 331.568, 332.942, 331.568, 327.427, 320.528, 311.108, 300])
y_J6 = np.array([300, 311.272, 320.970, 328.176, 332.542, 333.997, 332.542, 328.176, 320.970, 311.272, 300])
y_J7 = np.array([300, 313.009, 323.905, 331.766, 336.427, 337.963, 336.427, 331.766, 323.905, 313.009, 300])
y_J8 = np.array([300, 316.858, 329.874, 338.558, 343.437, 345.003, 343.437, 338.558, 329.874, 316.858, 300])
y_J9 = np.array([300, 324.550, 340.175, 349.157, 353.759, 355.174, 353.759, 349.157, 340.175, 324.550, 300])
y_J10 = np.array([300, 341.167, 357.120, 364.136, 367.268, 368.178, 367.268, 364.136, 357.120, 341.167, 300])

def fit_and_plot(x, y, label):
coefficients = np.polyfit(x, y, 2)
polynomial = np.poly1d(coefficients)
x_fit = np.linspace(0, 10, 100)
y_fit = polynomial(x_fit)

plt.scatter(x, y, label=f'Data {label}')
plt.plot(x_fit, y_fit, label=f'Fitted curve {label}')
print(f"Persamaan {label}: {polynomial}")

plt.figure(figsize=(12, 8))
fit_and_plot(x, y_J2, ‘J2’)
fit_and_plot(x, y_J3, ‘J3’)
fit_and_plot(x, y_J4, ‘J4’)
fit_and_plot(x, y_J5, ‘J5’)
fit_and_plot(x, y_J6, ‘J6’)
fit_and_plot(x, y_J7, ‘J7’)
fit_and_plot(x, y_J8, ‘J8’)
fit_and_plot(x, y_J9, ‘J9’)
fit_and_plot(x, y_J10, ‘J10’)

plt.xlabel(‘Posisi-J’)
plt.ylabel(‘Temperatur (K)’)
plt.legend()
plt.show()


Dari data tersebut juga mendaptkan hasil persamaan suhu sebagai berikut:

Persamaan J2: 2
-1.768 x^2 + 17.68 x + 305.1
Persamaan J3: 2
-1.556 x^2 + 15.56 x + 301.4
Persamaan J4: 2
-1.391 x^2 + 13.91 x + 300.1
Persamaan J5: 2
-1.322 x^2 + 13.22 x + 299.6
Persamaan J6: 2
-1.364 x^2 + 13.64 x + 299.5
Persamaan J7: 2
-1.525 x^2 + 15.25 x + 299.7
Persamaan J8: 2
-1.809 x^2 + 18.09 x + 300.4
Persamaan J9: 2
-2.209 x^2 + 22.09 x + 302.4
Persamaan J10: 2
-2.66 x^2 + 26.6 x + 30

Mengubah persamaan menjadi flux panas

setelah mendapatkan semua pada data yang sudah didaptkan. Selanjutnya, kita mencari flux panas dan juga persebaran daya.

Setalah saya mendpatkan persamaannya saya merata-ratakan hasil dari J2 sampai dengan J10. Sehingga mendapatkan hasil sebagai berikut:

T(avg) = โˆ’1.7338x^2+17.3267x+301.8111

Setelah itu, dari persamaan tersebut kita ubah menjadi persamaan fluks panas dengan menggunakan rumus:

q=โˆ’k dT/dx

Di mana:

  • qย adalah flux panas (W/mยฒ),
  • kadalah konduktivitas termal (diberikanย ),
  • dT/dx adalah gradien temperatur terhadap posisiย x.

Jadi, dari rata-rata persamaan tersebut kita turunkan dengan dx/dT sebagai berikut:

Setelah mendapatkan turunannya kita menghitung flux panas dengan menggunakan hukum fourier sebagai berikut:

Menghitung persebaran daya

Setelah mendapatkan flux panas. Kita menghitung persebaran daya sebagai berikut:

jadi hasil daya yang didapatkan adalah 1.8306 W

Mencari Heat map

setelah saya mendaptkan semua jawaban. Lalu, saya mencari heat map dengan bantuan AI untuk mendapatkan coding, sebagai berikut:

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

data = {
‘J2’: [300, 326.832, 337.506, 342.369, 344.611, 345.275, 344.611, 342.369, 337.506, 326.832, 300],
‘J3’: [300, 316.822, 327.823, 334.358, 337.802, 338.878, 337.802, 334.358, 327.823, 316.822, 300],
‘J4’: [300, 312.634, 322.605, 329.438, 333.360, 334.635, 333.360, 329.438, 322.605, 312.634, 300],
‘J5’: [300, 311.108, 320.528, 327.427, 331.568, 332.942, 331.568, 327.427, 320.528, 311.108, 300],
‘J6’: [300, 311.272, 320.970, 328.176, 332.542, 333.997, 332.542, 328.176, 320.970, 311.272, 300],
‘J7’: [300, 313.009, 323.905, 331.766, 336.427, 337.963, 336.427, 331.766, 323.905, 313.009, 300],
‘J8’: [300, 316.858, 329.874, 338.558, 343.437, 345.003, 343.437, 338.558, 329.874, 316.858, 300],
‘J9’: [300, 324.550, 340.175, 349.157, 353.759, 355.174, 353.759, 349.157, 340.175, 324.550, 300],
‘J10’: [300, 341.167, 357.120, 364.136, 367.268, 368.178, 367.268, 364.136, 357.120, 341.167, 300]
}

matrix = np.array([data[f’J{i}’] for i in range(2, 11)])

plt.figure(figsize=(10, 8))
sns.heatmap(matrix, annot=True, fmt=”.1f”, cmap=”viridis”, xticklabels=np.arange(0, 11), yticklabels=[f’J{i}’ for i in range(2, 11)])
plt.xlabel(‘Posisi-I’)
plt.ylabel(‘Posisi-J’)
plt.title(‘Heatmap Temperatur (K)’)
plt.show()

dari codingan tersebut saya mendaptkan hasil dari heat map

penjelasan detail tentang heatmap tersebut:

1.ย Sumbu dan Struktur Heatmap

  • Sumbu X (Horizontal): Menunjukkanย Posisi-I, yang berkisar dari 0 hingga 10. Ini mungkin merujuk pada lokasi atau titik pengukuran sepanjang suatu sumbu tertentu (misalnya, panjang suatu objek atau sistem).
  • Sumbu Y (Vertikal): Menunjukkanย Posisi-J, yang diwakili oleh labelย ฮฉฮฉย dengan nilai dari J2 hingga J10. Ini mungkin merujuk pada lapisan atau level yang berbeda dalam sistem.
  • Warna dan Intensitas: Warna pada heatmap menunjukkan intensitas temperatur. Semakin tinggi nilai temperatur, semakin terang atau lebih intens warnanya (tergantung pada colormap yang digunakan).

2. Data Temperatur

  • Setiap baris pada heatmap mewakili distribusi temperatur di sepanjang Posisi-I untuk setiap Posisi-J (dari J2 hingga J10).
  • Temperatur berkisar dariย 300.0 Kย (suhu minimum) hinggaย 368.2 Kย (suhu maksimum).
  • Pola umum yang terlihat adalah temperatur meningkat dari Posisi-I 0 hingga mencapai puncak di sekitar Posisi-I 5, kemudian menurun kembali ke 300.0 K di Posisi-I 10. Ini menunjukkan adanya distribusi temperatur yang simetris atau berbentuk lonceng.

3. Interpretasi Heatmap

  • Titik Tertinggi: Temperatur tertinggi (368.2 K) terjadi diย Posisi-J10ย padaย Posisi-I 5.
  • Titik Terendah: Temperatur terendah (300.0 K) terjadi di semua Posisi-J padaย Posisi-I 0ย danย Posisi-I 10.
  • Gradien Temperatur: Terlihat gradien temperatur yang halus dari Posisi-I 0 ke Posisi-I 5, dan kemudian menurun kembali ke Posisi-I 10. Ini menunjukkan adanya aliran panas atau distribusi energi yang terpusat di tengah sistem.

4. Pola Umum

  • Simetri: Distribusi temperatur simetris di sekitar Posisi-I 5, menunjukkan bahwa sistem mungkin memiliki sumber panas di tengah atau kondisi batas yang simetris.
  • Perbedaan Antar Posisi-J: Temperatur di Posisi-J yang lebih tinggi (misalnya, J10) secara umum lebih tinggi daripada di Posisi-J yang lebih rendah (misalnya, J2). Ini mungkin menunjukkan adanya variasi dalam properti material atau kondisi lingkungan di setiap lapisan.

Demikianlah pemaparan tugas 03 metode numerik kali ini yang dapat saya sampaikan, jika ada salah kata mohon maaf, akhirul kalam wallahu muwafiq ila iqwamittorriq, Assalamu’alaikum wr.wb.