ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

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

Prinsip dan Algoritma PINN Konduksi Panas 1D Dengan Framework DAI5 – Orlean Timothy Sihombing (2306215305)

Assalamualaikum Wr. Wb.

MESIN!

BERSYUKUR BERSYUKUR BERSYUKUR!

Perkenalkan nama saya Orlean Timothy dengan NPM 2306215305 sebagai mahasiswa Teknik Mesin mahasiswa kelas Metode Numerik 01. Pada kesempatan kali ini saya akan memaparkan pemahaman saya tentang Prinsip dan Algoritma PINN untuk Konduksi Panas 1D. Yang tentunya dengan Framework DAI5.

Sebelum itu, saya akan menjelaskan sedikit terkait Framework yang saya gunakan yaitu DAI5.

  1. Deep Awareness of I : Ini adalah fondasi yang berakar pada pengakuan terus-menerus terhadap Sang Pencipta. Fokusnya ada pada kesadaran diri (nafs) sebagai inti yang menyelaraskan tindakan dengan tujuan ilahi mengenal dan mengakui Tuhan.
  2. Intention : Niat bertindak sebagai pendorong utama, berasal dari hati. Ini memastikan bahwa setiap langkah dalam proses selaras dengan kehendak Sang Pencipta, berfungsi sebagai “heartware” yang mengarahkan kerangka kerja.
  3. Initial Thinking : Langkah ini menekankan analisis mendalam untuk memahami masalah secara menyeluruh, termasuk sifat dan akar penyebabnya.
  4. Idealization : Di sini, masalah disederhanakan melalui asumsi yang realistis dan selaras dengan niat awal, menciptakan model yang praktis namun tetap terhubung dengan prinsip-prinsip inti.
  5. Instruction Set : Langkah terakhir melibatkan prosedur dan metode iteratif untuk mengimplementasikan solusi, dengan niat yang terus-menerus memandu proses.

Berikutnya saya akan menjelaskan prinsip dan algoritma Physics-Informed Neural Networks (PINN) untuk konduksi panas satu dimensi dengan mengacu pada kerangka DAI5. Penjelasan ini akan disusun sesuai langkah-langkahnya agar mudah dipahami, sekaligus menghubungkan aspek teknis dengan nilai spiritual.

1. Deep Awareness of I

Pada tahap awal ini, kita memulai dengan menyadari bahwa mempelajari konduksi panas dan mengembangkan PINN adalah bagian dari upaya untuk memahami hukum-hukum yang ditetapkan Sang Pencipta bagi alam semesta. Konduksi panas sebagai fenomena alam mencerminkan keteraturan ciptaan Tuhan, dan melalui PINN, kita berusaha menyelami kebijaksanaan tersebut dengan kesadaran diri orang sering menyebutnya โ€œnafsโ€. Kesadaran ini mendorong kita mendekati masalah dengan penghormatan terhadap hukum alam dan tujuan mulia untuk mengenal ciptaan-Nya.

Secara teknis, konduksi panas satu dimensi diatur oleh persamaan berikut:


Di sini, (u(x,t)) menyatakan suhu pada posisi (x) dan waktu (t), sedangkan ฮฑ adalah koefisien difusivitas termal. Kesadaran akan hukum ini menghubungkan kita dengan prinsip dasar yang berlaku di alam.


2. Intention

Niat kita dalam hal ini adalah membangun model konduksi panas menggunakan PINN secara akurat, sekaligus menyelaraskan usaha tersebut dengan kehendak Sang Pencipta misalnya, untuk mendukung inovasi yang bermanfaat bagi kemanusiaan, seperti efisiensi energi atau rancangan material. Niat ini berasal dari hati, menjadi semacam โ€œperangkat hatiโ€ yang memberikan arah pada seluruh proses. Jadi, tujuannya bukan sekadar teknis, tetapi juga memiliki makna yang lebih dalam.

