Bronnen: Configureren virtuele variabelen

1. Overzicht configuratie: reële en virtuele variabelen

Via de tab “Config” kan men nagaan welke variabelen gelinkt aan een bron in Opisense verzameld worden en welke virtuele variabelen gelinkt aan een bron vervolgens in Opisense berekend worden.  Concreet komen de ruwe variabelen toe via configuratie van de hardware die de data verzendt. Vervolgens worden de variabelen (en dus hun ruwe data) herberekend via virtuele variabelen door een combinatie van data in Opisense (automatische berekening in het platform Opisense). De virtuele variabelen worden weergegeven via het logo dat een rekenmachine weergeeft. De werkelijke variabelen die toekomen via de hardware (ruwe data) geven dit logo niet weer.

4.png

In dit voorbeeld wordt de virtuele variabele "Phase A comsumption" berekend via de ruwe data die de index weergeeft en die  werkelijk toekomt in Opisense "Phase A Index".

 

2. Weergave berekening virtuele variabele

Door te klikken op het logo dat een rekenmachine weergeeft, kan de gebruiker nagaan hoe de virtuele variabele werd berekend.

 5.png

Het configuratiescherm werd opgedeeld in twee onderdelen:

  1. Links: Het configuratiescherm voor de variabelen die deel uitmaken van de virtuele variabele. Via dit configuratiescherm, kan de gebruiker de variabelen selecteren. Als variabele kan naast reële en virtuele variabelen, ook een formulier of een constante waarde geselecteerd worden.
  2. Rechts: De code die toelaat om een berekende variabele te berekenen op basis van de geselecteerde variabelen voor input. In dit voorbeeld, wordt geopteerd om een code in R in te voeren.

In dit voorbeeld wordt een standaardcode weergegeven, namelijk: berekening van de consumptie op basis van de index (reële variabele die toekomt in Opisense).

Het hart van de berekening wordt dus via de code in “Formula” ingegeven:

6.png

Men kan het resultaat van de berekende variabele berekenen door het successieve verschil te berekenen van de verschillende indexwaarden.

De rest van de code dient enkel om:

  1. De verschillende inputvariabelen te herverdelen op een as die tijd weergeeft (t$t), dewelke voor een berekende variabele wordt toegepast (functies: GetInputAxis, GetRegularAxis, SetDataOnCommonAxis)
  2. Het resultaat van de berekende variabele te fileteren om zo de datapunten te verwijderen die identiek zijn aan reeds bestaande datapunten in Opisense (functies FilterNaOutput et FilterDuplicateOutput)

Om een meer gedetailleerde toelichting over de werking van de functie “Berekende variabelen”, kan u zich wenden tot het online webinar:

https://www.bigmarker.com/opinum-s-a/Webinar-Variables-calcul-es?bmid=b65631536712

 Specifieke aandacht wordt gevestigd op het gebruik van de functies. Deze informatie heeft betrekking op de methode waarmee de inputvariabelen worden aangewend in de formule:

Indien “x” een alias is van de inputvariabele die eerder geselecteerd werd in het configuratiescherm links (selectie inputvariabelen).

 - inputVariables$x$TimeSeries$Dates
Laat toe om de as die de tijd weergeeft (as: x) te linken aan de inputvariabelen in de formule..

- inputVariables$x$TimeSeries$Values
Laat toe om de waarden van de inputvariabelen te linken aan de formule

- inputVariables$x$TimeSeries
Laat toe om om de bovenstaande vectoren met elkaar te combineren: op elk tijdstip, de betrokken waarde.

Om de functionaliteiten gelinkt aan de “Berekende variabele” nog beter te kennen, starten we opnieuw bij het begin aan de hand van een voorbeeld waarbij de waarde “consumptie” virtueel wordt geconfigureerd door de herberekening van een de variabele index gelinkt aan een meter…

 

2. Configuratie berekening virtuele variabele

2.1. Introductie

In dit voorbeeld configureren we de berekening van een consumptiewaarde (“Total consumption”) vanuit een reële waarde in Opisense, namelijk een index (“Energie active”).

