← Yazılar

Otonom enerji yönetimi için akıllı priz

Prize takılan cihazı harmonik imzasından tanıyan, kendi aralarında röle ağı kuran akıllı priz tasarımı. Yıldız Teknik'te yürüttüğümüz lisans çalışması, IEEE bildirisi olarak yayımlandı.

·7 dk okuma

Bu yazının İngilizce sürümü de var

İçindekiler
  1. 2018’de neden buradaydım
  2. Problem
  3. Sistem
  4. Model
  5. Ne çıkmadı
  6. Geriye dönüp bakınca

2018’de neden buradaydım

Makine öğrenmesiyle ilk ciddi işim bu oldu. 2018’de, ürün yönetimi diye bir hedefim yokken, Yıldız Teknik’te elektrik mühendisliği okurken. O dönemde makine öğrenmesi hâlâ çoğunlukla akademik bir konuydu; kütüphaneler vardı ama gömülü bir cihazın içinde çalıştırmak, veri toplamak ve etiketlemek elle yapılan işlerdi.

Bizim sorumuz basitti: bir evde hangi cihazın ne kadar enerji harcadığını, her prize ayrı sayaç koymadan bilebilir miyiz?

Çalışma Barış Eroğlu, Safa Karip ve danışmanımız Uğur Savaş Selamoğulları ile yürütüldü, IEEE formatında bir bildiri olarak yazıldı: Machine Learning Integrated Smart Plug Design for Autonomous Demand Response Implementation.

Problem

Şebeke tarafında talep yanıtı (demand response) uzun süredir konuşuluyor. Fikir şu: elektrik talebinin tepe yaptığı saatlerde bazı yükleri kısıp başka saatlere kaydırırsan şebekenin üzerindeki baskı azalıyor. Konut tarafı toplam talebin yaklaşık beşte biri, yani üzerinde oynanmaya değer bir pay.

Ama bunu otomatik yapabilmek için sistemin prize takılı şeyin ne olduğunu bilmesi gerekiyor. Çamaşır makinesini bir saat sonraya ötelemek mantıklı, buzdolabını ötelemek değil. Kullanıcıya “bu prize ne taktın” diye sormak işe yaramıyor, çünkü kimse doldurmuyor ve takılan şey sürekli değişiyor.

Bizim hedefimiz kullanıcı müdahalesini sıfıra indirmekti: priz, takılan cihazı kendisi tanısın.

Sistem

Üç parça var: ölçen donanım, birbirine veri taşıyan ağ ve tanıyan model.

CS5490 ölçüm ESP8266 wi-fi UART Röle ağı sunucu ve istemci priz API MySQL React arayüz
Prizden çıkan ölçüm, röle ağı üzerinden API'ye, oradan veritabanına ve arayüze gidiyor.

Ölçüm

Prizin içinde CS5490 enerji ölçüm entegresi var. Gerilim, akım, aktif güç, reaktif güç, frekans ve güç faktörünü %1 hassasiyetle, varsayılan olarak 4000 örneklik pencerelerle ölçüyor. Bu entegrenin bizim için kritik özelliği harmonik bilgisini de verebilmesiydi; birazdan modelin başarısı buna bağlanacak.

Ölçüm verisi UART üzerinden ESP8266 ESP-01 modülüne, oradan wi-fi ile merkezî sunucuya gidiyor. ESP tarafı MicroPython ile yazıldı.

Röle ağı

Prototipte beklemediğimiz sorun kapsama oldu. Büyük evlerde bazı prizler ev wi-fi’sini yeterli seviyede görmüyor, veri gönderemiyor ve sistem o cihazı kaybediyor.

Çözüm için prizlerin birbirine yardım ettiği bir röle ağı kurduk. Her priz kendi sinyal gücünü (RSSI) ölçüyor ve eşiğe göre rol alıyor.

-100 dBm -20 dBm -70 dBm istemci priz station modu sunucu priz access point modu
Sinyali eşiğin üstünde olan priz sunucu rolüne geçip komşularının verisini taşıyor.

Sinyali eşiğin üzerinde olan priz access point moduna geçip soket sunucusu gibi davranıyor, zayıf sinyalli komşuları ona bağlanıyor. Sunucu priz kendi verisiyle birlikte istemcilerin verisini de eve bağlı wi-fi üzerinden API’ye iletiyor. API her priz için bir süre bekliyor; veri gelmezse o cihaz kayıp olarak işaretleniyor ve kullanıcıya bildiriliyor.

