# Announcing Wolfram *SystemModeler*

Explore the contents of this article with a **free Wolfram SystemModeler trial**. Today I’m excited to be able to announce that our company is moving into yet another new area: large-scale system modeling. Last year, I wrote about our plans to initiate a new generation of large-scale system modeling. Now we are taking a major step in that direction with the release of Wolfram *SystemModeler*.

*SystemModeler* is a very general environment that handles modeling of systems with mechanical, electrical, thermal, chemical, biological, and other components, as well as combinations of different types of components. It’s based—like *Mathematica*—on the very general idea of representing everything in symbolic form.

In *SystemModeler*, a system is built from a hierarchy of connected components—often assembled interactively using *SystemModeler*‘s drag-and-drop interface. Internally, what *SystemModeler* does is to derive from its symbolic system description a large collection of differential-algebraic and other equations and event specifications—which it then solves using powerful built-in hybrid symbolic-numeric methods. The result of this is a fully computable representation of the system—that mirrors what an actual physical version of the system would do, but allows instant visualization, simulation, analysis, or whatever.

Here’s an example of *SystemModeler* in action—with a 2,685-equation dynamic model of an airplane being used to analyze the control loop for continuous descent landings:

There’s a long and tangled history of products that do various kinds of system modeling. The exciting thing about *SystemModeler* is that from its very foundations, it takes a new approach that dramatically unifies and generalizes what’s possible. In the past, products tended either to be specific to a particular application domain (like electric circuits or hydraulics), or were based on rigid low-level component models such as procedural blocks.

What *SystemModeler* does is to use a fully symbolic representation of everything, which immediately allows both arbitrary domains to be covered, and much more flexible models for components to be used. In the past, little could have been done with such a general representation. But the major breakthrough is that by using a new generation of hybrid symbolic-numeric methods, *SystemModeler* is capable of successfully solving for the behavior of even very large-scale such systems.

When one starts *SystemModeler*, there’s immediately a library of thousands of standard components—sensors, actuators, gears, resistors, joints, heaters, and so on. And one of the key features of *SystemModeler* is that it uses the new standard Modelica language for system specifications—so one can immediately make use of model libraries from component manufacturers and others.

*SystemModeler* is set up to automate many kinds of system modeling work. Once one’s got a system specified, *SystemModeler* can simulate any aspect of the behavior of the system, producing visualizations and 3D animations. It can also synthesize a report in the form of an interactive website—or generate a computable model of the system as a standalone executable.

These capabilities alone would make *SystemModeler* an extremely useful and important new product, for a whole range of industries from aerospace to automotive, marine, consumer, manufacturing, and beyond.

But there’s more. Remember that we have *Mathematica* too. And *SystemModeler* integrates directly with *Mathematica*—bringing in our whole 25-year *Mathematica* technology stack.

This makes possible many spectacular things. Just like *Mathematica* can operate on data or images or programs, so now it can also operate on computable models from *SystemModeler*. This means that it takes just a line or two of *Mathematica* code to do a parameter sweep, or a sensitivity analysis, or a sophisticated optimization on a model from *SystemModeler*.

And one gets all of the interface features of *Mathematica*—being able to do visualizations, instantly introduce interactive controls, or produce computable CDF documents as reports.

But even more than this, one gets to use all of the algorithms and analysis capabilities of *Mathematica*. So it becomes straightforward to take a model, and do statistical analysis on it, build a control system for it, or export results in any of the formats *Mathematica* supports.

When one builds models, it’s often important to bring in real-world data, say material properties or real-time weather or cost information. And through its direct link to Wolfram|Alpha—as well as its custom data import capabilities—*Mathematica* can supply these to *SystemModeler*.

To me, it’s very satisfying seeing all these parts of our technology portfolio working together. And this is just the beginning. As I discussed in my post last year, it’s going to be possible to integrate system modeling not only with *Mathematica*, but also at a deep level with Wolfram|Alpha and such things as our mobile apps.

But today, it’s exciting to me to launch Wolfram *SystemModeler* as a major new direction for our company. *Mathematica* allows us to represent a vast range of formal and algorithmic systems; *SystemModeler* extends our reach to large-scale practical engineering and other systems. We already know some of the important things that this will make possible. But I’m sure there will be many wonderful surprises to come in the years ahead, as we gradually realize just what the power of symbolic systems modeling really is.

*(See the Wolfram SystemModeler website for more information—or check out our new courses about system modeling.)*

FYI: http://news.ycombinator.com/item?id=4014141

Looks great!

Can this be used on more abstract systems? For example large-scale money flow analysis? Or your tool is intended to simulate only the “physical” systems?

@ Randi –

Thanks for your comment! While Wolfram

SystemModeleris primarily used for modeling physical systems, there is a Modelica library called SystemsDynamics which can be used for business process modeling (a link is below, if you’d like to peruse that further).Modelica SystemsDynamics library:

