Difference between revisions of "Richardo Ariyanto"

From ccitonlinewiki
Jump to: navigation, search
m (Tugas 4 (work in progress))
(UAS 13 Januari 2021)
 
(69 intermediate revisions by the same user not shown)
Line 504: Line 504:
 
**[[File:RichardoWeek42.png|1000px|center]]
 
**[[File:RichardoWeek42.png|1000px|center]]
  
===Tugas 4 (work in progress)===
+
===Tugas 4===
 
[[File:Soalnomor8.jpeg|800px|center]]
 
[[File:Soalnomor8.jpeg|800px|center]]
 
Dalam soal ini diketahui bahwa:
 
Dalam soal ini diketahui bahwa:
Line 536: Line 536:
 
Kemudian saya akan membuat fungsi untuk mencari reaction.
 
Kemudian saya akan membuat fungsi untuk mencari reaction.
 
[[File:RichardoWeek58.png|900px|center]]
 
[[File:RichardoWeek58.png|900px|center]]
 +
Lalu saya akan membuat kelas "Class" utama untuk mengoperasikan fungsi-fungsi yang ada
 +
[[File:RichardoWeek59.png|900px|center]]
 +
[[File:RichardoWeek60.png|900px|center]]
 +
Kemudian saya cek terlebih dahulu apakah ada error dalam kode yang telah dibuat, dan apabila hasilnya tidak ada error maka kode bisa disimulasikan.
 +
[[File:RichardoWeek61.png|900px|center]]
 +
Lalu kita mendapatkan nilai R dan U
 +
[[File:RichardoWeek62.png|400px|center]]
  
 +
Video Pembahasan Singkat
 +
<youtube width="200" height="100" align="center">emWoHhFAi0Y</youtube>
  
 +
==Catatan Kuliah 16 Desember 2020==
 +
===Aplikasi Metode Numerik dalam Kasus Optimisasi===
 +
Dalam perkuliahan kali ini, diisi oleh pemberian materi oleh Ibu Chandra. Adapun materi yang diberikan adalah optimasi dengan menggunakan metode Bracket. Berikut adalah percobaan yang saya lakukan dengan berdasarkan video materi yang sebelumnya telah diberikan oleh Ibu Chandra.
 +
*Berikut adalah model yang akan kita operasikan
 +
[[File:RichardoOpt1.png|900px|center]]
 +
[[File:RichardoOpt2.png|900px|center]]
 +
*dan berikut adalah fungsi objeknya
 +
[[File:RichardoOpt3.png|900px|center]]
 +
*setelah di cek dan tidak ada error, maka kita dapat melakukan simulate untuk mendapatkan hasilnya
 +
[[File:RichardoOpt4.png|400px|center]]
  
 +
==Muhasabah Mandiri==
 +
Dalam perkuliahan kali ini, Pak Dai meminta mahasiswa untuk melakukan muhasabah secara mandiri. Adapun parameter yang digunakan untuk mengukur adalah level pemahaman pribadi untuk algoritma dan penerapannya (encoding modelica) dalam aplikasi metoda numerik di kasus statika struktur statis Truss 2D (bidang) dan 3D (Space).
 +
Saya mengakui bahwa saya tidak memiliki ''background'' pemrograman komputer sama sekali, bahkan salah satu alasan saya untuk memilih jurusan teknik mesin adalah karena saya menghindari pemrograman komputer. Saya benar-benar baru mempelajari pemrograman komputer di mata kuliah Metode Numerik.
 +
Sejak awal mempelajari metode numerik saya selalu berusaha untuk mengikuti kelas dan aktif di dalamnya, serta memperdalam pemahaman saya mengenai materi-materi yang ada, walaupun jujur saya mengalami kesulitan karena saya belum mengambil mata kuliah matematika teknik.
 +
Dalam mempelajari modelica, pada pertemuan awal saya dapat mengikuti tentang penerapan modelica untuk penyelesaian materi metode numerik sebelumnya, seperti interpolasi dalam tugas saya, memanggil fungsi, dan yang sejenisnya.
 +
Namun saat mempelajari penerapan dalam materi ''trusses'' saya mengalami kesulitan karena saya tidak begitu memahami cara melakukan ''encoding'' ke bahasa modelicanya. Saya juga mengalami kesulitan untuk membuat codingnya karena bingung mengenai parameter-parameter apa yang harus ditambahkan atau diperlukan, dan hal-hal yang sejenis.
  
 +
==TUGAS BESAR METODE NUMERIK==
 +
Tema : Aplikasi Metoda Numerik dalam Optimasi Desain Struktur Rangka Sederhana
 +
===Soal===
 +
Berikut adalah kasus yang diberikan untuk optimasi
 +
[[File:RichardoSoaltubes.jpeg|800px|center]]
 +
[[File:Soaltubes1.jpeg|400px|center]]
  
''work in progress''
+
===Hal yang Harus Diperhatikan===
 +
*Jenis material yang sesuai dengan safety factor minimal 2
 +
*Beban terdistribusi pada batang
 +
*Batas displacement pada truss paling atas sebelum buckling bernilai 0,001 m.
 +
*Ketinggian trusses pada setiap lantai konstan, sebesar 0,6 m.
 +
===Metodologi/Alur Penyelesaian===
 +
====Untuk Jenis Material Tetap====
 +
*Mencari data yang diperlukan yang berkaitan dengan material yang dipilih (SS400); yaitu yield strength dan elasticity
 +
*Mencari data harga besi sesuai dengan material dan dimensi standar
 +
*Mencari nilai harga batang keseluruhan per 6 meter menggunakan curve fitting
 +
*Menghitung total cost yang dikeluarkan untuk keseluruhan sistem per masing-masing dimensi besi
 +
*Menghitung stress yang terjadi pada tiap dimensi batang
 +
*Menghitung safety factor
 +
*Menghitung perbandingan antara safety factor dengan harga
 +
