Gêmeo digital

Gêmeo Digital de Energia: Modelando o Consumo em Tempo Real

Como modelar os fluxos de energia de um site como um gêmeo digital alimentado por medidores que transmitem via MQTT e, depois, usá-lo para encontrar desperdícios e testar cenários de eficiência antes de investir.

Diagrama de gêmeo digital de energia mostrando fluxos de eletricidade, gás e ar comprimido em um site com leituras de medidores ao vivo
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

Um gêmeo digital de energia mostra para onde vai cada quilowatt em um site, seja uma planta industrial em Campinas ou uma fazenda com irrigação e secadores de grãos, em tempo real, e permite testar cenários hipotéticos antes de investir em projetos de eficiência. Este guia explica como modelar os fluxos de energia, como transmitir dados de medição via MQTT e como usar o gêmeo para encontrar desperdícios e avaliar mudanças.

O Que um Gêmeo Digital de Energia Modela

As contas mensais de energia dizem quanto você gastou; não dizem por quê. Um gêmeo de energia modela o site como uma rede de fluxos:

  • Fontes: fornecimento da rede, energia solar no local, geradores, fornecimento de gás
  • Ativos de conversão: transformadores, compressores (eletricidade em ar comprimido), caldeiras (gás em calor), chillers (eletricidade em frio)
  • Distribuição: quadros gerais, quadros de subdistribuição, coletores de ar e de vapor
  • Consumidores: linhas de produção, zonas de HVAC, circuitos de iluminação, máquinas grandes individuais

Cada nó tem medições ao vivo (potência, energia, vazão, pressão, temperatura) e cada aresta transporta uma grandeza de um nó para outro. Quando o fluxo de entrada medido em um nó não corresponde à soma dos seus fluxos de saída, a diferença é uma carga não medida, uma perda ou um vazamento. Essa simples verificação de balanço é uma das coisas mais úteis que um gêmeo de energia faz.

Para o conceito mais amplo de gêmeos, o guia de tecnologia de gêmeo digital é o ponto de partida.

Por Que Modelar a Energia como um Gêmeo e Não como um Dashboard

Um dashboard plota valores de medidores. Um gêmeo acrescenta estrutura e contexto:

Pergunta Dashboard Gêmeo digital de energia
Quanto a Linha 2 consumiu ontem? Sim Sim
Quanto do alimentador principal não está contabilizado? Difícil, exige cálculo manual Calculado continuamente a partir do modelo de fluxos
Quanto a Linha 2 consome quando ociosa? Só se alguém correlacionar manualmente Sim, porque o estado da produção está no gêmeo
E se reduzirmos a pressão do compressor em 0,5 bar? Não Sim, com um modelo do compressor
Quais ativos dominam a carga de base à noite? Em parte Sim, classificados por nó

As principais diferenças são a topologia (o que alimenta o quê) e a ligação com o estado operacional. Energia por unidade produzida, consumo ocioso e carga de base só fazem sentido quando os dados de energia e de produção compartilham uma mesma espinha dorsal.

Transmitindo Dados de Medição via MQTT

Medidores e gateways

A maioria dos medidores industriais e comerciais expõe Modbus TCP ou Modbus RTU. Um gateway lê os registradores periodicamente e publica os valores no MQTT. Opções comuns:

  1. Node-RED com nós Modbus em um PC industrial ou Raspberry Pi
  2. Telegraf com seus plugins de entrada Modbus e de saída MQTT
  3. Medidores ou data loggers com publicação MQTT integrada

Publique tanto a potência instantânea (kW) quanto os contadores de energia acumulada (kWh). Os contadores são mais robustos: se algumas mensagens forem perdidas, o próximo valor do contador ainda fornece o total correto do período.

Design de topics

Siga a hierarquia do site para que a topologia do gêmeo seja mapeada naturalmente para os topics:

connectmq/<site>/<area>/<asset>/energy

