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.