Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import numpy as np | |
| st.set_page_config(page_title="Cooling Tower Operation", layout="centered") | |
| st.title("Cooling Tower Operation Simulator") | |
| # User Inputs | |
| Ti = st.number_input("Hot Water Temperature (°C)", min_value=30.0, max_value=90.0, value=45.0) | |
| To = st.number_input("Cold Water Temperature (°C)", min_value=10.0, max_value=Ti, value=35.0) | |
| Twb = st.number_input("Wet Bulb Temperature (°C)", min_value=5.0, max_value=To, value=28.0) | |
| m_water = st.number_input("Water Flow Rate (kg/s)", min_value=0.1, value=10.0) | |
| # Constants | |
| cp = 4.18 # Specific heat of water in kJ/kg°C | |
| # Calculations | |
| Q = m_water * cp * (Ti - To) | |
| range_temp = Ti - To | |
| approach = To - Twb | |
| effectiveness = range_temp / (Ti - Twb) | |
| # Results | |
| st.subheader("Operational Results") | |
| st.write(f"**Cooling Range:** {range_temp:.2f} °C") | |
| st.write(f"**Approach:** {approach:.2f} °C") | |
| st.write(f"**Effectiveness:** {effectiveness:.2%}") | |
| st.write(f"**Heat Rejected:** {Q:.2f} kW") | |
| # Optional Plot | |
| time = np.linspace(0, 10, 100) | |
| heat_loss = Q * np.exp(-0.3 * time) | |
| st.line_chart({"Heat Rejected Over Time (kW)": heat_loss}) |