*Melakukan optimasi dengan menggunakan metode golden section
 +
====Untuk Besar Cross Section Area Tetap====
 +
*Memilih luas penampang (dalam hal ini saya menggunakan dimensi 2.5cm x 2.5cm x 4 mm dengan luas area penampang 0.000184)
 +
*Memilih 3 material sebagai pembanding (saya memilih SS400, SS304, dan SS316)
 +
*Menggunakan metode curve fitting untuk mencari harga material/kg, densitas, dan yield strength
 +
*Menghitung nilai safety factor
 +
*Menghitung rasio perbandingan antara safety factor dengan harga total
 +
*Melakukan optimasi dengan metode golden section
 +
 
 +
===Perhitungan Untuk Jenis Material Tetap===
 +
Berikut adalah data yang saya gunakan dan input kedalam program Microsoft Excel
 +
[[File:TubesRichardoAriyanto4.png|1000px|center]]
 +
Dalam mencari fitting cost/6m, saya menggunakan modelica untuk mencari koefisien persamaannya dengan metode curve fitting. Berikut adalah koding modelica yang saya gunakan untuk curve fitting.
 +
[[File:TubesRichardoAriyanto5.png|1000px|center]]
 +
Dan berikut adalah fungsi panggil yang saya gunakan untuk mencari koefisien persamaannya.
 +
[[File:TubesRichardoAriyanto6.png|1000px|center]]
 +
Sehingga didapatkan koefisien yang tertera pada gambar data Microsoft Excel dan dapat saya gunakan untuk menghitung harga serta variabel lainnya. Selanjutnya saya menggunakan modelica untuk mencari nilai stress maksimum yang dapat digunakan untuk mencari harga. Berikut adalah koding yang saya gunakan:
 +
[[File:TubesRichardoAriyanto7.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto8.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto9.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto10.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto11.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto12.png|1000px|center]]
 +
Setelah itu saya memilih material dengan melakukan optimasi Golden Section terhadap Area dengan Ratio yang sudah dihitung di program Microsoft Excel. Berikut adalah kodenya.
 +
[[File:TubesRichardoAriyanto13.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto14.png|1000px|center]]
 +
Lalu saya melakukan simulasi sehingga menghasilkan hasil sebagai berikut.
 +
[[File:TubesRichardoAriyanto15.png|1000px|center]]
 +
maka dimensi material yang paling tepat dengan hasil Xopt adalah dengan dimensi 3cm x 3cm dengan ketebalan 5 mm
 +
[[File:TubesRichardoAriyanto16.png|340px|center]]
 +
 
 +
===Perhitungan Untuk Jenis Material Bervariasi ; Luas Cross Section Tetap===
 +
Pada bagian ini saya menggunakan beberapa material, yaitu:
 +
*SS304
 +
*SS316
 +
*SS400
 +
Kemudian saya memasukan data dari masing-masing material dan mengurutkannya berdasarkan harga dan interval elastisitas yang telah saya buat sebelumnya.
 +
[[File:TubesRichardoAriyanto17.png|430px|center]]
 +
Lalu saya menggunakan metode curve fitting untuk mencari nilai harga/kg dari masing-masing nilai elastisitas. Berikut adalah fungsi panggil yang saya buat. Adapun fungsi curve yang saya gunakan sama dengan sebelumnya. Disini saya menggunakan nilai X yang berasal dari elastisitas material, dan nilai Y merupakan nilai harga dari material terkait.
 +
[[File:TubesRichardoAriyanto18.png|1000px|center]]
 +
Dan dihasilkan koefisien berikut untuk mencari nilai harga/kg
 +
[[File:TubesRichardoAriyanto19.png|620px|center]]
 +
Kemudian saya juga membuat fungsi panggil untuk mencari nilai densitas, dengan nilai X merupakan nilai elastisitas material, dan nilai Y adalah nilai densitas material terkait.
 +
[[File:TubesRichardoAriyanto20.png|1000px|center]]
 +
Dan dihasilkan koefisien berikut untuk mencari densitas
 +
[[File:TubesRichardoAriyanto21.png|620px|center]]
 +
Kemudian saya juga membuat fungsi panggil untuk mencari nilai yield.
 +
[[File:TubesRichardoAriyanto22.png|1000px|center]]
 +
Dan dihasilkan koefisien berikut untuk mencari yield
 +
[[File:TubesRichardoAriyanto23.png|620px|center]]
 +
Koefisien-koefisien yang telah dihasilkan sebelumnya kemudian saya masukan kedalam program Microsoft Excel untuk mendapatkan nilai masing-masing variabel.
 +
[[File:TubesRichardoAriyanto24.png|1100px|center]]
 +
Kemudian saya menggunakan optimasi dengan metode Golden Section untuk menentukan material yang optimum. Kode yang digunakan sama seperti bagian sebelumnya, namun parameter xd saya ganti dengan nilai elastisitas material, serta nilai yd saya ganti dengan nilai rasio dari Area Locked.
 +
[[File:TubesRichardoAriyanto25.png|1000px|center]]
 +
[[File:TubesRichardoAriyanto26.png|1000px|center]]
 +
maka didapatkan nilai Xopt (elastisitas optimum) sebagai berikut
 +
[[File:TubesRichardoAriyanto27.png|1000px|center]]
 +
Sehingga dapat saya simpulkan, untuk luas area 0.000184 m^2 (Dimensi besi 2.5cm x 2.5cm x 4 mm) diperlukan material SS316 agar kondisinya optimal
 +
 
 +
===KESIMPULAN===
 +
*Untuk metode material tetap (SS400), maka kondisi optimum dicapai dengan dimensi optimal besi yang digunakan adalah 3cm x 3cm x 5mm dengan harga total material 260 ribu rupiah.
 +
*Untuk metode luas area tetap, maka dari ketiga material yang diujikan dengan perhitungan (SS400, SS304, dan SS316), dan dimensi besi yang diujikan adalah 2.5cm x 2.5cm x 4 mm, maka kondisi optimum dicapai dengan material SS316.
 +
 
 +
