• No results found

Předpověď spotřeby elektrické energie Předpověď spotřeby elektrické energie Předpověď spotřeby elektrické energie

N/A
N/A
Protected

Academic year: 2022

Share "Předpověď spotřeby elektrické energie Předpověď spotřeby elektrické energie Předpověď spotřeby elektrické energie"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

Liberec 2016

Předpověď spotřeby elektrické energie

Dataminingová úloha

Studijní program: N2612 –

Studijní obor: 1802T007

Autor práce: Bc. Jiří Kratochvíl

Předpověď spotřeby elektrické energie

Knime

Dataminingová úloha

– Elektrotechnika a informatika 1802T007 – Informační technologie Bc. Jiří Kratochvíl

Předpověď spotřeby elektrické energie

(2)

2

1. Úvod

Cílem úlohy je sestavit model, který z naměřených dat určí spotřebu na následujících 24 hodin. Data obsahují jak hodnoty spotřeby elektrické energie, tak i teploty z měřených oblastí, kam elektrická energie je distribuována elektrárenskou společností. Celá předpověď spotřeby elektrické energie je modelována v nástroji Knime.

2. Struktura datového souboru

Úloha obsahuje datový soubor spotrebaElektriny. Datový soubor obsahuje 35 064 záznamů spotřeby elektřiny v konkrétních dnech resp. hodinách spolu s naměřenými teplotami z různých oblastí. V datovém souboru je označeno, zdali byl v měřený den svátek či nikoliv.

Struktura části datového souboru je zobrazena na obrázku Obrázek 1: Část vstupních dat.

Obrázek 1: Část vstupních dat

Tabulka Tabulka 1: Atributy vstupních dat obsahuje popis všech atributů datového souboru studie předpovědi elektrické energie.

Tabulka 1: Atributy vstupních dat

Název Popis

Cas Čas měření

Spotreba Naměřená spotřeba elektřiny v MW

Celodenni prumerna teplota Denní průměrná teplota

Prumerna teplota Průměrná aktuální teplota všech oblastí Teplota oblast 1 Aktuální teplota oblasti 1

Teplota oblast 2 Aktuální teplota oblasti 2 Teplota oblast 3 Aktuální teplota oblasti 3 Teplota oblast 4 Aktuální teplota oblasti 4 Teplota oblast 5 Aktuální teplota oblasti 5 Teplota oblast 6 Aktuální teplota oblasti 6 Teplota oblast 7 Aktuální teplota oblasti 7

(3)

3 Teplota oblast 8 Aktuální teplota oblasti 8

Svatek Svátek

3. Příprava dat

Z analýzy atributů vstupního datového souboru, kterou jsem provedl před tvorbou datového modelu, jsem došel k závěru, že v přípravě dat se zaměřím na zjištění informací z poskytovaného data, jako jsou den v týdnu, měsíc apod., díky čemuž bude možné zobrazovat spotřebu elektrické energie v těchto časových údajích. Dále se zaměřím na zjištění výkyvů spotřeby, resp. na zjištění maximální a minimální hodnoty ve stanovených dnech i týdnech spolu se získáním informací o průměrné spotřebě za stanovené období a také zjištění závislosti teploty na spotřebě elektrické energie. Mezi zajímavost přiložím zobrazení závislosti spotřeby elektrické energie na svátcích. Z pořízených dat vyplývá, že data byla naměřena za časový úsek čtyř let.

Pro přípravu dat byl vytvořen vlastní datový tok (workflow), ve kterém jsou připravovány data pro tvorbu modelu předpovědi spotřeby elektrické energie. Datový tok je označen jménem elektrinaPripravaDat. Struktura datového toku je zobrazena na obrázku Obrázek 2:

Struktura workflow SpotrebaElektriny.

(4)

4 Obrázek 2: Struktura workflow SpotrebaElektriny

