Manual Técnico de HormigonIA
Especificación Matemática y Algorítmica del Core de Cálculo
1. Arquitectura General y Flujo
HormigonIA es una plataforma científica de diseño y ajuste de mezclas de hormigón que opera bajo un flujo lógico estructurado. El sistema conecta parámetros de laboratorio granulométrico, leyes clásicas de empaquetamiento y modelos de reología viscoplástica avanzada para lograr un diseño óptimo tanto en teoría como en obra.
El núcleo de cálculo se divide en seis subsistemas matemáticos autónomos comunicados mediante APIs en formato JSON. En este manual se describen detalladamente las ecuaciones que gobiernan cada módulo.
Módulo de Dosificación Racional y Leyes de Mezcla
Este módulo calcula las proporciones teóricas de agua, cemento y agregados por metro cúbico utilizando el método racional clásico ajustado con la curva límite de Bolomey.
1. Resistencia de Diseño (f'c) y Resistencia Media de Dosificación (f'cm)
La resistencia especificada en el proyecto ($f'_c$) se ingresa libremente como un valor numérico editable (en MPa), eliminando las clases rígidas Hx. Para calcular el dosaje base, la resistencia media requerida en el laboratorio ($f'_{cm}$) se deduce sumando el margen de seguridad probabilístico:
$$f'_{cm} = f'_c + 1.65 \cdot S\text{ (MPa)}$$Donde la desviación estándar por defecto es $S = 4.0\text{ MPa}$ para control estándar de obra.
2. Relación Agua/Cemento (Ley de Abrams) e Inversión Teórica
La relación $w/c$ teórica se determina a partir de la categoría de cemento (CPC40, CPN50, CPC30, LC3) y la resistencia media deseada aplicando la Ley de Abrams modificada por aire atrapado:
$$f'_{cm} = f'_{cm, cemento} \cdot 1.20 \cdot Corr_{aire}$$Donde $Corr_{aire}$ representa la corrección por porcentaje de aire atrapado ($Air\%$):
$$Corr_{aire} = \max\left(0.40, 1 - 0.05 \cdot \max(0, Air\% - 1.5)\right)$$Despejando analíticamente la relación agua/cemento óptima a partir de la constante $K$ del cemento:
$$w/c = \frac{\ln\left(\frac{K}{f'_{cm, cemento}}\right)}{\ln(8.5)} \quad \text{donde } f'_{cm, cemento} = \frac{f'_{cm}}{1.20 \cdot Corr_{aire}}$$Las constantes de calidad de cemento $K$ adoptadas son:
| Categoría de Cemento | Parámetro A (MPa) | Parámetro B | Resistencia Límite Nominal |
|---|---|---|---|
| CP30 | 78.4 | 2.35 | 30 MPa |
| CP40 | 94.2 | 2.28 | 40 MPa |
| CP50 | 112.5 | 2.21 | 50 MPa |
3. Curva Combinada de Agregados (Bolomey)
La distribución óptima del volumen de agregados se calcula para ajustarse a la parábola ideal de Bolomey. El porcentaje acumulado pasante ideal ($P$) para cada tamiz de diámetro $d$ es:
$$P(d) = A + (100 - A) \sqrt{\frac{d}{D}}$$Donde:
- $d$: Diámetro del tamiz en análisis (en mm).
- $D$: Tamaño máximo nominal del árido grueso (en mm).
- $A$: Parámetro de Bolomey (coeficiente de bombeabilidad y consistencia) que varía entre $8$ y $14$ según la trabajabilidad buscada y la aspereza de los agregados.
4. Cálculo de Volumen Absoluto
Una vez calculada la dosis de agua libre ($W$) y de cemento ($C = W / (w/c)$), el volumen restante de la mezcla se completa con los agregados para asegurar un volumen de pastón unitario de exactly $1\text{ m}^3$ ($1000\text{ L}$), incorporando el contenido de aire atrapado ($Air\%$):
$$V_{agregados} = 1000 \cdot \left(1 - \frac{Air\%}{100}\right) - \left(\frac{C}{\rho_{cemento}} + \frac{W}{\rho_{agua}} + V_{aditivos}\right)$$5. Esquemas de Flujo y Sincronización
Para optimizar la ergonomía en obra y el rendimiento de procesamiento en dispositivos de pantalla reducida (móviles), se estructuró la aplicación de manera modular: Los parámetros analíticos de dosificación granulométrica y compacidad física (Módulo de Finura MF, Desviación Granulométrica combinada, Espesor de Pasta MPT y Porosidad de la Matriz MFP bajo el modelo de Larrard) se trasladaron a la pestaña Laboratorio de Hormigón. En la pantalla de la calculadora de hormigón principal se conserva el indicador de asentamiento predicho y se introduce una entrada sincronizada para el cono medido en obra.
A. Control de Resistencia de Diseño y Cálculo Teórico
El siguiente esquema de flujo ilustra la interacción técnica entre la resistencia de diseño ingresada, los mínimos reglamentarios y el recálculo teórico en base a las modificaciones del laboratorio:
B. Control del Volumen de Hormigón
El siguiente esquema detalla el proceso de selección de maquinadas, metros cúbicos y el manejo adaptativo de carga de mezclas históricas:
C. Sincronización de Consistencia y Ajuste Reológico
Para simplificar el flujo de trabajo del operador en obra, el asentamiento medido en gramos o centímetros se replica bidireccionalmente entre el panel de consistencia de la calculadora principal y el panel de control de calidad de reología. El siguiente esquema ilustra el flujo de sincronización y cómo se alimenta el motor de corrección de dosificación por desvíos:
D. Cronómetro de Curado Persistente en Tiempo Real
El siguiente esquema de máquina de estados detalla el flujo de inicialización, persistencia en localStorage y la lógica de ejecución del cronómetro de curado húmedo:
Módulo de Corrección por Humedad de Áridos
Ajusta el pesaje de los agregados húmedos y calcula el balance de agua neta a incorporar a la mezcladora debido al agua libre y la absorción interna.
1. Peso Húmedo de los Agregados
Para compensar el peso de agua contenido en las pilas de acopio en obra y garantizar que la cantidad de esqueleto seco permanezca constante, los pesos secos de diseño de arena ($S_s$) y piedra ($P_s$) se ajustan a pesos húmedos ($S_h$ y $P_h$):
$$S_h = S_s \cdot \left(1 + \frac{h_{sand}}{100}\right) \cdot V_{paston}$$ $$P_h = P_s \cdot \left(1 + \frac{h_{stone}}{100}\right) \cdot V_{paston}$$Donde $h_{sand}$ y $h_{stone}$ son las humedades gravimétricas medidas en %.
2. Aporte de Agua Libre
El árido sólo aporta agua líquida a la mezcla si su humedad medida excede su capacidad interna de absorción ($abs_{sand}$, $abs_{stone}$):
$$W_{libre, sand} = S_s \cdot \left(\frac{h_{sand} - abs_{sand}}{100}\right) \cdot V_{paston}$$ $$W_{libre, stone} = P_s \cdot \left(\frac{h_{stone} - abs_{stone}}{100}\right) \cdot V_{paston}$$Si un árido se encuentra extremadamente seco ($h < abs$), el término será negativo. Esto representa agua absorbida por los agregados secos, la cual se compensará adicionando más agua libre de amasado.
3. Agua Neta de Amasado
El agua final a dosificar en el trompo ($W_{amasado, final}$) descuenta las contribuciones de los agregados del agua de diseño corregida por el factor de eficiencia de amasado de laboratorio ($1.1$) y multiplicada por el desvío granulométrico combinatorio ($G$):
$$W_{amasado, final} = \left[ \frac{(W_{objetivo} \cdot V_{paston}) - W_{libre, sand} - W_{libre, stone}}{1.1} \right] \cdot G$$Módulo de Reología y Predicción de Asentamiento
Resuelve el acoplamiento físico-químico entre el asentamiento del cono de Abrams, la evaporación ambiental y la hidratación térmica del cemento.
1. Conversión Abrams - Esfuerzo de Fluencia (Roussel)
El asentamiento medido ($S$) se traduce en el esfuerzo de fluencia umbral ($\tau_y$) del hormigón fresco expresado en Pascales:
$$\tau_y = \frac{\rho_{real} \cdot g \cdot (H - S)}{225}$$Donde $H = 0.30\text{ m}$ (altura del cono), $g = 9.81\text{ m/s}^2$ y $\rho_{real}$ es la densidad fresca del hormigón compactado.
2. Tasa de Evaporación Superficial (Menzel)
La evaporación de agua superficial se calcula a partir de las condiciones climatológicas locales (temperatura ambiente $T_{amb}$, temperatura de la masa de hormigón $T_c$, humedad relativa $HR$ y velocidad del viento $V_{viento}$):
$$E_v = 5.0 \cdot \left[ (T_c + 18)^{2.5} - HR \cdot (T_{amb} + 18)^{2.5} \right] \cdot (V_{viento} + 0.4) \cdot 10^{-6}\ (\text{kg/m}^2/\text{h})$$El decremento de agua líquida libre penaliza la fluidez aumentando el esfuerzo de corte umbral:
$$\tau_{clima}(t) = \frac{\tau(t)}{(w_{remanente} / w_{inicial})^3}$$3. Cinética de Hidratación (Arrhenius)
La rigidización química temprana debido a la hidratación se calcula empleando el principio de madurez por edad equivalente a $20^\circ\text{C}$:
$$t_e = \int_0^t \exp\left( -\frac{E_a}{R} \cdot \left[ \frac{1}{273.15 + T_c(t)} - \frac{1}{293.15} \right] \right) dt$$ $$\tau_{quimico}(t) = \tau_{inicial} + k_{20} \cdot (t_e)^{1.2}$$4. Algoritmos de Corrección Reológica
A. Para pastones secos (Falta de fluidez):
1. Aditivo Superplastificante (grams):
$$\Delta SP = \frac{\tau_{fresco} - \tau_{target}}{k_{sp}} \cdot M_{cemento\ (paston)}$$2. Adición de agua y cemento compensatorio:
$$\Delta W = V_{paston} \cdot W_{1m3} \cdot \left[ \left(\frac{S_1}{S_{target}}\right)^{0.10} - 1.0 \right] \quad \text{y} \quad \Delta C = \frac{\Delta W}{(w/c)_{max}}$$B. Para pastones fluidos (Exceso de fluidez con riesgo de segregación):
$$\text{Masa de sólidos adicionales: } M_{solidos} = V_{paston} \cdot \left( \frac{\beta}{\tau_{target} - \tau_{fresco}} \right)$$5. Re-escalado de Rendimiento Volumétrico a 1 m³
Sumadas las masas agregadas por la corrección al pastón, se recalcula el volumen real producido ($V_{real}$) y se re-escala al volumen exacto de $1000\text{ L}$:
$$V_{real} = \frac{\sum M_{componentes\ corregidos}}{\rho_{real}}$$ $$\gamma = \frac{1.0}{V_{real}} \implies Componente_{1m3, final} = Componente_{paston, corregido} \cdot \gamma$$6. Cronómetro de Curado Persistente en Tiempo Real
Para garantizar el seguimiento continuo del período de curado húmedo sugerido, el sistema integra un cronómetro regresivo que opera bajo las siguientes directrices técnicas:
- Cálculo de Duración Teórica:
$$Duración_{curado} = \text{curingDays} \cdot 24 \cdot 3600 \cdot 1000\ (\text{ms})$$
La variable
curingDaysse recalcula dinámicamente en base a la temperatura promedio del pronóstico del clima a 72 horas para asegurar la adecuada hidratación del cemento. - Persistencia de Estado Local (Local Storage):
Al presionar "Iniciar Producción", se registran dos variables clave en
localStorage:curingStartTime: Timestamp en milisegundos del instante exacto de inicio (Date.now()).curingDurationMs: La duración total calculada en milisegundos.
setIntervalde 1 segundo) sin perder el progreso. - Visualización de Progreso: La barra de progreso se actualiza dinámicamente computando la fracción transcurrida: $$\text{Progreso (\%)} = \min\left(100,\ \frac{\text{Date.now()} - \text{curingStartTime}}{\text{curingDurationMs}} \cdot 100\right)$$
- Desencadenador de Notificaciones de Escritorio (Push API): Si el navegador otorga permisos, se invoca la API nativa de notificaciones al iniciar la elaboración y al concluir la cuenta regresiva, informando al operador sobre la culminación del período crítico de curado.
Módulo de Asistente Inteligente (HormigonIA Chat)
Documenta el flujo de integración de Large Language Models (LLM) con el motor analítico de cálculo.
1. Pipeline de Datos y Contexto
El asistente inteligente utiliza el modelo **Gemini 3.5 Flash** optimizado para razonamiento de ingeniería de materiales. El sistema recopila el estado actual de la dosificación y lo inyecta como contexto estructurado en el system prompt antes de cada consulta del usuario.
[System Context Injected in JSON]
{
"diseño_actual": {
"cemento": "CP40",
"fcm_target": 28.5,
"relacion_ac": 0.49,
"agua_m3": 178.2,
"cemento_m3": 363.7
},
"granulometria_combinada": {
"tamiz_19mm": 98.4,
"tamiz_4.75mm": 42.1,
"tamiz_0.075mm": 1.2
},
"clima": {
"temperatura": "28.4°C",
"evaporacion_menzel": "0.42 kg/m²/h"
}
}
2. Parsing de Parámetros
El backend procesa la respuesta del LLM. Si el asistente sugiere ajustes o detecta anomalías granulométricas (como un desvío crítico respecto a la curva de Bolomey), puede proponer correcciones estructuradas que el frontend lee para disparar eventos visuales.
Módulo de Base de Datos y Sincronización
Detalla el diseño de almacenamiento persistente y las políticas de seguridad a nivel de fila (RLS).
1. Esquema Relacional de Supabase
Las dosificaciones se almacenan en la tabla `saved_mixes` vinculada a la tabla de autenticación nativa de Supabase (`auth.users`):
Table: saved_mixes
+----------------+--------------------------+
| Column Name | Data Type |
+----------------+--------------------------+
| id | UUID (Primary Key) |
| user_id | UUID (Foreign Key) |
| name | TEXT |
| created_at | TIMESTAMP WITH TIME ZONE |
| concrete_class | TEXT |
| design_method | TEXT |
| exposure_class | TEXT |
| batch_volume | NUMERIC |
| wc_ratio | NUMERIC |
| cement_base | NUMERIC |
| sieve_data | JSONB |
| additives | JSONB |
| materials | JSONB |
+----------------+--------------------------+
2. Row Level Security (RLS)
Para asegurar que ningún usuario pueda leer ni alterar las recetas de otros, la base de datos implementa políticas estrictas en el motor de PostgreSQL:
-- Política SQL para control de lectura propio:
CREATE POLICY "Permitir lectura propia" ON saved_mixes
FOR SELECT USING (auth.uid() = user_id);