Um gêmeo digital de turbina eólica é um modelo vivo de uma turbina que combina medições do SCADA com o conhecimento de como a máquina deveria se comportar, para que os operadores enxerguem produção perdida, cargas acumuladas e falhas emergentes. Este artigo explica os principais casos de uso do gêmeo, como levar os dados do SCADA para o MQTT e como calcular um desvio simples da curva de potência que você mesmo pode executar.
Por Que Turbinas Eólicas São Candidatas Ideais a Gêmeos Digitais
Turbinas eólicas são remotas, caras de acessar e operam sob condições em constante mudança. Uma visita técnica pode exigir uma longa viagem de carro ou uma embarcação, além de clima adequado para a subida. Cada decisão que pode ser tomada com base em dados, em vez de uma visita ao local, economiza dinheiro e reduz riscos.
As turbinas também são bem instrumentadas. O controlador da turbina e o sistema SCADA do parque já registram velocidade e direção do vento, rotação do rotor e do gerador, ângulos de pitch, posição de yaw, potência ativa, temperaturas em todo o trem de força e uma longa lista de códigos de status. A matéria-prima para um gêmeo existe; o desafio é torná-la acessível e colocá-la em contexto. Para o conceito geral, veja o guia de tecnologia de gêmeo digital.
Três Casos de Uso Principais
Produção: desempenho em relação à curva de potência
Todo modelo de turbina tem uma curva de potência de referência: a geração esperada em cada velocidade de vento. O gêmeo compara a geração real com a esperada para a velocidade de vento medida, filtrando por condições de operação válidas. Um desempenho persistentemente abaixo do esperado em uma determinada faixa de velocidade de vento pode indicar desalinhamento de pitch, erro de yaw, contaminação ou gelo nas pás, ou uma configuração do controlador.
Cargas: acompanhando o consumo de vida à fadiga
Componentes estruturais como pás, torre e eixo principal acumulam fadiga devido a cargas cíclicas. Algumas turbinas têm sensores de carga; outras estimam as cargas a partir de dados operacionais com modelos. Um gêmeo que acompanha o histórico estimado de cargas por turbina ajuda os operadores a comparar unidades do mesmo parque e embasa decisões de extensão de vida útil. Modelos de estimativa de cargas são trabalho de especialistas, geralmente fornecidos pelo fabricante ou por consultorias de engenharia, mas o gêmeo fornece o caminho de dados de que eles precisam.
Manutenção: saúde dos componentes
Temperaturas do trem de força, vibração dos sistemas de monitoramento de condição e contagem de partículas no óleo revelam falhas em desenvolvimento em caixas multiplicadoras, rolamentos e geradores. Um gêmeo que compara as temperaturas de cada turbina com as das vizinhas sob carga semelhante é um alerta precoce simples e eficaz. A abordagem geral é tratada em gêmeo digital para manutenção preditiva.
| Caso de uso | Sinais principais | Taxa de atualização típica | Usuários principais |
|---|---|---|---|
| Produção | Velocidade do vento, potência ativa, pitch, yaw, status | Médias de 1 s a 10 min | Engenheiros de desempenho |
| Cargas | Rotação do rotor, pitch, potência, sensores de carga se houver | Alta taxa na borda, resumida | Gestores de ativos, engenharia |
| Manutenção | Temperaturas da caixa multiplicadora, dos rolamentos e do gerador, vibração, dados do óleo | Segundos a minutos | Planejadores de manutenção |
| Operação | Códigos de status, alarmes, disponibilidade | Na mudança | Sala de controle |
Levando os Dados do SCADA para o MQTT
Os sistemas SCADA de parques eólicos normalmente expõem dados via OPC UA, Modbus, interfaces baseadas na IEC 61400-25 ou bancos de dados do fornecedor. O padrão usual é um gateway de borda na subestação ou no prédio de controle:
- O gateway lê os dados das turbinas a partir do servidor SCADA ou diretamente dos controladores das turbinas.
- Ele publica as medições em topics MQTT via TLS, pela conexão de internet de saída do site.
- Serviços na nuvem ou centrais assinam os topics, calculam as saídas do gêmeo e armazenam o histórico.
O MQTT é adequado a sites de energia remotos por motivos bem conhecidos: é leve em links limitados, a conexão parte do site, então não é preciso abrir portas de entrada no firewall, e sessões persistentes com QoS 1 ajudam a superar interrupções curtas do link. Usar um broker MQTT na nuvem significa que parques em regiões diferentes publicam em um único endpoint, e a equipe de operações não precisa manter servidores de broker em cada local.
Importante: o gateway deve apenas ler do SCADA. Comandos de controle para as turbinas pertencem aos sistemas de controle certificados e às suas redes protegidas.
Design de Topics e Payloads
Organize os topics por parque e turbina e, depois, por tipo de dado:
connectmq/<farm>/<turbine>/<data-type>
connectmq/northridge/wtg07/operation
connectmq/northridge/wtg07/drivetrain
connectmq/northridge/wtg07/status
connectmq/northridge/met-mast1/weather
Um payload operacional de dez segundos:
{
"windSpeedMs": 9.4,
"windDirDeg": 251,
"yawDeg": 248,
"rotorRpm": 13.8,
"pitchDeg": 0.5,
"activePowerKw": 1985,
"ts": "2026-10-16T09:41:20Z"
}
Publique mudanças de status (em operação, com restrição de geração, em falha, em manutenção) como retained messages, para que um visualizador do gêmeo sempre saiba o modo atual de cada turbina. Use a expiração de mensagens do MQTT 5 nos valores operacionais, para que uma turbina cujo gateway ficou offline não pareça estar gerando com base em dados desatualizados.
Mão na Massa: Desvio da Curva de Potência em Python
O exemplo abaixo roda no servidor MQTT público (gratuito) em broker.connectmq.com com dados simulados de turbina. Ele inclui uma pequena curva de potência de referência, um simulador que tem desempenho ligeiramente abaixo do esperado em velocidades de vento intermediárias e um serviço do gêmeo que publica uma razão de desempenho móvel. Use apenas valores simulados, porque o servidor MQTT público pode ser lido por qualquer pessoa e serve apenas para testes e protótipos.
import json
import random
import time
import uuid
from collections import deque
import paho.mqtt.client as mqtt
RUN = "wtg-91be" # troque pelo seu próprio id exclusivo
BASE = f"connectmq/demo/{RUN}/northridge/wtg07"
# Curva de potência de referência ilustrativa: velocidade do vento (m/s) -> potência (kW)
CURVE = [(3, 0), (4, 80), (5, 200), (6, 380), (7, 620), (8, 950), (9, 1350),
(10, 1750), (11, 2050), (12, 2200), (25, 2200)]
def expected_kw(ws):
if ws < CURVE[0][0] or ws > CURVE[-1][0]:
return 0.0
for (x0, y0), (x1, y1) in zip(CURVE, CURVE[1:]):
if x0 <= ws <= x1:
return y0 + (y1 - y0) * (ws - x0) / (x1 - x0)
return 0.0
window = deque(maxlen=60)
def on_connect(client, userdata, flags, reason_code, properties):
client.subscribe(f"{BASE}/operation", qos=1)
def on_message(client, userdata, msg):
d = json.loads(msg.payload)
exp = expected_kw(d["windSpeedMs"])
if exp > 100: # ignora ventos muito fracos, em que a razão é ruidosa
window.append((d["activePowerKw"], exp))
if len(window) >= 10:
actual = sum(a for a, _ in window)
expected = sum(e for _, e in window)
ratio = round(actual / expected, 3)
client.publish(f"{BASE}/twin/performance",
json.dumps({"performanceRatio": ratio, "samples": len(window)}),
qos=1, retain=True)
print("performance ratio", ratio)
twin = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"wtg-twin-{uuid.uuid4().hex[:6]}")
twin.on_connect = on_connect
twin.on_message = on_message
twin.connect("broker.connectmq.com", 1883, keepalive=30)
twin.loop_start()
sim = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"wtg-sim-{uuid.uuid4().hex[:6]}")
sim.connect("broker.connectmq.com", 1883, keepalive=30)
sim.loop_start()
try:
while True:
ws = max(0.0, random.gauss(9, 2))
loss = 0.92 if 7 <= ws <= 10 else 1.0 # desempenho abaixo do esperado simulado
power = expected_kw(ws) * loss * random.uniform(0.97, 1.02)
sim.publish(f"{BASE}/operation",
json.dumps({"windSpeedMs": round(ws, 2), "activePowerKw": round(power, 1), "ts": time.time()}),
qos=1)
time.sleep(2)
except KeyboardInterrupt:
pass
A razão se estabiliza abaixo de 1,0, revelando a perda simulada. Uma análise real acrescenta filtros para restrição de geração, falhas, correção da densidade do ar e setor de vento, mas o fluxo de dados continua idêntico: valores do SCADA entram, saídas do gêmeo são publicadas de volta no MQTT para visualizadores e alertas.
Checklist de Implantação
- Combine o acesso somente leitura aos dados do SCADA com o fabricante da turbina e o operador do site.
- Coloque o gateway em uma rede segregada, com TLS apenas de saída na porta 8883.
- Use uma credencial e um client ID por gateway de site; a ConnectMQ vincula os client IDs às credenciais emitidas.
- Habilite sessões persistentes e QoS 1 para topics de status e de alarme, para que quedas curtas do link não percam eventos.
- Publique valores médios para análises de longo prazo e valores em taxa mais alta apenas onde um caso de uso exigir.
- Armazene o histórico com um assinante separado em um banco de dados de séries temporais.
- Adicione alertas para condições óbvias, como temperatura da caixa multiplicadora acima de um limite, usando regras de limite do portal ou seu próprio serviço.
- Valide as saídas do gêmeo em comparação com os relatórios existentes do operador antes de confiar nelas.
Armadilhas Comuns
- Usar ingenuamente os dados do anemômetro da nacele. O rotor perturba a medição; os operadores costumam aplicar uma função de transferência da nacele. Compare situações equivalentes entre turbinas.
- Não filtrar a restrição de geração. Períodos com restrição parecem um desempenho muito abaixo do esperado, a menos que sejam excluídos com base nos códigos de status.
- Divergências de fuso horário e de carimbo de tempo entre servidores SCADA e gateways.
- Misturar controle e monitoramento. Mantenha o gêmeo somente leitura, a menos que a arquitetura de controle suporte explicitamente comandos remotos.
Os mesmos padrões se aplicam a outros ativos industriais nos artigos sobre gêmeo digital de fábrica e gêmeo digital de energia.
Conecte Seu Parque Eólico à ConnectMQ
A ConnectMQ é um broker MQTT gerenciado com TLS, MQTT 5 e opções Dedicated ou BYOC para operadores que precisam de isolamento. Comece gratuitamente em app.connectmq.com com o plano Serverless, sem cartão de crédito, e transmita os dados da sua primeira turbina em minutos, seja de um parque no Nordeste ou no Sul.
Perguntas frequentes
Quais dados um gêmeo digital de turbina eólica usa?
Principalmente dados do SCADA: velocidade e direção do vento, rotação do rotor, pitch, yaw, potência ativa, temperaturas do trem de força e códigos de status, além de dados de monitoramento de condição e de cargas, quando disponíveis.
O MQTT dá conta de dados de parques eólicos remotos?
Sim. O MQTT é leve, funciona com conexões apenas de saída e suporta QoS 1 com sessões persistentes, o que se adapta a sites remotos com links limitados ou instáveis.
Um gêmeo digital deve enviar comandos de volta para as turbinas?
Em geral, não. A maioria dos gêmeos são ferramentas de monitoramento e análise somente leitura; o controle das turbinas permanece nos sistemas de controle certificados.
Como o desempenho da curva de potência é medido?
A geração real é comparada com a geração esperada pela curva de potência de referência na velocidade de vento medida, depois de filtrar restrições de geração, falhas e condições anormais.



