Farhan Adryansyach
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.