Difference between revisions of "Kanwaljot Kaur"

From ccitonlinewiki
Jump to: navigation, search
(Penjelasan tentang ANN)
 
(50 intermediate revisions by the same user not shown)
Line 1: Line 1:
Selamat sore semua!
 
  
 +
[[File:Kanwaljot_Kaur.jpg|400px|thumb|center|]]
  
'''== [[Kenapa kita sebagai mahasiswa teknik mesin harus mempelajari kalkulus?]]
+
 
==
+
Nama: Kanwaljot Kaur
'''
+
 
Kita harus mempelajari kalkulus meski kita anak teknik dikarenakan dengan kalkulus kita dapat mempelajari cara-cara menurunkan rumus yang nantinya dapat digunakan di mata kuliah-mata kuliah lainnya.
+
NPM : 1706036305
 +
 
 +
Mahasiswa Teknik Mesin 2017
 +
 
 +
 
 +
== Pertemuan Pertama ==
 +
 
 +
'''Hari, Tanggal : Rabu, 4 September 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
Pada pertemuan pertama mata kuliah metode numerik, Pak Dr. Ahmad Indra, atau yang biasa disapa Pak Dai, memberikan pendahuluan yang intinya adalah setiap mata kuliah yang kita ambil jangan hanya asal lewat saja, tetapi kita harus menyerap 'ilmu-ilumnya'. Untuk contohnya, Pak Dai memberikan sebuah pertanyaan, yaitu 'Kenapa sebagai mahasiswa teknik mesin kita harus mempelajari kalkulus?' Kemudian setelah beberapa teman mencoba menjawab, akhirnya beliau memberikan alasan mengapa kita harus mempelajari kalkulus, yaitu kita dapat mengambil ilmunya seperti menurunkan rumus dan juga logika matematika yang nantinya dapat digunakan di mata kuliah mesin seperti matematika teknik, termodinamika, dan mata kuliah lainnya.
 +
 
 +
 
 +
'''Metode Numerik''' adalah teknik yang digunakan untuk menyelesaikan persoalan matematika sehingga dapat diselesaikan dengan operasi perhitungan biasa, yaitu tambah, kurang, kali, dan bagi.
 +
 
 +
 
 +
Pada metode numerik ini, bahasa pemograman yang digunakan adalah Python. Meskipun metode numerik digunakan sebagai penyelesai masalah atau ''solver'', ide untuk menyelesaikan persoalannya tetap berasal dari manusia. Untuk menyelesaikan persoalan matematika itu dibutuhkan langkah-langkah yang merupakan instruksi yang dibutuhkan komputer. Maka, dibutuhkan bahasa penulisan dari yang kita (manusia) mengerti menjadi bahasa mesin yang disebut bahasa pemograman. Untuk mempermudah kita dalam membuat bahasa pemograman ini, digunakan ''flow chart'', yang merupakan instruksi yang terdiri dari bagan dan simbol tertentu.
 +
 
 +
 
 +
Pak Dr. Eng. Radon Dhelika, atau yang kerap disapa Pak Radon, menambahkan bahwa di industri 4.0 ini tingkat kebutuhan skill pemograman dibutuhkan. Maka kita harus fokus, menyerap, dan mendalami mata kuliah metode numerik ini.
 +
 
 +
 
 +
Diakhir pertemuan pertama berakhir, diberikan tugas sebagai berikut:
 +
1. Mempelajari Python masing-masing
 +
2. Membuat penyelesaian untuk persoalan T(x)= (x^2-1)/(x-1)  dalam bentuk algoritma / flowchart
 +
 
 +
 
 +
Setelah saya membaca dan menyari dari berbagai sumber, saya menetukan algoritma dari persoalan yang diberikan dengan menggunakan '''sympy'''
 +
 
 +
 
 +
from sympy import *
 +
x = symbols ('x')
 +
hasil = limit (((x ** 2) - 1 ) / (x - 1) , x, 1)
 +
print (hasil)
 +
 
 +
[[File:Screen Shot 2019-09-16 at 20.34.08.png|400px|thumb|center|]]
 +
 
 +
Hasil yang didapatkan adalah 2
 +
 
 +
[[File:Screen Shot 2019-09-16 at 20.34.15.png|400px|thumb|center|]]
 +
 
 +
 
 +
 
 +
== Pertemuan Kedua ==
 +
'''Hari, Tanggal : Rabu, 11 September 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
Pada pertemuan kedua kelas metode numerik ini membicarakan banyak hal, salah satunya adalah ''Artificial Intelligence'' (AI). AI atau rekayasa kecerdasan ini berguna untuk membantu manusia dan memang dibuat menyerupai manusia. Namun, perbedaan dari manusai dengan robot yang menyerupai manusia adalah manusia memiliki hati, meskipun manusia memiliki keterbatasan yang tidak dimiliki robot.
 +
 
 +
 
 +
Dengan mempelajari mata kuliah metode numerik ini, membuat kita berhubungan dengan komputer. Istilahnya komputer adalah ''''''partner'''''' kita. Maka dari itu, kita harus mengenal ''''''partner'''''' kita ini, mulai dari istilah-istilah yang ada. Salah satu istilah yang paling sering didengar adalah 32 bit dan 64 bit.
 +
 
 +
 
 +
Perbedaan 32 bit dan 64 bit adalah sistem operasi 32 bit hanya dapat menggunakan RAM dengan kapasitas maksimal 4 GB, selain itu sistem operas 32 bit hanya mampu memproses data sebesar 64 nilai komputasi. Sedangkan sistem operasi 64 bit dapat membaca RAM dengan batas maksimal 192 GB dan dapat memproses data hingga 256 nilai komputasi dalam sekali pemrosesan. Seperti hal nya otak manusia yang dapat menyimpan data dalam binary digit, maka komputer dengan sistem operasi 64 bit memiliki kemampuan yang lebih '''akurat''' dan juga '''cepat'''.
 +
 
 +
 
 +
Pada pertemuan kali ini, kita diminta untuk berlatih dalam penggunaan ''tuples'' dan juga ''lists'' di Python. Berikut hasil latihan saya:
 +
 
 +
 
 +
'''tuples''':
 +
[[File:Screen Shot 2019-09-16 at 20.59.23.png|400px|thumb|center|]]
 +
[[File:Screen Shot 2019-09-16 at 20.59.35.png|400px|thumb|center|]]
 +
 
 +
 
 +
 
 +
'''lists''':
 +
[[File:Screen Shot 2019-09-16 at 21.04.08.png|400px|thumb|center|]]
 +
[[File:Screen Shot 2019-09-16 at 21.04.18.png|400px|thumb|center|]]
 +
 
 +
 
 +
 
 +
== Pertemuan Ketiga ==
 +
