ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

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

Visualisasi Persebaran Daya pada Simulasi Heat Conduction pada plat 2D – Ghina Khairani -2306215274 – Metnum-03

Assalamualaikum Warahmatullahi Wabarakatuh,

Pada blog kali ini, saya Ghina Khairani dengan NPM 2306215274 dari kelas metnum 03 akan memberikan pembahasan mengenai tugas yang telah diberikan menggunakan Framwork DAI 5

  1. Deep Awareness of I

Saya menyadari bahwa saya seorang manusia yang minim pengetahuan, oleh karena itu sebagai mahasiswa saya berusaha belajar dan mencari tahu. Pada mata kuliah metode numerik saya menyadari betapa luasnya metode numerik yang dapat digunakan dalam sistem-sistem heat conduction seperti sistem pendingin, pembungan panas, penukaran panas, dan lainnya. Dengan luasnya cakupan tersebut saya merasa masih belum banyak memahami dan menguasai nya.

  1. Intention

Saya berusaha memahami bahwa tugas ini bukan hanya tentang angka dan grafik saja tetapi mengenai pemahaman mendalam mengenai materi ini dan tentang memberikan solusi yang nanti nya dapat bermanfaat. Serta mengenai keinginan belajar saya untuk benar-benar mendalami setiap proses tahapan yang dilakukan sehingga nanti nya bisa digunakan untuk memodifikasi seperti membuat model persamaan yang fleksibel sehingga tidak harus selalu menggunakan simulasi

  1. Initial Thinking

Pada tahap ini saya berusaha memahami arahan tugas yang diberikan oleh prof DAI. Selain itu bagaimana saya menggunakan dan memaksimalkan simulasi software CFDSOF yang telah dipelajari dari beberapa pekan lalu. Kemudian memahami dasar-dasar apa saja yang perlu dipelajari, mulai dari mengingat kembali proses metode numerik untuk mendapatkan curve fitting hingga menggunakan hukum fourier dan konduksi untuk mencari fluk panas serta daya. Saya juga memerhatikan pola khas yang terdapat pada distrubusi panas sehingga bisa menemukan pendekatan mana yang paling cocok untuk memodelkan pola tersebut dengan menggunakan polinomial kuadrat untuk memodelkan hasil persebaran temperatur.

  1. Idealization

Setelah memahami data dan dasar yang ada, saya dapat melanjutkannya ke dalam pembentukan persamaan ataupun model. Model dapat disesuaikan dengan Y berupa J-2 hingga J-10. dengan data tersebut dapat dibuat kembali model persamaan yang fleksibel dengan variabel x, J, serta temperatur batas. Kemudian beralih ke menghitung daya, yang mana distribusi daya ini menggunakan distribusi Gaussian di plat 2D 12×12.

  1. Instruction Set

Menggunakan arahan, dasar, dan pola yang telah diketahui saya melanjutkannya ke tahap eksekusi model tersebut yaitu menjalankan rencana berdasarkan model yang telah dibuat. Yang mana lengkapnya akan diberitahukan dibawah.

Perhitungan Daya & Persebaran Daya dari Simulasi Heat Conduction 2D yang telah dilakukan

  1. Curve fitting dengan data dari plot xy dengan fungsi sumbu Y temperatur (J2 – J10)

Berikut adalah persamaan temperature yang di dapatkan pada setiap sumbu Y = J-2 hingga J-10

Berikut adalah model persamaan temperatur relatif menggunakan data simulasi yang telah di dapatkan, sehingga dapat mengetahui hasil temperatur apabila temperatur batasan diubah

  1. Persamaan Flux panas

Menggunakan Hukum Fourier untuk menurunkan flux panas dari distribusi temperature yang telah dilakukan dengan meng integralkan persamaan flux panas atas luas surface area

  1. Daya dan pesebarannya

Sekian dari saya, mohon maaf apabila terdapat kesalahan dalam proses maupun perhitungan karena saya juga masih belajar dan berusaha untuk memahami dan memperbaiki kesalahan yan terjadi.

Wassalamualaikum Warahmatullahi Wabarakatuh

Berikut adalah beberapa code yang digunakan

Temperature Distribution (J=2 to J=10)