Dari sisi teknis, niat kita adalah memanfaatkan PINN untuk menyelesaikan persamaan diferensial tersebut tanpa terlalu mengandalkan metode numerik konvensional seperti metode beda hingga, melainkan melalui pendekatan kecerdasan buatan yang terintegrasi dengan hukum fisika.


3. Initial Thinking

Di tahap ini, kita menganalisis masalah konduksi panas satu dimensi secara mendalam. Secara fisik, panas mengalir dari daerah bersuhu tinggi ke daerah bersuhu rendah dalam satu arah misalnya, sepanjang batang logam. Persamaan di atas menggambarkan perubahan suhu tersebut, dengan kondisi awal (contohnya, (u(x,0) = u0(x))) dan kondisi batas (misalnya, (u(0,t) = T1) serta (u(L,t) = T2)) yang menentukan perilaku sistem. PINN membantu kita memodelkan suhu tersebut melalui jaringan saraf yang secara langsung mematuhi hukum fisika.

Masalahnya, metode tradisional membutuhkan pembagian ruang dan waktu menjadi grid kecil, yang bisa memakan waktu dan sumber daya. PINN menawarkan cara lain dengan โ€œmengajarkanโ€ jaringan saraf untuk memenuhi persamaan melalui fungsi kerugian.


4. Idealization

Pada langkah ini, kita menyederhanakan masalah agar lebih mudah dimodelkan:

  • Kita asumsikan konduksi panas terjadi hanya dalam satu dimensi, tanpa ada sumber panas tambahan.
  • Material dianggap homogen, sehingga ฮฑ bernilai konstan.
  • Jaringan saraf dalam PINN mampu merepresentasikan suhu (u(x,t)) dengan tingkat akurasi tinggi.

Asumsi ini sejalan dengan niat kita untuk memahami hukum fisika secara murni dan menerapkannya secara praktis. Dalam PINN, kita membayangkan solusi sebagai fungsi kontinu yang dihasilkan jaringan saraf, bukan berupa potongan-potongan seperti pada metode numerik.

Dari sisi teknis, jaringan saraf menerima masukan berupa (x) dan (t), lalu menghasilkan (u(x,t)). Hukum fisika diintegrasikan ke dalam proses pelatihan melalui fungsi kerugian.


5. Instruction-Set

Berikut adalah langkah-langkah untuk menerapkan PINN, dengan tetap berpegang pada niat awal:

