For SystemModeler 4, Wolfram has expanded the supported model libraries to cover many new areas, and has also improved workflows for everything from learning the software to developing models to analysing and deploying them. People have been using SystemModeler in an astonishing variety of areas. Many of those have been well supported by built-in libraries, but many are totally new domains where models typically need to be built from scratch.
For most applications, using existing model libraries gives a real boost to productivity, but developing a good library takes a lot of effort. There are many aspects to think of: the best structure for easy modelling, the right level of detail, the interfaces to other components, which components to include, documentation, etc. And you may very well have to re-factor the library more than once before you are done. Reusing components and interfaces from already tested and documented libraries not only speeds up development and learning, but also improves quality.
Wolfram has made SystemModeler's already broad collection of built-in libraries even larger. For instance, the company has added Digital, for digital electronics following the VHDL multivalued logic standard; QuasiStationary, for efficient approximate modelling of large analogue circuits; and FundamentalWave, for modelling multiphase electrical machines. There are also many improvements to existing libraries, such as support for thermal ports in the Rotational and Translational mechanics libraries so that heat losses can be captured.
But Wolfram also wanted to make it easy to access all the other existing and future model libraries, so decided to create a marketplace for both free and paid libraries, the SystemModeler Library Store. With the Library Store you get easy download and automatic installation, and the company is working with the Modelica Association to get a new standard accepted for such library bundles to enable this simple workflow more generally. All the libraries in the store are verified to work with SystemModeler 4, and Wolfram is working with developers to bring you new and updated libraries on an ongoing basis.
So what sorts of modelling libraries can you already find in the Library Store? Well, they cover a variety of areas""for example, Hydraulic, for hydraulic actuators and circuits as in an excavator arm or flight controls; BioChem, for biochemical systems as in compartmental or pathway models; SmartCooling, for cooling circuits such as battery stacks or combustion engines; SystemDynamics, for sociotechnical models such as energy markets, disease propagation, and logistics; and PlanarMechanics for constrained 2D mechanical systems such as revolute joints in robots.
The world of modelling libraries and areas covered by SystemModeler just got bigger, and with the Library Store the company expects to continuously expand on the available libraries. Wolfram has interacted with many R&D groups that have in-depth knowledge of different areas "" from tyre modelling for off-road machinery, to chemical reactors, to classes of disease pathways, etc. "" for which libraries do not yet exist. With the SystemModeler Library Store, there is an actual marketplace where such knowledge "" if made into a library "" can readily be made available. There really is no limit to the areas that can be made accessible with well-designed model libraries.
So, with more built-in libraries and a dedicated Library Store, you have a more powerful modelling tool. But how do you find out what is in one of these libraries? And how do you learn to use the software? How do you learn to model in the first place? With SystemModeler 4 Wolfram has created a new Documentation Centre (online and in-product) as the hub from which questions like these can be answered.
Wolfram's Documentation Centre makes it easy to browse and search all product and library documentation, which includes video and text tutorials as well as the more-structured library pages. But it also provides access to additional resources, such as free online training courses, other SystemModeler users in the Wolfram Community, technical support, and technical consulting.
The documentation is extensively cross-linked so that when you, for instance, look up a component, you will immediately find links to connectors, parameters, subcomponents, and""particularly useful""a list of examples that make use of that component. And for simulatable models, you will find links to all components that they use, as well as the ability to directly simulate the models from the documentation in SystemModeler.
So learning about libraries and how to use them has become much easier. But what do you do when there is no library? SystemModeler is set up to also support modelling from the ground up using the Modelica language. For SystemModeler 3 Wolfram pointed people to the Modelica book by Michael Tiller as the most accessible resource. But the book was getting out of date with recent developments, and fortuitously Michael came to the company with the idea of producing an updated Creative Commons version of the book. A little later he launched a Kickstarter project, which Wolfram was one of the first gold sponsors for. The project got funded and the first version became available this spring, and Wolfram is now including this book, Modelica by Example, as part of the Documentation Centre in SystemModeler. This is a good resource for when you want to learn more about the Modelica language.
Model libraries are all about reusing and connecting component models in SystemModeler. But is there a way that you can reuse models outside of SystemModeler in other software? SystemModeler provides a standalone executable for simulatable models that can be called using a TCP/IP-based API. This means it can be integrated into most software systems by using the appropriate API calls.
But for simulation software this can be made easier by removing the need for programming. Functional Mockup Interface (FMI) is an industry standard that Wolfram and other modelling and simulation companies have been developing for this very purpose. The idea is that by standardising the interfaces, model exchange can be enabled without the user needing to do any programming. This means there can be complementary tools that make use of these models, including things like system integration tools that integrate both software and hardware modules. SystemModeler 4 now supports FMI export, which can be used in several dozen other software systems immediately and in many more to come.
SystemModeler on its own is a very powerful system, but when used together with Mathematica you open up a whole new world of uses, including programmatic control of most tasks in SystemModeler; support for model calibration, linearisation, and control design; access to the world's largest web of algorithms and data; interactive notebooks; cloud integration; and more.
The integration between SystemModeler and Mathematica has been improved throughout, so things are generally faster and smoother. One noticeable change is that any model is now displayed using its diagram or icon, which you can even use as input to other functions. With SystemModeler 4, you can now perform real-time simulation and visualisation of models. You can even use input controls such as sliders, joysticks, and so on to affect the simulation model in real time, and you can conveniently use gauges and other real-time visualisations to display simulation states. This means you can easily build a mockup of a system using inexpensive input devices and have the system react like the real thing, whether for a virtual lab, an actual intended product, or whatever.
One particularly interesting type of model that is algorithmically derived from others is a control system. In a real-time simulation, a human can directly interact with a model through input control devices. But many "smart" systems do not have a human in the loop, but rather a controller that automatically decides inputs for the model based on measurements and an internal model, just like the familiar cruise control for a car, or autopilot for a plane. An important task in many system designs is to derive such a control algorithm. Mathematica has a full suite of control design algorithms with many new capabilities added in Mathematica 9 and 10, including automated PID tuning, support for descriptor, delay, and nonlinear systems. So in SystemModeler 4 you can now design the controller, create the corresponding model component, connect it to the rest of the system, and simulate the closed-loop system at full fidelity.
This is just a sampling of the many ways SystemModeler and Mathematica can be used together. Some of the uses the company has seen include deriving and testing model equations, performing more advanced analysis of models (like sensitivity analysis or computing aggregate measures of performance or efficiency for different subsystems), and creating informative visualisations, animations, and manipulations, as well as presentation material to communicate designs to students, managers, and customers. Many of Wolfram's users have already adopted this way of working, and of course the company uses it extensively in developing SystemModeler.
For more on what's new in SystemModeler 4 as well as examples, free courses, and trial software, check out the SystemModeler website.
10 Blenheim Office Park
Lower Road
OX29 8RY
UNITED KINGDOM
+44(0)1993 883400