'''Hari, Tanggal : Rabu, 18 September 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
Pada pertemuan ketiga mata kuliah metode numerik, tanggal 18 September 2019, diadakan kuis mengenai bahasa dasar pada python. Kuis yang diberikan aadalah deret Fibonaci. Berikut cara mendapatkan deret Fibonaci sesuai dengan ''n'' yang kita inginkan (''n'' adalah suku ke-n pada deret Fibonaci):
 +
 
 +
'''Metode Loop ''While Condition'''''
 +
[[File:loop.png|400px|thumb|center|]]
 +
[[File:loop1.png|400px|thumb|center|]]
 +
 
 +
 
 +
'''Metode Function'''
 +
[[File:function.png|400px|thumb|center|]]
 +
[[File:function1.png|400px|thumb|center|]]
 +
 
 +
 
 +
 
 +
== Pertemuan Keempat ==
 +
'''Hari, Tanggal : Rabu, 25 September 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
Topik pembahasan pada pertemuan keempat metode numerik ini adalah '''pemodelan komputer'''. Pak DAI mengatakan untuk mengerti sebuah konsep lebih baik, ada baiknya kita memahami apa isi konsep tersebut terlebih dahulu. Numerical computing atau pemodelan komputer ini terdiri dari modelling dan computation.
 +
 
 +
Kita harus menghitung karena kita ingin dan harus memastikan hal yang kita design harus berfungsi dengan baik dan ''reliable'' dengan fungsi yang optimal. Namun manusia memiliki keterbatasan, maka kita menghitung menggunakan pendekatan.
 +
 
 +
Apa itu model?
 +
 
 +
Model adalah sebuah representasi yang mensimplifikasi suatu sistem atau objek yang  merepresentasikan hal yang rumit menjadi sederhana dengan segala asumsi-asumsinya.
 +
 
 +
3 poin penting dalam model yaitu asumsi, representasi, dan simplifikasi.
 +
 
 +
Contoh dari model ini adalah sebuah pondasi. Pondasi ini dimodelkan dalam bentuk 3D dan modulus elastisitas diasumsikan sama di semua titik, setelah itu di sederhanakan(simplifikasi) dengan menggunakan model 2D.
 +
 
 +
Modelyang kita buat ini membutuhkan ilmu untuk membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Maka kita harus berlatih sejak dini untuk menggunakan komputasi. Terdapat aplikasi dari komputasi yaitu ''diskritisasi'', yaitu membuat sesuatu yang kontinu menjadi beberapa titik-titik yang berhingga.
 +
 
 +
 
 +
 
 +
== Pertemuan Kelima ==
 +
 
 +
'''Hari, Tanggal : Rabu, 2 Oktober 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
Pada pertemuan metode numerik kali ini, topik pembelajarannya adalah aplikasi aljabar yang akan dimodelkan pada sistem pegas. Pak Dai mengatakan bahwa semua masalah dapat dimodelkan, tidak ada permasalahan yang tidak dapat dimodelkan. Model ini kemudian dapat mempermudah kita dalam menyelesaikan masalah tersebut. Salah satu contohnya yaitu menggunakan bahasa pemograman python untuk menyelesaikan masalah. Mengapa menggunakan bahasa python? Karena python merupakan bahasa gratis dan sedang digunakan di dalam industry 4.0 sekarang ini.
 +
 
 +
Pada pertemuan metode numerik kali ini, asisten dosen menjelaskan mengeian penggunaan pemodelan pada sistem tunggal menjadi sebuah persamaan linear dengan menerjemahkan rumus yang biasa digunakan pada materi pegas menjadi sebuah matriks sehingga mempermudah kemudian untuk mengolahnya. Selain itu, diberikan juga materi mengenai cara pembuatan matriks pegas yang bukan tunggal, yaitu dengan cara menerapkan superposisi matriks. Selanjutnya diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada python yang mempermudah perhitungan sistem persamaan linear, yaitu ''numpy''dan ''sympy''.
 +
 
 +
 
 +
Tugas yang diberikan untuk minggu depan adalah membaca buku mengenai motode ''Runge-Kutta''. 
 +
 
 +
 
 +
 
 +
== Pertemuan Keenam ==
 +
 
 +
'''Hari, Tanggal : Rabu, 9 Oktober 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
Pada pertemuan metode nureik kali ini, materi yang diberikan adalah mempelajari cara untuk memecahkan satu set persamaan aljabar. Teknik-teknik menyelesaikan persamaan aljabar adalah:
 +
 
 +
- metode eliminasi : mengurangi variabel dari persamaan berikutnya, sehingga persamaan akhirnya hanya 1 variable lalu nanti disubstitusi.
 +
 
 +
- Gauss
 +
 
 +
- Trial and Error
 +
dll
 +
 
 +
Menurut Pak Dai yang perlu diketahui adalah peran komputer dalam pemodelan. Beliau mngatakan bahwa dalam pemodelan ini logika tetap berasal dari manusia namun komputer membantu mempercepat perhitungan. Maka dari itu kemarin kita mendiskusikan mengenai sebuah pemodelan dari suatu permasalahan menjadi persamaan aljabar.
 +
 
 +
Kontinu Assumption : contoh dalam satu ruangan dipenuhi oleh oksigen, maka tidak ada ruang hampa dalam ruangan. Seluruh ruangan dipenuhi oleh oksigen dan kita dapat mengukur temperatur dititik manapun dalam ruangan. Formasi dan udara mungkin tidak terlihat tetapi kita harus membayangkannya, karena imajinasi lebih powerful dari pengetahuan.
 +
 
 +
 
 +
Model matematis ini nantinya akan berupa persamaan diferensial. Persamaan diferensial muncul akibat permasalahan yang kita hadapi terjadi secara kontinu. Kontinu Assumption jika diberikan gaya maka setiap titik akan merasakan beban sehingga tiap titik akan berdislokasi atau berpindah tempat. Selisih perpindahan tempatnya disebut dengan displacement (u). Perubahan displacement disebut (du) artinya limit ketika delta u menuju 0 tetapi tidak 0. Jadi diferensial itu sangat kecil namun tidak 0.
 +
 
 +
 
 +
 
 +
== KUIS ==
 +
