Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .fuseki.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
fuseki:name "DTDF" ; # Name of the dataset in the endpoint url
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
fuseki:endpoint [ fuseki:operation fuseki:query ; fuseki:name "sparql" ] ; # SPARQL query service
fuseki:endpoint [ fuseki:operation fuseki:update ; fuseki:name "update" ] ; # SPARQL update service (Write access)
fuseki:endpoint [ fuseki:operation fuseki:shacl ; fuseki:name "shacl" ] ; # SHACL query service
fuseki:dataset <#dataset> .

Expand Down
Binary file added ci_screenshots/2026-03-19_828b9fd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ci_screenshots/2026-03-19_b4fea18.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/oml/bentleyjoakes.github.io/DTDF/vocab/DTDFVocab.oml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ vocabulary <https://bentleyjoakes.github.io/DTDF/vocab/DTDFVocab#> as DTDFVocab
to TimeScale
forward hasTimeScale
]
concept TimeScaleDescription < base:DescribedThing

//------------------------------
// C8: Multiplicity
Expand Down
2 changes: 1 addition & 1 deletion src/oml/bentleyjoakes.github.io/incubator/incubator_dt.oml
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ description <https://bentleyjoakes.github.io/incubator/incubator_dt#> as incubat
]

// C7: TimeScale
instance twinning_time_scale : DTDFVocab:TimeScale [
instance twinning_time_scale : DTDFVocab:TimeScaleDescription [
base:desc "The DT-to-PT synchronization occurs every time the PT sends a message to the DT (on a periodic basis)."
]

Expand Down
2 changes: 1 addition & 1 deletion website/static/DTInsight_web_export/DTInsight.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@

<script src="DTInsight.js"></script>
<script>
const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"emscriptenPoolSize":8,"ensureCrossOriginIsolationHeaders":true,"executable":"DTInsight","experimentalVK":false,"fileSizes":{"DTInsight.pck":804164,"DTInsight.wasm":36160334},"focusCanvas":false,"gdextensionLibs":[],"godotPoolSize":4};
const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"emscriptenPoolSize":8,"ensureCrossOriginIsolationHeaders":true,"executable":"DTInsight","experimentalVK":false,"fileSizes":{"DTInsight.pck":805252,"DTInsight.wasm":36160334},"focusCanvas":false,"gdextensionLibs":[],"godotPoolSize":4};
const GODOT_THREADS_ENABLED = false;
const engine = new Engine(GODOT_CONFIG);

Expand Down
Binary file modified website/static/DTInsight_web_export/DTInsight.pck
Binary file not shown.
202 changes: 101 additions & 101 deletions website/static/data_dump.yaml

Large diffs are not rendered by default.

