Tags and keywords
There is a compelling need when using Model-Based Systems Engineering (MBSE) and Systems Modeling Language v1 (SysML®) to simulate and compare. While there is a lot you can do with tools such as Magic Model Analyst® (Cameo Simulation Toolkit®) (including StateMachine and Activity simulations, and trade-off studies using SysML Parametrics), for some tasks you'll probably eventually need some degree of integration with external simulation languages and tools.
OMG SysPhS (the SysML Extension for Physical Interaction and Signal Flow Simulation), is an extension of SysML that acts as a bridge between SysML models and the powerful Modelica and Simulink languages.
Both Modelica (from the Modelica Open Source Consortium) and Simulink (from Mathworks, developers of MATLAB) have large user communities employing them for a wide range of industrial-strength and mission-critical applications for electrical engineering, mechanical engineering, mechatronics, robotics, physics, aeronautics, etc.
Most (but not all) of what you can do in Simulink+StateFlow+Simscape you can also do in Modelica (and mostly also vice versa). However, in this trail we'll focus only on the Modelica side of the story.
There are a lot of Modelica-based tools, and comparing their pros and cons is not easy. Here, we've indicated just four:
- OpenModelica: It's a "rite of passage" in the Modelica community to at least try this tool. This may be all you need initially.
- Wolfram SystemModeler: integrates with the brilliantly powerful Wolfram Mathematica and its "symbolic" Wolfram computation language.
- MapleSim: integrates with the brilliantly powerful Maple and its "symbolic" computation language.
- 3DS Dymola (from Dassault Systèmes).
All of these commercial vendors - Wolfram, Maplesoft, Dassault Systèmes - are heavily involved with the Modelica language specification, and have highly compliant tools.
One reason you might wish to eventually step up to SystemModeler or MapleSim is their integrations with their awesome symbolic algebra mathematics engines, which are accessible from Modelica components in their respective tools.
Note also that if you are working with SysML Parametrics constraint calculations in the MagicDraw SysML Plugin or Magic Cyber-Systems Engineer ® (Cameo Systems Modeler®) you can also delegate to Maple or Mathematica for more advanced maths calculations than the so-called built-in maths can handle.
Of course, Dassault Systèmes (developers of 3DS Dymola) now also own No Magic (developers of MagicDraw/Cameo) so it will be interesting to see how they contribute to the SysPhS effort for SysML.
If you'd like to see how to export to Modelica in the MagicDraw SysML Plugin or Magic Model Analyst® (Cameo Simulation Toolkit®) visit this slide trail:
Summary of tools (with external links)
To get started with Model-Based Systems Engineering (MBSE) with Systems Modeling Language v1 (SysML®) use:- EITHER: MagicDraw UML and the MD SysML Plugin and Cameo Requirements Modeler. You'll need to decide whether you get the MagicDraw Standard, Professional, Architect or Enterprise edition depending on your separate software engineering needs.
- OR: Cameo Systems Modeler product bundle (has limited software engineering capabilities).
ADVANCED OPTION: If you are doing a lot of StateMachine and Activity simulation consider getting also:
ADVANCED OPTION: If you are doing a lot of SysML Parametrics constraint mathematics calculations consider getting also one of these powerful commercial symbolic maths engines:
To perform additional external simulations of signal flows and physical interactions in MagicDraw/Cameo, load the SysPhSLibrary.mdzip
then:
- Try the free open source OpenModelica (your mileage may vary on some platforms and operating system versions).
- Consider the commercial Wolfram SystemModeler.
- Consider the commercial MapleSim.
- Consider the commercial 3DS Dymola.
- Get Simulink with Stateflow for event-based modelling and Simscape for physical modelling, usually in combination with MATLAB.
You may wish to visit one of these tutorials next: