<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>ML4CREST: Machine Learning for CPS Models∗</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Klikovits</string-name>
          <email>stefan.klikovits@unige.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aurélien Coet</string-name>
          <email>aurelien.coet@etu.unige.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Didier Buchs</string-name>
          <email>didier.buchs@unige.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Geneva</institution>
          ,
          <addr-line>Geneva</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>Models of small CPS and IoT applications often use approximated values that describe physical system behaviour. Physical resources, such as electricity consumption and heating power, have to be estimated, since many of-the-shelf components lack the required descriptions. Controllers which are based on these approximations can hence use imprecise models, perform misleading simulation, and cause damaged systems and financial loss. In this paper we present ML4CREST, a machine learning approach to automatically calibrate models using sensor measurements. We show that our approach is well-suited for the calibration of the flow rates within an automated watering system, which allows precise simulation and prevents spillage.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>The continuous advances of the Internet-of-Things (IoT) and
cyberphysical systems (CPS) have large influences on every-day life.
From “smart” devices such as media systems and CPS gadgets, to
self-driving cars and automated health-monitoring applications,
the positive impacts are undeniable.</p>
      <p>
        Obviously, as we increasingly rely on these systems, asserting
their correct functionality has become essential. The safety-critical
systems domain has successfully developed and proved the
eficacy of formal modelling techniques [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], model-driven engineering
approaches [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] alongside with rigorous development and
testing best-practices. These methods help preventing system failures,
damage to wealth, health and human life. Their impact increases
the trust in transport applications (e.g. trains, airplanes), medical
devices and other applications.
      </p>
      <p>The caveats of these powerful but complex approaches are their
high financial and temporal requirements. As a result, less critical
systems, such as small home or ofice automation systems,
automated gardening applications and similar, are often not verified
or only unsatisfyingly tested. Despite the low risk in health, these
applications can still have an enormous impact on individual’s life.
For example, a misconfigured smart home might experience power
outages when too many devices are started at the same time.
Automated plant hydration systems can damage wooden floors, electrical
appliances, etc. if they spill water or cause flowers and plants to
die. To prevent negative financial and qualitative influences, it is
necessary to prevent these kinds of hardships.</p>
      <p>This means that non-expert CPS builders need simple and
afordable modelling and simulation applications. But maybe even more
importantly, they require support during the model creation process
itself. Expressing physical influences between components is often
non-trivial. For example, the illumination of an object (measured
in lux) depends on the light emitted from the source (in lumen),
the size of the illuminated surface, the distance between them, the
source’s illumination angle, possible reflections of other surfaces,
etc. Such a calculation is highly complex and error prone, even to
expert engineers and physicists. Comparatively, it is easy to install
a lux meter and measure the value. Since in many small CPS
systems approximated values are satisfactory, regressions over a set
of such measurements can substitute the precise calculations. In
home automation, these approximations are also often necessary to
model of-the-shelf components, since many of them lack suficient
documentation and precise data-sheet descriptions.</p>
      <p>This paper introduces a simple means to perform measurements
and deduce resource transfers between components. Our
methodology allows CPS creators to automatically learn about the influences
between components within their system, so as to create a
representative system model. The approach is based on an automated
observation of the system using sensor readings and image
recognition. This information is subsequently analysed using machine
learning techniques that allow the determination of CPS component
behaviour.</p>
      <p>We validate our approach on an automated plant-growing system
that we use as a case study. The system includes a small water tank
that is used for distribution of water throughout the system. It is
iflled by a water pump, whose flow rate is unknown and which has
to be discovered to prevent spillage and damages and also assert
that the plants receive enough water.</p>
      <p>
        The acquired information is automatically added into a model
of the system that we created with CREST [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], a domain-specific
language (DSL) that ofers a simple yet powerful means to simulate
and verify systems.
      </p>
      <p>The rest of this paper is organised as follows: Section 2 briefly
