Dijital İkiz

Rüzgâr Türbini Dijital İkizi: MQTT ile Yük, Verim ve Bakım

Rüzgâr türbini dijital ikizleri, MQTT üzerinden yayınlanan SCADA verilerini kullanarak verimi güç eğrisine göre nasıl izler, yükleri nasıl tahmin eder ve bakımı nasıl planlar: topic tasarımı ve kodla.

Canlı rüzgâr hızı, rotor hızı, güç çıkışı ve dişli kutusu sıcaklığıyla 3D bir türbin modelini gösteren rüzgâr türbini dijital ikizi
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Rüzgâr türbini dijital ikizi, SCADA ölçümlerini makinenin nasıl davranması gerektiğine dair bilgiyle birleştiren canlı bir türbin modelidir; böylece operatörler kaybedilen verimi, biriken yükleri ve ortaya çıkan arızaları görebilir. Bu makale başlıca ikiz kullanım senaryolarını, SCADA verilerinin MQTT'ye nasıl taşınacağını ve kendiniz çalıştırabileceğiniz basit bir güç eğrisi sapmasının nasıl hesaplanacağını açıklıyor.

Rüzgâr Türbinleri Dijital İkizler İçin Neden İdeal Adaylardır

Rüzgâr türbinleri uzak konumdadır, erişimi pahalıdır ve sürekli değişen koşullar altında çalışır. Bir teknisyen ziyareti uzun bir araç yolculuğu veya bir tekne ile birlikte tırmanışa uygun hava koşulları gerektirebilir. Saha ziyareti yerine verilerle alınabilen her karar para ve risk tasarrufu sağlar.

Türbinler aynı zamanda iyi enstrümante edilmiştir. Türbin kontrolörü ve santral SCADA sistemi rüzgâr hızını, rüzgâr yönünü, rotor ve jeneratör hızını, kanat açılarını (pitch), yaw konumunu, aktif gücü, aktarma organlarının tamamındaki sıcaklıkları ve uzun bir durum kodu listesini zaten kaydeder. Bir ikizin hammaddesi mevcuttur; zorluk, bunu erişilebilir kılmak ve bağlama oturtmaktır. Genel kavram için dijital ikiz teknolojisi rehberine bakın.

Üç Temel Kullanım Senaryosu

Verim: güç eğrisine göre performans

Her türbin modelinin bir referans güç eğrisi vardır: her rüzgâr hızındaki beklenen çıkış. İkiz, geçerli çalışma koşullarına göre filtrelenmiş olarak, gerçek çıkışı ölçülen rüzgâr hızı için beklenen çıkışla karşılaştırır. Belirli bir rüzgâr hızı aralığındaki kalıcı düşük performans; pitch hizalama hatasına, yaw hatasına, kanat kirlenmesine veya buzlanmaya ya da bir kontrolör ayarına işaret edebilir.

Yükler: yorulma tüketimini izlemek

Kanatlar, kule ve ana mil gibi yapısal bileşenler döngüsel yüklemeden kaynaklanan yorulma biriktirir. Bazı türbinlerde yük sensörleri bulunur; diğerleri yükleri modellerle çalışma verilerinden tahmin eder. Her türbin için tahmini yük geçmişini izleyen bir ikiz, operatörlerin aynı santraldeki üniteleri karşılaştırmasına ve ömür uzatma kararlarına bilgi sağlamasına yardımcı olur. Yük tahmin modelleri uzmanlık gerektiren işlerdir ve genellikle üretici veya mühendislik danışmanları tarafından sağlanır; ancak ikiz, bu modellerin ihtiyaç duyduğu veri yolunu sağlar.

Bakım: bileşen sağlığı

Aktarma organı sıcaklıkları, durum izleme sistemlerinden gelen titreşim ve yağ partikül sayıları; dişli kutularında, rulmanlarda ve jeneratörlerde gelişen arızaları ortaya çıkarır. Her türbinin sıcaklıklarını benzer yük altındaki komşularıyla karşılaştıran bir ikiz, basit ve etkili bir erken uyarı sağlar. Genel yaklaşım dijital ikiz ile kestirimci bakım yazısında ele alınıyor.