Workflow přípravy dat se skládá z několika uzlů, mezi nimiž je uzel pro načtení datového souboru spotrebaElektriny s označením Zdroj dat. Pro zobrazení obsahu datového souboru slouží uzel Zobrazeni dat. Dále se zde nachází důležitý uzel Priprava dat. Jedná se o Meta uzel, který slouží k slouží k zapouzdření zvolených uzlů do uzlu jednoho. Tento uzel lze přirovnat k metodě (funkci) v programovacích jazycích. Uzel lze vytvořit následujícím způsobem: v kontextové nabídce stiskneme záložku Node->Open Meta Node Wizard…

Následně se nám otevře průvodce pro vytvoření tohoto uzlu. Struktura uzlu Priprava dat je zobrazena na následujícím obrázku.

(5)

5 Vnitřní struktura uzlu Priprava dat je rozdělena do tří částí. V první části uzlu jsou zjišťovány časové údaje, jako je den v týdnu, měsíc, zjištění spotřeby elektrické energie před 24 hodinami a také zjištění spotřeby minulý týden ke každému pořízenému záznamu. Druhá část uzlů je zaměřena na agregační funkce, tedy na výpočet průměrných hodnot, hledání maximální a minimální hodnoty spotřeby elektrické energie a to jak pro hodnoty denní spotřeby, tak i týdenní spotřebu elektrické energie. V poslední třetí části se počítá průměrná teplota všech oblastí spotřebovávající elektrickou energii. V každé oblasti je počítána průměrná teplota za 24 hodin spolu s průměrnou teplotou za celý týden. V následujícím textu jsou popsány jednotlivé uzly obsažené v Meta uzlu Priprava dat.

První uzel Pripravy dat s názvem Filtrace sloupce spotreba slouží k filtrování atributu spotreba, který jsem použil ke třem následujícím operacím. Prvním cílem je zjištění spotřeby elektrické energie za 24 hodin od zkoumaného záznamu. Dále jsem chtěl zjistit, jaká spotřeba elektrické energie byla od každého provedeného měření před týdnem a nakonec jaká spotřeba byla před 24 hodinami. Za tímto účelem jsem vytvořil tři meta uzly (Meta node), které tyto hodnoty zjišťují. V tomto průvodci je možné zvolit počet vstupů a výstupů spolu s názvem uzlu. Pro mé účely jsem vytvořil meta uzel s jedním vstupem a jedním výstupem. První z těchto uzlů je Spotreba za 24 hodin. Struktura uzlu je na následujícím obrázku.

Obrázek 3: uzel Spotreba za 24 hodin

(6)

6 Uzel Spotreba za 24 hodin vytváří nový sloupec, ve kterém pouze odstraní prvních 24 hodnot sloupce spotreba za pomocí uzlu Row Filter a následně vytvořený sloupec pomocí uzlu Column Rename pojmenuje na Spotreba za 24 hodin. Tímto způsobem jsem zjistil, jaké hodnoty spotřeba vykazovala za následujících 24 hodin. Tutéž operaci jsem aplikoval i v uzlu Spotreba pred tydnem.

Obrázek 4: uzel Spotreba pred tydnem

Prvním uzlem, stejně jako v minulém případě, posouvám sloupec spotreba o 168 řádků, abych zjistil, jaká byla spotřeba elektřiny v minulém týdnu. Nový sloupec jsem přejmenoval na Spotreba pred tydnem a odstranil nadbytečné řádky, které tímto „posunutím“ vznikly, abych zachoval stejný počet řádků, jako měl původní sloupec.

V posledním uzlu tohoto typu zjišťuji hodnotu spotřeby, která byla naměřena před 24 hodinami.

Obrázek 5: uzel Spotreba pred 24 hodinami

Uzel Spotreba pred 24 hodinami stejně tak jako v minulém případě posune sloupec spotreba o 24 řádků, abych získal hodnoty spotřeby energie, které byly naměřeny před 24 hodinami.

Nakonec jsem nový sloupec pojmenoval jako Spotreba pred 24 hodinami pomocí uzlu Prejmenovani sloupce.