==UAS 13 Januari 2021==
 +
[[File:1UAS Metnum02 Richardo Ariyanto.jpg|1000px|center]]
 +
[[File:2UAS Metnum02 Richardo Ariyanto.jpg|1000px|center]]
 +
[[File:RichardoUASModelica 1.png|1000px|center]]
 +
[[File:RichardoUASModelica 2.png|1000px|center]]
 +
[[File:RichardoUASModelica 3.png|1000px|center]]
 +
[[File:RichardoUASModelica 4.png|1000px|center]]
 +
[[File:RichardoUASModelica 5.png|1000px|center]]
 +
[[File:RichardoUASModelica 6.png|1000px|center]]
 +
[[File:RichardoUASModelica 7.png|1000px|center]]

Latest revision as of 07:28, 14 January 2021

Biodata
Center
Nama Richardo Ariyanto
Tempat Tanggal Lahir Bogor, 5 Januari 2001
NPM 1906301280
Email richardo.ariyanto@ui.ac.id
Youtube https://www.youtube.com/c/RichardoAriyanto/
Hobi Fotografi

Halo! Perkenalkan, nama saya adalah Richardo Ariyanto (1906301280), mahasiswa Teknik Mesin angkatan 2019, Fakultas Teknik, Universitas Indonesia. Saya bercita-cita untuk masuk ke program studi Teknik Mesin sejak dari masuk SMA.

Catatan Minggu Pertama (11 November 2020)

Tujuan Pembelajaran

  • Memahami konsep dan prinsip dasar metode numerik
  • Dapat menerapkan pemahaman yang didapatkan dalam mata kuliah Metode Numerik
  • Mampu menerapkan pemahaman metode numerik dalam bidang keteknikan
  • Membentuk kita menjadi orang yang lebih beradab

Manfaat Belajar bagi Diri Saya Sendiri

Menurut saya, pembelajaran adalah suatu proses untuk memahami peristiwa-peristiwa yang terjadi di sekitar kita. Saya merasakan bahwa dengan belajar, saya dapat lebih memahami tentang peristiwa-peristiwa yang terjadi di lingkungan saya, dan membantu saya untuk memecahkan permasalahan baru yang sebelumnya belum pernah saya temukan. Belajar juga dapat meningkatkan kepekaan sosial, kepedulian dan empati dalam diri saya.

Komputer dalam Metode Numerik

Komputer merupakan alat hitung yang sangat cepat, namun pada hakikatnya, komputer bersifat "dummy" dan mempunyai batasan-batasan hitungan yang tidak dapat dilewati. Apa artinya bagi diri saya adalah saya menyadari bahwa komputer merupakan alat hitung yang cepat, namun pada akhirnya semuanya bergantung kepada sang pengguna itu sendiri, sehingga kita harus bisa lebih percaya diri dan menyadari bahwa kemampuan kita bahkan lebih diatas komputer manapun.

Sebelum UTS

Sebelum UTS saya telah mempelajari

  • Deret Mclaurin & Deret Taylor, dengan metode forward, center, dan backward
  • Bracketing Methods dan Open Methods, dimana bracketing methods meliputi graphical methods, bisection methods, dan false-position methods sedangkan open methods meliputi simple fixed-point iteration, newton-raphson methods, secant methods, dan brents methods
  • Mencari nilai interpolasi dan regresi linier menggunakan matriks

Tugas Minggu Pertama

Dalam kesempatan kali ini saya membuat suatu video pembelajaran mengenai penggunaan aplikasi OpenModelica pada perhitungan interpolasi tabel Saturated Liquid-Vapor dalam Termodinamika :

Berikut adalah bahasa Modelica yang saya gunakan untuk membuat interpolasi

model SaturatedWater
parameter Real T1=50;//(C)
parameter Real T2=55;//(C)
parameter Real T=52;//(C)
parameter Real P1=0.1235;//(bar)
parameter Real P2=0.1576;//(bar)
parameter Real SVL1=1.0121*10^(-3);//(m^3/kg)
parameter Real SVL2=1.0146*10^(-3);//(m^3/kg)
parameter Real SVV1=12.032;//(m^3/kg)
parameter Real SVV2=9.568;//(m^3/kg)
parameter Real IEL1=209.32;//(kJ/kg)
parameter Real IEL2=230.21;//(kJ/kg)
parameter Real IEV1=2443.5;//(kJ/kg)
parameter Real IEV2= 2450.1;//(kJ/kg)
parameter Real ESL1=209.33;//(kJ/kg)
parameter Real ESL2=230.23;//(kJ/kg)
parameter Real EEVAP1=2382.7;//(kJ/kg)
parameter Real EEVAP2=2370.7;//(kJ/kg)
parameter Real ESV1=2592.1;//(kJ/kg)
parameter Real ESV2=2600.9;//(kJ/kg)
parameter Real ENSL1=0.7038;//(kJ/kg*K)
parameter Real ENSL2=0.7679;//(kJ/kg*K)
parameter Real ENSV1=8.0763;//(kJ/kg*K)
parameter Real ENSV2=7.9913;//(kJ/kg*K)
Real P;
Real SVL;
Real SVV;
Real IEL;
Real IEV;
Real ESL;
Real EEVAP;
Real ESV;
Real ENSL;
Real ENSV;
equation
P=P1+((T-T1)/(T2-T1))*(P2-P1);
SVL=SVL1+((T-T1/T2-T1))*(P2-P1);
SVV=SVV1+((T-T1/T2-T1))*(SVV2-SVV1);
IEL=IEL1+((T-T1/T2-T1))*(IEL2-IEL1);
IEV=IEV1+((T-T1/T2-T1))*(IEV2-IEV1);
ESL=ESL1+((T-T1/T2-T1))*(ESL2-ESL1);
EEVAP=EEVAP1+((T-T1/T2-T1))*(EEVAP2-EEVAP1);
ESV=ESV1+((T-T1/T2-T1))*(ESV2-ESV1);
ENSL=ENSL1+((T-T1/T2-T1))*(ENSL2-ENSL1);
ENSV=ENSV1+((T-T1/T2-T1))*(ENSV2-ENSV1);
end SaturatedWater;

