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.txt
y.streamlit/config.toml
. Enrequirements.txt
incluye: streamlit, sympy, numpy, pandas, plotly, scipy, python-dotenv. Configura.venv
como intérprete en Codespaces, instala dependencias y verifica versiones. No generes aún páginas.”
app.py
“Genera
app.py
con 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.py
con funciones:
symbols_safe()
para declarar símbolos con nombres LaTeX.solve_positive(eq_or_system, vars_target)
envolviendosympy.solve
y 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.py
que:
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.py
que:
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.py
que:
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.csv
con 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.md
con: 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.py
conpytest
que verifique:
solve_positive
retorna 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
DataFrame
con 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.txt
y 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.”