Document title
D1.3 Appendix 1.2b Energy Management Service Descriptions / Document type
Proposal
Date
11/28/2018 / Version
1.0
Author
Claude Le Pape / Status
Proposal
Contact
/ +33 6 83 63 41 20 / Page
1 (16)

D1.3 Appendix 1.2b Energy Management Service Descriptions

Document title
D1.3 Appendix 1.2b Energy Management Service Descriptions / Version
1.0
Date
11/28/2018 / Status
Proposal
Page
1 (16)
Document title
D1.3 Appendix 1.2b Energy Management Service Descriptions / Version
1.0
Date
11/28/2018 / Status
Proposal
Page
1 (16)
  1. Service Description Overview

This document describes a series of consistent services aimed at energy management. These services concern:

  • Energy Consumption or Production Measurement Time Series
  • Energy Consumption or Production Prediction Time Series
  • Energy Consumption or Production Valorization Time Series
  • Tariffs Data

It is based on requirements from Tasks T1.2, T1.3, and T1.4. Even though the focus for this specification has been electricity, we believe it can be applied (perhaps with minor adaptations) to other resources shared over a network. The case of water is particularly interesting in the context of Task T1.4.

Additional services for tariffs comparison and selection have been evoked, but their specifications still need to be worked out.

Changes are expected to converge on a more global proposal. We shall however manage not to make the services too complex.

1.1.Energy Consumption or Production Measurement Time Series

The underlying requirement is to enable a system to get energy consumption (or production) data from energy sensors and the corresponding data collection system. The objective is to make the measures remotely accessible through a network. This network could be private, virtually private, or public.

The service shall provide a secure access to the energy measures provided by energy sensors and collected through a local concentrator which delivers periodically buffered historical energy consumption or production data.

Let us note that this service could be viewed as a particular case of a more generic “Measurement Time Series” service.

1.2.Energy Consumption or Production Prediction Time Series

The underlying requirement is to enable a system to get an energy consumption (or production) prediction on the basis of (i) past data and (ii) prediction of correlated variables (e.g., related to weather).

Let us note that this service could be viewed as a particular case of a more generic “Prediction Time Series” service.

1.3.Energy Tariff Data

Tariffs are very dynamic and can change from one day to another; the changes can be ruled by a contract or simply the result of a market price. There is a strong need of a service that can provide the information about the tariff or a prediction of it. In addition, coordination mechanisms enabling multiple actors to adjust their consumption or production is a “globally smart” manner could be implemented through dynamic adjustments of tariffs.

The service shall provide the service subscriber (an energy management system) with a secure access to the tariff to be applied.The service subscriber can obtain the details of the energy tariff applicable to a given “energy node” (producer or consumer), possibly in an approximated manner.

1.4.Energy Consumption or Production Valorization Time Series

The underlying requirement is to obtain a cost or revenue time series from a given energy consumption or prediction time series submitted to a given tariff.

  1. Abstract Interfaces

2.1.Energy Consumption or Production Measurement Time Series Provider

The EnergyMeasurementTimeSeriesProviderinterface consists of three functions:

Function / Parameters / Return Value
GetEnergyTimeSeries
(GetPowerTimeSeries) / EnergyNode
StartTime
EndTime
Granularity
Units / EnergyTimeSeries
(PowerTimeSeries)
SubscribeEnergyTimeSeries
(SubscribePowerTimeSeries) / EnergyNode
StartTime
EndTime
Granularity
UpdatePeriod
Units / Status (Boolean)
Unsubscribe / EnergyNode / Status (Boolean)

2.1.1.Functions

2.1.1.1.GetEnergyTimeSeries / GetPowerTimeSeries

The function

GetEnergyTimeSeries(EnergyNode, StartTime, EndTime, Granularity, Units)

is used by a service subscriberto request a given time series, i.e., the energy consumption or production of the given EnergyNode, between the given StartTime and the given EndTime,detailed at the given timeGranularity, and expressed in the given Units system.

