The example is actively maintained in the its own dedicated repository.

And most of the individual examples used in the book have been implemented in the practical course materials. The reader can either follow the jupyter notebooks in sequence, or consult the reference below for a mapping between the book examples and the course materials.

Part I - Foundations

3.4 Models & Data - Incubator Temperature Virtual Model

The online jupyter notebook shows the creation of the model and its simulation.

Part II - Models and Data

5.4.1 Ordinary Differential Equations

The online jupyter notebook shows the creation of the model and its simulation, from the incubator dt practical course.

5.5.2 Artificial Neural Networks - Incubator Neural Network

The online jupyter notebook contains a complete example from the incubator dt practical course.

5.6.1 Finite State Machines - Incubator Controller FSM

The incubator finite state machine can be found in this online jupyter notebook from the incubator dt practical course

5.7.1 Co-Simulation

An example co-simulation is constructed in the last part of this jupyter notebook.

6.4.3 Calibration of Differential Equations

An example calibration is demonstrated in this jupyter notebook.

7.6.1 Sensor Fusion - Kalman Filter

An example application of a Kalman filter in the incubator is demonstrated in this jupyter notebook.

As a bonus, there is also a simplified particle filter.

7.5 Storing Data in Time-Series Databases

The setup of the timeseries database for the incubator is illustrated in this jupyter notebook.

Part III - Services for Digital Shadows and Digital Twins

8.3 Visualisation Services in a Digital Twin

The setup of the timeseries database and dashboard for the incubator is illustrated in this jupyter notebook.

The 4D visualization of the incubator is constructed in this tutorial:

  1. GodotIntro
  2. IncubatorViz
  3. IncubatorShadow

9.1 Incubator Monitoring

The last part of the following jupyter notebook illustrates how a Kalman Filter is used to detect that the lid of the incubator has been openned.

9.2.3 Signal Temporal Logic

The following jupyter notebook illustrates how a temporal logic monitoring tool can be used in the incubator.

10.2.1 Design Space Exploration with Conflicting Objectives

The following unit test test_controller_plot_pareto_front illustrates the optimization with conflicting objectives and builds the pareto front.

10.2.2 Fault Injection

The FI plugin can be found here.

Part IV - Realising Digital Shadows and Digital Twins

11.2 Digital Twin Frameworks

The DTaaS platform is being developed here and multiple examples, including the incubator example, are provided here.