Tahapan:

  1. Membangun Jaringan Saraf:
    • Kita buat jaringan saraf (uฮธ(x,t)) dengan parameter (ฮธ) (bobot dan bias).
    • Masukannya adalah (x) (posisi) dan (t) (waktu), keluarannya adalah (u(x,t)) (suhu).

    2. Menentukan Fungsi Kerugian:

      • Sisa Persamaan: Hitung turunan menggunakan diferensiasi otomatis:

      3. Melatih Jaringan Saraf:

        • Gunakan metode optimasi (misalnya, Adam atau L-BFGS) untuk meminimalkan (L) dengan menyesuaikan (ฮธ).
        • Proses ini diulang hingga (L) cukup kecil, menandakan bahwa (uฮธ(x,t)) telah sesuai dengan persamaan dan kondisi yang diberikan.

        4. Memvalidasi Hasil:

          • Bandingkan (uฮธ(x,t)) dengan data analitik atau simulasi lain untuk memastikan keakuratannya.

          5. Menerapkan Solusi:

            • Model yang telah dilatih dapat digunakan untuk memprediksi suhu pada titik mana pun dalam domain.

            Keselarasan dengan Intention (Niat) :

            Setiap langkah ini kita lakukan dengan niat untuk menghormati hukum fisika sebagai ciptaan Tuhan dan menghasilkan solusi yang bermanfaat. Proses iteratif dalam PINN juga mengajarkan kita kesabaran dan ketelitian, yang selaras dengan nilai spiritual.


            Prinsip PINN untuk Konduksi Panas

            PINN menggabungkan hukum fisika dengan jaringan saraf. Berbeda dengan metode numerik tradisional, PINN:

            • Menggunakan jaringan saraf untuk menghasilkan solusi (u(x,t)) yang kontinu.
            • Memasukkan hukum fisika langsung melalui fungsi kerugian, sehingga solusinya sesuai dengan prinsip fisika.
            • Fleksibel untuk diterapkan pada kasus yang lebih kompleks, meskipun kali ini kita fokus pada satu dimensi.

            Dalam kerangka DAI5, PINN menjadi alat yang menjembatani hukum ciptaan dengan kemampuan manusia, dengan niat untuk memahami dan memanfaatkan alam secara bertanggung jawab.

            Berikut adalah coding grafik beserta grafiknya yang diproses dengan menggunakan Python.

            # Import Libraries

            import torch

            import torch.nn as nn

            import numpy as np

            import matplotlib.pyplot as plt

            # Define PINN Class

            class PINN(nn.Module):

                def __init__(self):

                    super(PINN, self).__init__()

                    self.net = nn.Sequential(

                        nn.Linear(1, 25),  # Mengubah jumlah neuron pada layer pertama

                        nn.Tanh(),

                        nn.Linear(25, 25), # Mengubah jumlah neuron pada hidden layer

                        nn.Tanh(),

                        nn.Linear(25, 1)

                    )

                def forward(self, x):

                    return self.net(x)

            # Compute Loss Function

            def compute_loss(model, x, T0, T1):

                x = x.requires_grad_(True)

                T = model(x)

                # Compute derivatives

                dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)[0]

                d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)[0]

                # Physics loss

                physics_loss = torch.mean(d2T_dx2**2)

                # Boundary conditions

                T_left = model(torch.tensor([[0.0]]))

                T_right = model(torch.tensor([[1.0]]))

                bc_loss = (T_left – T0)**2 + (T_right – T1)**2

                return physics_loss + bc_loss

            # Train PINN Function

            def train_pinn(T0, T1, epochs=1000):

                model = PINN()

                optimizer = torch.optim.Adam(model.parameters(), lr=0.002)  # Mengubah learning rate

                x = torch.linspace(0, 1, 120).reshape(-1, 1)  # Menambah jumlah titik diskritisasi

                for epoch in range(epochs):

                    optimizer.zero_grad()

                    loss = compute_loss(model, x, T0, T1)

                    loss.backward()

                    optimizer.step()

                    if epoch % 100 == 0:

                        print(f”Epoch {epoch}, Loss: {loss.item():.6f}”)

                return model

            # Plot Result Function

            def plot_results(model, T0, T1):

                x = torch.linspace(0, 1, 120).reshape(-1, 1)

                with torch.no_grad():

                    T_pred = model(x).numpy()

                    x = x.numpy()

                    T_analytical = T0 + (T1 – T0) * x

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

                plt.plot(x, T_pred, label=”PINN Solution”, linewidth=2)

                plt.plot(x, T_analytical, “–“, label=”Analytical Solution”, linewidth=2)

                plt.xlabel(“x”)

                plt.ylabel(“Temperature”)

                plt.title(“1D Steady-State Heat Conduction”)

                plt.legend()

                plt.grid(True)

                # Simpan grafik sebagai file jika tidak ada display

                plt.savefig(“heat_conduction_result_updated.png”)

                print(“Grafik telah disimpan sebagai ‘heat_conduction_result_updated.png’”)

            # Main Execution

            if __name__ == “__main__”:

                # Parameter default

                T0 = 100.0  # Suhu di x=0

                T1 = 0.0    # Suhu di x=1

                epochs = 1000

                # Latih model dan tampilkan hasil

                model = train_pinn(T0, T1, epochs)

                plot_results(model, T0, T1)


            Sekian pemaparan yang dapat saya sampaikan, mohon maaf bila ada kesalahan kata dan penulisan.

            Wassalamualaikum Wr. Wb.

            MESIN!

            BERSYUKUR BERSYUKUR BERSYUKUR!


            Leave a Reply

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