'''Hari, Tanggal : Rabu, 16 Oktober 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
Pada pertemuan kali ini, diberikan kuis yaitu dengan materi solusi persamaan aljabar simultan dan solusi numerik persamaan diferensial (''Initial Value Problem''). Kemudian kita diperintahkan untuk menuliskan algoritma dan juga hasil dari ''running'' program python untuk dua soal, yaitu:
 +
 
 +
Problem set 2.1 no 6 hal 55
 +
 
 +
[[File:Screen Shot 2019-10-16 at 22.21.17.png|400px|thumb|center|]]
 +
 
 +
Problem set 7.1 no 2 hal 263
 +
[[File:Screen Shot 2019-10-16 at 22.20.59.png|400px|thumb|center|]]
 +
 
 +
Program python untuk soal di atas adalah sebagai berikut:
 +
 
 +
Problem set 2.1 no 6 hal 55
 +
 
 +
from numpy import linalg
 +
import numpy as np
 +
b1 = [0,0,2,1,2]
 +
b2 = [0,1,0,2,-1]
 +
b3 = [1,2,0,-2,1]
 +
b4 = [0,0,0,-1,1]
 +
b5 = [0,1,-1,1,-1]
 +
nmat = np.array ([b1,b2,b3,b4,b5])
 +
print ("Matriks A adalah :")
 +
print (nmat)
 +
cons = np.array ([1,1,-4,-2,-1])
 +
print ("Matriks b adalah :")
 +
print (cons)
 +
jawab = linalg.solve (nmat,cons)
 +
x1val = int(jawab[0])
 +
x2val = int(jawab[1])
 +
x3val = int(jawab[2])
 +
x4val = int(jawab[3])
 +
x5val = int(jawab[4])
 +
print ("Hasil X untuk matkris AX=b adalah :")
 +
print ("x1= ",x1val)
 +
print ("x2= ",x2val)
 +
print ("x3= ",x3val)
 +
print ("x4= ",x4val)
 +
print ("x5= ",x5val)
 +
 
 +
Problem set 7.1 no 6 hal 263
 +
 
 +
def dydx(x, y):
 +
    return ((x**2 - 4*y))
 +
# Finds value of y for a given x using step size h
 +
# and initial value y0 at x0.
 +
def rungeKutta(x0, y0, x, h):
 +
    # Count number of iterations using step size or
 +
    # step height h
 +
    n = (int)((x - x0)/h) 
 +
    # Iterate for number of iterations
 +
    y = y0
 +
    for i in range(1, n + 1):
 +
        "Apply Runge Kutta Formulas to find next value of y"
 +
        k1 = h * dydx(x0, y)
 +
        k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1)
 +
        k3 = h * dydx(x0 + 0.5 * h, y + 0.5 * k2)
 +
        k4 = h * dydx(x0 + h, y + k3)
 +
        # Update next value of y
 +
        y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
 +
        # Update next value of x
 +
        x0 = x0 + h
 +
    return y
 +
#misalkan :
 +
x0 = 0
 +
y = 1
 +
x = 0.03
 +
h = 0.01
 +
print ('Nilai y untuk x tersebut adalah:', rungeKutta(x0, y, x, h))
 +
 
 +
 
 +
 
 +
== UTS ==
 +
'''Hari, Tanggal : Rabu, 23 Oktober 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
Untuk kasus A
 +
 
 +
from math import *
 +
g= 9.81
 +
m1 = eval(input("massa 1:"))
 +
m2 = eval(input("massa 2:"))
 +
m3 = eval(input("massa 3:"))
 +
w1 = eval(input("koef gesek 1:"))
 +
w2 = eval(input("koef gesek 2:"))
 +
w3 = eval(input("koef gesek 3:"))
 +
alpha= eval(input("sudut kemiringan bidang: "))
 +
a = eval(input("besarnya percepatan: "))
 +
b = sin(alpha)
 +
c = cos(alpha)
 +
t1 = m1*g*(b-w1*c) - m1*a
 +
t2 = m2*g*(b-w2*c) + t1 - m2*a
 +
t3 = m3*g*(b-w3*c) + t2 - m3*a
 +
print ("tegang tali 1 adalah: ",t1)
 +
print ("tegang tali 2 adalah: ",t2)
 +
print ("tegang tali 3 adalah: ",t3)
 +
 
 +
 
 +
