Metnum03-Jenizhar Adivianto

From ccitonlinewiki
Revision as of 23:39, 13 December 2020 by Jenizhar (talk | contribs)
Jump to: navigation, search

KELAS METODE NUMERIK 03

بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُ


BIODATA DIRI


Nama Saya Jenizhar Adivianto akrab di sapa Dio, seorang Mahasiswa Teknik Mesin, Fakultas Teknik Universitas Indonesia

Nama : Jenizhar Adivianto

NPM : 1806181810

Program Studi : S1 Teknik Mesin Pararel












Pertemuan 1 : 9 November 2020

Assalamualaikum Wr. Wb

Selamat Pagi/Siang/Sore/Malam Semuanya

Pada pertemuan kali ini yaitu pertemuan pertama mata kuliah metode numerik oleh Pak Dai. Pak Dai memakai sarana belajar yang ia miliki yaitu wiki Air.eng.ui.ac.id ini. Pertama-tama Pak Dai memulai pembelajaran dengan menekankan 4 hal yang menjadi indikator pembelajaran pada saat kuliah. Yang pertama yaitu konsep. Kita harus memahami prinsip dan konsep terlebih dahulu sehingga bisa lebih leluasa dan tahu saat kapan harus dipakai. Yang kedua, kita harus mengetahui penerapan dan aplikasi dari teori dan konsep yang sudah kita pelajari. Yang ketiga, yaitu kita harus tahu kapan dan mengapa teori atau konsep tersebut kita pakai untuk menyelesaikan suatu permaslahan. Yang keempat yaitu penilaian diri sendiri. Dengan menilai diri sendiri, kita dapat mengetahui progress pembelajaran kita dan hal keempat ini merupakan hal yang harus dilakukan agar dapat melakukan hal 1 - 3.

di akhir pertemuan, Pak Dai memberikan kami tugas yaitu untuk menulis di air mengenai ilmu apa saja yang sudah kita dapatkan pada waktu sebelum uts dengan pak Engkos. Materi yang sudah di tulis di air.eng dibuatkan video mengenai penjelasannya kemudian di upload ke youtube. Yang terakhir yaitu mempelajari software modellica yang sudah didownload.

1. Hal yang sudah dipelajari

Pertama-tama, kami mempelajari bagaimana metode numerik secara garis besar. kemudian pada chapter 5, kami belajar mengenai beberapa metode-metode yang dipakai untuk menyelesaikan persamaan. Yang pertama itu ada bracketing method yang berisi graphical method, bisection method, dan False position method. Kemudian metode berikutnya ada open method yang berisi Fixed-point iteration, Newton Raphson method, Secant method, dan Brent's method.

Pada Chapter berikutnya, kami mempelajari tentang regresi linear. Disini, regresi linear biasa digunakan untuk membuktikan teori-teori yang sudah ada dengan eksperimen. Dengan mengambil sampel yang bervariasi, kami dapat menghitung beberapa variabel seperti error dan lain-lain. Metode ini sering dilakukan pada saat praktikum atau pada saat analisa setelah pengambilan data.

Materi terakhir sebelum uts yang kami pelajari adalah interpolasi. Interpolasi linier merupakan salah satu metode yang digunakan untuk mengetahui nilai dari suatu interval dua buah titik yang terletak dalam satu garis lurus. ada beberapa jenis yaitu newton Divided difference, Langrange, Spline, dan multidimensional.

2. Link Video Youtube

Berikut merupakan link dari video hasil progress pembelajaran saya mengenai openmodelica:

https://youtu.be/Oaxobc5wd3Y

3. Hasil pembelajaran modellica

Untuk belajar modelica, pertama-tama saya membuka tutorial di youtube dengan link sebagai berikut : https://www.youtube.com/watch?v=SW5Eclf1tRs

Video tersebut berisi mengenai pengenalan modelica untuk pemula. Sebagian besar dari isi video tersebut masih menjelaskan tentang simbol-simbol, tools, interface, dan lain-lain. Pada libraries, terdapat berbagai macam tools yang dapat membantu kita dalam menggunakan modelica. Salah satunya adalah tools "modelica". di dalam tools tersebut, kita dapat menemukan banyak model-model yang dapat kita pakai nantinya seperti electrical, magnetic, mechanical, fluida, heat, dan lain -lain. dapat dilihat pada gambar di bawah ini

