Spaces:
Sleeping
Sleeping
File size: 1,860 Bytes
949d1e6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import streamlit as st
# Function for calculations
def calculate_solar_requirements(total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup):
# Energy needs per day (in kWh)
daily_energy = total_load * efficiency_loss / 1000
# Required solar generation (kW)
solar_capacity_needed = daily_energy / sun_hours
# Number of panels
num_panels = solar_capacity_needed * 1000 / panel_wattage
# Battery capacity (kWh)
battery_capacity = 0
if battery_backup > 0:
battery_capacity = daily_energy * battery_backup
return daily_energy, solar_capacity_needed, num_panels, battery_capacity
# Streamlit App
st.title("Solar Panel Calculator")
st.sidebar.header("User Input")
# User Inputs
total_load = st.sidebar.number_input("Total Load (W)", min_value=100, max_value=100000, value=5000)
sun_hours = st.sidebar.number_input("Sun Hours (Hours/day)", min_value=1.0, max_value=12.0, value=5.0)
panel_wattage = st.sidebar.number_input("Panel Wattage (W)", min_value=100, max_value=1000, value=300)
efficiency_loss = st.sidebar.slider("Efficiency Loss (%)", min_value=0, max_value=30, value=15)
battery_backup = st.sidebar.number_input("Battery Backup Hours (optional)", min_value=0, max_value=24, value=0)
# Calculate
if st.sidebar.button("Calculate"):
daily_energy, solar_capacity_needed, num_panels, battery_capacity = calculate_solar_requirements(
total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup
)
# Display Results
st.subheader("Results")
st.write(f"Daily Energy Consumption: {daily_energy:.2f} kWh")
st.write(f"Solar Capacity Needed: {solar_capacity_needed:.2f} kW")
st.write(f"Number of Panels Required: {num_panels:.0f}")
if battery_backup > 0:
st.write(f"Battery Capacity Required: {battery_capacity:.2f} kWh")
|