Tugas 2 Final Project To Optimaze Hydrogen Storage Design

From ccitonlinewiki
Revision as of 22:25, 12 June 2023 by Vinbar110 (talk | contribs)
Jump to: navigation, search

Berikut merupakan code optimasi tangki hidrogen dengan kapasitas 1 liter, dan biaya produksi maksimal Rp. 500.000 dengan material yang digunakan adalah AISI 316 austenitic stainless steel

Aisi 304 kevin akbar.png

Gambar diatas merupakan Mechanical Properties AISI 304, dari gambar diatas didapat yield strenght untuk mencari ketebalan tangki yang kita buat

import numpy as np
from scipy.optimize import minimize

def objektif(x):
    # x[0] mewakili jari-jari, x[1] mewakili tinggi
    jari_jari = x[0]
    tinggi = x[1]

    # Hitung luas permukaan struktur silinder
    luas_permukaan = 2 * np.pi * jari_jari * (jari_jari + tinggi)

    return luas_permukaan

def konstrain(x):
    # x[0] mewakili jari-jari, x[1] mewakili tinggi
    jari_jari = x[0]
    tinggi = x[1]

    # Hitung volume internal struktur silinder
    volume = np.pi * jari_jari**2 * tinggi

    # Kembalikan selisih antara volume dan nilai yang diinginkan (1000 cm^3)
    return volume - 1000

# Menebak jari-jari dan tinggi
x0 = [1.0, 10.0]

# Membatasi variabel jari-jari dan tinggi
batas = [(0, None), (0, None)]

# Menentukan konstrain dalam bentuk kamus
konstrain_dict = {'type': 'eq', 'fun': konstrain}

# Menggunakan fungsi minimize dari scipy untuk optimasi
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)

# Mencetak hasil yang telah dioptimasi
print("Hasil Optimisasi:")
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
print("Tinggi: {:.2f} cm".format(hasil.x[1]))
print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun))

Pertama mendefinisikan fungsi objektif yang menghitung luas permukaan struktur silinder berdasarkan variabel yang diberikan yakni tinggi dan jari-jari.

Kemudian mendefinisikan fungsi konstrain yang memastikan volume internal struktur silinder memenuhi konstrain dengan selisih sebesar 1000 cm^3.

Berikutnya, menebak tebakan awal untuk jari-jari dan tinggi (x0) serta batasan untuk variabel (batas). Dalam kasus ini, mengasumsikan jari-jari dan tinggi dapat memiliki nilai positif.

Selanjutnya, gunakan fungsi minimize dari scipy.optimize untuk menyelesaikan masalah optimisasi. Bemberikan fungsi objektif , metode (SLSQP), tebakan awal, konstrain, dan batasan.

Dari code tersebut didapat hasil: Tinggi: 10.84 cm, Jari-jari: 5.42 cm Luas Permukaan: 553.58 cm^2


Mencari range ketebalan yang aman untuk di proses

r = 5.51e-2 #vessel radius
p = 800000  #8 bar pressure constraint
t = 2.7e-3  #minimum thickness

while t < 11.05e-3:
  hoop = (p * r)/(t)
  print('Untuk ketebalan', t, 'hoop stress =', hoop, "Pa")
  t += 1e-3
  if hoop > 215e9: #Yield Strength of AISI 304
    break

Data ketebalan kevin akbar.png

Dari tabel diatas dapat dibuktikan bahwa range yang aman dalam hal ketebalan tangki adalah 2 hingga 10 mm.


400px-Pt citra anggun kevin akbar.png

Berdasarkan tabel diatas, kita dapat menghitung perkiraan harga dengan spesifikasi diatas (luas silinder = 571,88). Dengan membagi Harga dengan luas pelat, maka ditemukan biaya/satuan luas pelat. Setelah dihitung, dengan memaksimalkan budget, minimum berat yang masih masuk akal, dan strength masih wajar, saya memilih ketebalan 6mm untuk tank ini.