connectmq/site1/utilities/main-feeder/energy
connectmq/site1/utilities/compressor1/energy
connectmq/site1/production/line2/energy
connectmq/site1/production/line2/state
connectmq/site1/building/hvac-ahu1/energy

Um payload como este mantém as unidades explícitas:

{
  "powerKw": 42.7,
  "energyKwh": 183245.6,
  "voltageV": 400.2,
  "powerFactor": 0.93,
  "ts": 1792152000
}

Um broker MQTT gerenciado oferece aos gateways de medidores de vários edifícios ou sites um único endpoint seguro, e os serviços do gêmeo assinam com wildcards como connectmq/site1/+/+/energy.

Mão na Massa: Um Balanço de Energia ao Vivo

Este exemplo roda no servidor MQTT público (gratuito) em broker.connectmq.com com medidores simulados. Não publique dados reais do seu site no servidor MQTT público, já que ele pode ser lido por qualquer pessoa e serve apenas para testes e protótipos.

O script abaixo simula um alimentador principal e três submedidores, e uma segunda parte do mesmo programa atua como o serviço de balanço do gêmeo, publicando a parcela não contabilizada:

import json
import random
import threading
import time
import uuid

import paho.mqtt.client as mqtt

RUN = "energy-5c21"  # troque pelo seu próprio id exclusivo
BASE = f"connectmq/demo/{RUN}/site1"
SUBMETERS = ["production/line2", "utilities/compressor1", "building/hvac-ahu1"]
latest = {}


def simulate(pub):
    while True:
        loads = {
            "production/line2": random.uniform(30, 45),
            "utilities/compressor1": random.uniform(18, 25),
            "building/hvac-ahu1": random.uniform(8, 12),
        }
        unmetered = random.uniform(6, 9)  # o desperdício que o gêmeo deve encontrar
        main = sum(loads.values()) + unmetered
        pub.publish(f"{BASE}/utilities/main-feeder/energy", json.dumps({"powerKw": round(main, 2)}))
        for path, kw in loads.items():
            pub.publish(f"{BASE}/{path}/energy", json.dumps({"powerKw": round(kw, 2)}))
        time.sleep(5)


def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{BASE}/+/+/energy")


def on_message(client, userdata, msg):
    node = msg.topic[len(BASE) + 1 : -len("/energy")]
    latest[node] = json.loads(msg.payload)["powerKw"]
    if "utilities/main-feeder" in latest and all(s in latest for s in SUBMETERS):
        main = latest["utilities/main-feeder"]
        gap = main - sum(latest[s] for s in SUBMETERS)
        result = {"mainKw": main, "unaccountedKw": round(gap, 2), "unaccountedPct": round(100 * gap / main, 1)}
        client.publish(f"{BASE}/twin/balance", json.dumps(result), qos=1, retain=True)
        print(result)


twin = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"energy-twin-{uuid.uuid4().hex[:6]}")
twin.on_connect = on_connect
twin.on_message = on_message
twin.connect("broker.connectmq.com", 1883, keepalive=30)

sim = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"meter-sim-{uuid.uuid4().hex[:6]}")
sim.connect("broker.connectmq.com", 1883, keepalive=30)
sim.loop_start()
threading.Thread(target=simulate, args=(sim,), daemon=True).start()

twin.loop_forever()

O serviço de balanço vai informar uma parcela não contabilizada constante. Em um site real, esse número aponta para um submedidor ausente, uma carga desconhecida ou perdas que merecem investigação.

Testando Cenários de Eficiência