Binary file modified website/static/images/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 47 additions & 47 deletions website/themes/my-theme/layouts/partials/characteristics-table.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,110 +3,110 @@
<th></th>
<th>Characteristics</th>
<th>Description</th>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>1</sub></td>
<td class="characteristic-id">C<sub>1</sub></td>
Comment on lines +6 to +8
<td>System under study</td>
<td>A Styrofoam box containing a lid, a heating element, and fan, controlled by a Raspberry Pi, for incubating tempeh.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>2</sub></td>
<td class="characteristic-id">C<sub>2</sub></td>
<td>Physical acting components</td>
<td>controller: Controls the fan and heater<br>fan: Circulates air throughout box<br>heater: Raises the temperature of surrounding air<br>power_supply: Powers electrical components</td>
</tr>
<td>fan: Circulates air throughout box<br>heater: Raises the temperature of surrounding air<br>controller: Controls the fan and heater<br>power_supply: Powers electrical components</td>
</tr>
<tr>
<td class="characteristic-id">C<sub>3</sub></td>
<td class="characteristic-id">C<sub>3</sub></td>
<td>Physical sensing components</td>
<td>temp_sensor_1<br>temp_sensor_2<br>temp_sensor_3</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>4</sub></td>
<td class="characteristic-id">C<sub>4</sub></td>
<td>Physical-to-virtual interaction</td>
<td>controller_state_trans<br>temp_readings_trans</td>
</tr>
<td>temp_readings_trans<br>controller_state_trans</td>
</tr>
<tr>
<td class="characteristic-id">C<sub>5</sub></td>
<td class="characteristic-id">C<sub>5</sub></td>
<td>Virtual-to-physical interaction</td>
<td>The controller in the PT sends sensor and actuator data on a periodic basis over RabbitMQ.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>6</sub></td>
<td class="characteristic-id">C<sub>6</sub></td>
<td>DT services</td>
<td>safe_adaptation<br>anomaly_detector<br>real_time_viz_service<br>policy_optimization<br>heater_state_estimation_service<br>what_if_sim</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>7</sub></td>
<td class="characteristic-id">C<sub>7</sub></td>
<td>Twinning time-scale</td>
<td>Real-time<br>Slower than real-time<br>The DT-to-PT synchronization occurs every time the PT sends a message to the DT (on a periodic basis).<br>Faster than real-time</td>
</tr>
<td>Slower than real-time<br>Real-time<br>The DT-to-PT synchronization occurs every time the PT sends a message to the DT (on a periodic basis).<br>Faster than real-time</td>
</tr>
<tr>
<td class="characteristic-id">C<sub>8</sub></td>
<td class="characteristic-id">C<sub>8</sub></td>
<td>Multiplicities</td>
<td>The current implementation has no multiplicities, however, it is possible to deploy multiple DTs for the same PT.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>9</sub></td>
<td class="characteristic-id">C<sub>9</sub></td>
<td>Life-cycle stages</td>
<td>The DT supports the design and the service phases. In the service phase, it supports creating, executing, saving, analyzing, evolving, and terminating.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>10</sub></td>
<td class="characteristic-id">C<sub>10</sub></td>
<td>DT models and data</td>
<td>Model:<br>four_para_model<br>pt_model<br>ANN_state_estimation_model<br>ANN_model<br>two_para_model<br>controller_model<br>env_model<br>pt_and_env_model<br><br>Data:<br>temp_readings_streaming<br>temp_readings_historical<br>controller_state</td>
</tr>
<td>Model:<br>pt_model<br>ANN_state_estimation_model<br>ANN_model<br>four_para_model<br>two_para_model<br>controller_model<br>env_model<br>pt_and_env_model<br><br>Data:<br>temp_readings_streaming<br>temp_readings_historical<br>controller_state</td>
</tr>
<tr>
<td class="characteristic-id">C<sub>11</sub></td>
<td class="characteristic-id">C<sub>11</sub></td>
<td>Tooling and enablers</td>
<td>simulator<br>state_estimator<br>anomaly_detector_enabler<br>optimization_algs<br>dashboard_enabler<br>godot<br>docker<br>influx_db<br>rabbit_mq</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>12</sub></td>
<td class="characteristic-id">C<sub>12</sub></td>
<td>DT constellation</td>
<td>The orchestration of the system-as-a-whole is carried out by micro-services. These microservices set up the multiple components from configuration files, including the models and data, tools and enablers, services, and physical-to-virtual and virtual-to-physical interaction. It is possible to leave aside some of the micro-services when initializing the DT for testing purposes..</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>13</sub></td>
<td class="characteristic-id">C<sub>13</sub></td>
<td>Twinning process and DT evolution</td>
<td>The DT was engineered based on a joint engineering approach. For the evolution, 10 milestones have been defined: identifying the physics for the PT, building the plant models with, characterizing the heating power, building the first physical prototype, experimentally refining the parameters for the plant model, creating the controller model, deploying the controller code into the physical controller, deploying the visualization service, providing services for state estimation and anomaly detection, and providing the service for optimizing the control policy.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>14</sub></td>
<td class="characteristic-id">C<sub>14</sub></td>
<td>Fidelity and validity considerations</td>
<td>The models have been calibrated against experimental data and the predictive accuracy of the best model is within 2°C. The models have been validated in a controlled environment.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>15</sub></td>
<td class="characteristic-id">C<sub>15</sub></td>
<td>DT technical connection</td>
<td>The PT-to-DT connection is done over Wi-Fi on a laptop using RabbitMQ.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>16</sub></td>
<td class="characteristic-id">C<sub>16</sub></td>
<td>DT hosting/deployment</td>
<td>The Incubator DT is deployed locally on a LAN.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>17</sub></td>
<td class="characteristic-id">C<sub>17</sub></td>
<td>Insights and decision making</td>
<td>dashboard_viz<br>anomaly_warning: anomaly detection<br>real_time_viz: 3D visualization of the current state<br>dashboard: dashboard visualization of the current state and historical data<br>heater_state_estimation: state estimation of the heater<br>what_if_sim_results: what-if analysis for future behavior under different controller configurations<br>controller_control: control policy updates to the PT<br>commands</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>18</sub></td>
<td class="characteristic-id">C<sub>18</sub></td>
<td>Horizontal integration</td>
<td>There is horizontal integration with the micro-services of the Incubator DT. The DT is able to exchange information with other information systems over RabbitMQ.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>19</sub></td>
<td class="characteristic-id">C<sub>19</sub></td>
<td>Data ownership and privacy</td>
<td>Datasets have been provided online to the public. No privacy-related data are stored.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>20</sub></td>
<td class="characteristic-id">C<sub>20</sub></td>
<td>Standardization</td>
<td>Communication is carried out using AMQP standard via RabbitMQ. Behavioral models have been produced following the FMI standard version 2.</td>
</tr>
</tr>
<tr>
<td class="characteristic-id">C<sub>21</sub></td>
<td class="characteristic-id">C<sub>21</sub></td>
<td>Security and safety considerations</td>
<td>Communication can be TLS encrypted through the RabbitMQ broker. The physical controller counts with a safety consideration that turns off system if the temperature read is above 60°C or if the network connection is unstable.</td>
</tr>
</tr>
</table>