Modelica® - A Unified Object-Oriented Language for Systems
Modeling
Language
Specification
Version 3.4
Abstract
This document defines the Modelica11 1 Modelica is a registered trademark of the Modelica Association language, version 3.4, 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 http://www.Modelica.org/
Copyright © 1998-2017, Modelica Association (https://www.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 E. All contributors worked voluntarily and without compensation.
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 Vendor-Specific Annotations
- 18.2 Annotations for Documentation
- 18.3 Annotations for Code Generation
- 18.4 Annotations for Simulation Experiments
- 18.5 Annotation for single use of class
- 18.6 Annotations for Graphical Objects
- 18.7 Annotations for the Graphical User Interface
- 18.8 Annotations for Version Handling
- 18.9 Annotations for Access Control to Protect Intellectual Property
- 18.10 Annotations for Functions
- 18.11 Annotation Choices for Modifications and Redeclarations
- 18.12 Annotation for External Libraries and Include Files
- 19 Unit Expressions
- 20 The Modelica Standard Library
- A Glossary
- B Modelica Concrete Syntax
- C Modelica DAE Representation
- D Derivation of Stream Equations
- E Modelica Revision History
- F Literature