http://air.eng.ui.ac.id/api.php?action=feedcontributions&user=Iqbalrezaalfikri&feedformat=atomccitonlinewiki - User contributions [en]2024-03-28T10:25:32ZUser contributionsMediaWiki 1.30.0http://air.eng.ui.ac.id/index.php?title=Valve_-_Iqbal_Reza_Alfikri&diff=56086Valve - Iqbal Reza Alfikri2021-01-14T09:57:59Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Iqbal Reza Alfikri<br />
<br />
1706104243<br />
<br />
Sistem Fluida 03 2020/2021<br />
<br />
<br />
== Tugas 1 Simulasi Stop Valve menggunakan CFDSOF ==<br />
<br />
'''1. Menconvert model menjadi stl''' <br />
<br />
[[File:Close_valvenew.png|600px]]<br />
<br />
'''2. Proses simulasi di CFDSOF'''<br />
<br />
[[File:closevalvecfdsof.PNG|600px]]<br />
<br />
[[File:GrafikCFDSOF.PNG|600px]]<br />
<br />
'''3. Post Processing di paraview'''<br />
<br />
[[File:paraviewpostprocess.PNG|600px]]<br />
<br />
'''4. Didapatkan hasil pressure drop sebagai berikut''' <br />
<br />
[[File:Hasilptotal.PNG|600px]]<br />
<br />
'''5. Grafik pTotal'''<br />
<br />
[[File:GRAFIKPTOTAL.PNG|600px]]<br />
<br />
'''6. Kontur'''<br />
<br />
[[File:Kontur.PNG]]<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Ada 3 metode untuk menganalsisa fluida yaitu :<br />
<br />
1. Eksperimen : Hasil aktual namun memerlukan banyak waktu dan biaya<br />
<br />
2. Teori : Untuk memverifikasi data eksperimen apakah benar atau tidak pada suatu kondisi ideal<br />
<br />
3. Numerik atau CFD : Digunakan ketika perhitungan atau model sangat kompleks dan tidak dapat diselesaikan dengan metode teoritis ataupun eksperimen.<br />
<br />
tidak ada metode yang superior dan semua metode saling melengkapi satu sama lain.<br />
<br />
Perbedaan turbin impuls dan turbin reaksi yaitu :<br />
<br />
1. Turbin Impuls : memanfaatkan head yang tinggi, air bertekanan tinggi akan diarahkan ke ujung blade yang berbentuk seperti mangkuk. Biasa digunakan di tempat yang memiliki perbedaan ketinggian yang cukup besar.<br />
<br />
[[File:What_is_Pelton_Turbine.jpg|600px]]<br />
<br />
2. Turbin Reaksi : memanfaatkan volume yang besar, air dengan volume besar akan memutar turbin dengan mendorong blade. Biasa digunakan di tempat yang memiliki aliran dengan volume besar namun tidak ada perbedaan ketinggian yang berarti.<br />
<br />
[[File:Kaplan.jpg]]<br />
<br />
<br />
== Tugas 2 ==<br />
<br />
Berikut ini adalah contoh yang saya telah pelajari dalam openmodelica. Yaitu melihat perbedaan yang terjadi pada aliran pada 2 jenis pipa yang berbeda. <br />
<br />
[[File:Tugas2iqbal.PNG]]<br />
<br />
2 Jenis pipa yang digunakan disini yaitu pipa biasa/circular dan pipa annulus/ring. <br />
<br />
Pada diagram diatas, pipa atas yaitu pipa circular dengan diameter 10 mm, dan pipa bawah yaitu pipa annulus dengan diameter dalam 5 mm dan diameter luar 15mm. Kedua pipa memiliki panjang yang sama yaitu 100m<br />
<br />
Kedua pipa memiliki ujung terbuka <br />
<br />
[[File:PerbedaanV2.PNG]]<br />
<br />
[[File:PerbedaanP.PNG]]<br />
<br />
Setelah disimulasikan, terlihat adanya perbedaan pada kecepatan dan tekanan pada kedua pipa dikarenakan adanya perbedaan ''cross section''. Circular pipe memiliki V yang lebih tinggi namun p yang lebih rendah dikarenakan circular pipe memiliki luasan yang lebih kecil apabila dibandingkan dengan annulus pipe.<br />
<br />
Berikut ini adalah link file case nya https://drive.google.com/file/d/1vOL3OEPoHUxhrt5UrJDrfeH-6VLJzy-O/view?usp=sharing<br />
<br />
<br />
== Pertemuan 3 ==<br />
<br />
Pemodelan sistem fluida dengan OpenModelica<br />
<br />
pemodelan adalah sebuah usaha untuk mempelajari sebuah sistem aktual melalui sistem yang disimplifikasi model adalah sebuah sistem yang disederhanakan yang digunakan untuk merepresentasikan kondisi awalnya. karena kita akan sulit mempelajari kondisi aktual. karena kondisi aktual cukup kompleks, banyak sekali variablenya. kemudian untuk skalar yang sangat besar kan kesulitan juga. plta pltu merupakan sistem fluida besar, akan sangat sulit melakukan pengukuran di equipment yang sangat besar. secara geometri disederhanakan, variabel variable disimplifikasi dng tidak mengurangi keakuratan. pemodelan sebuah usaha untuk membuat replika. pemodelan tidak akan pernah 100% sama dengan kondisi aktualnya. model bisa jadi sebuah model fisik yaitu alat, namun yang banyak dilakukan oleh engineer biasanya melkukan pemodelan secara virtual/komputasi, memerlukan ilmu dasar/basic pengetahuan untuk ilmu fluida. <br />
<br />
law driven model = sebuah model berdasarkan hukum hukum fisika<br />
<br />
(Data driven model) pemodelan menggunakan AI <br />
<br />
umumnya aplikasi pemodelan gabungan dari kedua itu. <br />
<br />
penjelasan openmodelica. example fluid empty tank dan example heat transfer two tanks dan heat transfer simple cooling<br />
<br />
<br />
== Tugas 3 ==<br />
<br />
'''Heating System Example'''<br />
<br />
[[File:Heatingsystemexample.PNG]]<br />
<br />
'''1. Deskripsi dan Uraian fisik'''<br />
<br />
Ini merupakan gambaran dari system pemanas closed flow, artinya aliran akan selalu mengalir dalam system tanpa adanya tambahan fluida dari luar system. Fluida yang digunakan dalam case ini adalah air. Air dipompa oleh pump yang tugasnya mengatur tekanan, lalu melewati mass flow meter untuk mengecek laju massa air. Setelah itu air akan masuk kedalam heater yang terhubung dengan burner, burner yang akan mengatur seberapa banyak panas yang masuk ke sistem sehingga temperatur dapat diatur. Kemudiann air mengalir melalui sensor temperatur dan menuju valve yang mana valve ini yang akan mengatur laju massa air. Air kemudian mengalir kedalam radiator yang berfungsi untuk melepaskan panas ke lingkungan sekitar. Temperatur diukur kembali. Kemudian air mengalir kembali ke tank, lalu kembali ke pompa. Informasi dari 2 sensor temperatur yang berada sesudah heater dan sebelum tank, dan 1 sensor laju massa air, akan digunakan sebagai feedback untuk mengatur panas yang akan diberikan oleh burner sehingga temperatur air dapat stabil pada set-point yang diinginkan.<br />
<br />
'''Tangki'''<br />
<br />
max ketinggian = 2m<br />
<br />
luas = 0.01m2<br />
<br />
ketinggian awal = 1m<br />
<br />
'''Pompa'''<br />
<br />
p inlet = 110000 Pa<br />
<br />
p outlet = 130000 Pa<br />
<br />
N = 1500 rpm<br />
<br />
'''Heater'''<br />
<br />
panjang pipa = 2m<br />
<br />
diameter pipa = 0.01m<br />
<br />
Heat flow rate = 1600 W<br />
<br />
'''Pipa'''<br />
<br />
panjang pipa = 10m<br />
<br />
diameter pipa = 0.01m<br />
<br />
'''Valve'''<br />
<br />
Pressure drop = 10000 Pa<br />
<br />
Mass flow rate = 0.01 kg/s<br />
<br />
'''Radiator'''<br />
<br />
Konduktivitas thermal = 80 W/K<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> double click pada Heating System<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa dan interpretasi hasil pemodelan'''<br />
<br />
Hasil simulasi error maka tidak dapat dianalisa. Untuk cara kerja dari system sudah dijelaskan pada poin 1. terdapat pompa yang berguna untuk mengatur tekanan, valve untuk menngatur mass flow, heater untuk mengatur temperatur, radiator untuk melepaskan panas dari system ke lingkungan sekitar, 2 sensor temperatur dan 1 sensor flow sebagai feedback untuk mengatur panas yang diberikan oleh heater.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
- konservasi massa<br />
<br />
- konservasi energi<br />
<br />
- perpindahan panas<br />
<br />
'''5. Hasil simulasi'''<br />
<br />
[[File:Failedheating.PNG]]<br />
<br />
<br />
'''Three Tanks Example'''<br />
<br />
[[File:3_tanks.PNG]]<br />
<br />
'''1. Deskripsi dan uraian fisik'''<br />
<br />
Pada simulasi ini, terdapat 2 tank yang berada di ketinggian yang sama dan 1 tank berada di ketinggian yang lebih rendah, ketiga tank memiliki ketinggian air yang berbeda-beda. Ketika simulasi dijalankan, 3 tank tersebut akan memiliki ketinggian yang sama karena sifat air yang akan selalu memiliki tinggi sama dengan catatan tank dalam keadaan open/terbuka dgn tekanan atmosphere.<br />
<br />
'''Tank 1'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 8m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 2'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 3'''<br />
<br />
Posisi = -1m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> Tanks -> double click pada Three Tanks<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa hasil dan interpretasi hasil pemodelan'''<br />
<br />
Setelah disimulasikan, air yang berada di tank 1, tank 2 dan tank 3 akan memiliki ketinggian yang sama. Karena posisi tank 3 lebih rendah maka tank 3 memiliki level air lebih tinggi di dalam tank dibandingkan tank 1 dan tank 2. Posisi tank 1 dan 2 berada 2m diatas titik 0 sedangkan posisi tank 3 berada di -1 dibawah titik 0, maka selisih dari tank 1/tank 2 dengan tank 3 yaitu sebesar 3m.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
1. Tekanan hidrostatis<br />
<br />
'''5. Hasil Simulasi'''<br />
<br />
[[File:Hasil3tanks.PNG]]<br />
<br />
Seperti pada dijelaskan di poin 3. Level air pada tank 1 dan tank 2 akan sama yaitu 3,66m karena kedua tank berada pada ketinggian yang sama. Karena posisi tank 3 berada -1m dibawah titik 0 maka akan ada selisih 3m dalam level air dan dapat dilihat pada hasil simulasi diatas tank 3 memiliki level air 6,66m. Hal ini dikarenakan tekanan pada dasar (dalam kasus ini yang berada paling bawah adalah pipanya) harus sama antara 3 tank yang terhubung. Waktu yang dibutuhkan untuk ketiga tank memiliki ketinggian yang sama adalah sekitar 140 detik.<br />
<br />
== TUGAS 4 ==<br />
<br />
[[File:Tugas4siflu.PNG]]<br />
<br />
'''1. Sistem diatas merupakan diagram dari pembangkit listrik gabungan/Combined power plant dari turbin gas dan turbin uap.''' <br />
<br />
a. Turbin gas<br />
<br />
[[File:Brayton.PNG]]<br />
<br />
turbin gas pada umumnya menggunakan siklus brayton yaitu dengan mengkompresi udara dgn proses isentropik lalu menambahkan bahan bakar kemudian melakukan ekspansi isentropik.<br />
<br />
b. Turbin Uap <br />
<br />
[[File:Rankine_cycle_Ts.png]]<br />
<br />
Turbin uap yang digunakan pada sistem yaitu turbin uap multistage dengan menggunakan siklus rankine. <br />
<br />
'''2. Identifikasi komponen utama pada sistem'''<br />
<br />
a. Gas Turbine<br />
<br />
[[File:Gas_turbine.PNG]]<br />
<br />
[[File:Gas_turbine_spec.PNG]]<br />
<br />
Terdiri dari compressor, ruang bakar, dan turbin. Berfungsi sebagai penggerak shaft yang tersambung ke generator dan udara panas buangan dari gas turbine akan digunakan untuk memanaskan uap pada turbin uap atau dalam case ini disebut Heat Recovery Steam Generator. Shaft yang digunakan pada sistem combined power plant ini hanya 1 namun memiliki banyak turbin, semua turbin terhubung ke 1 shaft yang diujungnya terdapat generator untuk menghasilkan listrik.<br />
<br />
b. Steam turbine <br />
<br />
[[File:Steam_turbine.PNG]]<br />
<br />
[[File:Turbine_st_1.PNG]]<br />
<br />
[[File:Turbine_st_2.PNG]]<br />
<br />
[[File:Turbine_st_3.PNG]]<br />
<br />
Steam turbine disini menggunakan multi stage turbine yang terdiri dari HP turbine, MP turbine, and LP turbine. Uap panas yang melewati turbin HP akan dimasukkan kembali kedalam boiler yang dipanaskan oleh udara buang panas dari gas turbine kemudian masuk kembali ke turbin stage selanjutnya yaitu turbin MP, dan proses yang sama terjadi pada uap yang akan masuk kedalam turbin LP. <br />
<br />
c. Heat exchanger<br />
<br />
[[File:Boilers.PNG]]<br />
<br />
[[File:Boiler1.PNG]]<br />
<br />
Heat exchanger pada gambar ini memiliki jumlah tube yang berbeda-beda. fungsinya dalah untuk menangkap panas dari gas buang dan mengubah fasa air menjadi uap.<br />
<br />
d. Generator<br />
<br />
[[File:Generatorasda.PNG]]<br />
<br />
[[File:Generator_spec.PNG]]<br />
<br />
Generator, berfungsi sebagai penghasil listrik. Shaft generator terhubung ke 4 turbin yaitu turbin gas, dan 3 turbin uap.<br />
<br />
e. Condenser<br />
<br />
[[File:Condenser.PNG]]<br />
<br />
[[File:Condenser_spec.PNG]]<br />
<br />
Condenser, berfungsi untuk merubah fasa uap menjadi liquid.<br />
<br />
d. Pump<br />
<br />
[[File:Pump.PNG]]<br />
<br />
[[File:Pump_spec.PNG]]<br />
<br />
Pump berfungsi untuk memberikan tekanan pada air yang keluar dari condenser.<br />
<br />
e. Boiler<br />
<br />
[[File:Tankboiler.PNG]]<br />
<br />
[[File:Tankboiler_spec.PNG]]<br />
<br />
Boiler boiler disini berfungsi untuk mengubah fasa cair menjadi uap dengan menggunakan panas yang ditangkap oleh heat exchanger<br />
<br />
'''3. Medium yang digunakan disini adalah udara, air, dan uap. '''<br />
<br />
Udara panas dari buangan turbin uap, akan ditangkap oleh heat exchanger sehingga Q dapat dihitung dengan menggunakan persamaan perpindahan panas konveksi. <br />
<br />
'''4. Flow Line''' <br />
<br />
a. jalur merah menandakan fluida dalam bentuk uap<br />
<br />
b. jalur biru menandakan fluida dalam bentuk cair<br />
<br />
c. jalur hitam menandakan fluida dalam bentuk fraksi uap.<br />
<br />
d. ada 2 jalur hitam, jalur hitam yang lainnya menunjukkan bahwa kedua equipment terhubung atau adanya transfer energi. <br />
<br />
e. jalur hitam tebal yang keluar dari turbin gas adalah exhaust dari turbin gas.<br />
<br />
<br />
== Tugas Besar ==<br />
<br />
Tugas besar ini saya mengambil dari examples pada openmodelica. karena saya sendiri masih kurang paham dalam menggunakan openmodelica. <br />
<br />
'''Tujuan'''<br />
<br />
Memahami aplikasi openmodelica<br />
<br />
'''Metodologi'''<br />
<br />
1. Meremodel bahan examples dari openmodelica<br />
<br />
2. Melakukan simulasi<br />
<br />
'''Pembahasan'''<br />
<br />
[[File:Tugasbesar.PNG]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugasbesar.PNG&diff=56065File:Tugasbesar.PNG2021-01-14T09:43:38Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=55082Metnum03-Iqbal Reza Alfikri2021-01-13T10:28:04Z<p>Iqbalrezaalfikri: /* UAS */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
== UAS == <br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg]]<br />
<br />
[[File:P_20210113_165107.jpg|720px]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.05.42_PM.jpeg]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.26.38_PM.jpeg]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.26.47_PM.jpeg]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:WhatsApp_Image_2021-01-13_at_5.26.47_PM.jpeg&diff=55080File:WhatsApp Image 2021-01-13 at 5.26.47 PM.jpeg2021-01-13T10:27:48Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:WhatsApp_Image_2021-01-13_at_5.26.38_PM.jpeg&diff=55078File:WhatsApp Image 2021-01-13 at 5.26.38 PM.jpeg2021-01-13T10:27:28Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=55035Metnum03-Iqbal Reza Alfikri2021-01-13T10:08:00Z<p>Iqbalrezaalfikri: /* UAS */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
== UAS == <br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg]]<br />
<br />
[[File:P_20210113_165107.jpg|720px]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.05.42_PM.jpeg]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=55034Metnum03-Iqbal Reza Alfikri2021-01-13T10:07:27Z<p>Iqbalrezaalfikri: /* UAS */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
== UAS == <br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg]]<br />
<br />
[[File:P_20210113_165107.jpg|150px]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.05.42_PM.jpeg]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=55033Metnum03-Iqbal Reza Alfikri2021-01-13T10:06:40Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
== UAS == <br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg]]<br />
<br />
[[File:P_20210113_165107.jpg]]<br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_5.05.42_PM.jpeg]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:WhatsApp_Image_2021-01-13_at_5.05.42_PM.jpeg&diff=55031File:WhatsApp Image 2021-01-13 at 5.05.42 PM.jpeg2021-01-13T10:06:20Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=55024Metnum03-Iqbal Reza Alfikri2021-01-13T09:56:11Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
== UAS == <br />
<br />
[[File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg]]<br />
<br />
[[File:P_20210113_165107.jpg]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:WhatsApp_Image_2021-01-13_at_4.26.47_PM_(1).jpeg&diff=55023File:WhatsApp Image 2021-01-13 at 4.26.47 PM (1).jpeg2021-01-13T09:55:53Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:P_20210113_165107.jpg&diff=55021File:P 20210113 165107.jpg2021-01-13T09:55:34Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:P_20210113_165057.jpg&diff=55019File:P 20210113 165057.jpg2021-01-13T09:54:22Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=54862Metnum03-Iqbal Reza Alfikri2021-01-13T05:57:12Z<p>Iqbalrezaalfikri: /* Tugas BEsar */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
<br />
tes</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=54861Metnum03-Iqbal Reza Alfikri2021-01-13T05:55:10Z<p>Iqbalrezaalfikri: /* Tugas BEsar */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=54860Metnum03-Iqbal Reza Alfikri2021-01-13T05:47:37Z<p>Iqbalrezaalfikri: /* Tugas BEsar */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)<br />
<br />
Solusi :<br />
<br />
'''Perhitungan stress'''<br />
<br />
//define initial variable<br />
parameter Integer Points=16; //Number of Points<br />
parameter Integer Trusses=24; //Number of Trusses<br />
parameter Real Area=0.000224; //Area L Profile (Dimension=0.03, Thickness=0,004) <br />
parameter Real Elas=193e9; //Elasticity SS 304<br />
//define connection<br />
parameter Integer C[:,2]=[ 1,5; // (1)<br />
2,6; // (2)<br />
3,7; // (3)<br />
4,8; // (4)<br />
5,6; // (5)<br />
6,7; // (6)<br />
7,8; // (7)<br />
5,8; // (8)<br />
5,9; // (9)<br />
6,10; // (10)<br />
7,11; // (11)<br />
8,12; // (12)<br />
9,10; // (13)<br />
10,11;// (14)<br />
11,12;// (15)<br />
9,12; // (16)<br />
9,13; // (17)<br />
10,14;// (18)<br />
11,15;// (19)<br />
12,16;// (20)<br />
13,14;// (21)<br />
14,15;// (22)<br />
15,16;// (23)<br />
13,16];//(24)<br />
//define coordinates (please put orderly)<br />
parameter Real P[:,6]=[ 0 ,0 ,0,1,1,1; //node 1<br />
0.75,0 ,0,1,1,1; //node 2<br />
0.75,0.6,0,1,1,1; //node 3<br />
0 ,0.6,0,1,1,1; //node 4<br />
<br />
0 ,0 ,0.3,0,0,0; //node 5<br />
0.75,0 ,0.3,0,0,0; //node 6<br />
0.75,0.6,0.3,0,0,0; //node 7<br />
0 ,0.6,0.3,0,0,0; //node 8<br />
<br />
0 ,0 ,1.05,0,0,0; //node 9<br />
0.75,0 ,1.05,0,0,0; //node 10 <br />
0.75,0.6,1.05,0,0,0; //node 11<br />
0 ,0.6,1.05,0,0,0; //node 12<br />
<br />
0 ,0 ,1.8,0,0,0; //node 13<br />
0.75,0 ,1.8,0,0,0; //node 14<br />
0.75,0.6,1.8,0,0,0; //node 15<br />
0 ,0.6,1.8,0,0,0]; //node 16<br />
<br />
//define external force (please put orderly)<br />
parameter Real F[Points*3]={0,0,0,<br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,0, <br />
0,0,-1000, <br />
0,0,-500, <br />
0,0,-500, <br />
0,0,-1000}; <br />
//solution<br />
Real displacement[N], reaction[N];<br />
Real check[3];<br />
Real stress1[Trusses];<br />
Real safety[Trusses];<br />
Real dis[3];<br />
Real Str[3];<br />
protected<br />
parameter Integer N=3*Points;<br />
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];<br />
Real err=10e-15, ers=10e-8;<br />
algorithm<br />
//Creating Global Matrix<br />
G:=id;<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2];<br />
//Transforming to global matrix<br />
g:=zeros(N,N); <br />
for m,n in 1:3 loop<br />
g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];<br />
g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];<br />
g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];<br />
end for; <br />
G_star:=G+g;<br />
G:=G_star;<br />
end for;<br />
//Implementing boundary<br />
for x in 1:Points loop<br />
if P[x,4] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-2,a]:=0;<br />
G[(x*3)-2,(x*3)-2]:=1;<br />
end for;<br />
end if;<br />
if P[x,5] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[(x*3)-1,a]:=0;<br />
G[(x*3)-1,(x*3)-1]:=1;<br />
end for;<br />
end if;<br />
if P[x,6] <> 0 then<br />
for a in 1:Points*3 loop<br />
G[x*3,a]:=0;<br />
G[x*3,x*3]:=1;<br />
end for;<br />
end if;<br />
end for;<br />
//Solving displacement<br />
displacement:=Modelica.Math.Matrices.solve(G,F);<br />
//Solving reaction<br />
reaction:=(G_star*displacement)-F;<br />
//Eliminating float error<br />
for i in 1:N loop<br />
reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];<br />
displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];<br />
end for;<br />
//Checking Force<br />
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});<br />
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});<br />
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)}); <br />
for i in 1:3 loop<br />
check[i] := if abs(check[i])<=ers then 0 else check[i];<br />
end for;<br />
//Calculating stress in each truss<br />
for i in 1:Trusses loop<br />
for j in 1:3 loop<br />
q1[j]:=P[C[i,1],j];<br />
q2[j]:=P[C[i,2],j];<br />
dis[j]:=abs(displacement[3*(C[i,1]-1)+j]-displacement[3*(C[i,2]-1)+j]);<br />
end for; <br />
//Solving Matrix<br />
L:=Modelica.Math.Vectors.length(q2-q1);<br />
cx:=(q2[1]-q1[1])/L;<br />
cy:=(q2[2]-q1[2])/L;<br />
cz:=(q2[3]-q1[3])/L; <br />
X:=(Elas/L)*[cx^2,cx*cy,cx*cz;<br />
cy*cx,cy^2,cy*cz;<br />
cz*cx,cz*cy,cz^2]; <br />
Str:=(X*dis);<br />
stress1[i]:=Modelica.Math.Vectors.length(Str);<br />
end for;<br />
//Safety factor<br />
for i in 1:Trusses loop<br />
if stress1[i]>0 then<br />
safety[i]:=Yield/stress1[i];<br />
else<br />
safety[i]:=0;<br />
end if; <br />
end for;<br />
end Trusses_3D_Tugas_Besar_Safety;<br />
<br />
<br />
'''untuk bagian curve fitting'''<br />
<br />
model callcurve<br />
parameter Real [8] X={1.11e-4,1.41e-4,1.71e-4,2.31e-4,3.04e-4,3.75e-4,7.44e-4,8.64e-4};<br />
parameter Real [8] Y={273700 ,318800 ,381200 ,512800 ,683700 ,838000 ,1663100,1986400};<br />
Real [3] Coe;<br />
algorithm<br />
Coe:=Curve_Fitting(X,Y);<br />
end callcurve;<br />
<br />
Function<br />
<br />
function Curve_Fitting<br />
input Real X[:];<br />
input Real Y[size(X,1)];<br />
input Integer order=2;<br />
output Real Coe[order+1];<br />
protected<br />
Real Z[size(X,1),order+1];<br />
Real ZTr[order+1,size(X,1)];<br />
Real A[order+1,order+1];<br />
Real B[order+1];<br />
algorithm<br />
for i in 1:size(X,1) loop<br />
for j in 1:(order+1) loop<br />
Z[i,j]:=X[i]^(order+1-j);<br />
end for;<br />
end for;<br />
ZTr:=transpose(Z);<br />
A:=ZTr*Z;<br />
B:=ZTr*Y;<br />
Coe:=Modelica.Math.Matrices.solve(A,B); //Coe:=fill(2,size(Coe,1));<br />
<br />
<br />
<br />
'''Program untuk optimasi'''<br />
<br />
model Opt_Gold<br />
parameter Real[3] y={-834.974,0.356007,2.39937e-5};<br />
parameter Real xlo=111e-6;<br />
parameter Real xhi=3.75e-4; <br />
parameter Integer N=10; // maximum iteration<br />
parameter Real es=0.0001; // maximum error<br />
Real f1[N], f2[N], x1[N], x2[N], ea[N];<br />
Real xopt, fx;<br />
protected<br />
Real d, xl, xu, xint, R=(5^(1/2)-1)/2;<br />
algorithm<br />
xl := xlo; <br />
xu := xhi; <br />
for i in 1:N loop<br />
d:= R*(xu-xl);<br />
x1[i]:=xl+d;<br />
x2[i]:=xu-d;<br />
f1[i]:=y[1]*x1[i]^2+y[2]*x1[i]+y[3];<br />
f2[i]:=y[1]*x2[i]^2+y[2]*x2[i]+y[3];<br />
xint:=xu-xl; <br />
if f1[i]>f2[i] then<br />
xl:=x2[i];<br />
xopt:=x1[i];<br />
fx:=f1[i];<br />
else<br />
xu:=x1[i];<br />
xopt:=x2[i];<br />
fx:=f2[i];<br />
end if; <br />
ea[i]:=(1-R)*abs((xint)/xopt);<br />
if ea[i]<es then<br />
break;<br />
end if;<br />
end for; end Opt_Gold;<br />
<br />
Hasil Perhitungan<br />
<br />
----<br />
<br />
'''material locked'''<br />
<br />
[[File:perhitungan material locked.png|600px|thumb|center]]<br />
<br />
dimana hasil dari curve fitting sebagai berikut:<br />
<br />
[[File:hasil curve fitting material locked.png|300px|thumb|center]]<br />
<br />
selanjutnya dilakukan perhitungan mencari safety factor dan optimasi<br />
<br />
[[File:hasil optimasi material locked.png|200px|thumb|center]] <br />
<br />
<br />
[[File:hasil grafik material locked.png|500px|thumb|center]]<br />
<br />
<br />
<br />
Dapat disimpulkan bahwa area optimum siku untuk rangka sederhana pada soal dengan menggunakan material SS 201 adalah 50x50x4 mm<br />
<br />
<br />
<br />
'''Area Locked'''<br />
<br />
[[File:perhitungan area locked.png|600px|thumb|center]]<br />
<br />
<br />
dimana hasil curve fitting sebagai berikut:<br />
<br />
[[File:hasil curve fitting area locked.png|300px|thumb|center]]<br />
<br />
<br />
selanjutnya dilakukan perhitungan mencari safety factor dan optimasi<br />
<br />
[[File:hasil optimasi area locked.png|200px|thumb|center]] <br />
<br />
<br />
[[File:hasil grafik area locked.png|500px|thumb|center]]<br />
<br />
<br />
<br />
Dapat disimpulkan bahwa area optimum siku untuk rangka sederhana pada soal dengan menggunakan dimensi 0.000175 m^2 adalah SS 316</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=51058Metnum03-Iqbal Reza Alfikri2021-01-03T16:09:35Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah<br />
<br />
== Tugas BEsar ==<br />
<br />
Optimasi pemilihan material dan luas penampang truss<br />
<br />
[[File:Tugas Besar Metnum Geometri Jos.jpg]]<br />
<br />
Asumsi : <br />
<br />
1. Variasi Stiffness terikat dengan variabel area. Memvariasikan Elastisitas tergolong sulit karena setiap material memiliki range yang tidak teratur dan dalam satu material yang sejenis (struktur biaya tetap) tidak terjadi perubahan nilai elastisitas yang berbanding lurus dengan perubahan biaya.<br />
<br />
2. Beban akan terdistribusi hanya pada point penghubung (karena bersifat truss)<br />
<br />
3. Safety factor bernilai 2.<br />
<br />
4. Batas displacement 0,001 m sebelum buckling(pada kolom paling atas)</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=50179Metnum03-Iqbal Reza Alfikri2020-12-21T06:29:06Z<p>Iqbalrezaalfikri: /* Pertemuan 6 */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh<br />
<br />
optimasi harga material yang paling murah</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=50174Metnum03-Iqbal Reza Alfikri2020-12-21T06:15:43Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 6 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ. <br />
<br />
tujuan untuk meminimalkan biaya<br />
<br />
constrain harus cukup tangguh</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=50167Metnum03-Iqbal Reza Alfikri2020-12-21T06:10:59Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]<br />
<br />
<br />
== Pertemuan 5 ==<br />
<br />
truss setiap nodal hanya punya 3 derajat kebebasan, variabelnya adalah displacement XYZ.</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Metnum03-Iqbal_Reza_Alfikri&diff=50080Metnum03-Iqbal Reza Alfikri2020-12-20T21:00:14Z<p>Iqbalrezaalfikri: /* Pertemuan 5 */</p>
<hr />
<div>Nama : Iqbal Reza Alfikri<br />
<br />
NPM : 1706104243<br />
<br />
<br />
== Pertemuan 1 ==<br />
Pada pertemuan 1 Pak Dai menjelaskan tentang 4 poin indikator penilaian yaitu <br />
<br />
1. Paham konsep<br />
<br />
2. Dapat menerapkan konsep untuk memecahkan persamaan<br />
<br />
3. Progress<br />
<br />
4. Penilaian diri sendiri<br />
<br />
<br />
== Tugas Pertemuan 1 ==<br />
<br />
Hal yang sudah dipelajari sebelum UTS yaitu <br />
<br />
1. Deret Mclaurin<br />
<br />
2. Open method dan bracketing method<br />
<br />
3. Regresi Linear<br />
<br />
4. Turunan Numerik<br />
<br />
Pada tugas 1 juga ditugaskan untuk membuat video tentang openmodelica <br />
<br />
Untuk tugas 1 ini saya menggunakan referensi video ini untuk mensimulasikan ketinggian air pada gelas <br />
<br />
https://www.youtube.com/watch?v=OsWNgD43Ib8&t=630s<br />
<br />
Dan ini adalah Tugas saya<br />
<br />
https://youtu.be/du8zcRfDARQ<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Pada pertemuan 2, diberikan latihan untuk mencari rata-rata menggunakan looping. <br />
<br />
pembelajaran pertemuan 2 tentang class dan function. pada class kita menulis coding untuk di eksekusi kemudian pada fuction adalah tempat dimana memberi perintah dalam bentuk terstruktur seperti proses perhitungan matematik dilakukan di function. function nantinya dapat dipanggil dalam class dengan input yang ditentukan pada class.<br />
<br />
Metode looping juga digunakan untuk melakukan operasi eleminasi Gauss-Jordan<br />
<br />
== Tugas Pertemuan 2 ==<br />
<br />
Melalui Openmodelica rupanya tidak diperlukan metode looping untuk melakukan eleminasi Gauss-Jordan. Karena didalam Openmodelica sendiri sudah tersedia fungsi <br />
<br />
'''Modelica.Math.Matrices.solve'''<br />
<br />
yang merupakan fungsi untuk melakukan eleminasi Gauss-Jordan. Sumber laman : https://build.openmodelica.org/Documentation/Modelica.Math.Matrices.solve.html<br />
<br />
berikut ini adalah contoh penggunaannya<br />
<br />
[[File:Modelicaiqbal1.PNG]]<br />
<br />
hasilnya didapatkan x sebesar <br />
<br />
[[File:Hasilmodelica.PNG]]<br />
<br />
== Pertemuan 3 ==<br />
<br />
Dalam pertemuan 3 Pak Dai memberikan materi tentang langkah-langkah penyelesaian masalah dalam metode numerik yaitu <br />
<br />
Masalah teknik -> Analisis masalah -> Model matematis -> Model numerik -> komputer -> solusi<br />
<br />
Kemudian untuk tugas Pak Dai memberikan instruksi untuk membuktikan permasalahan yang ada pada buku yaitu persoalan 12.11<br />
<br />
== Tugas Pertemuan 3==<br />
<br />
'''Menyelesaikan soal''' <br />
<br />
[[File:Tugas31.PNG]]<br />
<br />
1. Memberikan penamaan agar mudah dalam pengerjaan<br />
<br />
[[File:Tugas32.PNG]]<br />
<br />
2. Menghitung k untuk tiap elemen<br />
<br />
[[File:Tugas33.PNG]]<br />
<br />
3. Membuat matriks untuk setiap elemen dengan memasukkan theta kedalam persamaan<br />
<br />
[[File:Tugas34.PNG]]<br />
<br />
4. Membuat matriks global dari setiap elemen dengan memasukkan matrix dari hasil nomor 3.<br />
<br />
[[File:Tugas35.PNG]]<br />
<br />
5. Menjumlah semua matrix global dari nomor 4 menjadi matrix global total<br />
<br />
[[File:Tugas36.PNG]]<br />
<br />
6. Menyelesaikan persamaan<br />
<br />
[[File:Tugas37.PNG]]<br />
<br />
7. Hasil<br />
<br />
[[File:Tugas38.PNG]]<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan pertama)'''<br />
<br />
Untuk percobaan pertama saya mencoba untuk membuat fungsi yang saya beri nama fungsik untuk membuat matriks pada nomor 3 diatas secara otomatis <br />
<br />
[[File:Tugas39.PNG]]<br />
<br />
lalu kemudian saya panggil fungsi tersebut kedalam class yang sudah saya buat. <br />
<br />
[[File:Tugas310.PNG]]<br />
<br />
[[File:Tugas311.PNG]]<br />
<br />
Dalam code ini saya awalnya berharap bahwa saya dapat memasukkan nilai nilai yang berasal dari matriks theta untuk membentuk matriks G[10,10] yang nantinya akan digunakan ke command <br />
<br />
U := Modelica.Math.Matrices.solve(G,b); <br />
<br />
kemudian dari command tersebut akan ditemukan hasil matriks U yaitu displacement pada setiap point.<br />
<br />
namun setelah saya run terdapat error seperti ini<br />
<br />
[[File:Tugas312.PNG]]<br />
<br />
Error ini terjadi karena matriks k global total belum disederhanakan dan belum diterapkan boundary condition<br />
<br />
'''Penyelesaian menggunakan Openmodelica (percobaan kedua)'''<br />
<br />
untuk penyelesaian yang kedua saya hanya memasukkan matrix global yang sudah dijumlahkan kedalam code dibawah ini<br />
<br />
[[File:Tugas313.PNG]]<br />
<br />
lalu hasilnya adalah seperti ini <br />
<br />
[[File:Tugas314.PNG]]<br />
<br />
perbedaan percobaan pertama dan kedua adalah di percobaan kedua pembuatan matriks dilakukan secara manual dimana percobaan pertama matriks akan dibuatkan secara otomatis.<br />
<br />
berikut ini saya sertakan file OME nya.<br />
<br />
file function : https://drive.google.com/file/d/1r6ilGSlWuVNzMAPzV1cYiRzwbBkJP2z_/view?usp=sharing<br />
<br />
file class percobaan 1 : https://drive.google.com/file/d/1sGoXsNejOVhWAzn1xJtod0iiRMIv0T4d/view?usp=sharing<br />
<br />
file class percobaan 2 : https://drive.google.com/file/d/14xWGhnMeWLZJa-P5XOtDtMD5cPt4dKhY/view?usp=sharing<br />
<br />
<br />
== Pertemuan 4 ==<br />
<br />
Mencoba fungsi Gauss-Jordan menggunakan loop namun masih error, fungsi tidak bisa dipanggil. <br />
<br />
[[File:Pertemuan41.PNG]]<br />
<br />
berikut ini adalah code saya<br />
<br />
[[File:Pertemuan42.PNG]]<br />
<br />
<br />
== '''Quiz''' ==<br />
<br />
<br />
berikut ini adalah flowchart code saya yang sedang dalam proses pembuatan<br />
<br />
[[File:P_20201130_145911_vHDR_On.jpg]]<br />
<br />
dan ini adalah codenya yang masih dalam pengerjaan<br />
<br />
[[File:Pertemuan43.PNG]]<br />
<br />
[[File:Pertemuan44.PNG]]<br />
<br />
dan berikut ini adalah fungsi baru yang saya tambahkan yaitu fungsi untuk menghitung k<br />
<br />
[[File:Pertemuan45.PNG]]<br />
<br />
file function k : https://drive.google.com/file/d/1ejpK3AOfFjUyYHkbSPR-bZ4KSyG24UwV/view?usp=sharing<br />
<br />
<br />
== QUIZ Nomor 4 ==<br />
<br />
[[File:Quiz11.PNG]]<br />
<br />
[[File:Quiz12.PNG]]<br />
<br />
[[File:Quiz13.PNG]]<br />
<br />
[[File:Quiz14.PNG]]<br />
<br />
[[File:Quiz15.PNG]]<br />
<br />
file case nomor 2 : https://drive.google.com/file/d/1IMSU6i-_kH6-0XmpfGw9Ix2KMFK8-29k/view?usp=sharing<br />
<br />
== QUIZ Nomor 8 ==<br />
<br />
pada analisis yang 3d, pada dasarnya langkahnya sama seperti 2d. Namun, persamaan yang digunakan untuk membuat matrix k berbeda dengan 2d. Dan untuk perhitungan panjang pun berbeda dengan 2d. berikut ini adalah fungsi-fungsi yang saya gunakan pada soal nomor 8. <br />
<br />
[[File:FungsiL.PNG]]<br />
<br />
file fungsi L = https://drive.google.com/file/d/1VDG91gAgRIEFUHuFFzqUfndWj-p1sLtb/view?usp=sharing<br />
<br />
<br />
== Tugas 5 ==<br />
<br />
[[File:Soal3.jpeg]]<br />
<br />
Langkah-langkah<br />
<br />
1. Menggunakan class untuk menentukan input dan function yang dipanggil<br />
<br />
[[File:Tugas5a1.PNG]]<br />
<br />
[[File:Tugas5a2.PNG]]<br />
<br />
2. Fungsi K untuk setiap elemen<br />
<br />
[[File:Tugas53.PNG]]<br />
<br />
[[File:Tugas54.PNG]]<br />
<br />
3. Fungsi K Global<br />
<br />
[[File:Tugas55.PNG]]<br />
<br />
4. Fungsi menjumlahkan matriks K global dari setiap elemen<br />
<br />
[[File:Tugas56.PNG]]<br />
<br />
5. Fungsi Boundary Condition<br />
<br />
[[File:Tugas57.PNG]]<br />
<br />
[[File:Tugas58.PNG]]<br />
<br />
6. Fungsi Gauss Jordan untuk displacement<br />
<br />
[[File:Tugas59.PNG]]<br />
<br />
7. Fungsi menghitung gaya reaksi<br />
<br />
[[File:Tugas510.PNG]]<br />
<br />
8. Fungsi mengecek gaya reaksi<br />
<br />
[[File:Tugas511.PNG]]<br />
<br />
9. Hasil Perhitungan<br />
<br />
[[File:Tugas512.PNG]]<br />
<br />
[[File:Tugas513.PNG]]</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas513.PNG&diff=50079File:Tugas513.PNG2020-12-20T20:59:56Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas512.PNG&diff=50078File:Tugas512.PNG2020-12-20T20:59:41Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas511.PNG&diff=50077File:Tugas511.PNG2020-12-20T20:58:26Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas510.PNG&diff=50076File:Tugas510.PNG2020-12-20T20:56:54Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas59.PNG&diff=50075File:Tugas59.PNG2020-12-20T20:53:49Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas58.PNG&diff=50074File:Tugas58.PNG2020-12-20T20:53:32Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas57.PNG&diff=50073File:Tugas57.PNG2020-12-20T20:50:41Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas56.PNG&diff=50072File:Tugas56.PNG2020-12-20T20:48:41Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas55.PNG&diff=50071File:Tugas55.PNG2020-12-20T20:47:47Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas54.PNG&diff=50070File:Tugas54.PNG2020-12-20T20:46:34Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas53.PNG&diff=50069File:Tugas53.PNG2020-12-20T20:46:09Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas5a2.PNG&diff=50068File:Tugas5a2.PNG2020-12-20T20:42:55Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tugas5a1.PNG&diff=50067File:Tugas5a1.PNG2020-12-20T20:42:36Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Valve_-_Iqbal_Reza_Alfikri&diff=49010Valve - Iqbal Reza Alfikri2020-12-10T09:14:21Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Iqbal Reza Alfikri<br />
<br />
1706104243<br />
<br />
Sistem Fluida 03 2020/2021<br />
<br />
<br />
== Tugas 1 Simulasi Stop Valve menggunakan CFDSOF ==<br />
<br />
'''1. Menconvert model menjadi stl''' <br />
<br />
[[File:Close_valvenew.png|600px]]<br />
<br />
'''2. Proses simulasi di CFDSOF'''<br />
<br />
[[File:closevalvecfdsof.PNG|600px]]<br />
<br />
[[File:GrafikCFDSOF.PNG|600px]]<br />
<br />
'''3. Post Processing di paraview'''<br />
<br />
[[File:paraviewpostprocess.PNG|600px]]<br />
<br />
'''4. Didapatkan hasil pressure drop sebagai berikut''' <br />
<br />
[[File:Hasilptotal.PNG|600px]]<br />
<br />
'''5. Grafik pTotal'''<br />
<br />
[[File:GRAFIKPTOTAL.PNG|600px]]<br />
<br />
'''6. Kontur'''<br />
<br />
[[File:Kontur.PNG]]<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Ada 3 metode untuk menganalsisa fluida yaitu :<br />
<br />
1. Eksperimen : Hasil aktual namun memerlukan banyak waktu dan biaya<br />
<br />
2. Teori : Untuk memverifikasi data eksperimen apakah benar atau tidak pada suatu kondisi ideal<br />
<br />
3. Numerik atau CFD : Digunakan ketika perhitungan atau model sangat kompleks dan tidak dapat diselesaikan dengan metode teoritis ataupun eksperimen.<br />
<br />
tidak ada metode yang superior dan semua metode saling melengkapi satu sama lain.<br />
<br />
Perbedaan turbin impuls dan turbin reaksi yaitu :<br />
<br />
1. Turbin Impuls : memanfaatkan head yang tinggi, air bertekanan tinggi akan diarahkan ke ujung blade yang berbentuk seperti mangkuk. Biasa digunakan di tempat yang memiliki perbedaan ketinggian yang cukup besar.<br />
<br />
[[File:What_is_Pelton_Turbine.jpg|600px]]<br />
<br />
2. Turbin Reaksi : memanfaatkan volume yang besar, air dengan volume besar akan memutar turbin dengan mendorong blade. Biasa digunakan di tempat yang memiliki aliran dengan volume besar namun tidak ada perbedaan ketinggian yang berarti.<br />
<br />
[[File:Kaplan.jpg]]<br />
<br />
<br />
== Tugas 2 ==<br />
<br />
Berikut ini adalah contoh yang saya telah pelajari dalam openmodelica. Yaitu melihat perbedaan yang terjadi pada aliran pada 2 jenis pipa yang berbeda. <br />
<br />
[[File:Tugas2iqbal.PNG]]<br />
<br />
2 Jenis pipa yang digunakan disini yaitu pipa biasa/circular dan pipa annulus/ring. <br />
<br />
Pada diagram diatas, pipa atas yaitu pipa circular dengan diameter 10 mm, dan pipa bawah yaitu pipa annulus dengan diameter dalam 5 mm dan diameter luar 15mm. Kedua pipa memiliki panjang yang sama yaitu 100m<br />
<br />
Kedua pipa memiliki ujung terbuka <br />
<br />
[[File:PerbedaanV2.PNG]]<br />
<br />
[[File:PerbedaanP.PNG]]<br />
<br />
Setelah disimulasikan, terlihat adanya perbedaan pada kecepatan dan tekanan pada kedua pipa dikarenakan adanya perbedaan ''cross section''. Circular pipe memiliki V yang lebih tinggi namun p yang lebih rendah dikarenakan circular pipe memiliki luasan yang lebih kecil apabila dibandingkan dengan annulus pipe.<br />
<br />
Berikut ini adalah link file case nya https://drive.google.com/file/d/1vOL3OEPoHUxhrt5UrJDrfeH-6VLJzy-O/view?usp=sharing<br />
<br />
<br />
== Pertemuan 3 ==<br />
<br />
Pemodelan sistem fluida dengan OpenModelica<br />
<br />
pemodelan adalah sebuah usaha untuk mempelajari sebuah sistem aktual melalui sistem yang disimplifikasi model adalah sebuah sistem yang disederhanakan yang digunakan untuk merepresentasikan kondisi awalnya. karena kita akan sulit mempelajari kondisi aktual. karena kondisi aktual cukup kompleks, banyak sekali variablenya. kemudian untuk skalar yang sangat besar kan kesulitan juga. plta pltu merupakan sistem fluida besar, akan sangat sulit melakukan pengukuran di equipment yang sangat besar. secara geometri disederhanakan, variabel variable disimplifikasi dng tidak mengurangi keakuratan. pemodelan sebuah usaha untuk membuat replika. pemodelan tidak akan pernah 100% sama dengan kondisi aktualnya. model bisa jadi sebuah model fisik yaitu alat, namun yang banyak dilakukan oleh engineer biasanya melkukan pemodelan secara virtual/komputasi, memerlukan ilmu dasar/basic pengetahuan untuk ilmu fluida. <br />
<br />
law driven model = sebuah model berdasarkan hukum hukum fisika<br />
<br />
(Data driven model) pemodelan menggunakan AI <br />
<br />
umumnya aplikasi pemodelan gabungan dari kedua itu. <br />
<br />
penjelasan openmodelica. example fluid empty tank dan example heat transfer two tanks dan heat transfer simple cooling<br />
<br />
<br />
== Tugas 3 ==<br />
<br />
'''Heating System Example'''<br />
<br />
[[File:Heatingsystemexample.PNG]]<br />
<br />
'''1. Deskripsi dan Uraian fisik'''<br />
<br />
Ini merupakan gambaran dari system pemanas closed flow, artinya aliran akan selalu mengalir dalam system tanpa adanya tambahan fluida dari luar system. Fluida yang digunakan dalam case ini adalah air. Air dipompa oleh pump yang tugasnya mengatur tekanan, lalu melewati mass flow meter untuk mengecek laju massa air. Setelah itu air akan masuk kedalam heater yang terhubung dengan burner, burner yang akan mengatur seberapa banyak panas yang masuk ke sistem sehingga temperatur dapat diatur. Kemudiann air mengalir melalui sensor temperatur dan menuju valve yang mana valve ini yang akan mengatur laju massa air. Air kemudian mengalir kedalam radiator yang berfungsi untuk melepaskan panas ke lingkungan sekitar. Temperatur diukur kembali. Kemudian air mengalir kembali ke tank, lalu kembali ke pompa. Informasi dari 2 sensor temperatur yang berada sesudah heater dan sebelum tank, dan 1 sensor laju massa air, akan digunakan sebagai feedback untuk mengatur panas yang akan diberikan oleh burner sehingga temperatur air dapat stabil pada set-point yang diinginkan.<br />
<br />
'''Tangki'''<br />
<br />
max ketinggian = 2m<br />
<br />
luas = 0.01m2<br />
<br />
ketinggian awal = 1m<br />
<br />
'''Pompa'''<br />
<br />
p inlet = 110000 Pa<br />
<br />
p outlet = 130000 Pa<br />
<br />
N = 1500 rpm<br />
<br />
'''Heater'''<br />
<br />
panjang pipa = 2m<br />
<br />
diameter pipa = 0.01m<br />
<br />
Heat flow rate = 1600 W<br />
<br />
'''Pipa'''<br />
<br />
panjang pipa = 10m<br />
<br />
diameter pipa = 0.01m<br />
<br />
'''Valve'''<br />
<br />
Pressure drop = 10000 Pa<br />
<br />
Mass flow rate = 0.01 kg/s<br />
<br />
'''Radiator'''<br />
<br />
Konduktivitas thermal = 80 W/K<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> double click pada Heating System<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa dan interpretasi hasil pemodelan'''<br />
<br />
Hasil simulasi error maka tidak dapat dianalisa. Untuk cara kerja dari system sudah dijelaskan pada poin 1. terdapat pompa yang berguna untuk mengatur tekanan, valve untuk menngatur mass flow, heater untuk mengatur temperatur, radiator untuk melepaskan panas dari system ke lingkungan sekitar, 2 sensor temperatur dan 1 sensor flow sebagai feedback untuk mengatur panas yang diberikan oleh heater.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
- konservasi massa<br />
<br />
- konservasi energi<br />
<br />
- perpindahan panas<br />
<br />
'''5. Hasil simulasi'''<br />
<br />
[[File:Failedheating.PNG]]<br />
<br />
<br />
'''Three Tanks Example'''<br />
<br />
[[File:3_tanks.PNG]]<br />
<br />
'''1. Deskripsi dan uraian fisik'''<br />
<br />
Pada simulasi ini, terdapat 2 tank yang berada di ketinggian yang sama dan 1 tank berada di ketinggian yang lebih rendah, ketiga tank memiliki ketinggian air yang berbeda-beda. Ketika simulasi dijalankan, 3 tank tersebut akan memiliki ketinggian yang sama karena sifat air yang akan selalu memiliki tinggi sama dengan catatan tank dalam keadaan open/terbuka dgn tekanan atmosphere.<br />
<br />
'''Tank 1'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 8m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 2'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 3'''<br />
<br />
Posisi = -1m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> Tanks -> double click pada Three Tanks<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa hasil dan interpretasi hasil pemodelan'''<br />
<br />
Setelah disimulasikan, air yang berada di tank 1, tank 2 dan tank 3 akan memiliki ketinggian yang sama. Karena posisi tank 3 lebih rendah maka tank 3 memiliki level air lebih tinggi di dalam tank dibandingkan tank 1 dan tank 2. Posisi tank 1 dan 2 berada 2m diatas titik 0 sedangkan posisi tank 3 berada di -1 dibawah titik 0, maka selisih dari tank 1/tank 2 dengan tank 3 yaitu sebesar 3m.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
1. Tekanan hidrostatis<br />
<br />
'''5. Hasil Simulasi'''<br />
<br />
[[File:Hasil3tanks.PNG]]<br />
<br />
Seperti pada dijelaskan di poin 3. Level air pada tank 1 dan tank 2 akan sama yaitu 3,66m karena kedua tank berada pada ketinggian yang sama. Karena posisi tank 3 berada -1m dibawah titik 0 maka akan ada selisih 3m dalam level air dan dapat dilihat pada hasil simulasi diatas tank 3 memiliki level air 6,66m. Hal ini dikarenakan tekanan pada dasar (dalam kasus ini yang berada paling bawah adalah pipanya) harus sama antara 3 tank yang terhubung. Waktu yang dibutuhkan untuk ketiga tank memiliki ketinggian yang sama adalah sekitar 140 detik.<br />
<br />
== TUGAS 4 ==<br />
<br />
[[File:Tugas4siflu.PNG]]<br />
<br />
'''1. Sistem diatas merupakan diagram dari pembangkit listrik gabungan/Combined power plant dari turbin gas dan turbin uap.''' <br />
<br />
a. Turbin gas<br />
<br />
[[File:Brayton.PNG]]<br />
<br />
turbin gas pada umumnya menggunakan siklus brayton yaitu dengan mengkompresi udara dgn proses isentropik lalu menambahkan bahan bakar kemudian melakukan ekspansi isentropik.<br />
<br />
b. Turbin Uap <br />
<br />
[[File:Rankine_cycle_Ts.png]]<br />
<br />
Turbin uap yang digunakan pada sistem yaitu turbin uap multistage dengan menggunakan siklus rankine. <br />
<br />
'''2. Identifikasi komponen utama pada sistem'''<br />
<br />
a. Gas Turbine<br />
<br />
[[File:Gas_turbine.PNG]]<br />
<br />
[[File:Gas_turbine_spec.PNG]]<br />
<br />
Terdiri dari compressor, ruang bakar, dan turbin. Berfungsi sebagai penggerak shaft yang tersambung ke generator dan udara panas buangan dari gas turbine akan digunakan untuk memanaskan uap pada turbin uap atau dalam case ini disebut Heat Recovery Steam Generator. Shaft yang digunakan pada sistem combined power plant ini hanya 1 namun memiliki banyak turbin, semua turbin terhubung ke 1 shaft yang diujungnya terdapat generator untuk menghasilkan listrik.<br />
<br />
b. Steam turbine <br />
<br />
[[File:Steam_turbine.PNG]]<br />
<br />
[[File:Turbine_st_1.PNG]]<br />
<br />
[[File:Turbine_st_2.PNG]]<br />
<br />
[[File:Turbine_st_3.PNG]]<br />
<br />
Steam turbine disini menggunakan multi stage turbine yang terdiri dari HP turbine, MP turbine, and LP turbine. Uap panas yang melewati turbin HP akan dimasukkan kembali kedalam boiler yang dipanaskan oleh udara buang panas dari gas turbine kemudian masuk kembali ke turbin stage selanjutnya yaitu turbin MP, dan proses yang sama terjadi pada uap yang akan masuk kedalam turbin LP. <br />
<br />
c. Heat exchanger<br />
<br />
[[File:Boilers.PNG]]<br />
<br />
[[File:Boiler1.PNG]]<br />
<br />
Heat exchanger pada gambar ini memiliki jumlah tube yang berbeda-beda. fungsinya dalah untuk menangkap panas dari gas buang dan mengubah fasa air menjadi uap.<br />
<br />
d. Generator<br />
<br />
[[File:Generatorasda.PNG]]<br />
<br />
[[File:Generator_spec.PNG]]<br />
<br />
Generator, berfungsi sebagai penghasil listrik. Shaft generator terhubung ke 4 turbin yaitu turbin gas, dan 3 turbin uap.<br />
<br />
e. Condenser<br />
<br />
[[File:Condenser.PNG]]<br />
<br />
[[File:Condenser_spec.PNG]]<br />
<br />
Condenser, berfungsi untuk merubah fasa uap menjadi liquid.<br />
<br />
d. Pump<br />
<br />
[[File:Pump.PNG]]<br />
<br />
[[File:Pump_spec.PNG]]<br />
<br />
Pump berfungsi untuk memberikan tekanan pada air yang keluar dari condenser.<br />
<br />
e. Boiler<br />
<br />
[[File:Tankboiler.PNG]]<br />
<br />
[[File:Tankboiler_spec.PNG]]<br />
<br />
Boiler boiler disini berfungsi untuk mengubah fasa cair menjadi uap dengan menggunakan panas yang ditangkap oleh heat exchanger<br />
<br />
'''3. Medium yang digunakan disini adalah udara, air, dan uap. '''<br />
<br />
Udara panas dari buangan turbin uap, akan ditangkap oleh heat exchanger sehingga Q dapat dihitung dengan menggunakan persamaan perpindahan panas konveksi. <br />
<br />
'''4. Flow Line''' <br />
<br />
a. jalur merah menandakan fluida dalam bentuk uap<br />
<br />
b. jalur biru menandakan fluida dalam bentuk cair<br />
<br />
c. jalur hitam menandakan fluida dalam bentuk fraksi uap.<br />
<br />
d. ada 2 jalur hitam, jalur hitam yang lainnya menunjukkan bahwa kedua equipment terhubung atau adanya transfer energi. <br />
<br />
e. jalur hitam tebal yang keluar dari turbin gas adalah exhaust dari turbin gas.<br />
<br />
<br />
== Pertemuan 5 ==</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Valve_-_Iqbal_Reza_Alfikri&diff=48944Valve - Iqbal Reza Alfikri2020-12-10T07:44:24Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Iqbal Reza Alfikri<br />
<br />
1706104243<br />
<br />
Sistem Fluida 03 2020/2021<br />
<br />
<br />
== Tugas 1 Simulasi Stop Valve menggunakan CFDSOF ==<br />
<br />
'''1. Menconvert model menjadi stl''' <br />
<br />
[[File:Close_valvenew.png|600px]]<br />
<br />
'''2. Proses simulasi di CFDSOF'''<br />
<br />
[[File:closevalvecfdsof.PNG|600px]]<br />
<br />
[[File:GrafikCFDSOF.PNG|600px]]<br />
<br />
'''3. Post Processing di paraview'''<br />
<br />
[[File:paraviewpostprocess.PNG|600px]]<br />
<br />
'''4. Didapatkan hasil pressure drop sebagai berikut''' <br />
<br />
[[File:Hasilptotal.PNG|600px]]<br />
<br />
'''5. Grafik pTotal'''<br />
<br />
[[File:GRAFIKPTOTAL.PNG|600px]]<br />
<br />
'''6. Kontur'''<br />
<br />
[[File:Kontur.PNG]]<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Ada 3 metode untuk menganalsisa fluida yaitu :<br />
<br />
1. Eksperimen : Hasil aktual namun memerlukan banyak waktu dan biaya<br />
<br />
2. Teori : Untuk memverifikasi data eksperimen apakah benar atau tidak pada suatu kondisi ideal<br />
<br />
3. Numerik atau CFD : Digunakan ketika perhitungan atau model sangat kompleks dan tidak dapat diselesaikan dengan metode teoritis ataupun eksperimen.<br />
<br />
tidak ada metode yang superior dan semua metode saling melengkapi satu sama lain.<br />
<br />
Perbedaan turbin impuls dan turbin reaksi yaitu :<br />
<br />
1. Turbin Impuls : memanfaatkan head yang tinggi, air bertekanan tinggi akan diarahkan ke ujung blade yang berbentuk seperti mangkuk. Biasa digunakan di tempat yang memiliki perbedaan ketinggian yang cukup besar.<br />
<br />
[[File:What_is_Pelton_Turbine.jpg|600px]]<br />
<br />
2. Turbin Reaksi : memanfaatkan volume yang besar, air dengan volume besar akan memutar turbin dengan mendorong blade. Biasa digunakan di tempat yang memiliki aliran dengan volume besar namun tidak ada perbedaan ketinggian yang berarti.<br />
<br />
[[File:Kaplan.jpg]]<br />
<br />
<br />
== Tugas 2 ==<br />
<br />
Berikut ini adalah contoh yang saya telah pelajari dalam openmodelica. Yaitu melihat perbedaan yang terjadi pada aliran pada 2 jenis pipa yang berbeda. <br />
<br />
[[File:Tugas2iqbal.PNG]]<br />
<br />
2 Jenis pipa yang digunakan disini yaitu pipa biasa/circular dan pipa annulus/ring. <br />
<br />
Pada diagram diatas, pipa atas yaitu pipa circular dengan diameter 10 mm, dan pipa bawah yaitu pipa annulus dengan diameter dalam 5 mm dan diameter luar 15mm. Kedua pipa memiliki panjang yang sama yaitu 100m<br />
<br />
Kedua pipa memiliki ujung terbuka <br />
<br />
[[File:PerbedaanV2.PNG]]<br />
<br />
[[File:PerbedaanP.PNG]]<br />
<br />
Setelah disimulasikan, terlihat adanya perbedaan pada kecepatan dan tekanan pada kedua pipa dikarenakan adanya perbedaan ''cross section''. Circular pipe memiliki V yang lebih tinggi namun p yang lebih rendah dikarenakan circular pipe memiliki luasan yang lebih kecil apabila dibandingkan dengan annulus pipe.<br />
<br />
Berikut ini adalah link file case nya https://drive.google.com/file/d/1vOL3OEPoHUxhrt5UrJDrfeH-6VLJzy-O/view?usp=sharing<br />
<br />
<br />
== Pertemuan 3 ==<br />
<br />
Pemodelan sistem fluida dengan OpenModelica<br />
<br />
pemodelan adalah sebuah usaha untuk mempelajari sebuah sistem aktual melalui sistem yang disimplifikasi model adalah sebuah sistem yang disederhanakan yang digunakan untuk merepresentasikan kondisi awalnya. karena kita akan sulit mempelajari kondisi aktual. karena kondisi aktual cukup kompleks, banyak sekali variablenya. kemudian untuk skalar yang sangat besar kan kesulitan juga. plta pltu merupakan sistem fluida besar, akan sangat sulit melakukan pengukuran di equipment yang sangat besar. secara geometri disederhanakan, variabel variable disimplifikasi dng tidak mengurangi keakuratan. pemodelan sebuah usaha untuk membuat replika. pemodelan tidak akan pernah 100% sama dengan kondisi aktualnya. model bisa jadi sebuah model fisik yaitu alat, namun yang banyak dilakukan oleh engineer biasanya melkukan pemodelan secara virtual/komputasi, memerlukan ilmu dasar/basic pengetahuan untuk ilmu fluida. <br />
<br />
law driven model = sebuah model berdasarkan hukum hukum fisika<br />
<br />
(Data driven model) pemodelan menggunakan AI <br />
<br />
umumnya aplikasi pemodelan gabungan dari kedua itu. <br />
<br />
penjelasan openmodelica. example fluid empty tank dan example heat transfer two tanks dan heat transfer simple cooling<br />
<br />
<br />
== Tugas 3 ==<br />
<br />
'''Heating System Example'''<br />
<br />
[[File:Heatingsystemexample.PNG]]<br />
<br />
'''1. Deskripsi dan Uraian fisik'''<br />
<br />
Ini merupakan gambaran dari system pemanas closed flow, artinya aliran akan selalu mengalir dalam system tanpa adanya tambahan fluida dari luar system. Fluida yang digunakan dalam case ini adalah air. Air dipompa oleh pump yang tugasnya mengatur tekanan, lalu melewati mass flow meter untuk mengecek laju massa air. Setelah itu air akan masuk kedalam heater yang terhubung dengan burner, burner yang akan mengatur seberapa banyak panas yang masuk ke sistem sehingga temperatur dapat diatur. Kemudiann air mengalir melalui sensor temperatur dan menuju valve yang mana valve ini yang akan mengatur laju massa air. Air kemudian mengalir kedalam radiator yang berfungsi untuk melepaskan panas ke lingkungan sekitar. Temperatur diukur kembali. Kemudian air mengalir kembali ke tank, lalu kembali ke pompa. Informasi dari 2 sensor temperatur yang berada sesudah heater dan sebelum tank, dan 1 sensor laju massa air, akan digunakan sebagai feedback untuk mengatur panas yang akan diberikan oleh burner sehingga temperatur air dapat stabil pada set-point yang diinginkan.<br />
<br />
'''Tangki'''<br />
<br />
max ketinggian = 2m<br />
<br />
luas = 0.01m2<br />
<br />
ketinggian awal = 1m<br />
<br />
'''Pompa'''<br />
<br />
p inlet = 110000 Pa<br />
<br />
p outlet = 130000 Pa<br />
<br />
N = 1500 rpm<br />
<br />
'''Heater'''<br />
<br />
panjang pipa = 2m<br />
<br />
diameter pipa = 0.01m<br />
<br />
Heat flow rate = 1600 W<br />
<br />
'''Pipa'''<br />
<br />
panjang pipa = 10m<br />
<br />
diameter pipa = 0.01m<br />
<br />
'''Valve'''<br />
<br />
Pressure drop = 10000 Pa<br />
<br />
Mass flow rate = 0.01 kg/s<br />
<br />
'''Radiator'''<br />
<br />
Konduktivitas thermal = 80 W/K<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> double click pada Heating System<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa dan interpretasi hasil pemodelan'''<br />
<br />
Hasil simulasi error maka tidak dapat dianalisa. Untuk cara kerja dari system sudah dijelaskan pada poin 1. terdapat pompa yang berguna untuk mengatur tekanan, valve untuk menngatur mass flow, heater untuk mengatur temperatur, radiator untuk melepaskan panas dari system ke lingkungan sekitar, 2 sensor temperatur dan 1 sensor flow sebagai feedback untuk mengatur panas yang diberikan oleh heater.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
- konservasi massa<br />
<br />
- konservasi energi<br />
<br />
- perpindahan panas<br />
<br />
'''5. Hasil simulasi'''<br />
<br />
[[File:Failedheating.PNG]]<br />
<br />
<br />
'''Three Tanks Example'''<br />
<br />
[[File:3_tanks.PNG]]<br />
<br />
'''1. Deskripsi dan uraian fisik'''<br />
<br />
Pada simulasi ini, terdapat 2 tank yang berada di ketinggian yang sama dan 1 tank berada di ketinggian yang lebih rendah, ketiga tank memiliki ketinggian air yang berbeda-beda. Ketika simulasi dijalankan, 3 tank tersebut akan memiliki ketinggian yang sama karena sifat air yang akan selalu memiliki tinggi sama dengan catatan tank dalam keadaan open/terbuka dgn tekanan atmosphere.<br />
<br />
'''Tank 1'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 8m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 2'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 3'''<br />
<br />
Posisi = -1m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> Tanks -> double click pada Three Tanks<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa hasil dan interpretasi hasil pemodelan'''<br />
<br />
Setelah disimulasikan, air yang berada di tank 1, tank 2 dan tank 3 akan memiliki ketinggian yang sama. Karena posisi tank 3 lebih rendah maka tank 3 memiliki level air lebih tinggi di dalam tank dibandingkan tank 1 dan tank 2. Posisi tank 1 dan 2 berada 2m diatas titik 0 sedangkan posisi tank 3 berada di -1 dibawah titik 0, maka selisih dari tank 1/tank 2 dengan tank 3 yaitu sebesar 3m.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
1. Tekanan hidrostatis<br />
<br />
'''5. Hasil Simulasi'''<br />
<br />
[[File:Hasil3tanks.PNG]]<br />
<br />
Seperti pada dijelaskan di poin 3. Level air pada tank 1 dan tank 2 akan sama yaitu 3,66m karena kedua tank berada pada ketinggian yang sama. Karena posisi tank 3 berada -1m dibawah titik 0 maka akan ada selisih 3m dalam level air dan dapat dilihat pada hasil simulasi diatas tank 3 memiliki level air 6,66m. Hal ini dikarenakan tekanan pada dasar (dalam kasus ini yang berada paling bawah adalah pipanya) harus sama antara 3 tank yang terhubung. Waktu yang dibutuhkan untuk ketiga tank memiliki ketinggian yang sama adalah sekitar 140 detik.<br />
<br />
== TUGAS 4 ==<br />
<br />
[[File:Tugas4siflu.PNG]]<br />
<br />
'''1. Sistem diatas merupakan diagram dari pembangkit listrik gabungan/Combined power plant dari turbin gas dan turbin uap.''' <br />
<br />
a. Turbin gas<br />
<br />
[[File:Brayton.PNG]]<br />
<br />
turbin gas pada umumnya menggunakan siklus brayton yaitu dengan mengkompresi udara dgn proses isentropik lalu menambahkan bahan bakar kemudian melakukan ekspansi isentropik.<br />
<br />
b. Turbin Uap <br />
<br />
[[File:Rankine_cycle_Ts.png]]<br />
<br />
Turbin uap yang digunakan pada sistem yaitu turbin uap multistage dengan menggunakan siklus rankine. <br />
<br />
'''2. Identifikasi komponen utama pada sistem'''<br />
<br />
a. Gas Turbine<br />
<br />
[[File:Gas_turbine.PNG]]<br />
<br />
[[File:Gas_turbine_spec.PNG]]<br />
<br />
Terdiri dari compressor, ruang bakar, dan turbin. Berfungsi sebagai penggerak shaft yang tersambung ke generator dan udara panas buangan dari gas turbine akan digunakan untuk memanaskan uap pada turbin uap atau dalam case ini disebut Heat Recovery Steam Generator. Shaft yang digunakan pada sistem combined power plant ini hanya 1 namun memiliki banyak turbin, semua turbin terhubung ke 1 shaft yang diujungnya terdapat generator untuk menghasilkan listrik.<br />
<br />
b. Steam turbine <br />
<br />
[[File:Steam_turbine.PNG]]<br />
<br />
[[File:Turbine_st_1.PNG]]<br />
<br />
[[File:Turbine_st_2.PNG]]<br />
<br />
[[File:Turbine_st_3.PNG]]<br />
<br />
Steam turbine disini menggunakan multi stage turbine yang terdiri dari HP turbine, MP turbine, and LP turbine. Uap panas yang melewati turbin HP akan dimasukkan kembali kedalam boiler yang dipanaskan oleh udara buang panas dari gas turbine kemudian masuk kembali ke turbin stage selanjutnya yaitu turbin MP, dan proses yang sama terjadi pada uap yang akan masuk kedalam turbin LP. <br />
<br />
c. Heat exchanger<br />
<br />
[[File:Boilers.PNG]]<br />
<br />
[[File:Boiler1.PNG]]<br />
<br />
Heat exchanger pada gambar ini memiliki jumlah tube yang berbeda-beda. fungsinya dalah untuk menangkap panas dari gas buang dan mengubah fasa air menjadi uap.<br />
<br />
d. Generator<br />
<br />
[[File:Generatorasda.PNG]]<br />
<br />
[[File:Generator_spec.PNG]]<br />
<br />
Generator, berfungsi sebagai penghasil listrik. Shaft generator terhubung ke 4 turbin yaitu turbin gas, dan 3 turbin uap.<br />
<br />
e. Condenser<br />
<br />
[[File:Condenser.PNG]]<br />
<br />
[[File:Condenser_spec.PNG]]<br />
<br />
Condenser, berfungsi untuk merubah fasa uap menjadi liquid.<br />
<br />
d. Pump<br />
<br />
[[File:Pump.PNG]]<br />
<br />
[[File:Pump_spec.PNG]]<br />
<br />
Pump berfungsi untuk memberikan tekanan pada air yang keluar dari condenser.<br />
<br />
e. Boiler<br />
<br />
[[File:Tankboiler.PNG]]<br />
<br />
[[File:Tankboiler_spec.PNG]]<br />
<br />
Boiler boiler disini berfungsi untuk mengubah fasa cair menjadi uap dengan menggunakan panas yang ditangkap oleh heat exchanger<br />
<br />
'''3. Medium yang digunakan disini adalah udara, air, dan uap. '''<br />
<br />
Udara panas dari buangan turbin uap, akan ditangkap oleh heat exchanger sehingga Q dapat dihitung dengan menggunakan persamaan perpindahan panas konveksi. <br />
<br />
'''4. Flow Line''' <br />
<br />
a. jalur merah menandakan fluida dalam bentuk uap<br />
<br />
b. jalur biru menandakan fluida dalam bentuk cair<br />
<br />
c. jalur hitam menandakan fluida dalam bentuk fraksi uap.<br />
<br />
d. ada 2 jalur hitam, jalur hitam yang lainnya menunjukkan bahwa kedua equipment terhubung atau adanya transfer energi. <br />
<br />
e. jalur hitam tebal yang keluar dari turbin gas adalah exhaust dari turbin gas.</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Maxresdefault.jpg&diff=48919File:Maxresdefault.jpg2020-12-10T07:34:53Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=Valve_-_Iqbal_Reza_Alfikri&diff=48912Valve - Iqbal Reza Alfikri2020-12-10T07:30:22Z<p>Iqbalrezaalfikri: </p>
<hr />
<div>Iqbal Reza Alfikri<br />
<br />
1706104243<br />
<br />
Sistem Fluida 03 2020/2021<br />
<br />
<br />
== Tugas 1 Simulasi Stop Valve menggunakan CFDSOF ==<br />
<br />
'''1. Menconvert model menjadi stl''' <br />
<br />
[[File:Close_valvenew.png|600px]]<br />
<br />
'''2. Proses simulasi di CFDSOF'''<br />
<br />
[[File:closevalvecfdsof.PNG|600px]]<br />
<br />
[[File:GrafikCFDSOF.PNG|600px]]<br />
<br />
'''3. Post Processing di paraview'''<br />
<br />
[[File:paraviewpostprocess.PNG|600px]]<br />
<br />
'''4. Didapatkan hasil pressure drop sebagai berikut''' <br />
<br />
[[File:Hasilptotal.PNG|600px]]<br />
<br />
'''5. Grafik pTotal'''<br />
<br />
[[File:GRAFIKPTOTAL.PNG|600px]]<br />
<br />
'''6. Kontur'''<br />
<br />
[[File:Kontur.PNG]]<br />
<br />
<br />
== Pertemuan 2 ==<br />
<br />
Ada 3 metode untuk menganalsisa fluida yaitu :<br />
<br />
1. Eksperimen : Hasil aktual namun memerlukan banyak waktu dan biaya<br />
<br />
2. Teori : Untuk memverifikasi data eksperimen apakah benar atau tidak pada suatu kondisi ideal<br />
<br />
3. Numerik atau CFD : Digunakan ketika perhitungan atau model sangat kompleks dan tidak dapat diselesaikan dengan metode teoritis ataupun eksperimen.<br />
<br />
tidak ada metode yang superior dan semua metode saling melengkapi satu sama lain.<br />
<br />
Perbedaan turbin impuls dan turbin reaksi yaitu :<br />
<br />
1. Turbin Impuls : memanfaatkan head yang tinggi, air bertekanan tinggi akan diarahkan ke ujung blade yang berbentuk seperti mangkuk. Biasa digunakan di tempat yang memiliki perbedaan ketinggian yang cukup besar.<br />
<br />
[[File:What_is_Pelton_Turbine.jpg|600px]]<br />
<br />
2. Turbin Reaksi : memanfaatkan volume yang besar, air dengan volume besar akan memutar turbin dengan mendorong blade. Biasa digunakan di tempat yang memiliki aliran dengan volume besar namun tidak ada perbedaan ketinggian yang berarti.<br />
<br />
[[File:Kaplan.jpg]]<br />
<br />
<br />
== Tugas 2 ==<br />
<br />
Berikut ini adalah contoh yang saya telah pelajari dalam openmodelica. Yaitu melihat perbedaan yang terjadi pada aliran pada 2 jenis pipa yang berbeda. <br />
<br />
[[File:Tugas2iqbal.PNG]]<br />
<br />
2 Jenis pipa yang digunakan disini yaitu pipa biasa/circular dan pipa annulus/ring. <br />
<br />
Pada diagram diatas, pipa atas yaitu pipa circular dengan diameter 10 mm, dan pipa bawah yaitu pipa annulus dengan diameter dalam 5 mm dan diameter luar 15mm. Kedua pipa memiliki panjang yang sama yaitu 100m<br />
<br />
Kedua pipa memiliki ujung terbuka <br />
<br />
[[File:PerbedaanV2.PNG]]<br />
<br />
[[File:PerbedaanP.PNG]]<br />
<br />
Setelah disimulasikan, terlihat adanya perbedaan pada kecepatan dan tekanan pada kedua pipa dikarenakan adanya perbedaan ''cross section''. Circular pipe memiliki V yang lebih tinggi namun p yang lebih rendah dikarenakan circular pipe memiliki luasan yang lebih kecil apabila dibandingkan dengan annulus pipe.<br />
<br />
Berikut ini adalah link file case nya https://drive.google.com/file/d/1vOL3OEPoHUxhrt5UrJDrfeH-6VLJzy-O/view?usp=sharing<br />
<br />
<br />
== Pertemuan 3 ==<br />
<br />
Pemodelan sistem fluida dengan OpenModelica<br />
<br />
pemodelan adalah sebuah usaha untuk mempelajari sebuah sistem aktual melalui sistem yang disimplifikasi model adalah sebuah sistem yang disederhanakan yang digunakan untuk merepresentasikan kondisi awalnya. karena kita akan sulit mempelajari kondisi aktual. karena kondisi aktual cukup kompleks, banyak sekali variablenya. kemudian untuk skalar yang sangat besar kan kesulitan juga. plta pltu merupakan sistem fluida besar, akan sangat sulit melakukan pengukuran di equipment yang sangat besar. secara geometri disederhanakan, variabel variable disimplifikasi dng tidak mengurangi keakuratan. pemodelan sebuah usaha untuk membuat replika. pemodelan tidak akan pernah 100% sama dengan kondisi aktualnya. model bisa jadi sebuah model fisik yaitu alat, namun yang banyak dilakukan oleh engineer biasanya melkukan pemodelan secara virtual/komputasi, memerlukan ilmu dasar/basic pengetahuan untuk ilmu fluida. <br />
<br />
law driven model = sebuah model berdasarkan hukum hukum fisika<br />
<br />
(Data driven model) pemodelan menggunakan AI <br />
<br />
umumnya aplikasi pemodelan gabungan dari kedua itu. <br />
<br />
penjelasan openmodelica. example fluid empty tank dan example heat transfer two tanks dan heat transfer simple cooling<br />
<br />
<br />
== Tugas 3 ==<br />
<br />
'''Heating System Example'''<br />
<br />
[[File:Heatingsystemexample.PNG]]<br />
<br />
'''1. Deskripsi dan Uraian fisik'''<br />
<br />
Ini merupakan gambaran dari system pemanas closed flow, artinya aliran akan selalu mengalir dalam system tanpa adanya tambahan fluida dari luar system. Fluida yang digunakan dalam case ini adalah air. Air dipompa oleh pump yang tugasnya mengatur tekanan, lalu melewati mass flow meter untuk mengecek laju massa air. Setelah itu air akan masuk kedalam heater yang terhubung dengan burner, burner yang akan mengatur seberapa banyak panas yang masuk ke sistem sehingga temperatur dapat diatur. Kemudiann air mengalir melalui sensor temperatur dan menuju valve yang mana valve ini yang akan mengatur laju massa air. Air kemudian mengalir kedalam radiator yang berfungsi untuk melepaskan panas ke lingkungan sekitar. Temperatur diukur kembali. Kemudian air mengalir kembali ke tank, lalu kembali ke pompa. Informasi dari 2 sensor temperatur yang berada sesudah heater dan sebelum tank, dan 1 sensor laju massa air, akan digunakan sebagai feedback untuk mengatur panas yang akan diberikan oleh burner sehingga temperatur air dapat stabil pada set-point yang diinginkan.<br />
<br />
'''Tangki'''<br />
<br />
max ketinggian = 2m<br />
<br />
luas = 0.01m2<br />
<br />
ketinggian awal = 1m<br />
<br />
'''Pompa'''<br />
<br />
p inlet = 110000 Pa<br />
<br />
p outlet = 130000 Pa<br />
<br />
N = 1500 rpm<br />
<br />
'''Heater'''<br />
<br />
panjang pipa = 2m<br />
<br />
diameter pipa = 0.01m<br />
<br />
Heat flow rate = 1600 W<br />
<br />
'''Pipa'''<br />
<br />
panjang pipa = 10m<br />
<br />
diameter pipa = 0.01m<br />
<br />
'''Valve'''<br />
<br />
Pressure drop = 10000 Pa<br />
<br />
Mass flow rate = 0.01 kg/s<br />
<br />
'''Radiator'''<br />
<br />
Konduktivitas thermal = 80 W/K<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> double click pada Heating System<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa dan interpretasi hasil pemodelan'''<br />
<br />
Hasil simulasi error maka tidak dapat dianalisa. Untuk cara kerja dari system sudah dijelaskan pada poin 1. terdapat pompa yang berguna untuk mengatur tekanan, valve untuk menngatur mass flow, heater untuk mengatur temperatur, radiator untuk melepaskan panas dari system ke lingkungan sekitar, 2 sensor temperatur dan 1 sensor flow sebagai feedback untuk mengatur panas yang diberikan oleh heater.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
- konservasi massa<br />
<br />
- konservasi energi<br />
<br />
- perpindahan panas<br />
<br />
'''5. Hasil simulasi'''<br />
<br />
[[File:Failedheating.PNG]]<br />
<br />
<br />
'''Three Tanks Example'''<br />
<br />
[[File:3_tanks.PNG]]<br />
<br />
'''1. Deskripsi dan uraian fisik'''<br />
<br />
Pada simulasi ini, terdapat 2 tank yang berada di ketinggian yang sama dan 1 tank berada di ketinggian yang lebih rendah, ketiga tank memiliki ketinggian air yang berbeda-beda. Ketika simulasi dijalankan, 3 tank tersebut akan memiliki ketinggian yang sama karena sifat air yang akan selalu memiliki tinggi sama dengan catatan tank dalam keadaan open/terbuka dgn tekanan atmosphere.<br />
<br />
'''Tank 1'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 8m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 2'''<br />
<br />
Posisi = 2m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''Tank 3'''<br />
<br />
Posisi = -1m dari titik absolut 0<br />
<br />
Ketinggian air awal = 3m<br />
<br />
Tinggi tank = 12m<br />
<br />
'''2. Prosedur analisa pemodelan'''<br />
<br />
1. Buka openmodelica<br />
<br />
2. Dibawah library browser, buka Modelica -> Fluid -> Examples -> Tanks -> double click pada Three Tanks<br />
<br />
3. Karena ini adalah example maka parameter tidak ada yang bisa dirubah begitupun dengan code nya<br />
<br />
4. simulasikan dengan menekan tombol simulate<br />
<br />
'''3. Analisa hasil dan interpretasi hasil pemodelan'''<br />
<br />
Setelah disimulasikan, air yang berada di tank 1, tank 2 dan tank 3 akan memiliki ketinggian yang sama. Karena posisi tank 3 lebih rendah maka tank 3 memiliki level air lebih tinggi di dalam tank dibandingkan tank 1 dan tank 2. Posisi tank 1 dan 2 berada 2m diatas titik 0 sedangkan posisi tank 3 berada di -1 dibawah titik 0, maka selisih dari tank 1/tank 2 dengan tank 3 yaitu sebesar 3m.<br />
<br />
'''4. Hukum Fisika yang diimplementasikan'''<br />
<br />
1. Tekanan hidrostatis<br />
<br />
'''5. Hasil Simulasi'''<br />
<br />
[[File:Hasil3tanks.PNG]]<br />
<br />
Seperti pada dijelaskan di poin 3. Level air pada tank 1 dan tank 2 akan sama yaitu 3,66m karena kedua tank berada pada ketinggian yang sama. Karena posisi tank 3 berada -1m dibawah titik 0 maka akan ada selisih 3m dalam level air dan dapat dilihat pada hasil simulasi diatas tank 3 memiliki level air 6,66m. Hal ini dikarenakan tekanan pada dasar (dalam kasus ini yang berada paling bawah adalah pipanya) harus sama antara 3 tank yang terhubung. Waktu yang dibutuhkan untuk ketiga tank memiliki ketinggian yang sama adalah sekitar 140 detik.<br />
<br />
== TUGAS 4 ==<br />
<br />
[[File:Tugas4siflu.PNG]]<br />
<br />
1. Sistem diatas merupakan diagram dari pembangkit listrik gabungan/Combined power plant dari turbin gas dan turbin uap. <br />
<br />
a. Turbin gas<br />
<br />
[[File:Brayton.PNG]]<br />
<br />
turbin gas pada umumnya menggunakan siklus brayton yaitu dengan mengkompresi udara dgn proses isentropik lalu menambahkan bahan bakar kemudian melakukan ekspansi isentropik.<br />
<br />
b. Turbin Uap <br />
<br />
[[File:Rankine_cycle_Ts.png]]<br />
<br />
Turbin uap yang digunakan pada sistem yaitu turbin uap multistage dengan menggunakan siklus rankine. <br />
<br />
2. Identifikasi komponen utama pada sistem<br />
<br />
a. Gas Turbine<br />
<br />
[[File:Gas_turbine.PNG]]<br />
<br />
[[File:Gas_turbine_spec.PNG]]<br />
<br />
Terdiri dari compressor, ruang bakar, dan turbin. Berfungsi sebagai penggerak shaft yang tersambung ke generator dan udara panas buangan dari gas turbine akan digunakan untuk memanaskan uap pada turbin uap atau dalam case ini disebut Heat Recovery Steam Generator. Shaft yang digunakan pada sistem combined power plant ini hanya 1 namun memiliki banyak turbin, semua turbin terhubung ke 1 shaft yang diujungnya terdapat generator untuk menghasilkan listrik.<br />
<br />
b. Steam turbine <br />
<br />
[[File:Steam_turbine.PNG]]<br />
<br />
[[File:Turbine_st_1.PNG]]<br />
<br />
[[File:Turbine_st_2.PNG]]<br />
<br />
[[File:Turbine_st_3.PNG]]<br />
<br />
Steam turbine disini menggunakan multi stage turbine yang terdiri dari HP turbine, MP turbine, and LP turbine. Uap panas yang melewati turbin HP akan dimasukkan kembali kedalam boiler yang dipanaskan oleh udara buang panas dari gas turbine kemudian masuk kembali ke turbin stage selanjutnya yaitu turbin MP, dan proses yang sama terjadi pada uap yang akan masuk kedalam turbin LP. <br />
<br />
c. Heat exchanger<br />
<br />
[[File:Boilers.PNG]]<br />
<br />
[[File:Boiler1.PNG]]<br />
<br />
Heat exchanger pada gambar ini memiliki jumlah tube yang berbeda-beda. fungsinya dalah untuk menangkap panas dari gas buang dan mengubah fasa air menjadi uap.<br />
<br />
d. Generator<br />
<br />
[[File:Generatorasda.PNG]]<br />
<br />
[[File:Generator_spec.PNG]]<br />
<br />
Generator, berfungsi sebagai penghasil listrik. Shaft generator terhubung ke 4 turbin yaitu turbin gas, dan 3 turbin uap.<br />
<br />
e. Condenser<br />
<br />
[[File:Condenser.PNG]]<br />
<br />
[[File:Condenser_spec.PNG]]<br />
<br />
Condenser, berfungsi untuk merubah fasa uap menjadi liquid.<br />
<br />
d. Pump<br />
<br />
[[File:Pump.PNG]]<br />
<br />
[[File:Pump_spec.PNG]]<br />
<br />
Pump berfungsi untuk memberikan tekanan pada air yang keluar dari condenser.<br />
<br />
e. Boiler<br />
<br />
[[File:Tankboiler.PNG]]<br />
<br />
[[File:Tankboiler_spec.PNG]]<br />
<br />
Boiler boiler disini berfungsi untuk mengubah fasa cair menjadi uap dengan menggunakan panas yang ditangkap oleh heat exchanger</div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tankboiler_spec.PNG&diff=48909File:Tankboiler spec.PNG2020-12-10T07:28:49Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Tankboiler.PNG&diff=48907File:Tankboiler.PNG2020-12-10T07:28:26Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Pump_spec.PNG&diff=48879File:Pump spec.PNG2020-12-10T07:23:31Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Pump.PNG&diff=48876File:Pump.PNG2020-12-10T07:23:09Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Condenser_spec.PNG&diff=48864File:Condenser spec.PNG2020-12-10T07:21:40Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Condenser.PNG&diff=48859File:Condenser.PNG2020-12-10T07:21:18Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Generator_spec.PNG&diff=48853File:Generator spec.PNG2020-12-10T07:19:02Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Generatorasda.PNG&diff=48850File:Generatorasda.PNG2020-12-10T07:18:40Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Boiler1.PNG&diff=48847File:Boiler1.PNG2020-12-10T07:18:23Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Boilers.PNG&diff=48842File:Boilers.PNG2020-12-10T07:15:44Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Turbine_st_3.PNG&diff=48834File:Turbine st 3.PNG2020-12-10T07:10:33Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikrihttp://air.eng.ui.ac.id/index.php?title=File:Turbine_st_2.PNG&diff=48832File:Turbine st 2.PNG2020-12-10T07:10:24Z<p>Iqbalrezaalfikri: </p>
<hr />
<div></div>Iqbalrezaalfikri