Libraries.jpg

Pada video tersebut, ia menggunakan contoh controlled temperature pada heat transfer. Kita bisa melihat blok diagram, plot pemrograman diagram tersebut, dan teks dokumen yang menjelaskan diagram tersebut. Selanjutnya, ada tools berupa simulation. Kita perlu check model untuk memastikan bahwa model bisa dipakai. perlu dipastikan bahwa equation dan variabel sama. Bila tidak, maka terjadi masalah singularity. Setelah check model, maka kita bisa mensimulasikan model tersebut. Setelah simulasi selesai, dapat dilihat grafik-grafik dan variabel dimana kita bisa memilih apa yang ingin kita lihat pada sisi variabelnya.

Berikutnya ada simulation setup dimana disitu kita bisa mengatur start time, stop time, interval, metode, dan lain-lain. Pada simulation setup juga terdapat translation page, simulation page, output, dan archived simulation.

Untuk Tutorial pembuatan model, saya membukan tutorial di youtube dengan link sebagai berikut : https://www.youtube.com/watch?v=esSMzMCFwbo

Video ini menjelaskan tentang bagaimana kita membuat model baru. Pada video tersebut, digunakan contoh nyata heat transfer dan dijadikan model matematika terlebih dahulu. Pertama-tama buka tab modeling di pojok bawah kiri. kemudian klik new file dan pilih "package". Setelah itu, klik kanan pada heat transfer di library dan pilih new open modelica course. Pilih connector dan tulid "heatport" dan pilih partial. Buka text view bar pada bagian atas


Kemudian buka dua heat class baru dengan jenis connector dan nama "heatport_a" dan "heatport_b". Kita menggunakan dua heatport karena pada heatflux keadaan ini ada inlet dan outlet. Pada kedua class tersebut, buka text view dan tulis:


Setelah membuat heatpart, kita membuat model matematika pada class baru yang akan di hitung. Yaitu ada pada wall, ambient(lingkungan), dan convection. Dan setelah ketiga model tersebut sudah ditulis, kita menggabungkan semua dengan model cooling. jangan lupa setiap selesai membuat model pada text view, di check terlebih dahulu dengan klik tombol centang hijau. Nanti akan saya tunjukkan di video bagaimana cara mengisinya. kalau sudah, bisa coba ke simulation dan di setup stop time = 10s. sisanya default saja. Kalau sudah, run simulation. Setelah selesai, dapat dilihat plort dari persamaan yang sudah dibuat dengan grafik.


Terima kasih, sekian rangkuman pada pertemuan pertama

Wassalamualaikum Wr.wb.


Pertemuan 2 : 16 November 2020

Assalamualaikum Wr. Wb

Selamat Pagi/Siang/Sore/Malam Semuanya

Pada kelas hari ini Pak DAI menanyakan bagaimana progress tugas kami mengenai progress pembelajaran open modelica itu sendiri. Kemudian Pak DAI memberikan kami 2 latihan soal yaitu:

1. buatlah modeling mengenai persamaan y = x + 10

Model add.jpg

Simul add.jpg

2. buatlah modeling mengenai mean (rata-rata)

Model mean.jpg

Simul mean.jpg

Setelah itu, Pak Dai memberikan tugas yaitu membua suatu program untuk menyelesaikan persamaan aljabar dengan gauss elimination.

Bentuk umum sistem persamaan linear mempunyai matriks yang bersesuaian yang disebut matriks yang diperluas atau augmented matrix. Pada mata kuliah sebelumnya kita mengerjakan persamaan dengan manual. Namun, pada mata kuliah metode numerik ini, kita dapat menyelesaikan persamaan-persamaan tersebut dengan program yang kita buat sendiri.

Saya menggunakan persamaan yaitu :

a + 2b + 3c + d = 9

3a + 5b + 7c + 4d = 12

4a + b + c + 3d = 23

6a + 7b + 5c + 2d = 0

saya menggunakan program koding pada open modelica pertama dengan membuat function terlebih dahulu yaitu sebagai berikut :