Om dit te bereiken, moet men klikken op de drukknop “Voeg een nieuwe berekende variabele toe”, onderaan in de tab “Config”.

 

7.png

 

2.2. Configuratie eigenschappen virtuele variabele

Het volgende scherm verschijnt waarbij de eigenschappen van de berekende variabele kunnen worden ingesteld :

8.pngA. Type berekening: Op dit moment is enkel de scripttaal R mogelijk. De implementatie van de andere scripttaal Phyton en de implementatie van formules via Excel en Wizard wordt verwacht in 2018.

B. Naam: Naam van de nieuwe berekende variabele

C. Eenheid: Eenheid van de waarden van de berekende variabelen, na berekening. Let wel: de waarde van de virtuele variabele moet overeenstemmen met het de grootheid die de berekening zal geven als resultaat.

D. Granulariteit : De granulariteit van de variabele betreft het tijdsinterval waarop de berekende variabele gegenereerd moet worden.

E. Quantity type:

- Instantaneous : karakteriseert een variabele met een specifieke waarde op één moment (typisch : data stream, frequentie, volt, power, debiet,…)

- Integrated: karakteriseert een variabele waarvan de grootte voortvloeit uit een integratie (typisch : energieconsumptie)

- Cumulatief : karakteriseert een variabele die wordt opgeteld (typical : consumptie index)

- Minimum : karakteriseert een variabele van welke de waarde de minimumwaarde is binnen een bepaald tijdsinterval (typisch: minimum stream, minimum frequentie, minimum volt, minimum power, minimum debiet,...)

- Maximum : karakteriseert een variabele van welke de waarde de maximumwaarde is binnen een bepaald interval (typisch: maximum stream, maximum frequentie, maximum volt, maximum power, maximum debiet,... )

- Averaged : karakteriseert een variabelen van welke de waarde een gemiddelde waarde is binnen een bepaald interval (typisch: gemiddelde stream, gemiddelde frequentie, gemiddelde volt, gemiddelde power, gemiddelde debiet, ... )

Door te klikken op « Opslagen » verschijnt een volgend scherm.

 

2.3. Configuratie berekening virtuele variabele  

2.3.1. Configuratie inputvariabelen

9.png

 

  1. Alias: Naam die gegeven wordt aan de inputvariabele, zoals deze ook zal voorkomen in de syntax inputVariables$x$TimeSeries.
  2. Site: Site aan welke de inputvariabele verbonden is
  3. Source: Bron van de inputvariabele
  4. Variable : Inputvariabele
  5. Granularity: Door te kiezen voor “Raw” (ruwe data), kiest men ervoor om de datapunten voor input niet samen te voegen voor verzending naar het berekeningsmechanisme.. Door een andere opie dan “Raw”, kiest u ervoor om de datapunten voor input samen te voegen voor verzending naar het berekeningsmechanisme. Men kan kiezen om data te combineren per minuut, uur, dag, week, maand of jaar.  
  6. Aggregation: Indien bij “Granularity” gekozen werd voor “Raw”, zal men in deze tab de aggregatiemethode moeten kiezen: som, gemiddelde, minimum, maximum, aantal (“count”), variantie of standaard deviatie.
  7. Period: De periode laat toe om de kwantiteit te bepalen van verzending van de inputdata naar de berekeningsmotor van Opisense, bij elke nieuwe berekening. Deze periode kan gedefinieerd worden op twee manieren: relatief(bijvoorbeeld: 2 laatste dagen, 10 laatste datapunten) of gefixeerd door een datum te selecteren via een kalender.
  8. Eenheid: De waarden van de inputdata zullen geconverteerd worden in de unit, alvorens verzending naar de berekeningsmotor.
  9. As trigger: Door dit veld te selecteren zal men verzekeren dat een nieuwe berekening gelanceerd wordt zodra een nieuw datapunt toekomt in de inputvariabele. Het wordt aangeraden om minstens bij één inputvariabele dit veld te activeren, zodat de virtuele variabele automatisch wordt berekend.

De formulieren of de keuze van een constante kan op een gelijkaardige manier gedefinieerd worden. Om dit te bereiken, kiest men steeds een alias en selectioneert men een formulier of definieert men een constante.

