Proceedings of the 18th World Congress The International Federation of Automatic Control Milano (Italy) August 28 - September 2, 2011
On the Connection of Equation- and Automata-based Languages: Transforming the Compositional Interchange Format to Modelica Christian Sonntag, Martin H¨ ufner Process Dynamics and Operations Group Dept. of Biochemical and Chemical Engineering Technische Universit¨ at Dortmund, Germany {christian.sonntag|martin.huefner}@bci.tu-dortmund.de. Abstract: In recent years, the object-oriented Modelica formalism for dynamic hybrid models has become a de-facto standard for the equation-based modeling, design, and analysis of complex, heterogeneous systems. It provides powerful mechanisms for model structuring and consistent model re-use, and a variety of tools are available that are based on the Modelica formalism. In this paper, an algorithmic transformation from the automaton-based Compositional Interchange Format (CIF) for hybrid systems to the equation-based Modelica language is defined. The transformation algorithm transforms the discrete automaton structure of the CIF into a set of Boolean equations in Modelica, while the continuous parts are mapped into suitable Modelica equation constructs. Using this algorithm, a very large subset of the CIF can be mapped to Modelica, thereby significantly extending the capabilities of both. Through this transformation, the CIF is equipped with support for comfortable modeling and simulation environments and with a comprehensive model library, while Modelica gains access to numerous model-based tools that are connected to the CIF. The transformation is illustrated on a realistic hybrid example that offers significant continuous dynamics as well as highly complex discrete dynamics. Keywords: Hybrid systems, Model exchange, Equation-based languages, Automata-based languages, Modelica, Compositional Interchange Format 1. INTRODUCTION Model-based methods for the design and analysis of technical systems are becoming increasingly important in industry since they offer many advantages over traditional design methodologies, such as increased safety, a more economical operation, and a significant reduction of the design duration which translates to significant financial savings. In recent years, sophisticated methods and tools have been developed for all stages of systems design, ranging from requirements analysis and simulation to automatic synthesis of optimal and robust controllers and implementation verification. A major obstacle in the application of model-based techniques is the incompatibility of the model formalisms that are employed by different tools and techniques, see e.g. [17]. Today, the transformation of models must usually be carried out manually, which is time-consuming, error-prone, and expensive. To overcome this obstacle, a framework for the integration of modelbased design and analysis tools is currently developed in the scope of the European research project MULTIFORM [MULTIFORM]. In this framework, the interconnection of design and analysis tools via the exchange of models ⋆ The research reported in this paper was funded by the European FP7 project MULTIFORM, INFSO-ICT-224249, http://www.ictmultiform.eu. This support is gratefully acknowledged.
978-3-902661-93-7/11/$20.00 © 2011 IFAC
between a large number of formalisms, such as Matlab/Simulink, Modelica [2, 6], gPROMS [9], UPPAAL [8], PHAVer [5], and others, assumes an important role. The model exchange is realized by defining bidirectional transformations between proprietary modeling formalisms and a general interchange format, the Compositional Interchange Format (CIF) for hybrid systems [21, 22, 23, 19, 3]. This paper presents an algorithmic transformation from the CIF to the object-oriented, equation-based Modelica language that has become a de-facto standard for the equation-based modeling, design, and analysis of complex, heterogeneous systems. It provides powerful mechanisms for model structuring and consistent model re-use, and a variety of tools and libraries are available that are based on the Modelica formalism. The integration of finitestate or mixed discrete-continuous automaton-based formalisms into Modelica has been in the focus of research efforts for several years (see e.g. [15, 12, 14, 16]). The transformation from the CIF to Modelica is inspired by the principles employed to implement Petri Nets [10] and StateGraphs [13] in Modelica. In these approaches, the discrete structures of the source formalisms are modeled using discrete-time Boolean equations without the need for algorithmic constructs, which is very advantageous in
12515
10.3182/20110828-6-IT-1002.03565
18th IFAC World Congress (IFAC'11) Milano (Italy) August 28 - September 2, 2011
an equation-based modeling formalism, as discussed in e.g. [10]. The transformation developed in this work provides a general framework for hybrid automaton-based formalisms within Modelica in which the complex, discrete CIF structure is represented by a set of Boolean equations while the continuous parts are mapped into suitable Modelica equation constructs. Using this algorithm, a very large subset of the CIF can be mapped to Modelica, thereby significantly extending the capabilities both. Through this transformation (and a transformation from Modelica to the CIF that was developed in previous work), the CIF is equipped with support for comfortable modeling and simulation environments and with a comprehensive model library, while Modelica gains access to numerous modelbased tools that are connected to the CIF. The transformation is illustrated on a realistic hybrid example that offers significant continuous dynamics as well as highly complex discrete dynamics. 2. THE COMPOSITIONAL INTERCHANGE FORMAT FOR HYBRID SYSTEMS The Compositional Interchange Format (CIF) for hybrid systems is a modeling and model exchange formalism for general hybrid systems that encompasses many of the language concepts that are present in modern modeling formalisms. The CIF was initially developed within the European Network of Excellence HYCON [1] and has been improved and extended ever since, see e.g. [21, 22, 23, 19]. Recently, it has been redesigned to reduce its syntactic and semantical complexity and to simplify the definition of model transformations [3].
contains only a minimal set of syntactical concepts, but possesses the same behavioral expressivity as CIF. Thus, models can be transformed between the two representations without any change in model semantics. µCIF , on the other hand, is a mathematical formalism that is equivalent to core CIF, but that is defined in a mathematical way. Formal, compositional semantics have been defined for the µCIF language which enables correctness proofs if the transformed languages also possess formal semantics. Being a model exchange format, the CIF framework has been designed to make the definition of model transformations as simple as possible. For both, CIF and core CIF, abstract grammars and Ecore class diagram definitions [20] are available. The former allow to define concrete grammatical CIF representations (e.g. textual and graphical), while the latter enables a straightforward definition of languages and transformations (using dedicated transformation languages) within the Eclipse modeling framework, see e.g. [3, 7]. Besides the connection of languages to the CIF, such transformations are also used for CIF-to-CIF transformations (e.g. to transform between the three CIF formalisms, to replace modeling constructs that are not supported by a target language with equivalent, supported constructs, or to transform concrete-grammar models into class diagram form). The transformation algorithm presented in this paper is based on the µCIF formalism that is defined as follows 1 : Def. 1 (Atomic µCIF Automaton 2 ): An atomic CIF automaton is a tuple αatom = (V, init, inv, tcp, E, varC , actS , dtype) where: • V is the set of discrete modes or locations. The active mode is the mode for which init evaluates to true. • init (the initial conditions), inv (the invariants), and tcp (the time-can-pass predicates) are mappings of S ˙ 3 the type V → pred(X X) , where X is the set of all variables, and X˙ denotes the set of the time derivatives of all variables in X, i.e. X˙ = {x|x ˙ ∈ X}. • E is the set of edges or discrete transitions. Each edge e ∈ E is of the form e = (v, g, a, (W, r), v ′ ), where · v, v ′ ∈ V are the and target modes of e, S source ˙ is the guard condition (a · g ∈ pred(X X) Boolean predicate that indicates if the edge is enabled), · aS ∈ Lτ is an action label, where the set Lτ = L τ comprises all action labels and the nonsynchronizing S ˙ default label τ , · W ∈ 2X X is the set of jumping variables (that can discontinuously change during a discrete transition), and S S S ˙ + · r ∈ pred(X X˙ (X X) ) is the reset mapping, i.e. a predicate that indicates the possible changes of variables in W 4 .
Fig. 1 gives a simplified overview of the CIF modeling framework. To provide a syntactically rich modeling format as well as a precise mathematical definition of the model semantics, three different CIF model representations have been developed. The CIF formalism is the syntactically most expressive of the three languages. Its (syntactic and semantic) expressivity is similar to that of modern general modeling languages such as Modelica, gPROMS, and EcosimPro. CIF models are based on communicating hybrid transition systems (atomic automata). It supports (deterministic or stochastic) variables, complex data types (including lists, arrays, matrices, dictionaries, enumerations, and tuples), internal and external function invocations, and communication by synchronizing actions or shared variables. Continuous dynamics can be modeled using fully implicit discontinuous DAE systems, and the CIF offers different concepts to specify properties that often arise in hybrid languages, such as transition urgency, invariants, and time-can-pass predicates. Since many modern modeling languages provide syntactical elements to facilitate and structure the modeling process, the CIF supports in addition hierarchy, modularization, and automaton instantiation. core CIF Concrete grammar Mathematical representation
µCIF mapping Formal semantics described by SOS deduction rules
Abstract grammar
Abstract grammar
core CIF Ecore class definition
mapping
CIF Ecore class definition
Fig. 1. The CIF modeling framework.
n zatio reali
realiz a
tion
textual CIF
graphical CIF Concrete grammar
1
The presentation of the transformation for hierarchical CIF models is not feasible due to space limitations. However, the extension to hierarchical models is straightforward, as outlined in Sec. 4.3. 2 Abbreviated and simplified version of Def. 1 in [3]. 3 For a set of variables Y , pred(Y ) denotes the set of all predicates, and expr(Y ) is the set of all expressions over the variables in Y . 4 For a set of variables Y , Y + = {y + |y ∈ Y } are the valuations of all y ∈ Y after the execution of a discrete transition.
12516
18th IFAC World Congress (IFAC'11) Milano (Italy) August 28 - September 2, 2011
• varC ∈ 2X are the control variables of the automaton, i.e. those variables that can only be changed by the automaton that defines them. • actS ∈ 2L is the set of synchronizing actions of the automaton. It contains those actions that synchronize with actions with the same name in parallel automata. • dtype ∈ X → {disc, cont} defines the dynamic type (discrete or continuous) of the variables in X (and ˙ 5. their derivatives in X) ⋄
(representing Modelica model entities), Cconn ⊆ C (representing Modelica connector entities), S Cf n ⊆ S C (representing Modelica functions), Cmodel Cconn Cf n = C, and external or built-in classes Cext (representing basic data types and classes in Modelica libraries that are imported): • Each model entity cmodel ∈ Cmodel is a tuple cmodel = {Xm , initm , eq, alg, dtypem , dir}, where Xm are the components (i.e. variables, parameters, constants, or more complex class instances) within the entity, initm are initialization predicates, eq is an equation section that contains a set of continuous, discrete, or instantaneous (when) equations, alg is an algorithm section that contains an ordered list of algorithmic statements, dtypem ∈ Xm → {constant, parameter, discrete, continuous} defines the dynamic type of the elements of Xm (and their derivatives), and dir ∈ Xm → {input, output, inout} 8 represents the directionality of the elements of Xm . Model entities are used to represent the dynamic behavior of a Modelica model. • Each connector entity cconn ∈ Cconn is a tuple cconn = {Xm , dtypem , dir} whose elements are defined as above. Connector entities are used as interfaces between model entities. • Each function cf n ∈ Cf n is a tuple cf n = {Xm , alg, dtypem , dir} whose elements Xm , alg, and dtypem are defined as above, and dir ∈ {input, output}. Functions are mathematical input/output mappings, similar to those in modern programming languages. ⋄
Def. 2 (µCIF Interchange Automaton 6 ): The set of interchange automata A is recursively defined by the following grammar: α ::= αatom | α||α | γa (α) | u ≫ α | |[A a :: α]| | Uaτ (α) | |[V x = expr, x˙ = expr :: α]| | Dx:G (α) | cx (α), where || denotes parallel composition, the operator γa (α) makes action a synchronizing within α, u ≫ α is the initialization operator, |[A . . . ]| is the action scope operator (used to define local actions), the operator Uaτ (α) states that action a is urgent within α (i.e. must be fired as soon as it is enabled), |[V . . . ]| is the variable scope operator (used to define local variables), Dx:G (α) is the dynamic type operator (used to equip variables with dynamic types), and cx (α) is the control variable operator (states that the variables can only be modified by α). ⋄ The formal and the informal semantics of µCIF are described in detail in [3] 7 . 3. THE MODELICA LANGUAGE The Modelica language [2] is receiving wide-spread attention as a de-facto language for the modeling and design of complex, heterogeneous hybrid systems in both, industry and academia. In contrast to the CIF, which is based on a hybrid automaton formulation, Modelica is inherently equation-based. This means that before execution, Modelica models are transformed into a single hybrid DAE system that comprises Boolean equations as well as implicit differential-algebraic continuous equations. The major advantage of this approach is that the hybrid DAE system can be transformed into a block-triangular form that allows for very efficient execution. Modelica is probably the modeling language that follows the objectoriented paradigm most closely, and it offers many of the concepts that also distinguish modern object-oriented programming languages such as C# or C++, including inheritance or polymorphism. Consequently, every element of Modelica is considered to be a class (or a class instance), down to the basic data types.
The CIF has been designed to encompass most of the language constraints that are common in modeling formalisms, and its syntax is thus not strongly restricted. In contrast, Modelica was designed to enable the detection of many model errors already during the compilation phase. Consequently, its syntax is subject to numerous restrictions. In the following, some language concepts are presented that are important for the transformation algorithm described below, and that lead to restrictions throughout the language (some of these restrictions will be discussed in the next section). Modelica is a synchronous language [2] which means that (1) all variables keep their values until these values are explicitly changed (i.e. by equations or algorithmic statements), (2) all active model equations at any point in time must be fulfilled concurrently, and (3) any computation at discrete events does not consume any (simulation) time. In addition, Modelica is restricted by two important rules: • Single-assignment rule: The total number of equations must be identical to the total number of unknown variables at all times. • Balanced models [11]: All model entities of a Modelica µCIF model must be locally balanced, which means that the number of unknowns must at all times be equal to the number of active equations. A model is globally balanced if the number of unknowns of the complete model is at all times equal to the number of active equations.
In this work, a subset of the Modelica language, termed ModelicaµCIF , is defined that only contains those elements needed to represent CIF models: Def. 3 (ModelicaµCIF Model): A ModelicaµCIF model mµCIF is a set of classes C, with subsets Cmodel ⊆ C 5
The definition of dtype has been simplified to only include the relevant dynamic types, compare to [3]. 6 Abbreviated and simplified version of Def. 2 in [3]. 7 Note that static types of variables are omitted throughout the paper for clarity, as these can be directly mapped from the CIF to Modelica.
8
12517
The default value of dir is inout.
18th IFAC World Congress (IFAC'11) Milano (Italy) August 28 - September 2, 2011
4. THE TRANSFORMATION ALGORITHM
13 14
4.1 The Transformable µCIF Subset The transformation algorithm presented here supports a large subset of µCIF (and also CIF) models, thus only few restrictions are needed to ensure that a model is transformable: Def. 4 (Transformable µCIF Model): A µCIF model is transformable to ModelicaµCIF if and only if: • It is simulatable, which (among others) includes the requirements that it is globally balanced as defined above, that all variables are equipped with the correct dynamic and static types, that it is deadlock-free (unless a deadlock is introduced deliberately, e.g. to terminate the simulation in a certain error mode), and that its active equations possess a unique solution within the complete state space 9 . • It does not contain any stochastic constructs. • It does not contain any actions, and all discrete transitions are urgent 10 . • Any local variables (i.e. variables defined in a variable scope operator) must not have the same name as any variable in the enclosing scope. • At the first initialization, the init predicate must evaluate to true for a single discrete mode (this is necessary since Modelica is deterministic while µCIF supports non-deterministic initialization). • ∀α ∈ A, ∀e ∈ E(α): In any variable update (W, r) of e that is not an assignment, the predicates r must be solvable for the variables in W . ⋄
15 16 17 18 19
newActive = active or anyTrue(inPorts.fired); and not (anyTrue(outPorts.fire) and not firedSL(inPorts,outPorts.ID)); active = pre(newActive); if active then assert(invariant,"Invariant violated"); end if; end CIFMode;
01 model CIFTransition 02 Boolean condition = true; 03 Integer ID = 0; 04 CIFTransitionInPort inPort; 05 CIFTransitionOutPort outPort; 06 discrete Boolean signalFired; 07 equation 08 inPort.enabled = condition; 09 outPort.fired = inPort.fire; 10 signalFired = inPort.fire; 11 inPort.ID = ID; 12 outPort.ID = ID; 13 end CIFTransition; 01 connector CIFStepInPort/CIFTransitionOutPort 02 input/output Boolean fired; 03 input/output Integer ID; 04 end CIFStepInPort/CIFTransitionOutPort; 01 connector CIFStepOutPort/CIFTransitionInPort 02 output/input Boolean fire; 03 input/output Boolean enabled; 04 input/output Integer ID; 05 end CIFStepOutPort/CIFTransitionInPort;
The idea behind these components is illustrated in Fig. 2. Each µCIF mode can have arbitrarily many in- and outgoing transitions; their numbers is specified in the parameters m and n. In addition, each CIF M ode is equipped with three Boolean variables. The variables active and newActive store the activity of the mode, 4.2 Transforming µCIF to ModelicaµCIF and invariant models the invariant of the mode (see inv defined in Def. 1). Finally, the parameter initStep The transformation of atomic µCIF automata to Modelica indicates if a mode is the initial mode (see init, Def. 1). µCIF is based on six Modelica components that model the discrete modes V , the discrete transitions E, and in- The model entity CIF T ransition acts as an intermediate terfaces between these. The following connector and model between two CIF M ode entities and forwards the values of their communication variables (see Fig. 2). Only two entities are added to the initially empty model mµCIF : values are stored in CIF T ransition: the guard condition 01 model CIFMode (g in Def. 1) that determines if the transition is enabled, 02 parameter Integer n=0, m=0; and a unique ID that is used by the CIF M ode entities 03 CIFStepInPort inPorts[n]; to detect if self-loops are present (see below). CIF M ode 04 CIFStepOutPort outPorts[m]; controls the firing of outgoing transitions, as shown on 05 parameter Boolean initStep = false; lines 10-12. If several outgoing transitions are enabled, 06 Boolean invariant = true; 07 Boolean active; CIFTransition 08 Boolean newActive(start=initStep, fixed=true); ID ID outPort fired 09 equation condition 10 for i in 1:m loop inPort fire 11 outPorts[i].fire = active and (if i==1 then outPorts[i].enabled else (outPorts[i].enabled and not outPorts[i-1].enabled)); CIFMode 12 end for; Note that if a µCIF interchange automaton is transformable, it does not contain any operators of the types γa (α) or |[A . . . ]|, and that all Uaτ (α) can be ignored since it is assumed that all transitions are urgent (see Def. 2).
9
It is not required that atomic automata are locally balanced. synchronization can be reformulated to synchronization by shared variables using a CIF-to-CIF transformation.
10 Action-based
Fig. 2. Representation of atomic µCIF automata in ModelicaµCIF .
12518
18th IFAC World Congress (IFAC'11) Milano (Italy) August 28 - September 2, 2011
the transition with the smallest index is chosen 11 . The equations on lines 13-15 update the activity variable of the mode 12 . On lines 16-18, the invariant is validated. If it evaluates to f alse while the mode is active, an error is triggered since this constitutes a deadlock. A µCIF interchange automaton is mapped into a single Modelica model entity cµCIF that is added to the set Cmodel . Starting from the innermost element of an interchange automaton A, the transformation proceeds as follows: (1) Choose an element αi ∈ A that has not yet been transformed. (2) If αi is of type αatom : (a) Reproduce the discrete structure consisting of all v ∈ V (αi ) and e ∈ E(αi ) using the model entities described above. This step comprises an instantiation of CIF M ode in cµCIF .Xm for each v ∈ V (setting the variables as invariant = inv(v) ∧ tcp(v), where only inequalities in inv are considered, and initStep = init(v)), an instantiation of CIF T ransition in cµCIF .Xm for each e ∈ E including an equality constraint condition = g, and the correct connection of the connector ports using connect equations. (b) For each variable update (W, r) in each e ∈ E, include a when statement (if (W, r) is an assignment) or a when equation (if (W, r) is a reinitialization) into cµCIF .eq / cµCIF .alg, with the condition CIF T ransition.signalF ired, where CIF T ransition must be replaced with the instance name of the transition e 13 . (c) For each mode v ∈ V of αi , add the equalities within the inv mapping to cµCIF .eq using conditional equation constructs that ensure that the equations only become active if the corresponding mode is active. (d) Add all variables x ∈ X to cµCIF using the following scheme: (a) if dtype(x) = disc and x is not modified anywhere within A, dtypem (x) = parameter, (b) if dtype(x) = disc and x is modified somewhere in A, dtypem (x) = discrete, (c) else dtypem (x) = continuous. (3) If αi is of type α1 ||α2 : Apply step 2 to α1 and α2 . (4) If αi is of type u ≫ α: Initialize the corresponding variables accordingly in Modelica. (5) If αi is of type |[V . . . ]|: Add the corresponding variables to cµCIF .Xm . (6) If αi is of type Dx:G (α): Set dtypem (x) as described in step 2.
(7) If αi is of type cx (α): Go directly to step 8 (control variable operators are only relevant in hierarchical models, see below). (8) If there are still untransformed elements in A, go to step 1. Otherwise, go to step 9. (9) Determine all variables X ′ ⊆ cµCIF .Xm that appear in both, a guard g of any transition e of A, and in an update (W, R) of any transition e of A. The Boolean equation systems for these variables contain algebraic loops that must be broken by adding new variables x′′ for each x′ ∈ X ′ , replacing all x′ with x′′ in all when statements or when equations, and connecting them as x′ = pre(x′′ ). (10) Finished. The low-level transformation tasks (such as mapping expressions from µCIF to ModelicaµCIF ) are mostly straightforward and are thus not described here 14 . 4.3 Extension to Hierarchical CIF Models The extension of the transformation algorithm described above to hierarchical CIF is straightforward. For example, automaton declarations and instantiations can be directly mapped to Modelica using appropriate class definitions and instantiations, Modelica models can be nested according to the hierarchical structure of the CIF model, and the signals of CIF M ode and CIF T ransition can be connected up the model hierarchy, if necessary. However, due to the single-assignment rule, the updates of a variables in different parts of a model must be combined into a single when statement or when equation that resides at the highest hierarchical level where the variable is modified. Note that hierarchical CIF components do not have to be locally balanced, as any mismatches can be propagated within the model hierarchy, if necessary. 5. APPLICATION EXAMPLE The transformation described in this paper has been applied to a highly challenging, large-scale hybrid model of a four-tank system under discrete control. The system was modeled in gPROMS, transformed algorithmically to the CIF (using the approach described in [7] and equipped with a logic controller in the Sequential Function Chart (SFC) formalism (see [4]) that was automatically transformed to the CIF. The major challenge posed by this system lies in the highly complex discrete dynamics, as the SFC model contains a Programmable Logic Control (PLC) hardware execution model which makes the discrete dynamics highly complex (see [18]). The CIF model and the transformed Modelica model are available for download here: http://goo.gl/xs2HV 15 .
11 The
µCIF chooses non-deterministically between several enabled transitions. 12 Two variables must be used here, because without this construct, the system of Boolean equations with only one variable would contain algebraic loops that are not allowed in Modelica, see [10]. The pre operator is used to break the algebraic loop. The Modelica function anyTrue∈ Cf c [10] returns true if any element of its input vector is true, and the function fireSL∈ Cf c checks if any fired transitions are self-loops of the mode (in which case the mode must remain active). 13 If a variable is modified several times within an equation section, when − elsewhen constructs must be employed (although this is currently not supported by most simulators).
6. CONCLUSIONS & OUTLOOK In this paper, a transformation algorithm is presented that allows to transfer models that are formulated in a 14 With
the exception of external µCIFfunctions that must be connected manually to Modelica since the CIF does not yet offer a standardized interface. 15 Since µCIF does not possess a concrete textual format, the CIF model is implemented in the concrete CIF format in a µCIF-like structure.
12519
18th IFAC World Congress (IFAC'11) Milano (Italy) August 28 - September 2, 2011
very large subset of the Compositional Interchange Format (CIF) for Hybrid Systems to the Modelica language. The algorithm transforms the discrete automaton structure of the CIF into a set of Boolean equations, while the continuous parts are mapped into suitable Modelica equation constructs. Combined with a transformation from Modelica to the CIF that was developed in previous work, this transformation is beneficial for both formalisms: the CIF gains support for modeling and simulation environments with a large model library, while Modelica receives access to numerous model-based tools that are connected to the CIF. The transformation was illustrated on a realistic hybrid example that exhibits highly complex discrete dynamics. Future work includes (among others) (a) the implementation of this transformation algorithm in the Eclipsebased CIF tool set (http://goo.gl/h8wlC), (b) the development of methods to avoid the blow-up of model sizes when several transformations are applied in sequence, (c) the definition of an external function interface for the CIF, and (4) the connection of other languages (such as EcosimPro) to the CIF. REFERENCES [1]
HYCON: Taming heterogeneity and complexity of networked embedded systems. EU-funded Network of Excellence, contract number: FP6-IST-511368, 20042009, 2004. http://www.ist-hycon.org. [2] MODELICA - A Unified Object-Oriented Language for Physical Systems Modeling - Language Specification, V3.2. Technical report, 03 2010. http://goo.gl/hwcC. [3] J.C.M. Baeten, D.A. van Beek, D. Hendriks, A.T. Hofkamp, D.E. Nadales Agut, J.E. Rooda, and R.R.H. Schiffelers. Definition of the Compositional Interchange Format. Technical Report D1.1.2 for the MULTIFORM Project, 2010. http://goo.gl/MKcG. [4] S. Fischer, M. H¨ ufner, C. Sonntag, and S. Engell. Systematic generation of logic controllers in a modelbased multi-formalism design environment. In 18th IFAC World Congress, Milano, Italy, 2011. [5] G. Frehse. PHAVer: Algorithmic verification of hybrid systems past HyTech. In Hybrid Systems: Comp. and Control, volume 3414 of LNCS, pages 258–273. 2005. [6] Peter Fritzson. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley Interscience / IEEE Press, 2004. ISBN 978-0-471-47163-9. [7] D. Hendriks, R.R.H. Schiffelers, M. H¨ ufner, and C. Sonntag. A transformation framework for the Compositional Interchange Format for Hybrid Systems. In 18th IFAC World Congress, Milano, Italy, 2011. Submitted. [8] K.G. Larsen, P. Petterson, and W. Yi. UPPAAL in a nutshell. International Journal on Software Tools for Technology Transfer, 1(1):134–152, 1997. [9] PSE Ltd. gPROMS Advanced Process Modeling Environment, 2010. http://www.psenterprise.com/gproms. [10] P.J. Mosterman, M. Otter, and H. Elmqvist. Modeling petri nets as local constraint equations for hybrid systems using modelica. In Proc. SCS Summer Simulation Conference, pages 314–319, 1998.
[MULTIFORM] MULTIFORM. Integrated Multiformalism Tool Support for the Design of Networked Embedded Control Systems, EU-funded Collaborative Project, contract number: FP7-ICT224249, 2008-2012. http://www.ict-multiform.eu. [11] H. Olsson, M. Otter, S.E. Mattsson, and H. Elmqvist. Balanced models in modelica 3.0 for increased model quality. In Proc. Modelica Conference 2008, pages 21–33, 2008. [12] M. Otter, K.E. Arzen, and I. Dressler. Stategraph a modelica library for hierarchical state machines. In Proc. 4th Int. Modelica Conference, pages 569–578, 2005. [13] M. Otter, M. Malmheden, H. Elmqvist, S.E. Mattsson, and C. Johnsson. A new formalism for modeling of reactive and hybrid systems. In Proc. 7th Modelica Conference, pages 364–377, 2009. [14] M.A. Pereira Remelhe and S. Engell. Combining Modelica models with discrete event formalisms for simulation using the DES/M enviroment. International Journal of Software Engineering and Knowledge Engineering, 2(15):349–355, 2005. [15] M.A. Pereira Remelhe and S. Engell. Structuring Discrete Event Models in Modelica. In Proc. 4th Int. Conf. on Automation of Mixed Processes ˆ (ADPMA´2000), pages 147–152, 2000. [16] T. Pulecchi and F. Casella. Hyaulib: Modelling hybrid automata in modelica. In Proc. Modelica Conference 2008, pages 239–246, 2008. [17] C. Sonntag. Modeling, simulation, and optimization environments. In Handbook of Hybrid Systems Control - Theory, Tools, Applications, pages 328–363. 2009. [18] C. Sonntag and S. Fischer. Translating sequential function charts to the compositional interchange format for hybrid systems. In Proc. 49th IEEE Conference on Decision and Control (CDC’10), pages 4250– 4256, 2010. [19] C. Sonntag, R.R.H. Schiffelers, D.A. van Beek, J.E. Rooda, and S. Engell. Modeling and simulation using the compositional interchange format for hybrid systems. In 6th Vienna Int. Conference on Mathematical Modelling (MATHMOD), pages 640–650, 2009. [20] D. Steinberg, F. Budinsky, M. Paternostro, and E. Merks. EMF Eclipse Modeling Framework. Addison-Wesley, 2009. [21] D.A. van Beek, M.A. Reniers, R.R.H. Schiffelers, and J.E. Rooda. Foundations of a compositional interchange format for hybrid systems. In Hybrid Systems: Computation and Control, volume 4416 of LNCS, pages 587–600. Springer, 2007. [22] D.A. van Beek, M.A. Reniers, J.E. Rooda, and R.R.H. Schiffelers. Concrete syntax and semantics of the compositional interchange format for hybrid systems. In Proc. IFAC World Con., pages 7979–7986, 2008. [23] D.A. van Beek, P. Collins, D.E. Nadales, J.E. Rooda, and R.R.H. Schiffelers. New concepts in the abstract format of the compositional interchange format. In Proc. 3rd IFAC Conference on Analysis and Design of Hybrid Systems (ADHS), pages 250–255, 2009.
12520