Fungsijeni.jpg

setelah itu, saya memasukkan data - data angka yang sudah diketahui kedalam class dan menyambungkan fungsi yang pertama ke dalam equation pada class seperti berikut :

Classjeni.jpg

Bila sudah, pastikan di cek terlebih dahulu pada centang hijau. Kemudian, apabila sudah benar, langsung kita simulasikan. Berikut merupakan hasil dari simulasi saya :

Plotjeni.jpg

Terima Kasih

Wassalamualaikum Wr. Wb

Pertemuan 3 : 23 November 2020

Assalamualaikum wr. wb.

Pada hari ini, pak Dai menghimbau kami untuk membaca materi mengenai permodelan pegas di buku metode numerik terlebih dahulu. Kemudian, pak Dai menjelaskan bagaimana cara mengaplikasikan metode numerik ke permodelan teknik.

Masalah teknik -> analisis teknik -> model matematis -> model numerik -> komputer -> solusi

Kemudian pak dai menjelaskan bagaimana permodelan aplikasi pegas. pertama dari masalah tekniknya yaitu merupakan sistem pegas. kemudian pada analisis teknik kita menentukan hal-hal apa saja yang kita ketahui dalam persamaan tersebut. kemudian dengan hukum hooke kita membuat model matematisnya. Selanjutnya dengan openmodelica kita dapat membuat model numerik dan perhitungan simulasi komputernya untuk mendapatkan solusi

Selanjutnya, pak Dai menghimbau kami untuk membuktikan matriks sistem pegas yang ada di buku dengan perhitungan pada openmodelica. Pada kali ini saya menggunakan fungsi gauss elimination karena hal yang ingin kita buktikan berbentuk matriks. kemudian saya menggunakan class untuk menginput data-data matriks yang sudah ada sehingga dapat kita hitung otomatis nantinya dengan program yang sudah kita buat. koding dari saya yaitu dapat dilihat dibawah ini:

MessageImage 1606115724656.jpg

Class pegas 2.jpg

Berikutnya merupakan grafik yang didapat dari hasil simulasi. Disini dapat dilihat bahwa grafik W disini sesuai dengan apa yang ada dibuku. Berarti perhitungan sudah sesuai dan x disini yang merupakan perpindahan berarti sudah terbukti benar. Grafik tersebut dapat dilihat dibawah ini

Class pegas 1.jpg

Terima kasih

Wassalamualaikum Wr. Wb.


Tugas 3 Metode Numerik

Assalamualaikum wr wb.

Pada kali ini saya akan mengerjakan tugas yang diberikan oleh pak Dai yaitu soal dibawah ini

Truss 0.png

Setelah membaca soal, kami dihimbau untuk membuat model matematika pada open modelica. kodingannya dapat dilihat dibawah ini :

1. Pencarian Defleksi

Defleksi.jpg

2. Pencarian Gaya Eksternal

Gaya eksternal bener.jpg

3. Pencarian Defleksi lokal

Defeleksi lokal.jpg

berikut merupakan hasil simulasi

1. Simulasi defleksi

Simul defleksi.jpg

2. Simulasi Gaya Eksternal

Simul gaya eksternal.jpg

3. Simulasi Defleksi lokal

Simul defleksi lokal.jpg

Sekian tugas saya

Terima kasih

Wassalamualaikum Wr. Wb.

Pertemuan 4 : 30 November 2020

Assalamualaikum wr. wb.

pada hari ini pertemuan dibuka oleh Pak Dai, beliau mengingatkan kembali kepada kita bahwa metnum ini merupakan gabungan antara matematika dan fisika dengan tugas yang diberikan minggu lalu. Kemudian, Pak Dai memberikan pertanyaan mengenai perbedaan statik dan dinamik. Perbedaannya adalah kalau statik bebannya tidak berubah terhadap waktu sedangkan berubah pada dinamik.

Kemudian pak Dai menghimbau kami untuk melihat kodingan dari saudara christoper untuk mempratikkannya dalam open modelica itu sendiri. kode - kode nya addalah sebagai berikut:

function GaussJordan

// Gauss-Jordan Algorithm // Transforms input matrix A into reduced row echelon form matrix B // Christopher S.E. November 2020