Link video: [https://youtu.be/gBtlYEVaG2E Penyelesaian Soal UTS 1A]
 +
 
 +
Data yang diinput:
 +
 
 +
[[File:Screen Shot 2019-10-29 at 00.38.00.png|400px|thumb|center|]]
 +
 
 +
Untuk kasus B
 +
 
 +
from math import *
 +
from sympy import *
 +
g = 9.81
 +
rho = 1.2 #massa jenis dari udara
 +
dc = eval(input("drag coefficient:"))
 +
area = eval(input("luas(m^2):"))
 +
v1 = eval(input("kecepatan akhir (m/s):"))
 +
M = eval(input("massa mobil (kg):"))
 +
w = eval(input("koefisien gesek:"))
 +
a = eval(input("percepatan (m/s^2):"))
 +
Fg = g*w
 +
f1 = a
 +
for v0 in range (0,v1):
 +
    Fdrag = (dc*v0**3/2)/M
 +
    atot = f1-(Fdrag+Fg)
 +
    t = -(v1)/atot
 +
print ("Percepatan Total (m/s^2):",atot)
 +
print ("Waktu yang diperlukan oleh V1(s):",t)
 +
 
 +
 
 +
Link video: [https://youtu.be/dafLYpRK7vY Penyelesaian Soal UTS 1B]
 +
 
 +
Data yang diinput:
 +
 
 +
[[File:Screen Shot 2019-10-28 at 23.08.19.png|400px|thumb|center|]]
 +
 
 +
 
 +
Video muhasabah diri : [https://youtu.be/-L5ZcmaLKJE Muhasabah Diri]
 +
 
 +
 
 +
 
 +
== PERBAIKAN UTS ==
 +
'''Hari, Tanggal : Jumat, 25 Oktober 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
 
 +
BAGIAN A dengan metode runge kutta
 +
 
 +
import math
 +
import numpy as np
 +
#matrix c & d
 +
C = np.array([[1., 0., 0.],
 +
          [-1., 1., 0.],
 +
          [0., -1., 1.]], float)
 +
D = np.array([21.37, 14.24, 7.12], float)
 +
n = len(C) #panjang baris C
 +
print('Matriks C :')
 +
print(C,'\n')
 +
print('Matriks C mempunyai ', n , ' baris','\n')
 +
print('Matriks D :')
 +
print(D,'\n')
 +
for k in range(0,n-1): #Metode gauss
 +
  for i in range(k+1,n):
 +
      if C[i,k]!=0 :
 +
          lam = C[i,k]/C[k,k]
 +
          C[i,k:n] = C[i,k:n]-(C[k,k:n]*lam)
 +
          D[i] = D[i]-(D[k]*lam)
 +
print('matrix C:', '\n', C, '\n')
 +
print('Tegangan Tali adalah:')
 +
x = np.zeros(n,float)
 +
for m in range(n-1,-1,-1):
 +
  x[m]=(D[m]-np.dot(C[m,m+1:n],x[m+1:n]))/C[m,m]
 +
  print('T',m+1,'=', x[m])
 +
 
 +
 
 +
BAGIAN B dengan metode runge kutta
 +
 
 +
g = 9.81
 +
w = eval(input("koefisien gesek : "))
 +
a = eval(input("percepatan mobil : "))
 +
dc = eval(input("koefisien drag : "))
 +
m = eval(input("massa mobil : "))
 +
t0 = 0
 +
v0 = 0
 +
dt = 1
 +
error = 100
 +
sigmaf = a - g*w #dibagi massa
 +
fs = dc/m #dibagi massa
 +
lst = []
 +
def dvdt(t0, v0):
 +
  return sigmaf-(fs*(v0)**(1.5))
 +
while error > 0.005:
 +
  k1 = dvdt(t0, v0)
 +
  k2 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k1)
 +
  k3 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k2)
 +
  k4 = dvdt(t0 + dt, v0 + dt * k3)
 +
  v1 = v0 + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
 +
  t0 = t0 + dt
 +
  error = ((v1 - v0) / v1)*100
 +
  v0 = v1
 +
  lst.append(v1)
 +
waktu = len(lst)
 +
print ("kecepatan maksimal adalah: ", v1, "m/s")
 +
print ("waktu untuk mencapai kecepatan maksimal adalah: ", waktu+1, "s")
 +
 
 +
 
 +
 
 +
== Pertemuan kesembilan: Pemodelan Runge Kutta==
 +
'''Hari, Tanggal : Rabu, 6 November 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
Pemograman dengan metode runge kutta:
 +
 
 +
g = 9.81
 +
t = float(input("Waktu roket jatuh (s): "))
 +
while t < 0:
 +
  print("Waktu (t>0) :")
 +
  t = float(input("Waktu roket kembali (s): ")) 
 +
m = float(input("Massa roket (kg): "))
 +
while m < 0:
 +
  print("massa>0.")
 +
  m = float(input("Massa roket kembali (kg): ")) 
 +
dc = float(input("Koefisien drag: "))
 +
while dc < 0:
 +
  print("koef drag (>0).")
 +
  m = float(input("Koefisien drag kembali: "))
 +
t0 = 0
 +
v0 = 0
 +
step = 0.01
 +
#f(t,v) adalah fungsi (x,y) dimana t diposisikan sebagai x dan v diposisikan sebagai y.
 +
def f(t, v):
 +
  return ((m*g-dc*v**1.5)/m)
 +
#rungekutta orde4
 +
def rungekutta(t0, v0, t, step):
 +
  n = (int)((t - t0)/step) 
 +
  v = v0
 +
  for i in range(1, n + 1):
 +
    k1 = step * f(t, v)
 +
    k2 = step * f(t + 0.5 * step, v + 0.5 * k1)
 +
    k3 = step * f(t + 0.5 * step, v + 0.5 * k2)
 +
    k4 = step * f(t + step, v + k3)
 +
    #untuk v baru
 +
    v = v + (1/6)*(k1 + 2 * k2 + 2 * k3 + k4)
 +
    #untuk t baru
 +
    t0 = t0 + step
 +
  return v
 +
print("Setelah", t, "s jatuh, kecepatan roket adalah", rungekutta(t0, v0, t, step), "m/s")
 +
 
 +
[[File:Screen Shot 2019-11-06 at 15.02.42.png|400px|thumb|center|]]
 +
 
 +
 
 +
== Tugas: CFD (mobil) ==
 +
'''Hari, Tanggal : Rabu, 20 November 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
'''Landasan Teori'''
 +
 
 +
Drag force merupakan gaya kebelakang yang mendorong mundur serta menekan kebawah dan drag force ini disebabkan karena gangguan aliran udara pada bodi kendaraan dan parallel dengan arah angin. Drag force adalah jumlah semua gaya eksternal dalam aliran fluida yang melawan arah gerak objek dan disebabkan oleh aliran turbulen di sekitar benda yang melawan gerak maju objek melalui fluida (gas atau cairan).
 +
 
 +
Drag force dapat dimanfaatkan menjadi salah satu cara yang efisien untuk meningkatkan kecepatan kendaraan serta menghemat penggunaan bahan bakar. Hal ini dapat terjadi karena jika koefisien drag semakin kecil, maka hambatan udara terhadap mobil semakin kecil, sehingga mobil dapat melaju dengan tenaga dari mesin yang lebih sedikit dan pada akhirnya akan mengurangi pemakaian atau konsumsi bahan bakar mesin mobil.
 +
 
 +
Secara teori, jika koefisien drag semakin berkurang, maka kecepatan akan semakin meningkat, sesuai dengan persamaan gaya drag yang di mana koefisien drag berbanding terbalik dengan kecepatan. Oleh karena itu, pengaruh tahanan udara yang paling besar terjadi ketika laju kendaraan pada kecepatan yang paling rendah.
 +
 
 +
Faktor yang sangat penting dalam menentukan kualitas simulasi CFD salah satunya adalah meshing atau griding. Meshing merupakan proses dikritisasi domain fluida yang kontinu yang menjadi domain komputasi yang diskrit sehingga dapat diselesaikan persamaan-persamaan didalamnya dan menghasilkan solusi.
 +
 
 +
Setelah mengerti penggunaan CFDSOF-NG kami menghitung besarnya drag force dari mobil yang modelnya diberikan, dengan menggunakan aplikasi CFD. Kami mengikuti semua parameter yang telah di berikan mulai dari mesh yang ada sampai jenis aliran udara. Setelah dijalankan, berikut 10 data yang di dapatkan:
 +
 
 +
kecepatan drag force
 +
10         8.11646
 +
15         10.1848
 +
20         17.6275
 +
25         27.0084
 +
30         38.3158
 +
35         51.53
 +
40         66.6329
 +
45         83.5765
 +
50         102.321
 +
 
 +
dengan grafik sebagai berikut:
 +
 
 +
[[File:grafik mobil1.png|400PX|middle]]
 +
 
 +
 
 +
== TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG) ==
 +
 
 +
'''Hari, Tanggal : Rabu, 27 November 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
Pada tugas kali ini, kita ditugaskan untuk menganalisis gaya yang terjadi pada sebuah airfoil (sayap pesawat). gaya yang telah dianalisis di hubungkan dengan percobaan sudut yang dibentuk airfoil dengan sumbu normal. Percobaan ini bertujuan untuk menentukan sudut maksimum untuk mendapatkan rasio gaya yang paling baik. Beriukut langkah langkah yang kami lakukan :
 +
1. Mencari referensi airfoil lalu mendesign airfoil tersebut di inventor.
 +
2. Setelah itu kita masukan kedalam CFDSOF-NG untuk di analisis.
 +
3. Akan di dapat sebuah data yang nanti akan di plotting menjadi sebuah grafik.
 +
4. mencari sebuah persamaan yang terbentuk.
 +
5. melakukan optimasi mengunakan pemograman phyton.
 +
6. menarik kesimpulan yang ada.
 +
 
 +
 
 +
'''PEMBUATAN AIRFOIL'''
 +
 
 +
Berikut airfoil yang kelompok kami buat yang mendapatkan referensi dari NACA 0006.
 +
 
 +
[[File:AIRFOIL.png|800px|middle]]
 +
 
 +
 
 +
'''ANALISIS MENGGUNAKAN CFDSOF-NG'''
 +
 
 +
[[File:TEST.png|600px|middle]]
 +
[[File:TEST1.png|600px|middle]]
 +
[[File:TEST2.png|600px|middle]]
 +
 
 +
 
 +
'''MENGOLAH DATA'''
 +
 
 +
Setelah melakukan analisis pada CFDSOF-NG, didapatkan data ytang berupa drag forve dan lift foce, berikut data yang telah kami dapatkan :
 +
 
 +
[[File:DATA.png|600px]]
 +
 
 +
 
 +
'''PEMBUATAN GRAFIK'''
 +
 
 +
Setelah medapatkan data yang diinginkan, kita dapat memasukan data tersebut kedalam microsoft excel yang dimana nanti akan dibuat sebuah grafik yang menggunakan trend line guna mendapatkan persamaannya. berikut hasil grafik drag dan lift force terhadap sudut yang telah kami buat :
 +
 
 +
[[File:DRAG.jpg|600px]]
 +
[[File:LIFT.jpg|600px]]
 +
 
 +
 
 +
'''PEMOGRAMAN MENGGUNAKAN PHYTON'''
 +
 
 +
Setelah mendapatkan persamaan yang ada pada grafik, kita dapat membuat pemograman untuk melakukan optimasi, berikut optimasinya :
 +
 
 +
[[File:iyekoding.png|800px]]
 +
[[File:hoohkoding.png|800px]]
 +
 
 +
== Penjelasan tentang ANN ==
 +
 
 +
'''Hari, Tanggal : Rabu, 11 Desember 2019'''
 +
 
 +
'''Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika'''
 +
 
 +
ANN Adalah sistem pembelajaran terawasi yang dibangun dari sejumlah besar elemen sederhana, yang disebut neuron atau perceptron. Setiap neuron dapat membuat keputusan sederhana, dan memberi makan keputusan itu ke neuron lain, yang diorganisasikan dalam lapisan yang saling berhubungan.
 +
 +
 
 +
Backpropagation adalah algoritma pembelajaran untuk memperkecil tingkat error dengan cara menyesuaikan bobotnya berdasarkan perbedaan output dan target yang diinginkan.  Backpropagation juga merupakan sebuah metode sistematik untuk pelatihan multilayer.
 +
 
 +
Arsitektur algoritma backpropagation terdiri dari tiga layer, yaitu input layer, hidden layer dan output layer. Pada input layer tidak terjadi proses komputasi, namun pada input  layer terjadi pengiriman sinyal input X ke hidden layer. Pada hidden dan output layer terjadi proses komputasi terhadap bobot dan bias dan dihitung pula besarnya output dari hidden dan output layer tersebut berdasarkan fungsi aktivasi tertentu. Dalam algoritma backpropagation ini digunakan fungsi aktivasi sigmoid biner, karena output yang diharapkan bernilai antara 0 sampai 1.
 +
 
 +
Algoritma backpropagation adalah sebuah algoritma untuk memperkecil tingkat error dengan menyesuaikan bobot berdasarkan perbedaan output dan target yang diinginkan.
 +
Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu :
 +
Pengambilan input
 +
Penelusuran error
 +
Penyesuaian bobot
 +
 
 +
 
 +
Steps untuk membuat ANN :
 +
Data Preprocessing
 +
Add input layer
 +
Random w init
 +
Add Hidden Layers
 +
Select Optimizer, Loss, and Performance Metrics
 +
Compile the model
 +
use model.fit to train the model
 +
Evaluate the model
 +
Adjust optimization parameters or model if needed
 +
 
 +
 
 +
Terima Kasih telah membaca Wiki saya!
 +
Apabila ada yang ingin disampaikan dapat mengisi kolom komentar dibawah ini!
 +
 
 +
 
 +
<comments voting="Plus" />

Latest revision as of 16:00, 17 December 2019

Kanwaljot Kaur.jpg


Nama: Kanwaljot Kaur

NPM : 1706036305

Mahasiswa Teknik Mesin 2017


Pertemuan Pertama

Hari, Tanggal : Rabu, 4 September 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


Pada pertemuan pertama mata kuliah metode numerik, Pak Dr. Ahmad Indra, atau yang biasa disapa Pak Dai, memberikan pendahuluan yang intinya adalah setiap mata kuliah yang kita ambil jangan hanya asal lewat saja, tetapi kita harus menyerap 'ilmu-ilumnya'. Untuk contohnya, Pak Dai memberikan sebuah pertanyaan, yaitu 'Kenapa sebagai mahasiswa teknik mesin kita harus mempelajari kalkulus?' Kemudian setelah beberapa teman mencoba menjawab, akhirnya beliau memberikan alasan mengapa kita harus mempelajari kalkulus, yaitu kita dapat mengambil ilmunya seperti menurunkan rumus dan juga logika matematika yang nantinya dapat digunakan di mata kuliah mesin seperti matematika teknik, termodinamika, dan mata kuliah lainnya.


Metode Numerik adalah teknik yang digunakan untuk menyelesaikan persoalan matematika sehingga dapat diselesaikan dengan operasi perhitungan biasa, yaitu tambah, kurang, kali, dan bagi.


Pada metode numerik ini, bahasa pemograman yang digunakan adalah Python. Meskipun metode numerik digunakan sebagai penyelesai masalah atau solver, ide untuk menyelesaikan persoalannya tetap berasal dari manusia. Untuk menyelesaikan persoalan matematika itu dibutuhkan langkah-langkah yang merupakan instruksi yang dibutuhkan komputer. Maka, dibutuhkan bahasa penulisan dari yang kita (manusia) mengerti menjadi bahasa mesin yang disebut bahasa pemograman. Untuk mempermudah kita dalam membuat bahasa pemograman ini, digunakan flow chart, yang merupakan instruksi yang terdiri dari bagan dan simbol tertentu.


Pak Dr. Eng. Radon Dhelika, atau yang kerap disapa Pak Radon, menambahkan bahwa di industri 4.0 ini tingkat kebutuhan skill pemograman dibutuhkan. Maka kita harus fokus, menyerap, dan mendalami mata kuliah metode numerik ini.


Diakhir pertemuan pertama berakhir, diberikan tugas sebagai berikut:
1. Mempelajari Python masing-masing
2. Membuat penyelesaian untuk persoalan T(x)= (x^2-1)/(x-1)  dalam bentuk algoritma / flowchart


Setelah saya membaca dan menyari dari berbagai sumber, saya menetukan algoritma dari persoalan yang diberikan dengan menggunakan sympy


from sympy import *
x = symbols ('x')
hasil = limit (((x ** 2) - 1 ) / (x - 1) , x, 1)
print (hasil)
Screen Shot 2019-09-16 at 20.34.08.png

Hasil yang didapatkan adalah 2

Screen Shot 2019-09-16 at 20.34.15.png


Pertemuan Kedua

Hari, Tanggal : Rabu, 11 September 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


Pada pertemuan kedua kelas metode numerik ini membicarakan banyak hal, salah satunya adalah Artificial Intelligence (AI). AI atau rekayasa kecerdasan ini berguna untuk membantu manusia dan memang dibuat menyerupai manusia. Namun, perbedaan dari manusai dengan robot yang menyerupai manusia adalah manusia memiliki hati, meskipun manusia memiliki keterbatasan yang tidak dimiliki robot.


Dengan mempelajari mata kuliah metode numerik ini, membuat kita berhubungan dengan komputer. Istilahnya komputer adalah 'partner' kita. Maka dari itu, kita harus mengenal 'partner' kita ini, mulai dari istilah-istilah yang ada. Salah satu istilah yang paling sering didengar adalah 32 bit dan 64 bit.


Perbedaan 32 bit dan 64 bit adalah sistem operasi 32 bit hanya dapat menggunakan RAM dengan kapasitas maksimal 4 GB, selain itu sistem operas 32 bit hanya mampu memproses data sebesar 64 nilai komputasi. Sedangkan sistem operasi 64 bit dapat membaca RAM dengan batas maksimal 192 GB dan dapat memproses data hingga 256 nilai komputasi dalam sekali pemrosesan. Seperti hal nya otak manusia yang dapat menyimpan data dalam binary digit, maka komputer dengan sistem operasi 64 bit memiliki kemampuan yang lebih akurat dan juga cepat.


Pada pertemuan kali ini, kita diminta untuk berlatih dalam penggunaan tuples dan juga lists di Python. Berikut hasil latihan saya:


tuples:

Screen Shot 2019-09-16 at 20.59.23.png
Screen Shot 2019-09-16 at 20.59.35.png


lists:

Screen Shot 2019-09-16 at 21.04.08.png
Screen Shot 2019-09-16 at 21.04.18.png


Pertemuan Ketiga

Hari, Tanggal : Rabu, 18 September 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Pada pertemuan ketiga mata kuliah metode numerik, tanggal 18 September 2019, diadakan kuis mengenai bahasa dasar pada python. Kuis yang diberikan aadalah deret Fibonaci. Berikut cara mendapatkan deret Fibonaci sesuai dengan n yang kita inginkan (n adalah suku ke-n pada deret Fibonaci):

Metode Loop While Condition

Loop.png
Loop1.png


Metode Function

Function.png
Function1.png


Pertemuan Keempat

Hari, Tanggal : Rabu, 25 September 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Topik pembahasan pada pertemuan keempat metode numerik ini adalah pemodelan komputer. Pak DAI mengatakan untuk mengerti sebuah konsep lebih baik, ada baiknya kita memahami apa isi konsep tersebut terlebih dahulu. Numerical computing atau pemodelan komputer ini terdiri dari modelling dan computation.

Kita harus menghitung karena kita ingin dan harus memastikan hal yang kita design harus berfungsi dengan baik dan reliable dengan fungsi yang optimal. Namun manusia memiliki keterbatasan, maka kita menghitung menggunakan pendekatan.

Apa itu model?

Model adalah sebuah representasi yang mensimplifikasi suatu sistem atau objek yang   merepresentasikan hal yang rumit menjadi sederhana dengan segala asumsi-asumsinya.

3 poin penting dalam model yaitu asumsi, representasi, dan simplifikasi.

Contoh dari model ini adalah sebuah pondasi. Pondasi ini dimodelkan dalam bentuk 3D dan modulus elastisitas diasumsikan sama di semua titik, setelah itu di sederhanakan(simplifikasi) dengan menggunakan model 2D.

Modelyang kita buat ini membutuhkan ilmu untuk membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Maka kita harus berlatih sejak dini untuk menggunakan komputasi. Terdapat aplikasi dari komputasi yaitu diskritisasi, yaitu membuat sesuatu yang kontinu menjadi beberapa titik-titik yang berhingga.


Pertemuan Kelima

Hari, Tanggal : Rabu, 2 Oktober 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


Pada pertemuan metode numerik kali ini, topik pembelajarannya adalah aplikasi aljabar yang akan dimodelkan pada sistem pegas. Pak Dai mengatakan bahwa semua masalah dapat dimodelkan, tidak ada permasalahan yang tidak dapat dimodelkan. Model ini kemudian dapat mempermudah kita dalam menyelesaikan masalah tersebut. Salah satu contohnya yaitu menggunakan bahasa pemograman python untuk menyelesaikan masalah. Mengapa menggunakan bahasa python? Karena python merupakan bahasa gratis dan sedang digunakan di dalam industry 4.0 sekarang ini.

Pada pertemuan metode numerik kali ini, asisten dosen menjelaskan mengeian penggunaan pemodelan pada sistem tunggal menjadi sebuah persamaan linear dengan menerjemahkan rumus yang biasa digunakan pada materi pegas menjadi sebuah matriks sehingga mempermudah kemudian untuk mengolahnya. Selain itu, diberikan juga materi mengenai cara pembuatan matriks pegas yang bukan tunggal, yaitu dengan cara menerapkan superposisi matriks. Selanjutnya diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada python yang mempermudah perhitungan sistem persamaan linear, yaitu numpydan sympy.


Tugas yang diberikan untuk minggu depan adalah membaca buku mengenai motode Runge-Kutta.


Pertemuan Keenam

Hari, Tanggal : Rabu, 9 Oktober 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


Pada pertemuan metode nureik kali ini, materi yang diberikan adalah mempelajari cara untuk memecahkan satu set persamaan aljabar. Teknik-teknik menyelesaikan persamaan aljabar adalah:

- metode eliminasi : mengurangi variabel dari persamaan berikutnya, sehingga persamaan akhirnya hanya 1 variable lalu nanti disubstitusi.

- Gauss

- Trial and Error dll

Menurut Pak Dai yang perlu diketahui adalah peran komputer dalam pemodelan. Beliau mngatakan bahwa dalam pemodelan ini logika tetap berasal dari manusia namun komputer membantu mempercepat perhitungan. Maka dari itu kemarin kita mendiskusikan mengenai sebuah pemodelan dari suatu permasalahan menjadi persamaan aljabar.

Kontinu Assumption : contoh dalam satu ruangan dipenuhi oleh oksigen, maka tidak ada ruang hampa dalam ruangan. Seluruh ruangan dipenuhi oleh oksigen dan kita dapat mengukur temperatur dititik manapun dalam ruangan. Formasi dan udara mungkin tidak terlihat tetapi kita harus membayangkannya, karena imajinasi lebih powerful dari pengetahuan.


Model matematis ini nantinya akan berupa persamaan diferensial. Persamaan diferensial muncul akibat permasalahan yang kita hadapi terjadi secara kontinu. Kontinu Assumption jika diberikan gaya maka setiap titik akan merasakan beban sehingga tiap titik akan berdislokasi atau berpindah tempat. Selisih perpindahan tempatnya disebut dengan displacement (u). Perubahan displacement disebut (du) artinya limit ketika delta u menuju 0 tetapi tidak 0. Jadi diferensial itu sangat kecil namun tidak 0.


KUIS

Hari, Tanggal : Rabu, 16 Oktober 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Pada pertemuan kali ini, diberikan kuis yaitu dengan materi solusi persamaan aljabar simultan dan solusi numerik persamaan diferensial (Initial Value Problem). Kemudian kita diperintahkan untuk menuliskan algoritma dan juga hasil dari running program python untuk dua soal, yaitu:

Problem set 2.1 no 6 hal 55

Screen Shot 2019-10-16 at 22.21.17.png

Problem set 7.1 no 2 hal 263

Screen Shot 2019-10-16 at 22.20.59.png

Program python untuk soal di atas adalah sebagai berikut:

Problem set 2.1 no 6 hal 55

from numpy import linalg 
import numpy as np
b1 = [0,0,2,1,2] 
b2 = [0,1,0,2,-1]
b3 = [1,2,0,-2,1]
b4 = [0,0,0,-1,1]
b5 = [0,1,-1,1,-1]
nmat = np.array ([b1,b2,b3,b4,b5])
print ("Matriks A adalah :")
print (nmat)
cons = np.array ([1,1,-4,-2,-1])
print ("Matriks b adalah :")
print (cons)
jawab = linalg.solve (nmat,cons)
x1val = int(jawab[0])
x2val = int(jawab[1])
x3val = int(jawab[2])
x4val = int(jawab[3])
x5val = int(jawab[4])
print ("Hasil X untuk matkris AX=b adalah :")
print ("x1= ",x1val)
print ("x2= ",x2val)
print ("x3= ",x3val)
print ("x4= ",x4val)
print ("x5= ",x5val)

Problem set 7.1 no 6 hal 263

def dydx(x, y): 
   return ((x**2 - 4*y)) 
# Finds value of y for a given x using step size h 
# and initial value y0 at x0. 
def rungeKutta(x0, y0, x, h): 
   # Count number of iterations using step size or 
   # step height h 
   n = (int)((x - x0)/h)  
   # Iterate for number of iterations 
   y = y0 
   for i in range(1, n + 1): 
       "Apply Runge Kutta Formulas to find next value of y"
       k1 = h * dydx(x0, y) 
       k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1) 
       k3 = h * dydx(x0 + 0.5 * h, y + 0.5 * k2) 
       k4 = h * dydx(x0 + h, y + k3) 
       # Update next value of y 
       y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) 
       # Update next value of x 
       x0 = x0 + h 
   return y 
#misalkan :
x0 = 0
y = 1
x = 0.03
h = 0.01
print ('Nilai y untuk x tersebut adalah:', rungeKutta(x0, y, x, h))


UTS

Hari, Tanggal : Rabu, 23 Oktober 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


Untuk kasus A

from math import *
g= 9.81
m1 = eval(input("massa 1:"))
m2 = eval(input("massa 2:"))
m3 = eval(input("massa 3:"))
w1 = eval(input("koef gesek 1:"))
w2 = eval(input("koef gesek 2:"))
w3 = eval(input("koef gesek 3:"))
alpha= eval(input("sudut kemiringan bidang: "))
a = eval(input("besarnya percepatan: "))
b = sin(alpha)
c = cos(alpha)
t1 = m1*g*(b-w1*c) - m1*a
t2 = m2*g*(b-w2*c) + t1 - m2*a
t3 = m3*g*(b-w3*c) + t2 - m3*a
print ("tegang tali 1 adalah: ",t1)
print ("tegang tali 2 adalah: ",t2)
print ("tegang tali 3 adalah: ",t3)


Link video: Penyelesaian Soal UTS 1A

Data yang diinput:

Screen Shot 2019-10-29 at 00.38.00.png

Untuk kasus B

from math import *
from sympy import *
g = 9.81
rho = 1.2 #massa jenis dari udara
dc = eval(input("drag coefficient:"))
area = eval(input("luas(m^2):"))
v1 = eval(input("kecepatan akhir (m/s):"))
M = eval(input("massa mobil (kg):"))
w = eval(input("koefisien gesek:"))
a = eval(input("percepatan (m/s^2):"))
Fg = g*w
f1 = a
for v0 in range (0,v1):
   Fdrag = (dc*v0**3/2)/M
   atot = f1-(Fdrag+Fg)
   t = -(v1)/atot
print ("Percepatan Total (m/s^2):",atot)
print ("Waktu yang diperlukan oleh V1(s):",t)


Link video: Penyelesaian Soal UTS 1B

Data yang diinput:

Screen Shot 2019-10-28 at 23.08.19.png


Video muhasabah diri : Muhasabah Diri


PERBAIKAN UTS

Hari, Tanggal : Jumat, 25 Oktober 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika


BAGIAN A dengan metode runge kutta

import math 
import numpy as np 
#matrix c & d 
C = np.array([[1., 0., 0.],
         [-1., 1., 0.],
         [0., -1., 1.]], float)
D = np.array([21.37, 14.24, 7.12], float)
n = len(C) #panjang baris C
print('Matriks C :')
print(C,'\n')
print('Matriks C mempunyai ', n , ' baris','\n')
print('Matriks D :')
print(D,'\n') 
for k in range(0,n-1): #Metode gauss
 for i in range(k+1,n):
     if C[i,k]!=0 :
         lam = C[i,k]/C[k,k] 
         C[i,k:n] = C[i,k:n]-(C[k,k:n]*lam)
         D[i] = D[i]-(D[k]*lam)
print('matrix C:', '\n', C, '\n')
print('Tegangan Tali adalah:') 
x = np.zeros(n,float)
for m in range(n-1,-1,-1):
 x[m]=(D[m]-np.dot(C[m,m+1:n],x[m+1:n]))/C[m,m]
 print('T',m+1,'=', x[m])


BAGIAN B dengan metode runge kutta

g = 9.81
w = eval(input("koefisien gesek : "))
a = eval(input("percepatan mobil : "))
dc = eval(input("koefisien drag : "))
m = eval(input("massa mobil : "))
t0 = 0
v0 = 0
dt = 1 
error = 100
sigmaf = a - g*w #dibagi massa
fs = dc/m #dibagi massa
lst = []
def dvdt(t0, v0):
  return sigmaf-(fs*(v0)**(1.5))
while error > 0.005: 
  k1 = dvdt(t0, v0) 
  k2 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k1)
  k3 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k2) 
  k4 = dvdt(t0 + dt, v0 + dt * k3) 
  v1 = v0 + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
  t0 = t0 + dt
  error = ((v1 - v0) / v1)*100 
  v0 = v1
  lst.append(v1)