De twee icoontjes bij elk invoerveld van elke inputvariabele (bovenaan rechts) bieden de mogelijkheid om een inputvariabele te verwijderen of te dupliceren, zodat een andere inputvariabele met dezelfde eigenschappen snel gedefinieerd kan worden.  

 

10.png

 

2.3.2. Configuratie formule:

De tweede étappe bestaat uit de implementatie van de scriptcode in R of Phyton (release 2018) of in Excel (release 2018) of Wizard (release 2018).

De output van de berekening moet in de volgende vorm worden beschreven:

list(Timeseries = data.frame(Dates = myDates, Values = myValues))

 

In dit geval hebben we dezelfde alias gebruikt dan de alias van de variabele index (enige inputvariabele), namelijk “vIndex”. De code uit het voorbeeld dat eerder werd aangehaald kan dus volledig gekopieerd worden om het resultaat van de virtuele variabele te behalen.

In elk geval is het belangrijk te melden dat de berekening de waarden zal genereren in overeenstemming met de initiële configuratie van de virtuele variabele (zie 2.2. Configuratie eigenschappen virtuele variabele)

11.png

2.3.3. Verificatie

 12.png

De drukknop "Check" laat toe om de syntax van de code R te verifiëren.  

De drukknop “Preview” laat toe om het resultaat van de virtuele variabele visueel weer te geven.

Indien het resultaat afwijkt van de verwachtingen, kunnen onderstaande tools meer inzicht bieden:

1. Eenmaal alle inputvariabelen gedefinieerd zijn, kan men klikken op Download sample data" om de dataset te downloaden de eerder door de gebruiker gedefinieerd werd. De dataset kan worden aangewend in de omgeving R, zoals RStudio bijvoorbeeld. De dataset stemt overeen met de data die worden verzonden naar de berekeningsmotor van Opinum.

2. De gebruiker kan een de code in R exporteren door te klikken op “Uploaden”. De code zal onmiddellijk geëxporteerd worden naar een omgeving in R, zoals RStudio.

Deze twee tools laten toe om de berekeningen toe te passen in een omgeving R. Dit laat bijvoorbeeld toe om tool toe te passen die bugs uit de code haalt.

3. geïnstalleerde packages

Voor informatie, hier is de lijst met packages geïnstalleerd op de R Opisense-server. Andere packages kunnen op aanvraag worden toegevoegd.

RUN R -e "install.packages('Rserve', repos='http://cran.r-project.org')"

RUN R -e "install.packages('ggplot2', repos='http://cran.r-project.org')"

RUN R -e "install.packages('RJSONIO', repos='http://cran.r-project.org')"

RUN R -e "install.packages('rjson', repos='http://cran.r-project.org')"

RUN R -e "install.packages('Rmisc', repos='http://cran.r-project.org')"

RUN R -e "install.packages('signal', repos='http://cran.r-project.org')"

RUN R -e "install.packages('foreach', repos='http://cran.r-project.org')"

RUN R -e "install.packages('doParallel', repos='http://cran.r-project.org')"

 RUN R -e "install.packages('jsonlite', repos='http://cran.r-project.org')"

RUN R -e "install.packages('httr', repos='http://cran.r-project.org')"

RUN R -e "install.packages('chron', repos='http://cran.r-project.org')"

RUN R -e "install.packages('data.table', repos='http://cran.r-project.org')"

RUN R -e "install.packages('quantmod', repos='http://cran.r-project.org')"

RUN R -e "install.packages('oce', repos='http://cran.r-project.org')"

RUN R -e "install.packages('RODBC', repos='http://cran.r-project.org')"

RUN R -e "install.packages('base64enc', repos='http://cran.r-project.org')"

RUN R -e "install.packages('lubridate', repos='http://cran.r-project.org')"

RUN R -e "install.packages('dplyr', repos='http://cran.r-project.org')"

RUN R -e "install.packages('forecast', repos='http://cran.r-project.org')" 

Was this article helpful?
0 out of 0 found this helpful

0 Comments

Please sign in to leave a comment.