Nyní máme k dispozici tři důležité atributy, které budu později využívat při modelování předpovědi spotřeby elektrické energie. Dalším krokem je nově vytvořené atributy připojit k původním datům. Spojení je docíleno pomocí uzlu Column Appender. V uzlu je nastavena možnost Generate new row keys, aby výsledné řádky byly postupně indexovány od nuly.

(7)

7 Mezi další meta uzly patří uzly Zjisteni dnu v tydnu, Agregacni funkce a Vypocet prumeru teplot vsech oblasti. Struktura prvního z těchto uzlů je na následujícím obrázku Obrázek 6:

meta uzel Zjisteni dnu v tydnu.

Obrázek 6: meta uzel Zjisteni dnu v tydnu

Prvním úkolem uzlu je převést časový záznam z typu string na typ date/time, abych dále mohl s tímto časovým údajem manipulovat. K vytvoření nového uzlu denvtydnu jsem použil následující nastavení:

Obrázek 7: nastavení převodu string na date/time

Dále jsem chtěl z časového údaje zjistit konkrétní den v týdnu pro zjištění spotřeby elektrické energie v daných dnech v týdnu. K tomu jsem použil uzel Date Field Extractor. V tomto uzlu jsem zaškrtl volbu Day of week, zvolil hodnotu Number a pojmenoval nově vzniklý sloupec na Den v tydnu. Nastavení lze vidět v následujícím obrázku Obrázek 8: nastavení uzlu Date Field Extractor.

(8)

8 Obrázek 8: nastavení uzlu Date Field Extractor

Uzel Date Field Extractor nám vrátí číslo konkrétního dne v týdnu. Problémem však je, že tyto dny jsou v anglickém formátu, tedy týden nezačíná pondělím nýbrž nedělí. Úpravu tohoto chování jsem provedl v následujícím uzlu Java Snippet, kde jednoduchou programovou úpravou pomocí příkazu switch jsem změnil pořadí dnů. Dále jsem odstranil předešle vytvořený sloupec denvtydnu. Za pomocí posledního uzlu v uzlu serazeni sloupcu jsem seřadil sloupce vstupní matice do požadovaného pořadí (Obrázek 9: převod dne v týdnu na CZ formát).

(9)

9 Obrázek 9: převod dne v týdnu na CZ formát

V dalším kroku zjišťuji informace o průměrné spotřebě, maximální a minimální spotřebu a to jak pro denní hodnoty, tak i pro týdenní spotřebu. Za tímto účelem jsem vytvořil meta uzel s názvem Agregacni funkce, které požadované pozorování zjišťují. Meta uzel obsahuje následující Java Snippet uzly: Prumer 24 hodin, Prumer tyden, Max 24 hodin, Max tyden (Obrázek 10: maximalní spotřeba v týdnu), Min 24 hodin, Min tyden. Jelikož Knime nedisponoval potřebnými nástroji pro zjištění těchto údajů, bylo nutné toto chování uzlů naprogramovat. Z toho důvodu jsem použil již zmíněný uzel Java Snippet, který umožňuje psát programový kód v jazyce Java.

(10)

10 Obrázek 10: maximalní spotřeba v týdnu

Dále jsem vytvořil meta uzel s názvem Vypocet prumeru teplot vsech oblasti, pro zjištění průměrné spotřeby všech oblastí, kterou bude model dále využívat. V uzlu počítám průměrnou teplotu každé oblasti a to jak za 24 hodin, tak i průměr za celý týden. Za tímto účelem jsem, jako v předešlém případě, používal uzel Java Snippet a tyto funkce naprogramoval v jazyce Java.

V poslední části workflow přípravy dat pomocí uzlu Scatter Plot, který se nazývá Zobrazeni zavislosti, lze zobrazit závislosti mezi jednotlivými veličinami v grafické podobě ve formě grafu. V grafu je možné zobrazit závislost mezi vypočítanými průměrnými teplotami a spotřebou apod.

