Difference between revisions of "Skandha M Rajasingam"
(12 intermediate revisions by the same user not shown) | |||
Line 45: | Line 45: | ||
Sebelum kami mulai mempelajari pemrograman C++, kami diberi tugas untuk menulis pseudo-code sebuah program sederhana. Dalam kasus ini program tersebut adalah program Maclaurin Series. Program ini mampu menghitung nilai dari sin(x), cos(x), serta derajat akurasi yang dibutuhkan. pseudo-code dimulai dengan menulis variabel-variabel yang dibutuhkan dalam program tersebut. Langkah kedua adalah dengan menulis parameter yang dibutuhkan,dalam kasus ini parameter yang dibutuhkan ialah error= 1e-7. langkah ke 3 adalah untuk menetapkan rasio yang akan dipakai untuk mencapai nilai yang dibutuhkan. langkah ke 4 adalah untuk menetapkan pertambahan gradual dari suku pertama ke suku selanjutnya. Setelah pseudo-code selesai, kertas dikumpulkan ke dosen kelas. | Sebelum kami mulai mempelajari pemrograman C++, kami diberi tugas untuk menulis pseudo-code sebuah program sederhana. Dalam kasus ini program tersebut adalah program Maclaurin Series. Program ini mampu menghitung nilai dari sin(x), cos(x), serta derajat akurasi yang dibutuhkan. pseudo-code dimulai dengan menulis variabel-variabel yang dibutuhkan dalam program tersebut. Langkah kedua adalah dengan menulis parameter yang dibutuhkan,dalam kasus ini parameter yang dibutuhkan ialah error= 1e-7. langkah ke 3 adalah untuk menetapkan rasio yang akan dipakai untuk mencapai nilai yang dibutuhkan. langkah ke 4 adalah untuk menetapkan pertambahan gradual dari suku pertama ke suku selanjutnya. Setelah pseudo-code selesai, kertas dikumpulkan ke dosen kelas. | ||
+ | |||
+ | =='''MEETING SETELAH UTS'''== | ||
+ | =='''MEETING 1: PYTHON'''== | ||
+ | Pada meeting pertama, kami diberikan introduction ke Python, yaitu programming language yang sekarang paling banyak digunakan oleh programmer di dunia modern. Python paling banyak digunakan pada masa ini untuk mendevelop AI, Image Processing, System Utility, serta GUI. | ||
+ | salahs atu dari kelebihan yang python miliki ialah memiliki user interface yang lebih streamlined sehingga lebih mudah untuk ditulis dan dibaca. selain itu python memiliki kemampuan untuk langsung menginterpret program dan memberikan output. Python memiliki IDE yang lumayan beragam seperti spyder dan pycharm. pada saat ini saya menggunakan Pycharm. | ||
+ | python, C++, dan pascal adalah Bahasa pemrograman yang intinya sama, yaitu untuk mengkomunikasikan sebuah ide atau penyelasaian permasalahan. | ||
+ | |||
+ | Tugas yang kami berikan kali ini adalah untuk mencari Top speed serta waktu yang dibutuhkan untuk mencapai top speed dari sebuah mobil. untuk mendapatkan nilai tersebut kami harus menggunakan Teknik Runge Kutta, sebuah Teknik numerik untuk mencari nilai dari turunan sebuah fungsi. dimulai dengan cara mencari governing equation. | ||
=='''TUGAS 1: GOVERNING EQUATION'''== | =='''TUGAS 1: GOVERNING EQUATION'''== | ||
Berikut merupakan governing equation untuk mobil yang sedang bergerak serta gaya yang berlaku pada mobil tersebut. | Berikut merupakan governing equation untuk mobil yang sedang bergerak serta gaya yang berlaku pada mobil tersebut. | ||
− | [[File: | + | [[File:Gov equation.png|800px|left|Governing equation for a moving car]] |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | dari Analisa gaya tersebut program yang kami formulasikan dalam python seperti berikut: | |
− | |||
− | while(Error>0.0005): | + | import math |
+ | import cmath | ||
+ | m= float(input("massa mobil: ")) | ||
+ | Cd= float(input("Koefisien Drag Udara: ")) | ||
+ | Myu= float(input("koefisien gesek dinamis: ")) | ||
+ | F = float(input("Engine's Force: ")) | ||
+ | g= float(9.18) #gravitational_acceleration | ||
+ | N = float(m*g) #Normal_Force | ||
+ | V0 = float(0) #inital_speed_value2 | ||
+ | t0 = float(0) #initial time_value | ||
+ | H = 1 #step_size | ||
+ | Error = float(100) | ||
+ | print ("data data runge kutta: ") | ||
+ | def Va(t0, V0): | ||
+ | return ((F)-(Cd*V0**(2/3)-Myu*N)/m) | ||
+ | while(Error>0.0005): | ||
k1 = Va(t0, V0) | k1 = Va(t0, V0) | ||
k2 = Va(t0 + 0.5, V0 + k1*0.5) | k2 = Va(t0 + 0.5, V0 + k1*0.5) | ||
Line 83: | Line 101: | ||
t0 = t1 | t0 = t1 | ||
print (V1) | print (V1) | ||
− | + | print ("") | |
− | + | print ("kecepatan max mobil merupakan: ", V1) | |
− | + | print ("waktu ke top speed: ", t0) | |
[[File:Video Runge Kutta 23.mp4]] | [[File:Video Runge Kutta 23.mp4]] | ||
+ | |||
+ | |||
+ | |||
+ | =='''MEETING 2: RUNGE KUTTA'''== | ||
+ | Metode Numerik tidak hanya berbasis computer, tapi bergantung pada 3 factor. Yaitu Software, Brainware, dan Hardware. Software diperlukan untuk mengkalkulasi dan memproses data yang ada sehingga didapatkanlah ouput yang diinginkan, Hardware merupakan bentuk fisik dari computer yang melakukan pemrosesan data tersebut. Brainware merupakan manusia yang menulis kode program sehingga data dapat diproses dengan benar. Brainware sangat berguna untuk menyelesaikan Engineering Problem. Dimulai dari analisis problem nyata. mencari tau faktor apa saja yang mempengaruhi problem tersebut. setelah didapatknya faktor faktor, maka brainware dapat maju dan lanjut ke melakukan sebuah model. model ini dapat ada dalam bentuk fisika maupun matematis. dengan bantuan dari software dan hardware. maka model tersebut dapat dianalsis untuk mendapatkan solution. | ||
+ | |||
+ | =='''MEETING 3: CFD SOF'''== | ||
+ | Pada kesempatan kali ini kami belajar mengenai CFD SOF. CFD SOF merupakan sebuah program computational flui dynamics yang dikembangkan di Indonesia dengan fungsi untuk emngkalkulasi dan mensimulasi flow dynamics. pada kesempatan kali ini kami menggunakan CFD SOF untuk mencari tau nilai dari Force Drag yang dialami oleh sebuah geometri mobild alam kecepatan Udara yang bervariasi. data-data force drag lalu akan digunakan dan dimasukan ke excel untuk mendapatkan rumus yang dapat digunakan untuk Force Drag. langkah langkah yang diambil adalah sebagai berikut: | ||
+ | |||
+ | 1. Masukan geometry CAD | ||
+ | |||
+ | 2. Masukan Geometry mesh, mesh coordination, mesh property | ||
+ | |||
+ | 3. Generate mesh | ||
+ | |||
+ | 4. Pilih fluid property | ||
+ | |||
+ | 5. Buat boundary condition untuk fluid | ||
+ | |||
+ | 6. Menentukan algortima dan waktu | ||
+ | |||
+ | 7. Run solver dengan para view | ||
+ | |||
+ | 8. Generate Surface Normal | ||
+ | |||
+ | 9. Integral variable | ||
+ | |||
+ | 10.Run program | ||
+ | |||
+ | [[File:CFDSKANDHA.png|800px|User Interface dari CFD SOF]] | ||
+ | |||
+ | [[File:dragforce_kelompok.png|150px|Data Drag force yang didapat dari CFD SOF]] | ||
+ | |||
+ | [[File:dragforcegrafik2.png|450px]] | ||
+ | |||
+ | =='''MEETING 4: OPTIMIZATION'''== | ||
+ | Pada hari ini kami mempelajari dengan optimasi. Optimasi berguna untuk mencari tau nilai yang paling ideal dari berbagai macam data. dalam kasus ini kami berusaha mencari sudut yang ideal dari sebuah Airfoil. Ada dua gaya yang bekerja pada Airfoil. yaitu Lift Force dan Drag Force. nilai dari kedau Force ini akan bercariasi tergantung sudut serta geometri dari Airfoil. Airfoil yang ideal memiliki Drag Force yang minimum tapi Lift Force yang maksimum. | ||
+ | Perhitungan dimulai dari akuisisi data. Data Data drag force dan Lift force didapat menggunakan CFD SOF Seperti pada mobilm, dengan variable yang diubahnya adalah sudut Airfoil. setelah sudah mencapatkan data, kami memasukinya ke excel agar didapatkan persamaan untuk drag force dan lift force. persamaan tersebut akan kami masukan ke program agar dapat menemukan sudut yang optimal. | ||
+ | |||
+ | [[File:drafliftairfoil1.png|450px]] | ||
+ | |||
+ | [[File:pythonairfoil1.png|600px]] | ||
+ | |||
+ | [[File:resultairfoil1.png|500px]] | ||
+ | |||
+ | =='''MEETING 5: QUIZ'''== | ||
+ | |||
+ | Pada hari ini kami melaksanakan Quiz dari Pak Dai. di mana kami di test kemampuan dan pemahaman dalam Metode Numerik tersebut. Di mana pemahamn tersebut dimulai dari pemahaman basis dari metode numerik. tapi juga membahasa tentang ilmu dan seberapa penting refleksi diri itu terhadap sifat dan akhlak seseorang. jangan sampai ilmu kita lepas, jangan sampai terbutakan oleh semua yang nyata. karena jauh di atas sana ada yang jauh lebih kuat dari kita semua, sang creator. dalam merenungkan diri dan menyadarkan diri atas eksistensi sang creator. kita dapat menjadi pribadi yang lebih sadar atas perbuatan dan juga jauh lebih bertanggung jawab atas askinya sendiri. | ||
+ | |||
+ | =='''MEETING 6: Artificial Neural Network'''== | ||
+ | |||
+ | ANN (Artifical Neural Network) merupakan jenis pemrograman yang terinspirasi oleh cara kerja Neuron yang terdapat di dalam otak animalia. system seperti ini biasanya dapat melaksanakan sebauh aksi berdasarkan contoh tanpa diperikan perintah yang spesifik. | ||
+ | |||
+ | Activation Function | ||
+ | |||
+ | Jika kita tidak menerapkan fungsi Aktivasi maka sinyal output hanya akan menjadi fungsi linier sederhana. Fungsi linier hanyalah polinomial satu derajat. | ||
+ | |||
+ | Backpropagation | ||
+ | |||
+ | 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. | ||
+ | |||
+ | langkah langah untuk membangun sebuah 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 | ||
+ | |||
+ | |||
+ | |||
+ | Pada hari ini hanya dijelaskan penjelasan ringkas mengenai ANN dikarenakan sebelumnya sedang diadakan presentasi tentang Airfoil oleh kelompok kelompok di kelas. | ||
+ | |||
+ | =='''MEETING 7: Artificial Neural Network Aplication'''== | ||
+ | |||
+ | Pada kali ini, data yang sudah didapatkan beberapa minggu lalu dari Analisa Airfoil digunakan lagi untuk mencari tau perbandingan apakah output real dan output prediction ANN sama atau tidak. | ||
+ | |||
+ | Langkah pertama untuk membangun ANN: | ||
+ | |||
+ | '''1. Mengimport Library yang dibutuhkan''' | ||
+ | |||
+ | [[File:ANNLIB.png|1000px]] | ||
+ | |||
+ | '''2. Mengupload file excel yang berisi data drag dan lift airfoil''' | ||
+ | |||
+ | [[File:fileexcel1.png|1000px]] | ||
+ | |||
+ | [[File:fileexcel2.png|1000px]] | ||
+ | |||
+ | '''3. Normalisasi agar matrixnya tidak terlalu besar''' | ||
+ | |||
+ | [[File:normalisasi1.png|1000px]] | ||
+ | |||
+ | [[File:normalisasi2.png|1000px]] | ||
+ | |||
+ | '''4. Membuat ANN''' | ||
+ | |||
+ | [[File:membuat ann.png|1000px]] | ||
+ | |||
+ | '''5. Unnormalize untuk mendapatkan nilai sebenarnya''' | ||
+ | |||
+ | [[File:unnormalize.png|1000px]] |
Latest revision as of 05:35, 17 December 2019
Contents
Profil
Nama: Skandha M Rajasingam
NPM: 1706036532
Jurusan: Teknik Mesin
MEETING 1
METODE NUMERIK Metode Numerik merupakan teknik untuk memformulasikan sebuah rumus matematika agar dapat dipecahkan menggunakan operasi perhitungan biasa. Metode numerik krusial untuk pemecahan permasalahan yang tidak dapat diselesaikan melalu metode exact. Metode numerik dalam bidang computer menjadi fokus dalam bidang pelajaran semester ini. salah satu metode numerik yang dipakai pada pertemuan ini adalah Taylor's Method.
Taylor's Method Taylor's Method merupakan representasi sebuah fungsi sebagai jumlahan tak hingga dari suku suku yang nilainya dihitung dari turunan fungsi tersebut fungsi Utama dari Taylor's Method dalam pembelajaran ini adalah untuk meng aproksimasikan nilai dari sebuah fungsi. dalam kasus ini mengaproksimasikan nilai dari Sin(pi/7).
MEETING 2
BAHASA PEMROGRAMAN Dalam dunia engineering, pemrograman bukanlah sesuatu yang asing. di segala sudut dan bidang engineering kita sudah bisa melihat implementasi dari program computer. Oleh karena itu, pengetahuan tentang berbagai macam Bahasa pemrograman serta aplikasinya dalam dunia kerja adalah sesuatu yang sangat penting di dunia yang modern ini. Pada kesempatan ini, bahasa pemrograman yang kami pelajari adalah C++. alasan kami memilih bahasa pemrograman C++ adalah fleksibilitas bahasa tersebut. Bahasa tersebut kompatibel dengan banyak sistem dan perangkat dari berbagai bidang.
PSEUDO CODE Sebelum kami mulai mempelajari pemrograman C++, kami diberi tugas untuk menulis pseudo-code sebuah program sederhana. Dalam kasus ini program tersebut adalah program Maclaurin Series. Program ini mampu menghitung nilai dari sin(x), cos(x), serta derajat akurasi yang dibutuhkan. pseudo-code dimulai dengan menulis variabel-variabel yang dibutuhkan dalam program tersebut. Langkah kedua adalah dengan menulis parameter yang dibutuhkan,dalam kasus ini parameter yang dibutuhkan ialah error= 1e-7. langkah ke 3 adalah untuk menetapkan rasio yang akan dipakai untuk mencapai nilai yang dibutuhkan. langkah ke 4 adalah untuk menetapkan pertambahan gradual dari suku pertama ke suku selanjutnya. Setelah pseudo-code selesai, kertas dikumpulkan ke dosen kelas.
MEETING SETELAH UTS
MEETING 1: PYTHON
Pada meeting pertama, kami diberikan introduction ke Python, yaitu programming language yang sekarang paling banyak digunakan oleh programmer di dunia modern. Python paling banyak digunakan pada masa ini untuk mendevelop AI, Image Processing, System Utility, serta GUI. salahs atu dari kelebihan yang python miliki ialah memiliki user interface yang lebih streamlined sehingga lebih mudah untuk ditulis dan dibaca. selain itu python memiliki kemampuan untuk langsung menginterpret program dan memberikan output. Python memiliki IDE yang lumayan beragam seperti spyder dan pycharm. pada saat ini saya menggunakan Pycharm. python, C++, dan pascal adalah Bahasa pemrograman yang intinya sama, yaitu untuk mengkomunikasikan sebuah ide atau penyelasaian permasalahan.
Tugas yang kami berikan kali ini adalah untuk mencari Top speed serta waktu yang dibutuhkan untuk mencapai top speed dari sebuah mobil. untuk mendapatkan nilai tersebut kami harus menggunakan Teknik Runge Kutta, sebuah Teknik numerik untuk mencari nilai dari turunan sebuah fungsi. dimulai dengan cara mencari governing equation.
TUGAS 1: GOVERNING EQUATION
Berikut merupakan governing equation untuk mobil yang sedang bergerak serta gaya yang berlaku pada mobil tersebut.
dari Analisa gaya tersebut program yang kami formulasikan dalam python seperti berikut:
import math import cmath m= float(input("massa mobil: ")) Cd= float(input("Koefisien Drag Udara: ")) Myu= float(input("koefisien gesek dinamis: ")) F = float(input("Engine's Force: ")) g= float(9.18) #gravitational_acceleration N = float(m*g) #Normal_Force V0 = float(0) #inital_speed_value2 t0 = float(0) #initial time_value H = 1 #step_size Error = float(100) print ("data data runge kutta: ") def Va(t0, V0): return ((F)-(Cd*V0**(2/3)-Myu*N)/m) while(Error>0.0005): k1 = Va(t0, V0) k2 = Va(t0 + 0.5, V0 + k1*0.5) k3 = Va(t0 + 0.5, V0 + k2*0.5) k4 = Va(t0 + 1, V0 + k3) V1 = V0 + (1/6)*(k1 + 2*k2 + 3*k3 + k4) Error = ((V1 - V0) / V1) V0 = V1 t1 = t0 + H t0 = t1 print (V1) print ("") print ("kecepatan max mobil merupakan: ", V1) print ("waktu ke top speed: ", t0)
MEETING 2: RUNGE KUTTA
Metode Numerik tidak hanya berbasis computer, tapi bergantung pada 3 factor. Yaitu Software, Brainware, dan Hardware. Software diperlukan untuk mengkalkulasi dan memproses data yang ada sehingga didapatkanlah ouput yang diinginkan, Hardware merupakan bentuk fisik dari computer yang melakukan pemrosesan data tersebut. Brainware merupakan manusia yang menulis kode program sehingga data dapat diproses dengan benar. Brainware sangat berguna untuk menyelesaikan Engineering Problem. Dimulai dari analisis problem nyata. mencari tau faktor apa saja yang mempengaruhi problem tersebut. setelah didapatknya faktor faktor, maka brainware dapat maju dan lanjut ke melakukan sebuah model. model ini dapat ada dalam bentuk fisika maupun matematis. dengan bantuan dari software dan hardware. maka model tersebut dapat dianalsis untuk mendapatkan solution.
MEETING 3: CFD SOF
Pada kesempatan kali ini kami belajar mengenai CFD SOF. CFD SOF merupakan sebuah program computational flui dynamics yang dikembangkan di Indonesia dengan fungsi untuk emngkalkulasi dan mensimulasi flow dynamics. pada kesempatan kali ini kami menggunakan CFD SOF untuk mencari tau nilai dari Force Drag yang dialami oleh sebuah geometri mobild alam kecepatan Udara yang bervariasi. data-data force drag lalu akan digunakan dan dimasukan ke excel untuk mendapatkan rumus yang dapat digunakan untuk Force Drag. langkah langkah yang diambil adalah sebagai berikut:
1. Masukan geometry CAD
2. Masukan Geometry mesh, mesh coordination, mesh property
3. Generate mesh
4. Pilih fluid property
5. Buat boundary condition untuk fluid
6. Menentukan algortima dan waktu
7. Run solver dengan para view
8. Generate Surface Normal
9. Integral variable
10.Run program
MEETING 4: OPTIMIZATION
Pada hari ini kami mempelajari dengan optimasi. Optimasi berguna untuk mencari tau nilai yang paling ideal dari berbagai macam data. dalam kasus ini kami berusaha mencari sudut yang ideal dari sebuah Airfoil. Ada dua gaya yang bekerja pada Airfoil. yaitu Lift Force dan Drag Force. nilai dari kedau Force ini akan bercariasi tergantung sudut serta geometri dari Airfoil. Airfoil yang ideal memiliki Drag Force yang minimum tapi Lift Force yang maksimum. Perhitungan dimulai dari akuisisi data. Data Data drag force dan Lift force didapat menggunakan CFD SOF Seperti pada mobilm, dengan variable yang diubahnya adalah sudut Airfoil. setelah sudah mencapatkan data, kami memasukinya ke excel agar didapatkan persamaan untuk drag force dan lift force. persamaan tersebut akan kami masukan ke program agar dapat menemukan sudut yang optimal.
MEETING 5: QUIZ
Pada hari ini kami melaksanakan Quiz dari Pak Dai. di mana kami di test kemampuan dan pemahaman dalam Metode Numerik tersebut. Di mana pemahamn tersebut dimulai dari pemahaman basis dari metode numerik. tapi juga membahasa tentang ilmu dan seberapa penting refleksi diri itu terhadap sifat dan akhlak seseorang. jangan sampai ilmu kita lepas, jangan sampai terbutakan oleh semua yang nyata. karena jauh di atas sana ada yang jauh lebih kuat dari kita semua, sang creator. dalam merenungkan diri dan menyadarkan diri atas eksistensi sang creator. kita dapat menjadi pribadi yang lebih sadar atas perbuatan dan juga jauh lebih bertanggung jawab atas askinya sendiri.
MEETING 6: Artificial Neural Network
ANN (Artifical Neural Network) merupakan jenis pemrograman yang terinspirasi oleh cara kerja Neuron yang terdapat di dalam otak animalia. system seperti ini biasanya dapat melaksanakan sebauh aksi berdasarkan contoh tanpa diperikan perintah yang spesifik.
Activation Function
Jika kita tidak menerapkan fungsi Aktivasi maka sinyal output hanya akan menjadi fungsi linier sederhana. Fungsi linier hanyalah polinomial satu derajat.
Backpropagation
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.
langkah langah untuk membangun sebuah 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
Pada hari ini hanya dijelaskan penjelasan ringkas mengenai ANN dikarenakan sebelumnya sedang diadakan presentasi tentang Airfoil oleh kelompok kelompok di kelas.
MEETING 7: Artificial Neural Network Aplication
Pada kali ini, data yang sudah didapatkan beberapa minggu lalu dari Analisa Airfoil digunakan lagi untuk mencari tau perbandingan apakah output real dan output prediction ANN sama atau tidak.
Langkah pertama untuk membangun ANN:
1. Mengimport Library yang dibutuhkan
2. Mengupload file excel yang berisi data drag dan lift airfoil
3. Normalisasi agar matrixnya tidak terlalu besar
4. Membuat ANN
5. Unnormalize untuk mendapatkan nilai sebenarnya