input Real [:,:] A; // An augmented matrix of m*n output Real [:,:] B; // Output matrix in reduced row echelon form

// Local variables protected Integer h = 1; // Initialize pivot row Integer k = 1; // Initialize pivot column Integer m = size(A,1); // Number of rows in matrix Integer n = size(A,2); // Number of columns in matrix Integer c = 0; // Index counter Integer max_row; // Row index of max number in pivot column

Real [:] pivot_column; // Vector containing pivot column data Real [:] pivot_row; // Vector containing backwards pivot row data Real [:,:] temp_array; // Stores matrix data when switching rows Real r; // Ratio value used for row operations

// Limit to handle floating point errors Real float_error = 10e-10;

algorithm

// Transfer input matrix A into variable B B := A;

while h <= m and k <= n loop

 // Dealing with floating point errors
 for i in 1:m loop
   for j in 1:n loop
     if abs(B[i,j]) <= float_error then
       B[i,j] := 0;
     end if;
   end for;
 end for;
 // Finding the pivot
   pivot_column := {B[i,h] for i in h:m};
 
   // Get position index of lowest row with greatest pivot number
   c:= h-1;
   for element in pivot_column loop
     c := c+1;
     if abs(element) == max(abs(pivot_column)) then
       max_row := c;
     end if;
   end for;
 
 // No pivot in this column, move on to next column
 if B[max_row, k] == 0 then
   k := k+1;
 
 else
   // Swap Rows h <-> max_row
   temp_array := B;
   temp_array[h] := B[max_row];
   temp_array[max_row] := B[h];
   B:= temp_array;
   
   // Divide pivot row by pivot number
   B[h] := B[h]/B[h,k];
   
   // For all rows below the pivot
   for i in (h+1):m loop
     
     // Store the ratio of the row to the pivot
     r := B[i,k] / B[h,k];
     
     // Set lower part of pivot column to zero
     B[i,k] := 0;
     
     // Operations on the remaining row elements
     for j in (k+1):n loop
         B[i,j] := B[i,j] - B[h,j] * r;
     end for;
     
   end for;
   
   // Move on to next pivot row and column
   h := h+1;
   k := k+1;
   
 end if;
 

end while;

// The matrix is now in row echelon form

// Set values of (h,k) to (m,n) h := m; k := n;

while h >= 1 and k >=1 loop

 // Dealing with floating point errors
 for i in 1:m loop
   for j in 1:n loop
     if abs(B[i,j]) <= float_error then
       B[i,j] := 0;
     end if;
   end for;
 end for;
 // Finding the pivot
   pivot_row := {B[h,i] for i in 1:k};
   
   // Get position index k of pivot
   c := 0;
   for element in pivot_row loop
     c := c+1;
     if element <> 0 then
       break;
     end if;
   end for;
   k := c;
 // No pivot in this row, move on to next row
 if B[h, k] == 0 then
   h := h-1;
   
 else
   
   // Perform row operations
   for i in 1:(h-1) loop
     r := B[i,k];
     B[i] := B[i] - B[h] * r;
   end for;
   
   // Move on to next pivot row and column
   h := h-1;
   k := k-1;
   
 end if;

end while;

// The matrix is now in reduced row echelon form

end GaussJordan;

Kuis Metode Numerik

Assalamualaikum wr. wb.

berikut merupakan flow chart dari kuis yang sudah diberikan yaitu example 4 dan example 8.

Example 4.jpg

Example 8.jpg

Pada soal nomor 4 kita pertama-tama harus menentukan node - node dari elemen yang ada pada soal dan juga sudut teta. Variabel node tersebut memiliki variabel i dan j. Diketahui juga dalam soal yaitu luas permukaan (A) = 10^-3m2 lalu modulus elastisitas (E) = 200GPa. Diketahui juga panjang batang yaitu 1m, 1,25m, dan 1,6m. Untuk melakukan simulasi di open modelica, kita harus menentukan matriks lokal terlebih dahulu yang nantinya ditambahkan untuk menentukan matriks global. Matriks global inilah yang nantinya kita bisa masukkan ke open modelica sebagai parameter real. Kode program dari open modellica yang saya buat adalah sebagai berikut:

