Difference between revisions of "Kelompok 2"
(→Tugas Besar) |
(→Tugas Besar) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 179: | Line 179: | ||
== Tugas Besar == | == Tugas Besar == | ||
'''Spesifikasi Airfoil''' | '''Spesifikasi Airfoil''' | ||
+ | [[File:TB1.png]] | ||
Airfoil yang digunakan adalah MH 70 11.08% - Martin Hepperle MH70 | Airfoil yang digunakan adalah MH 70 11.08% - Martin Hepperle MH70 | ||
Span = 2 mm | Span = 2 mm | ||
− | Root and Tip Chord = 10 mm | + | Root and Tip Chord = 10 mm |
− | |||
'''Pembuatan model airfoil''' | '''Pembuatan model airfoil''' | ||
Line 188: | Line 188: | ||
[[File:TB2.png]] | [[File:TB2.png]] | ||
− | '''Simulasi menggunakan | + | '''Simulasi menggunakan CFD''' |
− | Model yang sudah dibuat diimport ke | + | Model yang sudah dibuat diimport ke CFDSOF |
− | |||
[[File:TB3.png]] | [[File:TB3.png]] | ||
+ | Model memasuki tahap ''meshing'' | ||
+ | |||
Berikut adalah ''Boundary geometry'' untuk proses ''meshing'' | Berikut adalah ''Boundary geometry'' untuk proses ''meshing'' | ||
− | Model memasuki tahap-tahap analisis sebagai berikut | + | [[File:TB4.png]] |
− | + | ||
− | + | Model memasuki tahap-tahap analisis sebagai berikut | |
+ | [[File:TB5.png]] | ||
+ | |||
+ | [[File:TB6.png]] | ||
+ | |||
+ | [[File:TB7.png]] | ||
+ | |||
+ | [[File:TB8.png]] | ||
+ | |||
+ | [[File:TB9.png]] | ||
+ | |||
+ | [[File:TB10.png]] | ||
+ | |||
+ | [[File:TB11.png]] | ||
+ | |||
+ | [[File:TB12.png]] | ||
'''Perhitungan menggunakan Paraview''' | '''Perhitungan menggunakan Paraview''' | ||
Model ''meshing'' diimport ke Paraview | Model ''meshing'' diimport ke Paraview | ||
Perhitungan dilakukan dengan tahap berikut | Perhitungan dilakukan dengan tahap berikut | ||
+ | [[File:TB12.png]] | ||
+ | |||
+ | [[File:TB13.png]] | ||
+ | |||
+ | [[File:TB14.png]] | ||
+ | |||
+ | [[File:TB15.png]] | ||
+ | |||
+ | [[File:TB16.png]] | ||
+ | |||
+ | [[File:TB17.png]] | ||
+ | |||
+ | [[File:TB18.png]] | ||
'''Hasil Percobaan''' | '''Hasil Percobaan''' | ||
''Data Percobaan'' | ''Data Percobaan'' | ||
− | + | Data Percobaan | |
− | + | [[File:TB19.png]] | |
+ | |||
''Grafik Percobaan'' | ''Grafik Percobaan'' | ||
Berikut adalah grafik lift dan drag kami | Berikut adalah grafik lift dan drag kami | ||
− | + | [[File:TB20.png]] | |
+ | |||
''Optimasi'' | ''Optimasi'' | ||
Kode yang digunakan | Kode yang digunakan | ||
− | + | [[File:TB21.png]] | |
+ | |||
Berikut hasil optimasi yang dilakukan | Berikut hasil optimasi yang dilakukan | ||
− | + | [[File:TB22.png]] | |
+ | |||
Grafik hasil optimasi Lift vs Drag | Grafik hasil optimasi Lift vs Drag | ||
− | + | ||
+ | [[File:TB23.png]] |
Latest revision as of 17:50, 8 December 2019
3. Ales Daniel
Eliminasi Gauss
Pengerjaan dilakukan menggunakan algoritma Gauss seperti yang ada di buku Phyton. Namun, yang membedakan adalah tidak menggunakan module pada pengerjaan ini. Berikut adalah algoritma yang sudah dirancang berdasarkan soal pada buku Phyton :
Algoritma yang kami gunakan adalah sebagai berikut:
a = [[2,-3,-1], \ [3,2,5], \ [2,4,4]] b = [[3], \ [-9], \ [-5]] n = len(b) for k in range(0, n-1): for i in range(n-1, k, -1): if a[i][k] != 0.0: op= a[i][k]/a[i-1][k] b[i][0]=b[i][0]-op*b[i-1][0] for f in range(0,n): a[i][f]=a[i][f]-op*a[i-1][f] Hasil=['Hasilnya'] if a[2][2] !=0: z=b[2][0]/a[2][2] else: z=0 if a[0][0] !=0: y=(b[1][0]-z*a[1][2])/a[1][1] else: y=0 if a[0][0] !=0: x=(b[0][0]-z*a[0][2]-y*a[0][1])/a[0][0] else: x=0 hasil=(x,y,z) print(a)
Runge-Kutta Method
Pengerjaan dilakukan dan kode dirancang untuk mengikuti contoh soal.
# Di sini, kita akan menggunakan x0 dan y sebagai titik asal, x sebagai t yang diinginkan, dan h sebagai increment. Kita menggunakan h = 0.01. x0 = 0 y = 0 h = 0.01 x = float(input("Masukkan nilai t: ")) if 0 <= x < 2: # dydx menyatakan persamaan awal dalam soal. Persamaan harus diintegralkan sekali untuk menghasilkan persamaan kecepatan. # Didapat hasil 2x^2 - 30xy karena dipakai massa m = 2,5 kg dan konstanta pegas k = 75 N/m. # P(t) dinyatakan dalam x. def dydx(x, y): return (2*x**2 - 30*x*y) # Ini merupakan implementasi perhitungan Runge-Kutta. def rungeKutta(x0, y0, x, h): n = (int)((x - x0)/h) y = y0 for i in range(1, n + 1): 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) # untuk y selanjutnya y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) # untuk x selanjutnya x0 = x0 + h return y print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h)) elif x >= 2: # Ketika x >= 2, perhitungan harus diganti karena P(t) sudah konstan di angka 20 N. def dydx(x, y): return (8 - 30*x*y) def rungeKutta(x0, y0, x, h): n = (int)((x - x0)/h) y = y0 for i in range(1, n + 1): 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) y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) x0 = x0 + h return y print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h)) else: print("Mohon masukkan nilai t positif.")
CFD CAR DRAG ANALYSIS
Analysis drag dilakukan terlebih dahulu input data yang diperlukan pada CFD-Pre dan CFD-Solve. Berikut adalah hasil setelah dilakukan Mesh Geometry dan Run Solver dari mobil yang akan dianalisa.
Kemudian, pada bagian tab CFD-Post, dilakukan running dengan aplikasi Paraview untuk mengetahui drag force yang ingin dicari tahu.
Lalu, dilakukan pengerjaan dengan filter Generate Surface Normal, dengan mengapply tampak car_body saja yang terlihat. Kemudian, dilakukan kalkulasi besar P terhadap gaya normal sumbu x. Hasil tersebut kemudian di apply kembali sehingga menghasilkan perhitungan yang diinginkan yaitu Drag Force yang ditentukan. Didapatkan besarnya setelah dilakukan filter dan integrasi perhitungan yang ada. Berikut adalah skema yang dilakukan:
Kemudian, dilakukan percobaan lainnya dengan variasi V dengan interval 1 dari 10 hingga 20. Akhirnya, didapatkan data yang kemudian dibentuk grafiknya serta trendline yang berbentuk kurva sebagai berikut:
Optimasi
Optimasi untuk kasus airfoil dilakukan menggunakan kode sbb:
# -*- coding: utf-8 -*- """ Created on Mon Dec 2 14:39:11 2019 @author: rjsec """ import numpy as np from scipy.optimize import minimize def cdrag(x): x1 = x[0] drag = 0.0000003*x1**4-0.00002*x1**3+0.0008*x1**2+0.0026*x1-0.0517 return drag def clift(x): x1 = x[0] lift = 0.0000001*x1**4+0.00001*x1**3+0.0003*x1**2+0.0052*x1+0.0187 return lift def objective(x): return cdrag(x) def constraint1(x): return 90 - cdrag(x) def constraint2(x): return 90 - clift(x) con1=({'type':'ineq','fun':constraint1}) con2=({'type':'ineq','fun':constraint2}) cons = (con1,con2) x1_guess = 50 x0 = np.array([x1_guess]) sol = minimize(objective,x0, method='SLSQP',constraints=cons, options={'disp':True}) xopt = sol.x forceopt = -sol.fun dragopt = cdrag(xopt) liftopt = clift(xopt) print ("") print ("Hasil optimasi:") print ("Sudut optimal = "+str(-xopt[0])) print ("Total force optimal = "+str(forceopt)) print ("Drag force optimal = "+str(-dragopt)) print ("Lift force optimal = "+str(liftopt))
Tugas Besar
Spesifikasi Airfoil Airfoil yang digunakan adalah MH 70 11.08% - Martin Hepperle MH70 Span = 2 mm Root and Tip Chord = 10 mm
Pembuatan model airfoil Airfoil dibuat dengan menggunakan software Autodesk Inventor
Simulasi menggunakan CFD Model yang sudah dibuat diimport ke CFDSOF Model memasuki tahap meshing Berikut adalah Boundary geometry untuk proses meshing Model memasuki tahap-tahap analisis sebagai berikut
Perhitungan menggunakan Paraview Model meshing diimport ke Paraview Perhitungan dilakukan dengan tahap berikut
Hasil Percobaan Data Percobaan Data Percobaan Grafik Percobaan Berikut adalah grafik lift dan drag kami Optimasi Kode yang digunakan Berikut hasil optimasi yang dilakukan Grafik hasil optimasi Lift vs Drag