Difference between revisions of "Metnum03-Bagus Rangin"
Rangin.bagus (talk | contribs) |
Rangin.bagus (talk | contribs) |
||
(80 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ''' | '''بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ''' | ||
+ | ___TOC___ | ||
Line 54: | Line 55: | ||
[[File:Falseposition.png|250px|center]] | [[File:Falseposition.png|250px|center]] | ||
− | 3. | + | Dengan rumus mencari false position/Xr sebagai berikut: |
+ | |||
+ | [[File:False.png|150px|center]] | ||
+ | |||
+ | Pada saat kemari, file excel saya untuk formula false position ini hilang namun berikut contoh formula excel yang saya dapatkan diinternet | ||
+ | |||
+ | [[File:False1.png|500px|center]] | ||
+ | |||
+ | '''Open Method''' berbeda dengan bracketing method, open method hanya memerlukan 1 namun terkadang 2 nilai x perkiraan yang tidak mengurung akar persamaan sebenarnya. saat perhitungan divergen, maka nilai akan menjauhi akar sebenarnya. Namun saat perhitungan konvergen, akar akan ditemukan lebih cepat daripada bracketing method. Open method ini dibagi menjadi 3 metode yaitu : simple fixed point, Newton-Rhapson, dan Secant. | ||
+ | |||
+ | '''a. Simple Point''' | ||
+ | |||
+ | '''b. Newton-Rhapson''' | ||
+ | |||
+ | '''c. Secant''' | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | '''Tugas 1, video pembelajaran modelica''' | ||
+ | ---- | ||
+ | Minggu kemarin, Pak Dai memberikan tugas untuk mempelajari modelica dan membuat video tentang pembelajaran nya dan diupload di youtube. berikut hasil video saya dapat dilihat melalui tautan dibawah. | ||
+ | Part 1 - https://youtu.be/jqawTQHJBXU | ||
+ | Part 2 - https://youtu.be/9pk7_Mm3Yn8 | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | Pertemuan ke-2 Metnum 03(16/11/2020) | ||
+ | ---- | ||
+ | |||
+ | Pada pertemuan kali ini, pertama-tama setiap mahasiswa melaporkan hasil belajarnya mengenai modelica, bagaimana penggunaan dasarnya hingga operasi penggunaan nya.Pak Dai menugaskan di kelas untuk mencoba membuat 2 kelas dengan fungsi class dan class biasa. class function tersebut diisi algoritma untuk y=x+10 yang dimana function tersebut akan dipanggil kembali di class yang satu lagi. pada class yang biasas didefinisikan parameter bahwa x=2 dan y real. pada equation function tadi dipanggil sehingga persamaan equation nya menjadi y= function(x) + 10. sehingga saat di running saya mendapatkan hasil 22. kesalahan dasar saya saat menggunakan modelica adalah lupa nya penggunaan semicolon dan juga lupa mendefinisikan parameter seperti y real. | ||
+ | |||
+ | setelah itu, pak dai menugaskan untuk mencoba membuat model sederhana untuk mencari rata2. gambar-gambar dibawah menunjukan hasil percobaan saya. saya mendefinisikan variabel nya berupa x1, x2, x3, x4, dan x5. dan pada bagian equation terlihat saya menulis y=(x1+x2+x3+x4+x5)/5. dan setelah di running pada gambar bawahnya terlihat hasilnya bahwa y(rata-rata) nya hasilnya 3. | ||
+ | |||
+ | [[File:Modelicabro.png|500px|center]] | ||
+ | |||
+ | Percobaan sederhana modelica (tugas dari pak dai) untuk membuat program mencari rata rata dari beberapa data. saya menggunakan x1-x5. | ||
+ | |||
+ | [[File:Modelicabro12.png|500px|center]] | ||
+ | |||
+ | Dan berikut hasilnya setelah dirunning, dapat dilihat rata-rata nya (y) sebesar 3 | ||
+ | |||
+ | [[File:Modelicabro13.png|500px|center]] | ||
+ | |||
+ | Lalu untuk selanjutnya pak dai memberikan kita semua tugas untuk membuat model modelica lagi untuk membuat class dengan type function untuk menyelesaikan persamaan-persamaan aljabar simultan ( metoda gauss elimination, gauss seidl, dll...) dan sebuah class function untuk menjalankan fungsi tersebut. tidak lupa juga untuk menggunakan looping dan variable arrays... | ||
+ | |||
+ | |||
+ | ---- | ||
+ | '''Tugas02- Gauss Elimination''' | ||
+ | ---- | ||
+ | |||
+ | Pada pertemuan 2 kemarin, seperti yang telah dijelaskan sebelumnya, pak Dai memberi kami tugas untuk menyelesaikan salah satu persamaan linear simultan dengan open modelica. saya memilih untuk mengerjakan Metode Gauss Elimination sebagai objek percobaan saya didalam penyelesaian modelica. pertama-tama saya mencari soal tentang 3 persamaan linear 3 variable yang nantinya akan diubah menjadi matriks 3x3 dengan persamaan A*B=C. dimana matriks A[3x3], B[3], dan C[3]. soulusi yang dicari adalah pada nilai B1,B2, dan B3. | ||
+ | |||
+ | berikut soal nya... | ||
+ | [[File:Soalgauss.png|150px|center]] | ||
+ | Setelah itu, persamaan2 tersebut dibuat dalam bentuk matriks sebelum diselesaikan menggunakan gauss, seperti ini... | ||
+ | [[File:Soalgauss1.png|200px|center]] | ||
+ | |||
+ | sesuai dengan perintah pak dai, kita dianjurkan membuat 2 kelas dalam modelica. yang ertama adalah kelas function dimana kita memasukan fungsi algoritma nya. dan kelas yang kedua adalah class dimana nanti function tadi di recall dan dimasukan variable nya lalu solve dilakukan.. | ||
+ | |||
+ | '''Function Class''' | ||
+ | [[File:Soalgauss2.png|400px|center]] | ||
+ | function class diisi dengan mendeclare nilai input,outputdan logartima dimana | ||
+ | input : A[3,3] dan C[3] | ||
+ | |||
+ | output : B[3] | ||
+ | |||
+ | Logaritma : B:=Modelica.Math.Matrices.solve(A,C) | ||
+ | |||
+ | *logaritma menggunakan fungsi yang sudah ada didalam modelica yaitu fungsi matrices untuk gauss elimination. | ||
+ | |||
+ | '''Class gauss elimination''' | ||
+ | [[File:Soalgauss3.png|400px|center]] | ||
+ | dalam kelas ini, fungsi tadi yang bernama "fungsii" direcall pada kolom equation dengan memasukan A&C sebagai inputnya dan B outputnya. namun sebelum itu terlebih dahulu saya mendeclare nilai2 inputanya tadi seperti digambar atas tersebut. | ||
+ | |||
+ | '''Hasil''' | ||
+ | [[File:Soalgauss4.png|400px|center]] | ||
+ | setelah itu, kita dapat melakukan plotting dan mendapatkan hasilnya. dari gambar tersebut kita dapat mengetahui nilai dari B adalah = -3, 2, -1. | ||
+ | |||
+ | '''Note''': arahan dari pak dai untuk menggunakan looping dan arrays masih belum dapat saya lakukan karena masih saya pelajari dan belum betuk-betul saya pahami. sumber yang saya pelajari tidak secara langsung mencontohkan aplikasinya pada eliminasi gauss. mungkin kedepanya saya akan dapat melakukan itu. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | '''Pertemuan 3 : 23/11/2020''' | ||
+ | ---- | ||
+ | |||
+ | Pada pertemuan ke 3 ini, pak dai memberikan tugas didalam kelas untuk menyelesaikan persoalan sistem pegas yang ada dalam contoh buku ''Numerical Method for Engineer 7th'' pada persoalan 12.11. Dimana contoh strukturnya adalah sebagai berikut. | ||
+ | |||
+ | [[File:Pegasku.png|300px|center]] | ||
+ | |||
+ | dan dari fenomena diatas, saya jabarkan dalam model persamaan matematika sehingga didapatkan persamaan matriksnya, berikut penjabaranya semoga tulisanya dapat terbaca jelas. | ||
+ | |||
+ | [[File:Persamaanpegas.jpg|300px|center]] | ||
+ | |||
+ | Setelah itu didapatkan persamaan matriks k nya. Lalu seperti tugas yang kemarin, saya menggunakan dua kelas yaitu kelas ''function'' dan satu lagi ''class''. maka dengan pola yang sama, INPUT nya matriks K, dan W. dan OUTPUTnya berupa value dari displacement x. | ||
+ | berikut footage nya dari function,class, dan hasil plottingnya. | ||
+ | |||
+ | [[File:Siganteng.png|300px|center]] | ||
+ | [[File:Siganteng1.png|300px|center]] | ||
+ | [[File:Siganteng2.png|500px|center]] | ||
+ | |||
+ | setelah saya masukan input value berupa K=10N/m , W1=10N, W2=20N, W3= 30N. Saya mendapatkan displacement berupa X1=6, K2=8,5, K3=11,5. | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | Tugas 3: menyelesaikan kasus Truss dengan open modelica | ||
+ | ---- | ||
+ | Pada pertemuan kemarin Pak Dai memberikan tugas pada kami untuk menyelesaikan tugas persoalan aplikasi dari statika struktur berupa trusses yang rumit seperti soal dibawah: | ||
+ | [[File:Soaltruss.png|600px|thumb|center]] | ||
+ | |||
+ | untuk menylesaikanya dalam bentuk modelica ada beberapa hal yang harus dilakukan, berikut langkah2nya: | ||
+ | |||
+ | '''Merubah elemen-elemen menjadi kode dalam modelica seperti''' | ||
+ | [[File:T3_1.png|600px|thumb|center]] | ||
+ | |||
+ | 2. Menentukan Stiffnes atau kekakuan dari setiap batang, dikarenakan kekakuan setiap batang belum diketahui, maka dari itu dengan rumus '''K=AE/L''' dengan luas penampang A , modulus elastisitas E, dimasukan nilai nilai yang ada sehingga | ||
+ | |||
+ | [[File:T3_2.png|600px|thumb|center]] | ||
+ | |||
+ | 3. setelah mendapatkan itu, kita harus mendapatkan persmaan global dari elemen berupa matriks K seperti | ||
+ | |||
+ | [[File:T3_3.png|600px|thumb|center]] | ||
+ | |||
+ | 4. Menentukan persamaan untuk elemen, setelah mendapatkan persamaan2 tadi maka kita harus membuat persamaan untuk tiap elemen nya. (pada persamaan tadi K untuk kekakuan dan e untuk elemen) | ||
+ | |||
+ | [[File:k1global.png|200px]] [[File:k3global.png|200px]] [[File:k6global.png|200px]] | ||
+ | [[File:k4global.png|200px]] | ||
+ | |||
+ | [[File:k2global.png|200px]] [[File:k5global.png|200px]] | ||
+ | |||
+ | setelah itu kita harus menyusun dan menggabungkan matriks untuk elemen2 tadi dengan Rumus '''[K]G= [K1]+[K2]+[K3]+[K4]+[K5]+[K6]''' | ||
+ | [[File:metnum_radit_8_4_1.png|600px|center]] | ||
+ | |||
+ | 5.setelah itu berikut penyelesaian yang saya lanjutkan di modelica: | ||
+ | |||
+ | [[File:T3_4.png|1000px|thumb|center]] (untuk mendapatkan U) | ||
+ | |||
+ | [[File:T3_5.png|1000px|thumb|center]] | ||
+ | [[File:T3_6.png|1000px|thumb|center]] | ||
+ | [[File:T3_7.png|1000px|thumb|center]] | ||
+ | |||
+ | hasil dari plotting tidak dilampirkan karena data2 terlalu panjang sehingga sulit di screenshot. | ||
+ | |||
+ | 6.setelah diselesaikan dengan modelica didapatkan nilai hasil untuk gaya reaksi (dengan menggunakan rumus {R}=[K]G{u}-{F} | ||
+ | |||
+ | [[File:T3_9.png|1000px|thumb|center]] | ||
+ | |||
+ | 6. Mendapatkan gaya internal dan normal stress | ||
+ | untuk menghitung normal sterss, perlu dilakukan perubahan hasil defleksi dari matriks koordinat global ke koordinat local. berikut contoh matriksnya. | ||
+ | |||
+ | [[File:T3_10.png|1000px|thumb|center]] | ||
+ | |||
+ | dengan penjelasan | ||
+ | [u] : Koordinat local | ||
+ | [U] : Koordinat global | ||
+ | [T] : Matriks translasi | ||
+ | |||
+ | dan setelah itu penyelesaian dilakukan oleh modelica. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | QUIZ Metnum | ||
+ | ---- | ||
+ | |||
+ | soal yang dijadikan quiz adalah soal no 4 dan 8. untuk flowchartnya, langkah yang dilakukan sama sehingga ada satu flowchart dan detail pengerjaan nya dijelaskan masing2 nomer | ||
+ | |||
+ | [[File:Quiz_Rangin_1.jpg|700px|thumb|center]] | ||
+ | |||
+ | [[File:Quiz_Rangin_2.jpg|700px|thumb|center]] | ||
+ | |||
+ | [[File:Quiz_Rangin_3.jpg|700px|thumb|center]] | ||
+ | |||
+ | |||
+ | |||
+ | Setelah itu pak Dai menginstruksikan kami untuk membuat modeling kasus tersebut dalam modelica. setelah memahami penyelesaian matematisnya | ||
+ | berikut langkah yang saya tempuh untuk memproses persoalan tersebut: | ||
+ | |||
+ | Pertama, saya membuat penyelesaian untuk K lokal nya: | ||
+ | |||
+ | [[File:Klokal2D.png|700px|thumb|center]] | ||
+ | [[File:Klokal2D2.png|700px|thumb|center]] | ||
+ | [[File:Klokal3.png|700px|thumb|center]] | ||
+ | |||
+ | dan dari hasil tersebut saya mendapatkan hasil sebagai berikut | ||
+ | |||
+ | [[File:Klokalhasil.png|700px|thumb|center]] | ||
+ | ---- | ||
+ | '''Pertemuan 5 : 7/12/2020''' | ||
+ | ---- | ||
+ | |||
+ | Pada pertemuan kali ini, kami membahas tentang soal quiz yang pada minggu sebelumnya diberikan. kita mempelakari soal ini dan diterapkan pada openmodelica untuk lebih memahami aplikasi dari OpenModelica dalam penyelesaian persoalan teknik real. pada pertemuan ini Ahmad Mohammad Fahmi menjelaskan pengerjaan kuis tersebut dengan modelling buatan nya. beberapa hal yang fahmi jelaskan adalah | ||
+ | |||
+ | -melakukan proses loooping | ||
+ | |||
+ | -membuat data dalam bentuk array | ||
+ | |||
+ | -menggunakan fungsi if | ||
+ | |||
+ | -class dan function dalam modelica | ||
+ | |||
+ | saya juga mengajukan beberapa pertanyaan kepada fahmi dikarenakan pada penjelasan banyak hal dan istilah baru yang saya ketahui | ||
+ | |||
+ | setelah itu, pak Dai memberi tugas kepada kami semua untuk memahami program fahmi dan mencobanya, sert memberi feedback berupa saran dan kritikan terkait modelling fahmi. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | Tugas 4 - 3D Trusses | ||
+ | ---- | ||
+ | |||
+ | [[File:Brtugas4.png|700px|thumb|center]] | ||
+ | |||
+ | dari tugas tersebut, saya coba memahami secara matematis dan melakukan flowchart seperti pertemuan sebelumnya | ||
+ | |||
+ | seperti: | ||
+ | |||
+ | 1. menentukan input A,E,L,teta,node dll | ||
+ | |||
+ | 2.membuat matriks stifness matriks untuk tiap elemen | ||
+ | |||
+ | 3. mengubah matriks elemen ke matriks global | ||
+ | |||
+ | 4. menghitung Kg Total | ||
+ | |||
+ | dan tahapan lainya.. | ||
+ | |||
+ | setelah itu membuat class pada open modelica yaitu | ||
+ | |||
+ | 1. Class soal | ||
+ | |||
+ | 2. Function Stiffness Matrix elemen | ||
+ | |||
+ | 3. Function Stiffness Matrix Global | ||
+ | |||
+ | 4. Function Sum Stiffness Matrix Global | ||
+ | |||
+ | 5. Function Check Force ( memastikan perhitungan benar atau tidak ( force total harus sama dengan 0)). | ||
+ | |||
+ | 6. Boundary Stiffness Matrix Global | ||
+ | |||
+ | 7. Gaus Jordan (U) | ||
+ | |||
+ | 8.Reaction Force | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | '''Pertemuan 7''' | ||
+ | ---- | ||
+ | |||
+ | Pada pertemuan ini kami dijelaskan mengenai optimization yaitu bracket optimization melalui golden method, penjelasan dilakukan melalui ppt dan pptnya dishare melalui whatsapp grup. secara singkat metode ini digunakan untuk mengetahui nilai maksimum minimum lokal dan maksimum minimum global. | ||
+ | |||
+ | [[File:Brpertemuan7.png|500px|thumb|center]] | ||
+ | |||
+ | |||
+ | ---- | ||
+ | '''Muhasabah Diri''' | ||
+ | ---- | ||
+ | |||
+ | Muhasabah diri saya mengenai pengetahuan saya selama belajar metode numerik dari awal tersusun dari beberapa parameter, yang pertama : seberapa saya paham mengenai hal yang diajarkan | ||
+ | |||
+ | kedua : seberapa saya bisa mengaplikasikanya dalam bentuk masalah ( soal atau modelica) | ||
+ | |||
+ | ketiga : seberapa besar usaha saya untuk belajar lebih mengerti metode numerik | ||
+ | |||
+ | dari awal belajar metode numerik saya selalu berusaha mengikuti kelas dan ikut aktif dalam kelas agar lebih memperdalam pemahaman saya. sejauh belajar metode numerik saya mempelajari semua yang telah diajari dengan referensi buku dan kuliah yang saya ikuti. | ||
+ | |||
+ | dan setelah mencoba menggunakan modelica, pada pertemuan awal-awal saya baru mengetahui tentang per codingan. awalnya saya bisa mengikuti saat awal belajar penerapan metode numerik yg dipelajari sebelumnya, seperti mencari mean, mencari bracketing methods, mencoba memanggil fungsi terpisah, dll. | ||
+ | |||
+ | namun disaat langsung menerapkan pada fenomena trusses, saya agak kesulitan karena tidak paham awalnya. saya memahami fenomena fisiknya namun saya masih sulit untuk mengerjakan sendiri karena seringkali bingung apa coding yang harus dibangun. namun saat mendengarkan ahmad atau pak dai menjelaskan, saya bisa mengikuti. namun saat akan menjelaskan sendiri atau mengerjakan nya, seringkali saya merasa kesulitan mengartikan fenomena fisik ke coding modelica | ||
+ | |||
+ | |||
+ | ---- | ||
+ | '''PROGRESS TUGAS BESAR METODE NUMERIK''' | ||
+ | ---- | ||
+ | |||
+ | Untuk akhir dari Pembelajaran Metode Numerik menggunakan OpenModelica, kami ditugaskan untuk merancang satu tugas besar. Tugas ini adalah aplikasi Openmodelica dalam kasus optimasi trusses. Secara garis besar, kasus trusses yang sudah ditentukan dilakukan pemodelan melalui coding modelica, setelah itu mulai lah pross optimasi menggunakan program modelica pula. Untuk kasus yang digunakan, ditentukan oleh Pak Dai secara langsung. berikut gambar kasus desain rangka sederhana yang akan dioptimasi: | ||
+ | |||
+ | [[File:Brtubes.png|600px|thumb|center]] | ||
+ | [[File:Brtubes2.png|500px|thumb|center]] | ||
+ | |||
+ | Dalam kasus tersebut dapat dilihat berupa rangka berbentuk ''tray'' dengan 4 lantai. Dalam rangka tersebut lalu diaplikasikan beban sebesar 1000 N dan 2000 N pada sisi lainya. Dimensi yang dianjurkan adalah Panjang = 0.6 m, Lebar = 0.75 m, dan tinggi = 1.8 m. Beban diaplikasikan pada lebar rangka dengan panjang 0.75m. Tugas kita adalah mengoptimasikan desain tersebut dengan mempertimbangkan sisi efisiensi ekonomi dengan tetap mempertimbangkan safety factor yang wajar. Untuk optimasi sendiri, nantinya akan dilakukan dengan metode curve-fitting seperti least square polynomial. Pada tugas ini, kami pula harus menentukan jenis material dan luas penampang yang akan diaplikasikan. Material dan jenis penampang akan berpengaruh nantinya terhadap harga produk. | ||
+ | |||
+ | Proses pemodelan dari rangka ini dilakukan menggunakan program OpenModelica. 3 kelas kami sepakat untuk menggunakan coding rancangan Josiah, Ahmad Fahmi, serta Christo dalam hal pemodelan serta optimasinya. Nantinya, kami secara individu akan menganalisa design rangka, optimasi, dan materialnya. Namun, Karena banyak darikami yang belum begitu paham secara detail terhadap pemodelan ini, kami melakukan diskusi secara daring sebanyak 2 kali dengan teman2 perancang Pemodelan Modelica. Pada pertemuan tersebut, saya jadi lebih memahami program yang akan kami pakai, sebenarnya program final yang akan diambil adalah program ide josiah yang programnya lebih singkat namun ternyata pemahaman nya lebih rumit. Berikut dokumentasi pertemuan diskusi pertama dan kedua yang saya hadiri. | ||
+ | |||
+ | '''Pertemuan diskusi 1''' | ||
+ | [[File:Brdiskusi.jpg|500px|thumb|center]] | ||
+ | |||
+ | '''Pertemuan diskusi 2''' | ||
+ | [[File:Brdiskusi2.png|500px|thumb|center]] | ||
+ | |||
+ | Pada pertemuan pertama, saya mulai memahami program modeling yang digunakan. terdapat input yang dapat kita sesuaikan dengan analisis kita yaitu: Parameter Elastisitas (berkaitan dengan material yang digunakan), parameter luas penampang, bentuk design rangka (yang dikonversikan menjadi parameter no point, trusses, serta definisi koordinat dan connection nya). | ||
+ | |||
+ | Dalam tahap pendeklarasian, kita harus mendefinisikan point sambungan serta jumlah trusses, point dan jumlah sambungan ini akan seiring dengan bentuk design kita (penggunaan inventor atau sketsa tangan akan mempermudah sebelum pemodelan dibuat). setelah itu diperlukan elemen area berupa satuan luas. setelah itu parameter elastisitas diperlukan sesuai material yang digunakan, untuk ujicoba pertama, digunakan material SS304 dengan elastisitas 193 x 10^9 N/m^2. Hal-hal tadi adalan pendeklarasian dari komponen dasar pemodelan. Berikut bentuk pemodelan dalam aplikasi Open Modelica nya : | ||
+ | |||
+ | //define initial variable | ||
+ | parameter Integer Points=16; //Number of Points | ||
+ | parameter Integer Trusses=24; //Number of Trusses | ||
+ | parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) | ||
+ | parameter Real Elas=193e9; //Elasticity SS 304 | ||
+ | |||
+ | Setelah Komponen dasar pemodelan dideklarasikan, dilakukan pendefinisian connection & koordinat trusses. | ||
+ | |||
+ | Untuk define connection, dibuat kumpulan matriks 1x2 yang berisi 2 nama truss yang dihubungkan. untuk mempermudah pemahaman, susunan koneksi rangka dibangun berdasarkan tingkatan rangka pada desain, seperti lantai 1, 2 , 3 dll. koneksi-koneksi yang ada akan bervariasi sesuai dengan desain dari rangka nya. | ||
+ | |||
+ | Berikut contoh pemodelan Connection yang ada pada program: | ||
+ | |||
+ | //define connection | ||
+ | parameter Integer C[Trusses,2]=[1,5; | ||
+ | 2,6; | ||
+ | 3,7; | ||
+ | 4,8; | ||
+ | 5,6; //1st floor | ||
+ | 6,7; //1st floor | ||
+ | 7,8; //1st floor | ||
+ | 5,8; //1st floor | ||
+ | 5,9; | ||
+ | 6,10; | ||
+ | 7,11; | ||
+ | 8,12; | ||
+ | 9,10; //2nd floor | ||
+ | 10,11;//2nd floor | ||
+ | 11,12;//2nd floor | ||
+ | 9,12; //2nd floor | ||
+ | 9,13; | ||
+ | 10,14; | ||
+ | 11,15; | ||
+ | 12,16; | ||
+ | 13,14;//3rd floor | ||
+ | 14,15;//3rd floor | ||
+ | 15,16;//3rd floor | ||
+ | 13,16];//3rd floor | ||
+ | |||
+ | Selanjutnya, kita diharuskan untuk menuliskan koordinat dari point connection tadi. Berhubung model yang kita buat tadi dalam bentuk 3 dimensi, maka Pendefinisian ada ditulis dalam matriks 1x3 dimana setiap nilai menunjukan jarak dari titik referensi 0,0,0 . bentuk matriksnya seperti [rx.ry.rz]. untuk setiap lantai, ada 4 titik poin, sehingga total ada 16 point pada desain rangka yang diberikan. berikut coding untuk mendefinisikan koordinat point | ||
+ | |||
+ | parameter Real P[Points,3]=[0.3,-0.375,0; //1 | ||
+ | -0.3,-0.375,0; //2 | ||
+ | -0.3,0.375,0; //3 | ||
+ | 0.3,0.375,0; //4 | ||
+ | |||
+ | 0.3,-0.375,0.6; //5 | ||
+ | -0.3,-0.375,0.6; //6 | ||
+ | -0.3,0.375,0.6; //7 | ||
+ | 0.3,0.375,0.6; //8 | ||
+ | |||
+ | 0.3,-0.375,1.2; //9 | ||
+ | -0.3,-0.375,1.2; //10 | ||
+ | -0.3,0.375,1.2; //11 | ||
+ | 0.3,0.375,1.2; //12 | ||
+ | |||
+ | 0.3,-0.375,1.8; //13 | ||
+ | -0.3,-0.375,1.8; //14 | ||
+ | -0.3,0.375,1.8; //15 | ||
+ | 0.3,0.375,1.8]; //16 | ||
+ | |||
+ | Setelah itu, dituliskan definisi terhadap beban yang diaplikasikan. beban yang diaplikasikan adalah 2000N dan 1000N tepat ditengah kedua rangka paling atas seperti gambar. Namun, karena analisa ini dilakukan berdasarkan point connection, maka beban ditulis berdasarkan beban yang dirasakan oleh point, maka beban menjadi masing-masing 500,500,1000, dan 1000. Beban dituliskan dalam bentuk matriks 1x3 untuk setiap truss dari lantai satu ke lantai 3. berikut coding untuk mendefinisikan aplikasi beban pada model trusses: | ||
+ | |||
+ | parameter Real F[Points*3]={0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,0, | ||
+ | 0,0,-500, | ||
+ | 0,0,-1000, | ||
+ | 0,0,-1000, | ||
+ | 0,0,-500}; | ||
+ | |||
+ | Terakhir, dalam tahap pendeklarasian, diperlukan komponen komponen perhitungan seperti displacement, reaction, stress, safety, dll. codingnya seperti ini: | ||
+ | |||
+ | Real displacement[N], reaction[N]; | ||
+ | Real check[3]; | ||
+ | |||
+ | Real stress1[Trusses]; | ||
+ | Real safety[Trusses]; | ||
+ | Real dis[3]; | ||
+ | Real Str[3]; | ||
+ | |||
+ | Saat masuk tahap perhitungan, diperlukan pendeklarasian pula untuk notasi-notasi yang dipakai. dalam pembuatab global matriks diperlukan notasi notasi baru, Nantinya ada matriks X (matriks 3x3 hasil kali A*Elastisitas/L dikali dengan matriks). lalu ada notasi cx,cy,cz, untuk membantu perhitungan matriks global. dan juga matriks q1 dan q2 [1x3] yang akan menjadi variable yang mempermudah proses perhitungan matriks global.Tidak lupa juga error untuk validasi nya. berikut codingnya | ||
+ | |||
+ | parameter Integer N=3*Points; | ||
+ | Integer boundary[3*size(b,1)]=cat(1,(3*b).-2,(3*b).-1,3*b); | ||
+ | Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], | ||
+ | id[N,N]=identity(N), cx, cy, cz, L, X[3,3]; | ||
+ | Real err=10e-10, ers=10e-4; | ||
+ | |||
+ | Lalu mulailah algoritma pembentukan Global matriks dengan notasi G. pada proses ini dilakukan looping notasi i dan j yang akan mengisi variable q1 dan q2. loop i akan memanggil matriks trusses (connection) pada kolom 1. sedangkan j, akan looping untuk angka 1 sampai 3. Hingga q berada dalam fungsi j menjadi q[j]. | ||
+ | |||
+ | algorithm | ||
+ | //Creating Global Matrix | ||
+ | G:=id; | ||
+ | for i in 1:Trusses loop | ||
+ | for j in 1:3 loop | ||
+ | q1[j]:=P[C[i,1],j]; | ||
+ | q2[j]:=P[C[i,2],j]; | ||
+ | end for; | ||
+ | |||
+ | //Solving Matrix | ||
+ | L:=Modelica.Math.Vectors.length(q2-q1); | ||
+ | cx:=(q2[1]-q1[1])/L; | ||
+ | cy:=(q2[2]-q1[2])/L; | ||
+ | cz:=(q2[3]-q1[3])/L; | ||
+ | X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz; | ||
+ | cy*cx,cy^2,cy*cz; | ||
+ | cz*cx,cz*cy,cz^2]; | ||
+ | |||
+ | L diselesaikan dengan menentukan jarak vektor. notasi cx,cy,cz, membantu saat dibuat matriks u. notasi cx sebenarnya menjadi semacam jalan meringkas dibentuknya matriks stifness. | ||
+ | |||
+ | selanjutnya perhitungan menggunakan coding berikut: | ||
+ | |||
+ | //Transforming to global matrix | ||
+ | g:=zeros(N,N); | ||
+ | for m,n in 1:3 loop | ||
+ | g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n]; | ||
+ | g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n]; | ||
+ | g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n]; | ||
+ | g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n]; | ||
+ | end for; | ||
+ | |||
+ | G_star:=G+g; | ||
+ | G:=G_star; | ||
+ | end for; | ||
+ | |||
+ | //Implementing boundary | ||
+ | for i in boundary loop | ||
+ | for j in 1:N loop | ||
+ | G[i,j]:=id[i,j]; | ||
+ | end for; | ||
+ | end for; | ||
+ | |||
+ | //Solving displacement | ||
+ | displacement:=Modelica.Math.Matrices.solve(G,F); | ||
+ | |||
+ | //Solving reaction | ||
+ | reaction:=(G_star*displacement)-F; | ||
+ | |||
+ | //Eliminating float error | ||
+ | for i in 1:N loop | ||
+ | reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i]; | ||
+ | displacement[i]:=if abs(displacement[i])<=err then 0 else | ||
+ | displacement[i]; | ||
+ | end for; | ||
+ | |||
+ | //Checking Force | ||
+ | check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))}); | ||
+ | check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))}); | ||
+ | check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); | ||
+ | |||
+ | for i in 1:3 loop | ||
+ | check[i] := if abs(check[i])<=ers then 0 else check[i]; | ||
+ | end for; | ||
+ | |||
+ | //Calculating stress in each truss | ||
+ | for i in 1:Trusses loop | ||
+ | for j in 1:3 loop | ||
+ | q1[j]:=P[C[i,1],j]; | ||
+ | q2[j]:=P[C[i,2],j]; | ||
+ | dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]); | ||
+ | end for; | ||
+ | |||
+ | //Solving Matrix | ||
+ | L:=Modelica.Math.Vectors.length(q2-q1); | ||
+ | cx:=(q2[1]-q1[1])/L; | ||
+ | cy:=(q2[2]-q1[2])/L; | ||
+ | cz:=(q2[3]-q1[3])/L; | ||
+ | X:=(Elas/L)*[cx^2,cx*cy,cx*cz; | ||
+ | cy*cx,cy^2,cy*cz; | ||
+ | cz*cx,cz*cy,cz^2]; | ||
+ | |||
+ | Str:=(X*dis); | ||
+ | stress1[i]:=Modelica.Math.Vectors.length(Str); | ||
+ | end for; | ||
+ | |||
+ | //Safety factor | ||
+ | for i in 1:Trusses loop | ||
+ | if stress1[i]>0 then | ||
+ | safety[i]:=Elas/stress1[i]; | ||
+ | else | ||
+ | safety[i]:=0; | ||
+ | end if; | ||
+ | end for; | ||
+ | |||
+ | end Trusses_3D_Tugas_Besar_Safety; | ||
+ | |||
+ | lalu, nilai yang kita cari dari pemodelan ini adalah reaction force, stress, displacement, dan yang terpenting safety factor ( yield/ stress) | ||
+ | |||
+ | berikut hasil nilai dari simulasi nya | ||
+ | |||
+ | [[File:Brdisplacement.png|500px|thumb|center]] | ||
+ | [[File:Brreaction.png|500px|thumb|center]] | ||
+ | [[File:Brsafety.png|500px|thumb|center]] | ||
+ | [[File:Brstress.png|500px|thumb|center]] | ||
+ | |||
+ | '''OPTIMASI''' | ||
+ | optimasi berupa metode yang digunakan demi mendapatkan nilai yang maksimal dari rasio rasio yang ada, dalam hal ini kami membuat curve fitting antara rasio safety factor dengan harga material: | ||
+ | |||
+ | secara garis besar, josiah mengajarkan kami seperti berikut: | ||
+ | |||
+ | Untuk nilai elastisitas/material yang sama, langkahnya sebagai berikut: | ||
+ | |||
+ | Mencari data yield strength dan elasticity dari material yang dipilih | ||
+ | Mencari harga truss sesuai dengan material. | ||
+ | Menghitung nilai safety factor. | ||
+ | Membuat rasio (efficiency) dari safety factor dengan total cost. | ||
+ | Membuat persamaan (mencari Coe) antara rasio dengan area menggunakan curve-fitting. | ||
+ | Melakukan optimasi menggunakan metode golden section. | ||
+ | |||
+ | Untuk luas penampang yang sama, langkahnya sebagai berikut: | ||
+ | |||
+ | Mendefinisikan luas penampang yang sama untuk seluruh variasi material. | ||
+ | Mencari harga untuk 3 jenis variasi material. | ||
+ | Menghitung nilai safety factor pada 3 variasi truss. | ||
+ | Membuat rasio antara safety factor dengan total cost. | ||
+ | Membuat persamaan (mencari Coe) antara rasio dengan area menggunakan curve-fitting. | ||
+ | Melakukan optimasi menggunakan metode golden section. | ||
+ | |||
+ | namun saya masih belum mengerti untuk penggunaan golden section. | ||
+ | |||
+ | untuk optimasi curve fitting nya, menggunakanaplikasi modeilca. aprogram ini dibuat oleh josiah dan sudah saya usahakan pahami, namun dari awal saya paham curve fitting dengan aplikasi excel yang diajarkan oleh Prof. Engkos. berikut programing curve fitting nya: | ||
+ | |||
+ | function Curve_Fitting | ||
+ | |||
+ | input Real X[:]; | ||
+ | input Real Y[size(X,1)]; | ||
+ | input Integer order=2; | ||
+ | output Real Coe[order+1]; | ||
+ | |||
+ | protected | ||
+ | Real Z[size(X,1),order+1]; | ||
+ | Real ZTr[order+1,size(X,1)]; | ||
+ | Real A[order+1,order+1]; | ||
+ | Real B[order+1]; | ||
+ | |||
+ | algorithm | ||
+ | |||
+ | for i in 1:size(X,1) loop | ||
+ | for j in 1:(order+1) loop | ||
+ | Z[i,j]:=X[i]^(order+1-j); | ||
+ | end for; | ||
+ | end for; | ||
+ | ZTr:=transpose(Z); | ||
+ | |||
+ | A:=ZTr*Z; | ||
+ | B:=ZTr*Y; | ||
+ | Coe:=Modelica.Math.Matrices.solve(A,B); | ||
+ | //Coe:=fill(2,size(Coe,1)); | ||
+ | |||
+ | end Curve_Fitting; | ||
+ | /* | ||
+ | for i in 1:3 loop | ||
+ | for j in 1:Points loop | ||
+ | R[j]:=reaction[3*(j-1)+i]; | ||
+ | end for; | ||
+ | Sur[i]:=sum(R); | ||
+ | end for; | ||
+ | */ | ||
+ | |||
+ | untuk tahap selanjutnya, dilakukan tahap optimasi dengan variable : panjang, tebal, jenis material dan harga nya. Namun, untuk percobaan kali ini, saya memakai material dan profil yang tetap yaitu profil siku. serta harga nya dalam satuan 6m. untuk materialnya, saya menggunakan SS316L dengan panjang 6m. harga saya referensikan dari situs penjual besi wijaya makmur. | ||
+ | |||
+ | dibawah ini ada contoh pembuatan tabel dari asistensi dengan josiah | ||
+ | |||
+ | dilakukan pengklasifikasian material dari dimensi dan tebalnya, setelah itu dilakukan simulasi dengan pemodelan tadi sehingga didapatkan safety factor. | ||
+ | |||
+ | |||
+ | nantinya akan dibuat curve-fitting dari rasio SF-Cost dengan area dan elastisity dengan cost. | ||
+ | |||
+ | [[File:Brexcel.png|500px|thumb|center]] | ||
+ | |||
+ | dan berikut detail data yang saya buat dalam excel: | ||
+ | |||
+ | [[File:Brexcel1.png|500px|thumb|center]] | ||
+ | |||
+ | setelah satu per satu data dimasukan ke openmodelica dan di running, maka didapatkan hasil seperti dibawah. hasil dibawah didapatkan nilai stress, safety factor, serta rasio antara safety factor dengan cost. nilai2 tersebut adalah nilai yang nantinya akan dilakukan curve fitting. dapat dicatat hasil simulasi ini adalah hasil simulasi untuk Elastisitas tetap (material yang sama dengan variasi area dan harga) | ||
+ | [[File:Brhasilsimulasi.png|500px|thumb|center]] | ||
+ | |||
+ | setelah didapatkan data tersebut, langkah selanjutnya dalah melakukan optimasi. namun pertama-tama saya melakukan proses curve fitting. curve fitting akan menghasilkan fungsi polinomial dari data-data yang ada. untuk curve fitting, saya mencari fungsinya melalui website Online Curve Fitting. dan hasil curve fitting saya kembalikan lagi kepada excel untuk diolah kembali ke langkah selanjutnya | ||
+ | |||
+ | [[File:Brcurvefitting.png|500px|thumb|center]] | ||
+ | |||
+ | dan setelah hasil curve fitting didapatkanlah rumus =0.00002338565+(X*0.004578001)-(X^2*4.554085). dan bentuk hasil data serta grafiknya seperti ini. | ||
+ | [[File:Brhasilcf.png|500px|thumb|center]] | ||
+ | |||
+ | setelah itu dilakukan optimasi. dari sana dapat disimpulkan bahwa untuk jenis material dan elastisitas yang sama, jenis rangka SS316L terbaik adalah dengan dimensi 50x50x5 mm. dikarenakan memiliki S.F/cost ratio yang paling tinggi dan harga yang memadai. | ||
+ | |||
+ | Selanjutnya untuk proses area locked yaitu membandingkan 3 jenis material dengan area yang sama. dilakukan langkah yang sama sehingga hasilnya seperti dibawah ini | ||
+ | [[File:Brarealocked.png|500px|thumb|center]] | ||
+ | |||
+ | Setelah itu dilakukanlah proses curve fitting dan optimasi dengan golden ratio | ||
+ | |||
+ | [[File:Brhasilbro.png|500px|thumb|center]] | ||
+ | |||
+ | dapat disimpulkan bahwa material terbaik untuk ini adalah SS 304 | ||
+ | |||
+ | |||
+ | = UAS Metnum 03 = | ||
+ | |||
+ | |||
+ | untuk soal jawaban uas, selain dikirim melalui japri kepada Pak Dai, saya melampirkan jawaban UAS saya yang berbentuk pdf di drive google dengan link berikut https://drive.google.com/file/d/1D2Q7BbDvHsLiBVyeYQuCgi8NPUoiYytv/view?usp=sharing |
Latest revision as of 23:43, 13 January 2021
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ
_Contents
Assalamualaikum.Wr.Wb. Page di wiki ini menjadi jurnal proses belajar saya pribadi selama belajar di kelas Metoda Numerik 3 setelah UTS. semoga media ini menjadi perantara saya mendapatkan ilmu. aamiin
1.MATERI METODE NUMERIK SEBELUM UTS
Sebelum menjelaskan materi apa saja yang saya pelajari sebelum UTS, alangkah lebih baiknya saya mmenjelaskan penjelasan saya secara garis besar mengenai metode numerik ini. menurut pemahaman saya sejauh ini metode numerik adalah salah satu cara penyelesaian matematika yang memanfaatkan perhitungan berulang dan pendekatan terhadap suatu nilai dalam mencari persamaan,turunan,integral, maupun data. dalam metoda numerik ini seringkali digunakan asumsi terlebih dahulu dan dengan perhitungan yang berulang maka didapatkan nilai yang mendekati eksak. walaupun tidak selalu dalam prakteknya dilakukan perhitungan berulang, namun menurut hemat saya iterasi dalam metode numerik dapat meningkatkan akurasi dari suatu nilai yang dicari.
Sebagai contoh, Interpolasi. Interpolasi adalah proses mencari sebuah data dengan memanfaatkan data sebelum dan sesudahnya. sebenarnya data yang dihasilkan dari proses interpolasi bukanlah data eksak sebenarnya. namun data yang didapatkan dari metoda interpolasi tersebut lah yang paling mendekati dengan melihat pola variabel dan hasil dari data sebelum dan sesudahnya.
Contoh lain dalam Roots of Equation. metode Bracketing Method contohnya. untuk mencari akar dari sebuah persamaan, kita akan diberikan range nilai dari akar tersebut. namun setelah melakukan perhitungan terus menerus maka range tersebut akan semakin kecil sehingga semakin mendekati suatu nilai. hingga akhirnya error atau dx nya semakin kecil hingga error yang diperbolehkan sebelumnya. semakin banyak kita melakukan iterasi maka semakin mendekati sebuah nilai hasilnya.
Sebelum UTS, Kelas Metode Numerik 3 diampu oleh Pak Engkos. dengan bantuan referensi buku Numerical Method For Engineers karya Steven Chapra, kami mempelajari beberapa chapter diantaranya :
1. Part One - Chapter 4 tentang Truncation Error
2. Part TWO (Tentang Roots of Equation) - Bracketing method, Open method, dan Roots of Polynomials
3. Chapter 9 - Gauss Elimination
4. Part five (Curve Fitting) - Least Square dan Interpolation
5. Part Six ( Numerical Differentiation) - Forward, mid, dan backward method
Dari beberapa bagian tersebut akan saya jelaskan lebih lanjut lagi dibawah mengenai apa saja yang telah saya pelajari sampai dengan UTS.
2.Roots of Equation
Pada dasarnya Roots of Equation dalam metode numerik adalah proses mencari akar-akar dari sebuah persamaan. jika dalam metode eksak terkadang sulit untuk mencari akar persamaan, metode numerik ini dapat membantu untuk mencari nilai nya. saat proses belajar kemarin, kami mencoba mencari akar-akar persamaan menggunakan bantuan microsoft excel untuk mencari akar persamaan nya.
Untuk mencari akar sendiri ada dua garis besar yaitu Open Method dan Bracketing method.
Bracketing Method.seperti nama nya, Bracketing method menggunakan kurungan (atau bisa dibilang dua titik yang mengapit nilai) untuk mencari nilai nya. seiring dilakukanya iterasi, maka kurungan tersebut akan semakin kecil dan semakin mendekati nilai sebenarnya. sebagai contoh, suatu akar adalah 5, Bracket akan dibuat pada titik 1 dan 10 dan seiring dilakukanya iterasi berulang maka kurung tersebut akan menjadi 2&9; 3&7; 4&6; 4,5&5,5 dst.. Bracketing method terbagi menjadi 3 yaitu :
a. Bisection Method : disebut juga metode Bagi-Dua dilakukan dengan terlebih dahulu memilih bagian mana akar berada. dan setelah dilakukan perhitungan dicari bagian mana yang mengandung akar (bagian ini menjadi interval baru). bagian yang tidak mengandung akar dibuang. misal diasumsikan bahwa fungsi f(x) mengandung akar, fungsi kontinyu pada (a,b) dan f(a)f(b)<0 ini berarti f(x) memiliki akar pada interval (a,b). kemudian didefinisikan titik tengah yaitu c= (a+b)/2. lalu dicek pada bagian mana yang mengandung akar, cara mengeceknya adalah dengan mencari apakah f(a).f(c)<0 atau f(b).f(c)< 0. setelah dihitung, maka nilai yang menghasilkan <0 adalah yang mengandung akar (contoh f(a) dan f(c)). sehingga titik a dan c lah yang menjadi interval baru. proses tersebut dilakukan berkali-kali hingga didapatkan error yang sangat kecil atau toleransi yang diinginkan. Pada saat menggunakan teknik ini, kemarin kami menggunakan bantuan microsoft excel.
Berikut adalah salah satu contoh excel dari Bisection Method
b. False Position
Metode false position atau sering disebut metode titik palsu adalah bentuk modifikasi dari bentuk bagi dua yang dinilai kurang efisien dalam menentukan titik nilai. Metode ini menggunakan pengertian grafis dengan menghubungkan nilai dari kedua titik dengan sebuah garis. Garis tersebut akan memotong di sumbu-x dan akan menjadi taksiran akar yang akan diperbaiki ( semakin mendekati nilai sebenarnya setelah dilakukan perhitungan berulang)
Dengan rumus mencari false position/Xr sebagai berikut:
Pada saat kemari, file excel saya untuk formula false position ini hilang namun berikut contoh formula excel yang saya dapatkan diinternet
Open Method berbeda dengan bracketing method, open method hanya memerlukan 1 namun terkadang 2 nilai x perkiraan yang tidak mengurung akar persamaan sebenarnya. saat perhitungan divergen, maka nilai akan menjauhi akar sebenarnya. Namun saat perhitungan konvergen, akar akan ditemukan lebih cepat daripada bracketing method. Open method ini dibagi menjadi 3 metode yaitu : simple fixed point, Newton-Rhapson, dan Secant.
a. Simple Point
b. Newton-Rhapson
c. Secant
Tugas 1, video pembelajaran modelica
Minggu kemarin, Pak Dai memberikan tugas untuk mempelajari modelica dan membuat video tentang pembelajaran nya dan diupload di youtube. berikut hasil video saya dapat dilihat melalui tautan dibawah. Part 1 - https://youtu.be/jqawTQHJBXU Part 2 - https://youtu.be/9pk7_Mm3Yn8
Pertemuan ke-2 Metnum 03(16/11/2020)
Pada pertemuan kali ini, pertama-tama setiap mahasiswa melaporkan hasil belajarnya mengenai modelica, bagaimana penggunaan dasarnya hingga operasi penggunaan nya.Pak Dai menugaskan di kelas untuk mencoba membuat 2 kelas dengan fungsi class dan class biasa. class function tersebut diisi algoritma untuk y=x+10 yang dimana function tersebut akan dipanggil kembali di class yang satu lagi. pada class yang biasas didefinisikan parameter bahwa x=2 dan y real. pada equation function tadi dipanggil sehingga persamaan equation nya menjadi y= function(x) + 10. sehingga saat di running saya mendapatkan hasil 22. kesalahan dasar saya saat menggunakan modelica adalah lupa nya penggunaan semicolon dan juga lupa mendefinisikan parameter seperti y real.
setelah itu, pak dai menugaskan untuk mencoba membuat model sederhana untuk mencari rata2. gambar-gambar dibawah menunjukan hasil percobaan saya. saya mendefinisikan variabel nya berupa x1, x2, x3, x4, dan x5. dan pada bagian equation terlihat saya menulis y=(x1+x2+x3+x4+x5)/5. dan setelah di running pada gambar bawahnya terlihat hasilnya bahwa y(rata-rata) nya hasilnya 3.
Percobaan sederhana modelica (tugas dari pak dai) untuk membuat program mencari rata rata dari beberapa data. saya menggunakan x1-x5.
Dan berikut hasilnya setelah dirunning, dapat dilihat rata-rata nya (y) sebesar 3
Lalu untuk selanjutnya pak dai memberikan kita semua tugas untuk membuat model modelica lagi untuk membuat class dengan type function untuk menyelesaikan persamaan-persamaan aljabar simultan ( metoda gauss elimination, gauss seidl, dll...) dan sebuah class function untuk menjalankan fungsi tersebut. tidak lupa juga untuk menggunakan looping dan variable arrays...
Tugas02- Gauss Elimination
Pada pertemuan 2 kemarin, seperti yang telah dijelaskan sebelumnya, pak Dai memberi kami tugas untuk menyelesaikan salah satu persamaan linear simultan dengan open modelica. saya memilih untuk mengerjakan Metode Gauss Elimination sebagai objek percobaan saya didalam penyelesaian modelica. pertama-tama saya mencari soal tentang 3 persamaan linear 3 variable yang nantinya akan diubah menjadi matriks 3x3 dengan persamaan A*B=C. dimana matriks A[3x3], B[3], dan C[3]. soulusi yang dicari adalah pada nilai B1,B2, dan B3.
berikut soal nya...
Setelah itu, persamaan2 tersebut dibuat dalam bentuk matriks sebelum diselesaikan menggunakan gauss, seperti ini...
sesuai dengan perintah pak dai, kita dianjurkan membuat 2 kelas dalam modelica. yang ertama adalah kelas function dimana kita memasukan fungsi algoritma nya. dan kelas yang kedua adalah class dimana nanti function tadi di recall dan dimasukan variable nya lalu solve dilakukan..
Function Class
function class diisi dengan mendeclare nilai input,outputdan logartima dimana input : A[3,3] dan C[3]
output : B[3]
Logaritma : B:=Modelica.Math.Matrices.solve(A,C)
- logaritma menggunakan fungsi yang sudah ada didalam modelica yaitu fungsi matrices untuk gauss elimination.
Class gauss elimination
dalam kelas ini, fungsi tadi yang bernama "fungsii" direcall pada kolom equation dengan memasukan A&C sebagai inputnya dan B outputnya. namun sebelum itu terlebih dahulu saya mendeclare nilai2 inputanya tadi seperti digambar atas tersebut.
Hasil
setelah itu, kita dapat melakukan plotting dan mendapatkan hasilnya. dari gambar tersebut kita dapat mengetahui nilai dari B adalah = -3, 2, -1.
Note: arahan dari pak dai untuk menggunakan looping dan arrays masih belum dapat saya lakukan karena masih saya pelajari dan belum betuk-betul saya pahami. sumber yang saya pelajari tidak secara langsung mencontohkan aplikasinya pada eliminasi gauss. mungkin kedepanya saya akan dapat melakukan itu.
Pertemuan 3 : 23/11/2020
Pada pertemuan ke 3 ini, pak dai memberikan tugas didalam kelas untuk menyelesaikan persoalan sistem pegas yang ada dalam contoh buku Numerical Method for Engineer 7th pada persoalan 12.11. Dimana contoh strukturnya adalah sebagai berikut.
dan dari fenomena diatas, saya jabarkan dalam model persamaan matematika sehingga didapatkan persamaan matriksnya, berikut penjabaranya semoga tulisanya dapat terbaca jelas.
Setelah itu didapatkan persamaan matriks k nya. Lalu seperti tugas yang kemarin, saya menggunakan dua kelas yaitu kelas function dan satu lagi class. maka dengan pola yang sama, INPUT nya matriks K, dan W. dan OUTPUTnya berupa value dari displacement x. berikut footage nya dari function,class, dan hasil plottingnya.
setelah saya masukan input value berupa K=10N/m , W1=10N, W2=20N, W3= 30N. Saya mendapatkan displacement berupa X1=6, K2=8,5, K3=11,5.
Tugas 3: menyelesaikan kasus Truss dengan open modelica
Pada pertemuan kemarin Pak Dai memberikan tugas pada kami untuk menyelesaikan tugas persoalan aplikasi dari statika struktur berupa trusses yang rumit seperti soal dibawah:
untuk menylesaikanya dalam bentuk modelica ada beberapa hal yang harus dilakukan, berikut langkah2nya:
Merubah elemen-elemen menjadi kode dalam modelica seperti
2. Menentukan Stiffnes atau kekakuan dari setiap batang, dikarenakan kekakuan setiap batang belum diketahui, maka dari itu dengan rumus K=AE/L dengan luas penampang A , modulus elastisitas E, dimasukan nilai nilai yang ada sehingga
3. setelah mendapatkan itu, kita harus mendapatkan persmaan global dari elemen berupa matriks K seperti
4. Menentukan persamaan untuk elemen, setelah mendapatkan persamaan2 tadi maka kita harus membuat persamaan untuk tiap elemen nya. (pada persamaan tadi K untuk kekakuan dan e untuk elemen)
setelah itu kita harus menyusun dan menggabungkan matriks untuk elemen2 tadi dengan Rumus [K]G= [K1]+[K2]+[K3]+[K4]+[K5]+[K6]
5.setelah itu berikut penyelesaian yang saya lanjutkan di modelica:
(untuk mendapatkan U)hasil dari plotting tidak dilampirkan karena data2 terlalu panjang sehingga sulit di screenshot.
6.setelah diselesaikan dengan modelica didapatkan nilai hasil untuk gaya reaksi (dengan menggunakan rumus {R}=[K]G{u}-{F}
6. Mendapatkan gaya internal dan normal stress untuk menghitung normal sterss, perlu dilakukan perubahan hasil defleksi dari matriks koordinat global ke koordinat local. berikut contoh matriksnya.
dengan penjelasan [u] : Koordinat local [U] : Koordinat global [T] : Matriks translasi
dan setelah itu penyelesaian dilakukan oleh modelica.
QUIZ Metnum
soal yang dijadikan quiz adalah soal no 4 dan 8. untuk flowchartnya, langkah yang dilakukan sama sehingga ada satu flowchart dan detail pengerjaan nya dijelaskan masing2 nomer
Setelah itu pak Dai menginstruksikan kami untuk membuat modeling kasus tersebut dalam modelica. setelah memahami penyelesaian matematisnya berikut langkah yang saya tempuh untuk memproses persoalan tersebut:
Pertama, saya membuat penyelesaian untuk K lokal nya:
dan dari hasil tersebut saya mendapatkan hasil sebagai berikut
Pertemuan 5 : 7/12/2020
Pada pertemuan kali ini, kami membahas tentang soal quiz yang pada minggu sebelumnya diberikan. kita mempelakari soal ini dan diterapkan pada openmodelica untuk lebih memahami aplikasi dari OpenModelica dalam penyelesaian persoalan teknik real. pada pertemuan ini Ahmad Mohammad Fahmi menjelaskan pengerjaan kuis tersebut dengan modelling buatan nya. beberapa hal yang fahmi jelaskan adalah
-melakukan proses loooping
-membuat data dalam bentuk array
-menggunakan fungsi if
-class dan function dalam modelica
saya juga mengajukan beberapa pertanyaan kepada fahmi dikarenakan pada penjelasan banyak hal dan istilah baru yang saya ketahui
setelah itu, pak Dai memberi tugas kepada kami semua untuk memahami program fahmi dan mencobanya, sert memberi feedback berupa saran dan kritikan terkait modelling fahmi.
Tugas 4 - 3D Trusses
dari tugas tersebut, saya coba memahami secara matematis dan melakukan flowchart seperti pertemuan sebelumnya
seperti:
1. menentukan input A,E,L,teta,node dll
2.membuat matriks stifness matriks untuk tiap elemen
3. mengubah matriks elemen ke matriks global
4. menghitung Kg Total
dan tahapan lainya..
setelah itu membuat class pada open modelica yaitu
1. Class soal
2. Function Stiffness Matrix elemen
3. Function Stiffness Matrix Global
4. Function Sum Stiffness Matrix Global
5. Function Check Force ( memastikan perhitungan benar atau tidak ( force total harus sama dengan 0)).
6. Boundary Stiffness Matrix Global
7. Gaus Jordan (U)
8.Reaction Force
Pertemuan 7
Pada pertemuan ini kami dijelaskan mengenai optimization yaitu bracket optimization melalui golden method, penjelasan dilakukan melalui ppt dan pptnya dishare melalui whatsapp grup. secara singkat metode ini digunakan untuk mengetahui nilai maksimum minimum lokal dan maksimum minimum global.
Muhasabah Diri
Muhasabah diri saya mengenai pengetahuan saya selama belajar metode numerik dari awal tersusun dari beberapa parameter, yang pertama : seberapa saya paham mengenai hal yang diajarkan
kedua : seberapa saya bisa mengaplikasikanya dalam bentuk masalah ( soal atau modelica)
ketiga : seberapa besar usaha saya untuk belajar lebih mengerti metode numerik
dari awal belajar metode numerik saya selalu berusaha mengikuti kelas dan ikut aktif dalam kelas agar lebih memperdalam pemahaman saya. sejauh belajar metode numerik saya mempelajari semua yang telah diajari dengan referensi buku dan kuliah yang saya ikuti.
dan setelah mencoba menggunakan modelica, pada pertemuan awal-awal saya baru mengetahui tentang per codingan. awalnya saya bisa mengikuti saat awal belajar penerapan metode numerik yg dipelajari sebelumnya, seperti mencari mean, mencari bracketing methods, mencoba memanggil fungsi terpisah, dll.
namun disaat langsung menerapkan pada fenomena trusses, saya agak kesulitan karena tidak paham awalnya. saya memahami fenomena fisiknya namun saya masih sulit untuk mengerjakan sendiri karena seringkali bingung apa coding yang harus dibangun. namun saat mendengarkan ahmad atau pak dai menjelaskan, saya bisa mengikuti. namun saat akan menjelaskan sendiri atau mengerjakan nya, seringkali saya merasa kesulitan mengartikan fenomena fisik ke coding modelica
PROGRESS TUGAS BESAR METODE NUMERIK
Untuk akhir dari Pembelajaran Metode Numerik menggunakan OpenModelica, kami ditugaskan untuk merancang satu tugas besar. Tugas ini adalah aplikasi Openmodelica dalam kasus optimasi trusses. Secara garis besar, kasus trusses yang sudah ditentukan dilakukan pemodelan melalui coding modelica, setelah itu mulai lah pross optimasi menggunakan program modelica pula. Untuk kasus yang digunakan, ditentukan oleh Pak Dai secara langsung. berikut gambar kasus desain rangka sederhana yang akan dioptimasi:
Dalam kasus tersebut dapat dilihat berupa rangka berbentuk tray dengan 4 lantai. Dalam rangka tersebut lalu diaplikasikan beban sebesar 1000 N dan 2000 N pada sisi lainya. Dimensi yang dianjurkan adalah Panjang = 0.6 m, Lebar = 0.75 m, dan tinggi = 1.8 m. Beban diaplikasikan pada lebar rangka dengan panjang 0.75m. Tugas kita adalah mengoptimasikan desain tersebut dengan mempertimbangkan sisi efisiensi ekonomi dengan tetap mempertimbangkan safety factor yang wajar. Untuk optimasi sendiri, nantinya akan dilakukan dengan metode curve-fitting seperti least square polynomial. Pada tugas ini, kami pula harus menentukan jenis material dan luas penampang yang akan diaplikasikan. Material dan jenis penampang akan berpengaruh nantinya terhadap harga produk.
Proses pemodelan dari rangka ini dilakukan menggunakan program OpenModelica. 3 kelas kami sepakat untuk menggunakan coding rancangan Josiah, Ahmad Fahmi, serta Christo dalam hal pemodelan serta optimasinya. Nantinya, kami secara individu akan menganalisa design rangka, optimasi, dan materialnya. Namun, Karena banyak darikami yang belum begitu paham secara detail terhadap pemodelan ini, kami melakukan diskusi secara daring sebanyak 2 kali dengan teman2 perancang Pemodelan Modelica. Pada pertemuan tersebut, saya jadi lebih memahami program yang akan kami pakai, sebenarnya program final yang akan diambil adalah program ide josiah yang programnya lebih singkat namun ternyata pemahaman nya lebih rumit. Berikut dokumentasi pertemuan diskusi pertama dan kedua yang saya hadiri.
Pertemuan diskusi 1
Pertemuan diskusi 2
Pada pertemuan pertama, saya mulai memahami program modeling yang digunakan. terdapat input yang dapat kita sesuaikan dengan analisis kita yaitu: Parameter Elastisitas (berkaitan dengan material yang digunakan), parameter luas penampang, bentuk design rangka (yang dikonversikan menjadi parameter no point, trusses, serta definisi koordinat dan connection nya).
Dalam tahap pendeklarasian, kita harus mendefinisikan point sambungan serta jumlah trusses, point dan jumlah sambungan ini akan seiring dengan bentuk design kita (penggunaan inventor atau sketsa tangan akan mempermudah sebelum pemodelan dibuat). setelah itu diperlukan elemen area berupa satuan luas. setelah itu parameter elastisitas diperlukan sesuai material yang digunakan, untuk ujicoba pertama, digunakan material SS304 dengan elastisitas 193 x 10^9 N/m^2. Hal-hal tadi adalan pendeklarasian dari komponen dasar pemodelan. Berikut bentuk pemodelan dalam aplikasi Open Modelica nya :
//define initial variable parameter Integer Points=16; //Number of Points parameter Integer Trusses=24; //Number of Trusses parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) parameter Real Elas=193e9; //Elasticity SS 304
Setelah Komponen dasar pemodelan dideklarasikan, dilakukan pendefinisian connection & koordinat trusses.
Untuk define connection, dibuat kumpulan matriks 1x2 yang berisi 2 nama truss yang dihubungkan. untuk mempermudah pemahaman, susunan koneksi rangka dibangun berdasarkan tingkatan rangka pada desain, seperti lantai 1, 2 , 3 dll. koneksi-koneksi yang ada akan bervariasi sesuai dengan desain dari rangka nya.
Berikut contoh pemodelan Connection yang ada pada program:
//define connection parameter Integer C[Trusses,2]=[1,5; 2,6; 3,7; 4,8; 5,6; //1st floor 6,7; //1st floor 7,8; //1st floor 5,8; //1st floor 5,9; 6,10; 7,11; 8,12; 9,10; //2nd floor 10,11;//2nd floor 11,12;//2nd floor 9,12; //2nd floor 9,13; 10,14; 11,15; 12,16; 13,14;//3rd floor 14,15;//3rd floor 15,16;//3rd floor 13,16];//3rd floor
Selanjutnya, kita diharuskan untuk menuliskan koordinat dari point connection tadi. Berhubung model yang kita buat tadi dalam bentuk 3 dimensi, maka Pendefinisian ada ditulis dalam matriks 1x3 dimana setiap nilai menunjukan jarak dari titik referensi 0,0,0 . bentuk matriksnya seperti [rx.ry.rz]. untuk setiap lantai, ada 4 titik poin, sehingga total ada 16 point pada desain rangka yang diberikan. berikut coding untuk mendefinisikan koordinat point
parameter Real P[Points,3]=[0.3,-0.375,0; //1 -0.3,-0.375,0; //2 -0.3,0.375,0; //3 0.3,0.375,0; //4 0.3,-0.375,0.6; //5 -0.3,-0.375,0.6; //6 -0.3,0.375,0.6; //7 0.3,0.375,0.6; //8 0.3,-0.375,1.2; //9 -0.3,-0.375,1.2; //10 -0.3,0.375,1.2; //11 0.3,0.375,1.2; //12 0.3,-0.375,1.8; //13 -0.3,-0.375,1.8; //14 -0.3,0.375,1.8; //15 0.3,0.375,1.8]; //16
Setelah itu, dituliskan definisi terhadap beban yang diaplikasikan. beban yang diaplikasikan adalah 2000N dan 1000N tepat ditengah kedua rangka paling atas seperti gambar. Namun, karena analisa ini dilakukan berdasarkan point connection, maka beban ditulis berdasarkan beban yang dirasakan oleh point, maka beban menjadi masing-masing 500,500,1000, dan 1000. Beban dituliskan dalam bentuk matriks 1x3 untuk setiap truss dari lantai satu ke lantai 3. berikut coding untuk mendefinisikan aplikasi beban pada model trusses:
parameter Real F[Points*3]={0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,-500, 0,0,-1000, 0,0,-1000, 0,0,-500};
Terakhir, dalam tahap pendeklarasian, diperlukan komponen komponen perhitungan seperti displacement, reaction, stress, safety, dll. codingnya seperti ini:
Real displacement[N], reaction[N]; Real check[3];
Real stress1[Trusses]; Real safety[Trusses]; Real dis[3]; Real Str[3];
Saat masuk tahap perhitungan, diperlukan pendeklarasian pula untuk notasi-notasi yang dipakai. dalam pembuatab global matriks diperlukan notasi notasi baru, Nantinya ada matriks X (matriks 3x3 hasil kali A*Elastisitas/L dikali dengan matriks). lalu ada notasi cx,cy,cz, untuk membantu perhitungan matriks global. dan juga matriks q1 dan q2 [1x3] yang akan menjadi variable yang mempermudah proses perhitungan matriks global.Tidak lupa juga error untuk validasi nya. berikut codingnya
parameter Integer N=3*Points; Integer boundary[3*size(b,1)]=cat(1,(3*b).-2,(3*b).-1,3*b); Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3]; Real err=10e-10, ers=10e-4;
Lalu mulailah algoritma pembentukan Global matriks dengan notasi G. pada proses ini dilakukan looping notasi i dan j yang akan mengisi variable q1 dan q2. loop i akan memanggil matriks trusses (connection) pada kolom 1. sedangkan j, akan looping untuk angka 1 sampai 3. Hingga q berada dalam fungsi j menjadi q[j].
algorithm //Creating Global Matrix G:=id; for i in 1:Trusses loop for j in 1:3 loop q1[j]:=P[C[i,1],j]; q2[j]:=P[C[i,2],j]; end for; //Solving Matrix L:=Modelica.Math.Vectors.length(q2-q1); cx:=(q2[1]-q1[1])/L; cy:=(q2[2]-q1[2])/L; cz:=(q2[3]-q1[3])/L; X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz; cy*cx,cy^2,cy*cz; cz*cx,cz*cy,cz^2];
L diselesaikan dengan menentukan jarak vektor. notasi cx,cy,cz, membantu saat dibuat matriks u. notasi cx sebenarnya menjadi semacam jalan meringkas dibentuknya matriks stifness.
selanjutnya perhitungan menggunakan coding berikut:
//Transforming to global matrix g:=zeros(N,N); for m,n in 1:3 loop g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n]; g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n]; g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n]; g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n]; end for; G_star:=G+g; G:=G_star; end for; //Implementing boundary for i in boundary loop for j in 1:N loop G[i,j]:=id[i,j]; end for; end for;
//Solving displacement displacement:=Modelica.Math.Matrices.solve(G,F);
//Solving reaction reaction:=(G_star*displacement)-F;
//Eliminating float error for i in 1:N loop reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i]; displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i]; end for;
//Checking Force check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))}); check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))}); check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); for i in 1:3 loop check[i] := if abs(check[i])<=ers then 0 else check[i]; end for;
//Calculating stress in each truss for i in 1:Trusses loop for j in 1:3 loop q1[j]:=P[C[i,1],j]; q2[j]:=P[C[i,2],j]; dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]); end for; //Solving Matrix L:=Modelica.Math.Vectors.length(q2-q1); cx:=(q2[1]-q1[1])/L; cy:=(q2[2]-q1[2])/L; cz:=(q2[3]-q1[3])/L; X:=(Elas/L)*[cx^2,cx*cy,cx*cz; cy*cx,cy^2,cy*cz; cz*cx,cz*cy,cz^2]; Str:=(X*dis); stress1[i]:=Modelica.Math.Vectors.length(Str); end for;
//Safety factor for i in 1:Trusses loop if stress1[i]>0 then safety[i]:=Elas/stress1[i]; else safety[i]:=0; end if; end for;
end Trusses_3D_Tugas_Besar_Safety;
lalu, nilai yang kita cari dari pemodelan ini adalah reaction force, stress, displacement, dan yang terpenting safety factor ( yield/ stress)
berikut hasil nilai dari simulasi nya
OPTIMASI optimasi berupa metode yang digunakan demi mendapatkan nilai yang maksimal dari rasio rasio yang ada, dalam hal ini kami membuat curve fitting antara rasio safety factor dengan harga material:
secara garis besar, josiah mengajarkan kami seperti berikut:
Untuk nilai elastisitas/material yang sama, langkahnya sebagai berikut:
Mencari data yield strength dan elasticity dari material yang dipilih Mencari harga truss sesuai dengan material. Menghitung nilai safety factor. Membuat rasio (efficiency) dari safety factor dengan total cost. Membuat persamaan (mencari Coe) antara rasio dengan area menggunakan curve-fitting. Melakukan optimasi menggunakan metode golden section.
Untuk luas penampang yang sama, langkahnya sebagai berikut:
Mendefinisikan luas penampang yang sama untuk seluruh variasi material. Mencari harga untuk 3 jenis variasi material. Menghitung nilai safety factor pada 3 variasi truss. Membuat rasio antara safety factor dengan total cost. Membuat persamaan (mencari Coe) antara rasio dengan area menggunakan curve-fitting. Melakukan optimasi menggunakan metode golden section.
namun saya masih belum mengerti untuk penggunaan golden section.
untuk optimasi curve fitting nya, menggunakanaplikasi modeilca. aprogram ini dibuat oleh josiah dan sudah saya usahakan pahami, namun dari awal saya paham curve fitting dengan aplikasi excel yang diajarkan oleh Prof. Engkos. berikut programing curve fitting nya:
function Curve_Fitting
input Real X[:]; input Real Y[size(X,1)]; input Integer order=2; output Real Coe[order+1];
protected Real Z[size(X,1),order+1]; Real ZTr[order+1,size(X,1)]; Real A[order+1,order+1]; Real B[order+1];
algorithm
for i in 1:size(X,1) loop for j in 1:(order+1) loop Z[i,j]:=X[i]^(order+1-j); end for; end for; ZTr:=transpose(Z);
A:=ZTr*Z; B:=ZTr*Y; Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));
end Curve_Fitting; /* for i in 1:3 loop
for j in 1:Points loop R[j]:=reaction[3*(j-1)+i]; end for; Sur[i]:=sum(R); end for; */
untuk tahap selanjutnya, dilakukan tahap optimasi dengan variable : panjang, tebal, jenis material dan harga nya. Namun, untuk percobaan kali ini, saya memakai material dan profil yang tetap yaitu profil siku. serta harga nya dalam satuan 6m. untuk materialnya, saya menggunakan SS316L dengan panjang 6m. harga saya referensikan dari situs penjual besi wijaya makmur.
dibawah ini ada contoh pembuatan tabel dari asistensi dengan josiah
dilakukan pengklasifikasian material dari dimensi dan tebalnya, setelah itu dilakukan simulasi dengan pemodelan tadi sehingga didapatkan safety factor.
nantinya akan dibuat curve-fitting dari rasio SF-Cost dengan area dan elastisity dengan cost.
dan berikut detail data yang saya buat dalam excel:
setelah satu per satu data dimasukan ke openmodelica dan di running, maka didapatkan hasil seperti dibawah. hasil dibawah didapatkan nilai stress, safety factor, serta rasio antara safety factor dengan cost. nilai2 tersebut adalah nilai yang nantinya akan dilakukan curve fitting. dapat dicatat hasil simulasi ini adalah hasil simulasi untuk Elastisitas tetap (material yang sama dengan variasi area dan harga)
setelah didapatkan data tersebut, langkah selanjutnya dalah melakukan optimasi. namun pertama-tama saya melakukan proses curve fitting. curve fitting akan menghasilkan fungsi polinomial dari data-data yang ada. untuk curve fitting, saya mencari fungsinya melalui website Online Curve Fitting. dan hasil curve fitting saya kembalikan lagi kepada excel untuk diolah kembali ke langkah selanjutnya
dan setelah hasil curve fitting didapatkanlah rumus =0.00002338565+(X*0.004578001)-(X^2*4.554085). dan bentuk hasil data serta grafiknya seperti ini.
setelah itu dilakukan optimasi. dari sana dapat disimpulkan bahwa untuk jenis material dan elastisitas yang sama, jenis rangka SS316L terbaik adalah dengan dimensi 50x50x5 mm. dikarenakan memiliki S.F/cost ratio yang paling tinggi dan harga yang memadai.
Selanjutnya untuk proses area locked yaitu membandingkan 3 jenis material dengan area yang sama. dilakukan langkah yang sama sehingga hasilnya seperti dibawah ini
Setelah itu dilakukanlah proses curve fitting dan optimasi dengan golden ratio
dapat disimpulkan bahwa material terbaik untuk ini adalah SS 304
UAS Metnum 03
untuk soal jawaban uas, selain dikirim melalui japri kepada Pak Dai, saya melampirkan jawaban UAS saya yang berbentuk pdf di drive google dengan link berikut https://drive.google.com/file/d/1D2Q7BbDvHsLiBVyeYQuCgi8NPUoiYytv/view?usp=sharing