Catatan Minggu Kedua (18 November 2020)

Dalam perkuliahan minggu ini, terdapat beberapa catatan penting :

  • Dalam menjalani proses pembelajaran, orang yang merugi adalah orang yang sama dengan hari kemarin. Hal ini menurut saya adalah fakta, lantas mengapa demikian? Karena ketika sama dengan hari kemarin, orang lain pasti akan senantiasa untuk menjadi "lebih" dalam bidangnya masing-masing, sehingga ketika kita sama dengan hari kemarin maka bukan berarti kita diam, melainkan kita mengalami kemunduran karena orang lain sudah bergerak lebih maju dari kita.
  • Dalam metode numerik, segalanya berpusat dalam perhitungan. Dalam proses perhitungan sendiri merupakan suatu seni untuk menyusun algoritma yang cepat, efisien, dan menghasilkan output yang akurat.
    • Dalam dunia Engineering, faktor cepat dan akurat memegang peranan yang penting dalam penggunaan di lapangan. Sebagai seorang calon Engineer, kita memerlukan suatu sistem yang dapat memenuhi dua aspek penting sebelumnya untuk menyelesaikan permasalahan secara efisien baik di lapangan maupun dalam proses perancangan.
    • Pak Dai berkata bahwa saat ini, bahasa mesin yang cepat untuk mengeluarkan nilai outputnya adalah bahasa Fortran dan C. Namun beliau lebih memilih untuk menggunakan bahasa Modelica dalam mata kuliah Metode Numerik karena beberapa alasan:
      • Modelica adalah bahasa pemodelan, yang artinya dapat dimengerti dengan lebih mudah oleh individu yang bukan berlatar belakang dari bidang Ilmu Komputer, sehingga bisa diterapkan di bidang Teknik.
      • Modelica dapat mengeluarkan hasil hitungan yang cepat karena menggunakan bahasa pemrograman C
      • Modelica merupakan suatu bahasa yang open source, sehingga gratis dan mudah diakses oleh semua orang, serta memiliki komunitas pengguna yang cukup banyak.
  • Dalam menggunakan OpenModelica, untuk melakukan suatu perhitungan, maka variabel haruslah didefinisikan.
    • Apabila variabel tersebut memiliki nilai; maka nilai tersebut haruslah ditulis dengan menggunakan parameter Real variabel=nilai
    • Apabila variabel tersebut merupakan persamaan atau sesuatu yang ingin kita cari, maka variabel tersebut harus dituliskan dalam equation.

Tugas Minggu Kedua

Di tugas kedua ini, Pak Dai meminta saya dan rekan-rekan mahasiswa Metode Numerik 02 untuk membuat sebuah class dan fungsi panggil. Disini saya akan melakukan sebuah contoh soal mencari penyelesaian dari suatu grafik menggunakan perintah Modelica.Math.Matrices.solve

Pada contoh soal kali ini saya akan mencoba untuk menyelesaikan bentuk matriks Ax=B sebagai berikut:

Richardo2-3.png

Kemudian saya akan membuat sebuah class yang berisi matriks yang akan saya operasikan.

Richardo2-1.png

Lalu saya akan membuat sebuah fungsi baru yang berfungsi untuk "memanggil" matriks yang ada di dalam class untuk dioperasikan.

Richardo2-21.png

Langkah selanjutnya adalah saya akan mengklik perintah simulate untuk mendapatkan hasil perhitungannya, dan berikut adalah hasil dari x1, x2 dan x3.

Richardo2-4.png

Berikut adalah video penjelasan singkat saya untuk tugas minggu kedua.

Catatan Minggu ke-3 (Rabu, 25 November 2020)

Pengenalan secara Mandiri

Di minggu ke-3 ini, Pak Dai meminta mahasiswa untuk mempelajari mengenai aplikasi Metode Numerik pada bidang Engineering, salah satunya adalah Truss. Namun sebelum melangkah lebih jauh, saya terlebih dahulu menonton video dari Youtube untuk membantu saya memahami mengenai metode penghitungan yang digunakan pada Truss, yaitu Finite Element Analysis (FEA). Berikut adalah video yang saya tonton untuk membantu saya memahami mengenai Finite Element Analysis.

Dalam video pengenalan ini, terdapat beberapa hal yang cukup penting dan fundamental untuk memahami perhitungan FEA, yaitu:

  • Pada prinsipnya, FEA merupakan suatu metode untuk memecahkan masalah yang kompleks dengan cara memecahnya menjadi masalah yang lebih kecil yang dapat dimodelkan secara matematis, lalu menggabungkan hasil pemodelannya kembali untuk memodelkan solusi dari permasalahan kompleks.
  • Kunci dari Finite Element Analysis adalah geometri (bentuk dari model yang akan kita analisis) dan material (bahan penyusun model yang akan kita analisis). Hal ini penting untuk menyelesaikan pemodelan FEA.
  • Adapun material yang kita gunakan dalam FEA selanjutnya kita sebut dengan "Mesh". Mesh sendiri menurut apa yang saya pahami merupakan bagian pengisi dari model geometri yang akan kita analisis, dan merupakan bentuk penyusun masalah kecil dari masalah keseluruhan. Contoh dari Mesh adalah:
    • Kita menggunakan garis sebagai mesh untuk memodelkan suatu beam
    • Kita menggunakan silinder sebagai mesh untuk memodelkan batang pohon, dsb.
  • Contoh pengaplikasian nyata yang dibahas pada video ini adalah Crash Test dari suatu kendaraan.
    • Sebelum mengenal metode FEA, para insinyur harus mengetes keamanan mobil dengan cara melakukan tes kecelakaan pada produknya. Hasilnya memang akurat dan merupakan "real world test", namun cara seperti ini memakan banyak waktu, biaya dan tenaga yang tidak sedikit.
    • Setelah adanya metode FEA, insinyur dapat memodelkan objek (dalam hal ini kendaraan) kedalam suatu model FEA, dan melakukan simulasinya dengan komputer, sehingga menghemat waktu dan biaya serta mendapatkan hasil dengan cepat.

