Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| # Function to calculate the total cost for AC and DC systems | |
| def calculate_costs(ac_distance_cost, ac_load_cost, ac_voltage_cost, dc_distance_cost, dc_load_cost, dc_voltage_cost, distance, load_power, project_lifespan): | |
| # AC System Cost Calculation | |
| ac_initial_cost = ac_distance_cost * distance + ac_load_cost * load_power + ac_voltage_cost * 220 # Using 220 kV for AC voltage cost | |
| ac_maintenance_cost = ac_initial_cost * 0.05 # Example maintenance cost per year (5%) | |
| ac_total_cost = ac_initial_cost + (ac_maintenance_cost * project_lifespan) | |
| # DC System Cost Calculation | |
| dc_initial_cost = dc_distance_cost * distance + dc_load_cost * load_power + dc_voltage_cost * 220 # Using 220 kV for DC voltage cost | |
| dc_maintenance_cost = dc_initial_cost * 0.05 # Example maintenance cost per year (5%) | |
| dc_total_cost = dc_initial_cost + (dc_maintenance_cost * project_lifespan) | |
| return ac_total_cost, dc_total_cost | |
| # Function to calculate energy losses for AC and DC systems (simplified for demonstration) | |
| def calculate_losses(distance, load_power, is_dc): | |
| if is_dc: | |
| loss = 0.02 * distance * load_power # 2% loss per 100 km for DC | |
| else: | |
| loss = 0.05 * distance * load_power # 5% loss per 100 km for AC | |
| return loss | |
| # Streamlit Interface | |
| st.title("AC vs DC Transmission Line Cost and Efficiency Comparison") | |
| # Input Parameters | |
| ac_voltage = st.number_input("AC Voltage (kV)", value=220.00) | |
| frequency = st.number_input("Frequency (Hz)", value=50.00) | |
| dc_voltage = st.number_input("DC Voltage (kV)", value=220.00) | |
| load_power = st.number_input("Load Power (MW)", value=100.00) | |
| distance = st.number_input("Distance (km)", value=500.00) | |
| ac_distance_cost = st.number_input("AC Distance Cost Factor ($/km)", value=1000.00) | |
| ac_load_cost = st.number_input("AC Load Cost Factor ($/MW)", value=0.50) | |
| ac_voltage_cost = st.number_input("AC Voltage Cost Factor ($/kV)", value=0.10) | |
| dc_distance_cost = st.number_input("DC Distance Cost Factor ($/km)", value=1500.00) | |
| dc_load_cost = st.number_input("DC Load Cost Factor ($/MW)", value=0.80) | |
| dc_voltage_cost = st.number_input("DC Voltage Cost Factor ($/kV)", value=0.20) | |
| project_lifespan = st.number_input("Project Lifespan (years)", value=30) | |
| # Calculate costs and losses | |
| ac_total_cost, dc_total_cost = calculate_costs(ac_distance_cost, ac_load_cost, ac_voltage_cost, | |
| dc_distance_cost, dc_load_cost, dc_voltage_cost, | |
| distance, load_power, project_lifespan) | |
| ac_loss = calculate_losses(distance, load_power, is_dc=False) | |
| dc_loss = calculate_losses(distance, load_power, is_dc=True) | |
| # Display Results | |
| st.subheader("Cost Comparison (Over Project Lifespan)") | |
| st.write(f"Total AC System Cost: ${ac_total_cost:,.2f}") | |
| st.write(f"Total DC System Cost: ${dc_total_cost:,.2f}") | |
| st.subheader("Energy Losses (Over Distance)") | |
| st.write(f"Energy Loss in AC System: {ac_loss:,.2f} MW") | |
| st.write(f"Energy Loss in DC System: {dc_loss:,.2f} MW") | |
| # Graphical Comparison | |
| fig, ax = plt.subplots(2, 1, figsize=(10, 10)) | |
| # Cost Comparison Graph | |
| ax[0].bar(["AC", "DC"], [ac_total_cost, dc_total_cost], color=["blue", "red"]) | |
| ax[0].set_title("Total System Cost Comparison") | |
| ax[0].set_ylabel("Total Cost ($)") | |
| ax[0].set_xlabel("Transmission Type") | |
| # Loss Comparison Graph | |
| ax[1].bar(["AC", "DC"], [ac_loss, dc_loss], color=["blue", "red"]) | |
| ax[1].set_title("Energy Loss Comparison") | |
| ax[1].set_ylabel("Energy Loss (MW)") | |
| ax[1].set_xlabel("Transmission Type") | |
| # Display the plots | |
| st.pyplot(fig) | |