Pular para o conteúdo
Igor FerreiraVoltar ao laboratório

Descritivo do Projeto

Perda de geração solar, só com a telemetria do inversor

Uma fileira de placas parou, e o inversor não avisou. Só com a telemetria dele, o estudo estima quanto o sistema deveria gerar e acha a perda; o Sunny explica o resultado em palavras simples.

Assistir ao vídeo
Papel
Coautor, em dupla
Período
2026
Situação
em andamento
  • Machine learning e dados
  • Python
  • pandas
  • scikit-learn
  • XGBoost
  • Flask
  • Cloudflare Pages
Trecho do vídeo, sem som

Evidências

  • Erro cerca de 41% menor que a linha de base

    MAE diário médio no hold-out de 1º de agosto a 27 de setembro de 2026 (55 dias), aberto uma única vez, contra a mediana por horário. Ganho exploratório, calculado depois da abertura.

    Medido.

  • 1 alerta em 221 dias avaliados

    Detector por fileira; 58 desses dias são do hold-out. O alerta caiu em 27 de setembro, na perda real de uma fileira que o inversor não registrou.

    Medido.

  • Modelo e protocolo congelados por SHA-256

    Hash conferido antes e depois de cada etapa; o programa se recusa a rodar de novo sobre o hold-out.

    Medido.

A pergunta

A telemetria nativa de um inversor híbrido residencial, sem irradiância medida, basta para estimar a potência esperada e para detectar e localizar perdas de geração?

Dados

63.897 registros de 5 em 5 minutos, com 55 variáveis, coletados pela API do fabricante entre 15 de janeiro e 27 de setembro de 2026. A modelagem usa só registros diurnos de dias válidos.

Validação

  • Cinco modelos: a linha de base (mediana por horário), o Random Forest V1 e três XGBoost.
  • O V1 foi congelado em 7 de julho e o protocolo em 28 de setembro, os dois por SHA-256, antes de abrir o hold-out de agosto e setembro uma única vez.
  • Das três hipóteses registradas antes do teste, duas foram refutadas, e a monografia relata isso.

Limites

Uma única instalação, com cerca de oito meses e meio de dados. O ganho de 41% vale para MAE e contra uma linha de base simples de propósito. A causa da perda de 27 de setembro não foi confirmada em campo.

Na tela

Corrente e tensão das duas fileiras de placas em 26, 27 e 28 de setembro. No dia 27, a corrente da fileira 2 fica em zero desde a manhã, com a tensão normal.
O caso real de 27/09: a fileira 2 gerou 0,7 kWh contra 15,4 kWh da fileira 1, com tensão normal e nenhum código de falha no inversor. Figura da monografia.
Erro diário médio dos cinco modelos em maio, junho e no hold-out de agosto e setembro. A mediana por horário erra 0,754 kW no hold-out; o Random Forest congelado, 0,448 kW.
Os cinco modelos em três períodos (menor é melhor). Com as mesmas entradas, Random Forest e XGBoost empatam: o que mudou o erro foram as entradas, não o algoritmo. Figura da monografia.
1. Pergunta. Você pergunta por voz ou por texto, e o guia mostra a resposta na própria tela. Quadro do comercial.
2. Relatório. Tudo vira um relatório por dia, semana ou mês, com seis verificações e quatro níveis. Quadro do comercial.
3. Avisa. Na semana de 23 a 29/09, o Sunny marcou "Problema" na fileira que parou sem o inversor avisar. Quadro do comercial.
4. Sugere. Ele sugere possíveis causas e o que fazer; quem confirma a causa é sempre o instalador. Quadro do comercial.
O app do Sunny com o relatório da semana e o guia aberto, sob o texto "Pergunte por voz ou por texto".

Toque fora da imagem para fechar.

O relatório do Sunny e os três níveis em destaque, Tudo certo, Atenção e Problema.

Toque fora da imagem para fechar.

O relatório no celular marca Problema na semana de 27 de setembro, quando uma fileira parou.

Toque fora da imagem para fechar.