Setelah saya memahami dasar dari apa itu metode FEA, saya kemudian mempelajari video yang dibuat oleh Mahesh Gadwantikar yang membahas tentang problem dasar pada elemen Truss menggunakan Finite Element Analysis. Berikut adalah tautan videonya

Catatan Kelas

Dalam perkuliahan, Pak Dai berkata bahwa untuk menyelesaikan permasalahan keteknikan, dibutuhkan suatu urutan kerangka berpikir, yaitu

  • Menganalisis permasalahan yang dihadapi.
  • Melakukan pemodelan secara matematis.
  • Menerjemahkan model matematis menjadi bahasa pemodelan yang dapat diolah oleh komputer.
  • Melakukan perhitungan model matematis di komputer dan mendapatkan hasilnya.

Tugas Kelas

  • Membuat fungsi Gauss-Jordan secara mandiri

function Gauss_Jordan
input Integer N;
input Real A[N,N];
input Real B[N];
output Real X[N];
Real float_error = 10e-10;
algorithm
X:=Modelica.Math.Matrices.solve(A,B);
for i in 1:N loop
if abs(X[i]) <= float_error then
X[i] := 0;
end if;
end for;
end Gauss_Jordan;

Tugas 3

Dalam tugas ke 3 ini saya mencoba untuk menerjemahkan pseudocode yang ada pada Figure 9.4 di Buku Chapra menjadi bahasa Modelica. Berikut adalah bahasa Modelica yang telah saya buat.

NaiveGaussRichardo1.png

function NaiveGauszzRichardo
//Pseudocode dari Figure 9.4 buku Chapra
//Forward Elimination
//DOFOR k = 1, n - 1
// DOFOR i = k + 1, n
// factor = a[i,k] / a[k,k]
// DOFOR j = k + 1 to n
// a[i,j] = a[i,j] - factor * a[k,j]
// END DO
// b[i] = b[i] - factor * b[k]
// END DO
//END DO
//Backward Elimination
//x[n] = b[n] / a[n,n]
//DOFOR i = n - 1, 1, -1
// sum = b[i]
// DOFOR j = i + 1, n
// sum = sum = a[i,j] * x[j]
// END DO
// x[i] = sum / a[i,i]
//END DO
//Naive-Gauss Algorithm
//Richardo Ariyanto
//Metode Numerik 02
//Desember 2020
input Real [:, :] A; //Koefisien Persamaan Linier
input Real [:] B; // Konstanta Ruas Kanan di Persamaan Linier
output Real [:, :] x; //Hasil Perhitungan
protected
Integer m = size(A,1);
Integer n = size(A,2);
Integer c = 0;
Real i = 1;
Real j = 1;
Real k = 1;
Real sum = 1;
Real factor = 1;
Real [:,:] a;
Real [:] b;
algorithm
a := A;
b := B;
for k in 1:(n-1) loop //Forward Elimination dimulai disini
for i in (k+1):n loop
factor := a[i,k] / a[k,k];
for j in (k+1):n loop
a[i,j] := a[i,j] - (factor * a[k,j]);
end for;
b[i] := b[i] - (factor * b[k]);
end for;
end for;
x[n] := b[n] / a[n,n]; //Backward Substitution dimulai disini
for i in (n-1):(-1) loop
sum := b[i];
for j in (i+1):n loop
sum := sum - (a[i,j] * x[j]);
end for;
x[i] := sum / a[i,i];
end for;
end NaiveGauszzRichardo;

Kemudian saya mencoba menyelesaikan contoh di bagian 9.5 menggunakan kode yang telah saya buat

NaiveGaussRichardo3.png

dan saya membuat kelas panggil untuk mengeksekusi kode yang telah saya buat

NaiveGaussRichardo2.png

dan setelah saya simulate, saya mendapatkan hasil X1, X2, dan X3 yang sama seperti di buku

NaiveGaussRichardo4.png

Kemudian saya akan mencoba menyelesaikan tugas yang diberikan dari buku Saeed Moaveni

Tugas minggu 3.jpeg

Berdasarkan soal, diketahui bahwa

  • E = 200 GPa
  • Luas Cross Section = 10 cm^2
  • Jumlah batang = 5

Dalam kesempatan kali ini, saya ingin berterima kasih kepada rekan saya Josiah atas bimbingannya kepada saya dalam menyelesaikan soal ini. Dalam menyelesaikan soal ini kita memerlukan 1 kelas dan 3 fungsi dalam Modelica. Kelas merupakan tempat kita melakukan operasi penghitungan, dan fungsi digunakan untuk:

  • Fungsi Matriks Stiffness
  • Fungsi Matriks Elemen Global, dan
  • Fungsi Matriks Reaksi

Dalam mengerjakan secara manual, ada beberapa tahap yang harus kita lakukan, yaitu

  • Memecah permasalahan menjadi Nodes dan elemen
  • Mengasumsikan solusi yang dapat mewakili reaksi sistem secara keseluruhan
  • Membuat persamaan elemen
  • Menggabungkan solusi dari setiap elemen
  • Memberikan kondisi dan beban batas
  • Kemudian menyelesaikan persamaan dengan metode aljabar linear

Dalam kesempatan kali ini, saya akan langsung menyelesaikan persamaannya dengan menggunakan aplikasi OpenModelica.

  • Pertama-tama saya akan membuat kelas pada OpenModelica. Disini kita akan menggabungkan fungsi-fungsi lain dan memberikan kondisi batas untuk memperoleh hasil akhir.

