Difference between revisions of "Fashal Firdaus Amarullah"
Line 485: | Line 485: | ||
perhitunganflow chart | perhitunganflow chart | ||
− | + | [[File:590056.jpg|500px]] [[File:590036.jpg|500px]] | |
− | |||
− | ''Tugas Minggu IV'' | + | |
+ | '''Tugas Minggu IV''' | ||
Mebuat flow chart diagram class dan coding open modelica | Mebuat flow chart diagram class dan coding open modelica |
Revision as of 12:15, 9 December 2020
Profile | |
---|---|
Nama Lengkap | Fashal Firdaus Amarullah |
NPM | 1906301186 |
Jurusan | Teknik Mesin |
Alamat Surel | fashalamarullah@gmail.com |
Nama saya adalah Fashal Firdaus Amarullah sebagai mahasiswa Teknik Mesin angkatan 2019 dan saya adalah salah satu ciptaan terbaik dari Tuhan Yang Maha Esa karena pada prinsipnya Tuhan Yang Maha Esa itu mendesain manusia dengan sebaik-baiknya makhluk. Pada kali ini saya sedang belajar mata kuliah metode numerik. Sebagai mahasiswa saya juga aktif dibeberapa lembaga dan kepanitiaan yang ada di Fakultas Teknik Universitas Indonesia. Saya mengikuti organisasi IMM FTUI sebagai Badan Pengurus bidang Litbang IMM FTUI 2020. Di departemen saya juga aktif di KPD HTW sebagai member. Dilingkup Fakultas Teknik saya menjadi Badan pengurus bidang Relasi BEM FTUI 2020. Saya juga aktif dalam kepanitiaan lingkup Fakultas Teknik sebagai Vice Project Officer Aksioma FTUI 2020 yang merupakan acara tahunan fakultas teknik dalam bidang sosial masyarakat.
Contents
Metode Numerik
Metode numerik adalah metode penyelesaian masalah yang diformulasikan secara matematis dengan menggunakan operasi hitungan yaitu operasi tambah, kurang, kali, dan bagi. Metode ini digunakan karena banyak permasalahan yang tidak dapat diselesaikan menggunakan metode analitik. Metode numerik dapat memecahkan suatu permasalahan menggunakan pendekatan-pendekatan yang bersifat analitik. Biasanya hasil dari perhitungan metode numerik bersifat berupa hampiran atau pendekatan.
Pertemuan Minggu Pertama (11 November 2020)
Saat pertemuan pertama kali ini kami diajarkan oleh Bapak Dr. Ir. Ahmad Indra Siswantara tentang tujuan dari pembelajaran metode numerik,diantaranya:
1. Dapat memahami konsep-konsep dan prinsip-prinsip dasar dalam metode numerik seperti:persamaan diferensial parsial, Persamaan algoritma, pencocokan kurva,aljabar, dan lainnya
2. Dapat menerapkan metode numerik dalam hal terkait persoalan keteknikan
3. Dapat mengerti dan mampu menerapkan pemahaman atau aplikasi terhadap konsep metode numerik
4. Mendapat nilai tambah atau adab sehingga kita menjadi orang yang lebih beradab
Pada pertemuan pertama ini, kami juga diajarkan tentang penggunaan software Open modelica. Selain itu beliau juga banyak mengajarkan tentang nilai-nilai kebaikan dalam kehidupan.
Tugas Minggu Pertama
Pada tugas pertama kami diberikan tugas untuk mempalajari penggunaan software Open Modelica, yaitu sebuah sofware untuk membuat sebuah simulasi dan modelling. Open Modelica biasanya digunakan untuk perhitungan industri pada pabrik dan juga biasa digunakan untuk pemecahan masalah metode numerik. Disini beberapa contoh dari youtobe yang saya sudah tonton:
- https://www.youtube.com/watch?v=m0Ahs8fEN28&ab_channel=NSTUFACE
- https://www.youtube.com/watch?v=GhtBMIlO70w&ab_channel=Processdynamicsandcontrol
Selain itu kami juga disuruh membuat sebuah video tutorial penggunaan software open modelica. Berikut video tutorial yang saya buat:
Pertemuan Minggu Kedua (18 November 2020)
Pada pertemuan kedua kali ini, diawali dengan pesan-pesan kehidupan dari Pak Dai. Beliau memberikan saran agar sebagai manusia kita harus terus berkembang setiap harinya dan menjadi lebih baik dari hari ke hari. Pada minggu ini, banyak mereview tentang tugas yang diberikan pada minggu lalu yaitu penggunaan software Open Modelica. Banyak teman-teman kelas yang mempresentasikan tentang tugas mereka pada minggu lalu. Selain itu Pak Dai juga menjelasakan kelebihan dari Software Open MOdelica. Pada Software ini mempunyai fitur-fitur untuk membuat function, model, persamaan, dlll. Software Open Modelica juga dapat digunakan secara free sehingga dapat digunakan oleh semua orang.
Pada Pertemuan kedua kali ini kami juga diajarkan menggunakan open modelica untuk menggabungkan function kedalam class yang sudah dibuat. Setelah kami diajarkan,kemudian saya mencobanya dengan open modelica. Berikut tahapan-tahapannya:
- 1. Buatlah class baru dengan menggunakan open modelica seperti berikut
- 2. Setelah itu buatlah function baru seperti pada gambar berikut
- 3. Setelah selesai membuat function , kembali lagi kehalaman class, dan tarik function ke class menggunakan cara seperti digambar
Tugas Minggu Kedua
Pada Tugas Minggu kedua ini, kami ditugaskan untuk mempelajari penggunaan Open Modelica untuk penyelesaian Aljabar. Berikut Video Tutorial yang saya buat:
Pertemuan Minggu Ketiga (25 November 2020)
Pada pertemuan ketiga kali ini kami membahas tentang penggunaan Open Modelica pada permasalahan engineering. Pada permasalahan engineering, metode numerik dapat membantu menyelesaikan persoalan agar lebih cepat. Beberapa contoh metode numerik yang dapat membantu menyelesaikan permasalaha engineering diantaranya CFD(Computation fluid dynamics, Metode Stokastik, dan FEA ( FInite Element Analaysis). Tahapan untuk menyelesaikan masalah engineering menggunakan metode numerik:
- 1. Melakukan analisis terhadap masalah engineering
- 2. Melakukan pemodelan matematis dari masalah yang sudah dianalisis
- 3. Menerjemahkan pemodelan matematis yang sudah dibuat menjadi metode numerik agar bisa dhitung oleh komputer
- 4. Melakukan perhitungan metode numerik menggunakan software dan dihasilkanlah solusi dari masalah engineering tersebut
CFD Simulation
Computational fluid dynamics ( CFD ) adalah cabang dari mekanika fluida yang menggunakan analisis metode numerik dan struktur data untuk menganalisis dan memecahkan masalah yang melibatkan aliran fluida. Dasar fundamental dari hampir semua masalah CFD adalah persamaan Navier-Stokes , yang mendefinisikan banyak aliran fluida pada satu fasa. Persamaan-persamaan ini dapat disederhanakan dengan menghilangkan suku-suku yang mendeskripsikan tindakan kental untuk menghasilkan persamaan Euler . Penyederhanaan lebih lanjut, dengan menghilangkan istilah yang menggambarkan vortisitas menghasilkan persamaan potensial penuh.
Finite Element Method for Trusses
The finite element method (FEM) is a numerical technique used to perform finite element analysis (FEA) of any given physical phenomenon. It is necessary to use mathematics to comprehensively understand and quantify any physical phenomena, such as structural or fluid behavior, thermal transport, wave propagation, and the growth of biological cells. Most of these processes are described using partial differential equations (PDEs). However, for a computer to solve these PDEs, numerical techniques have been developed over the last few decades and one of the most prominent today is the finite element method.
Example for trusses
We can use Finete Element Method to solve this problem. We can make equation with numerical method use Open modelica.
Persamaan model Trusses parameter Integer N=10; //Global matrice = 2*points connected parameter Real A=8; parameter Real E=1.9e6; Real G[N,N]; //global Real Ginitial[N,N]; //global Real Sol[N]; //global dispplacement Real X[N]={0,0,0,0,0,0,0,-500,0,-500}; Real R[N]; //global reaction force Real SolMat[N,1]; Real XMat[N,1]; //boundary coundition Integer b1=1; Integer b2=3; //truss 1 parameter Real X1=0; //degree between truss Real k1=A*E/36; Real K1[4,4]; //stiffness matrice Integer p1a=1; Integer p1b=2; Real G1[N,N]; //truss 2 parameter Real X2=135; //degree between truss Real k2=A*E/50.912; Real K2[4,4]; //stiffness matrice Integer p2a=2; Integer p2b=3; Real G2[N,N]; //truss 3 parameter Real X3=0; //degree between truss Real k3=A*E/36; Real K3[4,4]; //stiffness matrice Integer p3a=3; Integer p3b=4; Real G3[N,N]; //truss 4 parameter Real X4=90; //degree between truss Real k4=A*E/36; Real K4[4,4]; //stiffness matrice Integer p4a=2; Integer p4b=4; Real G4[N,N]; //truss 5 parameter Real X5=45; //degree between truss Real k5=A*E/50.912; Real K5[4,4]; //stiffness matrice Integer p5a=2; Integer p5b=5; Real G5[N,N]; //truss 6 parameter Real X6=0; //degree between truss Real k6=A*E/36; Real K6[4,4]; //stiffness matrice Integer p6a=4; Integer p6b=5; Real G6[N,N]; /* for each truss, please ensure pXa is lower then pXb (X represents truss element number) */ algorithm //creating global matrice K1:=Stiffness_Matrices(X1); G1:=k1*Local_Global(K1,N,p1a,p1b); K2:=Stiffness_Matrices(X2); G2:=k2*Local_Global(K2,N,p2a,p2b); K3:=Stiffness_Matrices(X3); G3:=k3*Local_Global(K3,N,p3a,p3b); K4:=Stiffness_Matrices(X4); G4:=k4*Local_Global(K4,N,p4a,p4b); K5:=Stiffness_Matrices(X5); G5:=k5*Local_Global(K5,N,p5a,p5b); K6:=Stiffness_Matrices(X6); G6:=k6*Local_Global(K6,N,p6a,p6b); G:=G1+G2+G3+G4+G5+G6; Ginitial:=G; //implementing boundary condition 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; //solving displacement Sol:=Gauss_Jordan(N,G,X); //solving reaction force SolMat:=matrix(Sol); XMat:=matrix(X); R:=Reaction_Trusses(N,Ginitial,SolMat,XMat); end Trusses; |
Trusses Problem 2 (Homework)
Persamaan class Trusses_HW parameter Integer N=8; //Global matrice = 2*points connected parameter Real A=0.001; //Area m2 parameter Real E=200e9; //Pa Real G[N,N]; //global Real Ginitial[N,N]; //global Real Sol[N]; //global dispplacement Real X[N]={0,0,-1035.2762,-3863.7033,0,0,-1035.2762,-3863.7033}; Real R[N]; //global reaction force Real SolMat[N,1]; Real XMat[N,1]; //boundary condition Integer b1=1; Integer b2=3; //truss 1 parameter Real X1=0; //degree between truss Real k1=A*E/1; Real K1[4,4]; //stiffness matrice Integer p1a=1; Integer p1b=2; Real G1[N,N]; //truss 2 parameter Real X2=0; //degree between truss Real k2=A*E/1; Real K2[4,4]; //stiffness matrice Integer p2a=2; Integer p2b=3; Real G2[N,N]; //truss 3 parameter Real X3=90; //degree between truss Real k3=A*E/1.25; Real K3[4,4]; //stiffness matrice Integer p3a=2; Integer p3b=4; Real G3[N,N]; //truss 4 parameter Real X4=90+38.6598; //degree between truss Real k4=A*E/1.6; Real K4[4,4]; //stiffness matrice Integer p4a=1; Integer p4b=4; Real G4[N,N]; //truss 5 parameter Real X5=90-38.6598; //degree between truss Real k5=A*E/1.6; Real K5[4,4]; //stiffness matrice Integer p5a=3; Integer p5b=4; Real G5[N,N]; /* for each truss, please ensure pXa is lower then pXb (X represents truss element number) */ algorithm //creating global matrice K1:=Stiffness_Matrices(X1); G1:=k1*Local_Global(K1,N,p1a,p1b); K2:=Stiffness_Matrices(X2); G2:=k2*Local_Global(K2,N,p2a,p2b); K3:=Stiffness_Matrices(X3); G3:=k3*Local_Global(K3,N,p3a,p3b); K4:=Stiffness_Matrices(X4); G4:=k4*Local_Global(K4,N,p4a,p4b); K5:=Stiffness_Matrices(X5); G5:=k5*Local_Global(K5,N,p5a,p5b); G:=G1+G2+G3+G4+G5; Ginitial:=G; //implementing boundary condition 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; //solving displacement Sol:=Gauss_Jordan(N,G,X); //solving reaction force SolMat:=matrix(Sol); XMat:=matrix(X); R:=Reaction_Trusses(N,Ginitial,SolMat,XMat); end Trusses_HW; |
Fungsi Panggil
Matrice Transformation function Stiffness_Matrices 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 Stiffness_Matrices; |
Global Element Matrice function Local_Global 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 Local_Global; |
Gauss_Jordan 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; |
Reaction Matrice Equation function Reaction_Trusses 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 Reaction_Trusses; |
Pertemuan 4 (02/12/2020)
Kita harus mengetahui hal apa saja yang akan kita lakukan
Quiz Diagram Class dan Flow Chart
Membuat flow chart dan class diagram dari coding trusse problem
Setelah memahami pembahasan dari josiah, saya melihat bahwa josiah menggunakan 5 kelas. Ketik kita menggunakan matrices transfromation, kita ada menambahkan data sudut dari elemen pada truss, kemudia outputnya pun berupa matriks lokal dari kekakuan pegas. ketika persamaan global element matrice didapat, tiap matriks lokal kekukan elemen akan diletkannan dalam susunan matriks global. Didalam class truss berikutnya matriks tiap elemen diolah dengan luas penampang , modulus elastisitaas dan panjang tiap elemen, yang selanjutnya digabungkan menjadi suatu matriks global g, dengan penerapan boundary conditon, selanjutnya diselesaikan dengan gauss jordan untuk mendapatkan nili defleksi dan digunakanlah fungsu reaction untuk menghasilkan gaya reaksi.
Buatlah Flowchart untuk soal berikut
Pembuatan Flowchart
perhitunganflow chart
Tugas Minggu IV
Mebuat flow chart diagram class dan coding open modelica
Dibawah ini adalah coding untuk soal 3d trusses berdasarkan sumber dari saudara Ahmad Mohammad Fahmi dari kelas metode numerik 03 :
Membuat Kekakuan elemen
Membuat Kekakuan Global
Membuat Kekakuan Global Gabungan (hasil penjumlahan kekakuan global per elemen)
Membuat Gauss Jordan
Membuat Gaya Reaksi
Membuat Kelas Pemanggil
Setelah itu didapatlah hasil untuk U (defleksi) dan R (gaya reaksi)