waktu = len(lst)
print ("kecepatan maksimal adalah: ", v1, "m/s")
print ("waktu untuk mencapai kecepatan maksimal adalah: ", waktu+1, "s")


Pertemuan kesembilan: Pemodelan Runge Kutta

Hari, Tanggal : Rabu, 6 November 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Pemograman dengan metode runge kutta:

g = 9.81 
t = float(input("Waktu roket jatuh (s): ")) 
while t < 0:
  print("Waktu (t>0) :")
  t = float(input("Waktu roket kembali (s): "))   
m = float(input("Massa roket (kg): ")) 
while m < 0:
  print("massa>0.")
  m = float(input("Massa roket kembali (kg): "))  
dc = float(input("Koefisien drag: ")) 
while dc < 0:
  print("koef drag (>0).")
  m = float(input("Koefisien drag kembali: "))
t0 = 0 
v0 = 0 
step = 0.01
#f(t,v) adalah fungsi (x,y) dimana t diposisikan sebagai x dan v diposisikan sebagai y.
def f(t, v):
  return ((m*g-dc*v**1.5)/m)
#rungekutta orde4
def rungekutta(t0, v0, t, step):
 n = (int)((t - t0)/step)  
 v = v0
 for i in range(1, n + 1): 
    k1 = step * f(t, v) 
    k2 = step * f(t + 0.5 * step, v + 0.5 * k1) 
    k3 = step * f(t + 0.5 * step, v + 0.5 * k2) 
    k4 = step * f(t + step, v + k3)
    #untuk v baru
    v = v + (1/6)*(k1 + 2 * k2 + 2 * k3 + k4) 
    #untuk t baru
    t0 = t0 + step 
 return v