Kullanım senaryosu Temel sinyaller Tipik güncelleme hızı Birincil kullanıcılar
Verim Rüzgâr hızı, aktif güç, pitch, yaw, durum 1 sn ile 10 dk arası ortalamalar Performans mühendisleri
Yükler Rotor hızı, pitch, güç, varsa yük sensörleri Uçta yüksek hızda, özetlenmiş Varlık yöneticileri, mühendislik
Bakım Dişli kutusu, rulman ve jeneratör sıcaklıkları, titreşim, yağ verileri Saniyelerden dakikalara Bakım planlamacıları
Operasyon Durum kodları, alarmlar, kullanılabilirlik Değişiklik anında Kontrol odası

SCADA Verilerini MQTT'ye Taşımak

Rüzgâr santrali SCADA sistemleri verileri genellikle OPC UA, Modbus, IEC 61400-25 tabanlı arayüzler veya üretici veritabanları üzerinden sunar. Olağan kalıp, trafo merkezinde veya kontrol binasında bulunan bir uç ağ geçididir:

  1. Ağ geçidi türbin verilerini SCADA sunucusundan veya doğrudan türbin kontrolörlerinden okur.
  2. Ölçümleri, sahanın giden internet bağlantısı üzerinden TLS ile MQTT topic'lerine yayınlar.
  3. Bulut veya merkezi servisler topic'lere abone olur, ikiz çıktılarını hesaplar ve geçmişi saklar.

MQTT, iyi bilinen nedenlerle uzak enerji sahalarına uygundur: kısıtlı bağlantılarda hafiftir, bağlantı sahadan dışarı doğru kurulduğu için gelen trafik için güvenlik duvarı portu açmak gerekmez ve QoS 1 ile kalıcı oturumlar kısa bağlantı kesintilerini atlatmaya yardımcı olur. Bir bulut MQTT broker kullanmak, farklı bölgelerdeki santrallerin tek bir uç noktaya yayın yapması ve operasyon ekibinin her lokasyonda broker sunucusu bakımı yapmaması anlamına gelir.

Önemli: ağ geçidi SCADA'dan yalnızca okuma yapmalıdır. Türbinlere yönelik kontrol komutları, sertifikalı kontrol sistemlerine ve onların korumalı ağlarına aittir.

Topic ve Payload Tasarımı

Topic'leri önce santral ve türbine, ardından veri türüne göre düzenleyin:

connectmq/<farm>/<turbine>/<data-type>

connectmq/northridge/wtg07/operation
connectmq/northridge/wtg07/drivetrain
connectmq/northridge/wtg07/status
connectmq/northridge/met-mast1/weather

On saniyelik bir operasyonel payload:

{
  "windSpeedMs": 9.4,
  "windDirDeg": 251,
  "yawDeg": 248,
  "rotorRpm": 13.8,
  "pitchDeg": 0.5,
  "activePowerKw": 1985,
  "ts": "2026-10-16T09:41:20Z"
}

Durum değişikliklerini (çalışıyor, kısıtlanmış, arıza, bakım) retained message olarak yayınlayın; böylece bir ikiz görüntüleyicisi her türbinin mevcut modunu her zaman bilir. Operasyonel değerlerde MQTT 5 message expiry kullanın; böylece ağ geçidi çevrimdışı olan bir türbin, bayat verilere dayanarak üretim yapıyormuş gibi görünmez.

Uygulamalı: Python ile Güç Eğrisi Sapması

Aşağıdaki örnek, simüle edilmiş türbin verileriyle broker.connectmq.com üzerinde çalışır. Küçük bir referans güç eğrisi, orta rüzgâr hızlarında hafifçe düşük performans gösteren bir simülatör ve kayan bir performans oranı yayınlayan bir ikiz servisi içerir. Herkese açık broker herkes tarafından okunabildiği için yalnızca simüle edilmiş değerler kullanın.

import json
import random
import time
import uuid
from collections import deque

import paho.mqtt.client as mqtt

RUN = "wtg-91be"  # change to your own unique id
BASE = f"connectmq/demo/{RUN}/northridge/wtg07"

# Illustrative reference power curve: wind speed (m/s) -> power (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:  # ignore very low wind where the ratio is noisy
        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  # simulated underperformance
        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