The output of the function is anEnergyTimeSeries as described in Section 3.

The function

GetPowerTimeSeries(EnergyNode, StartTime, EndTime, Granularity, Units)

is equivalent but provides the consumption or production in terms of power rather than energy.The output of the function is aPowerTimeSeries as described in Section 3.

2.1.1.2.SubscribeEnergyTimeSeries / SubscribePowerTimeSeries

The function

SubscribeXXX(EnergyNode, StartTime, EndTime, Granularity, UpdatePeriod, Units)

is used by a service subscriber to start a service subscription. This enables the servive provider to regularly send new data, according to the given UpdatePeriod, from the given StartTime and up to the given EndTime.

2.1.1.3.Unsubscribe

The function

Unsubscribe(EnergyNode)

is used by a service subscriber to end a service subscription.

All service subscriptions related to the given EnergyNode are terminated.

2.1.2.Sequence Diagrams

2.1.2.1.GetEnergyTimeSeries / GetPowerTimeSeries

Subscriber GetEnergyTimeSeries(...)  Provider

Subscriber Return value  Provider

2.1.2.2.Subscribe

Subscriber SubscribeXXX(...) Provider

Subscriber Return value  Provider

Subscriber UpdateXXXTimeSeries(...) Provider

Subscriber Return value  Provider

Subscriber UpdateXXXTimeSeries(...) Provider

Subscriber Return value  Provider

...

[Up to the given EndTime or to an Unsubscribe event]

2.1.2.3.Unsubscribe

Subscriber Unsubscribe(...) Provider

Subscriber Return value  Provider

2.2.Energy Consumption or Production Measurement Time Series Subscriber

The EnergyMeasurementTimeSeriesSubscriberinterface consists of a unique function:

Function / Parameters / Return Value
UpdateEnergyTimeSeries / EnergyNode
EnergyTimeSeries / Status (Boolean)
UpdatePowerTimeSeries / EnergyNode
PowerTimeSeries / Status (Boolean)

2.2.1.Functions

2.2.1.1.UpdateEnergyTimeSeries / UpdatePowerTimeSeries

The function

UpdateEnergyTimeSeries(EnergyNode, EnergyTimeSeries)

is used by the provider to push an update during subscription. It provides anEnergyTimeSeries concerning the energy consumption or production of the given EnergyNode over a given time period. Usually, the duration of this time period is equal to the UpdatePeriodof a running subscription. It can however be longer, e.g., in case old data has not been provided yet, whatever the reasons.

The function

UpdatePowerTimeSeries(EnergyNode, PowerTimeSeries)

is equivalent but provides the consumption or production in terms of power rather than energy.

2.2.2.Sequence Diagrams

See section 2.1.2.

2.3.Energy Consumption or Production Prediction Time Series Provider

The EnergyPredictionTimeSeriesProviderinterface is identical to the onedescribed in Section 2.1.

Function / Parameters / Return Value
GetEnergyTimeSeries
(GetPowerTimeSeries) / EnergyNode
StartTime
EndTime
Granularity
Units / EnergyTimeSeries
(PowerTimeSeries)
SubscribeEnergyTimeSeries
(SubscribePowerTimeSeries) / EnergyNode
StartTime
EndTime
Granularity
Horizon (optional)
UpdatePeriod
Units / Status (Boolean)
Unsubscribe / EnergyNode / Status (Boolean)

The main difference is that the service provider is not providing measures but estimates based on past measures and on previously learned dependencies with other variables.

A variant of theSubscribeXXX function distinguishes the Granularity, the Horizon, and the UpdatePeriod of the prediction:

SubscribeXXX(EnergyNode, StartTime, EndTime, Granularity, Horizon, UpdatePeriod, Units)

With this variant, the service provider updates the prediction time series regularly, according to the given UpdatePeriod, with the given Granularity, but never goes beyond the given Horizon in the future.

