Wcałymcyklugrzewczymwyróżniamydwagłówneprocesy:ogrzewaniewodyoraz
utrzymanie odpowiedniej temperatury. Są to dwa główne źródła, które generują
zapotrzebowanie na energię elektryczną. Dodatkowo mamy jeszcze pobór energii na
pozostałe urządzenia, jednak przyjmujemy, że jeston stały dla danych godzin operowania.
Ogrzewanie wody:
Zbiornik na wodę pozwala na nagromadzenie 150 litrów ciepłej wody.Średnie zużycie
dobowewodywynosi 180 litrów.Wtrakciecałegoprocesuzakładamy,żenaszzbiorniknie
traciciepławody,niepotrzebujemywięcenergiiabyutrzymaćjejtemperaturę.Zakładamy,
że w momencie włączenia nagrzewania nasz zbiornikwypełniony jest wodą.
Utrzymanie temperatury w domu:
Konsumpcjaenergiiprzezsystemogrzewaniawgłównejmierzezależnajestodtemperatury
panującej na zewnątrz. Determinuje ona tempo utraty ciepłaz domu oraz pobór mocy
wymagany na podniesienie temperatury o 1 stopień Celsjusza.
Dodatkowowdomu dostępnyjestrekuperator,który pozwalana wyrównywanieśredniej
temperatury między pokojami. System ogrzewania dąży do utrzymania temperatur
zdefiniowanych przez użytkownika.
Mamy dostępne następujące źródła energii elektrycznej:
- ogniwa fotowoltaiczne
- akumulator
- sieć elektryczną
Zacznijmy od zdefiniowania sobie pewnego okresu czasowego T.
Następnie T dzielimy na równe okresy z których każdywynosi np. godzinę
W kolejnym kroku obliczamy wszystkie możliwe kombinacje pracy naszego systemu
zarządzania energią.
Gdzie mito tryb działania systemu
NastępniedlakażdegoodcinkaczasowegowTobliczamykosztwydanejenergiizsieciprzy
uwzględnionychparametrachwyjściowychzpoprzedniegoodcinkaczasowego(ilośćmocy
akumulatora, temperatura pomieszczenia) Dodatkowo wykorzystujemy OpenWeather API
aby prognozować pogodę i zachmurzenie na następnyodcinek czasowy.
Input:
- temperatura pomieszczenia osiągnięta w poprzednimodcinku czasowym
- wartość naładowania akumulatora osiągnięta w poprzednimodcinku czasowym
- przewidywana temperatur dla nowo rozpatrywanego odcinkaczasowego
(OpenWeather API) - przewidywane zachmurzenia dla nowo rozpatrywanegoodcinka czasowego
(OpenWeather API)
Output: - nowa temperatura pomieszczenia po odcinku czasowymprzy założeniu trybu mi v
- nowa wartość mocy akumulatora przy założeniu trybu mi
- estymowana wartość kosztów energii dla danej iteracji
Ostatecznie, sumujemy całkowity koszt energii elektrycznejz sieci dla całego ciągu trybów
działania
{m1 , m4 , m2 , m1 } → 5
{m2 , m1 , m2 , m4 } → 7
{m4 , m1 , m4 , m2 } → 6
{m1 , m1 , m3 , m3 } → 13
Jako tryb pracy systemu w następnym odcinku czasowymwybieramy pierwszy tryb z ciągu,
który zwrócił najmniejszy przewidywany koszt.
Wszystkie dostępne informacje są wykorzystane w celu estymacji energii elektrycznej
którą użytkownik będzie zmuszony pobrać z sieci aby następnie wyliczyć koszty tego
poboru. Podane informacje tworzą nietrywialną funkcję, któranastępnieminimalizujemy
algorytmem opisanym wcześnie.
Jako główną architekturą systemu zastosowaliśmy standardową architekturę webową
- klient-serwer. Klientem jest aplikacja webowa napisana w TypeScript przy użyciu
frameworkuReact.js.SerwerzostałnapisanywPythoniejakoformieRESTAPI,przyużyciu
frameworka Flask. Algorytmy użyte w funkcjach optymalizacyjnych również zostały
napisane w Pythonie jako oddzielne moduły wykorzystywane przez serwer. Całość
komunikacji odbywa się przy użyciu zapytań HTTP.
Taka architektura pozwala na uruchomienie aplikacji na każdym urządzeniu
obsługującym przeglądarki internetowe. Dodatkowo, większość kalkulacji odbywasię na
oddzielnym serwerze(docelowo umieszczonym w chmurze) przez co mocobliczeniowa
danego urządzenia nie jest istotna. Serwer w chmurze pozwoliłby również na łatwe
przyłączanie kolejnych modułów / urządzeń do systemuw przyszłości.
Testy naszegosystemu polegałyby nastworzeniuscenariuszysymulacjisystemu i
monitorowaniarozwiązaniapodwzględemestymatykosztówwzględemludzkiegoustalania
trybówpracy.Oczywiścieszeregscenariuszytestowychpozwoliłbynamnamonitorowanie
systemu i jego zachowań w różnych sytuacjach.
Scenariusz to nic innego jak asynchroniczny szereg wywołań różnych zmian
dziejących sięzarównowdomuijegootoczeniu.Dziękilicznym,,mockowym”modułom
symulującymurządzeniadomowe(którestworzyliśmyjakoniezależnemodułyPythonowe),
system możnaprzetestowaćniezależnieodbrakującychwdanymmomencie(fizycznych)
urządzeń czy elementów.
Sterowanietrybemdziałania sterownikazarządzającegoenergiązaimplementowane
jest po stronie serwera przy użyciu algorytmu opisanegopowyżej.
W celu testowania odpowiednich komponentów systemu stworzyliśmy moduł
pythonowydziałającypostronieserwera,któryimitujedziałanieurządzeńwróżnychporach
roku-abydostosowaćtemperatur-orazdnia-abydostosowaćnasłonecznienie,potrzebnew
celu wyliczenia efektywności paneli fotowoltaicznych.
System jest w pełni konfigurowalny oraz skalowalny,wymaga to tylko i wyłącznie
zaimplementowania i wdrożenia kolejnych implementacji urządzeń. Sama konfiguracja
wartościdziałaniaurządzeń dladanychodcinkówczasowychmożna zostaćustawionana
konfigurację domyślną – sparsowane z napisanego apilub ustawićsztywno na wartość
domyślną.Żadnaztychopcjiniewykluczastworzeniamodułudomanualnegoustawienia
tych parametrów przez użytkownika.
System jest niezawodny w tym sensie, że automatycznie dobiera możliwie najlepszy
tryb pracy biorąc pod uwagę przewidywania pogodowe dot.przyszłości. Jednocześnie jeśli
system niekoniecznie dokona prawidłowej estymaty np.poprzezzłą prognozępogody to
ciągle odpowiedni tryb pracy dostarczy odpowiednie zapotrzebowanie energetyczne. Z
punktuwidzeniaużytkownikanicsięniezmieni-domsamwinteligentnysposóbbędziesię
starałdobraćtrybpracysystemuabydostosowaćodpowiedniątemperaturępowietrzaiwody,
minimalizując przy tym koszty energii elektrycznej.
Leave a Reply