class TrussPRrichardo
parameter Integer N=8;
parameter Real A=0.001;
parameter Real E=200e9;
Real G[N,N];
Real Ginitial[N,N];
Real Sol[N];
Real X[N]={0,0,-1035.2762,-3863.7033,0,0,-1035.2762,-3863.7033};
Real R[N];
Real SolMat[N,1];
Real XMat[N,1];
//Kondisi Batas
Integer b1=1;
Integer b2=3;
//batang 1
parameter Real X1=0; //sudut
Real k1=A*E/1;
Real K1[4,4]; //matriks kekakuan
Integer p1a=1;
Integer p1b=2;
Real G1[N,N];
//batang 2
parameter Real X2=0; //sudut
Real k2=A*E/1;
Real K2[4,4]; //matriks kekakuan
Integer p2a=2;
Integer p2b=3;
Real G2[N,N];
//batang 3
parameter Real X3=90; //sudut
Real k3=A*E/1.25;
Real K3[4,4]; //matriks kekakuan
Integer p3a=2;
Integer p3b=4;
Real G3[N,N];
//batang 4
parameter Real X4=90+38.6598; //sudut
Real k4=A*E/1.6;
Real K4[4,4]; //matriks kekakuan
Integer p4a=1;
Integer p4b=4;
Real G4[N,N];
//batang 5
parameter Real X5=90-38.6598; //sudut
Real k5=A*E/1.6;
Real K5[4,4]; //matriks kekakuan
Integer p5a=3;
Integer p5b=4;
Real G5[N,N];
algorithm
K1:=MatriksStiffness(X1);
G1:=k1*MatriksElemenGlobal(K1,N,p1a,p1b);
K2:=MatriksStiffness(X2);
G2:=k2*MatriksElemenGlobal(K2,N,p2a,p2b);
K3:=MatriksStiffness(X3);
G3:=k3*MatriksElemenGlobal(K3,N,p3a,p3b);
K4:=MatriksStiffness(X4);
G4:=k4*MatriksElemenGlobal(K4,N,p4a,p4b);
K5:=MatriksStiffness(X5);
G5:=k5*MatriksElemenGlobal(K5,N,p5a,p5b);
G:=G1+G2+G3+G4+G5;
Ginitial:=G;
//kondisi batas
for i in 1:N loop
G[2*b1-1,i]:=0;
G[2*b1,i]:=0;
G[2*b2-1,i]:=0;
G[2*b2,i]:=0;
end for;
G[2*b1-1,2*b1-1]:=1;
G[2*b1,2*b1]:=1;
G[2*b2-1,2*b2-1]:=1;
G[2*b2,2*b2]:=1;
Sol:=Gauss_Jordan(N,G,X);
//menyelesaikan reaksi
SolMat:=matrix(Sol);
XMat:=matrix(X);
R:=MatriksReaksi(N,Ginitial,SolMat,XMat);
end class TrussPRrichardo

  • Kemudian saya akan membuat fungsi panggil untuk matriks stiffness

