Stimuli Model

The Stimuli Model contains stimulus and clock objects.

Stimuli

A stimulus is responsible to activate processes. The following different types are available:

Single

Single allows to specify an activation at a single relative point in time. The single activation occurs after the time units specified by occurrence.

Arrival Curves

An arrival curve is described as a list of time-borders in which a specified number of activations are expected. The picture below shows an example for this. In the first picture there is a number of occurrences on a timeline.

In the picture below every distance between two activations is measured. The minimum and the maximum distance is added to the table as time-border for the occurrence of two activations. This means that after one activations there has to be at least a gap of one time-unit before the next activations can occur. It also means that there will be always a second activations within eight time units after the last activations. Basically this would be enough to describe an Arrival Curve Stimulus. But it is possible to create a more precise stimulus by describing additional time borders for greater number of occurrences. This is shown in the steps below.

The same as for two activations in the picture above is done here for three activations. Like already mentioned above, this is an additional restriction for occurrence of an activations.

And for four activations:

The picture below shows the table as arrival curve graph. The red line is the upper-time-border that shows the latest time where the activations will occur. The green line shows the earliest possible time where the activations can occur.

Common properties of fixed periodic stimuli

The abstract class FixedPeriodic defines the common attributes of Periodic, PeriodicSynthetic and PeriodicBurst. In general all period based Stimuli specify periodic occurrences based on an offset and a recurrence. The first occurrence happens after the time units specified by offset, and then every following occurrence happens after the time units specified by recurrence. This means, in general, an occurrence of instance i is happening at time t = offset + i * recurrence.

The following figure shows a Periodic Stimulus example with only a fix offset and recurrence time.

Periodic

In addition to the standard periodic behavior the Periodic Stimulus can be extended by a Jitter e.g. an Gaussian deviation. The activation time of each occurrence jitters according to the values of the distribution as depicted in the following figure. Depending on the Jitter distribution the upper bound of the current and the lower bound of the next activation can be close to each other or even overlap. The minDistance value allows the user to define the minimum distance between the current and the next activation.

The recurrence of a Periodic Stimulus is absolute. This means that a recurrence of 10ms points exactly to the next activation every 10ms. The Jitter describes the deviation of the occurrence around this absolute value.

PeriodicSynthetic

PeriodicSynthetic allows to specify a periodic activation of trigger patterns. It is defined by a list of List of occurrenceTimes, a period recurrence, and an offset. Each time value in occurrenceTimes specifies a single activation at a relative point in time. The moment in time these time values are relative and is defined the following way: an activation of instance i is triggered at time t = offset + floor(i / m) * recurrence + occurrenceTimes[i modulo m].

The following figure shows a Synthetic Stimulus example with two periodic activations after the time units T1 and T2.

PeriodicBurst

The PeriodicBurst Stimulus specifies a set of burst activations that are periodically repeated. This means that multiple activations occur very close to each other and this recurs in a periodic matter. The burst pattern has a fixed recurrence period and every burst results in multiple activations.

The number of occurrences per burst are specified via occurrenceCount. The occurrenceMinDinstance defines the minimal distance between them. The burstLength defines the maximum time the burst pattern can last. If the number of occurrences multiplied with the minimum distance between activations is bigger than the burstLength only the number of activations that fit into the burstLength are executed.

RelativePeriodic

In contrast to the Periodic Stimulus the RelativePeriodic Stimulus allows to specify relative recurrences. The next activation depends on the current activation time and the added deviation for the next step. The lower and upperBound are specified in the nextOccurrence deviation similar to the Jitter specification in the Periodic Stimulus.

VariableRateStimulus

With the VariableRate Stimulus the description of task activation based on e.g. the crankshaft rotation speed or other adaptive variable rate activations.

The step has to be defined as a base value for the following specifications.

In the deviation occurrencesPerStep the lower and upper frequency of the variable rate are described. The distribution can be used to describe the standard frequency occurrences. The user can describe that the frequency is distributed e.g. uniformly over the complete frequency band or as another example the occurrences happens mostly at the Boundaries of the frequency band that can be specified with the CornerCase samplingType in the distribution.

The user can set maxDecrease and maxIncrease values to describe the number of additional respectively reduced task activations that can occur within a predefined time step. With these values, the maximum acceleration and maximum deceleration of the stimuli can be calculated.

An additional feature for the variableRate Stimulus is the description of simulationScenario that specifies the progression of the variableRate over time.
In contrast to the generic specification via statistical values the scenario defines the computation via the recurrence property that is modified by a factor based on a clock.

Clocks

The clock is a time base which describes the progress of time for one or more variable rate stimuli in relation to global time.
If two equal stimuli have a different time base, the time of task activation can be different. There are different kind of clock functions, the clock sinus function, the clock triangle function and the clock multiplier list. The clock multiplier list is a list of timestamp-multiplier value pairs. Is a specified timestamp arrived, the clock changes to the corresponding multiplier value.

Mode Value List and Execution Condition

It is possible to change mode label values when a stimulus is executed. The mode labels and their new values are stored in the set-mode-value-list. Via an execution-condition modes also determine if a stimulus is executed.

The set-mode-value-list indicates: Each time the stimulus is executed all mode labels in this list are set to the corresponding value.

The execution-condition is used to determine if a stimulus is executed.