Fator de Potência: validação atual e requisitos para aplicação industrial¶
Documento de resposta ao questionamento sobre a validação da obtenção dos dados de Fator de Potência (FP) e a viabilidade de aplicar o EnergIA a clientes industriais sujeitos a cobrança por baixo FP.
Conclusão resumida: a validação atual não sustenta a aplicação industrial. O FP é medido, mas foi aferido apenas no ponto onde nenhum erro aparece. Este documento detalha o problema, quantifica o impacto, lista as lacunas estruturais e propõe o protocolo de validação necessário.
1. Como o FP é obtido hoje¶
O cálculo acontece no firmware do medidor, em firmware/smart_meter_v3/smart_meter_v3.ino:197-201:
potenciaAparente = vrms * irms
fp = watts / potenciaAparente
Onde watts é a potência ativa real, calculada pela média do produto instantâneo de tensão e corrente, com expurgo do offset DC (linha 182):
potenciaRealRaw = (somaP / numAmostras) - (offsetV * offsetI)
O valor segue no payload MQTT como campo fp, com três casas decimais (linha 521), e é persistido em TelemetryReading.power_factor (telemetry/models.py:15), um FloatField sem validadores de faixa.
Trata-se, portanto, do fator de potência real (razão entre potência ativa e aparente), não do fator de deslocamento (cos φ da componente fundamental). A distinção é relevante e volta na seção 4.
2. O problema da validação atual¶
O registro de validação em hardware.md, seção 4 (Calibração e Validação), é:
Fator de potência: validado sob carga puramente resistiva, resultando em FP = 0,99.
Carga puramente resistiva tem FP verdadeiro igual a 1,000 por definição. É o único ponto da curva em que um erro de fase não se manifesta de forma perceptível. Medir 0,99 nesse ponto não valida a medição: é a evidência de um erro sistemático não corrigido.
Causa provável: amostragem não simultânea¶
Em firmware/smart_meter_v3/smart_meter_v3.ino:153-154, tensão e corrente são lidas em sequência, por dispositivos diferentes e com tempos de conversão muito distintos:
double leituraV = analogRead(pinoTensao); // ADC nativo do ESP32, microssegundos
double leituraI = ads.readADC_SingleEnded(0); // ADS1115 por I2C, conversão bloqueante
Como a potência ativa vem da média do produto v * i, qualquer defasagem temporal entre as duas amostras entra diretamente no resultado. Os valores de Vrms e Irms não são afetados (RMS independe do alinhamento temporal), mas o FP é.
Um FP de 0,99 sob carga resistiva corresponde a um erro de fase de aproximadamente 8,1 graus, equivalente a 0,38 ms em 60 Hz. Como a corrente é amostrada depois da tensão, o erro subtrai do ângulo real medido.
Impacto quantificado¶
A defasagem faz o medidor superestimar o FP em cargas indutivas, que são justamente as do ambiente industrial (motores, transformadores, solda):
| FP real | Ângulo | Leitura do medidor | Erro |
|---|---|---|---|
| 1,00 | 0,0° | 0,990 | -0,010 |
| 0,95 | 18,2° | 0,985 | +0,035 |
| 0,92 (referência ANEEL) | 23,1° | 0,966 | +0,046 |
| 0,88 | 28,4° | 0,938 | +0,058 |
| 0,85 | 31,8° | 0,916 | +0,066 |
| 0,80 | 36,9° | 0,877 | +0,077 |
| 0,70 | 45,6° | 0,794 | +0,094 |
| 0,60 | 53,1° | 0,707 | +0,107 |
O viés aponta para o lado errado da aplicação proposta. Uma instalação operando a 0,85, sujeita a cobrança de reativo excedente, apareceria no sistema como 0,92, dentro do limite regulatório. O medidor esconderia exatamente o problema que deveria detectar.
Ressalva metodológica: os 8,1 graus são inferidos de um único ponto documentado. Parte do erro pode vir do defasamento do próprio ZMPT101B, do núcleo do SCT-013 ou de amostragem não coerente, e não só do intervalo entre as leituras. A conclusão não muda: o erro existe, não está caracterizado, e só se manifesta na faixa de FP que interessa ao cliente industrial.
Como não usar esta tabela¶
A tabela é unidirecional por construção. Ela serve para dimensionar o quanto uma leitura pode estar otimista, não para recuperar o FP verdadeiro a partir de um valor exibido em produção.
Inverter a tabela sobre uma leitura do sistema não produz evidência de nada. A conversão entre FP medido e FP real é uma função monotônica invertível: qualquer leitura mapeia para algum valor real, e o resultado sempre parecerá plausível. Uma leitura de 0,915 mapeia para 0,85; uma de 0,927 mapeia para 0,865. Nenhuma das duas confirma o erro, porque ambas são apenas a inversa da mesma função que gerou a tabela. A aparente precisão do número recuperado é artefato da conta, não medição.
Em particular, uma leitura residencial na faixa de 0,92 é compatível com duas hipóteses que os dados atuais não distinguem:
- FP real em torno de 0,85, com o erro de 8,1 graus atuando;
- FP real em torno de 0,92, sem erro relevante nessa faixa.
Separar as duas exige o instrumento de referência da seção 6, item 2. Até lá, o que se pode afirmar sobre qualquer leitura de FP do sistema é que ela não está validada e tem viés conhecido na direção otimista, nunca que ela corresponde a um valor real específico.
Inconsistência no modelo causal¶
Os 8,1 graus equivalem a 0,38 ms em 60 Hz, mas o intervalo real entre a leitura de tensão e a de corrente parece ser maior que isso. O comentário do próprio firmware (firmware/smart_meter_v3/smart_meter_v3.ino:144) registra que 500 amostras a 860 SPS levam cerca de 0,6 s, ou seja aproximadamente 1,2 ms por iteração, dominados pela conversão bloqueante do ADS1115. Um atraso dessa ordem corresponderia a cerca de 25 graus em 60 Hz, não a 8,1.
A discrepância não invalida o dado observado de 0,99 sob carga resistiva, mas mostra que o mecanismo proposto na seção anterior não explica sozinho a magnitude do erro. Pode haver compensação parcial pelo avanço de fase do ZMPT101B, o instante efetivo de amostragem do ADS1115 pode não coincidir com o fim da conversão, ou a aferição resistiva pode ter margem não registrada. É mais um motivo para tratar os 8,1 graus como ordem de grandeza inferida, e não como constante de calibração aplicável ponto a ponto.
3. Lacunas estruturais além da precisão¶
Mesmo com o erro de fase corrigido, faltam itens sem os quais a aplicação industrial não se sustenta:
| Lacuna | Situação atual | Por que importa |
|---|---|---|
| Quadrante do reativo | FP = P/S é sempre positivo |
Não distingue indutivo de capacitivo, tratados em janelas horárias diferentes pela regulação |
| Energia reativa (kvarh) | Não existe campo em nenhum modelo | A cobrança incide sobre reativo excedente integrado no tempo, não sobre FP instantâneo |
| Medição trifásica | Protótipo monofásico; bloco trifásico documentado mas não construído (hardware.md, seção 5) |
Cliente industrial é Grupo A, trifásico, com desequilíbrio entre fases relevante |
| Demanda (kW) | tariffs modela kWh, bandeiras e postos da branca, sem demanda |
Grupo A paga demanda contratada e de ultrapassagem |
| Harmônicas | Firmware calcula FP real (P/S) | Com inversores de frequência e retificadores, FP real e fator de deslocamento divergem; a cobrança de reativo se relaciona ao segundo |
| Rastreabilidade metrológica | Medidor não certificado | Nenhuma leitura do EnergIA serve para contestar cobrança da distribuidora |
4. Enquadramento regulatório¶
Correção de terminologia: tecnicamente não se trata de multa, e sim de faturamento de energia e demanda reativas excedentes. O fator de potência de referência é 0,92, indutivo e capacitivo. A base normativa é a REN 1.000/2021 da ANEEL, que consolidou a antiga REN 414/2010, com apuração horária para unidades do Grupo A.
Pendência de verificação: as janelas horárias exatas de apuração do indutivo e do capacitivo, e a fórmula vigente do excedente, devem ser confirmadas no texto normativo em vigor e nas regras da CELESC antes de qualquer publicação ou proposta comercial. Os detalhes mudam entre revisões e não foram validados na redação atual.
A distinção entre FP real e fator de deslocamento tem consequência prática aqui: em instalação com carga não linear, o número que o EnergIA reporta e o número que a distribuidora fatura não vão coincidir, mesmo com o hardware perfeitamente calibrado.
5. Posicionamento recomendado¶
O EnergIA não deve ser apresentado como instrumento fiscal, e sim consultivo. O valor para o cliente industrial é diagnóstico, não de cobrança:
- alertar que o FP está derivando abaixo de 0,92 antes de a fatura chegar
- identificar em qual turno ou processo o FP degrada
- detectar banco de capacitores com célula queimada, falha comum que só aparece meses depois na conta
A cobrança continua vindo do medidor da concessionária. O sistema sinaliza risco e aponta a causa; a confirmação do valor é sempre a fatura.
Esse posicionamento é defensável e não exige precisão metrológica de faturamento. Ainda assim, exige acerto na faixa de 0,6 a 0,95, que é precisamente o que a validação atual não cobre.
6. Protocolo de validação proposto¶
- Instrumento de referência classe 0,5 ou melhor (analisador de qualidade de energia calibrado).
- Varredura com banco de cargas reativas, FP de 0,5 a 1,0, indutivo e capacitivo, comparando FP, P, Q e S ponto a ponto contra a referência.
- Curva de erro e correção de fase: levantar o erro por ponto, derivar a compensação digital (o
PHASECALda EmonLib, hoje citado emhardware.md, seção 5, apenas na especificação trifásica não construída) e revalidar a varredura completa. - Ensaio com carga não linear (inversor de frequência ou fonte chaveada) para medir a divergência entre FP real e fator de deslocamento e documentar a diferença esperada frente à fatura.
- Validação de campo: instalar em paralelo ao medidor de um cliente Grupo A e comparar o reativo apurado com o faturado por dois ou três ciclos.
O item 2 é o que responde diretamente ao questionamento. Sem ele, a afirmação de que o sistema mede fator de potência só é sustentável para carga resistiva.
7. Situação para efeito de checkpoint¶
| Item | Estado |
|---|---|
| FP é calculado e transmitido pelo firmware | Sim |
| FP é persistido e exibido | Sim |
| FP validado em carga resistiva | Sim, FP = 0,99 |
| FP validado em carga indutiva na faixa 0,6 a 0,92 | Não |
| Erro de fase caracterizado e compensado | Não |
| Discriminação indutivo/capacitivo | Não |
| Energia reativa acumulada (kvarh) | Não |
| Medição trifásica construída | Não |
| Aplicável a faturamento ou contestação de cobrança | Não, e não deve ser proposto como tal |