https://www.modelica.org/libraries/SystemDynamics

looks like this has a lot of potential applications in the industrial automation arena. very neat.

some information about what language it’s coded in, etc, would be interesting to see.

SystemModeler is based on the Modelica modeling language (www.modelica.org) which can be used to represent systems of DAEs (differential algebraic equations). Any ‘system’ which can be represented by equations can be modeled in Modelica.

Is there any Linux support planned?

@EvgenijM86 –

There are plans to support Linux in the next release.

For now, the supported platforms are available here:

http://www.wolfram.com/system-modeler/features/system-requirements.html

Thank you!

I was assuming a functionality like this would eventually be coming out as I could read between the lines in a previouis post circa 2009…what I was hoping for, however, would be a “new” version of Mathematica that included this new paradigm in it’s basic functionality, and would thus be part of the next version available for purchase by hobbiests…such as myself.

One of the biggest benefits of Wolfram research in the last few years is that they have made their products available to “curious” people such as myself – who just like to experiment, but who can’t affort $100,000 for all the MATLAB products, $3,000 for a Pro version of Mathematica, or a $10,000 a year license for SAS or similar programs, etc, etc.

What I hope is that Wolfram will make these latest releases (System Modeler/Finance Platform) available to consumers such as myself – please, don’t leave us out of this new fun!

Thanks,

Luke

Can you use this modeling software to produce engineering designs that are exportable to CAD programs such as AUTO CAD and Micro Station to produce engineering drawings? Can you produce a design in a CAD program and set it up where you can change dimensions or other property where the modling software will automatically test the design to see if it works or check if design performance improves. The modeling software then revises the design or you can set up an iterative process where drawing changes automatically if modeling software calulations show improvements or where design problems are uncovered? Do you plan to incorporate finite element analysis into this software?

As a precaution, when calculating fluid flows for piping make sure the pipe fitting loss data are up to date because many many fluid mechanics texts are using inaccurate fitting loss coefficient data some are almost 100 years old. The University of Utah Civil Engineering Department through ASHRA research grants have done research in this area and have starting compiling more accurate pipe friction loss coefficents.

Solving large scale non-convex (mixed integer) nonlinear optimization problems is not an easy task which may require to switch from one algorithm to another depending on the problem considered.

Therefore, I was wondering if there is more information available to potential customers on the optimization algorithm suite that will be embedded in SystemModeler.

Can a user link his own optimization algorithm (e.g. via a dll) ?

Apologies if this information is already available elsewhere on the Wolfram website.

Hi,

the product looks interesting and it could be a good competitor for other simulation software. I used graphical simulation software basd oj creating objects by using a graphic interface. However, when we run a simulation the single interation is very low! Obviosusly, that’s because graphic comonents. So, I would like to knwo how System Modeler work in relation to the speed of the simulation iterations? Symbolic-numeric form means a low computational speed with regard to numeric only form? I am not a totally beginner on simulation software but I would like to undesrtand better computational fetaures of System Modeler. Actually, my model is about mechanical representation of human jumping by using 3 or more link segments which are driven by torque generators supported by rotational in serie springs. Would it be possible with System Modeler?

thanks

Wolfram

SystemModelerHome Edition is now available: http://store.wolfram.com/view/app/systemmodelerhe/I know this sounds comical, but a version integrated with Lego (similar to National Instruments) would be cool if modeler supports controls as well.

I have been using Modelica for years and I would say Modelica is indeed one of the reasons “why SystemModeler beats other modeling systems”, as claimed here: http://www.wolfram.com/system-modeler/modeling-tools-comparison/#modelica-advantage

The only pity is, so few people know about Modelica yet, and one of the reasons might be the lack of free documentation. This situation might improve if the Kickstarter project for a free Modelica book is successful: http://kck.st/PXZj40

Whoa! Though I’ve been on-line since the 90s, I’m from the age of IBM1130. Experienced in a variety of disciplines and trades. Working on a ‘thriller sci-fi genre story, the 3rd and final stage of a wider project, which proposes a model, using quantum computing, that evolves into a global direct democracy. i.e. I’m writing a story about things that I really know nothing about other than punch cards. Mathematica? Never heard of it ’til now. So, yes, Whoa! Gotta explore this further. Thank you. Will keep y’all posted.

Like the other commenter, Tim Smith, said, a Home Edition would be great.

Yes I wonder if it will be avaiable for home users it will be very fine to have such possibilty.

It seems great now I am loading trial version and sign in for web conference about SM.

Congratulation for next step in computation :)

great job

reagards

Luke

Yes I would also go for a home edition!

i 4th the above statements, even as a student i would like a home edition, simply be course i wont be a student for much longer. I want to be sure that i can continue to use it and even upgrade it even after i am finished studying.

Thanks for the comments! Stay tuned in regards to a home edition of Wolfram

SystemModeler.