print("Setelah", t, "s jatuh, kecepatan roket adalah", rungekutta(t0, v0, t, step), "m/s")
Screen Shot 2019-11-06 at 15.02.42.png


Tugas: CFD (mobil)

Hari, Tanggal : Rabu, 20 November 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Landasan Teori

Drag force merupakan gaya kebelakang yang mendorong mundur serta menekan kebawah dan drag force ini disebabkan karena gangguan aliran udara pada bodi kendaraan dan parallel dengan arah angin. Drag force adalah jumlah semua gaya eksternal dalam aliran fluida yang melawan arah gerak objek dan disebabkan oleh aliran turbulen di sekitar benda yang melawan gerak maju objek melalui fluida (gas atau cairan).

Drag force dapat dimanfaatkan menjadi salah satu cara yang efisien untuk meningkatkan kecepatan kendaraan serta menghemat penggunaan bahan bakar. Hal ini dapat terjadi karena jika koefisien drag semakin kecil, maka hambatan udara terhadap mobil semakin kecil, sehingga mobil dapat melaju dengan tenaga dari mesin yang lebih sedikit dan pada akhirnya akan mengurangi pemakaian atau konsumsi bahan bakar mesin mobil.

Secara teori, jika koefisien drag semakin berkurang, maka kecepatan akan semakin meningkat, sesuai dengan persamaan gaya drag yang di mana koefisien drag berbanding terbalik dengan kecepatan. Oleh karena itu, pengaruh tahanan udara yang paling besar terjadi ketika laju kendaraan pada kecepatan yang paling rendah.

