Project details
Otwin is a cutting-edge open-source physics engine designed to enhance engineering systems. It validates models against real equipment, answering critical questions about performance and reliability. By leveraging models from various sources, Otwin empowers users to make informed decisions based on accurate forecasts and real-time data.
Otwin is an open-source physics engine designed for engineering systems, enabling the creation of digital twins from real equipment. It facilitates the integration of models built using Modelica, Julia, or components native to Otwin, allowing for a deeper analysis of machine behavior through empirical data.
Model Reliability Assessment: Otwin verifies the trustworthiness of engineering models by evaluating how accurate they are with respect to unseen data, identifying their predictive capabilities, and highlighting when actions should be taken based on model forecasts.
Compatibility with Various Modeling Languages: Seamlessly integrate models derived from Modelica or Julia, or create comprehensive models using Otwin’s components.
Forecasting and Evaluation: Otwin provides tools to assess forecast accuracy, producing conformal intervals that provide insights into uncertainty and reliability.
To install the Otwin engine:
pip install "otwin[engine]"
Chlorine Storage Tank Monitoring: Otwin was applied to track chlorine levels in a storage tank with predictions provided by a Modelica model. The insights obtained from Otwin indicated that the model underestimated chlorine levels, which proved crucial for maintaining safety standards:
import numpy as np
from fmpy import extract, simulate_fmu
# Implementation details go here...
Water Level Forecasting in a Storage Tank: Using a ModelingToolkit model, Otwin assessed water levels and compared them against trivial forecasts, revealing discrepancies that informed operational decisions:
import numpy as np
from juliacall import Main as jl
# Implementation details go here...
Otwin provides a rich set of components across various physical domains, enabling users to build systems from scratch. This allows creation of dynamic simulations that adhere to physical laws such as energy conservation:
import otwin
from otwin.components.mechanical import Mass, Spring, Damper, ForceSource, Fixed
mass = Mass(1.0)
spring = Spring(20.0)
damper = Damper(0.3)
weight = ForceSource(1.0 * 9.81)
ceiling = Fixed()
system = mass >> spring >> ceiling
system.connect(mass.flange, damper.a, weight.flange)
system.connect(damper.b, ceiling.port)
model = otwin.compile(system)
run = model.simulate(t_span=(0, 20), dt=0.05)
The documentation provides extensive details on component usage, integration steps, and examples validating model performance against real-world data. The project aims to facilitate contributions and ongoing development through community engagement on GitHub.
Explore the complete repository otwin for hands-on examples and further insights into the functionalities offered by the Otwin physics engine.
Comments
0Start the conversation
Share the first comment.