Modelo de Calidad del Agua
1. Descripción general
HydroPol2D simula el transporte de contaminantes utilizando una formulación de acumulación y lavado acoplada al modelo hidrodinámico. El modelo rastrea:
- masa contaminante almacenada en la superficie,
- eliminación de contaminantes debido al flujo (lavado),
- redistribución entre células vecinas,
- exportar a través de fronteras de salida.
Figura 1. Los tres pasos del modelo de calidad del agua basado en masa. La acumulación en tiempo seco fija la masa inicial, el lavado la saca de cada celda por las caras por donde sale el agua, y el transporte la lleva de celda en celda hasta la salida.
La variable gobernante es:
dónde:
- = masa de contaminante por celda
El modelo es totalmente conservador de masas y está acoplado dinámicamente al enrutamiento de flujo.
La validación actual se centra en el modo de lavado masivo
(flag_wq_model = 0). La validación utiliza escalas de parámetros de acumulación de estilo SWMM.
para sólidos suspendidos totales, pero la fuente verdadera es un balance de masa analítico
solución en lugar de un análisis numérico SWMM o un polutógrafo de campo calibrado.
2. Almacenamiento de contaminantes
Cada celda almacena una masa contaminante:
La concentración regional correspondiente es:
dónde:
- = área de celda
Se definen umbrales mínimos y máximos:
- → masa mínima de contaminante activo
- → límite de saturación
Por debajo de un umbral:
3. Acoplamiento hidrodinámico
El modelo de calidad del agua usa el caudal , en , que sale de una celda por cada cara en el paso de tránsito. Python toma directamente de los caudales en las caras calculados por el solver de tránsito.
MATLAB guarda los caudales de salida de una celda de la malla regular como tasas de lámina sobre el área de la celda
con unidades
y convierte cada una en caudal antes de calcular el lavado
4. Formulación lavable
Se implementan dos formulaciones de lavado.
4.1 Modelo de lavado de curva de clasificación
Este modo existe solo en MATLAB, y solo en la malla regular, ya que una simulación de MATLAB en malla no estructurada lo rechaza. Python tiene solo el modo basado en masa de la sección 4.2.
Cuando flag_wq_model = 1, el lavado es:
dónde:
- = flujo de masa de contaminantes
- = coeficientes empíricos
- = caudal
El factor de corrección de almacenamiento es:
dónde:
- = umbral de masa de contaminante residual
Esta formulación asegura que:
- el lavado aumenta con el flujo,
- El lavado aumenta con la masa contaminante disponible.
4.2 Modelo de lavado basado en masa
Cuando flag_wq_model = 0, la formulación pasa a ser:
Esta formulación supone:
- el lavado es proporcional a la masa contaminante disponible,
- El transporte aumenta con la magnitud del flujo.
5. Flujos direccionales de contaminantes
Los flujos de contaminantes se calculan para cada dirección por la que el agua sale de la celda. En la malla regular, las direcciones son
- izquierda
- derecha
- arriba
- abajo
- salida
MATLAB trata la salida como una quinta dirección de las celdas de salida. Python lleva el caudal de salida por las caras del borde de la malla, de modo que allí el flujo en la salida es el flujo por una cara de contorno. En una malla de Voronoi o quadtree, ambos códigos usan cada arista por la que el agua sale de la celda, y una arista en el contorno del dominio exporta el contaminante fuera del modelo.
La salida total de contaminantes de una celda es:
Los flujos de contaminantes entrantes se calculan a partir de celdas vecinas:
6. Balance neto de contaminantes
La tasa neta de contaminantes es:
La ecuación del balance de masa es:
Esta formulación representa:
- eliminación de contaminantes mediante lavado,
- Redistribución de contaminantes a través de la red.
7. Pasos de tiempo adaptativos (característica crítica)
Para garantizar la estabilidad y evitar la masa negativa, HydroPol2D divide el paso de tiempo hidráulico en subpasos iguales:
dónde:
- el máximo se toma sobre las celdas que contienen contaminante (),
- es la tasa bruta de salida de una celda al inicio del paso, sin el flujo de entrada ,
- redondea al entero siguiente.
En cada subpaso el lavado se calcula de nuevo a partir de la masa actual. Una celda cuya salida retiraría más de lo que contiene tiene sus salidas reducidas en la proporción necesaria para que . La masa se actualiza entonces:
Python y MATLAB usan este mismo esquema. Los subpasos ocurren dentro del paso hidráulico, de modo que el modelo de calidad del agua no acorta el paso de tiempo del modelo. Esto asegura:
- sin masa contaminante negativa,
- estabilidad numérica,
- conservación de masa precisa.
8. Conservación masiva y correcciones
Después de la actualización:
- Se eliminan los valores negativos:
- Se aplica redondeo para evitar el ruido numérico.
Se realiza un seguimiento de la masa perdida debido a correcciones numéricas:
9. Concentración de contaminantes
La concentración de contaminantes se calcula como:
dónde:
- = salida total de contaminante de la celda
- = caudal total de agua que sale de la celda
- el factor 1000 convierte en
Python calcula de esta forma y fija en una celda de la que no sale agua. En la malla regular, MATLAB calcula la misma razón a partir de las tasas de lámina de la sección 3, como , con en kg/h, la tasa total de salida en mm/h y en m². Usa como mínimo 10 mm/h para (sección 12).
10. Concentración de salida
La concentración de salida se calcula como:
donde las sumas recorren las caras por las que el agua sale del dominio, es el flujo de contaminante por una de esas caras, promediado en el paso de tiempo , y es el caudal de agua por ella . En la malla regular, MATLAB calcula la misma razón como la masa de contaminante que llega a la salida en el paso de tiempo, en kg, dividida por el volumen de agua de la salida en el paso, en litros, por .
11. Masa total lavada
La masa contaminante lavada acumulada es:
12. Restricciones numéricas
El modelo impone:
- umbral mínimo de contaminantes:
- un caudal mínimo para la concentración en la celda, solo en MATLAB y solo en la malla regular:
MATLAB aplica este mínimo solo a la tasa total de salida en el denominador de la concentración en la celda de la sección 9, para que una celda con muy poca salida no muestre una concentración muy alta. No altera el lavado, el balance de masa ni la concentración en la salida. Python no tiene este mínimo, y sus celdas de las que no sale agua tienen .
Resumen
El modelo de calidad del agua HydroPol2D:
- rastrea la masa contaminante por celda,
- calcula el lavado en función del flujo y el almacenamiento,
- redistribuye los contaminantes en todo el dominio,
- garantiza una estricta conservación masiva,
- utiliza pasos de tiempo adaptativos para mantener la estabilidad.
Proporciona un marco robusto y flexible para simular el transporte de contaminantes junto con procesos hidrológicos e hidrodinámicos. La evidencia de validación actual respalda el comportamiento controlado del equilibrio de masas de acumulación/eliminación; La predicción de contaminantes específicos del sitio aún requiere parámetros, observaciones y calibración de contaminantes locales.