Faktor yang sangat penting dalam menentukan kualitas simulasi CFD salah satunya adalah meshing atau griding. Meshing merupakan proses dikritisasi domain fluida yang kontinu yang menjadi domain komputasi yang diskrit sehingga dapat diselesaikan persamaan-persamaan didalamnya dan menghasilkan solusi.

Setelah mengerti penggunaan CFDSOF-NG kami menghitung besarnya drag force dari mobil yang modelnya diberikan, dengan menggunakan aplikasi CFD. Kami mengikuti semua parameter yang telah di berikan mulai dari mesh yang ada sampai jenis aliran udara. Setelah dijalankan, berikut 10 data yang di dapatkan:

kecepatan	drag force
10	        8.11646
15	        10.1848
20	        17.6275
25	        27.0084
30	        38.3158
35	        51.53
40	        66.6329
45	        83.5765
50	        102.321

dengan grafik sebagai berikut:

400PX


TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG)

Hari, Tanggal : Rabu, 27 November 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

Pada tugas kali ini, kita ditugaskan untuk menganalisis gaya yang terjadi pada sebuah airfoil (sayap pesawat). gaya yang telah dianalisis di hubungkan dengan percobaan sudut yang dibentuk airfoil dengan sumbu normal. Percobaan ini bertujuan untuk menentukan sudut maksimum untuk mendapatkan rasio gaya yang paling baik. Beriukut langkah langkah yang kami lakukan :

