Code Generation for Simulation and Control Applications

Mats Jirstrand and Johan Gunnarsson
MathCore AB
Mjärdevi Science Park
SE-583 30 Linköping Sweden

The use of Mathematica in combination with MathCode C++ is illustrated in a context of modeling of dynamical systems and design of controllers. The symbolic tools are used to derive a set of nonlinear differential equations using Euler-Lagrange equations of motion. The model is converted to C++ using MathCode C++, which produces an efficient implementation of the large expressions used in the model. The exported code is used for simulations, which illustrates that Mathematica in combination with MathCode C++ can be used to do accurate and powerful simulations of nonlinear systems. Controller synthesis is performed where the resulting controller is exported to C++ and run externally. The applications presented are a seesaw/pendulum process and aerodynamics of a fighter aircraft.