ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

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

Pendekatan Numerik dan AI dalam Analisis Distribusi Energi Panas pada Sistem 2D – Arbani Iqbal Quinn 2306155331 (Metode Numerik 01)

Bismillahirrohmaanirrohiiim, Assalamualaikum warahmatullahi wabarakatuh.

Deep Awareness of I
Tugas analisis konduksi panas ini mengingatkan saya pada kejadian yang terjadi karena adanya fisika dan juga karena adanya kondisi alam yang teratur dan punya arti yang begitu dalam yang diciptakan oleh Allah SWT karena menurut hukum-hukum fisika yang mengatur perpindahan panas sebenarnya mencerminkan bagaimana alam menjaga keseimbangannya. Sebagai mahasiswa teknik mesin di Universitas Indonesia, kita harus sadar bahwa ada kemungkinan prasangka dalam memahami dan menganalisis data. Karena itu, pendekatan yang digunakan harus objektif, transparan, dan bebas dari manipulasi. Selain itu, etika akademik juga penting agar hasil penelitian tetap valid dan bisa dipercaya. Analisis konduksi panas ini tidak hanya untuk memahami teori perpindahan panas, tapi juga bagaimana penerapannya bisa bermanfaat bagi industri dan kehidupan sehari-hari. Dengan begitu, ilmu yang kita pelajari tidak hanya berhenti di teori, tapi bisa membantu menyelesaikan masalah di dunia kerja maupun kehidupan sehari hari dan kita juga harus mempertimbangkan nilai moral dan dampak sosial dari penelitian yang dilakukan.

Intention
Analisis dari tugas ini memiliki tujuan bagi saya sebagai mahasiswa bahwa pentingnya memahami bagaimana alur pendistribusian temperatur, aliran panas (heat flux), dan perhitungan daya bekerja berdasarkan hasil simulasi konduksi panas 2D. Dalam bidang teknik khususnya teknik mesin, mengembangkan sistem yang lebih efisien merupakan salah satu pembelajaran yang penting dari perpindahan panas, misalnya pada sistem pendingin atau pemanas dalam industri manufaktur. Selain memiliki nilai nilai akademis, tugas analisis ini juga memiliki manfaat yang mempercepat pekerjaan karena menggunakan software CFDSOF dan juga AI. Salah satu hal yang menjadi perhatian adalah faktor keberlanjutan, yaitu bagaimana sistem perpindahan panas dapat dirancang agar lebih hemat energi dan ramah lingkungan. Dengan begitu, solusi yang dihasilkan tidak hanya akurat secara teknis, tetapi juga memberikan dampak positif dalam jangka panjang.

Initial Thinking (about the problem)
Masalah utama dalam penelitian ini adalah bagaimana distribusi temperatur dalam simulasi dapat digunakan untuk menentukan distribusi aliran panas (heat flux) serta bagaimana perhitungan daya dilakukan dengan pendekatan integral. Masalah ini penting karena dalam banyak aplikasi teknik, seperti desain sistem pendingin atau pemanas, memahami bagaimana panas berpindah dalam suatu material sangat lah krusial. Oleh karena itu, penelitian ini mempertimbangkan berbagai faktor yang memengaruhi konduksi panas, seperti sifat fisik material, kondisi batas yang diterapkan dalam simulasi, serta akurasi metode numerik yang digunakan. Data yang diperoleh dari simulasi kemudian dianalisis menggunakan pendekatan matematis untuk mendapatkan persamaan yang merepresentasikan perubahan temperatur terhadap posisi. Dengan metode curve fitting, persamaan ini dapat dikembangkan lebih lanjut sehingga distribusi aliran panas bisa ditentukan dengan lebih akurat. Hal ini memungkinkan analisis yang lebih mendalam terhadap perpindahan panas, yang nantinya dapat diterapkan dalam berbagai sistem teknik.

