Difference between revisions of "User:LuthfiShafwan"
(→Tugas 1) |
(→Tugas 1) |
||
Line 19: | Line 19: | ||
[https://drive.google.com/file/d/16igB5W7afo-zhgvOhsVQl6Hb307WD-rp/view?usp=sharing hasil diskusi dengan chatGPT] | [https://drive.google.com/file/d/16igB5W7afo-zhgvOhsVQl6Hb307WD-rp/view?usp=sharing hasil diskusi dengan chatGPT] | ||
+ | |||
+ | Berikut merupakan dokumentasi coding chatGPT | ||
+ | import numpy as np | ||
+ | import matplotlib.pyplot as plt | ||
+ | |||
+ | # Parameter Model | ||
+ | E = 210e9 # Modulus elastisitas dalam Pascal (Pa) | ||
+ | A = 0.01 # Luas penampang dalam meter persegi (m^2) | ||
+ | L = 1.0 # Panjang batang dalam meter (m) | ||
+ | F = 1000 # Gaya tarik dalam Newton (N) | ||
+ | num_elements = 10 # Jumlah elemen | ||
+ | node_count = num_elements + 1 # Jumlah node | ||
+ | |||
+ | # Panjang elemen | ||
+ | Le = L / num_elements | ||
+ | |||
+ | # Matriks kekakuan untuk setiap elemen | ||
+ | k_e = (E * A / Le) * np.array([[1, -1], [-1, 1]]) | ||
+ | |||
+ | # Matriks kekakuan global | ||
+ | K = np.zeros((node_count, node_count)) | ||
+ | |||
+ | # Rakitan matriks kekakuan global | ||
+ | for i in range(num_elements): | ||
+ | K[i:i+2, i:i+2] += k_e | ||
+ | |||
+ | # Vektor gaya | ||
+ | F_ext = np.zeros(node_count) | ||
+ | F_ext[-1] = F # Gaya diterapkan pada node terakhir | ||
+ | |||
+ | # Kondisi batas: Ujung kiri tetap | ||
+ | K = K[1:, 1:] # Menghapus baris dan kolom pertama (fixed node) | ||
+ | F_ext = F_ext[1:] # Menghapus gaya pada fixed node | ||
+ | |||
+ | # Menghitung perpindahan | ||
+ | u = np.linalg.solve(K, F_ext) | ||
+ | |||
+ | # Menambahkan perpindahan pada node tetap (nol) | ||
+ | u = np.insert(u, 0, 0) | ||
+ | |||
+ | # Hitung tegangan pada setiap elemen | ||
+ | stresses = [] | ||
+ | for i in range(num_elements): | ||
+ | strain = (u[i+1] - u[i]) / Le | ||
+ | stress = E * strain | ||
+ | stresses.append(stress) | ||
+ | |||
+ | # Plot perpindahan dan tegangan | ||
+ | x = np.linspace(0, L, node_count) | ||
+ | |||
+ | plt.figure(figsize=(10, 5)) | ||
+ | |||
+ | # Plot Perpindahan | ||
+ | plt.subplot(1, 2, 1) | ||
+ | plt.plot(x, u, marker='o') | ||
+ | plt.title("Perpindahan di sepanjang batang") | ||
+ | plt.xlabel("Panjang (m)") | ||
+ | plt.ylabel("Perpindahan (m)") | ||
+ | |||
+ | # Plot Tegangan | ||
+ | plt.subplot(1, 2, 2) | ||
+ | plt.plot(x[:-1] + Le/2, stresses, marker='x', color='red') | ||
+ | plt.title("Tegangan di sepanjang batang") | ||
+ | plt.xlabel("Panjang (m)") | ||
+ | plt.ylabel("Tegangan (Pa)") | ||
+ | |||
+ | plt.tight_layout() | ||
+ | plt.show() | ||
+ | |||
+ | Berdasarkan 'code' diatas grafik akhir yang menjadi output perhitungan tersebut tertera pada gambar dibawah |
Revision as of 21:59, 3 November 2024
Introduction
Nama saya muhammad luthfi shafwan, mahasiswa S2 Teknik Mesin peminatan Teknologi dan Sumber Daya Maritim angkatan 2024
Komputasi Teknik Pertemuan 1 (Pasca UTS) 29/10/2024
Pada pertemuan pertama ini, mahasiswa diperkenalkan dengan sebuah framework bernama DAI-5, yang dikembangkan oleh Dr. Ir. Ahmad Indra Siswantara. Framework ini didasari oleh konsep conscious thinking atau berpikir secara sadar. Landasan dari framework ini adalah falsafah yang beliau utarakan, yaitu "I'm my consciousness," yang menegaskan pentingnya kesadaran dalam setiap tindakan. Sebagai inisiator, beliau merumuskan framework ini menjadi empat tahapan penting:
(1) Intention, Menentukan niat/ide awal
(2) Initial Thinking, Mengeksplorasi dari ide yang kita inisiasikan sebelumnya
(3) Idealization, Penarikan solusi Dari ide tersebut kemudian mensimplifikasi sesuatu agar lebih ideal
(4) Instruction Set, Solusi ideal yang menjadi output pada tahapan sebelumnya, dikonversi menjadi sebuah tahapan sistematis Tahapan-tahapan ini merepresentasikan pentingnya pendekatan sistematis dalam berbagai aspek kehidupan.
Tugas 1
Pada pertemuan kali ini, Pak Dai memberikan arahan kepada mahasiswa untuk melakukan diskusi mengenai FEM (Finite Element Method) satu dimensi melalui platform ChatGPT. Diskusi ini akan mencakup beberapa pertanyaan yang sesuai dengan arahan beliau, dengan output yang diharapkan dapat menghubungkan konsep FEM satu dimensi dengan langkah-langkah yang terdapat dalam kerangka DAI-5.
Berikut merupakan dokumentasi coding chatGPT import numpy as np import matplotlib.pyplot as plt
- Parameter Model
E = 210e9 # Modulus elastisitas dalam Pascal (Pa) A = 0.01 # Luas penampang dalam meter persegi (m^2) L = 1.0 # Panjang batang dalam meter (m) F = 1000 # Gaya tarik dalam Newton (N) num_elements = 10 # Jumlah elemen node_count = num_elements + 1 # Jumlah node
- Panjang elemen
Le = L / num_elements
- Matriks kekakuan untuk setiap elemen
k_e = (E * A / Le) * np.array([[1, -1], [-1, 1]])
- Matriks kekakuan global
K = np.zeros((node_count, node_count))
- Rakitan matriks kekakuan global
for i in range(num_elements):
K[i:i+2, i:i+2] += k_e
- Vektor gaya
F_ext = np.zeros(node_count) F_ext[-1] = F # Gaya diterapkan pada node terakhir
- Kondisi batas: Ujung kiri tetap
K = K[1:, 1:] # Menghapus baris dan kolom pertama (fixed node) F_ext = F_ext[1:] # Menghapus gaya pada fixed node
- Menghitung perpindahan
u = np.linalg.solve(K, F_ext)
- Menambahkan perpindahan pada node tetap (nol)
u = np.insert(u, 0, 0)
- Hitung tegangan pada setiap elemen
stresses = [] for i in range(num_elements):
strain = (u[i+1] - u[i]) / Le stress = E * strain stresses.append(stress)
- Plot perpindahan dan tegangan
x = np.linspace(0, L, node_count)
plt.figure(figsize=(10, 5))
- Plot Perpindahan
plt.subplot(1, 2, 1) plt.plot(x, u, marker='o') plt.title("Perpindahan di sepanjang batang") plt.xlabel("Panjang (m)") plt.ylabel("Perpindahan (m)")
- Plot Tegangan
plt.subplot(1, 2, 2) plt.plot(x[:-1] + Le/2, stresses, marker='x', color='red') plt.title("Tegangan di sepanjang batang") plt.xlabel("Panjang (m)") plt.ylabel("Tegangan (Pa)")
plt.tight_layout() plt.show()
Berdasarkan 'code' diatas grafik akhir yang menjadi output perhitungan tersebut tertera pada gambar dibawah