Strange Loop

Modelica: Component Oriented Modeling of Physical Systems

There are lots of programming languages out there, but very few like Modelica. Modelica is a standardized language for describing the behavior of physical and cyber-physical systems. It incorporates mathematical constructs and physical interactions directly into the language and it can be used to create graphical, component-oriented models of complex physical systems. Unbeknownst to most software developers, Modelica is used by a wide range of big name industrial companies (e.g., Ford, United Technologies, BMW, Airbus) to simulate a host of real world devices and systems.

This talk will cover how the mathematical and physical information described in Modelica is transformed into a running simulation of that physical system. There are a number of fascinating algorithms that are needed to transform the hybrid differential-algebraic equations extracted from a Modelica model into imperative simulation code. The compilation is completely different from a typical programming language. Attendees may recognize some similarities to functional reactive programming (FRP) but extended to include continuous behavior.

Michael Tiller

Michael Tiller


I got my Ph.D. in Mechanical Engineering from the University of Illinois at Urbana-Champaign. But I've been fascinated by software all my life and I took up engineering because I saw it as ripe with interesting problems that could be solved with software. For example, Ralph Johnson (GoF book author) was on my thesis committee even though I was a mechanical engineering student. After getting my Ph.D., I went to work for Ford Motor Company for ten years in powertrain research. I became quite active in the development of Modelica but at the same time worked on applying Modelica and other software technologies to real world products like the Ford Hybrid Escape (the first production hybrid in North America). Since Ford, I worked for Emmeskay, LMS and Dassault Systemes before starting my own company, Xogeny, to focus on full-time on injecting the latest software, web and cloud technologies into the (rather conservative) engineering domain.