Kodingkuis.jpg

Karena pada 1 dan 3 batang fix dan tidak ada gaya luar, maka matriks kita hilangkan baris dan kolom 1, 2, 5, 6. Setelah saya cek model sudah benar memiliki 24 equation dan 24 variabel

Grafik.jpg

setelah disimulasikan berikut diatas merupakan grafik dari U. Tahap selanjutnya adalah menghitung gaya reaksi dari trusses dengan rumus R=(K*U)-F. U sudah diketahui diperhitungan sebelumnya dan K F sudah diketahui pada soal. berikut merupakan kodingan dari perhitungan.

Kodinggaya.jpg

Grafikgaya.jpg

Berikut merupakan kodingan untuk perhitungan defleksi dan hasiil grafiknya

Kodingdefleksi.jpg

Grafik defleksi.jpg

Untuk Soal no 8

Terima kasih

Wassalamualaikum wr. wb.

Pertemuan 5 : 7 Desember 2020

Assalamualaikum wr.wb

pada hari ini kelas dibuka oleh pak Dai dengan memanggil saudara Edward Josua untuk membantu menjelaskan tahap-tahap dalam menyelesaikan soal-soal.

kemudian saudara ahmad menjelaskan mengenai flowchart yang ia buat sendiri walaupun belum mengaplikasikan hitung-hitungannnya, tetapi ahmad menjelaskan mengenai tahapan untuk menyelesaikan soal. Pertama solve stiffness, kemudian buat matrix global dari setiap elemen, selanjutnya adalah menyelesaikan matriks global dan mengimplementasikan boundary condition, kemudian didapatkan U.

Pada Stiffness matrix elemen, ada float error karena perhitungan dalam radian. untuk Stiffness matrix global kita menentukan matrix global. Selanjutnya kita mengeliminasi menggunakan gauss jordan matrix global tersebut dan kita harus juga menghilangkan floating error. Terakhir yaitu masukkan rumus R=(K*U)-F

Kemudian pak Dai memberikan kami tugas mengenai pembahasan oleh saudara Ahmad Muhammad Fahmi tentang kodingan yang dibuat olehnya mengenai kuis nomer 4 dan 8. Untuk membantu pembelajaran kami, Fahmi memberikan video rekaman tutorial yang berisi diskusi pada link dibawah ini :

https://drive.google.com/file/d/1n0zvwmn-3G4DWYCSPD48-Xfrp9_kT3R0/view?usp=sharing

Pertama-tama, untuk mengerjakan nomer 4, Fahmi membuat beberapa function yang nanti akan digunakan dan 1 class untuk membuat penyelesaian atas soal yang diberikan. Pada class, Saudara ahmad memasukkan parameter REAL (inisiasi) yang berisi element, theta, A, E, L. Kemudian kita menginput node - node yang ada dengan memasukkan matriks dengan parameter integer. mengapa memakai integer? karena integer adalah bilangan bulat sedangkan kalau real bisa berbentuk desimal atau pecahan. Pada parameter integer kita memanggil matriks inisiasi pada kolom satu untuk di sesuaikan dengan node-node yang bersangkutan. Kemudian kita meng-input jumlah node yaitu n=4 dan Boundaries pada node. Boundaries pada node ini yaitu pada titik 1 dan 3 karena mereka merupakan tumpuan. Setelah itu, kita memasukkan load dengan menginput parameter real (2*n). Kita mengalikan n dengan 2 karena disini gaya ada 2 arah yaitu x dan y. Sesudah mengisi load, kita menginput equation dengan fungsi-fungsi yang sudah dibuat juga pada function oleh Fahmi.

Untuk pembahasan dari function, pertama-tama kita melihat terlebih dahulu dari function stiffnessmatrixelement. Disini kita menginput terlebih dahulu input yaitu matriks inisiasi (:,5) dan outputnya adalah matriks dari Ke yang tadi ada pada equation pada class. Kita bisa memasuki parameter tanpa harus menulis ulang pada function dengan memanggil parameter pada Class. Dengan menggunakan protected maka parameter dapat dipanggil. Parameter yang kita ambil untuk Ke adalah Theta, StiffTrig, Stifftrans, k_vec, dan Floating error