Oran 1,0'ın altına yerleşir ve simüle edilen kaybı ortaya çıkarır. Gerçek analiz; kısıtlama, arızalar, hava yoğunluğu düzeltmesi ve rüzgâr sektörü için filtreler ekler, ancak veri akışı aynı kalır: SCADA değerleri girer, ikiz çıktıları görüntüleyiciler ve uyarılar için MQTT'ye geri yayınlanır.

Dağıtım Kontrol Listesi

  1. SCADA verilerine salt okunur erişimi türbin üreticisi (OEM) ve saha operatörüyle kararlaştırın.
  2. Ağ geçidini, 8883 portunda yalnızca giden TLS bağlantısı olan ayrıştırılmış bir ağa yerleştirin.
  3. Her saha ağ geçidi için bir kimlik bilgisi ve client ID kullanın; ConnectMQ, client ID'leri verilen kimlik bilgilerine bağlar.
  4. Kısa bağlantı kesintilerinde olayların kaybolmaması için durum ve alarm topic'lerinde kalıcı oturumları ve QoS 1'i etkinleştirin.
  5. Uzun vadeli analiz için ortalama değerleri, daha yüksek frekanslı değerleri ise yalnızca bir kullanım senaryosu gerektirdiğinde yayınlayın.
  6. Geçmişi, zaman serisi veritabanına yazan ayrı bir aboneyle saklayın.
  7. Dişli kutusu sıcaklığının bir sınırı aşması gibi bariz durumlar için portal eşik kurallarını veya kendi servisinizi kullanarak uyarılar ekleyin.
  8. İkiz çıktılarına güvenmeden önce bunları operatörün mevcut raporlarıyla karşılaştırarak doğrulayın.

Sık Yapılan Hatalar

  • Nasel anemometresi verilerini olduğu gibi kullanmak. Rotor ölçümü bozar; operatörler çoğu zaman bir nasel transfer fonksiyonu uygular. Türbinler arasında aynı koşulları karşılaştırın.
  • Kısıtlamayı filtrelememek. Kısıtlanmış dönemler, durum kodları kullanılarak hariç tutulmadıkça ciddi düşük performans gibi görünür.
  • SCADA sunucuları ile ağ geçitleri arasındaki saat dilimi ve zaman damgası uyumsuzlukları.
  • Kontrol ile izlemeyi karıştırmak. Kontrol mimarisi uzaktan komutları açıkça desteklemedikçe ikizi salt okunur tutun.

Aynı kalıplar, fabrika dijital ikizi ve enerji dijital ikizi makalelerindeki diğer endüstriyel varlıklar için de geçerlidir.

Rüzgâr Santralinizi ConnectMQ'ya Bağlayın

ConnectMQ, izolasyon ihtiyacı olan operatörler için TLS, MQTT 5 ve dedicated ya da BYOC seçenekleri sunan barındırılan bir MQTT broker hizmetidir. Serverless planla app.connectmq.com adresinde ücretsiz başlayın; kredi kartı gerekmez. İlk türbin verilerinizi dakikalar içinde aktarın.

Sık Sorulan Sorular

Rüzgâr türbini dijital ikizi hangi verileri kullanır?

Esas olarak SCADA verilerini: rüzgâr hızı ve yönü, rotor hızı, pitch, yaw, aktif güç, aktarma organı sıcaklıkları ve durum kodları; mevcutsa bunlara ek olarak durum izleme ve yük verilerini.

MQTT uzak rüzgâr santrallerinden gelen verileri karşılayabilir mi?

Evet. MQTT hafiftir, yalnızca giden bağlantılarla çalışır ve kalıcı oturumlarla QoS 1'i destekler; bu da sınırlı veya kararsız bağlantıları olan uzak sahalara uygundur.

Bir dijital ikiz türbinlere komut göndermeli mi?

Genellikle hayır. Çoğu ikiz salt okunur izleme ve analiz aracıdır; türbin kontrolü sertifikalı kontrol sistemleri içinde kalır.

Güç eğrisi performansı nasıl ölçülür?

Kısıtlama, arızalar ve anormal koşullar filtrelendikten sonra gerçek çıkış, ölçülen rüzgâr hızındaki referans güç eğrisinden elde edilen beklenen çıkışla karşılaştırılır.

İlgili yazılar

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.