Metnum03-Dendy Dwi Rohma P J

From ccitonlinewiki
Revision as of 07:56, 4 January 2021 by DendyJaya (talk | contribs) (Tugas Besar)
Jump to: navigation, search

Assalamualaikum Warahmatullahi Wabarakatuh

Nama:Dendy Dwi Rohma P J

NPM: 1906435473

Pertemuan 1

1. Tugas_01_MetodeNumerik03

Dalam mencari nilai suatu akar dari suatu persamaan atau permasalahan yang ada, berbagai macam cara dan metode, berikut ini bermacam-macam metode yang dapat kita gunakan dalam mencari nilai suatu akar persamaan :

1. Metode Bagi dua (Bisection)

2. Metode False Position

3. Metode Secant

4. Metode Iterasi Titik Tetap

5. Metode Newton Raphson

Dalam kesempatan kali ini saya akan membahas tentang metode secant.

Pengertian Metode Secant

Metode secant merupakan perbaikan dari metode regula-falsi dan newton raphson dimana kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus yang melalui satu titik.Tujuan dan Fungsi Tujuan metode secant adalah untuk menyelesaikan masalah yang terdapat pada metode Newton-Raphson yang terkadang sulit mendapatkan turunan pertama yaitu f'(x). Fungsi metode secant adalah untuk menaksirkan akar dengan menggunakan diferensi daripada turunan untuk memperkirakan kemiringan/slope.

Algoritma Metode Secant 1. Definisikan fungsi F(x) 2. Definisikan torelansi error (e) dan iterasi maksimum (n) 3. Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1,sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.

SOAL 1

Cari Akar Persamaan dari Persamaan f(x) dengan Metode Secant Method pada Literasi ke 4? f(x) = 3x^3 -x -1

Asumsi:

       x0 = -1
       x  = 1
RumusSecant.png
HasilLiterasi.png
Code12.png

Penjelasan menganai pemrograman Secant Method menggunakan OpenModelica terlampir dalam Link dibawah ini:

Link Youtube : https://www.youtube.com/watch?v=Bk_QtrInpks

Pertemuan 2

LatihanMean2.png

Melakukan latihan mencari nilai mean dari persamaan dan data sederhana.

PR Eliminasi Gauss

CodingGauss1.png
PlotingGauss2.png
ValidasiGauss.jpg


Pertemuan 3

3. Tugas_03_MetodeNumerik03

MASS SPRING ANALYSIS MATRIX

TRUSS ANALYSIS MATRIX

Tugas kali ini disuruh mencari nilai defleksi/dX/U pada suatu truss yang disusun dan dikenai pembebanan dan tumpuan seperti pada soal dibawah ini. Lalu kemudian setelah kita menemukan nilai U lalu digunakan untuk mencari reaksi gaya (R) pada setiap elemen truss.

1 Soal Truss.png

Berdasarkan susunan truss diatas, kita harus mampu menjabarkan setiap beam/ truss menjadi notasi element, tumpuan menjadi notasi node dan sudut element terhadap garis refrensi yg kita pilih (saya menggunakan X positif sbg sb.0 deg). Lalu setelah dilakukan penjabaran berdasarkan element, node dan sudut didapatkan Tabel 2.1 sebagai hubungannya.

2 Truss MenjadiNode.png

Setelah itu dilakukan perkalian untuk mencari nilai kekakuan setiap truss/ element dengan rumus k=A.E/L. Namun sebelumnya dilakukan pengelompokan berdasarkan panjang batang/truss lalu didapatkan batang dengan panjang yang sama (1,3,4,6) dan batang (2,5). Namun untuk mendapatkan nilai K lokal nilai k(kekakuan) harus terlebih dahulu dikalikan dengan rumus K lokal dalam bentuk matrix 4x4.

3 KonstantaStiffness 1.3.4.6.png

3 KonstantaStiffness 2.5.png

Nah rumus K^e atau K lokal menurut pemahaman saya dapat berbeda-beda tergantung dengan susunan dari truss (sudut yang terbentuk dari sb. refrensi yang kita gunakan) atau batang dan tumpuan yang kita gunakan. Lalu untuk nilai k (kekakuan) hanya dipengaruhi dari cross section area (A), elastisitas (E) dan panjang batang (L)

