Difference between revisions of "Riyo agung pamungkas"
Line 31: | Line 31: | ||
By following this design and optimization approach, a pressurized hydrogen storage system with a 1-liter capacity and 8-bar pressure could be realized within the specified budget constraints. | By following this design and optimization approach, a pressurized hydrogen storage system with a 1-liter capacity and 8-bar pressure could be realized within the specified budget constraints. | ||
+ | |||
+ | == Optimasi Penyimpanan == | ||
+ | |||
+ | Ada beberapa tahapan dalam mendesain dan mengoptimasi sistem penyimpanan, dari yang sudah ada menjadi yang sesuai dengan batasan maksimal yang diinginkan. | ||
+ | 1. Tentukan ukuran pelat yang akan digunakan berdasarkan volume yang dibutuhkan, yaitu 1 liter, namun menggunakan luas pelat seminimal mungkin menggunakan perhitungan sebagai berikut: | ||
+ | import math | ||
+ | from scipy.optimize import minimize | ||
+ | |||
+ | def objective(x): | ||
+ | radius, height = x | ||
+ | return 2 * math.pi * radius**2 + 2 * math.pi * radius * height | ||
+ | |||
+ | def constraint(x): | ||
+ | radius, height = x | ||
+ | return math.pi * radius**2 * height - 1000 | ||
+ | |||
+ | initial_guess = [1, 10] # Initial guess for the radius and height | ||
+ | |||
+ | # Define the bounds for the radius and height | ||
+ | bounds = [(0, None), (0, None)] | ||
+ | |||
+ | # Define the volume constraint | ||
+ | volume_constraint = {'type': 'eq', 'fun': constraint} | ||
+ | |||
+ | # Minimize the surface area subject to the volume constraint | ||
+ | result = minimize(objective, initial_guess, method='SLSQP', bounds=bounds, | ||
+ | constraints=volume_constraint) | ||
+ | |||
+ | optimal_radius = result.x[0] | ||
+ | optimal_height = result.x[1] | ||
+ | min_surface_area = result.fun | ||
+ | |||
+ | print(f"\n\nOptimal Radius: {optimal_radius} cm") | ||
+ | print(f"Optimal Height: {optimal_height} cm") | ||
+ | print(f"Minimum Surface Area: {min_surface_area} cm²\n\n") | ||
+ | Dari perhitungan tersebut, didapatkan beberapa nilai ukuran berikut ini, | ||
+ | ● Optimal Radius: 5.419261255088046 cm | ||
+ | ● Optimal Height: 10.838519182022262 cm | ||
+ | ● Minimum Surface Area: 553.5810443894838 cm² | ||
+ | 2. Selanjutnya, dilakukan perhitungan dengan variabel budget yang telah ditetapkan, yaitu Rp. 500.000. Untuk perhitungannya, digunakan perhitungan sebagai berikut menggunakan python: | ||
+ | |||
+ | from scipy.optimize import minimize | ||
+ | |||
+ | # Harga dan kapasitas yang dibutuhkan | ||
+ | harga_per_unit = 500000 # Rupiah | ||
+ | kapasitas_per_unit = 1 # Liter | ||
+ | |||
+ | # Anggaran maksimal | ||
+ | anggaran_maksimal = 500000 | ||
+ | |||
+ | # Fungsi Akhir | ||
+ | def fungsi_akhir(x): | ||
+ | return -x * kapasitas_per_unit | ||
+ | |||
+ | # Kendala yang terjadi | ||
+ | def kendala(anggaran): | ||
+ | return anggaran_maksimal - (harga_per_unit * anggaran) | ||
+ | |||
+ | kendala_anggaran = {'type': 'ineq', 'fun': kendala} | ||
+ | |||
+ | # Nilai awal | ||
+ | x0 = 0 | ||
+ | |||
+ | # Batasan | ||
+ | batas = [(0, None)] | ||
+ | |||
+ | # Menyelesaikan masalah optimisasi | ||
+ | solusi = minimize(fungsi_akhir, x0, method='SLSQP', bounds=batas, constraints=[kendala_anggaran]) | ||
+ | |||
+ | # Menampilkan hasil | ||
+ | print("Status:", solusi.success and "Biaya Optimal" or "Tidak ditemukan solusi") | ||
+ | print("Jumlah unit yang bisa dibeli:", solusi.x[0]) | ||
+ | print("Total kapasitas penyimpanan yang didapat:", solusi.x[0] * kapasitas_per_unit, "liter") | ||
+ | print("Total anggaran:", solusi.x[0] * harga_per_unit, "Rupiah") | ||
+ | Hasil yang didapatkan adalah: | ||
+ | ● Status: Biaya Optimal | ||
+ | ● Jumlah unit yang bisa dibeli: 1 | ||
+ | ● Total kapasitas penyimpanan yang didapat: 1.0 liter | ||
+ | ● Total anggaran: 500000.0 Rupiah | ||
+ | |||
+ | Menggunakan perhitungan di atas, bisa dilakukan plot terhadap perbandingan kapasitas dan jumlah yang didapatkan dengan code berikut: | ||
+ | |||
+ | # list grafik | ||
+ | unit_list = [] | ||
+ | total_kapasitas_list = [] | ||
+ | |||
+ | # Perhitungan solusi optimal | ||
+ | for jumlah_unit in range(int(budget_maksimal / harga_per_unit) + 1): | ||
+ | total_kapasitas = jumlah_unit * kapasitas_per_unit | ||
+ | total_biaya = jumlah_unit * harga_per_unit | ||
+ | |||
+ | if total_kapasitas > total_kapasitas_optimal and total_biaya <= budget_maksimal: | ||
+ | jumlah_unit_optimal = jumlah_unit | ||
+ | total_kapasitas_optimal = total_kapasitas | ||
+ | total_biaya_optimal = total_biaya | ||
+ | |||
+ | # Menambahkan data ke dalam list untuk grafik | ||
+ | unit_list.append(jumlah_unit) | ||
+ | total_kapasitas_list.append(total_kapasitas) | ||
+ | |||
+ | # Tampilan Hasil | ||
+ | print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", jumlah_unit_optimal) | ||
+ | print("Total kapasitas penyimpanan:", total_kapasitas_optimal, "liter") | ||
+ | print("Total biaya:", total_biaya_optimal, "Rupiah") | ||
+ | |||
+ | # Grafik ditampilkan | ||
+ | plt.plot(unit_list, total_kapasitas_list, color='red') | ||
+ | plt.xlabel('Jumlah Penyimpanan Hidrogen') | ||
+ | plt.ylabel('Total Kapasitas Penyimpanan (liter)') | ||
+ | plt.title('Optimalisasi Penyimpanan Hidrogen') | ||
+ | plt.grid(True) | ||
+ | plt.show() | ||
+ | |||
+ | Grafik perbandingan kapasitas dan unit | ||
+ | Kode yang digunakan di atas, bertujuan untuk melihat optimasi penyimpanan hidrogen dengan mempertimbangkan batasan kapasitas dan anggaran yang diberikan. Tujuan utamanya menemukan jumlah unit penyimpanan hidrogen yang harus dibeli untuk mencapai kapasitas penyimpanan maksimum dengan tetap mempertimbangkan batasan yang digunakan. | ||
+ | |||
+ | Iterasi dilakukan untuk mendapatkan data setiap unit yang dibeli jika dibandingkan dengan kapasitas dan batasan lain yang didapat. Setiap jumlah unit diuji untuk menghitung kapasitas penyimpanan total dan biaya total yang terkait. jika nilai sudah melebihi batasan, iterasi akan berhenti. | ||
+ | |||
+ | Selain itu, grafik yang terbentuk menunjukkan hubungan antara jumlah unit penyimpanan hidrogen yang akan dibeli dan kapasitas penyimpanan total yang diperoleh dalam merepresentasikan kapasitas total berubah saat unit penyimpanan hidrogen tambahan ditambahkan. |
Revision as of 11:35, 9 June 2023
Resume 26/05/2023
Pada pertemuan pertama, saya mempelajari bahwa metode nemuerik adalah metode yang digunakan untuk menyelesaikan suatu permasalahan matematika yang kompleks melalui pendekatan secara numerikal. Matematika adalah ilmu pasti, akan tetapi kemarin saya menyadari bahkan di matematika pun tidak semua jawaban absolut atau eksak (pasti). Contoh dari soal (x-1)^2/(x-1) dengan x = 1. Apabila langsung disubstitusikan maka hasilnya ada 0/0 atau tidak terdefinisikan, sedangkan apabila dijabarkan melalui pendekatan secara limit, maka hasilnya adalah 2. Akan tetapi 2 juga bukan merupakan jawaban eksak karena pendekatan secara limit menjadikan x mendekati 1, bukan x = 1 (absolut). Oleh karena itu, di dunia ini yang abosolut hanyalah Tuhan Yang Maha Esa. Pada pertemuan kemarin, saya juga mempelajari tentang “counciousness”. Dalam menyelesaikann suatu permasalahan, kita harus “councious” mengenai permasalahan tersebut dan mencari solusi untuk menyelesaikannya. Selain itu, kami juga mendapatkan tugas untuk mendesain 1 liter tabung hidrogen dengan tekanan 8 bar dan biaya maksimal Rp. 500.000,00
Design & Optimization of Pressurized Hydrogen Storage
In the first week of progress, we focused on the design and optimization of a pressurized hydrogen storage system with a 1-liter capacity and 8-bar pressure, all within a budget of Rp 500.000,-. This undertaking required careful consideration of various factors including materials, dimensions, and cost optimization. Here is an overview of the design and optimization approach employed:
Material Selection: In order to meet the budgetary constraints, a cost-effective option for the storage system material is high-density polyethylene (HDPE). This material offers good chemical resistance while being affordable.
Container Design: To achieve practicality and common usage, a cylindrical shape was chosen for the container design, given that it is well-suited for pressurized storage. The dimensions of the container were determined based on the desired volume of 1 liter and pressure of 8 bar.
Wall Thickness: The necessary wall thickness was calculated using Barlow's formula: t = (P * D) / (2 * S), where P represents the pressure (8 bar), D denotes the diameter of the container, and S signifies the allowable stress for HDPE. It is important to ensure that the calculated wall thickness falls within manufacturing capabilities and budget constraints.
Optimization Strategies: Various optimization strategies were implemented to achieve the desired outcomes:
Material Cost: Different HDPE suppliers were compared to identify the most cost-effective option for material procurement.
Manufacturing Process: Consideration was given to the extrusion or injection molding processes for fabricating the HDPE container. These processes are known to be cost-effective, particularly for cylindrical shapes.
Size Optimization: The dimensions of the container were fine-tuned to minimize material usage and manufacturing costs while still meeting the required volume and pressure specifications. This involved adjustments to the container's diameter and height.
Safety Considerations: Incorporating safety features into the design was of paramount importance. This entailed the inclusion of pressure relief devices and adherence to safety standards and regulations governing hydrogen storage.
By following this design and optimization approach, a pressurized hydrogen storage system with a 1-liter capacity and 8-bar pressure could be realized within the specified budget constraints.
Optimasi Penyimpanan
Ada beberapa tahapan dalam mendesain dan mengoptimasi sistem penyimpanan, dari yang sudah ada menjadi yang sesuai dengan batasan maksimal yang diinginkan. 1. Tentukan ukuran pelat yang akan digunakan berdasarkan volume yang dibutuhkan, yaitu 1 liter, namun menggunakan luas pelat seminimal mungkin menggunakan perhitungan sebagai berikut: import math from scipy.optimize import minimize
def objective(x):
radius, height = x return 2 * math.pi * radius**2 + 2 * math.pi * radius * height
def constraint(x):
radius, height = x return math.pi * radius**2 * height - 1000
initial_guess = [1, 10] # Initial guess for the radius and height
- Define the bounds for the radius and height
bounds = [(0, None), (0, None)]
- Define the volume constraint
volume_constraint = {'type': 'eq', 'fun': constraint}
- Minimize the surface area subject to the volume constraint
result = minimize(objective, initial_guess, method='SLSQP', bounds=bounds, constraints=volume_constraint)
optimal_radius = result.x[0] optimal_height = result.x[1] min_surface_area = result.fun
print(f"\n\nOptimal Radius: {optimal_radius} cm") print(f"Optimal Height: {optimal_height} cm") print(f"Minimum Surface Area: {min_surface_area} cm²\n\n") Dari perhitungan tersebut, didapatkan beberapa nilai ukuran berikut ini, ● Optimal Radius: 5.419261255088046 cm ● Optimal Height: 10.838519182022262 cm ● Minimum Surface Area: 553.5810443894838 cm² 2. Selanjutnya, dilakukan perhitungan dengan variabel budget yang telah ditetapkan, yaitu Rp. 500.000. Untuk perhitungannya, digunakan perhitungan sebagai berikut menggunakan python:
from scipy.optimize import minimize
- Harga dan kapasitas yang dibutuhkan
harga_per_unit = 500000 # Rupiah kapasitas_per_unit = 1 # Liter
- Anggaran maksimal
anggaran_maksimal = 500000
- Fungsi Akhir
def fungsi_akhir(x):
return -x * kapasitas_per_unit
- Kendala yang terjadi
def kendala(anggaran):
return anggaran_maksimal - (harga_per_unit * anggaran)
kendala_anggaran = {'type': 'ineq', 'fun': kendala}
- Nilai awal
x0 = 0
- Batasan
batas = [(0, None)]
- Menyelesaikan masalah optimisasi
solusi = minimize(fungsi_akhir, x0, method='SLSQP', bounds=batas, constraints=[kendala_anggaran])
- Menampilkan hasil
print("Status:", solusi.success and "Biaya Optimal" or "Tidak ditemukan solusi") print("Jumlah unit yang bisa dibeli:", solusi.x[0]) print("Total kapasitas penyimpanan yang didapat:", solusi.x[0] * kapasitas_per_unit, "liter") print("Total anggaran:", solusi.x[0] * harga_per_unit, "Rupiah") Hasil yang didapatkan adalah: ● Status: Biaya Optimal ● Jumlah unit yang bisa dibeli: 1 ● Total kapasitas penyimpanan yang didapat: 1.0 liter ● Total anggaran: 500000.0 Rupiah
Menggunakan perhitungan di atas, bisa dilakukan plot terhadap perbandingan kapasitas dan jumlah yang didapatkan dengan code berikut:
- list grafik
unit_list = [] total_kapasitas_list = []
- Perhitungan solusi optimal
for jumlah_unit in range(int(budget_maksimal / harga_per_unit) + 1):
total_kapasitas = jumlah_unit * kapasitas_per_unit total_biaya = jumlah_unit * harga_per_unit
if total_kapasitas > total_kapasitas_optimal and total_biaya <= budget_maksimal: jumlah_unit_optimal = jumlah_unit total_kapasitas_optimal = total_kapasitas total_biaya_optimal = total_biaya
# Menambahkan data ke dalam list untuk grafik unit_list.append(jumlah_unit) total_kapasitas_list.append(total_kapasitas)
- Tampilan Hasil
print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", jumlah_unit_optimal) print("Total kapasitas penyimpanan:", total_kapasitas_optimal, "liter") print("Total biaya:", total_biaya_optimal, "Rupiah")
- Grafik ditampilkan
plt.plot(unit_list, total_kapasitas_list, color='red') plt.xlabel('Jumlah Penyimpanan Hidrogen') plt.ylabel('Total Kapasitas Penyimpanan (liter)') plt.title('Optimalisasi Penyimpanan Hidrogen') plt.grid(True) plt.show()
Grafik perbandingan kapasitas dan unit Kode yang digunakan di atas, bertujuan untuk melihat optimasi penyimpanan hidrogen dengan mempertimbangkan batasan kapasitas dan anggaran yang diberikan. Tujuan utamanya menemukan jumlah unit penyimpanan hidrogen yang harus dibeli untuk mencapai kapasitas penyimpanan maksimum dengan tetap mempertimbangkan batasan yang digunakan.
Iterasi dilakukan untuk mendapatkan data setiap unit yang dibeli jika dibandingkan dengan kapasitas dan batasan lain yang didapat. Setiap jumlah unit diuji untuk menghitung kapasitas penyimpanan total dan biaya total yang terkait. jika nilai sudah melebihi batasan, iterasi akan berhenti.
Selain itu, grafik yang terbentuk menunjukkan hubungan antara jumlah unit penyimpanan hidrogen yang akan dibeli dan kapasitas penyimpanan total yang diperoleh dalam merepresentasikan kapasitas total berubah saat unit penyimpanan hidrogen tambahan ditambahkan.