Modelo de qualidade da água
1. Visão geral
HydroPol2D simula o transporte de poluentes usando uma formulação de acúmulo e lavagem acoplada ao modelo hidrodinâmico. O modelo rastreia:
- massa poluente armazenada na superfície,
- remoção de poluentes devido ao fluxo (lavagem),
- redistribuição entre células vizinhas,
- exportar através dos limites de saída.
Figura 1. As três etapas do modelo de qualidade da água baseado em massa. O acúmulo em tempo seco define a massa inicial, a lavagem a retira de cada célula pelas faces por onde a água sai, e o transporte a leva de célula em célula até o exutório.
A variável governante é:
onde:
- = massa poluente por célula
O modelo é totalmente conservador de massa e acoplado dinamicamente ao roteamento de fluxo.
A validação atual concentra-se no modo de lavagem baseado em massa
(flag_wq_model = 0). A validação usa escalas de parâmetros de construção no estilo SWMM
para sólidos suspensos totais, mas a fonte da verdade é um balanço de massa analítico
solução em vez de uma execução numérica SWMM ou um polutógrafo de campo calibrado.
2. Armazenamento de poluentes
Cada célula armazena uma massa poluente:
A concentração de área correspondente é:
onde:
- = área da célula
Os limites mínimo e máximo são definidos:
- → massa mínima de poluente ativo
- → limite de saturação
Abaixo de um limite:
3. Acoplamento hidrodinâmico
O modelo de qualidade da água usa a vazão , em , que sai de uma célula por cada face no passo de roteamento. O Python toma diretamente das vazões nas faces calculadas pelo solver de roteamento.
O MATLAB guarda as vazões de saída de uma célula da grade como taxas de lâmina sobre a área da célula
com unidades
e converte cada uma em vazão antes de calcular a lavagem
4. Formulação lavável
Duas formulações de lavagem são implementadas.
4.1 Modelo de lavagem da curva de classificação
Este modo existe apenas no MATLAB, e apenas na grade regular, pois uma simulação do MATLAB em malha o recusa. O Python tem apenas o modo baseado em massa da seção 4.2.
Quando flag_wq_model = 1, a lavagem é:
onde:
- = fluxo de massa poluente
- = coeficientes empíricos
- = taxa de fluxo
O fator de correção de armazenamento é:
onde:
- = limite de massa poluente residual
Esta formulação garante que:
- a lavagem aumenta com o fluxo,
- a lavagem aumenta com a massa poluente disponível.
4.2 Modelo de lavagem baseado em massa
Quando flag_wq_model = 0, a formulação torna-se:
Esta formulação assume:
- a lavagem é proporcional à massa poluente disponível,
- o transporte aumenta com a magnitude do fluxo.
5. Fluxos direcionais de poluentes
Os fluxos de poluentes são calculados para cada direção pela qual a água sai da célula. Na grade regular, as direções são
- esquerda
- direita
- acima
- abaixo
- exutório
O MATLAB trata o exutório como uma quinta direção das células de exutório. O Python leva a vazão do exutório pelas faces na borda da grade, de modo que ali o fluxo no exutório é o fluxo por uma face de contorno. Em uma malha de Voronoi ou quadtree, os dois códigos usam cada aresta pela qual a água sai da célula, e uma aresta no contorno do domínio exporta o poluente para fora do modelo.
A saída total de poluentes de uma célula é:
Os fluxos de poluentes recebidos são calculados a partir de células vizinhas:
6. Balanço líquido de poluentes
A taxa líquida de poluição é:
A equação do balanço de massa é:
Esta formulação é responsável por:
- remoção de poluentes devido à lavagem,
- redistribuição de poluentes pela rede.
7. Time stepping adaptativo (recurso crítico)
Para garantir a estabilidade e evitar massa negativa, HydroPol2D divide o passo de tempo hidráulico em subpassos iguais:
onde:
- o máximo é tomado sobre as células que contêm poluente (),
- é a taxa bruta de saída de uma célula no início do passo, sem o fluxo de entrada ,
- arredonda para o inteiro seguinte.
Em cada subpasso a lavagem é calculada de novo a partir da massa atual. Uma célula cuja saída removeria mais do que ela contém tem suas saídas reduzidas na proporção necessária para que . A massa é então atualizada:
O Python e o MATLAB usam esse mesmo esquema. Os subpassos ocorrem dentro do passo hidráulico, de modo que o modelo de qualidade da água não encurta o passo de tempo do modelo. Isso garante:
- nenhuma massa poluente negativa,
- estabilidade numérica,
- conservação de massa precisa.
8. Conservação e correções de massa
Após a atualização:
- valores negativos são removidos:
- o arredondamento é aplicado para evitar ruído numérico.
A massa perdida devido a correções numéricas é rastreada:
9. Concentração de poluentes
A concentração de poluentes é calculada como:
onde:
- = saída total de poluente da célula
- = vazão total de água que sai da célula
- o fator 1000 converte em
O Python calcula dessa forma e define em uma célula da qual não sai água. Na grade regular, o MATLAB calcula a mesma razão a partir das taxas de lâmina da seção 3, como , com em kg/h, a taxa total de saída em mm/h e em m². Ele usa no mínimo 10 mm/h para (seção 12).
10. Concentração de saída
A concentração de saída é calculada como:
onde as somas percorrem as faces pelas quais a água sai do domínio, é o fluxo de poluente por uma dessas faces, em média no passo de tempo , e é a vazão de água por ela . Na grade regular, o MATLAB calcula a mesma razão como a massa de poluente que chega ao exutório no passo de tempo, em kg, dividida pelo volume de água do exutório no passo, em litros, vezes .
11. Massa lavada total
A massa cumulativa de poluentes lavados é:
12. Restrições numéricas
O modelo impõe:
- limiar mínimo de poluição:
- uma vazão mínima para a concentração na célula, só no MATLAB e só na grade regular:
O MATLAB aplica esse piso apenas à taxa total de saída no denominador da concentração na célula da seção 9, para que uma célula com saída muito pequena não mostre uma concentração muito alta. Ele não altera a lavagem, o balanço de massa nem a concentração no exutório. O Python não tem esse piso, e suas células das quais não sai água têm .
Resumo
O modelo de qualidade da água HydroPol2D:
- rastreia a massa poluente por célula,
- calcula a lavagem em função do fluxo e do armazenamento;
- redistribui poluentes em todo o domínio,
- garante estrita conservação de massa,
- usa passos de tempo adaptativos para manter a estabilidade.
Ele fornece uma estrutura robusta e flexível para simular o transporte de poluentes juntamente com processos hidrológicos e hidrodinâmicos. As evidências de validação atuais apoiam o comportamento controlado de balanço de massa de acúmulo/lavagem; a previsão de poluentes específicos do local ainda requer parâmetros, observações e calibração de poluentes locais.