Difference between revisions of "Tugas 2 Final Project To Optimaze Hydrogen Storage Design"

From ccitonlinewiki
Jump to: navigation, search
(Created page with "Berikut merupakan code optimasi tangki hidrogen dengan kapasitas 1 liter, dan biaya produksi maksimal Rp. 500.000 import numpy as np from scipy.optimize import minimize def...")
 
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
Berikut merupakan code optimasi tangki hidrogen dengan kapasitas 1 liter, dan biaya produksi maksimal Rp. 500.000
 
  
 +
<youtube width="200" height="100">Eufoo89kCZA</youtube>
 +
 +
[[File: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
 +
 +
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
 +
 +
 +
<syntaxhighlight lang=xml>
 
import numpy as np
 
import numpy as np
 
from scipy.optimize import minimize
 
from scipy.optimize import minimize
Line 25: Line 34:
 
     return volume - 1000
 
     return volume - 1000
  
# Menebak untuk jari-jari dan tinggi
+
# Menebak jari-jari dan tinggi
 
x0 = [1.0, 10.0]
 
x0 = [1.0, 10.0]
  
# Memberikan batasan untuk variabel (jari-jari dan tinggi)
+
# Membatasi variabel jari-jari dan tinggi
 
batas = [(0, None), (0, None)]
 
batas = [(0, None), (0, None)]
  
# Menentukan constrain dalam bentuk kamus
+
# Menentukan konstrain dalam bentuk kamus
 
konstrain_dict = {'type': 'eq', 'fun': konstrain}
 
konstrain_dict = {'type': 'eq', 'fun': konstrain}
  
# Menggunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain
+
# Menggunakan fungsi minimize dari scipy untuk optimasi
 
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)
 
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)
  
# Print hasil yang telah dioptimalkan
+
# Mencetak hasil yang telah dioptimasi
 
print("Hasil Optimisasi:")
 
print("Hasil Optimisasi:")
 
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
 
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
 
print("Tinggi: {:.2f} cm".format(hasil.x[1]))
 
print("Tinggi: {:.2f} cm".format(hasil.x[1]))
 
print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun))
 
print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun))
 +
 +
</syntaxhighlight>
 +
 +
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. Memberikan 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
 +
 +
<syntaxhighlight lang=xml>
 +
 +
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
 +
 +
</syntaxhighlight>
 +
 +
[[File:Data_ketebalan_kevin_akbar.png]]
 +
 +
Dari tabel diatas dapat dibuktikan bahwa range yang aman dalam hal ketebalan tangki adalah 2 hingga 10 mm.
 +
 +
 +
 +
[[File: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.

Latest revision as of 23:09, 12 June 2023

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

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


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