Difference between revisions of "Tedi Veradino"

From ccitonlinewiki
Jump to: navigation, search
Line 237: Line 237:
 
   
 
   
 
  end Trusses;
 
  end Trusses;
|}
+
 
  
 
''Persamaan''
 
''Persamaan''
Line 345: Line 345:
 
   
 
   
 
  end Trusses_HW;
 
  end Trusses_HW;
|}
 
  
 
'''Fungsi Panggil'''
 
'''Fungsi Panggil'''
Line 380: Line 379:
 
   
 
   
 
  end Stiffness_Matrices;
 
  end Stiffness_Matrices;
+
 
| style="width: 20cm;"|
 
 
''Global Element Matrice''
 
''Global Element Matrice''
  
Line 420: Line 418:
 
   
 
   
 
  end Local_Global;
 
  end Local_Global;
| style="width: 20cm;"|  
+
   
 
''Gauss_Jordan''
 
''Gauss_Jordan''
  
Line 440: Line 438:
  
 
  end Gauss_Jordan;
 
  end Gauss_Jordan;
 
+
 
| style="width: 20cm;"| 
 
 
''Reaction Matrice Equation''
 
''Reaction Matrice Equation''
  
Line 467: Line 464:
 
   
 
   
 
  end Reaction_Trusses;
 
  end Reaction_Trusses;
 
|}
 

Revision as of 14:23, 2 December 2020

Biodata

Nama  : Tedi Veradino

NPM  : 1906379131

Angkatan : 2019

TTL  : Biaro, 15 Juli 2000

Asal  : Bukittinggi

Hobi  : voli, nanjak gunung

Perkenalan Singkat

Nama saya adalah Tedi Veradino. Saya merupakan mahasiswa Fakultas Teknik Universitas Indonesia dengan Program Studi S1 Reguler Teknik Mesin. Saya berasal dari Bukittinggi, Sumatera Barat. Saya sangat bersyukur bisa diterima menjadi bagian dari mahasiswa FTUI.

Sebelum UTS saya sudah belajar metnum bersama pa engkos tentang berbagai metode, seperti metode secan, newtom, interpolasi, regresi dan lain-lain.

"Sesungguhnya ilmu yang kita dapat mampu membuat kita mengenal diri kita lebih baik dari sebelumnya"

Tujuan belajar Metode Numerik:

1. Memahami konsep-konsep dan prinsip-prinsip dasar dalam metode numerik

2. Menerapkan pemahaman yang didapat ke dalam model numerik

3. Mampu menerapkan pemahaman yang didapat ke dalam persoalan teknik

4. Mendapat nilai tambah sehingga menjadi orang yang beradab

Tugas Minggu 1

saya telah mempelajari cara menggunakan open modelica di https://www.youtube.com/watch?v=Dw66ODbMS2A

selain itu saya juga mencoba untuk mengaplikasikannya sendiri di https://youtu.be/HC5NfViuPrg

ringkasan 18/11/2020

Seperti biasa kelas dimulai dengan review materi minggu kemarin terlebih dahulu. kelas pada hari ini juga dihadiri oleh asdos yaitu bang edo. selanjutnya kelas dilanjutkan dengan mempresentasikan tugas minggu kedua. Presentasi tugas ditampilkan oleh beberapa mahasiswa. dalam presentasi tersebut terlihat bergagai macam aplikasi dari openmodelica. ada yang digunakan dalam termodinamika, heat transfer, dan juga CFD. selain ada sesi presentasi, juga ada sesi tanya jawab antara mahasiswa dengan Pak DAI dan juga ada komentar juga dari bang edo.

selain itu Pak DAI juga menjelaskan kelebihan dari openmodelica

1.Dalam Bahasa pemodelan

2.Proses pemahaman intruksi nya cepat

3.Banyak penggunanya

kita juga belajar mandiri yaitu praktek newton rhapson

Tugas Minggu ke 2

Untuk tugas minggu kedua kita diminta Pak DAI untuk membuat sebuah class dan fungsi panggil

Untuk contoh matriknya saya ambil dari internet, sebagai berikut

Tedi Veradino 2-1.png

langkah pertama yaitu kita membuat sebuah class dan input nilai dari matriksnya

Tedi Veradino 2-2.png

selanjutnya yaitu membuat sebuah function

Tedi Veradino 2-3.png

langkah selanjutnya adalah membuat simulation, namun saya memiliki kendala disini.

Tedi Veradino 2-4.png

saya akan mencoba mencari solusinya hingga kelas dimulai. dan jika saya masih belum bisa mungkin bisa didiskusikan di kelas nanti bersama Pak DAI dan teman-teman

Alhamdulillah setelah saya bertanya ke teman-teman saya dapat menyelesaikan kesalahan yang tadi. terima kasih kepada teman-teman terutama kepada Richardo Ariyanto

Berikut video tugas saya dapat dilihat di https://youtu.be/eUdL7SJz3tU

Minggu Ke 3

Setelah uts kita akan banyak mempelajari aplikasi metoda numerik dalam Teknik. Dalam Minggu ini kita diminta Pak DAI untuk belajar persamaan aljabar. kita juga sempat dikusi Variable Rey dengan josiah karena dia terlebih dahulu belajar pada mata kuliah CFD. Meriview Kembali eliminas Gauss

Untuk tugas hari ini Menyelesaikan persamaan 9.12 Latihan membuat fungsi modelica

Naive Gauss

Naivegausstedi.png

function NaiveGauss dari buku Chapra

/* // Pseudocode Figure 9.4

//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

// Back Substitution 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

  • /


Tugas Minggu Ke 3

TRUSS

Truss adalah struktur teknik yang terdiri dari anggota lurus yang terhubung pada mereka diakhiri dengan baut, paku keling, pin, atau pengelasan. Anggota yang ditemukan dalam rangka dapat terdiri dari tabung baja atau aluminium, penyangga kayu, batang logam, sudut, dan saluran. Gulungan menawarkan solusi praktis untuk banyak masalah struktural di bidang teknik, seperti tenaga menara transmisi, jembatan, dan atap gedung. Rangka pesawat didefinisikan sebagai rangka yang anggotanya terbaring di satu pesawat. Gaya yang bekerja pada rangka seperti itu juga harus berada pesawat ini. Anggota rangka umumnya dianggap anggota dua gaya.

PR Truss

Problem 3 tedi veradino.jpeg

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;


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;