Modelica® – A Unified Object-Oriented Language for Systems Modeling
Language Specification
Version 3.7-dev
December 2, 2024
Modelica Association
Abstract
This document defines the Modelica11 1 Modelica is a registered trademark of the Modelica Association. language, version 3.7-dev, which is developed by the Modelica Association, a non-profit organization with seat in Linköping, Sweden. Modelica is a freely available, object-oriented language for modeling of large, complex, and heterogeneous systems. It is suited for multi-domain modeling, for example, mechatronic models in robotics, automotive and aerospace applications involving mechanical, electrical, hydraulic control and state machine subsystems, process oriented applications and generation and distribution of electric power. Models in Modelica are mathematically described by differential, algebraic and discrete equations. No particular variable needs to be solved for manually. A Modelica tool will have enough information to decide that automatically. Modelica is designed such that available, specialized algorithms can be utilized to enable efficient handling of large models having more than one hundred thousand equations. Modelica is suited and used for hardware-in-the-loop simulations and for embedded control systems. More information is available at https://modelica.org.
Copyright © 1998-2023, Modelica Association (https://modelica.org)
All rights reserved. Reproduction or use of editorial or pictorial content is permitted, i.e., this document can be freely distributed especially electronically, provided the copyright notice and these conditions are retained. No patent liability is assumed with respect to the use of information contained herein. While every precaution has been taken in the preparation of this document no responsibility for errors or omissions is assumed.
The contributors to this and to previous versions of this document are listed in appendix D.
Contents
- Preface
- 1 Introduction
- 2 Lexical Structure
- 3 Operators and Expressions
- 4 Classes, Predefined Types, and Declarations
- 5 Scoping, Name Lookup, and Flattening
- 6 Interface or Type Relationships
- 7 Inheritance, Modification, and Redeclaration
- 8 Equations
- 9 Connectors and Connections
- 10 Arrays
- 11 Statements and Algorithm Sections
- 12 Functions
- 13 Packages
- 14 Overloaded Operators
- 15 Stream Connectors
- 16 Synchronous Language Elements
- 17 State Machines
-
18 Annotations
- 18.1 Notation for Annotation Definitions
- 18.2 Vendor-Specific Annotations
- 18.3 Documentation
- 18.4 Symbolic Processing
- 18.5 Simulations
- 18.6 Usage Restrictions
- 18.7 Graphical Objects
- 18.8 Graphical User Interface
- 18.9 Versions
- 18.10 Access Control to Protect Intellectual Property
- 18.11 License Texts
- 18.12 Functions
- 18.13 Choices for Modifications and Redeclarations
- 19 Unit Expressions
- 20 The Modelica Standard Library
- A Modelica Concrete Syntax
- B Modelica DAE Representation
- C Derivation of Stream Equations
- D Modelica Revision History
- References
- Index