4 RumusK.png

Analisa Batang 4

Analisa batang pada contoh soal ini jg dapat dikelompokan berdasarkan panjang batangnya. Jadi untuk analisa pertama batang (1,3,4,6) dan batang (2 dan 5). Pada batang (1,3,dan 6) memiliki sudut refrensi yang sama yaitu 0 derajat, namun ketiga element ini memiliki node yang berbeda sehingga akan berpengaruh pada peletakan hasil matrix 4x4 pada matrix global (K^G) 10x10.

5 1 AnalisaElemen4.png

Pada gambar dibawah ini hasil K^e (K lokal) dimasukan ke dalam matrix 10x10 K^G berdasarkan node arah sb. X dan sb. Y.

5 2 Elemen4 DiglobalMatrik.png

Analisa Batang 2

Kemudian dilakukan analisa batang (2 dan 5) dengan cara yang sama seperti gambar diatas dengan mengunakan rumus matrix K (4x4). Namun pada element 2 dan 5 hanya berbeda pada penggunaan sudut berdasarkan sumbu refrensi (element 2 : 135deg, element 5 : 45deg).

6 1 AnalisaElemen2.png

Pada gambar dibawah ini hasil K^e (K lokal) dimasukan ke dalam matrix 10x10 K^G berdasarkan node arah sb. X dan sb. Y.

6 1 Elemen2Global.png

Analisa Batang 5

6 2 AnalisaElemen5.png

6 2 Elemen5Global.png

Kemudian dilakukan penjumlahan matrik tersebut menjadi matrik global.

7 1 PenjumlahanK-Kglobal.png

Didapatkan hasil penjumlahan matrik lokal tersebut menjadi matrik global dengan jumlah 10x10.

7 2 Kglobal.png

Kemudian dilakukan batasan masalah seperti ada atau tidaknya fix point pada suatu susunan model truss. Berdasarkan soal didapatkan pada node 1 dan 3 adalah nilai U adalah 0 (U1x, U1y, U3x, U3y). Karena apabila tidak dilakukan permisalan maka susunan trus akan berotasi bila dikenai gaya.

8 1 Matrik6x6 PenerapanFixPoint.png

Berdasarkan rumus F=K.dX (F=K.U) kita disuruh untuk mencari nilai U pada tiap node berdasarkan sb. x dan sb. y. Maka untuk mencarinya kita dapat memanggil fungsi solve (A.x=B) untuk mencari nilai x atau U. Dengan memasukan koding 6x6 dibawah ini akan didapatkan nilai U pada node (2,4,5) berdasarkan sb.x dan sb.y.

8 2 Matrik6x6 Coding.png

Didapatkan nilai U adalah sama seperti contoh dibuku.

8 3 Matrik6x6 dXatauU.png

Analisa Reaksi Gaya pada Setiap Node

Pada analisa ini kita harus menuliskan kembali hasil perhitungan sebelumnya U kedalam parameter matriknya. Rumus reaksi adalah R = [K]^G.{U}-{F}. Dapat dikatakan bahwa R adalah reaksi yang terjadi pada setiap node dengan arah sb.x dan sb.y. Dengan metode matrik ini iibaratnya seperti perhitungan manual (FBD) gaya-gaya yang terjadi pada setiap titik tumpuan berdasarkan arah sumbu kerja (2D yaitu x,y).

9 ReaksiGaya.png

10 dXatauU Matrik10x10.png

Pada U semua node, didaptkan bahwa nilai pada node 1 dan 3 adalah tetap 0 pada matix K^G untuk mencari nilai R seperti dibawah ini.

11 1 Matrik10x10 MencariReaksi(R).png

Untuk programnya hanya perlu mengalikan fungsi R=(K*U)-F seperti biasa. Tidak perlu memanggil program solve (gauss).

11 2 Matrik10x10 Coding.png

Kemudian untuk reaksi gayanya didapatkan nilai seperti ploting dibawah ini, dan dilakukan pembulatan pada node (3,4,5) karena nilai gayanya sangat kecil.

11 3 Matrik10x10 Reaksi(R).png

