Politechnika Śląska Centrum Energetyki Prosumenckiej Wydział Elektryczny Instytut Elektrotechniki i Informatyki Konwersatorium Inteligentna Energetyka Systemy informatyczne dla Z(zwirtualizowanego)KSE dr inż. Robert Wójcicki Gliwice, 22 maj 2018
Składowanie danych pomiarowych Typ danych Romiar (bajty) Zakres wartości TINYINT 1 0-255 lub od -128 do 127 SMALLINT 2 0 65535 lub od -32768 do 32767 INT 4 4 294 967 295 lub od -2 147 483 648 do 4 294 967 295 DOUBLE 8 od -1.7976931348623157E+308 do - 2.2250738585072014E-308, 0, od 2.2250738585072014E-308 do 1.7976931348623157E+308 TIMESTAMP 4 od 1970-01-01 00:00:01 do 2038-01-19 03:14:07 Przykład minimalnej struktury danych pomiarowych: odczyty { identyfikator_licznika (int), czas_pomiaru (timestamp), moc_czynna_bieżaca (int), energia_czynna_narastajaco (int) } Rozmiar: 16 bajtów danych
Narzuty protokołów potrzebne do przesłania 16 bajtów danych Dane : 16 bajtów Nagłówek UDP: 8 bajtów Nagłówek IP: 20 bajtów Nagłówek Ethernet: 14 bajtów Szyfrowanie danych algorytmem AES brak narzutu Sumaryczny rozmiar danych z nagłówkami protokołów: 58 bajtów Wniosek: bez dużego dodatkowego narzutu można przesyłać nieco więcej danych
Szacowanie transferu sieciowego i zapotrzebowania na dyski Pomiary danych w odstępach 1 minutowych dla 1 odbiorcy : 1440 pomiarów na dobę transfer sieciowy 82 kb/dobę miejsce na dysku (16 B danych): 25 kb/dobę (+ indeksy 10-15kB) 525 600 pomiarów rocznie transfer sieciowy 29 MB/rok miejsce na dysku (16 B danych): 10MB/rok Szacowane zapotrzebowanie na dyski dla 1 000 odbiorców: 10 GB/rok (+ indeksy 5GB) 1 000 000 odbiorców: 10 TB/rok (+ indeksy 5TB) Porównując, transfer dla pojedynczego pobrania strony (w dniu 2018-05-11) cire.pl - 850 kb, wp.pl - 1,4MB gazeta.pl - 2,8MB, wnp.pl - 2,9MB Cena pamięci masowych (twardych dysków) o pojemności 10TB na rynku konsumenckim około 1500PLN/sztukę (150PLN/1TB).
Jakie dane przesyłać i w jaki sposób? Datę i czas wykonania pomiaru? czy zegary systemu nadawczego i odbiorczego są zsynchronizowane? Energię czynną, a może też inne? z jaką rozdzielczością? 1Wh, 10Wh, 100Wh, 1kWh? z jaką rozdzielczością potrafi mierzyć licznik? co się będzie działo, gdy użyjemy przekładnika? Moc? z jaką rozdzielczością? 1W, 10W, 100W, 1kW, a może z rozdzielczością związaną z % mocy przyłączeniowej? czy wyliczać bieżącą moc na podstawie energii? co się będzie działo, gdy użyjemy przekładnika? A może przesyłać inne parametry? napięcie, natężenie, cos fi itd
Przykładowe problemy Niska rozdzielczość pomiaru energii
Obliczenia na podstawie energii, czy bieżącej mocy? Moc wyliczana na podstawie energii Moc odczytywana bezpośrednio z urządzenia Rozdzielczość pomiarów energii: 1 Wh, dla mocy np. 100 W, 1Wh zużywana jest co 36 sekund Częstotliwość akwizycji danych około: 1 min Opóźnienia pomiędzy wysłaniem danych, a zapisem do bazy: nieznane Różnice w wykresach: zauważalne
Obliczenia na podstawie energii, czy bieżącej mocy? Moc wyliczana na podstawie energii Moc odczytywana bezpośrednio z urządzenia Rozdzielczość pomiarów energii: 1 Wh, dla mocy np. 100 W 1Wh zużywana jest co 36 sekund, stanowi to problem przy małych mocach Częstotliwość akwizycji danych około: 1 min Opóźnienia pomiędzy wysłaniem danych, a zapisem do bazy: nieznane Różnice w wykresach: duże
Z jaka częstotliwością przesyłać dane? Mała częstotliwość (np. 5 min) mało danych, lecz duże opóźnienia w reakcjach Duża częstotliwość (np. 1 sek.) dużo danych, małe opóźnienia w reakcjach, duże błędy w obliczeniach mocy z energii, szpilki Co potrafi licznik? np. Pozyton sea 18:06:36.311000 cmd: R1 P() ==> 107( 0071; 0000; 0000; 0071) 18:06:36.422000 cmd: R1 P() ==> 107( 0071; 0000; 0000; 0071) 18:06:36.531000 cmd: R1 P() ==> 107( 0071; 0000; 0000; 0071) 18:06:36.641000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:36.749000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:36.859000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:36.969000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.079000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.189000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.297000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.407000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.518000 cmd: R1 P() ==> 107( 0067; 0000; 0000; 0067) 18:06:37.627000 cmd: R1 P() ==> 107( 0000; 0000; 0000; 0000) 18:06:37.743000 cmd: R1 P() ==> 107( 0000; 0000; 0000; 0000) 18:06:37.852000 cmd: R1 P() ==> 107( 0000; 0000; 0000; 0000) A może zmienna częstotliwość wysyłania danych? np. po zmianach mocy o wartość przekraczającą zadany próg?
Przykład systemu: pvmonitor.pl terminal dostępowy Baza danych
Zagregowana generacja źródeł gminy Wągrowiec w dniu 2018-05-01 (wagrowiec.pvmonitor.pl)
WME złożone z 23 użytkowników w dniu 2018-05-08 dane do godz. 13:03 godz. 13:06 dane do godz. 18:20 godz. 18:20 pvmonitor.pl
WME złożone ze 176 użytkowników w dniu 2018-05-08 dane do godz. 13:10 godz. 13:06 dane do godz. 20:25 godz. 18:20 pvmonitor.pl
WME profile generacji pv w dniu 2018-05-08 (557 instalacji) pvmonitor.pl godz. 13:00 godz. 17:50
Politechnika Śląska Centrum Energetyki Prosumenckiej Wydział Elektryczny Instytut Elektrotechniki i Informatyki Konwersatorium Inteligentna Energetyka Systemy informatyczne dla Z(zwirtualizowanego)KSE dr inż. Robert Wójcicki Gliwice, 22 maj 2018