CO-SIMULATION OF CHI AND SIMULINK MODELS
|
|
|
- Eustacia Dalton
- 10 years ago
- Views:
Transcription
1 CO-SIMULATION OF CHI AND SIMULINK MODELS D.A. van Beek 1, A.T. Hofkamp 1, M.A. Reniers 2, J.E. Rooda 1, and R.R.H. Schiffelers 1 1 Eindhoven University of Technology, Department of Mechanical Engineering P.O. Box MB Eindhoven, The Netherlands 2 Eindhoven University of Technology, Department of Computer Science P.O. Box MB Eindhoven, The Netherlands [email protected] (This work has been carried out as part of the Darwin project under the responsibility of the Embedded Systems Institute. This project is partially supported by the Netherlands Ministry of Economic Affairs under the BSIK program, and partially supported by the ITEA project TWINS, number 05004) Abstract Using the model-based engineering paradigm for the design of a system, the system is decomposed into several components and models are developed for these components. The models are preferably specified using domain-specific modelling formalisms. By means of co-simulation, the component models can be combined to obtain the overall system behavior. Furthermore, co-simulation enables the reuse and combination of already existing and validated subsystem models without re-entering model data. In this paper, we present a cosimulation framework (see figure at the right) that is based on the S-function interface as present in Matlab Simulink, to simulate models that consist of subsystems modelled using Matlab Simulink and subsystems modelled in the hybrid process algebra Chi (χ). The principles of the implementation of the framework are described and the framework is illustrated by means of a bottle filling system example. Simulink Unix process Simulink model a SimStruct modifications Python Unix process TimeStep χde + simulator TimeStep χ model outputvars = x, y SimStruct modifications callback methods IPC callback methods callback function invocations DoActionTransition χ model(inputvar a) x y callback function invocations Simulate() CMEX Python GetNextSteps() Keywords: hybrid systems, model-based engineering, modelling, co-simulation, Chi formalism, Simulink Presenting Author s Biography Ramon Schiffelers received his Ph.D degree from the Eindhoven University of Technology in February His thesis was called Modelling, Simulation and Verification of Hybrid Systems. Currently, he is participating in the Darwin project that aims to provide generic methods that will lead to the design of high evolvable systems. He is a member of the (Dutch) Institute for Programming research and Algorithmics (IPA).
2 1 Introduction In the design cycle of large-scale heterogeneous systems, modelling is a time and labor consuming step. The models generally combine components from many different domains, e.g., hydraulics, thermodynamics, combustion, electronics, supervisory control, scheduling, communication, etc., which have to be described using appropriate formalisms and for which specific software environments exist. Simulation is a popular way of analysing the behavior of the controlled system and it is supported by most of the tools dedicated to hybrid systems. Therefore, in the HYCON NoE [1] as part of work package 3 on tool integration, a study was carried out to provide tool interoperability for simulation purposes. The objective is to increase the modelling efficiency for large-scale heterogeneous systems by enabling the combination of domain-specific modelling formalisms and component libraries, and the reuse and combination of already existing and validated subsystem models from different tools without re-entering/re-modelling the model. By means of co-simulation, these objectives can be met. The term co-simulation in this document refers to simulation of a model that consists of different components that may each be simulated by different simulation tools running simultaneously and exchanging information. In literature, the term co-simulation is also used for hardware-software co-simulation, however such a kind of co-simulation differs from the use in this document. As part of the Darwin project [2], the model-based engineering (MBE) method [3] is used to develop the control system of a patient support system of a MRI scanner. The MBE method is visualized in Figure 1. The system development process is subdivided into multiple (concurrent) component development processes. Subsequently, the resulting components are integrated into the system. Using the MBE approach, the development process of a component C i consists of a requirements definition phase, a design phase, a modelling phase, and a realization phase resulting in the requirements R i, the design D i, the model M i, and the realization Z i, respectively. In the development process of a system S that consists of multiple components, e.g. components C 1 and C 2, the system requirements R and the system design D precede the development process of the components. The realization of system S is the result of the integration of realizations of Z 1 and Z 2 of the components C 1 and C 2 by means of infrastructure I 12, denoted by Z 1, I 12, Z 2. The components might be modelled in several domain-specific modelling formalisms. For example, in case of the patient support system, the physics of the patient support table can be modelled using Simulink [4] (M 1 ), and the controller can be modelled using χ [5, 6] (M 2 ). By means of co-simulation, the integrated models of the components M 1, I 12, M 2 can be validated against the system requirements and design. In this paper, we describe a co-simulation framework based on the S-function interface as available in Matlab Simulink, to simulate models specified in the hybrid process algebra χ. An S-function (system-function) [7] is a computer language description of a MATLAB Simulink block. The form of an S-function is very general and accommodates continuous, discrete, and hybrid systems. The hybrid χ formalism is a hybrid process algebra with a relatively straightforward and elegant syntax and formal semantics that is highly suited to modelling. The intended use of hybrid χ is for modeling, simulation, verification, and real-time control. Its application domain ranges from physical phenomena, such as dry friction, to large and complex manufacturing systems. The semantics of hybrid χ is defined using a structured operational semantics style (SOS) [8]. So far, a χ simulator has been defined and implemented. For this simulator, we derived an implementation from the SOS rules, called the stepper, see [9], and used the symbolic solver from Maple [10]. Based on this same stepper, a χ DE + (discrete-event-plus) simulator is defined that interacts with Matlab Simulink [4] using an S-function as follows. The DE + simulator performs (discrete) action transitions until the stepper returns a time step. This time step is returned to Simulink. During the time transition, Simulink solves the equations and monitors the zero-crossings as specified in the time step. At the end of the time transition, the DE + simulator is called again. This paper is organized as follows. In Section 2, the S-function interface is described. The χ language and the DE + simulator are described in Section 3. The implementation is described in Section 4, and illustrated by means of an example of a bottle filling system in Section 5. Conclusions are drawn in Section 6. 2 S-function interface In this section, a brief introduction to S-functions is given, based on [7]. For a comprehensive description of S-functions and their usage with MATLAB Simulink see [7, 4]. An S-function implements a set of methods, called callback methods that together describe the behavior of the (sub) system modelled by means of the S-function. The simulation coordinator, in our case Matlab Simulink, invokes these callback methods during the simulation. 2.1 Specification of an implementation of the S- function interface An implementation of the S-function interface must implement the set of callback methods. Some callback methods are optional. The simulation coordinator invokes an optional callback only if the S-function defines the callback. The callback methods perform tasks required at each simulation stage. These tasks performed by the callback methods include: Initialization. Prior to the first simulation loop, the
3 Fig. 1 Model-based engineering approach [3] simulation coordinator initializes the S-function. During this stage: The SimStruct is initialized. A SimStruct is a simulation structure that contains information about the S-function. The number and dimensions of input and output ports are set. The block sample times are set. The storage areas are allocated. Calculation of next sample hit. In case a variable sample time block is specified, this stage calculates the time of the next sample hit; that is, it calculates the next step size. Calculation of outputs in the major time step. After this call is complete, all the output ports of the blocks are valid for the current time step. Update of discrete states in the major time step. In this call, all blocks should perform once-per-timestep activities such as updating discrete states for next time around the simulation loop. Integration. This applies to models with continuous states and/or non-sampled zero crossings. If the S-function contains continuous states, the simulation coordinator calls the output and derivative portions of the S-function at minor time steps. In this way, the simulation coordinator can compute the states for the S-function. If the S-function contains non-sampled zero crossings, the simulation coordinator calls the output and zero-crossings portions of the S-function at minor time steps so that the zero crossings can be located. Tab. 1 Functionality of callback methods mdlinitializesizes Specifies the number of inputs, outputs, states, and parameters and other characteristics of the S-function mdlinitializesampletimes Specifies the sample rates mdlinitializeconditions Initializes the state variables mdloutputs Computes values of the output variables mdlupdate Updates the state variables mdlderivatives Computes the derivatives mdlzerocrossings Updates zero-crossing vector mdlterminate Performs any actions required at termination of the simulation In this paper, we focus on the C implementation of the S-function interface. The main callback functions together with a brief description of their functionality is given in Table 1.
4 S function, initizalization To simulation loop mdlinitializesizes mdlinitializesampletimes Fig. 2 Initialization of S-function. 2.2 Interaction of the simulation coordinator with the S-function During simulation, Simulink invokes the predefined set of callback functions of the S-function implementation in order to perform all necessary computations in the right order. Figures 2 and 3 show the order in which the simulation coordinator invokes the callback methods of an S-function, during initialization and simulation respectively. Solid rectangles indicate callbacks that always occur during model initialization and/or at every time step. Dotted rectangles indicate callbacks that may occur during initialization and/or at some or all time steps during the simulation loop. 3 The hybrid χ language and simulator In this section, the syntax and semantics of (a subset of) the hybrid χ language are discussed informally. A more detailed explanation of hybrid χ can be found in [5, 6]. 3.1 Syntax A χ model identified by name is of the following form: model name(input i 1 : type i1,..., i k : type ik ) = [ var s 1 : type s1 = c 1,..., s m : type sm = c m, cont x 1 : type x1 = d 1,..., x n : type xn = d n, chan h 1 : type h1,..., h q : type hq, mode X 1 = p 1,..., X r = p r :: p ] Here, type i denotes a type, for instance bool, nat, or real. Notation input i 1 : type i1,..., i k : type ik denotes the declaration of input variables i 1,..., i k. The values of these variables are defined in the environment of the χ model. Notation var s 1 : type s1 = c 1,..., s m : type sm = c m denotes the declaration of discrete variables s 1,..., s m with their respective types type s1,..., type sm and initial values c 1,..., c m. Similarly, notation cont x 1 : type x1 = d 1,..., x n : type xn = d n is used to declare continuous variables, and notation chan h 1 : type h1,..., h q : type hq declares the channels minortimestep majortimestep S function, simulation loop Initialization End Simulation mdlinitializeconditions mdloutput mdlupdate mdlderivatives mdloutputs mdlderivatives mdloutput mdlzerocrossings mdlterminate Integration Zero crossing detection Fig. 3 Simulation stages of S-function. h 1,..., h q. Notation mode X 1 = p 1,..., X r = p r declares mode variables X 1,..., X r with their respective statement definitions p 1,..., p r. The χ language consists of the following statements p P: P ::= x n := e n (multi-) assignment u delay predicate delay d delay statement X mode variable b P guard operator P repetition P ; P sequential composition P P alternative composition P P parallel composition h! e n send statement h? x n receive statement [ D :: P ] scope operator l p (e n ) process instantiation Here, x n denotes the (non-dotted) variables x 1,..., x n such that time {x n }, e n denotes the expressions e 1,..., e n, u and b are both predicates over variables (including the variable time) and dotted continuous
5 variables, d denotes a numerical expression, X denotes a mode variable, h denotes a channel, D denotes declarations of local (discrete or continuous) variables, local mode variables, and local channels, and l p denotes a process identifier. The operators are listed in descending order of their binding strength as follows, ;, {, }. The operators inside the braces have equal binding strength. For example, x := 1; y := x x := 2; y := 2x means (x := 1; y := x) (x := 2; y := 2x). Parentheses may be used to group statements. To avoid confusion, parenthesis are obligatory when alternative composition and parallel composition are used together. E.g. p q r is not allowed and should either be written as (p q) r, or as p (q r). A multi-assignment x n := e n denotes the assignment of the values of the expressions e n to the variables x n. A delay predicate u, usually in the form of a differential algebraic equation, restricts the allowed behavior of the continuous and algebraic variables in such a way that the value of the predicate remains true over time. A delay statement delay d delays for d time units and then terminates by means of an internal action. Mode variable X denotes a mode variable (identifier) that is defined at the declarations. Among others, it is used to model repetition. Mode variable X can do whatever the statement of its definition can do. The guarded process term b p can do whatever actions p can do under the condition that the guard b evaluates to true. The guarded process term can delay according to p under the condition that for the intermediate valuations during the delay, the guard b holds. The guarded process term can perform arbitrary delays under the condition that for the intermediate valuations during the delay, possibly excluding the first and last valuation, the guard b does not hold. Repetition p denotes the infinite repetition of p. Sequential composition operator term p; q behaves as process term p until p terminates, and then continues to behave as process term q. The alternative composition operator term p q models a non-deterministic choice between different actions of a process. With respect to time behavior, the participants in the alternative composition have to synchronize. Parallelism can be specified by means of the parallel composition operator term p q. Parallel processes interact by means of shared variables or by means of synchronous point-to-point communication/synchronization via a channel. The parallel composition p q synchronizes the time behavior of p and q, interleaves the action behavior (including the instantaneous changes of variables) of p and q, and synchronizes matching send and receive actions. The synchronization of time behavior means that only the time behaviors that are allowed by both p and q are allowed by their parallel composition. By means of the send process term h! e n, for n 1, the values of expressions e n (evaluated w.r.t. the extended valuation) are sent via channel h. For n = 0, this reduces to h! and nothing is sent via the channel. By means of the receive process term h? x n, for n 1, values for x n are received from channel h. We assume that all variables in x n are different. For n = 0, this reduces to h?, and nothing is received via the channel. Communication in χ is the sending of values by one parallel process via a channel to another parallel process, where the received values (if any) are stored in variables. For communication, the acts of sending and receiving (values) have to take place in different parallel processes at the same moment in time. In case no values are sent and received, we refer to synchronization instead of communication. The scope operator [ D :: P ] is used to declare a scope consisting of local (discrete or continuous) variables, local mode variables, and local channels. Process instantiation l p (e n ) denotes the instantiation of process definition proc l p (f n ) = [ D :: p ] that should be defined at the level of the χ model. Here, e n and f n denote the actual and formal parameters, respectively. 3.2 Formal semantics The semantics of χ is defined by means of deduction rules in SOS style [8] that associate a hybrid transition system with a χ model as defined in [6]. The hybrid transition system consists of action transitions and time transitions. Action transitions define instantaneous changes, where time does not change, to the values of variables. Time transitions involve the passing of time, where for all variables their trajectory as a function of time is defined. 3.3 Definition of the stepper The stepper computes the set of possible transitions given a χ process. The stepper consists of three main functions: function S a which returns the set of action steps given a χ process, function S d which returns the set of time steps given a χ process, and function T r which returns the set of transitions given a step. Action steps and time steps can be seen as symbolic transitions. They consist of all information needed to determine the transitions that the process from which they are derived can perform. An action step represents zero or more action transitions and a time step represents zero or more time transitions. An action step (c, W, r, l a, p ) consists of the condition (guards) c that should hold, the set of variables W that may change, the predicate r describing (restricting) the discrete updates, the performed action label l a, and the resulting process term p. A time step (c [0], c (0,t), c [t], c [0,t], c, p ) consists of the predicate c [0] that should hold at the start point of the time transitions, the predicate c (0,t) that should hold at all time points between the start- and endpoint of the time transitions, the predicate c [t] that should hold at the endpoint of the time transitions, the predicate c [0,t] that should hold at all time points (including the startand endpoint) of the time transitions, the predicate c
6 that should hold at least at one time point of the time transition, and the resulting process term p. 3.4 DE + simulator The stepper functions are defined in such a way that it is easy to define the DE + (discrete-event-plus) simulator. This simulator interacts with Matlab Simulink using an S-function as follows. The DE + simulator performs action transitions until the stepper returns a time step. This time step is returned to Simulink. During the time transition, Simulink solves the delay predicates as specified in the time step. At the end of the time transition, the DE + simulator is called again. The DE + simulator consists of a function Simulate, which is defined as follows: Simulate(M) = while M = do atrans := astep S a (M) T r(astep) if atrans = then M := DoActionTrans(pick(atrans)) else dsteps := S d (M) if dsteps = then return pick(dsteps) else return deadlock endif endif endwhile return stop simulation Given a χ model M, all possible action transitions are calculated and stored in variable atrans. If the set of action transitions is not empty, an action transition is selected (non-deterministically) and performed resulting in the new state M (M := DoActionTrans(pick(atrans))). Then, the simulate function is applied on the new state M. If the set of action transitions is empty, the possible delay steps (dsteps) that the process can perform are calculated. If the set of delay steps is empty, the process is deadlocked. If the set of delay steps is not empty, a delay step is selected and returned. If the model is terminated (M = ), a request is sent to the simulation coordinator to stop the simulation (stop simulation). 4 Implementation Realization of the co-simulation means that the stepper for χ models has to be implemented. On top of the stepper functions the DE + simulator has to be built, and finally callback functions from the S-function interface are implemented using the Simulate() function. The design considerations of the framework are discussed in Section 4.1. In Section 4.2, the implementation of the callback methods of the block is described. 4.1 Design considerations In our case, a simulator using the stepper was already implemented in the programming language Python [11] as a generic piece of software, independent of a specific χ model. Also, a tool set exists that translates a χ model to a form usable for the stepper. The generic stepper software together with the translated χ model provides action transitions, termination transitions, and time transitions specific for the χ model. The C programming language [12] was used for connecting to the callback methods in the Simulink program. The following questions thus needed to be answered. In which language to write the DE + simulator and the χ S-function callback methods? How/where to run the Python interpreter? Both the DE + simulator and the χ S-function callback methods deal with equations and values of variables. They must evaluate expressions in order to decide what reply to give to each callback method. Coding these in C implies that expressions need to be transfered between Python and C. Also, an expression evaluator would need to be implemented in C, functionality already present in the simulator. (Note that like the stepper software, the coupling with the χ S-function methods is generic software, that is, without knowledge about which χ model will be used. Techniques such as compiling expressions to C into the S-function block can therefore not be employed.) Coding the DE + simulator and the χ S-function callback methods in Python implies that vectors/arrays of reals or integers need to be transfered between Python and C, a problem much more manageable than handling expressions and evaluating them, in C. The decision was thus made to implement both the DE + simulator and the χ S-function callback methods in Python. In other words, calls received from the S-function methods in C are first forwarded to Python, the Python implementation of the S-function methods computes the answer using the DE + simulator, and finally, the result is transfered back to C and delivered to Simulink. This solution results in a framework of interfacing to S-function methods in Python which is independent of its application (such as connecting to the DE + simulator). We may find other uses for this framework in the future. The question of how/where to run the Python interpreter boils down to two options. Embed the interpreter in the Simulink program. Run the interpreter as a separate Unix process. Python is designed to act as glue between other software, so embedding it in other software is in itself no problem. However, you can have only one Python interpreter in a single operating system process. Use of multiple χ S-function blocks (each with its own χ model) in the same simulation can only be supported by running multiple Python threads (inside the interpreter). Such thread information would typically be stored as
7 part of the Simstruct data, and would need to travel over the C/Python connection, making the generic call forwarding framework more complex. Also, in an earlier experiment, we experienced clashes between the dynamic module loading mechanism of Matlab/Simulink and Python of which we are unsure how to deal with, but we consider this to be a non-critical issue for now. The other alternative, running a Python interpreter as separate Unix process for each S-function block, and connect them to the S-function interface using Inter Process Communication (IPC) is a proven technology explained in many books (for example [13]) that allows as many concurrent χ S-function blocks as the machine allows new processes without any of the threading and/or dynamic loading troubles. In addition, the Python side of the call forwarding framework becomes a normal Python extension, which makes it easier to use and support. The decision was made to have one Python Unix process running the stepper and the DE + simulator for each χ S-function block. The IPC mechanisms that are potentially useful are Sockets: Network-enabled, more complex to setup connection, sockets are managed by the operating system. (Named) pipes: Fast, not over the network, pipes are managed by the operating system. Shared memory: Very fast, not over the network, needs additional read/write access control, memory blocks need separate management. We selected (named) pipes as IPC mechanism for their simplicity. The additional complexity of sockets gives no additional advantages. If we encounter performance problems due to IPC, we can always switch to shared memory. The result of these decisions together is visualized in Figure 4. Inside the Simulink model, many blocks can be used to model a system, including one or more χ S-function blocks. For each χ S-function block, the call forwarding framework is instantiated. A Python interpreter is started as a separate Unix process, and two pipes are created between them (one for forwarding S- function method parameters to the Python interpreter, and one for sending results back). At the Python side, the S-function methods are implemented by using the DE + simulator, the stepper, and the compiled χ model. 4.2 Implementation of the callback methods The implementation of the callback methods of the block are defined as follows. mdlinitializesizes The pipes are created, the Python interpreter is initialized (forked) and the χ model is instantiated. The discrete variables of the χ process are mapped to the discrete state variables of the S-function block. The continuous variables and the variable time of the χ process are mapped to the continuous state variables of Simulink Unix process Simulink model a SimStruct modifications Python Unix process TimeStep χde + simulator TimeStep χ model outputvars = x, y SimStruct modifications callback methods IPC callback methods callback function invocations DoActionTransition χ model(inputvar a) x y callback function invocations Simulate() CMEX Python GetNextSteps() Fig. 4 Process model of the framework.
8 the S-function block. The number of input ports is set to the number of input variables that are specified in the formal parameter list of the χ model. The number of output ports is set to the number of output variables as specified in the parameters of the block. The number of Sample Times is set to 1. The number of zero crossings is set to the number of occurrences of guard operators plus the number of occurrences of inequality delay predicates plus 1 for the time events. Using pseudo code, the implementation of function mdlinitializesizes is as follows: global TimeStep chimodel = GetChiModel() mapvariables() mdlinitializesampletimes The sample time of the S-function is set to a continuous sample time with offset 0. mdlinitializeconditions The initial values for the state variables from the S- function are obtained from the valuation from the χ process, using the variable mapping as defined in function mdlinitializesizes. mdloutputs The values of the discrete and continuous variables and the variable time are copied to the corresponding output variables. If the simulation step is a major time-step, it is determined whether a time event occurred. mdlupdate If the mdlupdate function is called for the first time (ssisfirstinitcond(s) holds, where S denotes the Sim- Struct), the χ process is simulated using the DE + simulator. If a time event occurred (IsTimeEvent holds), which is determined in function mdloutputs, the resulting process is obtained using the end-valuation of the time transition (EndState(TimeStep)). After that, this process is simulated using the DE + simulator. Using pseudo code, the implementation of function mdlupdate is as follows: if ssisfirstinitcond(s) then TimeStep := Simulate(M) else if IsTimeEvent then TimeStep := Simulate(EndState(TimeStep)) endif endif mdlderivatives The equality conditions from the time step are used to obtain the values for the derivatives of the continuous state variables of the S-function. The χ model is restricted in such way that these equality equations together form an ODE. Using pseudo code, the implementation of function mdlderivatives is as follows: Equations := GetEquations(TimeStep), where function GetEquations projects the equalities from a time step. mdlzerocrossings The inequality conditions (zero-crossing conditions) are obtained from the time step. Using pseudo code, the implementation of function mdlzerocrossings is as follows: ZeroCrossings := GetZeroCrossings(TimeStep), where function GetZeroCrossings projects the inequalities from a time step. mdlterminate Using this function stops the Python interpreter and closes the pipes. 5 Example The bottle filling system as shown in Figure 5 consists of a liquid storage tank, two identical bottle filling lines, and a bottle supply (see [6]). Q Fl Q u V Q a Fig. 5 The bottle filling system. Q Fr The bottles are filled with liquid from the storage tank. A control system keeps the volume V in the storage tank between 2 and 10. The liquid supply processes is not modeled, since we consider the liquid always to be available, and we are not interested in the amount of liquid that is used. The Simulink model of the bottle filling system is shown in Figure 6. The dynamics of the liquid storage tank are modelled in Simulink. The volume controller is modelled in χ, see below: model VC(input V : real)= [ var beta : nat = 0 :: *( V <= 2.0 -> beta := 1 ; V >= > beta := 0 ) ] The behavior of the volume controller VC is explained as follows. Initially, the volume V in the storage tank equals 10. If the volume drops below the minimum
9 1.5 Qsetu Subtract Vdot beta chi_sfunction Volume controller Chi 1 s Integrator Qu V ], filling = QF:=1.0 ; ( V <= 0.5 -> QF := 0.0 ; stopped Vb >= 1.0 -> QF := 0.0 ; finished ), finished = n := n - 1 ; ( n = 0 -> get_crate n >= 1 -> Vb := 0.0 ; filling ), stopped = V >= 0.7 -> filling :: get_crate ] proc Bottle_Supply(chan bottles! : nat) = [ *( bottles!6; delay 5.0 ) ] Vb_l Vb_r QF_l QF_r Vb_l Vb_r chi_sfunction Filling Lines Chi Fig. 6 Simulink model of the bottle filling system. value 2 (V<=2), the valve is opened (beta:=1) so that liquid is added into the tank. The valve is closed (beta:=0) when the volume in the tank equals 10 again. The liquid storage tank and the two bottle filling lines are connected by means of the variables QF l, and QF r representing the flows between the left and the right filling lines, respectively. The volume of the storage tank is available in both bottle filling lines to prevent filling of the bottles when the storage tank is empty. The filling lines are modelled in χ, see below: model FillingLines(input V : real)= [ var QF_l : real = 0.0, QF_r : real = 0.0, cont Vb_l : real = 0.0, Vb_r : real = 0.0, chan bottles : nat :: CLine(Vb_l, QF_l, bottles, 0.0) CLine(Vb_r, QF_r, bottles, 5.0) Bottle_Supply(bottles) ] proc CLine ( cont Vb : real, var QF : real, chan bottles? : nat, val Vset : real ) = [ var n : nat = 0 :: Vb = QF [ mode get_crate = V >= Vset -> bottles?n ; Vb := 0.0 ; filling Model FillingLines consists of two controlled filling lines CLine(Vb l, QF l, bottles, 0.0), CLine(Vb r, QF r, bottles, 5.0) and a bottle supply process Bottle Supply(bottles). Repeatedly the bottle supply process sends 6 bottles via channel bottles (bottles!6), and 5 time units later (delay 5.0), it tries to send 6 bottles again. The behavior of a controlled filling line CLine is explained as follows. In mode get crate, the process waits until the volume in the storage tanks exceeds Vset, and a new crate of bottles arrives, (bottles?n, where n denotes the number of bottles in a crate). Then, the bottle volume is reset to 0 resulting in mode filling. In mode filling, the valve is opened (QF:=1.0) starting the filling process. Filling stops when the volume in the storage tank drops below 0.5 (V <= 0.5 -> QF := 0.0; stopped). In mode stopped, filling resumes when the volume in the storage tank is at least 0.7 (V >= 0.7 -> filling). Filling also stops when the bottle is full (Vb >= 1.0 -> QF := 0.0; finished). In mode finished, the number of bottles to be filled (modelled by variable n) is decreased by 1. If the number of bottles equals 0, a new crate is requested, otherwise the bottle volume is reset, and filling of the new bottle is started. Figures 7 and 8 show the simulation results for the volume V in the liquid storage tank and the incoming flow Q u, respectively. 6 Conclusions In this paper, we presented a framework to simulate models that consist of subsystems modelled using Matlab Simulink and subsystems modelled in the hybrid process algebra Chi (χ). Its implementation and its use is illustrated by means of a bottle filling system example. Future work entails, amongst others, to explore the possibilities of using this approach in a real-time setting using Matlab Simulinks Real-Time-Workshop. The S- function approach, as described in this paper, also enables co-simulation with other simulators that can interface with S-functions. For instance, in the HYCON
10 V Q u time Fig. 7 Volume V in the liquid storage tank time Fig. 8 Incoming flow Q u. NoE, the Modelica language [14, 15] will be extended with an interface to simulate S-functions. In the Darwin project, by means of co-simulation, the integrated models of the components of the patient support table can be validated against the system requirements and design. 7 References [1] HYCON Network of Excellence [2] Darwin project [3] N. C. W. M. Braspenning, J. M. van de Mortel- Fronczak, and J. E. Rooda. A model-based integration and testing method to reduce system development effort. Electronic Notes in Theoretical Computer Science, 164:13 28, [4] The MathWorks, Inc. Using Simulink, version [5] D. A. van Beek, K. L. Man, M. A. Reniers, J. E. Rooda, and R. R. H. Schiffelers. Syntax and consistent equation semantics of hybrid Chi. Journal of Logic and Algebraic Programming, 68(1-2): , [6] K. L. Man and R. R. H. Schiffelers. Formal Specification and Analysis of Hybrid Systems. PhD thesis, Eindhoven University of Technology, [7] The MathWorks, Inc. Writing S-functions, version [8] Gordon D. Plotkin. A structural approach to operational semantics. Journal of Logic and Algebraic Programming, 60-61:17 139, [9] D. A. van Beek, K.L. Man, M. A. Reniers, J. E. Rooda, and R. R. H. Schiffelers. Deriving simulators for hybrid Chi models. In IEEE International Symposium on Computer-Aided Control Systems Design, pages 42 49, Munich, Germany, IEEE. [10] MapleSoft [11] Python [12] Brian W. Kernighan and Dennis M. Ritchie. The C programming language. Prentice Hall, second edition, [13] W. Richard Stevens. Advanced programming in the unix environment. Addison Wesley, [14] Sven Erik Mattsson, Martin Otter, and Hilding Elmqvist. Modelica hybrid modeling and efficient simulation. In 38th IEEE Conference on Decision and Control, pages , [15] Modelica Association. Modelica - A Unified Object-Oriented Language for Physical Systems Modeling
MATLAB/Simulink TCP/IP Communication
MATLAB/Simulink TCP/IP Communication MARTIN SYSEL Department of Computer and Communication Systems Faculty of Applied Informatics Tomas Bata University in Zlín nám. T. G. Masaryka 5555, 760 01 Zlín CZECH
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
6. European SystemC Users Group Meeting
6. European SystemC Users Group Meeting Modelling Cycle-Accurate Hardware with Matlab/Simulink using SystemC Frank Czerner, TechnoTeam Bildverarbeitung GmbH Ilmenau Jens Zellmann, Institute of Microelectronic
Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism
Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Composability Gary R. Mayer [email protected] Hessam S. Sarjoughian [email protected] Arizona Center for Integrative Modeling
A Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK [email protected] Abstract. Contracts have proved a powerful concept
Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha
Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry
Model-Driven Software Development for Robotics: an overview
Model-Driven Software Development for Robotics: an overview IEEE-ICRA2011 Workshop on Software Development and Integration in Robotics Jan F. Broenink, Maarten M. Bezemer Control Engineering, University
Hybrid Modeling and Control of a Power Plant using State Flow Technique with Application
Hybrid Modeling and Control of a Power Plant using State Flow Technique with Application Marwa M. Abdulmoneim 1, Magdy A. S. Aboelela 2, Hassen T. Dorrah 3 1 Master Degree Student, Cairo University, Faculty
Modeling Techniques, Programming Languages, and Design Toolsets for Hybrid Systems
Modeling Techniques, Programming Languages, and Design Toolsets for Hybrid Systems Luca P. Carloni, Maria Domenica DiBenedetto, Roberto Passerone, Alessandro Pinto and Alberto Sangiovanni-Vincentelli Abstract
Using UML Part Two Behavioral Modeling Diagrams
UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,
Origins of Operating Systems OS/360. Martin Grund HPI
Origins of Operating Systems OS/360 HPI Table of Contents IBM System 360 Functional Structure of OS/360 Virtual Machine Time Sharing 2 Welcome to Big Blue 3 IBM System 360 In 1964 IBM announced the IBM-360
Improving Interoperability in Mechatronic Product Developement. Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic
International Conference on Product Lifecycle Management 1 Improving Interoperability in Mechatronic Product Developement Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic PROSTEP AG Dolivostr.
Object Oriented Programming. Risk Management
Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling
Architecture Design & Sequence Diagram. Week 7
Architecture Design & Sequence Diagram Week 7 Announcement Reminder Midterm I: 1:00 1:50 pm Wednesday 23 rd March Ch. 1, 2, 3 and 26.5 Hour 1, 6, 7 and 19 (pp.331 335) Multiple choice Agenda (Lecture)
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
OPC COMMUNICATION IN REAL TIME
OPC COMMUNICATION IN REAL TIME M. Mrosko, L. Mrafko Slovak University of Technology, Faculty of Electrical Engineering and Information Technology Ilkovičova 3, 812 19 Bratislava, Slovak Republic Abstract
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
INF5140: Specification and Verification of Parallel Systems
INF5140: Specification and Verification of Parallel Systems Lecture 7 LTL into Automata and Introduction to Promela Gerardo Schneider Department of Informatics University of Oslo INF5140, Spring 2007 Gerardo
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
MODELING, SIMULATION AND DESIGN OF CONTROL CIRCUIT FOR FLEXIBLE ENERGY SYSTEM IN MATLAB&SIMULINK
MODELING, SIMULATION AND DESIGN OF CONTROL CIRCUIT FOR FLEXIBLE ENERGY SYSTEM IN MATLAB&SIMULINK M. Pies, S. Ozana VSB-Technical University of Ostrava Faculty of Electrotechnical Engineering and Computer
Feasibility of a Software Process Modeling Library based on MATLAB / Simulink
Feasibility of a Software Process Modeling Library based on MATLAB / Simulink T. Birkhoelzer University of Applied Sciences Konstanz, Braunegger Str. 55, 7846 Konstanz, Germany, [email protected]
Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN
Acknowledgments Introduction to SPIN Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck Ralf Huuck COMP 4152 1 Ralf Huuck COMP 4152 2 PROMELA/SPIN PROMELA (PROcess MEta
DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING
DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING Fall 2000 The instructions contained in this packet are to be used as a guide in preparing the Departmental Computer Science Degree Plan Form for the Bachelor's
METHODOLOGICAL CONSIDERATIONS OF DRIVE SYSTEM SIMULATION, WHEN COUPLING FINITE ELEMENT MACHINE MODELS WITH THE CIRCUIT SIMULATOR MODELS OF CONVERTERS.
SEDM 24 June 16th - 18th, CPRI (Italy) METHODOLOGICL CONSIDERTIONS OF DRIVE SYSTEM SIMULTION, WHEN COUPLING FINITE ELEMENT MCHINE MODELS WITH THE CIRCUIT SIMULTOR MODELS OF CONVERTERS. Áron Szûcs BB Electrical
An Automated Workflow System Geared Towards Consumer Goods and Services Companies
Proceedings of the 2014 International Conference on Industrial Engineering and Operations Management Bali, Indonesia, January 7 9, 2014 An Automated Workflow System Geared Towards Consumer Goods and Services
AN EXCHANGE LANGUAGE FOR PROCESS MODELLING AND MODEL MANAGEMENT
AN EXCHANGE LANGUAGE FOR PROCESS MODELLING AND MODEL MANAGEMENT Huaizhong Li C. Peng Lam School of Computer and Information Science Edith Cowan University, Perth, WA 6050, Australia email: {h.li,[email protected]}
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
Process Modelling from Insurance Event Log
Process Modelling from Insurance Event Log P.V. Kumaraguru Research scholar, Dr.M.G.R Educational and Research Institute University Chennai- 600 095 India Dr. S.P. Rajagopalan Professor Emeritus, Dr. M.G.R
SMock A Test Platform for the Evaluation of Monitoring Tools
SMock A Test Platform for the Evaluation of Monitoring Tools User Manual Ruth Mizzi Faculty of ICT University of Malta June 20, 2013 Contents 1 Introduction 3 1.1 The Architecture and Design of SMock................
Model-based integration and testing of high-tech multi-disciplinary systems
Model-based integration and testing of high-tech multi-disciplinary systems Niels Braspenning Asia van de Mortel-Fronczak Koos Rooda Systems Engineering Group Mechanical Engineering Department Eindhoven
Product Development Flow Including Model- Based Design and System-Level Functional Verification
Product Development Flow Including Model- Based Design and System-Level Functional Verification 2006 The MathWorks, Inc. Ascension Vizinho-Coutry, [email protected] Agenda Introduction to Model-Based-Design
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework
Software Engineering
Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in
Six Strategies for Building High Performance SOA Applications
Six Strategies for Building High Performance SOA Applications Uwe Breitenbücher, Oliver Kopp, Frank Leymann, Michael Reiter, Dieter Roller, and Tobias Unger University of Stuttgart, Institute of Architecture
Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.
Overview Concepts of Mobile Operating Systems Lecture 11 Concepts of Mobile Operating Systems Mobile Business I (WS 2007/08) Prof Dr Kai Rannenberg Chair of Mobile Business and Multilateral Security Johann
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
CPS122 Lecture: State and Activity Diagrams in UML
CPS122 Lecture: State and Activity Diagrams in UML Objectives: last revised February 14, 2012 1. To show how to create and read State Diagrams 2. To introduce UML Activity Diagrams Materials: 1. Demonstration
Model Simulation in Rational Software Architect: Business Process Simulation
Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation
Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011
Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions
Chapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
Compliance and Requirement Traceability for SysML v.1.0a
1. Introduction: Compliance and Traceability for SysML v.1.0a This document provides a formal statement of compliance and associated requirement traceability for the SysML v. 1.0 alpha specification, which
The Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
Test Coverage Criteria for Autonomous Mobile Systems based on Coloured Petri Nets
9th Symposium on Formal Methods for Automation and Safety in Railway and Automotive Systems Institut für Verkehrssicherheit und Automatisierungstechnik, TU Braunschweig, 2012 FORMS/FORMAT 2012 (http://www.forms-format.de)
Lumousoft Visual Programming Language and its IDE
Lumousoft Visual Programming Language and its IDE Xianliang Lu Lumousoft Inc. Waterloo Ontario Canada Abstract - This paper presents a new high-level graphical programming language and its IDE (Integration
A Tool for Generating Partition Schedules of Multiprocessor Systems
A Tool for Generating Partition Schedules of Multiprocessor Systems Hans-Joachim Goltz and Norbert Pieth Fraunhofer FIRST, Berlin, Germany {hans-joachim.goltz,nobert.pieth}@first.fraunhofer.de Abstract.
Performance analysis of a Linux based FTP server
Performance analysis of a Linux based FTP server A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Technology by Anand Srivastava to the Department of Computer Science
Real Time Market Data and Trade Execution with R
Real Time Market Data and Trade Execution with R Jeffrey A. Ryan April 5, 2009 Contents 1 Introduction to Real Time Processing in R 2 1.1 Socket Connections in R....................... 2 1.1.1 Overview...........................
MOSILAB: Development of a Modelica based generic simulation tool supporting model structural dynamics
MOSILAB: Development of a Modelica based generic simulation tool supporting model structural dynamics Christoph Nytsch-Geusen (Contact: [email protected]) Thilo Ernst, André Nordwig Peter Schneider,
Programming Languages & Tools
4 Programming Languages & Tools Almost any programming language one is familiar with can be used for computational work (despite the fact that some people believe strongly that their own favorite programming
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers
Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
Model Engineering using Multimodeling
Model Engineering using Multimodeling Christopher Brooks (UC Berkeley) Chih-Hong Cheng (UC Berkeley & TU Munich) Thomas Huining Feng (UC Berkeley) Edward A. Lee (UC Berkeley) Reinhard von Hanxleden (Christian-Albrechts-Univ.
UML for the C programming language.
Functional-based modeling White paper June 2009 UML for the C programming language. Bruce Powel Douglass, PhD, IBM Page 2 Contents 2 Executive summary 3 FunctionalC UML profile 4 Functional development
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur
Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between
Introduction. 1.1 Motivation. Chapter 1
Chapter 1 Introduction The automotive, aerospace and building sectors have traditionally used simulation programs to improve their products or services, focusing their computations in a few major physical
Getting off the ground when creating an RVM test-bench
Getting off the ground when creating an RVM test-bench Rich Musacchio, Ning Guo Paradigm Works [email protected],[email protected] ABSTRACT RVM compliant environments provide
From Control Loops to Software
CNRS-VERIMAG Grenoble, France October 2006 Executive Summary Embedded systems realization of control systems by computers Computers are the major medium for realizing controllers There is a gap between
Supporting the Workflow Management System Development Process with YAWL
Supporting the Workflow Management System Development Process with YAWL R.S. Mans 1, W.M.P. van der Aalst 1 Department of Mathematics and Computer Science, Eindhoven University of Technology, P.O. ox 513,
Chapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
Writing Applications for the GPU Using the RapidMind Development Platform
Writing Applications for the GPU Using the RapidMind Development Platform Contents Introduction... 1 Graphics Processing Units... 1 RapidMind Development Platform... 2 Writing RapidMind Enabled Applications...
Verification by. Simulation. Verification by. Simulation. Verification by. Simulation / Model Check. Validation and Testing.
Model-Based Software evelopment : Method Co- with contributions of Marcel Groothuis, Peter Visser, Bojan Orlic, usko Jovanovic, Gerald Hilderink Engineering, CTIT, Faculty EE-M-CS,, Enschede, Netherls
Modeling Kahn Process Networks in the Dynamic Dataflow Formalism
Roy Kensmil Page 1 6/20/2013 Modeling Kahn Process Networks in the Dynamic Dataflow Formalism Roy Kensmil Leiden Institute of Advanced Computer Science (LIACS), Leiden, The Netherlands [email protected]
fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany
12 Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany Models of computation considered in this course Communication/ local computations Communicating finite state machines Data flow model
Software Development Principles Applied to Graphical Model Development
Software Development Principles Applied to Graphical Model Development Paul A. Barnard * The MathWorks, Natick, MA 01760, USA The four fundamental principles of good software design communicate clearly,
Algorithms, Flowcharts & Program Design. ComPro
Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of
Aspect Oriented Strategy to model the Examination Management Systems
Aspect Oriented Strategy to model the Examination Management Systems P.Durga 1, S.Jeevitha 2, A.Poomalai 3, Prof.M.Sowmiya 4 and Prof.S.Balamurugan 5 Department of IT, Kalaignar Karunanidhi Institute of
Reusability of WSDL Services in Web Applications
599 Reusability of WSDL Services in Web Applications 1 Jaspreet Singh, 2 Sandeep Saini 1 Assistant Professor Department Of Computer Science & Engineering, Chandigarh University Gharuan, Punjab, India 2
Ontological Identification of Patterns for Choreographing Business Workflow
University of Aizu, Graduation Thesis. March, 2010 s1140042 1 Ontological Identification of Patterns for Choreographing Business Workflow Seiji Ota s1140042 Supervised by Incheon Paik Abstract Business
Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks
Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML
DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM
DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM OVERVIEW ADMISSION REQUIREMENTS PROGRAM REQUIREMENTS OVERVIEW FOR THE DIRECT PH.D. IN COMPUTER SCIENCE The Direct Ph.D. in Computer Science program
Semantic Description of Distributed Business Processes
Semantic Description of Distributed Business Processes Authors: S. Agarwal, S. Rudolph, A. Abecker Presenter: Veli Bicer FZI Forschungszentrum Informatik, Karlsruhe Outline Motivation Formalism for Modeling
Introduction to Simulink & Stateflow. Coorous Mohtadi
Introduction to Simulink & Stateflow Coorous Mohtadi 1 Key Message Simulink and Stateflow provide: A powerful environment for modelling real processes... and are fully integrated with the MATLAB environment.
Appendix... B. The Object Constraint
UML 2.0 in a Nutshell Appendix B. The Object Constraint Pub Date: June 2005 Language The Object Constraint Language 2.0 (OCL) is an addition to the UML 2.0 specification that provides you with a way to
SysML Modelling Language explained
Date: 7 th October 2010 Author: Guillaume FINANCE, Objet Direct Analyst & Consultant UML, the standard modelling language used in the field of software engineering, has been tailored to define a modelling
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
2. Analysis, Design and Implementation
2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,
Load Balancing MPI Algorithm for High Throughput Applications
Load Balancing MPI Algorithm for High Throughput Applications Igor Grudenić, Stjepan Groš, Nikola Bogunović Faculty of Electrical Engineering and, University of Zagreb Unska 3, 10000 Zagreb, Croatia {igor.grudenic,
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
Layered Approach to Development of OO War Game Models Using DEVS Framework
Layered Approach to Development of OO War Game Models Using DEVS Framework Chang Ho Sung*, Su-Youn Hong**, and Tag Gon Kim*** Department of EECS KAIST 373-1 Kusong-dong, Yusong-gu Taejeon, Korea 305-701
Control 2004, University of Bath, UK, September 2004
Control, University of Bath, UK, September ID- IMPACT OF DEPENDENCY AND LOAD BALANCING IN MULTITHREADING REAL-TIME CONTROL ALGORITHMS M A Hossain and M O Tokhi Department of Computing, The University of
Modeling and Verification of Sampled-Data Hybrid Systems
Modeling and Verification of Sampled-Data Hybrid Systems Abstract B. Izaias Silva and Bruce H. Krogh Dept. of Electrical and Computer Engineering, Carnegie Mellon University (Izaias /krogh)@cmu.edu We
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
i. Node Y Represented by a block or part. SysML::Block,
OMG SysML Requirements Traceability (informative) This document has been published as OMG document ptc/07-03-09 so it can be referenced by Annex E of the OMG SysML specification. This document describes
MOCET A Certification Scaffold for Critical Software
MOCET A Certification Scaffold for Critical Software Herbert Hecht SoHaR Incorporated Culver City CA 90230 [email protected] 1. Introduction A common problem besetting certification activities, to whatever
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications Harris Z. Zebrowitz Lockheed Martin Advanced Technology Laboratories 1 Federal Street Camden, NJ 08102