1. Mencari referensi airfoil lalu mendesign airfoil tersebut di inventor.
2. Setelah itu kita masukan kedalam CFDSOF-NG untuk di analisis.
3. Akan di dapat sebuah data yang nanti akan di plotting menjadi sebuah grafik.
4. mencari sebuah persamaan yang terbentuk.
5. melakukan optimasi mengunakan pemograman phyton.
6. menarik kesimpulan yang ada.


PEMBUATAN AIRFOIL

Berikut airfoil yang kelompok kami buat yang mendapatkan referensi dari NACA 0006.

AIRFOIL.png


ANALISIS MENGGUNAKAN CFDSOF-NG

TEST.png TEST1.png TEST2.png


MENGOLAH DATA

Setelah melakukan analisis pada CFDSOF-NG, didapatkan data ytang berupa drag forve dan lift foce, berikut data yang telah kami dapatkan :

DATA.png


PEMBUATAN GRAFIK

Setelah medapatkan data yang diinginkan, kita dapat memasukan data tersebut kedalam microsoft excel yang dimana nanti akan dibuat sebuah grafik yang menggunakan trend line guna mendapatkan persamaannya. berikut hasil grafik drag dan lift force terhadap sudut yang telah kami buat :

DRAG.jpg LIFT.jpg


PEMOGRAMAN MENGGUNAKAN PHYTON

Setelah mendapatkan persamaan yang ada pada grafik, kita dapat membuat pemograman untuk melakukan optimasi, berikut optimasinya :

Iyekoding.png Hoohkoding.png

Penjelasan tentang ANN

Hari, Tanggal : Rabu, 11 Desember 2019

Oleh : Dr. Ahmad Indra & Dr. Eng. Radon Dhelika

ANN Adalah sistem pembelajaran terawasi yang dibangun dari sejumlah besar elemen sederhana, yang disebut neuron atau perceptron. Setiap neuron dapat membuat keputusan sederhana, dan memberi makan keputusan itu ke neuron lain, yang diorganisasikan dalam lapisan yang saling berhubungan. 

Backpropagation adalah algoritma pembelajaran untuk memperkecil tingkat error dengan cara menyesuaikan bobotnya berdasarkan perbedaan output dan target yang diinginkan.  Backpropagation juga merupakan sebuah metode sistematik untuk pelatihan multilayer.
Arsitektur algoritma backpropagation terdiri dari tiga layer, yaitu input layer, hidden layer dan output layer. Pada input layer tidak terjadi proses komputasi, namun pada input  layer terjadi pengiriman sinyal input X ke hidden layer. Pada hidden dan output layer terjadi proses komputasi terhadap bobot dan bias dan dihitung pula besarnya output dari hidden dan output layer tersebut berdasarkan fungsi aktivasi tertentu. Dalam algoritma backpropagation ini digunakan fungsi aktivasi sigmoid biner, karena output yang diharapkan bernilai antara 0 sampai 1.
Algoritma backpropagation adalah sebuah algoritma untuk memperkecil tingkat error dengan menyesuaikan bobot berdasarkan perbedaan output dan target yang diinginkan.
Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu :
Pengambilan input
Penelusuran error
Penyesuaian bobot


Steps untuk membuat ANN :
Data Preprocessing
Add input layer
Random w init
Add Hidden Layers
Select Optimizer, Loss, and Performance Metrics
Compile the model
use model.fit to train the model
Evaluate the model
Adjust optimization parameters or model if needed


Terima Kasih telah membaca Wiki saya! Apabila ada yang ingin disampaikan dapat mengisi kolom komentar dibawah ini!



Add your comment
ccitonlinewiki welcomes all comments. If you do not want to be anonymous, register or log in. It is free.