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.


Guía — App “Solar Dryers · SymPy + Streamlit”

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

0) Prompt inicial de entorno y dependencias

“Crea .venv, requirements.txt y .streamlit/config.toml. En requirements.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.”


1) Prompt para 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 de data/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.”


2) Prompt para utilidades 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) envolviendo sympy.solve y filtrando soluciones reales positivas.
  • sensitivity_table(expr, var, center, pct_range, steps) que retorne DataFrame.
  • 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 print, devuelve valores o lanza excepciones claras.”

3) Página 1 — Evaluation of Dryer Performance

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:

    1. W a partir de masas en base húmeda (convierte a base seca).
    2. η_d = (W·L_v) / (A_c·I_t) con (I_t = ).
    3. η_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.”


4) Página 2 — Estimation of Natural Convection Air Flow Rates

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:

    1. (ΔT = T_{secador} - T_{amb}).
    2. (ΔP = 0.00308·ΔT·g·H) con (H = H_1 + H_2 + H_3).
    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.”


5) Página 3 — Calculation of Air Flow Through Drying Bed

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:

    1. Profundidad de lecho (h_b = /).
    2. (ΔP = ()·h_b).
    3. (v = a·(ΔP/h_b)^b) y (V = v·Área).
    4. 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.”


6) Prompt para 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.”

7) Prompt para 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).”

8) Prompt para pruebas tests/test_utils.py

“Agrega tests/test_utils.py con pytest 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.”

9) Prompt para ejecución y despliegue

“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 de app.py, uso de requirements.txt y limpieza de caché ante cambios.”


10) Prompt de revisión final

“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.”


Referencias del PDF incorporado

  • Evaluación del desempeño del secador: definición de (η_d) y (η_p), ejemplo con pimientos, insolación y psicrometría.
  • Convección natural y altura de chimenea: relación (ΔP = 0.00308,ΔT,g,H), ley (v=a(ΔP/h_b)^b), ejemplo con arroz y variaciones de H y (ΔT).
  • Flujo a través del lecho y potencia del ventilador: uso de (v=a(ΔP/h_b)^b), cálculo de (V) y (P_{aire}=V·ΔP), potencia de motor con eficiencia.