<script>
    // Original data for J=2 to J=10
    const data = {
        2: [[0.0,303],[0.1,337.778],[0.2,351.284],[0.3,357.243],[0.4,359.911],[0.5,360.687],[0.6,359.911],[0.7,357.243],[0.8,351.284],[0.9,337.778],[1.0,303]],
        3: [[0.0,303],[0.1,323.828],[0.2,337.116],[0.3,344.778],[0.4,348.713],[0.5,349.926],[0.6,348.713],[0.7,344.778],[0.8,337.116],[0.9,323.828],[1.0,303]],
        4: [[0.0,303],[0.1,317.419],[0.2,328.575],[0.3,336.038],[0.4,340.24],[0.5,341.59],[0.6,340.24],[0.7,336.038],[0.8,328.575],[0.9,317.419],[1.0,303]],
        5: [[0.0,303],[0.1,314.273],[0.2,323.728],[0.3,330.561],[0.4,334.617],[0.5,335.955],[0.6,334.617],[0.7,330.561],[0.8,323.728],[0.9,314.273],[1.0,303]],
        6: [[0.0,303],[0.1,312.945],[0.2,321.503],[0.3,327.861],[0.4,331.713],[0.5,332.997],[0.6,331.713],[0.7,327.861],[0.8,321.503],[0.9,312.945],[1.0,303]],
        7: [[0.0,303],[0.1,313.006],[0.2,321.477],[0.3,327.668],[0.4,331.377],[0.5,332.607],[0.6,331.378],[0.7,327.668],[0.8,321.477],[0.9,313.006],[1.0,303]],
        8: [[0.0,303],[0.1,314.603],[0.2,323.73],[0.3,329.958],[0.4,333.522],[0.5,334.678],[0.6,333.522],[0.7,329.958],[0.8,323.73],[0.9,314.603],[1.0,303]],
        9: [[0.0,303],[0.1,318.676],[0.2,328.881],[0.3,334.911],[0.4,338.075],[0.5,339.062],[0.6,338.075],[0.7,334.911],[0.8,328.881],[0.9,318.676],[1.0,303]],
        10: [[0.0,303],[0.1,328.221],[0.2,338.208],[0.3,342.732],[0.4,344.806],[0.5,345.419],[0.6,344.806],[0.7,342.732],[0.8,338.208],[0.9,328.221],[1.0,303]]
    };

    // Overall equation: T(x, J, Tb) = [3.8796(J-2)^2 - 11.91(J-2) - 346.54](x^2 - x) + Tb
    function getTemperature(x, J, Tb) {
        const a = 3.8796 * Math.pow(J - 2, 2) - 11.91 * (J - 2) - 346.54;
        return a * (x * x - x) + Tb;
    }

    // Colors for each J-position
    const colors = ['#FF6384', '#36A2EB', '#FFCE56', '#4BC0C0', '#9966FF', '#FF9F40', '#C9CBCF', '#7BCB7B', '#FF5733'];
    const jPositions = [2, 3, 4, 5, 6, 7, 8, 9, 10];
    const Tb = 303; // Boundary temperature from original data

    // Prepare datasets
    const datasets = jPositions.map((j, index) => {
        // Original data points
        const originalData = data[j].map(([x, t]) => ({ x, y: t }));

        // Fitted curve (100 points for smoothness)
        const fittedData = Array(101).fill(0).map((_, i) => {
            const x = i / 100;
            return { x, y: getTemperature(x, j, Tb) };
        });

        return [
            {
                label: `T Original (J=${j})`,
                data: originalData,
                backgroundColor: colors[index],
                borderColor: colors[index],
                showLine: false,
                pointRadius: 5
            },
            {
                label: `T Fitted (J=${j})`,
                data: fittedData,
                borderColor: colors[index],
                borderWidth: 2,
                fill: false,
                showLine: true,
                pointRadius: 0
            }
        ];
    }).flat();

    // Create the chart
    const ctx = document.getElementById('overallChart').getContext('2d');
    new Chart(ctx, {
        type: 'scatter',
        data: {
            datasets: datasets
        },
        options: {
            responsive: true,
            scales: {
                x: {
                    title: { display: true, text: 'Position (m)' },
                    min: 0,
                    max: 1
                },
                y: {
                    title: { display: true, text: 'Temperature (K)' },
                    suggestedMin: 300,
                    suggestedMax: 360
                }
            },
            plugins: {
                title: {
                    display: true,
                    text: 'Overall Curve Fitting: T(x, J) = [3.8796(J-2)ยฒ - 11.91(J-2) - 346.54](xยฒ - x) + 303'
                },
                legend: {
                    position: 'top'
                }
            }
        }
    });
</script>

ALGORITHM CurveFittingAndPowerCalculation

// Langkah 1: Input Data
BACA data_temperatur[J=2 TO 10][x=0 TO 1]
SET Tb = 303 // Temperatur batas awal (K)

// Langkah 2: Fitting Kurva untuk Setiap J
UNTUK setiap J dari 2 hingga 10 LAKUKAN
    FIT polynomial_kuadrat(x) ke data_temperatur[J][x]
    // Misal: T(x) = a(J)(x^2 - x) + Tb
    HITUNG a(J) menggunakan regresi kuadrat
AKHIR UNTUK

// Langkah 3: Buat Persamaan Umum
FIT fungsi a(J) ke polinomial berdasarkan J
// Misal: a(J) = p(J-2)^2 + q(J-2) + r
TENTUKAN koefisien p, q, r dengan regresi

// Langkah 4: Konversi ke Fluks Panas
SET k = konduktivitas_termal (misal 1 W/mยทK)
UNTUK setiap J dari 2 hingga 10 LAKUKAN
    HITUNG gradien_T = dT/dx = a(J)(2x - 1)
    HITUNG fluks_q(x, J) = -k * gradien_T
AKHIR UNTUK

// Langkah 5: Hitung Daya
UNTUK setiap J dari 2 hingga 10 LAKUKAN
    SET P_J = |q(x=0, J)| * lebar_segmen * tebal_plat
    // Atau integrasi numerik jika diperlukan
AKHIR UNTUK

// Langkah 6: Visualisasi
BUAT matriks_2D[120x120] berdasarkan P_J dengan distribusi Gaussian
GUNAKAN Plotly untuk membuat heatmap
TAMBAHKAN tabel fluks batas
TAMPILKAN hasil


Leave a Reply

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