A few months ago, we announced the integration of Modelica in Simcenter Amesim. Today, I would like to go through the process step by step with my friend John Smith who came across a typical use case. Read the whole story just below!
Hello, my name is John Smith, I’m working for an automotive company in the R&D department. My team and I are trying to develop a disruptive new car architecture with Simcenter Amesim. Today, we are focusing on the engine model. In the past, several engine models were developed using Simcenter Amesim, but recently a PhD student in another team developed a promising and innovative engine model. Apparently, the model has been developed in Modelica. I wonder if the new Modelica capabilities of the Simcenter Amesim platform allows me to replace my previous engine model by the model developed in Modelica, like in this sketch below?
Model: “Gasoline vehicle with Mean Value Engine Model variant #1a”
The open Simcenter Amesim platform has two key values:
Access to pre-existing C-based libraries of comprehensive, fast, validated, domain-specific models or subsystems
Ability to create its own custom libraries using a full-featured Modelica development environment
That fits perfectly my needs! Moreover, I will take benefits of Simcenter Amesim advanced tools, such as the new Signal Bus feature to easily create complex signals. Let’s have a try. First, I need to figure out what the Simcenter Amesim Modelica platform is.
Simcenter Amesim Modelica platform is designed as an integrated development environment (IDE) for Modelica authoring and allows to:
Import external Modelica models, 100% compatible with the Modelica Standard Library
Drag-and-drop Modelica components onto a diagram view, then connect and set them. On that point, it is not so different from many other Modelica tools, even with the Simcenter Amesim platform itself
Create its own Modelica components and implement it on an existing Simcenter Amesim model
I guess my PhD student’s models could need to be modified. I’ll do that later. Let’s import them first.
For that, just go to the Tools tab in Simcenter Amesim and click on Modelica Editor.
The Modelica Editor enables me to load the last version of Modelica Standard Library (MSL) and create my own Modelica models. It is also possible to import my own libraries based on the MSL. The Modelica Editor graphical user interface is presented below.
In yellow, the library tree with some right-click contextual actions for Modelica libraries or model management,
In purple, the main window is split up in 4 specific views:
the Diagram tab used to drag and drop components and create connections between them
the Code tab used to edit locally the Modelica code
the Icon tab used to draw a Modelica icon with a graphical tool
the Documentation tab used to view a documentation for the selected component.
In green, the Parameter view allows us to change the root level parameter values.
What is the typical workflow to deal with a Modelica model?
When we want to use a Modelica component or architecture, we have only to right-click on the model in the library tree and select Add to active Simcenter Amesim model.
I can add my newly created Modelica model to the Simcenter Amesim system just with a right click. Let's connect it... and that's it! My Simcenter Amesim model is finished. Let’s go to the simulation mode to test it, everything looks good.
We can now see a Modelica block in the Simcenter Amesim sketch. If the Modelica block has external connections, you have to use the right external ports on Simcenter Amesim Modelica library provided.
So now with Simcenter Amesim, I can change the settings and simulate the hybrid Simcenter Amesim-Modelica model.
Let's run design of experiments study and post-process my results. It seems that I need to change some parameters in the Modelica component. Thankfully, I can simply use the standard parameters view as any other Simcenter Amesim component instead of modifying the Modelica code. Good point!
As I can connect both two worlds using a dedicated Modelica Connector set, it seems perfect to make both technologies work together!
Check out this video to see this feature in action: