Skip to content

2025

Creating Functional Mock-up Unit (FMU) models from machine learning models

Imagine that you are trying to simulate a system, e.g. a wind farm or a ship, but you do not have the simulation model of any component yet, e.g. a wind power engine or the ship’s engine. You do, however, have a lot of data of this component, measured in the field. These days, it is relatively straightforward to make a simple machine learning (ML) model of this component from data, using e.g. TensorFlow. Once you have your ML model, you want to be able to use that as a digital twin in simulation-based testing. In this blog post, we describe a new tool and approach for creating ML models for simulation-based testing.

Creating Functional Mock-up Unit (FMU) models using PythonFMU and component-model

While the Functional Mock-up Interface (FMI) standard has revolutionized model exchange and co-simulation across tools, creating FMUs traditionally required specialized environments or complex C++ implementations. Python's dominance in machine learning (ML) and scientific computing makes it an ideal choice for FMU development - allowing modelers to leverage its vast libraries, rapid prototyping capabilities, and gentle learning curve. By using Python to create FMUs, developers can quickly transform their Python-based algorithms or ML models into standardized components that integrate seamlessly with any FMI-compliant simulation tool. As we will demonstrate through a practical example, this approach opens new possibilities for combining Python's accessibility with FMU's interoperability benefits.

Creating Functional Mock-up Unit (FMU) models using C++

In our previous blog post "The history of system simulations", we introduced the Functional Mock-up Unit (FMU) – a standard container format for exchanging dynamic models between simulation tools. The behaviour of FMUs can be modelled from data using machine learning (ML) techniques and/or using first principles of physics. ML techniques can allow to create models without needing to understand fundamental equations or needing to do a thorough analysis of the system that is being modelled, if sufficient data can be available. On the other hand, explicit modelling using first principles of physics can often yield more accurate simulations and help in our understanding of the target system’s behaviour. In this blog post, we describe how to create an FMU based on first principles by using C++, which gives modellers full control over capturing both the model’s behaviour and its internal states. We illustrate this using a simple robot arm model with two degrees of freedom.

The history of system simulations

Today most industries depend on simulations somewhere in their asset lifecycle, whether it be for innovation, design, production, or operational support. However, this was not always the case, as simulation was regarded as a costly niche in engineering for many decades. This article explores the origins of simulation, giving insight into some important historic developments. Then, focus is shifted to system simulations and co-simulations, and their history in the maritime sector. Finally, a few predictions about the future are made.

AI on Watch - Insights from the DNV-BRAIN Hackathon 2025

Summary

In March 2025, DNV partnered with BRAIN NTNU to host a 24-hour hackathon focused on advancing situational awareness (SitAw) systems for autonomous ships. As AI becomes increasingly embedded in complex systems, such as autonomous vessels, ensuring their safety and reliability is a growing challenge. DNV, a global leader in assurance and risk management, is committed to developing rigorous testing methodologies for AI-enabled systems. This hackathon was part of that mission — designed to explore innovative approaches to object detection in maritime environments, and to foster collaboration with the next generation of AI talents.