function MatriksStiffness
input Real A;
Real Y;
output Real X[4,4];
Real float_error = 10e-10;
final constant Real pi=2*Modelica.Math.asin(1.0);
algorithm
Y:=A/180*pi;
X:=[(Modelica.Math.cos(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.cos(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y);
Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.sin(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.sin(Y))^2;
-(Modelica.Math.cos(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.cos(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y);
-Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.sin(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.sin(Y))^2];
for i in 1:4 loop
for j in 1:4 loop
if abs(X[i,j]) <= float_error then
X[i,j] := 0;
end if;
end for;
end for;
end MatriksStiffness;

  • Kemudian adalah fungsi matriks elemen global

function MatriksElemenGlobal
input Real Y[4,4];
input Integer B;
input Integer p1;
input Integer p2;
output Real G[B,B];
algorithm
for i in 1:B loop
for j in 1:B loop
G[i,j]:=0;
end for;
end for;
G[2*p1,2*p1]:=Y[2,2];
G[2*p1-1,2*p1-1]:=Y[1,1];
G[2*p1,2*p1-1]:=Y[2,1];
G[2*p1-1,2*p1]:=Y[1,2];
G[2*p2,2*p2]:=Y[4,4];
G[2*p2-1,2*p2-1]:=Y[3,3];
G[2*p2,2*p2-1]:=Y[4,3];
G[2*p2-1,2*p2]:=Y[3,4];
G[2*p2,2*p1]:=Y[4,2];
G[2*p2-1,2*p1-1]:=Y[3,1];
G[2*p2,2*p1-1]:=Y[4,1];
G[2*p2-1,2*p1]:=Y[3,2];
G[2*p1,2*p2]:=Y[2,4];
G[2*p1-1,2*p2-1]:=Y[1,3];
G[2*p1,2*p2-1]:=Y[2,3];
G[2*p1-1,2*p2]:=Y[1,4];
end MatriksElemenGlobal;

  • Dan fungsi Matriks Reaksi

function MatriksReaksi
input Integer N;
input Real A[N,N];
input Real B[N,1];
input Real C[N,1];
Real X[N,1];
output Real Sol[N];
Real float_error = 10e-10;
algorithm
X:=A*B-C;
for i in 1:N loop
if abs(X[i,1]) <= float_error then
X[i,1] := 0;
end if;
end for;
for i in 1:N loop
Sol[i]:=X[i,1];
end for;
end MatriksReaksi;

Ketika dioperasikan, maka kita akan mendapatkan solusi untuk

  • Displacement
    SolRichardo31.png
    , dan
  • Gaya Reaksi
    SolRichardo32.png

--under construction--

Catatan Minggu ke-4 (Rabu, 02 December 2020)

Quiz

RichardoAQuiz 3.jpg

Melatih Pemahaman Secara Mandiri (work in progress)

Flowchart (Diagram Alir)

  • Flowchart merupakan suatu diagram yang menggambarkan suatu tahapan atau proses. Flowchart juga dapat diartikan sebagai representasi diagram dari suatu algoritma, yang menunjukan tahapan-tahapan kerja algoritma tersebut.
  • Flowchart memiliki simbol-simbol yang berarti khusus. Berikut adalah daftar simbol yang saya kutip dari Wikipedia.
    • RichardoWeek41.png
    • RichardoWeek42.png

Tugas 4

Soalnomor8.jpeg

Dalam soal ini diketahui bahwa:

  • Luas cross-sectional area = 15 cm^2
  • E = 70GPa
  • Banyaknya truss = 3
  • Banyaknya point = 4

Untuk menyelesaikan soal ini, pertama-tama saya akan membuat diagram flow chart. Berikut adalah flowchart yang telah saya buat dengan menggunakan aplikasi draw.io

RichardoWeek44.png

Kemudian saya akan membuat class diagram

RichardoWeek45.png

Lalu saya mencari panjang dan sudut dari masing-masing truss

RichardoWeek46.png
RichardoWeek47.png

Lalu saya membuat kelas fungsi untuk Matriks Stiffness Element

RichardoWeek48.png
RichardoWeek49.png
RichardoWeek50.png

Kemudian saya membuat kelas fungsi untuk Matriks Stiffness Global

RichardoWeek51.png
RichardoWeek52.png
RichardoWeek53.png

Selanjutnya saya membuat fungsi untuk mencari Matriks Total Stiffness Global

RichardoWeek54.png

Lalu saya akan membuat matriks yang berisikan kondisi batas

RichardoWeek55.png
RichardoWeek56.png

Selanjutnya saya akan membuat fungsi eliminasi Gauss-Jordan untuk mencari nilai U, dimana persamaan yang digunakan adalah (X)(U)=F. X adalah matriks global stiffness dengan kondisi batas serta F adalah gaya luar yang diberikan

RichardoWeek57.png

Kemudian saya akan membuat fungsi untuk mencari reaction.

RichardoWeek58.png

Lalu saya akan membuat kelas "Class" utama untuk mengoperasikan fungsi-fungsi yang ada

RichardoWeek59.png
RichardoWeek60.png

Kemudian saya cek terlebih dahulu apakah ada error dalam kode yang telah dibuat, dan apabila hasilnya tidak ada error maka kode bisa disimulasikan.

RichardoWeek61.png

Lalu kita mendapatkan nilai R dan U

RichardoWeek62.png

Video Pembahasan Singkat

Catatan Kuliah 16 Desember 2020

Aplikasi Metode Numerik dalam Kasus Optimisasi

Dalam perkuliahan kali ini, diisi oleh pemberian materi oleh Ibu Chandra. Adapun materi yang diberikan adalah optimasi dengan menggunakan metode Bracket. Berikut adalah percobaan yang saya lakukan dengan berdasarkan video materi yang sebelumnya telah diberikan oleh Ibu Chandra.

  • Berikut adalah model yang akan kita operasikan
RichardoOpt1.png
RichardoOpt2.png
  • dan berikut adalah fungsi objeknya
RichardoOpt3.png
  • setelah di cek dan tidak ada error, maka kita dapat melakukan simulate untuk mendapatkan hasilnya
RichardoOpt4.png

Muhasabah Mandiri

Dalam perkuliahan kali ini, Pak Dai meminta mahasiswa untuk melakukan muhasabah secara mandiri. Adapun parameter yang digunakan untuk mengukur adalah level pemahaman pribadi untuk algoritma dan penerapannya (encoding modelica) dalam aplikasi metoda numerik di kasus statika struktur statis Truss 2D (bidang) dan 3D (Space). Saya mengakui bahwa saya tidak memiliki background pemrograman komputer sama sekali, bahkan salah satu alasan saya untuk memilih jurusan teknik mesin adalah karena saya menghindari pemrograman komputer. Saya benar-benar baru mempelajari pemrograman komputer di mata kuliah Metode Numerik. Sejak awal mempelajari metode numerik saya selalu berusaha untuk mengikuti kelas dan aktif di dalamnya, serta memperdalam pemahaman saya mengenai materi-materi yang ada, walaupun jujur saya mengalami kesulitan karena saya belum mengambil mata kuliah matematika teknik. Dalam mempelajari modelica, pada pertemuan awal saya dapat mengikuti tentang penerapan modelica untuk penyelesaian materi metode numerik sebelumnya, seperti interpolasi dalam tugas saya, memanggil fungsi, dan yang sejenisnya. Namun saat mempelajari penerapan dalam materi trusses saya mengalami kesulitan karena saya tidak begitu memahami cara melakukan encoding ke bahasa modelicanya. Saya juga mengalami kesulitan untuk membuat codingnya karena bingung mengenai parameter-parameter apa yang harus ditambahkan atau diperlukan, dan hal-hal yang sejenis.

TUGAS BESAR METODE NUMERIK

Tema : Aplikasi Metoda Numerik dalam Optimasi Desain Struktur Rangka Sederhana

Soal

Berikut adalah kasus yang diberikan untuk optimasi

RichardoSoaltubes.jpeg
Soaltubes1.jpeg

Hal yang Harus Diperhatikan

  • Jenis material yang sesuai dengan safety factor minimal 2
  • Beban terdistribusi pada batang
  • Batas displacement pada truss paling atas sebelum buckling bernilai 0,001 m.
  • Ketinggian trusses pada setiap lantai konstan, sebesar 0,6 m.

Metodologi/Alur Penyelesaian

Untuk Jenis Material Tetap

  • Mencari data yang diperlukan yang berkaitan dengan material yang dipilih (SS400); yaitu yield strength dan elasticity
  • Mencari data harga besi sesuai dengan material dan dimensi standar
  • Mencari nilai harga batang keseluruhan per 6 meter menggunakan curve fitting
  • Menghitung total cost yang dikeluarkan untuk keseluruhan sistem per masing-masing dimensi besi
  • Menghitung stress yang terjadi pada tiap dimensi batang
  • Menghitung safety factor
  • Menghitung perbandingan antara safety factor dengan harga
  • Melakukan optimasi dengan menggunakan metode golden section

Untuk Besar Cross Section Area Tetap

  • Memilih luas penampang (dalam hal ini saya menggunakan dimensi 2.5cm x 2.5cm x 4 mm dengan luas area penampang 0.000184)
  • Memilih 3 material sebagai pembanding (saya memilih SS400, SS304, dan SS316)
  • Menggunakan metode curve fitting untuk mencari harga material/kg, densitas, dan yield strength
  • Menghitung nilai safety factor
  • Menghitung rasio perbandingan antara safety factor dengan harga total
  • Melakukan optimasi dengan metode golden section

Perhitungan Untuk Jenis Material Tetap

Berikut adalah data yang saya gunakan dan input kedalam program Microsoft Excel

TubesRichardoAriyanto4.png

Dalam mencari fitting cost/6m, saya menggunakan modelica untuk mencari koefisien persamaannya dengan metode curve fitting. Berikut adalah koding modelica yang saya gunakan untuk curve fitting.

TubesRichardoAriyanto5.png

Dan berikut adalah fungsi panggil yang saya gunakan untuk mencari koefisien persamaannya.

TubesRichardoAriyanto6.png

Sehingga didapatkan koefisien yang tertera pada gambar data Microsoft Excel dan dapat saya gunakan untuk menghitung harga serta variabel lainnya. Selanjutnya saya menggunakan modelica untuk mencari nilai stress maksimum yang dapat digunakan untuk mencari harga. Berikut adalah koding yang saya gunakan:

TubesRichardoAriyanto7.png
TubesRichardoAriyanto8.png
TubesRichardoAriyanto9.png
TubesRichardoAriyanto10.png
TubesRichardoAriyanto11.png
TubesRichardoAriyanto12.png

Setelah itu saya memilih material dengan melakukan optimasi Golden Section terhadap Area dengan Ratio yang sudah dihitung di program Microsoft Excel. Berikut adalah kodenya.

TubesRichardoAriyanto13.png
TubesRichardoAriyanto14.png

Lalu saya melakukan simulasi sehingga menghasilkan hasil sebagai berikut.

TubesRichardoAriyanto15.png

maka dimensi material yang paling tepat dengan hasil Xopt adalah dengan dimensi 3cm x 3cm dengan ketebalan 5 mm

TubesRichardoAriyanto16.png

Perhitungan Untuk Jenis Material Bervariasi ; Luas Cross Section Tetap

Pada bagian ini saya menggunakan beberapa material, yaitu:

  • SS304
  • SS316
  • SS400

Kemudian saya memasukan data dari masing-masing material dan mengurutkannya berdasarkan harga dan interval elastisitas yang telah saya buat sebelumnya.

TubesRichardoAriyanto17.png

Lalu saya menggunakan metode curve fitting untuk mencari nilai harga/kg dari masing-masing nilai elastisitas. Berikut adalah fungsi panggil yang saya buat. Adapun fungsi curve yang saya gunakan sama dengan sebelumnya. Disini saya menggunakan nilai X yang berasal dari elastisitas material, dan nilai Y merupakan nilai harga dari material terkait.

TubesRichardoAriyanto18.png

Dan dihasilkan koefisien berikut untuk mencari nilai harga/kg

TubesRichardoAriyanto19.png

Kemudian saya juga membuat fungsi panggil untuk mencari nilai densitas, dengan nilai X merupakan nilai elastisitas material, dan nilai Y adalah nilai densitas material terkait.

TubesRichardoAriyanto20.png

Dan dihasilkan koefisien berikut untuk mencari densitas

TubesRichardoAriyanto21.png

Kemudian saya juga membuat fungsi panggil untuk mencari nilai yield.

TubesRichardoAriyanto22.png

Dan dihasilkan koefisien berikut untuk mencari yield

TubesRichardoAriyanto23.png

Koefisien-koefisien yang telah dihasilkan sebelumnya kemudian saya masukan kedalam program Microsoft Excel untuk mendapatkan nilai masing-masing variabel.

TubesRichardoAriyanto24.png

Kemudian saya menggunakan optimasi dengan metode Golden Section untuk menentukan material yang optimum. Kode yang digunakan sama seperti bagian sebelumnya, namun parameter xd saya ganti dengan nilai elastisitas material, serta nilai yd saya ganti dengan nilai rasio dari Area Locked.

TubesRichardoAriyanto25.png
TubesRichardoAriyanto26.png

maka didapatkan nilai Xopt (elastisitas optimum) sebagai berikut

TubesRichardoAriyanto27.png

Sehingga dapat saya simpulkan, untuk luas area 0.000184 m^2 (Dimensi besi 2.5cm x 2.5cm x 4 mm) diperlukan material SS316 agar kondisinya optimal

KESIMPULAN

  • Untuk metode material tetap (SS400), maka kondisi optimum dicapai dengan dimensi optimal besi yang digunakan adalah 3cm x 3cm x 5mm dengan harga total material 260 ribu rupiah.
  • Untuk metode luas area tetap, maka dari ketiga material yang diujikan dengan perhitungan (SS400, SS304, dan SS316), dan dimensi besi yang diujikan adalah 2.5cm x 2.5cm x 4 mm, maka kondisi optimum dicapai dengan material SS316.

UAS 13 Januari 2021

1UAS Metnum02 Richardo Ariyanto.jpg
2UAS Metnum02 Richardo Ariyanto.jpg
RichardoUASModelica 1.png
RichardoUASModelica 2.png
RichardoUASModelica 3.png
RichardoUASModelica 4.png
RichardoUASModelica 5.png
RichardoUASModelica 6.png
RichardoUASModelica 7.png