Guía solicitada: prompts para que Copilot genere una app multipágina en Streamlit + SymPy que implemente los tres apartados del PDF agregado al repositorio. Sin código, solo prompts listos para pegar. Copilot debe leer el PDF del repo y seguir sus ecuaciones y supuestos.
Estructura objetivo:
.
├─ app.py
├─ pages/
│ ├─ 1_ Evaluacion_del_secador.py
│ ├─ 2_ Conveccion_natural_caudales.py
│ └─ 3_ Flujo_a_traves_de_lecho.py
├─ utils/
│ └─ thermo_helpers.py
├─ data/
│ └─ ejemplos.csv
├─ tests/
│ └─ test_utils.py
├─ requirements.txt
└─ .streamlit/
└─ config.toml
“Crea
.venv,requirements.txty.streamlit/config.toml. Enrequirements.txtincluye: streamlit, sympy, numpy, pandas, plotly, scipy, python-dotenv. Configura.venvcomo intérprete en Codespaces, instala dependencias y verifica versiones. No generes aún páginas.”
app.py“Genera
app.pycon título ‘Solar Dryers — SymPy + Streamlit’. Incluye: descripción breve del objetivo; enlaces a las tres páginas; barra lateral con verificación de versiones; sección ‘Cómo usar’: 1) cargar parámetros o seleccionar casos dedata/ejemplos.csv, 2) resolver simbólicamente con SymPy, 3) visualizar, 4) exportar CSV. Agrega una tarjeta ‘Fuentes’ indicando que las fórmulas provienen del PDF del repositorio.”
utils/thermo_helpers.py“Crea
utils/thermo_helpers.pycon funciones:
symbols_safe()para declarar símbolos con nombres LaTeX.solve_positive(eq_or_system, vars_target)envolviendosympy.solvey filtrando soluciones reales positivas.sensitivity_table(expr, var, center, pct_range, steps)que retorneDataFrame.- Conversores y constantes: L_v = 2320 kJ/kg (como 2.32e6 J/kg),
kJ_to_J, horas↔︎segundos.- Validadores físicos: caudales>0, áreas>0, temperaturas en °C/K coherentes. Documenta con docstrings. Sin
Objetivo: calcular System Drying Efficiency (η_d) y Pick-Up Efficiency (η_p) según el apéndice 7, usando los datos del ejemplo y admitiendo entradas generales. Fórmulas base y ejemplo están en el PDF (η_d con masa evaporada W, calor latente L_v, insolación total I_t y área A_c; η_p con caudal volumétrico v, densidad ρ, tiempo t y diferencia de humedades absolutas h_as − h_i).
“Crea
pages/1_ Evaluacion_del_secador.pyque:
Muestre un formulario con entradas: masa fresca y humedad inicial (% b.h.), humedad final objetivo (% b.h.), área de colector A_c, insolación diaria (kJ/m²·día) y días, caudal volumétrico v (m³/s), densidad de aire ρ (kg/m³), tiempo total (días u horas), T_amb (°C), RH_amb (%), T_entrada_secador (°C).
Calcule simbólicamente:
- W a partir de masas en base húmeda (convierte a base seca).
- η_d = (W·L_v) / (A_c·I_t) con (I_t = ).
- η_p = W / (v·ρ·t·(h_{as}-h_i)); muestra cómo estimar (h_i) y (h_{as}) apoyándose en el método del apéndice (describir el uso de carta psicrométrica o aproximaciones).
Inserte una sección ‘Ejemplo del PDF’ con valores por defecto replicando el caso ilustrativo para validar resultados cercanos a ~20% en ambas eficiencias.
Muestre: derivaciones simplificadas con LaTeX, resultados numéricos, gráfico de sensibilidad de η_d vs insolación y de η_p vs (h_as − h_i), y botón para exportar CSV.
Añada notas y supuestos citando el apéndice 7 del PDF.”
Objetivo: estimar caudal por convección natural y altura de chimenea requerida según el apéndice 12, con relaciones (v = a,(ΔP/h_b)^b) y (ΔP = 0.00308,ΔT,g,H); ejemplo con arroz y parámetros a≈0.0008, b≈0.87, y análisis de sensibilidad al variar H en ±1/3 y ΔT por nubosidad.
“Crea
pages/2_ Conveccion_natural_caudales.pyque:
Entradas: T_amb, RH_amb, T_secador, geometría (H₁, H₂, H₃=chimenea), espesor de lecho h_b, constantes a y b del material, g.
Calcule simbólicamente y evalúe:
- (ΔT = T_{secador} - T_{amb}).
- (ΔP = 0.00308·ΔT·g·H) con (H = H_1 + H_2 + H_3).
- (v = a,(ΔP/h_b)^b) y, si procede, (V = v·A) con un área opcional.
Incluya un bloque ‘Diseño de H₃’: resolver H₃ para lograr un v objetivo dado.
Panel de sensibilidad:
- H₃ aumentado y disminuido en 1/3 y reporte del cambio % de v.
- Efecto de reducción de T_secador (p. ej., nublado).
Muestre derivaciones con SymPy, resultados, y gráficos de v vs H y v vs ΔT.
Incluir una sección ‘Ejemplo del PDF’ que replique los números guía y resultados aproximados reportados. Exportar CSV.”
Objetivo: estimar el caudal a través del lecho y la potencia del ventilador para un secador de convección forzada con cámara y colector separados, según el apéndice 13. Usar (v = a,(ΔP/h_b)^b) con a≈0.0003, b≈1, convertir masa y densidad aparente a volumen de lecho, y calcular potencia de ventilador (P_{aire} = V·ΔP) y potencia de motor considerando eficiencia.
“Crea
pages/3_ Flujo_a_traves_de_lecho.pyque:
Entradas: dimensiones de cámara (L×W×D), masa del producto y densidad aparente, resistencia por metro de profundidad (Pa/m), constantes a y b del material, eficiencia mecánica de ventilador η_m.
Cálculos:
- Profundidad de lecho (h_b = /).
- (ΔP = ()·h_b).
- (v = a·(ΔP/h_b)^b) y (V = v·Área).
- Potencia: (P_{aire} = V·ΔP) y (P_{motor} = P_{aire}/η_m).
Resultados: valores numéricos y tabla; gráfico de sensibilidad de V y P frente a (ΔP) y h_b.
‘Ejemplo del PDF’: reproduzca el caso y valide órdenes de magnitud (V≈0.4 m³/s, potencia ~125 W y ~210 W con η_m≈0.6). Exportar CSV.”
data/ejemplos.csv“Crea
data/ejemplos.csvcon 8–12 filas:
- Evaluación: masas, humedades, A_c, insolación/días, v, ρ, t, T_amb, RH_amb, T_entrada.
- Convección natural: T_amb, T_secador, H₁, H₂, H₃, h_b, a, b.
- Lecho: L, W, D, masa, densidad_aparente, resistencia_Pa_por_m, a, b, η_m. Incluye encabezados claros y una fila comentada con unidades.”
README.md“Genera
README.mdcon: propósito, ecuaciones base citando los apéndices del PDF, supuestos y limitaciones, instalación y ejecución en Codespaces, guía de entrada de datos, explicación de cada página, exportación de resultados, resolución de problemas, y referencias a los apéndices:
- Evaluation of Dryer Performance (Apéndice 7).
- Estimation of Natural Convection Air Flow Rates (Apéndice 12).
- Calculation of Air Flow Through Drying Bed (Apéndice 13).”
tests/test_utils.py“Agrega
tests/test_utils.pyconpytestque verifique:
solve_positiveretorna soluciones reales positivas.- Para un subconjunto de filas de
data/ejemplos.csv, las páginas generan resultados finitos y positivos (η_d, η_p, v, V, P).- Las funciones de sensibilidad retornan
DataFramecon valores numéricos y sin NaN.”
“Configura tarea en Codespaces para
streamlit run app.py, expón el puerto público y añade al README una sección de despliegue en Streamlit Community Cloud, indicando selección deapp.py, uso derequirements.txty limpieza de caché ante cambios.”
“Revisa que cada página muestre derivaciones con
st.latex, valide rangos físicos, incluya panel de sensibilidad y exportación CSV, y que los ejemplos reproducen los órdenes de magnitud del PDF. Uniforma estilo visual.”