introduces machine learning and outlines ML applications in the
IoT/CPS domain. Section 3 provides fundamental information about
the water tank case study and image recognition system we use.
Section 4 discusses the data taking and machine learning within
ML4CREST in detail. Section 5 elaborates on the integration of the
regression results into the system model and provides simulation
results. Section 6 concludes and gives an outlook of our next tasks.
2</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORKS</title>
      <p>
        Machine learning (ML) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is the domain of automatically analysing
data sets (a.k.a. the training sets) and, based thereon, predictions
about previously unknown data points are made. Regression is
one ML technique which relies on well-known mathematical
concepts such as interpolation [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], splines [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and piecewise function
iftting [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to find functions that best express relations of variables.
      </p>
      <p>
        The CPS/IoT community experiences a strong push towards
integrating machine learning in their systems. One of the main reasons
is the large quantity of analysable data, stemming from low-cost
sensors such as RFID tags, as well as the democratisation of
increasingly powerful micro-computation nodes (e.g. Arduino [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
Raspberry Pi [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], etc.). System builders and process analysts must
analyse and combine highly heterogeneous data sources [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] to
extract summaries and trends, while still allowing for the action
upon specific individual values. This means data sources are often
spread across large geographic areas, producing data at diferent
rates (several MHz to once per hour/day) and also diferent
qualities. For some applications all individual data points are important,
while for others some periodic value aggregations might sufice.
Microsoft’s Azure system [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is a popular tool for this purpose.
It allows the collection and aggregation of vast amounts of data
and supports system analysts in their analysis by ofering various
machine learning tools.
      </p>
      <p>
        On the other hand, even small farming applications and similar
systems use ML to estimate the soil moisture and presence of
minerals through soil measurements. Wine producers create wide-area
sensor networks using IoT devices [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and environment data, so as
to create models of their environment and to improve the quality of
their product [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Recently, automated discovery of a plant health
through image recognition [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and similar approaches aim to help
farmers maximise their harvest.
      </p>
      <p>
        Machine learning has also been successfully applied to home
automation sensors. Devices that perform “classic” ML tasks such as
speech recognition [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and temperature regulation [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] are widely
available. Recent research however aims at combining multi-sensor
measurements for more complex analyses. A highly challenging
application of this technique is the human activity recognition [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ],
where various sensors are used to detect whether a person is
walking, cycling, drinking cofee or watching TV. The Synthetic Sensors
project [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] on the other hand combines a dozen sensors and applies
ML techniques to identify burning stoves, running water faucets
and distinguish various electrical appliances within a home.
      </p>
      <p>So far, most ML applications in the CPS field aim either at the
analysis of large data quantities or the discovery of low-level
systems. They however omit one important aspect in CPS, namely the
calibration of custom systems. While the discovery of a running
water faucet is useful, there is no information about the tap’s flow
rate. As each system is diferent, a calibration of influences is highly
important, in order to analyse system behaviour and predict its
evolution.
3</p>
    </sec>
    <sec id="sec-3">
      <title>CASE STUDY - PRELIMINARIES</title>
      <p>ML4CREST is a machine learning approach that integrates the
automatic discovery of physical influences into CREST 1, a
domainspecific modelling language. In this section we elaborate on the
foundations upon which we built ML4CREST.</p>
      <sec id="sec-3-1">
        <title>1https://github.com/stklik/CREST</title>
        <p>3.1</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Water tank case study</title>
      <p>In our research we use a scenario taken from an automated plant
growing system. This system is composed of two equivalent plant
watering subsystems, which each feature a small water reservoir
(a two-litre soda bottle) that slowly distributes water to several
plants using pipes. The water flow rate can be adjusted for each
plant individually, the total outflow of the tank is the sum of the
individual flow rates. Figure 1 shows a schematic representation of
one such plant watering system.</p>
      <p>At regular intervals a relay activates a small water pump that fills
the reservoir. The flow rate of the water pump varies depending on
the pumping height, and is generally also unknown. Additionally,
the filling of the water tank can be slightly delayed due to the length
of the inflow hose.</p>
      <p>The purpose of our research is to create a model of the two
watering subsystems and assert that there is no overflow of the water
reservoirs. Hence, it is necessary to calibrate the model according to
the actual in- and outflow rates. As the values are unknown, we will
apply machine learning techniques based on sample measurements
to discover these parameters.</p>
      <sec id="sec-4-1">
        <title>Tank</title>
        <p>lfow
t
Ou</p>
      </sec>
      <sec id="sec-4-2">
        <title>Pump</title>
        <p>I
n
lf
o
w</p>
      </sec>
      <sec id="sec-4-3">
        <title>Plants</title>
        <p>In order to learn about the inflow and outflow of the water tanks,
we observe the changes in volume over time when pumping water
in and out of the system. To that end, we installed a camera to take
photos of the water tanks in small time intervals (e.g. every
second) and used it to determine the current water level. The detailed
methodology of the learning approach is described in the next
section. The rest of this section outlines our method to discover the
water level within the tanks.</p>
        <p>
          The observation of the current water level within a transparent
container is non-trivial and such image recognition approaches
require careful calibration [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Instead of trying to discover the
water level directly, we opted to place orange ping-pong balls into
the tanks. The balls float on the surface and thereby indicate the
water level within the reservoir. Our tool automatically takes photos
of the entire plant growing system. These photos are cropped, so
only the water tank itself is visible (see Figure 2a).
        </p>
        <p>To detect the ball position, an image segmentation algorithm
is applied. We use the knowledge that in the RGB spectrum,
orange colour shades possess high red values, and low green ones.
This means that orange pixels can be discovered by subtracting
each pixel’s green value from its red value. The resulting image is
greyscale, with light colours where red and orange shades were
found and darker ones for other colours, as shown in Figure 2b.
This greyscale image is then binarised to create a black &amp; white
mask. It means that, given a (predefined) darkness-threshold, all
pixels that are darker than the threshold are turned black, while
lighter ones are coloured in white. One such image mask is shown
in Figure 2c. Finally, we calculate the median of the white pixels
to get the ball’s centre position. Our algorithm uses the median
rather than the mean as the binarisation process might set other
pixels (not belonging to the ball) to white, thereby creating noise.
This occurs occasionally due to light reflections or noisy camera
images. Calculation of mean values would create significantly tilted
measurements, especially if the noise is distant from the actual ball
position. The median value proved to be more robust measure in
this sense.</p>
        <p>Once the position of the centre of the ball is known, its vertical
coordinate can be used as an indicator of the water level in the
cropped image.</p>
        <p>The image recognition algorithm, including example photos of
the system, is provided online in the ImageRecognition.ipynb2
Jupyter3 notebook. The notebook can be used to reproduce our
results.
4</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>ML4CREST</title>
      <p>The goal in our case study is to automatically learn about incoming
and outgoing water flow rates of two water tanks. The volumetric
lfow rate is a measure of the volume of fluid that passes through a
surface (e.g. a cross section of a pipe) per time unit. It is defined by
the limit
∆ V dV
Q = lim = (1)</p>
      <p>∆ t →0 ∆ t dt
where V is the volume of some fluid, and t is the time. In our case,
we are interested in the amount of water entering and leaving the
tank, i.e. the volume pumped through the hose and the volume
exiting through the hose to the plants.</p>
      <p>As shown in the formula above, the flow rate is the derivative of
the volume over time. To compute it, it is necessary to measure the
volume of water and its change over time when the tanks are filled
by the pumps and then emptied on the plants. The pump activation
automatically triggers a script which takes pictures of the system
(one picture per second for 15 minutes). This way, it is possible to
observe the tank’s water level at regular times during the filling
and emptying phases.
4.1</p>
    </sec>
    <sec id="sec-6">
      <title>Volume measurement</title>
      <p>In order to measure the water volume in the tank at a given time, it is
necessary to discover the function that maps the ball’s y-coordinates
2https://mybinder.org/v2/gh/stklik/CREST/MDE4IOT?filepath=ImageRecognition.
ipynb
3https://jupyter.org/
(a) Cropped
(b) Filtered
(c) Binarised
(as obtained by the image recognition) to the corresponding volume
and then interpolate the behaviour. This calibration was manually
performed by taking photos at known volume levels (0 to 1.45
litres in 0.05 litre steps) and extracting the ball’s y-coordinates (in
pixels) from these photos. We took three photos for each volume,
asserting that the ball would be at diferent positions within the
tank, and calculated the mean values. The reason for the multiple
measurements is that, as the camera is not always on level with
the ball, distortions by the water surface can occur when the ball is
higher than the camera, leading to minor measurement errors.</p>
      <p>Figure 3 shows the measurement averages per volume as points.
Based on these mean measurements a polynomial regression was
performed, resulting in the function traced in the figure. This
function can be used to approximate the volume of water within the
system. The curve’s determination coeficient ( R2) indicates the
regression-fit, i.e. the proportionate variance.
4.2</p>
    </sec>
    <sec id="sec-7">
      <title>Calculation of Inflow and Outflow</title>
      <p>Using the calibrated volume function, it is possible to measure the
volume in regular intervals during the filling and emptying phases.
We chose to analyse the volume every second during these phases
to obtain very precise measurements. This granularity was precise
enough for our purposes. For systems with slower change rates
however, less frequent measurements could be used.</p>
      <p>We use the obtained data to deduce the filling and outflow rates
as follows: Once the photos have been taken, the images are
analysed as described in Section 3.2 to extract the water level at every
time step. The resulting pixel measurements are mapped onto the
corresponding water volume using the volume regression function
described above. Figure 4 shows a graph of the measurements at
their corresponding times.</p>
      <p>It is clearly visible that during the filling phase, the volume rises
continuously, and that it starts dropping when the pump is turned
of after 58 seconds. Based on this information, the measurements
are split into two parts: filling and emptying. As one can see in
Figure 4, the inflow measurement grows almost linearly. We use the
scikit-learn machine learning library to perform a linear regression
on the inflow data.</p>
      <p>The linear regression on the measurements of the emptying
phase resulted in unsatisfactory results, especially towards the
beginning and end of the measurement phase. This is due to the
fact that the outflow rate is slowing down over time as the water
pressure decreases. We use pwlf4, a piecewise linear regression
library, to obtain a better approximation. Figure 4 displays the
linear and piecewise linear regressions, and that the latter performs
significantly better.</p>
      <p>Finally, the incoming and outgoing volumetric flow rates of the
water tank are obtained by reading the slopes of the regressions. So
as to generalise this result, the flow rate will be given for volume
levels, rather than for time spans. This is achieved by mapping
the time-ranges of the piecewise approximation to the according
volume level. Table 1 displays the flowrates within the water tank
system.</p>
      <sec id="sec-7-1">
        <title>Inflow rate 27.432 ml/s Outflow rate (1.389 - 0.678 L) 3.801 ml/s Outflow rate (0.678 - 0.405 L) 3.467 ml/s</title>
        <p>Outflow rate (0.405 - 0.000 L) 2.972 ml/s
Table 1: The inflow and outflow rates of the water tank. The
outflow rates vary with changing volume, which is provided
in parenthesis.</p>
        <p>The raw data as well as the regression approaches are provided
as open data in the FlowComputation.ipynb Jupyter notebook. It
can be accessed and executed online5.
4.3</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Second watering system</title>
      <p>The plant growing system hosts another watering system, with
fewer but larger plants. Here, the flow rate of the hoses leading
from the tank to the plants can be higher, as the higher root density
allows for plants to absorb water more quickly.</p>
      <p>Figure 5 shows the measurements and regressions for this second
system. Note that, due to the longer hose between the pump and
the water tank, there is a delay of around one second until the linear
iflling starts, which has to be taken into account when modelling
the system. It is also evident that the timing of this tank is very
diferent to the previous one. Due to the higher outflow rate, the
iflling phase is slightly longer (64 seconds instead of 58) and the
emptying phase is quicker.</p>
      <p>We again chose a linear regression for the filling phase and a
piecewise linear regression for the emptying phase. The calculations
resulted in the flow rates shown in Table 2.</p>
      <sec id="sec-8-1">
        <title>Inflow rate 22.628 ml/s Outflow rate (1.359 - 0.718 L) 11.077 ml/s Outflow rate (0.718 - 0.021 L) 9.045 ml/s</title>
        <p>Outflow rate (0.021 - 0.000 L) 2.07 ml/s
Table 2: The inflow and outflow rates of the second water
tank. The outflow rates vary with changing volume, which
is provided in parenthesis.</p>
      </sec>
      <sec id="sec-8-2">
        <title>4https://github.com/cjekel/piecewise_linear_fit_py 5https://mybinder.org/v2/gh/stklik/CREST/MDE4IOT</title>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>SIMULATION AND DISCUSSION</title>
      <p>
        The obtained measurements and regressions are verified by using
the values in a simulation and comparing the simulation data to the
actual system behaviour. For the simulation we chose to create a
model of the water tank system in the CREST language [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. CREST
is an internal domain-specific language (DSL) that uses Python as
host language. It focuses on the modelling of resource flow (e.g.
water, electricity) throughout a CPS and has a formal basis [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
An introduction to CREST, it’s syntax, semantics and simulation
capabilities can be found in the project repository6.
      </p>
      <p>
        The pump and water tank were modelled as finite-state machines,
which express continuous behaviour that is associated with
particular states (similar to hybrid automata [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]). The watering system
integrates both the tank and pump as subcomponents and connects
the pump’s output to the tank’s inflow port. The system has only
one input port, namely the pump’s on-of switch. The water tank
itself has vfie states: empty, full and one for each volume level in
between to model its associated outflow rate. For spatial reasons we
will not further discuss the model itself, but refer the reader to the
online repository7 for a more detailed description and visualisation
of the CREST model and the simulation.
      </p>
      <p>The model is calibrated using the values that were calculated
in the previous section. Using this model, we simulated the
watering system during several phases where the pump was repeatedly
turned on and of. The simulator ran an experiment of 150 seconds,
where the pump was turned on three times for ten seconds with 30
seconds pauses, followed by a 60 second of-phase. In parallel, we
executed the same process on the real watering system using an
automated script. Our image recognition tools took photos every
two seconds to trace the evolution of the water level within the
tank. Figure 6 shows the resulting simulation and the measurement
points within the test period.</p>
      <p>As we can see, the simulation and measurements are very close
for the first 120 seconds. It is however also visible that, during
the outflow phase, the measurements and simulation predictions
begin to diverge. We attribute this ofset to the combination of
small measurement errors and ofsets during the image recognition</p>
      <sec id="sec-9-1">
        <title>6https://github.com/stklik/CREST</title>
        <p>7https://mybinder.org/v2/gh/stklik/CREST/MDE4IOT?filepath=Watertank.ipynb
phase. For our purposes, namely the calculation of flow rates to
assert that plants receive the right amount of water, this poses only
a minor nuisance. For other, more sensitive applications however,
a more precise image recognition setup should be used.</p>
        <p>Despite that, our results are promising and show that simple,
home-made systems using of-the-shelf components (in our case
a Raspberry Pi, Pi Camera board and a USB-connected relay) can
be used to drive an automated plant growing setup. The available
tools and software libraries allow for easy integration of image
recognition and machine learning into the our system model.
6</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>FUTURE WORKS AND CONCLUSION</title>
      <p>This paper presents ML4CREST, a novel approach to calibrate
models of small cyber-physical systems such as home- and ofice
automation applications. ML4CREST employs machine learning algorithms
on top of automatically gathered data to deduce influences between
CPS components. An automated plant watering system within a
“smart” gardening application is used to describe our approach. In
this system the (previously unknown) inflow and outflow rates of a
water tank are deduced using open-source image recognition and
machine learning software libraries. We present the
implementation of the data analysis workflow and the connection with CREST,
a modelling language for CPS.</p>
      <p>Given the initial success of our approach, we plan to extend
ML4CREST in several directions. The automated plant growing
system we set up provides many areas in which automated learning
and calibration might be used. For example, we plan to model the
soil of our system to learn about the amount of water the soil can
hold and the evaporation rate at diferent temperature and light
conditions. A more ambitious goal is to create plant growth models
by measuring parameters such as illumination, temperature, soil
moisture and plant age.</p>
      <p>To support these modelling tasks, we intend to further automate
the data analysis and machine learning part and provide support
for more ML-algorithms and automated selection of the best
performing one.</p>
      <p>Additionally, we want to improve usability by replacing the static
volume detection system where the tanks’ image recognition
parameters are manually defined with an automated system that identifies
the tank by itself using automated object detection. We further hope
to replace our fixed camera setup with e.g. a smartphone camera
and advanced image recognition, to make the calibration task as
user-friendly as possible.</p>
      <p>
        Lastly, we plan to use the machine learning techniques in
another CPS domain. We observed that in complex CPS modelling,
behaviour is sometimes expressed using highly complex code
constructs, proprietary libraries or hidden code (e.g. using Functional
Mockup Interface [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). Hence, it is often infeasible to eficiently
simulate systems that use such non-analysable functions. By
executing these implementations using equivalence classes or symbolic
execution, it is possible to gather analysable data and to apply
machine learning techniques in order to approximate the actual
implementations.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Massimo</given-names>
            <surname>Banzi</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Getting Started with Arduino. Make Books - Imprint of:</article-title>
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          , Sebastopol, CA.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Roger</given-names>
            <surname>Barga</surname>
          </string-name>
          , Valentine Fontama, and Wee Hyong Tok.
          <year>2015</year>
          .
          <article-title>Introducing Microsoft Azure Machine Learning</article-title>
          .
          <source>In Predictive Analytics with Microsoft Azure Machine Learning</source>
          . Springer,
          <fpage>21</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Christopher</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Bishop</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Pattern Recognition and Machine Learning (</article-title>
          <source>Information Science and Statistics)</source>
          . Springer-Verlag, Berlin, Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Torsten</given-names>
            <surname>Blochwitz</surname>
          </string-name>
          , Martin Otter,
          <string-name>
            <surname>Johan</surname>
            <given-names>ÃĚkesson</given-names>
          </string-name>
          , Martin Arnold, Christoph Clauss, Hilding Elmqvist, Markus Friedrich, Andreas Junghanns, Jakob Mauss, Dietmar Neumerkel, Hans Olsson, and
          <string-name>
            <given-names>Antoine</given-names>
            <surname>Viel</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Functional Mockup Interface 2.0: The Standard for Tool independent Exchange of Simulation Models</article-title>
          .
          <source>In Proceedings of the 9th International Modelica Conference. The Modelica Association</source>
          ,
          <fpage>173</fpage>
          -
          <lpage>184</lpage>
          . http://dx.doi.org/10.3384/ecp12076173
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Edmund</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Clarke</surname>
          </string-name>
          and
          <string-name>
            <surname>Jeannette M. Wing</surname>
          </string-name>
          .
          <year>1996</year>
          .
          <article-title>Formal Methods: State of the Art and Future Directions</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>28</volume>
          ,
          <issue>4</issue>
          (Dec.
          <year>1996</year>
          ),
          <fpage>626</fpage>
          -
          <lpage>643</lpage>
          . https://doi.org/10.1145/242223.242257
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Carl</given-names>
            <surname>De Boor</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>A practical guide to splines</article-title>
          . Springer, Berlin.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Sagi</given-names>
            <surname>Eppel</surname>
          </string-name>
          and
          <string-name>
            <given-names>Tal</given-names>
            <surname>Kachman</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Computer vision-based recognition of liquid surfaces and phase boundaries in transparent vessels, with emphasis on chemistry applications</article-title>
          .
          <source>CoRR abs/1404</source>
          .7174 (
          <year>2014</year>
          ). arXiv:
          <volume>1404</volume>
          .
          <fpage>7174</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Mariano</given-names>
            <surname>Gasca</surname>
          </string-name>
          and
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Sauer</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>On the History of Multivariate Polynomial Interpolation</article-title>
          .
          <source>J. Comput. Appl. Math. 122</source>
          ,
          <issue>1</issue>
          -
          <fpage>2</fpage>
          (
          <year>2000</year>
          ),
          <volume>13</volume>
          . https: //doi.org/10.1016/S0377-
          <volume>0427</volume>
          (
          <issue>00</issue>
          )
          <fpage>00353</fpage>
          -
          <lpage>8</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Bernd</given-names>
            <surname>Hamann</surname>
          </string-name>
          and
          <string-name>
            <surname>Jiann-Liang Chen</surname>
          </string-name>
          .
          <year>1994</year>
          .
          <article-title>Data point selection for piecewise linear curve approximation</article-title>
          .
          <source>Computer Aided Geometric Design</source>
          <volume>11</volume>
          ,
          <issue>3</issue>
          (
          <year>1994</year>
          ),
          <fpage>289</fpage>
          -
          <lpage>301</lpage>
          . https://doi.org/10.1016/
          <fpage>0167</fpage>
          -
          <lpage>8396</lpage>
          (
          <issue>94</issue>
          )
          <fpage>90004</fpage>
          -
          <lpage>3</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          .
          <year>1996</year>
          .
          <article-title>The Theory of Hybrid Automata</article-title>
          .
          <source>In Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science (LICS '96)</source>
          . IEEE Computer Society, Washington, DC, USA,
          <fpage>278</fpage>
          -. http://dl.acm.org/citation.cfm?id=
          <volume>788018</volume>
          .
          <fpage>788803</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Julia</given-names>
            <surname>Hirschberg</surname>
          </string-name>
          and
          <string-name>
            <given-names>Christopher D.</given-names>
            <surname>Manning</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Advances in Natural Language Processing</article-title>
          .
          <source>Science</source>
          <volume>349</volume>
          ,
          <issue>6245</issue>
          (
          <year>2015</year>
          ),
          <fpage>261</fpage>
          -
          <lpage>266</lpage>
          . https://doi.org/10/f7kfrk arXiv:http://science.sciencemag.org/content/349/6245/261.full.pdf
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Aqeel</surname>
            <given-names>Kazmi</given-names>
          </string-name>
          , Zeeshan Jan, Achille Zappa, and
          <string-name>
            <given-names>Martin</given-names>
            <surname>Serrano</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Overcoming the Heterogeneity in the Internet of Things for Smart Cities</article-title>
          .
          <article-title>In Interoperability and Open-Source Solutions for the Internet of Things, Ivana Podnar Žarko</article-title>
          , Arne Broering,
          <source>Sergios Soursos, and Martin Serrano (Eds.)</source>
          . Vol.
          <volume>10218</volume>
          . Springer International Publishing, Cham,
          <fpage>20</fpage>
          -
          <lpage>35</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -56877-
          <issue>5</issue>
          _
          <fpage>2</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Stefan</surname>
            <given-names>Klikovits</given-names>
          </string-name>
          , Alban Linard, and
          <string-name>
            <given-names>Didier</given-names>
            <surname>Buchs</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>CREST - A Continuous, REactive SysTems DSL</article-title>
          .
          <source>In Proceedings of MODELS</source>
          <year>2017</year>
          <article-title>Satellite Event: Workshops (ModComp, ME</article-title>
          , EXE, COMMitMDE, MRT,
          <string-name>
            <surname>MULTI</surname>
          </string-name>
          , GEMOC, MoDeVVa, MDETools, FlexMDE, MDEbug), Posters, Doctoral Symposium, Educator Symposium, ACM Student Research Competition, and
          <article-title>Tools and Demonstrations co-located with</article-title>
          <source>ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS</source>
          <year>2017</year>
          ), Austin, TX, USA, September,
          <volume>17</volume>
          ,
          <year>2017</year>
          .
          <fpage>286</fpage>
          -
          <lpage>291</lpage>
          . http://ceur-ws.
          <source>org/</source>
          Vol-2019/gemoc_2.pdf
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Stefan</surname>
            <given-names>Klikovits</given-names>
          </string-name>
          , Alban Linard, and
          <string-name>
            <given-names>Didier</given-names>
            <surname>Buchs</surname>
          </string-name>
          .
          <year>2018</year>
          . CREST Formalization.
          <source>Technical Report. Software Modeling</source>
          and Verification Group, University of Geneva. https://doi.org/10.5281/zenodo.1284561
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Gierad</surname>
            <given-names>Laput</given-names>
          </string-name>
          , Yang Zhang, and
          <string-name>
            <given-names>Chris</given-names>
            <surname>Harrison</surname>
          </string-name>
          .
          <year>2017</year>
          . Synthetic Sensors: Towards
          <string-name>
            <surname>General-Purpose Sensing</surname>
          </string-name>
          . ACM Press,
          <fpage>3986</fpage>
          -
          <lpage>3999</lpage>
          . https://doi.org/10.1145/ 3025453.3025773
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Qiang</surname>
            <given-names>Liu</given-names>
          </string-name>
          , Yujun Ma, Musaed Alhussein, Yin Zhang, and
          <string-name>
            <given-names>Limei</given-names>
            <surname>Peng</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Green Data Center with IoT Sensing and Cloud-Assisted Smart Temperature Control System</article-title>
          .
          <source>Computer Networks</source>
          <volume>101</volume>
          (
          <year>June 2016</year>
          ),
          <fpage>104</fpage>
          -
          <lpage>112</lpage>
          . https://doi.org/10/f8p6jr
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Michal</given-names>
            <surname>Lagan</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>SMAVIN - the IoT sensors network for winers and thought leaders (product presentation)</article-title>
          . http://www.smavin.com/docs/smavin_smart_ sensors_for_vineyards_0607.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Hanno</surname>
            <given-names>Scharr</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Tony P.</given-names>
            <surname>Pridmore</surname>
          </string-name>
          , and
          <string-name>
            <surname>Sotirios</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Tsaftaris</surname>
          </string-name>
          .
          <year>2017</year>
          . Editorial: Computer Vision Problems in Plant Phenotyping, CVPPP 2017 -
          <article-title>Introduction to the CVPPP 2017 Workshop Papers</article-title>
          . In
          <source>The IEEE International Conference on Computer Vision</source>
          (ICCV)
          <article-title>Workshops</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Douglas</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Model-Driven Engineering</article-title>
          . IEEE Computer 39, 2 (
          <year>February 2006</year>
          ). http://www.truststc.org/pubs/30.html
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>Anna</given-names>
            <surname>Solana</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Internet of Wines: How this vineyard's smart sensors improve the vintage in your glass</article-title>
          .
          <source>ZDNet</source>
          (
          <year>2018</year>
          ). https://www.zdnet.com/article/ internet
          <article-title>-of-wines-how-this-vineyards-iot-improves-vintage-in-your-glass/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Eben</given-names>
            <surname>Upton</surname>
          </string-name>
          and
          <string-name>
            <given-names>Gareth</given-names>
            <surname>Halfacree</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Raspberry Pi User Guide (1st ed</article-title>
          .). Wiley Publishing.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Jindong</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Yiqiang Chen, Shuji Hao, Xiaohui Peng, and
          <string-name>
            <given-names>Lisha</given-names>
            <surname>Hu</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Deep learning for sensor-based activity recognition: A Survey. Pattern Recognition Letters (</article-title>
          <year>2018</year>
          ). https://doi.org/10.1016/j.patrec.
          <year>2018</year>
          .
          <volume>02</volume>
          .010
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>