|
|
Line 1: |
Line 1: |
− | == Final Report of Design and Optimization of Pressurized Hydrogen Storage ==
| |
− | a result of design optimization of a pressurized hydrogen storage. The method we use is to first measure how large the optimal tube size is to accommodate 1 liter of hydrogen at a pressure of 8 bar. with a cost of less than IDR 500,000.00. The calculation begins with finding the optimal
| |
| | | |
− | dimensions of the tube.
| |
− | def objective_function(x):
| |
− | radius = x[0]
| |
− | height = x[1]
| |
− | surface_area = calculate_cylinder_surface_area(radius, height)
| |
− | cost = calculate_cylinder_cost(surface_area)
| |
− | return cost
| |
− | def calculate_cylinder_surface_area(radius, height):
| |
− | lateral_area = 2 * math.pi * radius * height
| |
− | base_area = math.pi * radius**2
| |
− | total_area = lateral_area + 2 * base_area
| |
− | return total_area
| |
− | def calculate_cylinder_cost(surface_area):
| |
− | # Menghitung biaya berdasarkan luas permukaan tabung
| |
− | # Anda dapat menyesuaikan fungsi ini dengan estimasi biaya bahan dan produksi yang relevan
| |
− | return surface_area * cost_per_unit_area
| |
− | #Mendefinisikan batasan untuk radius dan tinggi tabung
| |
− | def constraint(x):
| |
− | radius = x[0]
| |
− | height = x[1]
| |
− | volume = math.pi * radius**2 * height
| |
− | return volume - 1 # Volume harus sama dengan 1L (1000 cm^3)
| |
− | #Mendefinisikan fungsi untuk mencetak solusi terbaik
| |
− | def print_solution(x):
| |
− | radius = x[0]
| |
− | height = x[1]
| |
− | surface_area = calculate_cylinder_surface_area(radius, height)
| |
− | cost = calculate_cylinder_cost(surface_area)
| |
− | print("Optimization Result:")
| |
− | print("Radius:", radius)
| |
− | print("Height:", height)
| |
− | print("Surface Area:", surface_area)
| |
− | print("Cost:", cost)
| |
− | # Menentukan batasan dan inisialisasi nilai awal
| |
− | x0 = [1, 1] # Nilai awal radius dan tinggi tabung
| |
− | volume_constraint = {'type': 'eq', 'fun': constraint} # Batasan volume harus sama dengan 1L (1000 cm^3)
| |
− | bounds = [(0, None), (0, None)] # Batasan non-negatif untuk radius dan tinggi
| |
− | # Melakukan optimisasi menggunakan metode SLSQPresult = minimize(objective_function, x0, method='SLSQP', bounds=bounds,
| |
− | constraints=volume_constraint)
| |
− | # Ekstrak variabel hasil yang dioptimalkan
| |
− | radius_optimasi, tinggi_optimasi = hasil.x
| |
− | # Hitung luas permukaan yang dioptimalkan
| |
− | luas_permukaan_optimal = hitungLuasPermukaan([radius_optimasi, tinggi_optimasi])
| |
− | # Tampilkan hasil
| |
− | print('Jari-jari teroptimasi:', radius_optimasi, 'cm')
| |
− | print('Tinggi teroptimasi:', tinggi_optimasi, 'cm')
| |
− | print('Luas Permukaan teroptimasi:', luas_permukaan_optimasi, 'cm^2')
| |
− |
| |
− | Output Hitungan
| |
− |
| |
− | Jari-jari teroptimasi: 5.5111852 cm
| |
− | Tinggi teroptimasi: 9.9124114 cm
| |
− | Luas Permukaan teroptimasi: 534.08519 cm^2
| |
− |
| |
− | Setelah itu, kita akan mulai mencari ketebalan material optimal untuk dapat mengatasi stress yang diberikan saat penggunaannya. dalam perhitungan ini, digunakan lah rumus hoop stress. lalu, dalam pemilihan material saya menggunakan Stainless steel ASTM 316 dengan tingkat kekuatan yield strength adalah 206 Mpa dan Tensile Strength adalah 517 Mpa. dengan ini, perhitungan yang dilakukan adalah.
| |
− |
| |
− |
| |
− |
| |
− | # Definisikan fungsi untuk menghitung tegangan cincin (hoop stress)
| |
− | def calculate_hoop_stress(thickness, inner_diameter, outer_diameter, pressure):
| |
− | inner_radius = inner_diameter / 2
| |
− | outer_radius = outer_diameter / 2
| |
− | hoop_stress = (pressure * (outer_radius**2 - inner_radius**2)) / (thickness * (outer_radius - inner_radius))
| |
− | return hoop_stress
| |
− | # Definisikan parameter dan batasan
| |
− | target_stress = 206000000 # Target tegangan cincin yang ingin dicapai
| |
− | min_thickness = 0.004 # Batasan tebal minimum
| |
− | max_thickness = 0.015 # Batasan tebal maksimum
| |
− | # Inisialisasi tebal awal
| |
− | thickness = 0.004
| |
− | # Proses iterasi untuk mengoptimalkan tebal plate
| |
− | while True:
| |
− | # Hitung tegangan cincin berdasarkan tebal saat ini
| |
− | hoop_stress = calculate_hoop_stress(thickness, inner_diameter, outer_diameter, pressure)
| |
− | # Periksa apakah tegangan cincin sudah mencapai target
| |
− | if hoop_stress >= target_stress:
| |
− | break # Keluar dari iterasi jika tegangan cincin sudah mencapai target
| |
− | # Sesuaikan tebal plate berdasarkan perbandingan tegangan cincin dengan target
| |
− | thickness += 0.1
| |
− | # Periksa batasan tebal minimum dan tebal maksimum
| |
− | if thickness < min_thickness:
| |
− | thickness = min_thickness
| |
− | elif thickness > max_thickness:
| |
− | thickness = max_thickness
| |
− | # Cetak tebal plate yang dihasilkan
| |
− | print("Optimized Plate Thickness:", thickness, 'm')
| |
− | Output hitungan dari ketebalan plate
| |
− |
| |
− | Optimized Plate Thickness: 0.01 m
| |
− |
| |
− |
| |
− |
| |
− | after getting the optimal thickness of the plate material, then we want to know how much the price must be paid to manufacture the pressurized Hydrogen Storage. the thing to do is, we will look for the market price of the material, then we will adjust it to the amount we will use. by doing calculations in excel, it was found that the plate value to be used to design the tube is approximately 5,124 kg. then, the price that must be spent in manufacturing is approximately Rp. 349355.8011 so that a result is obtained that is close to correct or optimal regarding a pressurized hydrogen storage that can accommodate 1 liter of hydrogen with an internal pressure of 8bar. Also, this design tube is still worth less than Rp. 500,000.00 which is the budget limit for manufacturing so that optimal spending is also obtained. it is hoped that the designed design and optimization can work as it should.
| |