A Tour of ModelicaModelica
This is the first of a recurring series touring the capabilities and features of Modelica, a systems modeling language that we have great hopes for.
Where to begin?
At its core, Modelica is a programming language that allows users to write down equations that describe the behavior of some system. In this usage, system refers to some group of things that interact according to identifiable rules. A robot arm is a ready example as it is composed of multiple motors, transmissions, sensors, and rigid structures. The interactions of these elements are described by equations that convert the user's digital command signals into electrical currents that spin motors whose torques are modified by transmissions and applied to the arm's rigid structures. Taken together, the Modelica model of the robot arm allows the user to predict how the arm will move for given commands, allowing the arm's suitability for the user's application to be evaluated digitally.
This level of analysis is within the technical capability of most engineers, but performing it by hand or in some general purpose programming environment is often too much work. Using Modelica, the engineer can describe the system and let the computer do the math to solve the thousands of equations encountered in everyday systems.
Today, Modelica is most commonly encountered in the automotive and aerospace industries, where it allows simulation engineers to test a wider variety of situations than is feasible for the prototype car on the test track...such as "Can an F1 car drive on the ceiling?". This approach also allows the internal conditions of subsystems to be estimated from other sensor sources. For instance, it is challenging to measure the internal temperature of an internal combustion engine because of the high temperature, high pressure, and fast progress of the combustion event, but it can be estimated to a good degree by measuring the piston position, air and fuel volumes, valve timing, chamber size, and exhaust products.
In these uses, the Modelica model is not concerned with the physical dimensions of the parts -- the domain of Computer Aided Design (CAD) packages like Solidworks, Creo, and many others -- but rather how they function and perform.
Future installments will delve deeper into Modelica and how it can be used to support manufacturers and engineers, but if you want to read more now check out:
— Ben Conrad