For example, if the Granularity is one hour, the Horizon seven days, and the UpdatePeriod one day, an update is done every day, providing an estimate of the consumption or production of the given EnergyNode over each hour of the seven coming days.

2.4.Energy Consumption or Production Prediction Time Series Subscriber

The EnergyPredictionTimeSeriesSubscriberinterface is identical to the one described in Section 2.2.

Function / Parameters / Return Value
UpdateEnergyTimeSeries / EnergyNode
EnergyTimeSeries / Status (Boolean)
UpdatePowerTimeSeries / EnergyNode
PowerTimeSeries / Status (Boolean)

2.5.Energy Tariff Data Provider

The EnergyTariffDataProviderprovides data about the tariff to be applied to a given EnergyNode. These data are provided in the form of a function describing the cost of energy consumption(or the revenue for energy production) at a given power level for one unit of time. This function varies over time, hence we conside the energy cost as a time-varying function of power.

The interface includes two functions.

Function / Parameters / Return Value
GetTariffTimeSeries / EnergyNode
StartTime
EndTime
Granularity
Shape
Units
Hypothesis (optional)
PowerProfile (optional) / TariffTimeSeries
LinearizeTariffTimeSeries / TariffTimeSeries
NegativeRelativeErrorMax
PositiveRelativeErrorMax / TariffTimeSeries

2.5.1.Functions

2.5.1.1.GetTariffTimeSeries

The function

GetTariffTimeSeries(EnergyNode, StartTime, EndTime, Granularity, Shape, Units)

is used by a service subscriber to request a given tarifftime series, i.e., a description of the tariff which applies to the given EnergyNode[1] over time, between the given StartTime and the given EndTime, expressed in the given Units system.

In real life, energy tariffs can be more or less complex and vary both in time and with the power which is used. In some cases, the service consumer is actually looking for an approximation of the actual tariff (e.g., because it is going to use this approximation in an already complex optimization model). As shown in the following figure, five types of approximations can be of interest:

  • Time-varying linear approximation: in this case, the tariff is described as a cost per unit of energy over given time intervals.
  • Time-varying continuous piecewise linear approximation: in this case, the tariff is allowed to vary with the power that is being used, i.e., the cost of energy might grow when the power usage exceeds a given level, but the function relating power and cost remains piecewise linear.
  • Time-varying piecewise linear approximation with penalties: in this case, (i) the cost of energy might grow when the power usage exceeds a given level and (ii) there might be fixed penalties for going above given power levels.
  • Time-varying continuous piecewise quadratic approximation: in this case, the cost of energy might grow with power in a piecewise linear or piecewise quadratic manner.
  • Time-varying piecewise quadratic approximation with penalties: in this case, (i) the cost of energy might grow with power in a piecewise linear or quadratic manner and (ii) there might be fixed penalties for going above given power levels.

Let us note that the curves may not start from the point (0, 0) as there might be an unavoidable subscription cost per unit of time.

The Shape parameter specifies the type of approximation the subscriber can handle. The Granularity parameter specifies a time granularity below which the provided tariff shall not vary. For example, if the Granularity is one hour and the Shape is Linear, the service provider will approximate the tariff by providing for each hour an average cost per unit of energy.

When the tariff is to be approximated, the service provider might make use of a “typical” power consumption profile (a consumption time series) to compute a good approximation. This parameter shall however remain optional.

In some cases, there might also be different “hypotheses” to consider, in which case at least a reference to the hypothesis under consideration isa needed entry.

The output of the function is a TariffTimeSeries as described in Section 3.

2.5.1.2.LinearizeTariffTimeSeries

The function

LinearizeTariffTimeSeries(TariffTimeSeries, NegativeRelativeErrorMax, PositiveRelativeErrorMax)

is used to transform a piecewise quadratic approximation into a piecewise linear approximation.

