Difference between revisions of "Nazwa Atirah"
Nazwa Atirah (talk | contribs) (→Design & Optimization of Compressed Hydrogen Storage (Pekan 2)) |
Nazwa Atirah (talk | contribs) (→Video Link for Presentation Video) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 104: | Line 104: | ||
Jadi, ketebalan maksimalnya adalah 2.1 mm | Jadi, ketebalan maksimalnya adalah 2.1 mm | ||
+ | |||
+ | |||
+ | '''OPTIMASI HYDROGEN STORAGE''' | ||
+ | |||
+ | Berikut merupakan code untuk perhitungan biaya Hydrogen Storage menggunakan software Python. | ||
+ | |||
+ | # Spesifikasi sistem penyimpanan hidrogen | ||
+ | tank_volume = 1 # Volume tangki penyimpanan (liter) | ||
+ | target_pressure = 8 # Tekanan hidrogen yang diinginkan (bar) | ||
+ | material_cost_per_kg = 20000 # Harga material per kilogram (Rupiah/kg) | ||
+ | max_budget = 500000 # Anggaran maksimum (Rupiah) | ||
+ | |||
+ | # Harga tangki per kilogram (Rupiah/kg) | ||
+ | tank_cost_per_kg = 100000 | ||
+ | |||
+ | # Harga regulator tekanan per kilogram (Rupiah/kg) | ||
+ | regulator_cost_per_kg = 50000 | ||
+ | |||
+ | # Menghitung massa tangki | ||
+ | def calculate_tank_mass(volume): | ||
+ | # Menggunakan asumsi massa jenis tangki berdasarkan material | ||
+ | if material == "HSLA ASTM A1011": | ||
+ | density = 7.85 # Massa jenis HSLA ASTM A1011 (g/cm^3) | ||
+ | else: | ||
+ | # Jika material tidak dikenali, anggap massa jenis 7.85 g/cm^3 | ||
+ | density = 7.85 | ||
+ | |||
+ | # Menghitung massa tangki (kg) | ||
+ | tank_mass = volume * 1000 * density | ||
+ | |||
+ | return tank_mass | ||
+ | |||
+ | # Menghitung tekanan hidrogen | ||
+ | def calculate_hydrogen_pressure(volume, mass): | ||
+ | # Menggunakan asumsi gas hidrogen ideal | ||
+ | R = 8.314 # Konstanta gas ideal (J/(mol·K)) | ||
+ | M = 2.016 # Massa molar hidrogen (g/mol) | ||
+ | V = volume * 1000 # Konversi volume dari liter ke mililiter | ||
+ | return (mass / M) * (R * 1000) / V | ||
+ | |||
+ | # Menghitung biaya tangki penyimpanan hidrogen | ||
+ | def calculate_hydrogen_storage_cost(): | ||
+ | # Menghitung massa tangki | ||
+ | tank_mass = calculate_tank_mass(tank_volume) | ||
+ | |||
+ | # Menghitung tekanan hidrogen | ||
+ | hydrogen_pressure = calculate_hydrogen_pressure(tank_volume, tank_mass) | ||
+ | |||
+ | # Menghitung biaya tangki | ||
+ | tank_cost = tank_mass * tank_cost_per_kg | ||
+ | |||
+ | # Menghitung biaya regulator tekanan | ||
+ | regulator_mass = 0.1 # Anggap massa regulator tekanan 0.1 kg (contoh) | ||
+ | regulator_cost = regulator_mass * regulator_cost_per_kg | ||
+ | |||
+ | # Menghitung biaya material | ||
+ | material_mass = tank_mass + regulator_mass | ||
+ | material_cost = material_mass * material_cost_per_kg | ||
+ | |||
+ | # Menghitung total biaya | ||
+ | total_cost = tank_cost + regulator_cost + material_cost | ||
+ | |||
+ | # Memeriksa apakah biaya melebihi anggaran maksimum | ||
+ | if total_cost > max_budget: | ||
+ | return "Biaya melebihi anggaran maksimum" | ||
+ | |||
+ | return total_cost | ||
+ | |||
+ | # Menentukan material tangki | ||
+ | material = "HSLA ASTM A1011" | ||
+ | |||
+ | # Menghitung biaya penyimpanan hidrogen | ||
+ | cost = calculate_hydrogen_storage_cost() | ||
+ | |||
+ | # Menampilkan biaya penyimpanan hidrogen | ||
+ | print("Biaya Penyimpanan Hidrogen: Rp.", cost) | ||
+ | |||
+ | Selanjutnya, merupakan code Python untuk optimasi dari Hydrogen Storage dengan spesifikasi yang diinginkan. | ||
+ | |||
+ | import random | ||
+ | import numpy as np | ||
+ | from deap import algorithms, base, creator, tools | ||
+ | |||
+ | # Spesifikasi sistem penyimpanan hidrogen | ||
+ | tank_volume = 1 # Volume tangki penyimpanan (liter) | ||
+ | target_pressure = 8 # Tekanan hidrogen yang diinginkan (bar) | ||
+ | material_cost_per_kg = 20000 # Harga material per kilogram (Rupiah/kg) | ||
+ | max_budget = 500000 # Anggaran maksimum (Rupiah) | ||
+ | |||
+ | # Batasan-batasan | ||
+ | max_tank_mass = 5 # Batas massa tangki maksimum (kg) | ||
+ | max_regulator_mass = 0.5 # Batas massa regulator tekanan maksimum (kg) | ||
+ | |||
+ | # Fungsi evaluasi | ||
+ | def evaluate(individual): | ||
+ | tank_mass = individual[0] | ||
+ | regulator_mass = individual[1] | ||
+ | |||
+ | # Hitung perbedaan antara tekanan yang dihasilkan dengan target tekanan | ||
+ | pressure_difference = abs(calculate_hydrogen_pressure(tank_volume, tank_mass) - target_pressure) | ||
+ | |||
+ | # Hitung biaya total | ||
+ | material_mass = tank_mass + regulator_mass | ||
+ | material_cost = material_mass * material_cost_per_kg | ||
+ | total_cost = material_cost | ||
+ | |||
+ | # Jika biaya melebihi anggaran maksimal, berikan penalty | ||
+ | if total_cost > max_budget: | ||
+ | total_cost += max_budget * 10 # Penalty | ||
+ | |||
+ | # Hitung fitness | ||
+ | fitness = 1.0 / (total_cost + pressure_difference) | ||
+ | |||
+ | return fitness, # Nilai fitness harus berupa tuple | ||
+ | |||
+ | # Fungsi pembangkit populasi awal | ||
+ | def generate_individual(): | ||
+ | tank_mass = random.uniform(0, max_tank_mass) | ||
+ | regulator_mass = random.uniform(0, max_regulator_mass) | ||
+ | return tank_mass, regulator_mass | ||
+ | |||
+ | # Fungsi crossover | ||
+ | def crossover(parent1, parent2): | ||
+ | child1 = parent1[:] | ||
+ | child2 = parent2[:] | ||
+ | index = random.randint(0, len(parent1) - 1) | ||
+ | child1[index:] = parent2[index:] | ||
+ | child2[index:] = parent1[index:] | ||
+ | return child1, child2 | ||
+ | |||
+ | # Fungsi mutasi | ||
+ | def mutate(individual): | ||
+ | index = random.randint(0, len(individual) - 1) | ||
+ | mutation_range = max_tank_mass if index == 0 else max_regulator_mass | ||
+ | individual[index] = random.uniform(0, mutation_range) | ||
+ | return individual, | ||
+ | |||
+ | # Menghitung tekanan hidrogen | ||
+ | def calculate_hydrogen_pressure(volume, mass): | ||
+ | # Menggunakan asumsi gas hidrogen ideal | ||
+ | R = 8.314 # Konstanta gas ideal (J/(mol·K)) | ||
+ | M = 2.016 # Massa molar hidrogen (g/mol) | ||
+ | V = volume * 1000 # Konversi volume dari liter ke mililiter | ||
+ | return (mass / M) * (R * 1000) / V | ||
+ | |||
+ | # Inisialisasi algoritma genetika | ||
+ | creator.create("FitnessMax", base.Fitness, weights=(1.0,)) | ||
+ | creator.create("Individual", list, fitness=creator.FitnessMax) | ||
+ | toolbox = base.Toolbox() | ||
+ | toolbox.register("individual", tools.initIterate, creator.Individual, generate_individual) | ||
+ | toolbox.register("population", tools.initRepeat, list, toolbox.individual) | ||
+ | toolbox.register("evaluate", evaluate) | ||
+ | toolbox.register("mate", crossover) | ||
+ | toolbox.register("mutate", mutate) | ||
+ | toolbox.register("select", tools.selTournament, tournsize=3) | ||
+ | |||
+ | def optimize_hydrogen_storage(): | ||
+ | # Inisialisasi populasi awal | ||
+ | population_size = 50 | ||
+ | population = toolbox.population(n=population_size) | ||
+ | |||
+ | # Inisialisasi statistik | ||
+ | stats = tools.Statistics(lambda ind: ind.fitness.values) | ||
+ | stats.register("min", np.min) | ||
+ | stats.register("avg", np.mean) | ||
+ | |||
+ | # Menjalankan algoritma genetika | ||
+ | generations = 10 | ||
+ | population, logbook = algorithms.eaSimple(population, toolbox, cxpb=0.5, mutpb=0.2, ngen=generations, stats=stats, verbose=False) | ||
+ | |||
+ | # Mendapatkan individu terbaik | ||
+ | best_individual = tools.selBest(population, k=1)[0] | ||
+ | |||
+ | return best_individual | ||
+ | |||
+ | # Menjalankan optimasi penyimpanan hidrogen | ||
+ | best_individual = optimize_hydrogen_storage() | ||
+ | |||
+ | # Menampilkan hasil optimasi | ||
+ | best_tank_mass = best_individual[0] | ||
+ | best_regulator_mass = best_individual[1] | ||
+ | best_hydrogen_pressure = calculate_hydrogen_pressure(tank_volume, best_tank_mass) | ||
+ | |||
+ | print("Optimasi Hydrogen Storage:") | ||
+ | print("Massa Tangki Terbaik:", best_tank_mass, "kg") | ||
+ | print("Massa Regulator Terbaik:", best_regulator_mass, "kg") | ||
+ | print("Tekanan Hidrogen Terbaik:", best_hydrogen_pressure, "bar") | ||
Line 109: | Line 296: | ||
[[File:Final Design Nazwa.png|500x500px]] | [[File:Final Design Nazwa.png|500x500px]] | ||
+ | |||
+ | |||
+ | == Video Link for Presentation Video == | ||
+ | |||
+ | Here's the video link: | ||
+ | |||
+ | https://www.youtube.com/channel/UCWxgC9IdD5gzAzA9-QLg4aw | ||
+ | |||
+ | https://drive.google.com/file/d/1YRiv4C6YrcUV7Ws1XhExvBuCkAAmH3N8/view?usp=sharing |
Latest revision as of 22:44, 11 June 2023
Contents
Introduction
Hi everyone! My name is Nazwa Atirah (NPM: 2106652505). I am currently pursuing my bachelor's degree in Mechanical Engineering at the Faculty of Engineering, Universitas Indonesia. I have a keen interest in enhancing my personal development skills and participating in volunteer activities. My desire is to consistently make positive contributions to my environment, continue learning and growing, and embrace new challenges.
Design & Optimization of Compressed Hydrogen Storage (Pekan 1)
LATAR BELAKANG
Pemilihan hidrogen sebagai bahan bakar ramah lingkungan didasarkan pada kebutuhan untuk mengurangi emisi gas rumah kaca dan mencari alternatif energi yang bersih dan berkelanjutan. Hidrogen dianggap sebagai salah satu solusi potensial untuk menggantikan bahan bakar fosil karena menghasilkan energi dengan hanya menghasilkan air sebagai produk sampingan.
Berikut merupakan latar belakang utama pembuatan compressed hydrogen storage adalah sebagai berikut:
1. Reduksi Emisi: Penggunaan hydrogen sebagai bahan bakar memiliki potensi untuk mengurangi emisi gas rumah kaca dan polutan udara. Saat digunakan dalam kendaraan bertenaga hidrogen, tidak ada emisi langsung dari knalpot, hanya air yang dihasilkan sebagai hasil pembakaran. Ini berkontribusi pada upaya global dalam mengurangi dampak negatif transportasi terhadap lingkungan.
2. Energi Alternatif: Dalam menghadapi keterbatasan bahan bakar fosil dan perubahan iklim, hidrogen dapat dihasilkan dari sumber energi terbarukan seperti energi surya atau energi angin. Dengan menggunakan compressed hydrogen tank, energi yang dihasilkan dari sumber-sumber ini dapat disimpan dan diangkut dengan efisien untuk digunakan di berbagai aplikasi, termasuk kendaraan bertenaga hidrogen dan sistem penyimpanan energi.
3. Efisiensi Penyimpanan: Compressed hydrogen tank memungkinkan penyimpanan hydrogen dalam volume yang relatif kecil dengan kepadatan energi yang tinggi. Ini memungkinkan pengangkutan yang efisien dan penggunaan hidrogen sebagai bahan bakar portabel atau untuk aplikasi di mana ruang terbatas.
4. Penelitian dan Pengembangan: Industri hydrogen terus melakukan penelitian dan pengembangan untuk meningkatkan teknologi tangki hydrogen terkompresi, termasuk penggunaan material yang lebih ringan dan kuat serta pengembangan metode pengisian dan pengosongan yang lebih cepat dan aman.
Dalam rangka mengurangi ketergantungan pada bahan bakar fosil dan mengurangi dampak negatif terhadap lingkungan, pembuatan compressed hydrogen tank sebagai bahan bakar ramah lingkungan merupakan langkah penting menuju keberlanjutan energi dan melindungi lingkungan alam kita.
KEUNTUNGAN PENGGUNAAN HIDROGEN SEBAGAI BAHAN BAKAR
Keuntungan menggunakan hidrogen sebagai bahan bakar kendaraan meliputi:
1. Zero Emissions: Sebagai bahan bakar kendaraan, hidrogen hanya menghasilkan air murni sebagai produk sampingan pembakaran. Hidrogen tidak menghasilkan emisi gas buang berbahaya seperti karbon dioksida (CO2) atau polutan udara lainnya. Hal ini membantu mengurangi polusi udara dan dampak gas rumah kaca dan berkontribusi pada upaya mengatasi perubahan iklim.
2. High Energy Density: Hidrogen memiliki kepadatan energi yang tinggi, artinya dalam jumlah yang relatif kecil, hidrogen dapat menyimpan energi yang signifikan. Hal ini membuatnya cocok untuk kendaraan yang membutuhkan jangkauan yang lebih panjang dan waktu pengisian yang cepat.
3. Fast Refueling: Pengisian hidrogen pada kendaraan membutuhkan waktu yang relatif singkat, serupa dengan pengisian bahan bakar konvensional seperti bensin atau diesel. Dalam beberapa menit, kendaraan dapat diisi ulang dengan hidrogen dan siap untuk melanjutkan perjalanan, tidak memerlukan waktu pengisian yang lama seperti kendaraan listrik dengan baterai.
4. Versatility: Hidrogen dapat digunakan dalam berbagai jenis kendaraan, termasuk mobil penumpang, truk, bus, dan bahkan kendaraan berat seperti kereta api dan kapal. Ini memungkinkan diversifikasi dan penggunaan hidrogen sebagai bahan bakar dalam berbagai sektor transportasi.
5. Renewable Energy Integration: Hidrogen dihasilkan dari sumber energi terbarukan seperti energi surya, angin, dan hidroelektrik. Dengan memanfaatkan hidrogen sebagai bahan bakar kendaraan, kita dapat mengintegrasikan produksi hidrogen dengan sumber energi terbarukan, membantu mempercepat transisi menuju sistem energi yang berkelanjutan.
SPESIFIKASI
Berikut adalah ringkasan spesifikasi sistem penyimpanan hydrogen terkompresi sesuai dengan kebutuhan pelanggan:
- Volume Tangki Penyimpanan: Sekitar 1 lt.
- Tekanan Hidrogen: Dikompresi hingga tekanan manometer 8 bar.
- Kondisi Operasional Normal: Dirancang untuk suhu dan kelembaban ruangan.
- Port Input dan Output: Memiliki port terpisah untuk pengisian dan pengeluaran hidrogen.
- Regulator Tekanan: Dilengkapi dengan regulator tekanan pada port output untuk mengatur tekanan sesuai kebutuhan.
- Anggaran Maksimum: Anggaran maksimal sebesar Rp.500.000.
ILUSTRASI DAN KOMPONEN
Tangki hidrogen memiliki berbagai bentuk dan jenis. Bentuk bulat seperti bola digunakan untuk beberapa tangki hidrogen cair dan bentuk apa pun dapat digunakan ketika menyimpan hidrogen pada tekanan mendekati tekanan atmosfer. Namun, bentuk yang paling umum dari tangki hydrogen adalah silinder. Berikut merupakan komponen yang umumnya terdapat pada sebuah tangki hidrogen:
Liner atau lapisan dalam pada tangki berfungsi untuk menahan hidrogen di dalam ruang penyimpanan tangki. Lapisan tersebut mungkin dikelilingi oleh lapisan luar atau Outer Wrapping yang berfungsi untuk menstabilkan Liner terhadap tekanan fisik yang diberikan saat hidrogen disimpan pada tekanan tinggi dan menciptakan lapisan insulasi termal tambahan (tangki hidrogen tekanan tinggi). Neck atau leher tangki adalah tempat hidrogen dimasukkan dan dikeluarkan dari tangki, dan terhubung ke valve (katup) atau selang tangki hidrogen yang memungkinkan masukan dan keluaran hydrogen yang terkendali. Biasanya, terdapat juga katup keselamatan dan mungkin juga sensor atau konstruksi katup tangki hydrogen yang lebih kompleks yang memungkinkan pengaturan tekanan tambahan. End plug atau tutup akhir opsional adalah pembukaan sekunder pada tangki.
PEMILIHAN MATERIAL
Umumnya hydrogen storage terbuat dari bahan Carbon Fiber Composite, Baja, Aluminium, atau Material Polymer-Based. Di antara bahan yang umum digunakan untuk Compressed Hydrogen Storage, baja umumnya dianggap sebagai pilihan yang paling hemat biaya. Tangki baja banyak digunakan karena keawetannya, ketersediaannya, dan biaya yang relatif lebih rendah dibandingkan dengan bahan lain seperti Carbon Fiber Composite atau paduan aluminium. Tangki baja sering dilapisi dengan bahan penghalang untuk mencegah hydrogen embrittlement. Baja adalah bahan yang sudah teruji dengan sejarah penggunaan yang panjang di berbagai industri, termasuk otomotif dan aplikasi industri. Ketersediaan yang luas dan proses manufaktur menjadikan baja kompetitif secara biaya. Tangki baja dapat diproduksi dalam jumlah besar, sehingga dapat menurunkan biaya produksi.
Jenis baja yang akan digunakan adalah HSLA ASTM A1011. ASTM A1011 umumnya dianggap sebagai pilihan yang lebih terjangkau. Baja ini menawarkan kombinasi kekuatan tinggi, keformabilitasan yang baik, dan kemampuan las yang sangat baik. Baja ini dapat memberikan integritas struktural yang diperlukan dan memenuhi persyaratan keamanan untuk penyimpanan hidrogen bertekanan tinggi. ASTM A1011 adalah spesifikasi untuk lembaran dan strip baja karbon yang dihasilkan dengan metode hot-rolled, biasa digunakan dalam aplikasi di mana keformabilitasan dan integritas struktural diperlukan.
Design & Optimization of Compressed Hydrogen Storage (Pekan 2)
PERHITUNGAN UKURAN WADAH
Volume Hidrogen yang dibutuhkan adalah 1 lt = 1000 cm^3
Maka,
Jadi, untuk menampung 1 lt Hidrogen dengan diameter wadah 10 cm, tinggi dari wadah tersebut adalah 13 cm.
PEMILIHAN MATERIAL
Material yang akan saya gunakan adalah HSLA ASTM A1011 yang menawarkan kombinasi kekuatan tinggi, keformabilitasan yang baik, dan kemampuan las yang sangat baik. HSLA ASTM A1011 memiliki Yield Strength sebesar 70 Ksi, sehingga allowable strengthnya adalah 2/3 dari yield strength yaitu 47 Ksi.
Untuk ketebalan dari tabung bisa dihitung dengan rumus, sebagai berikut:
E = 0.6
P = 8 bar = 116 psi
R = 50 mm = 1,9685 inch
S = 47000 Psi
Corrosion allowance = 1 mm = 0.039 inch
Jadi, ketebalan maksimalnya adalah 2.1 mm
OPTIMASI HYDROGEN STORAGE
Berikut merupakan code untuk perhitungan biaya Hydrogen Storage menggunakan software Python.
# Spesifikasi sistem penyimpanan hidrogen tank_volume = 1 # Volume tangki penyimpanan (liter) target_pressure = 8 # Tekanan hidrogen yang diinginkan (bar) material_cost_per_kg = 20000 # Harga material per kilogram (Rupiah/kg) max_budget = 500000 # Anggaran maksimum (Rupiah)
# Harga tangki per kilogram (Rupiah/kg) tank_cost_per_kg = 100000
# Harga regulator tekanan per kilogram (Rupiah/kg) regulator_cost_per_kg = 50000
# Menghitung massa tangki def calculate_tank_mass(volume): # Menggunakan asumsi massa jenis tangki berdasarkan material if material == "HSLA ASTM A1011": density = 7.85 # Massa jenis HSLA ASTM A1011 (g/cm^3) else: # Jika material tidak dikenali, anggap massa jenis 7.85 g/cm^3 density = 7.85
# Menghitung massa tangki (kg) tank_mass = volume * 1000 * density
return tank_mass
# Menghitung tekanan hidrogen def calculate_hydrogen_pressure(volume, mass): # Menggunakan asumsi gas hidrogen ideal R = 8.314 # Konstanta gas ideal (J/(mol·K)) M = 2.016 # Massa molar hidrogen (g/mol) V = volume * 1000 # Konversi volume dari liter ke mililiter return (mass / M) * (R * 1000) / V
# Menghitung biaya tangki penyimpanan hidrogen def calculate_hydrogen_storage_cost(): # Menghitung massa tangki tank_mass = calculate_tank_mass(tank_volume)
# Menghitung tekanan hidrogen hydrogen_pressure = calculate_hydrogen_pressure(tank_volume, tank_mass)
# Menghitung biaya tangki tank_cost = tank_mass * tank_cost_per_kg
# Menghitung biaya regulator tekanan regulator_mass = 0.1 # Anggap massa regulator tekanan 0.1 kg (contoh) regulator_cost = regulator_mass * regulator_cost_per_kg
# Menghitung biaya material material_mass = tank_mass + regulator_mass material_cost = material_mass * material_cost_per_kg
# Menghitung total biaya total_cost = tank_cost + regulator_cost + material_cost
# Memeriksa apakah biaya melebihi anggaran maksimum if total_cost > max_budget: return "Biaya melebihi anggaran maksimum"
return total_cost
# Menentukan material tangki material = "HSLA ASTM A1011"
# Menghitung biaya penyimpanan hidrogen cost = calculate_hydrogen_storage_cost()
# Menampilkan biaya penyimpanan hidrogen print("Biaya Penyimpanan Hidrogen: Rp.", cost)
Selanjutnya, merupakan code Python untuk optimasi dari Hydrogen Storage dengan spesifikasi yang diinginkan.
import random import numpy as np from deap import algorithms, base, creator, tools
# Spesifikasi sistem penyimpanan hidrogen tank_volume = 1 # Volume tangki penyimpanan (liter) target_pressure = 8 # Tekanan hidrogen yang diinginkan (bar) material_cost_per_kg = 20000 # Harga material per kilogram (Rupiah/kg) max_budget = 500000 # Anggaran maksimum (Rupiah)
# Batasan-batasan max_tank_mass = 5 # Batas massa tangki maksimum (kg) max_regulator_mass = 0.5 # Batas massa regulator tekanan maksimum (kg)
# Fungsi evaluasi def evaluate(individual): tank_mass = individual[0] regulator_mass = individual[1]
# Hitung perbedaan antara tekanan yang dihasilkan dengan target tekanan pressure_difference = abs(calculate_hydrogen_pressure(tank_volume, tank_mass) - target_pressure)
# Hitung biaya total material_mass = tank_mass + regulator_mass material_cost = material_mass * material_cost_per_kg total_cost = material_cost
# Jika biaya melebihi anggaran maksimal, berikan penalty if total_cost > max_budget: total_cost += max_budget * 10 # Penalty
# Hitung fitness fitness = 1.0 / (total_cost + pressure_difference)
return fitness, # Nilai fitness harus berupa tuple
# Fungsi pembangkit populasi awal def generate_individual(): tank_mass = random.uniform(0, max_tank_mass) regulator_mass = random.uniform(0, max_regulator_mass) return tank_mass, regulator_mass
# Fungsi crossover def crossover(parent1, parent2): child1 = parent1[:] child2 = parent2[:] index = random.randint(0, len(parent1) - 1) child1[index:] = parent2[index:] child2[index:] = parent1[index:] return child1, child2
# Fungsi mutasi def mutate(individual): index = random.randint(0, len(individual) - 1) mutation_range = max_tank_mass if index == 0 else max_regulator_mass individual[index] = random.uniform(0, mutation_range) return individual,
# Menghitung tekanan hidrogen def calculate_hydrogen_pressure(volume, mass): # Menggunakan asumsi gas hidrogen ideal R = 8.314 # Konstanta gas ideal (J/(mol·K)) M = 2.016 # Massa molar hidrogen (g/mol) V = volume * 1000 # Konversi volume dari liter ke mililiter return (mass / M) * (R * 1000) / V
# Inisialisasi algoritma genetika creator.create("FitnessMax", base.Fitness, weights=(1.0,)) creator.create("Individual", list, fitness=creator.FitnessMax) toolbox = base.Toolbox() toolbox.register("individual", tools.initIterate, creator.Individual, generate_individual) toolbox.register("population", tools.initRepeat, list, toolbox.individual) toolbox.register("evaluate", evaluate) toolbox.register("mate", crossover) toolbox.register("mutate", mutate) toolbox.register("select", tools.selTournament, tournsize=3)
def optimize_hydrogen_storage(): # Inisialisasi populasi awal population_size = 50 population = toolbox.population(n=population_size)
# Inisialisasi statistik stats = tools.Statistics(lambda ind: ind.fitness.values) stats.register("min", np.min) stats.register("avg", np.mean)
# Menjalankan algoritma genetika generations = 10 population, logbook = algorithms.eaSimple(population, toolbox, cxpb=0.5, mutpb=0.2, ngen=generations, stats=stats, verbose=False)
# Mendapatkan individu terbaik best_individual = tools.selBest(population, k=1)[0]
return best_individual
# Menjalankan optimasi penyimpanan hidrogen best_individual = optimize_hydrogen_storage()
# Menampilkan hasil optimasi best_tank_mass = best_individual[0] best_regulator_mass = best_individual[1] best_hydrogen_pressure = calculate_hydrogen_pressure(tank_volume, best_tank_mass)
print("Optimasi Hydrogen Storage:") print("Massa Tangki Terbaik:", best_tank_mass, "kg") print("Massa Regulator Terbaik:", best_regulator_mass, "kg") print("Tekanan Hidrogen Terbaik:", best_hydrogen_pressure, "bar")
FINAL DESIGN
Video Link for Presentation Video
Here's the video link:
https://www.youtube.com/channel/UCWxgC9IdD5gzAzA9-QLg4aw
https://drive.google.com/file/d/1YRiv4C6YrcUV7Ws1XhExvBuCkAAmH3N8/view?usp=sharing