Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 7. openETCS Meta Model<br />
Thus, the oEmbeddedStateMachine objects, which are part of the data flow graph typ<strong>es</strong><br />
gMainFunctionBlock and gSubFunctionBlock, are also executed with the sample time T s<br />
by their parent graph instance. Very similar to the gEVCStateMachine graph type, the<br />
gEmbeddedStateMachine graph type do<strong>es</strong> not provide any temporal behaviour by itself. This<br />
is provided by the decomposition of each oEmbeddedState object to a gSubFunctionBlock<br />
graph. Therefore, the currently active oEmbeddedState object is executed if its parent<br />
oEmbeddedStateMachine object is executed within a data flow graph.<br />
The dynamic semantics of oSubFunction objects can be interpreted in two ways: First, when<br />
they are executed by the data flow graph 15 that they are part of, they only delegate this<br />
execution to the data flows in their decomposition. Second, the content of their decomposition<br />
is virtually copied to the parent graph contenting the oSubFunction object, and that all objects<br />
are executed directly by the parent graph. Actually, the latter interpretation indeed repr<strong>es</strong>ents<br />
the implementation of the domain framework and generator, in which after the graphical<br />
“unrolling” all objects are located in a gMainFunctionBlock, which is executed with a certain<br />
sample time. Neverthel<strong>es</strong>s, the first dynamic semantics interpretation is also valid, and both<br />
corr<strong>es</strong>pond to the provided functionality.<br />
The transformation from an openETCS model with general data flows to a concrete sample<br />
system is done by the generator and the domain framework. The generator defin<strong>es</strong> the<br />
calculation or<strong>der</strong> in each execution step k while the domain framework ensur<strong>es</strong> that those are<br />
executed in equidistant time points t with a fixed sample time T s . The concrete value for T s is<br />
not defined in the model but in the domain framework. Related to the definition of control<br />
loops, this can arise severe problems related to stability because the sample time directly<br />
influenc<strong>es</strong> the parameters of a controller [30]. Simplified expr<strong>es</strong>sed, if a control loop with the<br />
same parameters is stable for T s , it can be unstable for T s ′ (with T s ≠ T s). ′ Therefore, it must<br />
be emphasised that the openETCS meta model is not specialised for building control loops in<br />
the meaning of control theory but for defining control functions for ETCS. In addition, concrete<br />
control loop issu<strong>es</strong> are handled directly in the domain framework d<strong>es</strong>ign and implementation.<br />
7.7. Mathematical Model of the Dynamic Semantics<br />
The preceding sections Section 7.2, Section 7.3, and Section 7.5 introduced the concrete<br />
syntax and static semantics but did not explain how the correctn<strong>es</strong>s of model instanc<strong>es</strong> can<br />
be ensured in an analytical way. One possibility is to transform the dynamic semantics to<br />
a mathematical model, which certain properti<strong>es</strong> can be analysed and proven for. Because<br />
some graph typ<strong>es</strong> use very similar syntax and semantics, those can be grouped for defining<br />
corr<strong>es</strong>ponding mathematical models in equivalence groups:<br />
data flows<br />
state machin<strong>es</strong><br />
gMainFunctionBlock, gSubFunctionBlock, gCommunicationRea<strong>der</strong>, gCommunicationSen<strong>der</strong><br />
gEVCStateMachine, gEmbeddedStateMachine, gMainFunctionBlock / oApplicationLevelType<br />
15 gMainFunctionBlock or gSubFunctionBlock graph<br />
110