Quando o gêmeo reflete a realidade, você pode fazer perguntas hipotéticas com modelos simples associados aos nós:

  • Redução da pressão do ar comprimido: modele a potência do compressor em função da pressão de descarga e da demanda. Uma regra prática muito usada diz que uma pressão menor no sistema reduz a energia do compressor; o gêmeo permite estimar o efeito usando o seu próprio perfil de carga medido, em vez de números genéricos.
  • Reparo de vazamentos: meça a potência do compressor fora do horário de produção, quando a demanda de ar deveria ser próxima de zero. Essa carga de base aproxima os vazamentos; o gêmeo mostra a energia que uma campanha de reparos poderia recuperar.
  • Deslocamento de carga: reproduza uma semana de dados medidos com as cargas flexíveis movidas para o horário fora de ponta e veja o efeito sobre a demanda de pico.
  • Políticas de desligamento em ociosidade: combine o estado da linha com a energia da linha para ver quanto é consumido em ociosidade e simule um standby automático após um tempo ocioso definido.

Mantenha os cálculos de cenários nos seus próprios serviços ou notebooks, lendo o histórico de um banco de dados de séries temporais. O papel do broker é entregar os dados ao vivo de forma confiável; ele não armazena histórico nem executa modelos.

Checklist de Implementação

  1. Desenhe o diagrama unifilar do site e a topologia dos fluxos de energia antes de comprar medidores.
  2. Identifique os maiores consumidores e meça-os primeiro; a cauda longa pode ser estimada.
  3. Escolha um intervalo de polling adequado à pergunta: de 1 a 15 segundos para correlação com o processo, um minuto para cargas prediais.
  4. Publique contadores acumulados além da potência.
  5. Publique o estado da produção no mesmo broker para que a energia por unidade e o consumo ocioso possam ser calculados.
  6. Persista os dados com um assinante (Telegraf para InfluxDB, ou um script Python para TimescaleDB).
  7. Adicione uma verificação de balanço por nó de distribuição e revise as diferenças semanalmente.
  8. Use as regras de alerta por limite da ConnectMQ para limites simples, como uma carga de base noturna inesperada.

Armadilhas Comuns

  • Unidades e fatores de escala misturados. Registradores Modbus muitas vezes precisam de escala. Valide as leituras do gateway comparando-as com o display do medidor.
  • Amostragem não sincronizada. Comparar um medidor principal lido no segundo 0 com submedidores lidos no segundo 40 cria diferenças falsas. Calcule médias em janelas alinhadas.
  • Medir apenas eletricidade. Gás, vapor e ar comprimido muitas vezes escondem as maiores economias.
  • Nenhum responsável. Um gêmeo de energia precisa de alguém que o revise regularmente e transforme as descobertas em ações.

A modelagem de energia combina bem com um gêmeo digital de edifícios para cargas de HVAC e com um gêmeo digital de fábrica para linhas de produção.

Transmita Seus Dados de Energia com a ConnectMQ

A ConnectMQ, um broker MQTT gerenciado, oferece uma espinha dorsal MQTT segura para gateways de medidores e serviços do gêmeo, com TLS na porta 8883 e acesso via WebSocket para dashboards no navegador. Cadastre-se gratuitamente em app.connectmq.com, sem cartão de crédito, crie um broker Serverless e conecte seu primeiro gateway de medidores em minutos.

Perguntas frequentes

O que é um gêmeo digital de energia?

É um modelo vivo das fontes de energia, dos ativos de conversão, da distribuição e dos consumidores de um site, alimentado por dados de medidores, que mostra para onde a energia vai e permite testar mudanças de eficiência.

Com que frequência os medidores de energia devem publicar dados?

Depende da pergunta. A cada poucos segundos é adequado para correlacionar com eventos do processo, enquanto intervalos de um minuto costumam bastar para cargas prediais e análise de faturamento.

Posso conectar medidores de energia Modbus ao MQTT?

Sim. Um gateway como Node-RED ou Telegraf lê os registradores Modbus e publica os valores em topics MQTT que o gêmeo assina.

O broker MQTT armazena meu histórico de energia?

Não. O broker entrega mensagens ao vivo. Use um assinante separado para gravar os dados em um banco de dados de séries temporais para histórico e análise de cenários.

Artigos relacionados

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.