(11)

11 V dalším uzlu s názvem Dny v tydnu se číselné ohodnocení jednotlivých dnů v týdnu převádí za vytvořeného programu pomocí příkazu switch na textovou hodnotu kvůli přehlednějšímu zobrazování pro další uzel.

Obrázek 11: převod číselného označení dnu v týdnu na text

Závislost spotřeby elektrické energie na svátku zobrazuje uzel typu Box Plot (krabicový graf).

Závislost je zobrazena na obrázku Obrázek 12: spotřeba v závislosti na svátku. Uzel Spotreba v konkrétních dnech slouží pro zobrazení spotřeby v konkrétních dnech v týdnu (Obrázek 13:

spotřeba v konkrétních dnech). Posledním uzlem workflow přípravy dat je CSV Writer, který slouží k zápisu upravených dat pro modelování spotřeby elektrické energie.

(12)

12 Obrázek 12: spotřeba v závislosti na svátku

Obrázek 12: spotřeba v závislosti na svátku zachycuje situaci spotřeby elektrické energie při svátcích. Sváteční období ovlivňuje spotřebu elektrické energie tím, že má mnoho obchodů, státních firem a dalších institucích zavřeno a tudíž nedochází k takovému odběru jako v pracovní den. Podobnou situaci lze vidět i na vyvíjející se spotřebě energie během týdne na obrázku Obrázek 13: spotřeba v konkrétních dnech. Spotřeba elektrické energie je ve všedních dnech, resp. úterý až čtvrtek velice vyrovnaná. V pondělí a pátek je vidět vliv víkendových omezení, kdy může docházet např. k omezení výroby, resp. k její obnově.

Obrázek 13: spotřeba v konkrétních dnech

(13)

13

4. Model předpovědi spotřeby elektrické energie

Další část úlohy je zaměřena na vlastní modelování předpovědi spotřeby elektrické energie za dalších 24 hodin. Pro tyto účely jsem vytvořil workflow s názvem SpotrebaElektrinyModelovani, ve kterém je realizována předpověď. Následující obrázek Obrázek 14: modelování spotřeby elektrické energie zobrazuje strukturu tohoto workflow.

Obrázek 14: modelování spotřeby elektrické energie

Prvním uzlem ve workflow je uzel pro načtení dat, které jsem uložil v přípravné části této úlohy. Pro tento účel jsem použil uzel CSV Reader. Dále je potřebovat rozdělit načtená data na trénovací a testovací množinu tak, aby měl model data pro učení a testování. K tomuto rozdělení jsem použil uzel typu Partitioning, ve kterém jsem nastavil relativní rozdělení dat na 50%. Takto jsem docílil rozdělení připravených dat na dvě stejně velké části. Pro predikci pomocí neuronové sítě jsem vybral uzle PNN Lerner a PNN Predictor. PNN Lerner jsem využil pro trénování modelu a následně PNN Predictor k vlastní predikci. Dále jsem filtroval špatné výsledky predikce a to především, když v modelu dojde k tzv. outliers, tedy k hodnotám, které se rapidně liší od skutečných hodnot. Za tímto účelem byly vytvořeny tři větve, kde v této první větvi zjišťuji odhady, které se lišili o více než 2000MW a zároveň byl odhad menší než skutečná hodnota. Druhá větev obsahuje přehled předpovědí, které byly větší než skutečná hodnota a měly rozdíl větší než 2000MW.

(14)

14 Dále jsem označil špatné předpovědi, které se lišily o max. 500MW pomocí uzlu Spatny odhad. Následně je možné zobrazit dny, ve kterých ke špatným předpovědím docházelo.

K tomu jsem využil uzel Histogram a zvolili sloupec Den v tydnu.

5. Výsledky

Z výsledků je možné usoudit, že k nejvíce špatným předpovědí docházelo při vyšší změně teploty v jinak konstantních měsících. Jednalo se především o měsíce v zimním období.