Bu parça bana beklediğimden fazla şey öğretti. Modelin doğruluğu ne olursa olsun, veri gelmiyorsa sistem çalışmıyor.

Arayüz ve veri

API dört uçtan ibaret: prizler veriyi /esp üzerinden yazıyor, arayüz güç değerlerini /getPowerValues ile okuyor, /turnOnOff ile cihaz açılıp kapanıyor, /missingPlug röle ağını yönetiyor. Veri MySQL’de iki tabloda tutuluyor: priz bazlı ölçümler ve cihaz bazlı tüketim.

Arayüz React ile yazılmış bir web uygulaması. Anlık akım, tüketim ve elektrik fiyatı üstte; altında priz bazlı grafikler ve cihazları tek tıkla açıp kapatabildiğin bir kontrol paneli.

Model

Cihaz tanıma için K en yakın komşu (K-NN) kullandık, scikit-learn ile. Girdi olarak akım, güç, aktif güç, reaktif güç ve harmonik bilgisi verildi. Ölçümler Yıldız Teknik’in akıllı ev laboratuvarında çamaşır makinesi, elektrikli süpürge, fırın, kettle gibi tipik ev aletleriyle toplandı.

Üç veri setini karşılaştırdık.

%70 %60 %50 %40 %64,3 %51,6 %47,5 3 5 7 9 11 13 15 K değeri
Kesiksiz çizgi harmonik içeren veri seti, kesikli çizgiler temel elektriksel parametreler ve eğitim ile test kümesinin yer değiştirdiği kontrol denemesi.

Birinci sette 3., 5., 7. ve 9. harmonikler var: en iyi sonuç %64,3. İkinci sette harmonik yok, yalnızca gerilim, akım, güç ve güç faktörü var: sonuç bütün K değerlerinde %51,6’da sabit kalıyor. Üçüncüsü bir kontrol denemesiydi; modeli test kümesiyle eğitip eğitim kümesinde denedik, %47,5’e düştü.

Aradaki fark asıl bulgu. Harmonikler, akım ve gerilimden daha ayırt edici. Sebebi de mantıklı: iki cihaz aynı gücü çekebilir ama motorlu bir süpürgenin ve rezistanslı bir ısıtıcının şebekeye bıraktığı bozulma aynı değil. Harmonik imza cihazın gücünü değil karakterini taşıyor.

K seçiminde tek sayıda kalmak gerekiyor ki oylama beraberliğe düşmesin. Küçük K gürültüye açık, büyük K aşırı öğrenmeye. Denemelerde K=7 civarını makul bulduk.

Ne çıkmadı

Bunu bir başarı hikâyesi olarak anlatmak isterdim ama %64 bir ürün için yeterli değil. Sistem talep yanıtını otonom yapacaksa yanlış tanıma oranının çok daha düşük olması gerekiyordu.

Bildiride de sonraki iş olarak K optimizasyonu ve veri setinin derinleştirilmesi yazıyor. Bugün baksam ilk deneyeceğim şey daha fazla veri toplamak ve tek bir anlık ölçüm yerine zaman serisi kullanmak olurdu. Cihazlar açılışta, çalışırken ve kapanışta farklı davranıyor; biz modele o davranışın yalnızca bir karesini veriyorduk.

Geriye dönüp bakınca

İki şey kaldı.

Birincisi, modelin doğruluğu sistemin en kırılgan yeri bile değildi. Wi-fi kapsaması, veri kaybı ve kullanıcının arayüzde gördüğü şey en az onun kadar belirleyiciydi. Yapay zekâ ürünlerinde bugün de savunduğum fikir buradan geliyor: model bir bileşen, ürün başka bir şey.

İkincisi, veriyi seçme işi modeli seçme işinden daha etkiliydi. Aynı algoritma, aynı cihazlar, aynı ev; sadece girdideki harmonik bilgisi %51’i %64’e taşıdı. Sonradan çalıştığım her yerde bu tekrar etti.

Bu proje aynı zamanda cihazda çalışan yapay zekâya olan ilgimin başladığı yer. Yedi yıl sonra Tacet ile aynı kısıtı yeniden seçiyorum: işlem, veriyi üreten cihazın üstünde kalsın.