The NegativeRelativeErrorMax and PositiveRelativeErrorMax parameters enable to bound the difference between the given (initial) tariff and the returned tariff. The returned tariff shall be such that at any time t and whatever the power P, the following constraintsare satisfied:

(1 – NegativeRelativeErrorMax) * initialTariff returnedTariff

returnedTariff  (1 + PositiveRelativeErrorMax) *initialTariff

At least one of these two parameters must be strictly positive.

2.5.2.Sequence Diagrams

2.5.2.1.GetTariffTimeSeries

Subscriber GetTariffTimeSeries(...)  Provider

Subscriber Return value  Provider

2.6.Energy Consumption or Production Valorization Time Series Provider

The EnergyValorizationTimeSeriesProvider interface consists of four variants of a unique function:

Function / Parameters / Return Value
GetValorizationTimeSeries / EnergyNode
EnergyTimeSeries
Granularity
Units / MonetaryTimeSeries
GetValorizationTimeSeries / EnergyNode
PowerTimeSeries
Granularity
Units / MonetaryTimeSeries
GetValorizationTimeSeries / TariffTimeSeries
EnergyTimeSeries
Granularity
Units / MonetaryTimeSeries
GetValorizationTimeSeries / TariffTimeSeries
PowerTimeSeries
Granularity
Units / MonetaryTimeSeries

2.6.1.Functions

2.6.1.1.GetValorizationTimeSeries

The function

GetValorizationTimeSeries(EnergyNode,XXXTimeSeries, Granularity, Units)

GetValorizationTimeSeries(TariffTimeSeries, XXXTimeSeries,Granularity, Units)

is used by a service subscriber to obtain the time series of its costs or revenues at the given time Granularity.

Four versions are available:

  • In some versions, the EnergyNode under consideration is provided as a parameter and the service provider is expected to find the tariff to which the EnergyNode is subjected. In the other versions, the tariff description to be applied is provided. The first versionscould be used to avoid the communication of a tariff description over the network, when it is not necessary. The otherversionsare needed when different tariff descriptions are used alternatively for the same EnergyNode.
  • Either EnergyTimeSeriesproviding energy consumption or production (e.g., in kWh) over given intervals could be provided, or PowerTimeSeries providing consumed or produced power (e.g., in kW) could be provided.

2.6.2.Sequence Diagrams

2.6.2.1.GetValorizationTimeSeries

Subscriber GetValorizationTimeSeries(...)  Provider

Subscriber Return value  Provider

  1. Abstract Information Model