Model celkově produkoval 74 nízkých odhadů, tzv. odhady, které byly nižší než skutečná hodnota za 24 hodin, a jejich rozdíl byl větší než 2000MW. Pro vysoké odhady, tj. odhady vyšší o 2000MW než byla skutečná spotřeba elektrické energie za 24 hodin, model produkoval 75 předpovědí. Histogramem jsem zjistil, že k nejvíce špatným předpovědím docházelo v neděli. Důvodem je zřejmě fakt, že v neděli docházelo k největším rozptylům spotřeby elektrické energie.

6. Závěr

Studie předpovědi spotřeby elektrické energie je zaměřena na analýzu a předpověď na základě záznamů časové řady, které byly pořízeny v časovém horizontu čtyř let. Pomocí data miningových nástrojů byly z poskytnutých dat zjištěny závislosti spotřeby elektrické energie na svátcích, dnech v týdnu a také byla zjištěna závislost spotřeby na venkovní teplotě. Pomocí analýzy byl následně vytvořen model pro ověření přesnosti předpovědi na testovacích datech.

Modelování předpovědi spotřeby elektrické energie je nicméně velmi složitá úloha a nelze dosáhnout přesných výsledků, ale pouze přibližných hodnot v určitém rozmezí. Hlavním důvodem je vysoká variabilita teploty, což velmi ovlivňuje vlastní predikci. Výsledky je nutné brát s rezervou.

(15)

15

Seznam obrázků

Obrázek 1: Část vstupních dat ... 2

Obrázek 2: Struktura workflow SpotrebaElektriny ... 4

Obrázek 3: uzel Spotreba za 24 hodin ... 5

Obrázek 4: uzel Spotreba pred tydnem ... 6

Obrázek 5: uzel Spotreba pred 24 hodinami ... 6

Obrázek 6: meta uzel Zjisteni dnu v tydnu ... 7

Obrázek 7: nastavení převodu string na date/time ... 7

Obrázek 8: nastavení uzlu Date Field Extractor ... 8

Obrázek 9: převod dne v týdnu na CZ formát ... 9

Obrázek 10: maximalní spotřeba v týdnu ... 10

Obrázek 11: převod číselného označení dnu v týdnu na text ... 11

Obrázek 12: spotřeba v závislosti na svátku ... 12

Obrázek 13: spotřeba v konkrétních dnech ... 12

Obrázek 14: modelování spotřeby elektrické energie ... 13

(16)

16

Seznam tabulek

Tabulka 1: Atributy vstupních dat ... 2

References

Related documents

Uvedené matematické modely jsou začleněny do klasické kaskádní regulační struktury, přičemž parametry proudového a otáčkového regulátoru byly nastaveny tak, aby

Obr. G.3: Amplitudová a fázová frekvenční charakteristika otáčkového servopohonu.. Z mnoha naměřených charakteristik je patrné, že na frekvenci 186 Hz

David Clooster, docent americké literatury na Hope College v Hollandu ve státě Michigan v USA a lektor – dobrovolník pro program Reading and Writing for Critical Thinking

Kontaktní nabíjení izolantů podrobně rozebírá Williams (2011). Některé byly vytvořeny s povrchovým materiálem odlišným od jádra. Korálky poté pouštěl

Pro testování algoritmů jsem použil agregovaná data za jednotlivé jízdy.. Jako kandidáty jsem použil: čas jízdy v sekundách, celková spotřeba energie, celková

Hlavním cílem bakalářské práce je vytvoření uživatelsky přívětivé multiplatformní apli- kace pro jednoduché zobrazování dat z měřicích přístrojů. Uživatel chce mít

Vodní, větrná, sluneční, geotermální a bioplynová elektrárna jsou zařízení, které k výrobě elektrické energie využívají obnovitelný zdroj energie a jsou v této

Vzhledem k tomu, že NoSQL databáze časových řad nedokáží ukládat obecná data, bylo by třeba mít při jejich použití pro informace o uživatelích a skupinách v aplikaci