Open Source Modelica Libraries developed by DLR-SR

DLR-SR develops basic Modelica libraries in varies fields in order to support the spreading of the Modelica technology, the education of students, and initiating the Modelica usage in industry by well-designed, free libraries. For details, see below.

All open source Modelica libraries of DLR-SR can be downloaded from the Modelica library page and are usually shipped together with Modelica tools.

1. Libraries for mechanical components

1-dim. mechanical, rotational systems (Modelica.Mechanics.Rotational)
Free Modelica library to model 1-dim. rotational mechanical systems. Components: Inertias, gears, planetary gears, speed/torque dependent friction (clutches, brakes, bearings, ...), etc. This library is part of the Modelica Standard Library.

2-dim. mechanical systems (PlanarMechanics)
Free Modelica library to model planar mechanical systems. Components: Bodies, parts, joints, force elements, simple gear wheels. Every component has a default animation.

3-dim. mechanical systems (Modelica.Mechanics.MultiBody)
Free Modelica library to model multi-body systems. Components: Joints, bodies, force and sensor elements. With "assembly" joints certain kinematic loops are solved analytically. Joints can be driven by drive trains defined by the Rotational library. Every component has a default animation. This library is part of the Modelica Standard Library.

2. Libraries for control blocks

Input-output blocks (Modelica.Blocks)
Free Modelica library to model block diagrams with Real, Boolean, and Integer signals, such as integrator, PI, PID, transfer function, linear state space system, sampler, unit delay, discrete transfer function, and/or blocks, timer, hysteresis, nonlinear and routing blocks, sources, tables. This library is part of the Modelica Standard Library.

Synchronous, sample data systems (Modelica_Synchronous)
Free Modelica library to precisely define and synchronize sampled data systems with different sampling rates. Components: Periodic and event/trigger clocks; sample, sub-sample, super-sample, or shift-sample partitions synchronously with optional, quantization effects, computational delay or noise. Clocked input-output blocks with Real, Boolean and Integer signals, such as discrete-time PI, transfer function, state space system, moving average filter, FIR filter.

Hierarchical state diagrams (Modelica_StateGraph2)
Free Modelica library providing components to model discrete event, reactive and hybrid systems in a convenient and safe way with deterministic hierarchical state diagrams. Components: Step, Transition, Parallel. The Parallel component is both used as "composite step" (so only one branch), as well as "parallel step" (so several execution branches). The branches can be synchronized or can run unsynchronized to each other. Blocks to define actions that depend on the active step (developed together with Dassault Systèmes).

Hardware drivers (Modelica_DeviceDriveres)
Free Modelica library for interfacing hardware drivers to Modelica models. There is support for joysticks, keyboards, AD/DA converters, shared memory, UDP, CAN bus and other devices. The library consists of 3 layers: A direct C-interface to the hardware drivers, a higher level Modelica function interface, and drag & drop blocks.

Functions for linear controllers (Modelica_LinearSystems2)
Free Modelica library providing different representations of linear, time invariant differential and difference equation systems. Operators are overloaded to work conveniently with these system descriptions in an interactive environment, e.g., to multiply transfer functions or to operate on complex numbers. About 180 functions are provided to operate on these data structures, e.g., to compute eigen values, zeros, step responses, to design pole-placement and LQG controllers, to plot step responses, frequency responses, eigen values, to convert between different description forms, or to generate a linear system description by linearization of a Modelica model.

A = [1,2,3;
3,4,5;
2,1,4]
b = {10,22,12}
x = solve(A,b)
eigenValues(A)

Mathematical Functions (Modelica.Math, Modelica.Utilities)
Functions operating on vectors and matrices, such as for solving linear systems, eigen and singular values, Lyapunov, Sylvester and Riccati equations etc. Furthermore, functions operating on strings, streams, files, e.g., to copy and remove a file or sort a vector of strings. This library is part of the Modelica Standard Library.

3. Libraries for thermo-fluid systems (developed together with other partners)

Fluid media (Modelica.Media)
Free Modelica library providing models and functions to compute media properties, such as h = h(p,T), d = d(p,T), for ideal gases and mixtures between these gases, incompressible, table based liquids, compressible liquids, dry and moist air, high precision model for water (IF97) This library is part of the Modelica Standard Library.

1-dim. thermo-fluid pipe flow (Modelica.Fluid)
Free Modelica library for thermo-fluid flow in networks of vessels, pipes, fluid machines, valves and fittings. All media from the Modelica.Media library can be used (so incompressible or compressible, single or multiple substance, one or two phase medium). This library is part of the Modelica Standard Library.