Relevant data types include:

  • EnergyNode.An energy noderepresents any energy consumer or producer. For example, in the context of Arrowhead Task T1.2, a manufacturing plant is considered as an energy node. A specific machine in the plant might also be considered as an energy node. In the first case, we are interested in the total energy consumption of the plant. In the second case, we look at the detailed consumption of a specific machine. For the services described in this document, no specific attribute of the energy node is needed.
  • TimeStamp (for parameters such asStartTime and EndTime). Any unambiguous representation of time is a priori acceptable. For example, start and end times could be expressed as a vector (year, month, day, hour, minute, second, time zone). They could also be expressed as integers, in a given TimeUnit based on a given TimeOrigin specified as part of the adopted Units system.
  • TimeDuration (for parameters such as Granularity, Horizon, UpdatePeriod). Any unambiguous representation of duration is a priori acceptable.
  • Units. This data structure represents a given system of units. For the services described in this document, the following attributes are needed: TimeUnit (e.g.,second), PowerUnit (e.g., kW), EnergyUnit (e.g., kWh), MonetaryUnit (e.g., Euro). It could also include Boolean parameters specifying whether positive energy values correspond to energy production or consumption, or whether positive monetary values correspond to revenues or costs. An alternative would be to set up a convention, e.g., positive values denote energy production (and revenues) and negative values energy consumption (and costs).
  • TimeSeries (including PowerTimeSeries, EnergyTimeSeriesand MonetaryTimeSeries). This data structure represents the evolution of a given numeric quantity of over time. Its attributes include a Units system and a set of (StartTime, EndTime, Value) triples. In the case of a PowerTimeSeries, the Value specifies the amount of power produced or consumed all along the time lapse between the given StartTime and the given EndTime.In the case of an EnergyTimeSeries, the Value specifies the amount of energy produced or consumed between the given StartTime and the given EndTime. In the case of a MonetaryTimeSeries, the Value specifies an amount of revenue or cost incurred between the given StartTime and the given EndTime.
  • TariffTimeSeries. This data structure represents the evolution of a tariff over time. Its attributes include a Units system and a set of (StartTime, EndTime, Curve) triples. The Curve specifies the “Power-to-Cost” function which applies from the given StartTime to the given EndTime. As tariffs are often repetitive (e.g., one Curve for the week days and another for the week-ends), additional fieldsPeriodicity, PeriodStartTime, and PeriodEndTime, could be added to ease the description of periodic tariffs. These specify that the (StartTime, EndTime, Curve) triple applies periodically according to the given Periodicitybetween the givenPeriodStartTime and the given PeriodEndTime.
  • CurveShape. An enumerated type with values Linear, PiecewiseLinearContinuous, PiecewiseLinear, PiecewiseQuadraticContinuous, PiecewiseQuadratic.[2]
  • Curve. A curve is described as a set of (Xmin, Xmax, Ymin, Ymax, InitialStep, InitialSlope) sextuples. For a tariff curve, the meaning of each such sextuple is the following:
  • When the power equals Xmin, the cost for being at this power level for one unit of time is Ymin.
  • As soon as Xmin is exceeded, i.e., becomes Xmin+, a penalty corresponding to the given InitialStep is paid, i.e., the cost becomes (Ymin +InitialStep). In the Linear, PiecewiseLinearContinuous, and PiecewiseQuadraticContinuouscases, all sextuples haveanInitialStepequal to 0.
  • Between Xmin+ and Xmax, the cost grows from (Ymin +InitialStep)to Ymax as a quadratic function of the power with the given InitialSlope. In particular, if Ymax – (Ymin + InitialStep) = InitialSlope * (Xmax – Xmin), then the cost grows linearly with the power. Such is systematically the case in the Linear, PiecewiseLinearContinuous, and PiecewiseLinearcases.

In the PiecewiseLinear case, one might say that the stepInitialStep is a fixed cost incurred for each time unit for which the consumption exceeds Xmin, and that the slope InitialSlopeis a variable cost incurred for each time unit and unit of consumption above Xmin and up to Xmax.

In the Linear case, a unique (0, Xmax, Ymin, Ymax, 0, InitialSlope) sextuple with Ymax – Ymin = InitialSlope * Xmaxis sufficient to represent the curve.

  1. Non-functional Requirements

Name / Description / Type / Constraints / Service / Use-case
Access right management / Guarantee that only authorized subscribers can access private information / Data security, confidentiality / All in this document / Arrowhead Tasks 1.2, 1.3, 1.4
  1. References

Arrowhead DELIVERABLE D1.2 of Work Package 1: plan and specification for the generation 1 demonstrations.

  1. Revision history

6.1.Amendments

No. / Date / Version / Subject of Amendments / Author
1 / 2014-04-28 / 0.1 / Initial proposal / Claude Le Pape
2 / 2014-06-06 / 1.0 / Update / Claude Le Pape

6.2.Quality Assurance

No. / Date / Version / Approved by
1 / 2014-06-06 / 1.0 / Claude Le Pape

[1] An open question is whether a reference to the EnergyNode is the best possible parameter. Another option would be a reference to a TariffContract, possibly together with an identification of the location of interest.

[2]We might need others to represent some tariff contracts more accurately. Yet we do not attempt to be complete in this document as this is not our primary interest.