Difference between revisions of "User:Pramudiaz.rizky"
(→Pekan 1) |
(→Pekan 2) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 23: | Line 23: | ||
== '''Pekan 2''' == | == '''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 : | ||
+ | |||
+ | [[File:Download (1).png]] | ||
+ | |||
+ | |||
+ | '''Python Code''' | ||
+ | |||
+ | Mencari ukuran permukaan optimal dari tangki hidrogen kapasitas 1 liter | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | |||
+ | 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)) | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | Output: | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | |||
+ | Hasil Optimasi: | ||
+ | Radius: 5.42 cm | ||
+ | Tinggi: 10.84 cm | ||
+ | Luas Permukaan: 553.58 cm^2 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | ''' Mencari ketebalan tangki dengan tekanan 8 bar serta memperhatikan Mechanical Properties AISI 304 ''' | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | |||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Output: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 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: ''' | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | 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") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Output: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | Status: Biaya Optimal | ||
+ | Jumlah unit yang bisa dibeli: 1 | ||
+ | Total kapasitas penyimpanan yang didapat: 1.0 liter | ||
+ | Total anggaran: 500000.0 Rupiah | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | |||
+ | 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() | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | Output: | ||
+ | |||
+ | [[File:365px-Grafik.png]] | ||
+ | |||
+ | '''Harga :''' | ||
+ | |||
+ | [[File:Stainless grade 304.png]] | ||
+ | |||
+ | Untuk membuat tangki hidrogen ini diperlukan estimasi biaya pembuatan tangki dengan material Baja AISI 304. Berdasarkan referensi dari Tokopedia, harga baja 30x30cm [1]yang digunakan adalah sebesar Rp165.000. Estimasi biaya machining yang mencakup pengelasan,fit up,machining/taper, dan coating adalah sebesar Rp170.000. Diperlukan pemasangan katup/valve pada salah satu ujung tangki agar dapat dilakukan pengisian/pengosongan gas hidrogen dalam tangki dengan mudah. Biaya katup valve referensi dari tokopedia sebear Rp10.000. | ||
+ | |||
+ | Maka total biaya Rp165.000 + Rp170.000 + 10.000= Rp345.000 |
Latest revision as of 08:09, 13 June 2023
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 :
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:
Harga :
Untuk membuat tangki hidrogen ini diperlukan estimasi biaya pembuatan tangki dengan material Baja AISI 304. Berdasarkan referensi dari Tokopedia, harga baja 30x30cm [1]yang digunakan adalah sebesar Rp165.000. Estimasi biaya machining yang mencakup pengelasan,fit up,machining/taper, dan coating adalah sebesar Rp170.000. Diperlukan pemasangan katup/valve pada salah satu ujung tangki agar dapat dilakukan pengisian/pengosongan gas hidrogen dalam tangki dengan mudah. Biaya katup valve referensi dari tokopedia sebear Rp10.000.
Maka total biaya Rp165.000 + Rp170.000 + 10.000= Rp345.000