Sie sind auf Seite 1von 4

While Building the SIL model for the Skyhook block following points were

a) The testing for both the MIL (and just the model) and the equivalent SIL system was performed
together in the same model as shown in the Figure 1.
b) The code generation and compilation for the S-Function for the SIL model was successful and the
simulation was working with the test vectors from MBtech (Two signals were missing but instead
two dummy signals were used just to test the working of the SIL model for Skyhook Block).

Figure 1
c) When the same signals were used to drive the MIL model (after enabling the trigger for the
subsystem) of the Skyhook there were errors due to the use of infinity valued constant blocks
settings the limits for the integrator library (Integration_Sollkrfte_Skyhook) from Daimler as
shown in the Figure 2 and Figure 3.

Figure 2
Figure 3
d) The problem was not encountered in the SIL because the Integrator Library subsystem from
Daimler is a virtual subsystem and thus is completely ignored during the code generation. During
the code inspection the internal elements (including the functionality and the "INF" value) were
not found in the ebc_Skyhook.c file.
e) The problem can be mimicked in the code (or SIL) by first right clicking and selecting the
integrator blocks property at "Library Link->Go to Library Block". This leads to the source of this
library and this library can be modified by disabling the link.
f) As shown in the Figure 4 open the subsystem property of the library and click "treat as atomic
subsystem" to make this subsystem as non-virtual for code generation.

Figure 4
g) Next to generate the code for the MX and MN variables (which are the ports getting the infinity
value) the ports must be enhanced as TargetLink block as shown in the Figure 5.
h) Save the library, reload the model and use MaTE to regenerate the code and enable the SIL
system. This time it gives the compilation error (along with MIL) due to the use of INF values for
the variables in the generated code as shown in the Figure 6.

Figure 5

Figure 6

Q) The limit being used is implemented with constant blocks with "inf" and "-inf" values which
gives an error. Is it possible to implement it this way or do we need another way or
implementation to achieve this?
Q) How MBtech was able to do MIL test successfully since they provided us with test vectors with
the same functionality.

Q) Why is the subsystem not treated as atomic and being completely ignored for code generation?
Is it not required and its functionality is irrelevant?