Difference between revisions of "Farhan Tiarrafi Pratama"
(13 intermediate revisions by the same user not shown) | |||
Line 106: | Line 106: | ||
== Tugas Pertemuan Kedua == | == Tugas Pertemuan Kedua == | ||
Pelajari buku Python Bab 1 | Pelajari buku Python Bab 1 | ||
+ | |||
+ | |||
+ | == Lecture 3 : 19 September 2019 == | ||
+ | Pada pertemuan ke-tiga diadakan sebuah quiz yang bertujuan untuk melatih logika berfikir. Quiz yang di berikan berupa pemograman pada deret '''fibonacci'''. | ||
+ | |||
+ | [[File:fibonacci.png|500px|thumb|center]] | ||
+ | |||
+ | yang ditanyakan adalah algoritma dan flowchart untuk membuat pemograman deret fibonacci, akan tetapi banyak yang belum mengetahui cara membuat program deret tersebut, hampir 1 kelas belum ada yang dapat mengerjakan. Setlah mendapat menjelasan oleh pak radon tentang pembuatan deret dan sumber dr internet juga, deret fibonacci dapat di selesaikan dengan 2 cara, yaitu : | ||
+ | |||
+ | 1. Cara '''Loop''' | ||
+ | 2. Cara '''function''' | ||
+ | |||
+ | Cara loop mudah digunakan karena tidak perlu menemukan pola yang amat rumit, karena jika memakai function kita harus menemukan sebuah fungsi untuk di input kedalam pemograman yang dimana fungsi itu sangat sulit di dapatkan. berikut merupakan formula dr deret fibonacci : | ||
+ | |||
+ | [[File:fibonacciformula.png]] | ||
+ | |||
+ | setlah mendapat penjelasan kita kembali membuat pemograman deret fibonacci menggunakan 2 metode, dengan loop dan function. | ||
+ | |||
+ | '''1. Cara Loop''' | ||
+ | |||
+ | [[File:programloop.png|400px|thumb|center]] | ||
+ | [[File:hasil.png|400px|thumb|center]] | ||
+ | |||
+ | '''2. cara function''' | ||
+ | |||
+ | [[File:programfunction.png|400px|thumb|center]] | ||
+ | [[File:hasilf.png|400px|thumb|center]] | ||
+ | |||
+ | |||
+ | == Lecture 4 : 25 September 2019 == | ||
+ | Pada hari ini mempelajari permodelan komputer. Karena dalam mempelajari suatu konsep harus mengerti sangat akan konsep tersebut. oleh karena itu hari ini disampaikan isi dari permodelan komputer itu sendiri. | ||
+ | |||
+ | sebelum sampai ke ranah sana, ada sebuah pertanyaan, mengapa sebagai anak teknik kita harus '''berhitung''' ? | ||
+ | |||
+ | karena apa yang kita buat, apa yang kita design akan kita pertanggung jawabkan fungsional nya. Semua barang/alat yang kita buat akan mempunyai spesifikasi dan perhitungan yang berbeda. Namun manusia tetap manusia, mempunyai batas. Manusia hanya bisa melakukan usaha pendekatan akan suatu jawaban. | ||
+ | |||
+ | selanjutnya kita masuk ke bahasa kita, Apa itu '''model''' ? | ||
+ | |||
+ | model merupakan simplifikasi/penyederhanaan dari sebuah kasus/keadaan yang rumit. | ||
+ | |||
+ | model terdiri dari 3 Unsur, yaitu : | ||
+ | 1. Asumsi | ||
+ | 2. Simplifikasi | ||
+ | 3. Representasi | ||
+ | |||
+ | Contoh dari sebuah model pada fondasi. Untuk menghitung kekuatan fondasi menahan beban. Fondasi di modelkan dalam bentuk 2D dan di asumsikan Modulus Elastisitas pada semua titik sama, lalu mensimplifikasi dengan menggunakan model 2D. | ||
+ | |||
+ | |||
+ | Dari berbagai model yang kita buat, dibutuhkan ilmu dalam membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Untuk itu kita harus belajar giat serta berlatih sejak dini untuk menggunakan komputasi. Selain itu ada juga aplikasi dari komputasi yaitu Diskritisasi yaitu membuat sesuatu yang kontinu menjadi titik-titik yang berhingga. | ||
+ | |||
+ | |||
+ | == Lecture 5 : 2 Oktober 2019 == | ||
+ | |||
+ | Hampir Semua masalah yang ada di dunia dapat di buat menjadi sebuah model. salah satu ialah menggunakan bahasa python sebagai penyelesaian masalah. mengapa python ? dikarenakan python gratis di sebar kepada khalayak luas dan sangat mendukung dalam industri 4.0 | ||
+ | pada hari ii mempelajari : | ||
+ | 1. aplikasi al jabar yang akan di modelkan pada sistem pegas | ||
+ | 2. mempelajari bagaimana membuat rangkaian pegas dengan bahasa python | ||
+ | |||
+ | '''Tugas untuk minggu depan''' | ||
+ | |||
+ | 1. Membaca Bab 7 | ||
+ | 2. Pelajari methode Runge Kutta | ||
+ | |||
+ | Pada pertemuan hari ini, Asdos menjelaskan tentang Penggunaan Pemodelan pada Sistem Tunggal menjadi sebuah persamaan linier dengan menerjemahkan rumus yang biasa digunakan pada materi Pegas menjadi sebuah matriks yang berisikan konstanta pegas. | ||
+ | Selain itu pada pertemuan ini mempelajari tentang Cara Pembuatan Matriks Pegas yang tidak Tunggal yaitu dengan menerapkan Superposisi Matriks. Lalu, diberikan contoh pemodelan sistem ganda pada pegas seri. | ||
+ | |||
+ | |||
+ | Terakhir diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada Python yang dapat memudahkan perhitungan Sistem Persamaan Linier yaitu : | ||
+ | |||
+ | - Numpy | ||
+ | - Sympy | ||
+ | |||
+ | |||
+ | == Jawaban Quiz : 17 Oktober 2019 == | ||
+ | |||
+ | Pada Hari Rabu, 17 Oktober 2019 diadakan quiz untu mengerjakan soal, berikut soalnya dapat dilihat dari buku "Numerical Method for engineers python 3" pada halaman : | ||
+ | |||
+ | 1. Hal 55 Pada Lathian 2.1 soal nomor 6 | ||
+ | |||
+ | 2. Hal 263 Pada Lathihan 7.1 soal nomor 6 | ||
+ | |||
+ | |||
+ | perintah yang diberikan untuk dikerjakan pada AIR (Ahmad Indra Research) adalah bahasa pemograman python pada soal soal tersebut. | ||
+ | |||
+ | |||
+ | '''Berikut Jawabannya''' | ||
+ | |||
+ | '''Jawaban Soal pertama menggunakan metode 1''' | ||
+ | |||
+ | #Mendefinisikan matriks A | ||
+ | Ba1 = [0, 0, 2, 1, 2] | ||
+ | Ba2 = [0, 1, 0, 2, -1] | ||
+ | Ba3 = [1, 2, 0, -2, 0] | ||
+ | Ba4 = [0, 0, 0, -1, 1] | ||
+ | ba5 = [0, 1, -1, 1, -1] | ||
+ | |||
+ | nmat = np.array ([Ba1, Ba2, Ba3, Ba4, Ba5]) | ||
+ | |||
+ | #mendefinisikan matriks B | ||
+ | B = np.array ([1, 1, -4, -2, -1]) | ||
+ | |||
+ | #Dibawah ini adalah kode untuk memecahkan persamaan aljabar linear bertuliskan (linalg) | ||
+ | jawaban = linalg.solve (nmat,B) a = int(jawaban[0]) b = int(jawaban[1]) c = int(jawaban[2]) d = int(jawaban[3]) f = int(jawaban[4]) | ||
+ | |||
+ | #memunculkan hasil | ||
+ | print("X1 adalah ", a) print("X2 adalah ", b) print("X3 adalah ", c) print("X4 adalah ", d) print("X5 adalah ", f) | ||
+ | |||
+ | #maka dari cara kedua didapat matriks Xnya adalah | ||
+ | X1 adalah 2 | ||
+ | |||
+ | X2 adalah -2 | ||
+ | |||
+ | X3 adalah 1 | ||
+ | |||
+ | X4 adalah 1 | ||
+ | |||
+ | X5 adalah -1 | ||
+ | |||
+ | |||
+ | '''Jawaban Soal pertama menggunakan metode 2''' | ||
+ | |||
+ | #mendefinisikan Matriks A | ||
+ | A = np.array([[0, 0, 2, 1, 2], | ||
+ | [0, 1, 0, 2, -1], | ||
+ | [1, 2, 0, -2, 0], | ||
+ | [0, 0, 0, -1, 1], | ||
+ | [0, 1, -1, 1, -1]], float) | ||
+ | |||
+ | #Mendefinisikan Matriks B | ||
+ | b = np.array([[1], | ||
+ | [1], | ||
+ | [-4], | ||
+ | [-2], | ||
+ | [-1]],float) | ||
+ | |||
+ | Ab = np.hstack([A, b]) print (Ab, "\n") | ||
+ | n = len(b) | ||
+ | |||
+ | #Memasuki Fase Eliminasi | ||
+ | for i in range(0, n-1): | ||
+ | |||
+ | for j in range(i + 1, n): | ||
+ | lam = Ab[i,i] / Ab[j,i] | ||
+ | Ab[j] = Ab[i] - lam * Ab[j] | ||
+ | |||
+ | print ("Hasil Dari Proses Eliminasi \n", Ab, "\n") | ||
+ | |||
+ | #Memasuki Fase Substitusi | ||
+ | for i in range(n - 1, -1, -1): | ||
+ | |||
+ | Ab[i] = Ab[i] / Ab[i, i] | ||
+ | for j in range(i - 1, -1, -1): | ||
+ | b = Ab[j] | ||
+ | lam = Ab[i,i] / Ab[j,i] | ||
+ | Ab[j] = Ab[i] - lam * Ab[j] | ||
+ | print ("Hasil dari proses substitusi \n", Ab, "\n") | ||
+ | |||
+ | x = Ab[:, 5] | ||
+ | #tinggal di selesaikan dengan mencetak nilai x | ||
+ | print ("Maka didapatkan nilai x = \n", x) | ||
+ | |||
+ | '''Jawaban Soal kedua ''' | ||
+ | |||
+ | # Di sini, kita akan menggunakan x0 dan y sebagai titik asal, x sebagai t yang diinginkan, dan h sebagai increment atau dapat di sebut | ||
+ | ketelitian dalam menghitung. Kita menggunakan h = 0.01. | ||
+ | x0 = 2 | ||
+ | |||
+ | y = 1 h = 0.01 x = float(input("Berikan nilai t: ")) if x>0 : | ||
+ | |||
+ | # dydx menyatakan persamaan awal dalam soal. | ||
+ | # setelah melalui proses Didapat hasil x^2-4y | ||
+ | |||
+ | def dydx(x, y): | ||
+ | return (x**2-4*y) | ||
+ | # Memasuki implementasi perhitungan menggunakan metode 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 | ||
+ | list.append(y) | ||
+ | return y | ||
+ | print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h)) | ||
+ | |||
+ | kemudian akan didapatkan hasil apabila t=0.03 | ||
+ | |||
+ | Masukkan nilai t: 0.03 | ||
+ | |||
+ | Nilai y pada t = 0.03 adalah 1 | ||
+ | |||
+ | |||
+ | |||
+ | == MID TERM TEST : 23 OCT 2019 == | ||
+ | |||
+ | '''II.A Hasil koding untuk mencari tegangan pada soal I.A''' | ||
+ | |||
+ | #SOAL PERTAMA TENTANG PENCARIAN MASSA FISIKA | ||
+ | from math import * | ||
+ | |||
+ | #TENTUIN DATA NYA DULU BRO MAU GIMANA | ||
+ | g=9.81 | ||
+ | M1=eval(input("mau berapa massa benda 1 ?")) | ||
+ | M2=eval(input("Mau berapa massa benda 2 ?")) | ||
+ | M3=eval(input("Mau berapa massa benda 3 ?")) | ||
+ | M3=eval(input("Mau berapa massa benda 4 ?")) | ||
+ | Fk1=eval(input("Koefisien gesek benda 1 ?")) | ||
+ | Fk2=eval(input("koefisien gesek benda 2 ?")) | ||
+ | Fk3=eval(input("Koefisien gesek benda 3 ?")) | ||
+ | alfa=eval(input("sudutnya mau berapa ?")) | ||
+ | a=eval(input("percepatan :")) | ||
+ | x= sin(alfa) | ||
+ | y= cos(alfa) | ||
+ | |||
+ | #MASUK KE PENGHITUNGAN BRO | ||
+ | T1=M1*g*(x-Fk1*y)-M1*a | ||
+ | T2=M2*g*(x-Fk2*y)+T1-M2*a | ||
+ | T3=M3*g*(x-Fk3*y)+T2-M3*a | ||
+ | |||
+ | print("maka T1 adalah ?",T1) | ||
+ | print("maka T2 adalah ?",T2) | ||
+ | print("maka T3 adalah ?",T3) | ||
+ | |||
+ | |||
+ | '''maka akan di dapat hasil''' | ||
+ | |||
+ | mau berapa massa benda 1 ?10 | ||
+ | Mau berapa massa benda 2 ?20 | ||
+ | Mau berapa massa benda 3 ?30 | ||
+ | Mau berapa massa benda 4 ?40 | ||
+ | Koefisien gesek benda 1 ?0.1 | ||
+ | koefisien gesek benda 2 ?0.2 | ||
+ | Koefisien gesek benda 3 ?0.3 | ||
+ | sudutnya mau berapa ?30 | ||
+ | percepatan :0 | ||
+ | maka T1 adalah ? 98.43910904690696 | ||
+ | maka T2 adalah ? 101.46552249370134 | ||
+ | maka T3 adalah ? 304.39656748110406 | ||
+ | |||
+ | '''II.B Hasil koding soal nomor I. | ||
+ | |||
+ | F = float(input("Gaya yang dilakukan mobil (N):")) | ||
+ | v0 = 0 | ||
+ | s0 = 0 | ||
+ | t = float(0) | ||
+ | cd = float(input("drag coefficient: ")) | ||
+ | u = float(input("koefisien gesek ban dengan jalanan: ")) | ||
+ | g = 9.8 | ||
+ | m = float(input ("massa mobil:")) | ||
+ | a = F/m | ||
+ | dragfric0 = 0 | ||
+ | dragfric = ((cd * ((v0 + (a*t))**(3/2))/m) + (u * g)) | ||
+ | while dragfric0 < a: | ||
+ | vmax = v0 + (a - dragfric0)*t | ||
+ | xmax = s0 + ((vmax**2 - v0**2) / (2 * a)) | ||
+ | dragfric0 = dragfric0 + dragfric | ||
+ | t = float(t) + 1 | ||
+ | print("Komponen pada saat kecepatan maksimum") | ||
+ | print ("Waktu yang diperlukan: ",t," s") | ||
+ | print ("Jarak yang ditempuh: ",xmax," m") | ||
+ | print ("Kecepatan tertinggi: ",vmax," m/s") | ||
+ | |||
+ | '''HASIL''' | ||
+ | Gaya yang dikeluarkan mobil (N):10000 | ||
+ | drag coefficient: 1.2 | ||
+ | koefisien gesek ban dengan jalanan: 0.5 | ||
+ | massa mobil:5000 | ||
+ | Komponen pada saat kecepatan maksimum | ||
+ | Waktu yang diperlukan: 21.99999 s | ||
+ | Jarak yang ditempuh: 443.14 m | ||
+ | Kecepatan tertinggi: 300 m/s | ||
+ | |||
+ | == PR PRA-MID TERM TEST == | ||
+ | |||
+ | 1.'''Video Muhasabah(percerminan diri )''' | ||
+ | |||
+ | [[File:Video1.mp4]] | ||
+ | |||
+ | |||
+ | 2.'''Video penjelasan soal nomor I.A''' | ||
+ | |||
+ | [[File:Video2.mp4]] | ||
+ | |||
+ | |||
+ | 3.'''Video penjelasan soal II.A''' | ||
+ | |||
+ | |||
+ | [[File:Video3.mp4]] | ||
+ | |||
+ | |||
+ | |||
+ | == Runge Kutta Method (Exercise) == | ||
+ | |||
+ | |||
+ | [[File:RungeKutta.jpg]] | ||
+ | |||
+ | # t0 dan v0 sebagai keadaan awal, t sebagai t yang diinput, dan h sebagai increment | ||
+ | t0 = 0 | ||
+ | v0 = 0 | ||
+ | h = 0.001 # di sini digunakan h = 0.01 | ||
+ | t = float(input("Nilai t: ")) # perintah untuk memasukkan nilai t | ||
+ | |||
+ | if 0 <= t < 0.3: # untuk 0 <= t < 0.3 | ||
+ | def F(t, v): | ||
+ | return (1000 * t - 0.00693 * (v**2)) # persamaan a yang telah diperoleh | ||
+ | |||
+ | def rungeKutta(t0, v0, t, h): # perhitungan Runge-Kutta | ||
+ | n = (int)((t - t0) / h) | ||
+ | v = v0 | ||
+ | for i in range(1, n + 1): | ||
+ | k1 = h * F(t0, v) | ||
+ | k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1) | ||
+ | k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2) | ||
+ | k4 = h * F(t0 + h, v + k3) | ||
+ | v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4) | ||
+ | t0 = t0 + h | ||
+ | return v | ||
+ | |||
+ | print("Nilai v pada t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s") # menampilkan nilai v | ||
+ | |||
+ | elif t >= 0.3: # untuk t >= 0.3 | ||
+ | def F(t, v): | ||
+ | return (100 - 0.00693 * (v**2)) # persamaan a yang telah diperoleh | ||
+ | |||
+ | def rungeKutta(t0, v0, t, h): # perhitungan Runge-Kutta | ||
+ | n = (int)((t - t0) / h) | ||
+ | v = v0 | ||
+ | for i in range(1, n + 1): | ||
+ | k1 = h * F(t0, v) | ||
+ | k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1) | ||
+ | k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2) | ||
+ | k4 = h * F(t0 + h, v + k3) | ||
+ | v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4) | ||
+ | t0 = t0 + h | ||
+ | return v | ||
+ | |||
+ | print("Nilai v pada t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s") # menampilkan nilai v | ||
+ | |||
+ | else: | ||
+ | print("Nilai t harus positif.") | ||
+ | |||
+ | |||
+ | == Eliminasi Gauss == | ||
+ | [[File:Gauss Eliminationn.mp4]] | ||
+ | |||
+ | Hari ini kita akan membuat sebuah program tentang gauss elimination yang bertujuan menyelesaikan tugas yang telah diberikan. | ||
+ | |||
+ | '''Petunjuk Pengerjaan Menggunakan Phyton''' | ||
+ | |||
+ | Dalam pengerjaan Eliminasi Gauss dengan menggunakan phyton setidaknya ada 3 langkah yang harus diselesaikan terlebih dahulu, tambahan 1 langkah tersebut jika dibandingkan dengan pengerjaan menggunakan matematis adalah pendefinisian matriks. Sehingga secara umum langkah pengerjaan Eliminasi Gauss dengan menggunakan phyton adalah sebagai berikut: | ||
+ | |||
+ | 1. Pendefinisian Matriks | ||
+ | |||
+ | Pendefinisian tersebut dibantu dengan menggunakan fungsi array dari numpy dengan cara import numpy. | ||
+ | |||
+ | 2. Eliminasi Gauss | ||
+ | |||
+ | 3. Back Substitution | ||
+ | |||
+ | Berikut program python: | ||
+ | |||
+ | [[File:python5.png]] | ||
+ | |||
+ | [[File:python2.png]] | ||
+ | |||
+ | Setelah dijalankan, didapatkan hasil sebagai berikut: | ||
+ | |||
+ | [[File:hasil2.png]] | ||
+ | |||
+ | |||
+ | == Pengaplikasian Eliminasi Gauss: Statika Struktur == | ||
+ | |||
+ | Pengaplikasian penghitungan gauss elimination dapat di aplikasikan dalam sebuah perhitungan kasus statika struktur. | ||
+ | |||
+ | [[File:Pengaplikasian Gauss Elimination.mp4]] | ||
+ | |||
+ | Berikut program python: | ||
+ | |||
+ | [[File:python3.png]] | ||
+ | |||
+ | [[File:python4.png]] | ||
+ | |||
+ | Setelah dijalankan, didapatkan hasil sebagai berikut: | ||
+ | |||
+ | [[File:hasil1.png]] | ||
+ | |||
+ | |||
+ | == Tugas: Runge Kutta Method == | ||
+ | |||
+ | Runge Kutta merupakan metode untuk pendekatan suatu nilai persamaan yaitu dengan melakukan segmentasi-segmentasi dengan suatu garis-garis lurus dari suatu titik ke titik berikutnya mengikuti segmentasi yang dibuat. Runge Kutta terdiri dari beberapa orde, diantanya adalah orde 2, orde 3, dan orde 4. Perbedaan dari beberapa orde tersebut adalah: Runge Kutta Orde 4 lebih akurat dari Orde 3, sedangkan Runge Kutta Orde 3 lebih akurat dari Orde 2. | ||
+ | |||
+ | [[File:grafikrunge.png]] | ||
+ | |||
+ | Dalam tugas kali ini kami akan membuat Runge Kutta Orde 4 untuk menyelesaikan suatu permasalahan pegas. Secara umum persamaan Runge Kutta Orde 4 adalah sebagai berikut: | ||
+ | |||
+ | π¦_(π+1)=π¦_π+1/6 (π_1+2π_2+2π_3+π_4 )β | ||
+ | |||
+ | |||
+ | Dengan : | ||
+ | |||
+ | π_1=π(π₯_π,π¦_π ) | ||
+ | |||
+ | π_2=π(π₯_π+1/2 β,π¦_π+1/2 π_1 β) | ||
+ | |||
+ | π_3=π(π₯_π+1/2 β,π¦_π+1/2 π_2 β) | ||
+ | |||
+ | π_4=π(π₯_π+1/2 β,π¦_π+1/2 π_3 β) | ||
+ | |||
+ | sekarang kita ingin mencoba menyelesaikan sebuah permasalahan dengan metode Runge Kutta : | ||
+ | |||
+ | [[File:rungek.png]] | ||
+ | |||
+ | Berikut flowchart untuk menyelesaikan soal tsb: | ||
+ | |||
+ | [[File:flowchartt22.png]] | ||
+ | |||
+ | |||
+ | Program untuk python: | ||
+ | |||
+ | [[File:runge kutta.png]] | ||
+ | |||
+ | [[File:runge kutta1.png]] | ||
+ | |||
+ | Ketika di jalankan, hasil programnya sebagai berikut: | ||
+ | |||
+ | [[File:hasil22.png]] | ||
+ | |||
+ | |||
+ | == Tugas: CFD (mobil) == | ||
+ | |||
+ | '''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) == | ||
+ | |||
+ | 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]] |
Latest revision as of 15:10, 17 December 2019
Nama : Farhan Tiarrafi Pratama
NPM : 1806201075
Jurusan : Teknik Mesin
Contents
- 1 lecture 1 : 04 September 2019
- 2 My Progres
- 3 Tugas ( 4 sept 2019 )
- 4 Lecture 2 : 11 September 2019
- 5 Tugas Pertemuan Kedua
- 6 Lecture 3 : 19 September 2019
- 7 Lecture 4 : 25 September 2019
- 8 Lecture 5 : 2 Oktober 2019
- 9 Jawaban Quiz : 17 Oktober 2019
- 10 MID TERM TEST : 23 OCT 2019
- 11 PR PRA-MID TERM TEST
- 12 Runge Kutta Method (Exercise)
- 13 Eliminasi Gauss
- 14 Pengaplikasian Eliminasi Gauss: Statika Struktur
- 15 Tugas: Runge Kutta Method
- 16 Tugas: CFD (mobil)
- 17 TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG)
lecture 1 : 04 September 2019
1. Kenapa amak mesin belajar kalkulus ? karena pada kalkulus terdapat materi materi dasar yang dapat di pergunakan untuk melewati mata kuliah lain yang membutuhkan materi dasar tersebut. kalkulus juga berperan penting pada pembentukan pola pikir "analisis" yang dapat sangat berguna untuk seorang engineer seperti teknik mesin.
PYTHON merupakan sebuah media progamming yang digunakan untuk meminimalisir kesalahan hitungan dengan bantuan sebuah komputer. pada programming hanya dapat dilakukan pengerjaan matematika berupa pertambahan (+), pengurangan (-), perkalian(x), dan pembagian (:)
PAY ATTENTION : Penilaian secara terus menerus, perkembangan cara menguasai pemograman phyton
HOMEWORK 1. mempelajari PHYTON untuk minggu ini dengan belajar membuat sebuah program 2. membuat sebuah program agar dapat menjawab sebuah soal pada papan tulis
Tempat Belajar 1. sololearn.com
My Progres
What is phyton ? Python is a high-level programming language, with applications in numerous areas, including web programming, scripting, scientific computing, and artificial intelligence. Python has several different implementations, written in various languages. CPython, is the most popular by far.
My First Try to use phyton
1. print('Hello World') 2. print(2*4) >> 8 3. print((4+9)*5) >> 65 4. print((5+7)/2) >> 6
pada python operasi pertambahan menggunakan (+), pengurangan menggunakan (-), perkalian (*), pembagian (/), exponensial (**) error bisa terjadi pada python, contohnya ZeroDivisionErorr (Dividing by zero in Python produces an error, as no answer can be calculated)
there are 2 types of number
integer and float, integer dapat dikatakan sebagai bilangan bulat (1,2,3,4 dll) dan float merupakan bilangan yang mempunyai koma ( 2.0,3.2,4,3 dll).
ada pengoprasian khusus pada python yang dapat dikatakan floor division(//) and modulo(%) berikut contohnya:
1. print (20 // 6) >> 3 2. print (1.25 % 0.5) >> 0.25
strings : A string is created by entering text between two single or double quotation marks. When the Python console displays a string, it generally uses single quotes. The delimiter used for a string doesn't affect how it behaves in any way.
Variables: Variables play a very important role in most programming languages, and Python is no exception. A variable allows you to store a value by assigning it to a name, which can be used to refer to the value later in the program. to assign a variable, use one equals sign. Unlike most lines of code we've looked at so far, it doesn't produce any output at the Python console. for example :
x = 7 print(x) 7 print(x + 3) 10 print(x) 7
x = 123.456 print(x) 123.456 x = "This is a string" print(x + "!") This is a string!
foo= input("99") print(foo) 99
Tugas ( 4 sept 2019 )
Lecture 2 : 11 September 2019
rec=('Farhan','Tiarrafi','Pratama',(28,6,2001)) NamaAwal,NamaTengah,NamaAkhir,TanggalLahir=rec print(NamaAwal) TahunLahir = TanggalLahir [2] print(TahunLahir) name = rec[0]++rec[1] print(name) print(rec[0:3])
Farhan 2001 FarhanTiarrafi ('Farhan', 'Tiarrafi', 'Pratama')
Padahari rabu 11 september 2019, diajarkan untuk membuat suatu perumpamaan dan membuat perintah untuk memanggil variable tersebut. terlihat pada foto ke (2) yang berisi perumpamaan dan perintah yang langsung dpt di lihat pada output nya.
Perbedaan 32-bit dengan 64 bit ? filosofi yang berujung bahwa hati yang melakukan pemikiran dan otak yang melakukan perhitungan atau melaksanakan. industri 5.0 adalah pancasila ?, ya itu sebuah cetusan yang dibuat pak dai. beliau menyatkan Technology must empower human. mesin merupakan numerik, numerik merupakan pelajaran ini. sebaiknya hal itu menjadi driving force untuk tetap semangat dalam mempelajari ini. pada pelajaran ini ditekankan untuk menjadikan diri manusia sebagai sebuah penggagas atau pemikir dan komputer/perangkat lunak menjadi tools yang berguna untuk mempermudah pekerjaan manusia.
Tugas Pertemuan Kedua
Pelajari buku Python Bab 1
Lecture 3 : 19 September 2019
Pada pertemuan ke-tiga diadakan sebuah quiz yang bertujuan untuk melatih logika berfikir. Quiz yang di berikan berupa pemograman pada deret fibonacci.
yang ditanyakan adalah algoritma dan flowchart untuk membuat pemograman deret fibonacci, akan tetapi banyak yang belum mengetahui cara membuat program deret tersebut, hampir 1 kelas belum ada yang dapat mengerjakan. Setlah mendapat menjelasan oleh pak radon tentang pembuatan deret dan sumber dr internet juga, deret fibonacci dapat di selesaikan dengan 2 cara, yaitu :
1. Cara Loop 2. Cara function
Cara loop mudah digunakan karena tidak perlu menemukan pola yang amat rumit, karena jika memakai function kita harus menemukan sebuah fungsi untuk di input kedalam pemograman yang dimana fungsi itu sangat sulit di dapatkan. berikut merupakan formula dr deret fibonacci :
setlah mendapat penjelasan kita kembali membuat pemograman deret fibonacci menggunakan 2 metode, dengan loop dan function.
1. Cara Loop
2. cara function
Lecture 4 : 25 September 2019
Pada hari ini mempelajari permodelan komputer. Karena dalam mempelajari suatu konsep harus mengerti sangat akan konsep tersebut. oleh karena itu hari ini disampaikan isi dari permodelan komputer itu sendiri.
sebelum sampai ke ranah sana, ada sebuah pertanyaan, mengapa sebagai anak teknik kita harus berhitung ?
karena apa yang kita buat, apa yang kita design akan kita pertanggung jawabkan fungsional nya. Semua barang/alat yang kita buat akan mempunyai spesifikasi dan perhitungan yang berbeda. Namun manusia tetap manusia, mempunyai batas. Manusia hanya bisa melakukan usaha pendekatan akan suatu jawaban.
selanjutnya kita masuk ke bahasa kita, Apa itu model ?
model merupakan simplifikasi/penyederhanaan dari sebuah kasus/keadaan yang rumit.
model terdiri dari 3 Unsur, yaitu : 1. Asumsi 2. Simplifikasi 3. Representasi
Contoh dari sebuah model pada fondasi. Untuk menghitung kekuatan fondasi menahan beban. Fondasi di modelkan dalam bentuk 2D dan di asumsikan Modulus Elastisitas pada semua titik sama, lalu mensimplifikasi dengan menggunakan model 2D.
Dari berbagai model yang kita buat, dibutuhkan ilmu dalam membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Untuk itu kita harus belajar giat serta berlatih sejak dini untuk menggunakan komputasi. Selain itu ada juga aplikasi dari komputasi yaitu Diskritisasi yaitu membuat sesuatu yang kontinu menjadi titik-titik yang berhingga.
Lecture 5 : 2 Oktober 2019
Hampir Semua masalah yang ada di dunia dapat di buat menjadi sebuah model. salah satu ialah menggunakan bahasa python sebagai penyelesaian masalah. mengapa python ? dikarenakan python gratis di sebar kepada khalayak luas dan sangat mendukung dalam industri 4.0 pada hari ii mempelajari : 1. aplikasi al jabar yang akan di modelkan pada sistem pegas 2. mempelajari bagaimana membuat rangkaian pegas dengan bahasa python
Tugas untuk minggu depan
1. Membaca Bab 7 2. Pelajari methode Runge Kutta
Pada pertemuan hari ini, Asdos menjelaskan tentang Penggunaan Pemodelan pada Sistem Tunggal menjadi sebuah persamaan linier dengan menerjemahkan rumus yang biasa digunakan pada materi Pegas menjadi sebuah matriks yang berisikan konstanta pegas. Selain itu pada pertemuan ini mempelajari tentang Cara Pembuatan Matriks Pegas yang tidak Tunggal yaitu dengan menerapkan Superposisi Matriks. Lalu, diberikan contoh pemodelan sistem ganda pada pegas seri.
Terakhir diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada Python yang dapat memudahkan perhitungan Sistem Persamaan Linier yaitu :
- Numpy - Sympy
Jawaban Quiz : 17 Oktober 2019
Pada Hari Rabu, 17 Oktober 2019 diadakan quiz untu mengerjakan soal, berikut soalnya dapat dilihat dari buku "Numerical Method for engineers python 3" pada halaman :
1. Hal 55 Pada Lathian 2.1 soal nomor 6
2. Hal 263 Pada Lathihan 7.1 soal nomor 6
perintah yang diberikan untuk dikerjakan pada AIR (Ahmad Indra Research) adalah bahasa pemograman python pada soal soal tersebut.
Berikut Jawabannya
Jawaban Soal pertama menggunakan metode 1
#Mendefinisikan matriks A Ba1 = [0, 0, 2, 1, 2] Ba2 = [0, 1, 0, 2, -1] Ba3 = [1, 2, 0, -2, 0] Ba4 = [0, 0, 0, -1, 1] ba5 = [0, 1, -1, 1, -1]
nmat = np.array ([Ba1, Ba2, Ba3, Ba4, Ba5])
#mendefinisikan matriks B B = np.array ([1, 1, -4, -2, -1])
#Dibawah ini adalah kode untuk memecahkan persamaan aljabar linear bertuliskan (linalg) jawaban = linalg.solve (nmat,B) a = int(jawaban[0]) b = int(jawaban[1]) c = int(jawaban[2]) d = int(jawaban[3]) f = int(jawaban[4])
#memunculkan hasil print("X1 adalah ", a) print("X2 adalah ", b) print("X3 adalah ", c) print("X4 adalah ", d) print("X5 adalah ", f)
#maka dari cara kedua didapat matriks Xnya adalah X1 adalah 2
X2 adalah -2
X3 adalah 1
X4 adalah 1
X5 adalah -1
Jawaban Soal pertama menggunakan metode 2
#mendefinisikan Matriks A A = np.array([[0, 0, 2, 1, 2], [0, 1, 0, 2, -1], [1, 2, 0, -2, 0], [0, 0, 0, -1, 1], [0, 1, -1, 1, -1]], float)
#Mendefinisikan Matriks B b = np.array([[1], [1], [-4], [-2], [-1]],float) Ab = np.hstack([A, b]) print (Ab, "\n") n = len(b)
#Memasuki Fase Eliminasi for i in range(0, n-1):
for j in range(i + 1, n): lam = Ab[i,i] / Ab[j,i] Ab[j] = Ab[i] - lam * Ab[j] print ("Hasil Dari Proses Eliminasi \n", Ab, "\n")
#Memasuki Fase Substitusi for i in range(n - 1, -1, -1):
Ab[i] = Ab[i] / Ab[i, i] for j in range(i - 1, -1, -1): b = Ab[j] lam = Ab[i,i] / Ab[j,i] Ab[j] = Ab[i] - lam * Ab[j] print ("Hasil dari proses substitusi \n", Ab, "\n")
x = Ab[:, 5] #tinggal di selesaikan dengan mencetak nilai x print ("Maka didapatkan nilai x = \n", x)
Jawaban Soal kedua
# Di sini, kita akan menggunakan x0 dan y sebagai titik asal, x sebagai t yang diinginkan, dan h sebagai increment atau dapat di sebut ketelitian dalam menghitung. Kita menggunakan h = 0.01. x0 = 2
y = 1 h = 0.01 x = float(input("Berikan nilai t: ")) if x>0 :
# dydx menyatakan persamaan awal dalam soal. # setelah melalui proses Didapat hasil x^2-4y
def dydx(x, y): return (x**2-4*y) # Memasuki implementasi perhitungan menggunakan metode 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 list.append(y) return y print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h))
kemudian akan didapatkan hasil apabila t=0.03
Masukkan nilai t: 0.03
Nilai y pada t = 0.03 adalah 1
MID TERM TEST : 23 OCT 2019
II.A Hasil koding untuk mencari tegangan pada soal I.A
- SOAL PERTAMA TENTANG PENCARIAN MASSA FISIKA
from math import *
#TENTUIN DATA NYA DULU BRO MAU GIMANA g=9.81 M1=eval(input("mau berapa massa benda 1 ?")) M2=eval(input("Mau berapa massa benda 2 ?")) M3=eval(input("Mau berapa massa benda 3 ?")) M3=eval(input("Mau berapa massa benda 4 ?")) Fk1=eval(input("Koefisien gesek benda 1 ?")) Fk2=eval(input("koefisien gesek benda 2 ?")) Fk3=eval(input("Koefisien gesek benda 3 ?")) alfa=eval(input("sudutnya mau berapa ?")) a=eval(input("percepatan :")) x= sin(alfa) y= cos(alfa)
#MASUK KE PENGHITUNGAN BRO T1=M1*g*(x-Fk1*y)-M1*a T2=M2*g*(x-Fk2*y)+T1-M2*a T3=M3*g*(x-Fk3*y)+T2-M3*a
print("maka T1 adalah ?",T1) print("maka T2 adalah ?",T2) print("maka T3 adalah ?",T3)
maka akan di dapat hasil
mau berapa massa benda 1 ?10 Mau berapa massa benda 2 ?20 Mau berapa massa benda 3 ?30 Mau berapa massa benda 4 ?40 Koefisien gesek benda 1 ?0.1 koefisien gesek benda 2 ?0.2 Koefisien gesek benda 3 ?0.3 sudutnya mau berapa ?30 percepatan :0 maka T1 adalah ? 98.43910904690696 maka T2 adalah ? 101.46552249370134 maka T3 adalah ? 304.39656748110406
II.B Hasil koding soal nomor I.
F = float(input("Gaya yang dilakukan mobil (N):")) v0 = 0 s0 = 0 t = float(0) cd = float(input("drag coefficient: ")) u = float(input("koefisien gesek ban dengan jalanan: ")) g = 9.8 m = float(input ("massa mobil:")) a = F/m dragfric0 = 0 dragfric = ((cd * ((v0 + (a*t))**(3/2))/m) + (u * g)) while dragfric0 < a: vmax = v0 + (a - dragfric0)*t xmax = s0 + ((vmax**2 - v0**2) / (2 * a)) dragfric0 = dragfric0 + dragfric t = float(t) + 1 print("Komponen pada saat kecepatan maksimum") print ("Waktu yang diperlukan: ",t," s") print ("Jarak yang ditempuh: ",xmax," m") print ("Kecepatan tertinggi: ",vmax," m/s")
HASIL
Gaya yang dikeluarkan mobil (N):10000 drag coefficient: 1.2 koefisien gesek ban dengan jalanan: 0.5 massa mobil:5000 Komponen pada saat kecepatan maksimum Waktu yang diperlukan: 21.99999 s Jarak yang ditempuh: 443.14 m Kecepatan tertinggi: 300 m/s
PR PRA-MID TERM TEST
1.Video Muhasabah(percerminan diri )
2.Video penjelasan soal nomor I.A
3.Video penjelasan soal II.A
Runge Kutta Method (Exercise)
# t0 dan v0 sebagai keadaan awal, t sebagai t yang diinput, dan h sebagai increment t0 = 0 v0 = 0 h = 0.001 # di sini digunakan h = 0.01 t = float(input("Nilai t: ")) # perintah untuk memasukkan nilai t
if 0 <= t < 0.3: # untuk 0 <= t < 0.3 def F(t, v): return (1000 * t - 0.00693 * (v**2)) # persamaan a yang telah diperoleh
def rungeKutta(t0, v0, t, h): # perhitungan Runge-Kutta n = (int)((t - t0) / h) v = v0 for i in range(1, n + 1): k1 = h * F(t0, v) k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1) k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2) k4 = h * F(t0 + h, v + k3) v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4) t0 = t0 + h return v
print("Nilai v pada t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s") # menampilkan nilai v
elif t >= 0.3: # untuk t >= 0.3 def F(t, v): return (100 - 0.00693 * (v**2)) # persamaan a yang telah diperoleh
def rungeKutta(t0, v0, t, h): # perhitungan Runge-Kutta n = (int)((t - t0) / h) v = v0 for i in range(1, n + 1): k1 = h * F(t0, v) k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1) k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2) k4 = h * F(t0 + h, v + k3) v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4) t0 = t0 + h return v print("Nilai v pada t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s") # menampilkan nilai v
else: print("Nilai t harus positif.")
Eliminasi Gauss
Hari ini kita akan membuat sebuah program tentang gauss elimination yang bertujuan menyelesaikan tugas yang telah diberikan.
Petunjuk Pengerjaan Menggunakan Phyton
Dalam pengerjaan Eliminasi Gauss dengan menggunakan phyton setidaknya ada 3 langkah yang harus diselesaikan terlebih dahulu, tambahan 1 langkah tersebut jika dibandingkan dengan pengerjaan menggunakan matematis adalah pendefinisian matriks. Sehingga secara umum langkah pengerjaan Eliminasi Gauss dengan menggunakan phyton adalah sebagai berikut:
1. Pendefinisian Matriks
Pendefinisian tersebut dibantu dengan menggunakan fungsi array dari numpy dengan cara import numpy.
2. Eliminasi Gauss
3. Back Substitution
Berikut program python:
Setelah dijalankan, didapatkan hasil sebagai berikut:
Pengaplikasian Eliminasi Gauss: Statika Struktur
Pengaplikasian penghitungan gauss elimination dapat di aplikasikan dalam sebuah perhitungan kasus statika struktur.
Berikut program python:
Setelah dijalankan, didapatkan hasil sebagai berikut:
Tugas: Runge Kutta Method
Runge Kutta merupakan metode untuk pendekatan suatu nilai persamaan yaitu dengan melakukan segmentasi-segmentasi dengan suatu garis-garis lurus dari suatu titik ke titik berikutnya mengikuti segmentasi yang dibuat. Runge Kutta terdiri dari beberapa orde, diantanya adalah orde 2, orde 3, dan orde 4. Perbedaan dari beberapa orde tersebut adalah: Runge Kutta Orde 4 lebih akurat dari Orde 3, sedangkan Runge Kutta Orde 3 lebih akurat dari Orde 2.
Dalam tugas kali ini kami akan membuat Runge Kutta Orde 4 untuk menyelesaikan suatu permasalahan pegas. Secara umum persamaan Runge Kutta Orde 4 adalah sebagai berikut:
π¦_(π+1)=π¦_π+1/6 (π_1+2π_2+2π_3+π_4 )β
Dengan :
π_1=π(π₯_π,π¦_π )
π_2=π(π₯_π+1/2 β,π¦_π+1/2 π_1 β)
π_3=π(π₯_π+1/2 β,π¦_π+1/2 π_2 β)
π_4=π(π₯_π+1/2 β,π¦_π+1/2 π_3 β)
sekarang kita ingin mencoba menyelesaikan sebuah permasalahan dengan metode Runge Kutta :
Berikut flowchart untuk menyelesaikan soal tsb:
Program untuk python:
Ketika di jalankan, hasil programnya sebagai berikut:
Tugas: CFD (mobil)
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:
TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG)
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.
ANALISIS MENGGUNAKAN CFDSOF-NG
MENGOLAH DATA
Setelah melakukan analisis pada CFDSOF-NG, didapatkan data ytang berupa drag forve dan lift foce, berikut data yang telah kami dapatkan :
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 :
PEMOGRAMAN MENGGUNAKAN PHYTON
Setelah mendapatkan persamaan yang ada pada grafik, kita dapat membuat pemograman untuk melakukan optimasi, berikut optimasinya :