Idealization
Dalam penelitian ini, beberapa asumsi digunakan untuk menyederhanakan analisis tanpa menghilangkan aspek realisme fisik. Salah satu asumsi utama adalah bahwa material dalam simulasi bersifat homogen dan isotropik, yang berarti konduktivitas termalnya konstan di seluruh domain. Asumsi ini memungkinkan perhitungan yang lebih sederhana tanpa mengurangi keakuratan hasil. Selain itu, kondisi batas dalam simulasi dianggap tetap selama proses berlangsung, sehingga perubahan temperatur dapat dianalisis dengan lebih fokus. Untuk meningkatkan akurasi model matematis yang diperoleh dari simulasi, metode kecerdasan buatan (AI) digunakan dalam menentukan persamaan temperatur berdasarkan data hasil simulasi. Pendekatan ini tidak hanya meningkatkan ketepatan perhitungan, tetapi juga menawarkan solusi yang lebih inovatif dan efisien. Meskipun menggunakan metode AI, penelitian ini tetap berpegang pada hukum Fourier dalam konduksi panas untuk memastikan bahwa pendekatan yang digunakan tidak menyimpang dari prinsip dasar fisika dan rekayasa. Selain menjaga keselarasan dengan tujuan awal penelitian, hasil yang diperoleh juga memiliki fleksibilitas dalam penerapannya. Model yang dihasilkan dapat digunakan untuk menganalisis berbagai skenario perpindahan panas dengan variasi kondisi batas, sehingga dapat diaplikasikan pada berbagai sistem teknik di dunia nyata. Dengan demikian, solusi yang dikembangkan dalam penelitian ini tetap sederhana, elegan, dan dapat diterapkan secara luas tanpa kehilangan akurasi atau relevansinya.

Instruction-Set
Proses analisis dilakukan secara sistematis agar semua aspek penting dapat diperhitungkan dengan baik. Langkah langkah yang harus dilakukan adalah sebagai berikut

1. Mengumpulkan data temperatur dari simulasi, khususnya dari titik J2 hingga J10:

  • Membuka aplikasi CFDSOF
  • Menginput cell yang akan dihitung yaitu 12×12
  • Mengatur model dengan menceklis hitung temperatur pada perpindahan panas
  • Mengatur panas pada tiap wallnya dengan suhu: w1=303K, CW2=16.2W/M-K, W3=373K, dan W4=353K
  • Mengatur residu dengan menambahkan 1 jendela plot
  • Mengiterasikan 1000 kali
  • Mengexsport hasil data dari J2 hingga J10 dengan format CSV

2. Analisis curve fitting (untuk mendapatkan persamaan temperatur)

  • File CSV tersebut diberikan ke Grok AI agar bisa dihasilkan kode python untuk dianalisis dengan teknik curve fitting dan memvisualkan grafik dan persamaan temperatur yang dapat merepresentasikan pola distribusinya secara akurat
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, "Arbani Iqbal Quinn\n2306155331",
         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

  • Setelah itu, persamaan temperatur ini dikonversi menjadi persamaan aliran panas (heat flux) dengan menggunakan hukum Fourier. Dengan adanya persamaan heat flux, dilakukan perhitungan daya menggunakan metode integral untuk mengetahui 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, "Arbani Iqbal Quinn\n2306155331", 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 memastikan keakuratan hasil, teknik curve fitting yang digunakan dikalibrasi secara cermat guna meminimalkan kesalahan dalam representasi data. Selain itu, hasil perhitungan dibandingkan dengan metode numerik lainnya untuk memastikan bahwa tidak terdapat deviasi yang signifikan. Jika ditemukan ketidaksesuaian antara model dan data simulasi, proses analisis akan diperbaiki dan diuji ulang hingga mendapatkan hasil yang valid. Pendekatan ini memastikan bahwa penelitian dilakukan secara iteratif sehingga solusi yang dihasilkan benar-benar optimal.

Kesimpulan
1. Pola Panas: Area tengah lebih panas, sisi atas kehilangan panas terbesar (-241.43 W), dan sisi bawah menyerap panas (+191.129 W).
2. Ketidakseimbangan Energi (-100.28 W): Seharusnya nol, kemungkinan akibat interpolasi atau kesalahan numerik.
3. Interpretasi: Konduksi panas dominan, gradien suhu tinggi memicu fluks panas sesuai hukum Fourier.
4. Saran: Validasi dengan metode numerik lain, eksperimen dengan k berbeda, atau tambahkan visualisasi vektor flux.