Difference between revisions of "Kelompok 7"
(→Metode Eliminasi Gauss) |
(→Analisis Gaya Drag dan Lift pada Airfoil Menggunakan CFDSOF) |
||
(39 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ == | == السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ == | ||
Perkenalkan, kami dari kelompok 7 dengan anggota kelompok sebagai berikut: | Perkenalkan, kami dari kelompok 7 dengan anggota kelompok sebagai berikut: | ||
+ | |||
1. Rizki Aldila Umas | 1. Rizki Aldila Umas | ||
+ | |||
2. Hallyena Risfenti | 2. Hallyena Risfenti | ||
− | 3. | + | |
+ | 3. Dimaz Adhitya | ||
== Metode Eliminasi Gauss == | == Metode Eliminasi Gauss == | ||
Line 18: | Line 21: | ||
1. Eliminasi Gauss | 1. Eliminasi Gauss | ||
+ | Dimulai dengan gauss yang ada di contoh soal tersebut | ||
+ | |||
+ | [[File:Gausselim15.jpg]] | ||
+ | |||
+ | Untuk membuat segitiga atas pada matriks ini maka diperlukan operasi sebagai berikut: | ||
+ | |||
+ | [[File:Gausselim25.jpg]] | ||
+ | Sehingga dapat digeneralisasi fungsi untuk lambda dan bentuk iterasinya sehingga menghasilkan segitiga atas. Pada matriks B juga dilakukan operasi yang sama dengan matriks A (harus diperlakukan sama dengan matriks A) | ||
2. Back Substitution | 2. Back Substitution | ||
+ | Pada back substitution ini, secara matematis maka dimasukkan satu per satu mulai dari X yang paling rendah dan ada di bawah, dan kemudian naik. Hal ini dapat dirumuskan menjadi suatu fungsi berupa: | ||
+ | [[File:Gausselim35.jpg]] | ||
'''Pengerjaan Menggunakan Phyton''' | '''Pengerjaan Menggunakan Phyton''' | ||
Line 30: | Line 43: | ||
1. Pendefinisian Matriks | 1. Pendefinisian Matriks | ||
− | + | Pendefinisian tersebut dibantu dengan menggunakan fungsi array dari numpy dengan cara import numpy. | |
2. Eliminasi Gauss | 2. Eliminasi Gauss | ||
+ | 3. Back Substitution | ||
+ | |||
+ | '''Berikut video penjelasannya:''' | ||
+ | |||
+ | [[File:Metnum PR 2.mp4]] | ||
+ | |||
+ | Berikut ini beberapa screenshoot dari kode phyton yang telah kami susun: | ||
+ | |||
+ | [[File:Kelompok5phyton.jpg]] | ||
+ | |||
+ | |||
+ | == Aplikasi Metode Numerik == | ||
+ | |||
+ | Berikut merupakan video untuk menyelesaikan soal fondasi menggunakan Gauss Elimination | ||
+ | |||
+ | [[File:Metnum PR 3.mp4]] | ||
+ | |||
+ | |||
+ | == Metode Runge Kutta Orde 4== | ||
+ | |||
+ | 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:RungeKutta_Kelompok_7.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 ℎ) | ||
+ | |||
+ | Selanjutnya akan langsung ke pendefinisian soal yaitu sebagai berikut: | ||
+ | |||
+ | [[File:SoalRungeKuttakelompok7.png]] | ||
+ | |||
+ | Penyelesaian masalah ini adalah dengan algoritma sebagai berikut: | ||
+ | |||
+ | 1. Awalnya fungsi yang ada pada soal tersebut adalah suatu fungsi percepatan sehingga harus diubah terlebih dahulu menjadi suatu fungsi turunan dari fungsi jarak yaitu fungsi kecepatan. Perubahan itu adalah dengan menggunakan integral satu kali terhadap waktu sehingga mendapatkan fungsi kecepatan. Setelah itu didefinisikan suatu persamaan pada tiap keadaannya yaitu pada keadaan t kurang dari 2 dan t lebih dari sama dengan 2. | ||
+ | |||
+ | 2. Fungsi kecepatan merupakan suatu fungsi jarak terhadap waktu yang nantinya akan dipakai untuk mencari nilai jarak terhadap fungsi waktu yang diminta pada soal. Hal ini dengan cara menentukan atau mendefinisikan nilai t = 0 yaitu y = 0, dan karena metode ini membutuhkan suatu step size yang disebut increment maka kami memutuskan untuk menggunakan increment (h) dengan kenaikan 0,01. | ||
+ | |||
+ | 3. Runge kutta dikerjakan seperti pada persamaan yang telah disampaikan di awal. | ||
+ | |||
+ | 𝑦_(𝑖+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 ℎ) | ||
+ | |||
+ | 4. Hasil dari persamaan tersebut lalu di plot antara t atau waktu yang diberikan dan hasil y atau osilasi yang dilakukan | ||
+ | |||
+ | Alur untuk menyelesaikan masalah berikut adalah dengan '''flowchart''' seperti berikut ini: | ||
+ | |||
+ | [[File:Metnumkelompok7.jpg]] | ||
+ | |||
+ | Dan diselesaikan dengan persamaan phyton berikut ini: | ||
+ | |||
+ | # Pendefinisian nilai awal atau initial value dan increment yang akan digunakan (h). Kita menggunakan h = 0.01. | ||
+ | x0 = 0 | ||
+ | y = 0 | ||
+ | h = 0.01 | ||
+ | x = float(input("Masukkan nilai t: ")) | ||
+ | if 0 <= x < 2: | ||
+ | def dydx(x, y): | ||
+ | return (2*x**2 - 30*x*y) #nilai fungsi sudah diintegralkan sekali, dan dimasukkan nilai K dan m nya sehingga membentuk fungsi tersebut | ||
+ | def rungeKutta(x0, y0, x, h): | ||
+ | n = (int)((x - x0)/h) #untuk mengetahui jumlah iterasi yang akan dilakukan maka panjangnya harus dibagi dengan increment yang telah ditentukan (h=0,01) | ||
+ | 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)) | ||
+ | elif x >= 2: # Ketika x >= 2, sesuai dengan soal maka nilai P(t) konstan pada 20N | ||
+ | def dydx(x, y): | ||
+ | return (8 - 30*x*y) #hasil dari pengintegralan dan memasukkan nilai P(t) konstan pada 20N | ||
+ | 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:#untuk nilai lainnya yaitu nilai t saat negatif | ||
+ | print("Mohon masukkan nilai t positif.") | ||
+ | Dalam penyelesaian ini kami belum mampu membuat kode untuk plot, nantinya akan kami kembangkan lagi sehingga dapat menjawab pertanyaan yang ada | ||
− | |||
+ | == Analisis Gaya Drag Mobil pada CFDSOF-NG == | ||
+ | |||
+ | '''Dasar Teori''' | ||
+ | |||
+ | Drag force merupakan gaya kebelakang yang mendorong mundur 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. | ||
+ | |||
+ | |||
+ | '''Iterasi dengan Menggunakan CFDSOF dan ''plotting'' Menggunakan Excel''' | ||
+ | |||
+ | Parameter yang kami gunakan untuk iterasi pada CFDSOF: | ||
+ | |||
+ | '''Parameter untuk Mesh''' | ||
+ | |||
+ | [[File:Parameter1CFDSOFKel7.JPG]] | ||
+ | |||
+ | '''Hasil dan Pengecekan ''Meshing''''' | ||
+ | |||
+ | [[File:Parameter3CFDSOFKel7.JPG]] | ||
+ | |||
+ | '''Parameter Fluida yang digunakan''' | ||
+ | |||
+ | [[File:Parameter5CFDSOFKel7.JPG]] | ||
+ | |||
+ | Kemudian hasil tersebut kami ''plotting'' di excel, dan dicari plot yang paling tepat untuk merepresentasikan hubungan antara ''drag force'' dan kecepatan. ''Plotting'' tersebut menggunakan: | ||
+ | |||
+ | [[File:Excel1CFDSOFKel71.JPG]] | ||
+ | |||
+ | Pada opsi tersebut terdapat banyak pilihan plotting yang tersedia, namun menurut kelompok kami yang kurvanya paling cocok / merepresentasikan data tersebut adalah kurva polinomial. Kemudian kami mencoba untuk menambah jumlah derajat menjadi 3 derajat: | ||
+ | |||
+ | [[File:Excel2CFDSOFKel7.JPG]] | ||
+ | |||
+ | Pada derajat polinomial 3, dapat dilihat bahwa konstanta polinomial ke 3 sangatlah kecil sehingga kami menyimpulkan untuk menggunakan derajat polinomial pangkat 2. | ||
+ | |||
+ | '''Hasil Iterasi dan Plotting''' | ||
+ | |||
+ | Iterasi yang kami lakukan merupakan kenaikan kecepatan sebesar 2,5 m/s dari kecepatan awal 0 m/s sampai 80 m/s. Hasil ini merupakan integral dari gaya drag pada tiap kecepatan mobil yang nantinya akan di-''plotting'' dan dilakukan ''curve fitting'' | ||
+ | |||
+ | [[File:Hasil Iterasi Kelompok7.JPG]] | ||
+ | |||
+ | Hasil ''curve fitting'' yang kami lakukan di excel menunjukkan bahwa kurva antara kecepatan terhadap gaya drag menunjukkan hubungan berupa persamaan polinomial dalam hal ini merupakan polinomial pangkat 2. Menurut kami hasil ''curve fitting'' ini cukup akurat, hal ini ditunjukkan oleh nilai R kuadrat yang cukup tinggi (mendekati 1). R Kuadrat merupakan suatu ukuran kemiripan plot data dengan kurva dengan nilai maksimal 1. | ||
+ | |||
+ | [[File:Drag Force vs kec. Kelompok7.JPG]] | ||
+ | |||
+ | Kami menyimpulkan bahwa hubungan antara gaya drag terhadap kecepatan pada kasus ini sesuai dengan persamaan berikut (dengan y = ''Drag Force'' , x = kecepatan): | ||
+ | |||
+ | [[File:PersamaanMatCFDKEL7.JPG]] | ||
+ | |||
+ | Sehingga | ||
+ | |||
+ | [[File:PersamaanDragCFDKEL7.JPG]] | ||
+ | |||
+ | == Analisis Gaya Drag dan Lift pada Airfoil Menggunakan CFDSOF == | ||
+ | |||
+ | Pada tugas kali ini, kami diberikan suatu tugas untuk menemukan hubungan antara sudut serang (''angle of attack'') dan gaya drag dan lift yang terjadi pada suatu bentuk ''airfoil''. Untuk melaksanakan tugas tersebut, kelompok kami melakukan suatu rangkaian tahapan pengerjaan sebagai berikut: | ||
+ | |||
+ | |||
+ | 1. Mendesain ''airfoil'' dengan menggunakan ''software'' CAD (dalam kasus ini kami menggunakan inventor | ||
+ | |||
+ | 2. Melakukan analisis fluida dengan ''software'' CFD-SOF dengan parameter-parameter yang telah kami tetapkan dan mencari drag dan lift force dengan paraview | ||
+ | |||
+ | 3. Plot hasil dan ''curve fitting'' dengan menggunakan excel | ||
+ | |||
+ | 4. Melakukan optimasi dengan menggunakan Phyton | ||
+ | |||
+ | 5. Penarikan kesimpulan | ||
+ | |||
+ | Untuk itu berikut ini akan kami bahas tiap detil dari langkah-langkah tersebut sebagai berikut: | ||
+ | |||
+ | '''Mendesain ''airfoil'' dengan menggunakan ''software'' CAD''' | ||
+ | |||
+ | Dalam tahap ini, kelompok kami memutuskan untuk menggunakan ''airfoil'' yang telah umum digunakan yaitu dengan menggunakan ''airfoil'' NACA 2410. Pada website *** kami menemukan desain ''airfoil'' tersebut (berupa titik-titik) kemudian kami memindahkan titik-titik tersebut ke excel. | ||
+ | |||
+ | Setelah dipindahkan ke excel, titik-titik tersebut dimasukkan ke dalam software Inventor. Sehingga menghasilkan bentuk sebagai berikut: | ||
+ | |||
+ | [[File:Airfoil Naca 2410.png]] | ||
+ | |||
+ | Airfoil tersebut didesain dengan berbagai sudut serang / angel of attack, yaitu dimulai dari -15 hingga 90 dengan interval 5 derajat | ||
+ | |||
+ | '''Melakukan analisis fluida dengan ''software'' CFD-SOF dan Paraview''' | ||
+ | |||
+ | Parameter yang dipakai: | ||
+ | - Kecepatan 80 m/s | ||
+ | - Sedangkan untuk meshing nanti akan kami tunjukkan melalui gambar parameternya (''screen shoot'') | ||
+ | |||
+ | '''Scaling''' | ||
+ | |||
+ | Tindakan ini kami lakukan, karena setelah mengecek ukuran airfoil. Ternyata Airfoil kami berubah ukurannya menjadi jauh lebih besar, sehingga kami lakukan scaling untuk mengembalikan ukurannya menjadi seperti semula | ||
+ | |||
+ | [[File:Scaling Kel 7.png]] | ||
+ | |||
+ | '''Meshing''' | ||
+ | |||
+ | Berikut ini parameter-parameter yang kami gunakan dalam simulasi: | ||
+ | |||
+ | [[File:Meshing Kel 7.png]] | ||
+ | |||
+ | Setelah data-data diatas telah didapatkan, langkah selanjutnya adalah untuk mencari drag force dan lift force pada setiap variasi sudutnya menggunakan software CFDSOF. Perhitungan dilakukan dengan kalkulator pada aplikasi third party yaitu paraview. Rumus yang digunakan untuk mendapatkan nilai drag force adalah = p*surface x sedangkan untuk mendapatkan nilai lift force adalah = p*surface y. Dibawah ini adalah salah satu hasil paraview yang kami dapatkan: | ||
+ | |||
+ | '''Drag Force''' | ||
+ | |||
+ | [[File:Drag Force Kel 7.png]] | ||
+ | |||
+ | '''Lift Force''' | ||
+ | |||
+ | [[File:Lift Force Kel 7.png]] | ||
+ | |||
+ | |||
+ | '''Plot hasil dan ''curve fitting''''' | ||
+ | |||
+ | Kemudian kami mendapatkan nilai-nilai drag force dan lift force pada setiap sudut variasi. Nilai-nilai tersebut kami input dan kami olah pada microsoft excel. Proses yang kami lakukan dinamakan curve fitting, yaitu untuk mendapatkan bentuk persamaan matematis dan juga untuk mendapatkan bentuk grafiknya. Berikut adalah data hasil drag force dan lift force yang kami dapatkan: | ||
+ | |||
+ | Tabel sudut variasi dengan nilai drag force dan lift force yang telah didapatkan: | ||
+ | |||
+ | [[File:Tabel DF Kel 7 .png]] | ||
+ | |||
+ | |||
+ | [[File:Tabel LF Kel 7.png]] | ||
+ | |||
+ | Grafik yang diperoleh melalui curve fitting di excel | ||
+ | |||
+ | '''drag force vs sudut:''' | ||
+ | |||
+ | [[File:Grafik DF Kel 7.png]] | ||
+ | |||
+ | '''lift force vs sudut:''' | ||
+ | |||
+ | [[File:Grafik LF Kel 7.png]] | ||
+ | |||
+ | |||
+ | '''Optimasi dengan menggunakan Phyton''' | ||
+ | |||
+ | Lalu kami mencari nilai optimasi dari masing-masing-masing force: | ||
+ | |||
+ | Optimasi drag force: | ||
+ | |||
+ | [[File:Hasil Optimasi DF Kel 7.png]] | ||
+ | |||
+ | Optimasi lift force: | ||
+ | |||
+ | |||
+ | Setelah mendapatkan grafik drag force maupun grafik lift force, yang kami lakukan adalah menggabungkan kedua persamaan tersebut menjadi satu untuk melihat di manakah atau pada nilai berapakah mereka bertemu atau bersinggungan. Hasil dari grafiknya adalah sebagai berikut: | ||
+ | |||
+ | [[File:Grafik Force Kel 7.png]] | ||
+ | Dikarenakan pada grafik terlihat adanya dua titik yang bersinggungan, maka perlunya optimasi untuk melihat nilai atau titik pasti di mana sudut serang paling optimal. Untuk mendapatkan nilai optimasi kami menggunakan metode numerik dengan bahasa pemrograman python. Hasil pemrograman dibuat sebanyak dua kali yaitu yang pertama adalah menggunakan objective persamaan drag dan yang kedua menggunakan objective persamaan lift. Hasilnya adalah sebagai berikut: | ||
− | + | [[File:Optimasi Kel 7.png]] | |
− | + | [[File:Optimasi Kel 7(2).png]] |
Latest revision as of 11:25, 11 December 2019
Contents
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Perkenalkan, kami dari kelompok 7 dengan anggota kelompok sebagai berikut:
1. Rizki Aldila Umas
2. Hallyena Risfenti
3. Dimaz Adhitya
Metode Eliminasi Gauss
Dalam pembuatan tugas mengenai eliminasi gauss ini, kelompok kami memilih untuk langsung mengambil contoh dari buku Jaan Kiusalaas, yaitu:
Pengerjaan Matematis
Dalam pengerjaan Eliminasi Gauss, setidaknya ada 2 langkah yang harus dilalui. Kedua langkah tersebut adalah
1. Eliminasi Gauss
Dimulai dengan gauss yang ada di contoh soal tersebut
Untuk membuat segitiga atas pada matriks ini maka diperlukan operasi sebagai berikut:
Sehingga dapat digeneralisasi fungsi untuk lambda dan bentuk iterasinya sehingga menghasilkan segitiga atas. Pada matriks B juga dilakukan operasi yang sama dengan matriks A (harus diperlakukan sama dengan matriks A)
2. Back Substitution
Pada back substitution ini, secara matematis maka dimasukkan satu per satu mulai dari X yang paling rendah dan ada di bawah, dan kemudian naik. Hal ini dapat dirumuskan menjadi suatu fungsi berupa:
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 video penjelasannya:
Berikut ini beberapa screenshoot dari kode phyton yang telah kami susun:
Aplikasi Metode Numerik
Berikut merupakan video untuk menyelesaikan soal fondasi menggunakan Gauss Elimination
Metode Runge Kutta Orde 4
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 ℎ)
Selanjutnya akan langsung ke pendefinisian soal yaitu sebagai berikut:
Penyelesaian masalah ini adalah dengan algoritma sebagai berikut:
1. Awalnya fungsi yang ada pada soal tersebut adalah suatu fungsi percepatan sehingga harus diubah terlebih dahulu menjadi suatu fungsi turunan dari fungsi jarak yaitu fungsi kecepatan. Perubahan itu adalah dengan menggunakan integral satu kali terhadap waktu sehingga mendapatkan fungsi kecepatan. Setelah itu didefinisikan suatu persamaan pada tiap keadaannya yaitu pada keadaan t kurang dari 2 dan t lebih dari sama dengan 2.
2. Fungsi kecepatan merupakan suatu fungsi jarak terhadap waktu yang nantinya akan dipakai untuk mencari nilai jarak terhadap fungsi waktu yang diminta pada soal. Hal ini dengan cara menentukan atau mendefinisikan nilai t = 0 yaitu y = 0, dan karena metode ini membutuhkan suatu step size yang disebut increment maka kami memutuskan untuk menggunakan increment (h) dengan kenaikan 0,01.
3. Runge kutta dikerjakan seperti pada persamaan yang telah disampaikan di awal.
𝑦_(𝑖+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 ℎ)
4. Hasil dari persamaan tersebut lalu di plot antara t atau waktu yang diberikan dan hasil y atau osilasi yang dilakukan
Alur untuk menyelesaikan masalah berikut adalah dengan flowchart seperti berikut ini:
Dan diselesaikan dengan persamaan phyton berikut ini:
# Pendefinisian nilai awal atau initial value dan increment yang akan digunakan (h). Kita menggunakan h = 0.01. x0 = 0 y = 0 h = 0.01 x = float(input("Masukkan nilai t: ")) if 0 <= x < 2: def dydx(x, y): return (2*x**2 - 30*x*y) #nilai fungsi sudah diintegralkan sekali, dan dimasukkan nilai K dan m nya sehingga membentuk fungsi tersebut def rungeKutta(x0, y0, x, h): n = (int)((x - x0)/h) #untuk mengetahui jumlah iterasi yang akan dilakukan maka panjangnya harus dibagi dengan increment yang telah ditentukan (h=0,01) 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)) elif x >= 2: # Ketika x >= 2, sesuai dengan soal maka nilai P(t) konstan pada 20N def dydx(x, y): return (8 - 30*x*y) #hasil dari pengintegralan dan memasukkan nilai P(t) konstan pada 20N 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:#untuk nilai lainnya yaitu nilai t saat negatif print("Mohon masukkan nilai t positif.")
Dalam penyelesaian ini kami belum mampu membuat kode untuk plot, nantinya akan kami kembangkan lagi sehingga dapat menjawab pertanyaan yang ada
Analisis Gaya Drag Mobil pada CFDSOF-NG
Dasar Teori
Drag force merupakan gaya kebelakang yang mendorong mundur 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.
Iterasi dengan Menggunakan CFDSOF dan plotting Menggunakan Excel
Parameter yang kami gunakan untuk iterasi pada CFDSOF:
Parameter untuk Mesh
Hasil dan Pengecekan Meshing
Parameter Fluida yang digunakan
Kemudian hasil tersebut kami plotting di excel, dan dicari plot yang paling tepat untuk merepresentasikan hubungan antara drag force dan kecepatan. Plotting tersebut menggunakan:
Pada opsi tersebut terdapat banyak pilihan plotting yang tersedia, namun menurut kelompok kami yang kurvanya paling cocok / merepresentasikan data tersebut adalah kurva polinomial. Kemudian kami mencoba untuk menambah jumlah derajat menjadi 3 derajat:
Pada derajat polinomial 3, dapat dilihat bahwa konstanta polinomial ke 3 sangatlah kecil sehingga kami menyimpulkan untuk menggunakan derajat polinomial pangkat 2.
Hasil Iterasi dan Plotting
Iterasi yang kami lakukan merupakan kenaikan kecepatan sebesar 2,5 m/s dari kecepatan awal 0 m/s sampai 80 m/s. Hasil ini merupakan integral dari gaya drag pada tiap kecepatan mobil yang nantinya akan di-plotting dan dilakukan curve fitting
Hasil curve fitting yang kami lakukan di excel menunjukkan bahwa kurva antara kecepatan terhadap gaya drag menunjukkan hubungan berupa persamaan polinomial dalam hal ini merupakan polinomial pangkat 2. Menurut kami hasil curve fitting ini cukup akurat, hal ini ditunjukkan oleh nilai R kuadrat yang cukup tinggi (mendekati 1). R Kuadrat merupakan suatu ukuran kemiripan plot data dengan kurva dengan nilai maksimal 1.
Kami menyimpulkan bahwa hubungan antara gaya drag terhadap kecepatan pada kasus ini sesuai dengan persamaan berikut (dengan y = Drag Force , x = kecepatan):
Sehingga
Analisis Gaya Drag dan Lift pada Airfoil Menggunakan CFDSOF
Pada tugas kali ini, kami diberikan suatu tugas untuk menemukan hubungan antara sudut serang (angle of attack) dan gaya drag dan lift yang terjadi pada suatu bentuk airfoil. Untuk melaksanakan tugas tersebut, kelompok kami melakukan suatu rangkaian tahapan pengerjaan sebagai berikut:
1. Mendesain airfoil dengan menggunakan software CAD (dalam kasus ini kami menggunakan inventor
2. Melakukan analisis fluida dengan software CFD-SOF dengan parameter-parameter yang telah kami tetapkan dan mencari drag dan lift force dengan paraview
3. Plot hasil dan curve fitting dengan menggunakan excel
4. Melakukan optimasi dengan menggunakan Phyton
5. Penarikan kesimpulan
Untuk itu berikut ini akan kami bahas tiap detil dari langkah-langkah tersebut sebagai berikut:
Mendesain airfoil dengan menggunakan software CAD
Dalam tahap ini, kelompok kami memutuskan untuk menggunakan airfoil yang telah umum digunakan yaitu dengan menggunakan airfoil NACA 2410. Pada website *** kami menemukan desain airfoil tersebut (berupa titik-titik) kemudian kami memindahkan titik-titik tersebut ke excel.
Setelah dipindahkan ke excel, titik-titik tersebut dimasukkan ke dalam software Inventor. Sehingga menghasilkan bentuk sebagai berikut:
Airfoil tersebut didesain dengan berbagai sudut serang / angel of attack, yaitu dimulai dari -15 hingga 90 dengan interval 5 derajat
Melakukan analisis fluida dengan software CFD-SOF dan Paraview
Parameter yang dipakai: - Kecepatan 80 m/s - Sedangkan untuk meshing nanti akan kami tunjukkan melalui gambar parameternya (screen shoot)
Scaling
Tindakan ini kami lakukan, karena setelah mengecek ukuran airfoil. Ternyata Airfoil kami berubah ukurannya menjadi jauh lebih besar, sehingga kami lakukan scaling untuk mengembalikan ukurannya menjadi seperti semula
Meshing
Berikut ini parameter-parameter yang kami gunakan dalam simulasi:
Setelah data-data diatas telah didapatkan, langkah selanjutnya adalah untuk mencari drag force dan lift force pada setiap variasi sudutnya menggunakan software CFDSOF. Perhitungan dilakukan dengan kalkulator pada aplikasi third party yaitu paraview. Rumus yang digunakan untuk mendapatkan nilai drag force adalah = p*surface x sedangkan untuk mendapatkan nilai lift force adalah = p*surface y. Dibawah ini adalah salah satu hasil paraview yang kami dapatkan:
Drag Force
Lift Force
Plot hasil dan curve fitting
Kemudian kami mendapatkan nilai-nilai drag force dan lift force pada setiap sudut variasi. Nilai-nilai tersebut kami input dan kami olah pada microsoft excel. Proses yang kami lakukan dinamakan curve fitting, yaitu untuk mendapatkan bentuk persamaan matematis dan juga untuk mendapatkan bentuk grafiknya. Berikut adalah data hasil drag force dan lift force yang kami dapatkan:
Tabel sudut variasi dengan nilai drag force dan lift force yang telah didapatkan:
Grafik yang diperoleh melalui curve fitting di excel
drag force vs sudut:
lift force vs sudut:
Optimasi dengan menggunakan Phyton
Lalu kami mencari nilai optimasi dari masing-masing-masing force:
Optimasi drag force:
Optimasi lift force:
Setelah mendapatkan grafik drag force maupun grafik lift force, yang kami lakukan adalah menggabungkan kedua persamaan tersebut menjadi satu untuk melihat di manakah atau pada nilai berapakah mereka bertemu atau bersinggungan. Hasil dari grafiknya adalah sebagai berikut:
Dikarenakan pada grafik terlihat adanya dua titik yang bersinggungan, maka perlunya optimasi untuk melihat nilai atau titik pasti di mana sudut serang paling optimal. Untuk mendapatkan nilai optimasi kami menggunakan metode numerik dengan bahasa pemrograman python. Hasil pemrograman dibuat sebanyak dua kali yaitu yang pertama adalah menggunakan objective persamaan drag dan yang kedua menggunakan objective persamaan lift. Hasilnya adalah sebagai berikut: