User:Pramudiaz.rizky

From ccitonlinewiki
Revision as of 07:59, 13 June 2023 by Pramudiaz.rizky (talk | contribs) (Pekan 2)
Jump to: navigation, search

Nama : Pramudiaz Rizky Irianto

NPM  : 2106728244


Pekan 1

Hal yang perlu diperhatikan untuk mengoptimalkan tangki hidrogen dengan kapasitas 1 liter dan tekanan 8 bar dengan biaya produksi maksimal Rp. 500.000 :

1. Material tangki: Pilih bahan tangki yang kuat dan tahan terhadap tekanan tinggi, seperti serat karbon atau aluminium yang ringan namun kokoh. Memilih material yang tepat akan membantu mengurangi biaya produksi dan memastikan keamanan tangki.

2. Desain tangki: Desain tangki harus dioptimalkan untuk menyimpan sebanyak mungkin hidrogen dalam volume yang terbatas. Pertimbangkan bentuk dan struktur tangki yang efisien untuk meningkatkan kapasitas penyimpanan hidrogen.

3. Sistem pengaman: Pastikan tangki dilengkapi dengan sistem pengaman yang memadai untuk mencegah kebocoran atau ledakan. Ini termasuk katup pengaman tekanan yang sesuai dan sensor kebocoran yang dapat mendeteksi masalah sejak dini.

4. Efisiensi produksi: Perhatikan proses produksi tangki hidrogen untuk meminimalkan limbah dan mengoptimalkan penggunaan bahan baku. Pilih metode produksi yang hemat biaya namun tetap memenuhi standar kualitas.

5. Komponen tambahan: Pertimbangkan kebutuhan komponen tambahan seperti regulator tekanan, katup pengisian, dan indikator tekanan untuk memastikan fungsi tangki yang optimal. Pilih komponen yang memenuhi kebutuhan dengan biaya yang terjangkau.

6. Riset dan inovasi: Melakukan penelitian lebih lanjut tentang teknologi terkini dalam penyimpanan hidrogen, seperti material baru atau metode produksi yang lebih efisien. Inovasi dapat membantu mengoptimalkan kinerja dan biaya tangki hidrogen.


Pekan 2

Material Yang Cocok Untuk Tabung Hidrogen

Serat Karbon (Carbon Fiber): Serat karbon adalah bahan yang sangat populer untuk tangki hidrogen. Serat karbon memiliki kekuatan yang tinggi dan bobot yang ringan, membuatnya cocok untuk menyimpan hidrogen dengan kapasitas yang baik. Selain itu, serat karbon memiliki sifat tahan terhadap korosi dan kelelahan, yang sangat penting untuk tangki hidrogen yang sering mengalami siklus pengisian dan pengosongan.

Komposit Serat Karbon (Carbon Fiber Composites): Komposit serat karbon menggunakan serat karbon yang diperkuat dengan resin epoksi atau polimer lainnya. Ini memberikan kekuatan dan keuletan yang lebih besar dibandingkan dengan serat karbon tunggal. Tangki hidrogen yang terbuat dari komposit serat karbon menawarkan kombinasi kekuatan, kekakuan, dan bobot yang optimal.

Aluminium (Aluminum): Aluminium adalah bahan yang ringan dan mudah diolah, sehingga sering digunakan dalam konstruksi tangki hidrogen. Tangki aluminium biasanya diperkuat dengan lapisan perlindungan seperti epoxy atau liner yang tahan korosi untuk mencegah reaksi dengan hidrogen.

Paduan Aluminium (Aluminum Alloys): Paduan aluminium, seperti aluminium-magnesium atau aluminium-lithium, dapat meningkatkan kekuatan dan ketahanan terhadap deformasi. Paduan aluminium sering digunakan dalam tangki hidrogen untuk aplikasi transportasi, seperti kendaraan bertenaga hidrogen.

Baja (Steel): Baja adalah material yang kuat dan tahan terhadap tekanan tinggi, membuatnya menjadi pilihan yang layak untuk tangki hidrogen. Namun, baja harus diolah dengan lapisan perlindungan, seperti pelapis epoksi atau liner tahan korosi, untuk mencegah reaksi dengan hidrogen.


Material Yang Dipilih

Material yang digunakan adalah Stainless Steel grade 304. Baja paduan nikel dengan kandungan karbon rendah dapat menjadi pilihan yang baik untuk tangki hidrogen kecil, karena baja paduan nikel memiliki ketahanan yang baik terhadap korosi hidrogen dan tahan terhadap retakan.

Berikut merupakan mechanical properties dari aisi 304 :

Download (1).png


Python Code

Mencari ukuran permukaan optimal dari tangki hidrogen kapasitas 1 liter

import numpy as np
from scipy.optimize import minimize

def objective(x):
  # x[0] merepresentasikan jari-jari, x[1] merepresentasikan tinggi
  radius = x[0]
  tinggi = x[1]
  
  # Menghitung luas permukaan struktur silinder
  luas_permukaan = 2 * np.pi * radius * (radius + tinggi)
  
  return luas_permukaan

def constraint(x):
  # x[0] merepresentasikan jari-jari, x[1] merepresentasikan tinggi
  radius = x[0]
  tinggi = x[1]
  
# Menghitung volume internal struktur silinder
  volume = np.pi * radius**2 * tinggi
    
# Mengembalikan selisih antara volume dan nilai yang diinginkan (1000 sentimeter kubik)
  return volume - 1000

# Nilai awal untuk jari-jari dan tinggi
x0 = [1.0, 10.0]

# Batasan variabel (jari-jari dan tinggi)
bounds = [(0, None), (0, None)]

# Mendefinisikan dictionary kendala
constraint_dict = {'type': 'eq', 'fun': constraint}

# Menggunakan fungsi minimize untuk mengoptimalkan fungsi tujuan dengan mempertahankan kendala function subject to the constraint
result = minimize(objective, x0, method='SLSQP', bounds=bounds, constraints=constraint_dict)

# Hasil Optimasi
print("Hasil Optimasi:")
print("Radius: {:.2f} cm".format(result.x[0]))
print("Tinggi: {:.2f} cm".format(result.x[1]))
print("Luas Permukaan: {:.2f} cm^2".format(result.fun))

Output:

Hasil Optimasi:
Radius: 5.42 cm
Tinggi: 10.84 cm
Luas Permukaan: 553.58 cm^2

Mencari ketebalan tangki dengan tekanan 8 bar serta memperhatikan Mechanical Properties AISI 304

r = 5.51e-2 # jari-jari tangki
p = 800000 # kendala tekanan 8 bar
t = 2.7e-3 # ketebalan minimum

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

Output:

Untuk ketebalan 0.0027 tekanan lingkar = 16325925.925925925 Pa
Untuk ketebalan 0.0037 tekanan lingkar = 11913513.513513513 Pa
Untuk ketebalan 0.0047 tekanan lingkar = 9378723.40425532 Pa
Untuk ketebalan 0.0057 tekanan lingkar = 7733333.333333333 Pa
Untuk ketebalan 0.0067 tekanan lingkar = 6579104.47761194 Pa
Untuk ketebalan 0.0077 tekanan lingkar = 5724675.324675324 Pa
Untuk ketebalan 0.0087 tekanan lingkar = 5066666.666666667 Pa
Untuk ketebalan 0.0097 tekanan lingkar = 4544329.896907216 Pa
Untuk ketebalan 0.010700000000000001 tekanan lingkar = 4119626.1682242984 Pa

Kode python di atas berfungsi untuk menentukan tegangan lingkaran dengan mengevaluasi berbagai nilai ketebalan dalam rentang 2,7 mm hingga 10 mm. Hasilnya semua nilai ketebalan dari 2,7 mm hingga 10 mm, dengan penambahan 1 mm, memenuhi persyaratan kekuatan luluh. Kode tersebut menghasilkan bahwa tegangan lingkaran masih aman jauh di bawah kekuatan luluh sebesar 205 MPa.


Mencari optimasi hydrogen tank dengan maksimal anggaran Rp500.000:

from scipy.optimize import minimize

# Harga dan kapasitas yang dibutuhkan
harga_per_unit = 500000  # Rupiah
kapasitas_per_unit = 1  # Liter

# Anggaran maksimal
anggaran_maksimal = 500000

# Fungsi Akhir
def fungsi_akhir(x):
    return -x * kapasitas_per_unit

# Kendala yang terjadi
def kendala(anggaran):
    return anggaran_maksimal - (harga_per_unit * anggaran)

kendala_anggaran = {'type': 'ineq', 'fun': kendala}

# Nilai awal
x0 = 0

# Batasan
batas = [(0, None)]

# Menyelesaikan masalah optimisasi
solusi = minimize(fungsi_akhir, x0, method='SLSQP', bounds=batas, constraints=[kendala_anggaran])

# Menampilkan hasil
print("Status:", solusi.success and "Biaya Optimal" or "Tidak ditemukan solusi")
print("Jumlah unit yang bisa dibeli:", solusi.x[0])
print("Total kapasitas penyimpanan yang didapat:", solusi.x[0] * kapasitas_per_unit, "liter")
print("Total anggaran:", solusi.x[0] * harga_per_unit, "Rupiah")

Output:

Status: Biaya Optimal
Jumlah unit yang bisa dibeli: 1
Total kapasitas penyimpanan yang didapat: 1.0 liter
Total anggaran: 500000.0 Rupiah

Kode diatas memiliki tujuan utama untuk memaksimalkan jumlah unit penyimpanan hidrogen yang akan dibeli. Batasan anggaran diimplementasikan menggunakan fungsi kendala untuk memastikan bahwa total biaya tidak melebihi anggaran maksimal yang telah ditentukan.

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

# Harga dan kapasitas
harga_per_unit = 500000  # Harga per unit penyimpanan hidrogen
kapasitas_per_unit = 1  # Kapasitas penyimpanan hidrogen per unit

# Anggaran maksimal
budget_maksimal = 500000

# Fungsi tujuan
def fungsi_tujuan(x):
    return -x

# Kendala
def kendala(x):
    return budget_maksimal - (harga_per_unit * x[0])

kendala_anggaran = [{'type': 'ineq', 'fun': kendala}]

# Nilai awal
x0 = [0]

# Batasan
batas = [(0, None)]

# Membuat fungsi untuk menampilkan hasil
def tampilkan_hasil(solusi):
    print("Status:", "Optimal" if solusi.success else "Tidak ditemukan solusi")
    print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", solusi.x[0])
    print("Total kapasitas penyimpanan:", solusi.x[0] * kapasitas_per_unit, "liter")
    print("Total biaya:", solusi.x[0] * harga_per_unit, "Rupiah")

# Menyelesaikan masalah optimisasi
solusi = minimize(fungsi_tujuan, x0, method='SLSQP', bounds=batas, constraints=kendala_anggaran)

# Menampilkan hasil
tampilkan_hasil(solusi)

# Menghasilkan grafik
anggaran = np.linspace(0, 10, 100)  # Range anggaran
kapasitas = anggaran * kapasitas_per_unit  # Total kapasitas penyimpanan untuk setiap anggaran
biaya = anggaran * harga_per_unit  # Total biaya untuk setiap anggaran

plt.figure()
plt.plot(anggaran, kapasitas, label='Kapasitas Penyimpanan')
plt.plot(anggaran, biaya, label='Total Biaya')
plt.axhline(solusi.x[0] * kapasitas_per_unit, color='b', linestyle='--', label='Jumlah Unit Optimal')
plt.axvline(solusi.x[0], color='y', linestyle='--', label='Anggaran Optimal')
plt.xlabel('Anggaran')
plt.ylabel('Kapasitas/Biaya')
plt.title('Optimisasi Biaya Hidrogen')
plt.legend()
plt.grid(True)
plt.show()

Output: