Farhan Adryansyach

From ccitonlinewiki
Revision as of 11:15, 21 July 2023 by Farhan.adryansyach (talk | contribs) (Design & Optimization of Pressurized Hydrogen Storage)
Jump to: navigation, search

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
  1. 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)
  1. 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)
  1. 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

  1. Melakukan optimisasi menggunakan metode SLSQPresult = minimize(objective_function, x0, method='SLSQP', bounds=bounds,

constraints=volume_constraint)

  1. Ekstrak variabel hasil yang dioptimalkan
 radius_optimasi, tinggi_optimasi = hasil.x
  1. Hitung luas permukaan yang dioptimalkan
 luas_permukaan_optimal = hitungLuasPermukaan([radius_optimasi, tinggi_optimasi])
  1. 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
  1. Inisialisasi tebal awal

thickness = 0.004

  1. 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
  1. 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.