Pertemuan 4

Quiz_1_MetodeNumerik03

Quiz_1_Truss2D

1 Flow Chart Kuiz1.jpg

2 FBD Kuiz1.jpg

3 K Lokal.jpg

4 K Lokal.jpg

Element1 2D Dendy.png

Element5 2D Dendy.png

KG 2D DendyDwi.png

CodingU Truss 2D DendyDwi.png

CodingR Truss 2D DendyDwi.png

Nilai U R 2D DendyDwi.png

Quiz_1_Truss3D

1 FBD 3D DendyDwi.jpg

2 FBD 3D DendyDwi.jpg

3 Element1 3D Dendy.jpg

4 Element2 3D Dendy.jpg

5 Element3 3D Dendy.jpg

Pertemuan 5

Tugas Metode Numerik

Tugas Besar

Soal

-Temukan Cost sebagai dengan variasi area dan material

Geometri Pemodelan dan Load

1-Soal-Tubes.jpg

Diketahui

- Spesifikasi L (Panjang) dan geometri rangka truss

- Gaya beban terhadap struktur (1000 N dan 2000 N)

Asumsi

- Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.

- Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)


Trusses Modelling

model Trusses_3D_Tugas_Besar_Safety

//define initial variable parameter Integer Points=size(P,1); //Number of Points parameter Integer Trusses=size(C,1); //Number of Trusses parameter Real Yield=250e6; //Yield Strength (Pa) Material ASTM A36 parameter Real Area=3.75E-04; //Area L Profile (0.04 x 0.04 x 0.005) (m2) parameter Real Elas=2e11; //Elasticity ASTM A36 (Pa)

//define connection parameter Integer C[:,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
                                                            

//define coordinates (please put orderly) parameter Real P[:,6]=[0.3,-0.375,0,1,1,1; //1

                          -0.3,-0.375,0,1,1,1;    //2
                          -0.3,0.375,0,1,1,1;     //3
                          0.3,0.375,0,1,1,1;      //4
                          
                          0.3,-0.375,0.6,0,0,0;   //5
                          -0.3,-0.375,0.6,0,0,0;  //6
                          -0.3,0.375,0.6,0,0,0;   //7
                          0.3,0.375,0.6,0,0,0;    //8
                          
                          0.3,-0.375,1.2,0,0,0;   //9
                          -0.3,-0.375,1.2,0,0,0;  //10  
                          -0.3,0.375,1.2,0,0,0;   //11
                          0.3,0.375,1.2,0,0,0;    //12
                          
                          0.3,-0.375,1.8,0,0,0;   //13
                          -0.3,-0.375,1.8,0,0,0;  //14
                          -0.3,0.375,1.8,0,0,0;   //15
                          0.3,0.375,1.8,0,0,0];   //16
                          

//define external force (please put orderly) 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}; 

//solution Real displacement[N], reaction[N]; Real check[3];

Real stress1[Trusses]; Real safety[Trusses]; Real dis[3]; Real Str[3];

protected parameter Integer N=3*Points; 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-6;

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];
  //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 x in 1:Points loop

if P[x,4] <> 0 then
  for a in 1:Points*3 loop
    G[(x*3)-2,a]:=0;
    G[(x*3)-2,(x*3)-2]:=1;
  end for;
end if;
if P[x,5] <> 0 then
  for a in 1:Points*3 loop
    G[(x*3)-1,a]:=0;
    G[(x*3)-1,(x*3)-1]:=1;
  end for;
end if;
if P[x,6] <> 0 then
  for a in 1:Points*3 loop
    G[x*3,a]:=0;
    G[x*3,x*3]:=1;
  end for;
end if;

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]:=Yield/stress1[i];
else
  safety[i]:=0;
end if; 

end for;

end Trusses_3D_Tugas_Besar_Safety;

Curve Fitting Function

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);

end Curve_Fitting;

model CurveFitting

parameter Real X[3]={190e9,195e9,200e9}; // Input variabel X adalah data bebas parameter Real Y[3]={7850,8020,8075}; // Input variabel Y adalah data berikat

Real Coe[3];

algorithm Coe:=Curve_Fitting(X,Y,2);

end CurveFitting;