O guia do Sunny explica as fileiras de placas e lista possíveis causas e o que fazer.

Toque fora da imagem para fechar.

Como funciona

Da telemetria do inversor ao relatório em palavras simples. A IA explica; quem decide são as regras e os modelos.

  1. Telemetria

    55 variáveis do inversor, de 5 em 5 minutos, de 15/01 a 27/09/2026.

    Python63.897 registros
  2. Limpeza

    Só registros diurnos de dias válidos. Dia sem dado suficiente não conta como dia sem alerta.

    pandas
  3. Geração esperada

    A mediana por horário, o Random Forest V1 e três XGBoost estimam quanto o sistema deveria gerar.

    scikit-learn, XGBoost41% menos erro
  4. Detector

    Compara as duas fileiras de placas com o Sol alto e localiza a que perdeu.

    pandas1 alerta em 221 dias
  5. Relatório

    Regras fixas transformam tudo em Tudo certo, Atenção, Problema ou Sem dados, com causas possíveis e o que fazer.

    Python
  6. Guia

    Um assistente por LLM explica o relatório da tela e só executa ações de uma lista fechada.

    Three.js

Os modelos foram treinados com o histórico da própria instalação e congelados. Antes de qualquer etapa, o programa confere o SHA-256 de cada um e do protocolo, e se recusa a rodar de novo sobre o período reservado. O trecho ao lado é uma forma simplificada do protocolo congelado.

O Sunny avisa e sugere. Quem confirma a causa é sempre o instalador.

{
  "congelado_em": "2026-09-28T23:08:03",
  "abertura": "única",
  "modelos_sha256": {
    "v1": "f9302efd…ef084"
  },
  "base_sha256": "753e397c…a925"
}

Decisões

A escolhaEm vez deCusto aceito
Congelar antes de testar

Em vez de: Ajustar o modelo olhando o período de teste.

Custo aceito: As hipóteses que não passaram ficam como refutadas; duas das três foram, e a monografia diz isso.

Uma linha de base simples, de propósito

Em vez de: Comparar só modelos sofisticados entre si.

Custo aceito: O ganho de 41% é medido contra uma referência ingênua, e assim é apresentado.

Só a telemetria do inversor

Em vez de: Instalar um sensor de irradiância na casa.

Custo aceito: Separar nuvem de defeito fica mais difícil; daí comparar uma fileira com a outra.

Fileira contra fileira

Em vez de: Olhar só a geração total contra a esperada.

Custo aceito: Precisa de duas fileiras; localiza a perda, mas não diagnostica a causa.

A IA só explica

Em vez de: Deixar o assistente dar o diagnóstico.

Custo aceito: Respostas mais contidas; ele fala do relatório da tela e não afirma a causa física.

Como foi construído

  1. 15/01
    Começa a série

    A telemetria do inversor passa a ser gravada de 5 em 5 minutos.

  2. 07/07
    O Random Forest congelado

    A V1 é salva e conferida por SHA-256 antes de qualquer teste.

  3. 27/09
    A perda real

    A corrente da fileira 2 fica em zero desde as 7h30, e o inversor não registra falha.

  4. 28/09
    O teste, uma única vez

    O protocolo é congelado às 23h08, e o período reservado de agosto e setembro é aberto uma única vez.

  5. 06/10
    O Sunny no ar

    O relatório em palavras simples vai ao ar; em 10/10 chegam o guia por voz e o Sunny 3D solto na tela.

Hoje e a seguir

Hoje

O estudo está concluído. O Sunny é um protótipo no ar, que lê os dados novos todos os dias com os modelos congelados e explica cada aviso em texto, com a regra usada para o técnico.

A seguir

  1. Aprendizado contínuo: os modelos evoluírem com os dados novos, validados antes de cada troca.
  2. Mais instalações, para medir a sensibilidade do detector além de um único evento real.

No ar

  • SunnyCloudflare Pages, conferido em 15 de outubro de 2026

TCC em dupla, com orientação na UCL.

Próximo projeto da visitaAnticolisão por GNSS/RTK