# Is system identification and a physics engine the same?

In the control theory the term “system identification” is used quite often. A typical sentence in a robotics oriented paper is that the author is trying to “build a model of a plant with matlab”. The idea is, that the model can predict future states of the system and is able to estimate the temperature. The plant is the system, and system identification means to formalize the inner working.

In gaming oriented software development a similar task is done quite often. Each game needs a so called game engine. Part of the game engine is the physics engine which simulates the behavior of the system. A prominent example is the “incredible machine (1992)” physics engine which was the first example for a DOS based game which has provided a realistic rigid body simulation. Similar to system identification in control theory, the simulation was realized with differential equations. In case of a rigid body engine that a newtons equation about mass and velocity under gravity.

My question is: is system identification and a physics engine both the same? And secondly, why are game designer and control engineers are not talking to each other, Is that an example for communication failure between specialists?

No. If we want to simplify things, system identification is more like curve fitting then a game engine.

System identification is used to identify a set of parameters of an existing model or a model which matches reality. The model obtained is then used in a numerical simulation.

The numerical simulation is related to physics engines. Physics engines are numerical simulation "engines" for mechanical phenomena. In most cases there are not focused on precision, but on a balance between precision and performance. There are many other simulation tools available for (controls) engineers, which are (arguably) more precise then game engines. Examples are the Matlab-Simulink-SimMechanics or AlgoryX. Furthermore, many engineering simulation tools include also options to simulate electrical, thermal phenomena.

A concrete example would be the parameters of a car suspension. There is an analytical model of the mechanism and the spring and damper. This can be very well recreated in a physics engine if we have all the parameters (geometrical, spring and damper coefficients).

An even more precise model is a finite element model which would take into account elastic deformation of the linkages. An even more precise model would take into account the exact fluid motions in the hydraulic damper. Since finite element models and computational fluid dynamic models are very slow (take hours to complete, if not days), these cannot be used in a game which requires a 16ms (60 fps) cycle time. These simulations would need the material properties (both for fluid and metal) as parameters.

System identification can be used to identify the material properties as parameters or as a function (model) or the spring and damper coefficients (again as parameter or as a function). These can be used in the simulation (or in the physics engine) to obtain results that match reality as close as possible.

Control Engineers may or may not talk to physics engine developers, but most certainly both groups are in close contact with numerical simulation experts.