Sometimes the sample time that you measure from your model is not equal to the sample time that you requested. This difference depends on your target computer. Your model sample time is as close to your requested time as the target computer CPU allows.

Digital processing does not allow infinite precision in setting the spacing between the timer interrupts. This limitation can cause the divergent sample times.

For the supported target computers, the only timer that can
generate interrupts is based on a 1.193-MHz clock. For the
Simulink^{®}
Real-Time™ system,
the timer is set to a fixed number of ticks of this frequency between
interrupts. If you request a sample time of 1/10000 seconds, or 100
microseconds, you do not get exactly 100 ticks. Instead, the
Simulink
Real-Time software
calculates that number as:

100 x 10^{-}^{6}s X 1.193 x 10^{6}ticks/s = 119.3 ticks

The Simulink Real-Time software rounds this number to the nearest whole number, 119 ticks. The actual sample time is then:

119 ticks/(1.193 X 10^{6}ticks/s) = 99.75 X 10^{-6}s (99.75 microseconds)

Compared to the requested original sample time of 100 microseconds, this value is 0.25% faster.

As an example of how you can use this value to derive the expected deviation for your target computer, assume the following:

Output board that generates a 50 Hz sine wave (expected signal)

Sample time of 1/10000

Measured signal of 50.145 Hz

The difference between the expected and measured signals is
0.145 Hz, which deviates from the expected signal value by 0.29% (```
0.145
/ 50
```

). Compared to the previously calculated value of 0.25%,
there is a difference of 0.04% from the expected value.

If you want to refine the measured deviation for your target computer, assume the following:

Output board that generates a 50 Hz sine wave (expected signal)

Sample time of 1/10200

Measured signal of 50.002 Hz:

1/10200 s X 1.193 x 10

^{6}ticks/s = 116.96 ticks

Round this number to the nearest whole number of 117 ticks. The resulting frequency is then:

(116.96 ticks/117)(50) = 49.983 Hz

The difference between the expected and measured signal is 0.019,
which deviates from the expected signal value by 0.038% (```
0.019
/ 50.002
```

). When the sample time is 1/10000, the deviation
is 0.04%.

Some amount of error is common for most computers. The margin of error varies from machine to machine.

Most high-level operating systems, like Microsoft^{®} Windows^{®} or Linux^{®},
occasionally insert extra long intervals to compensate for errors
in the timer. The
Simulink
Real-Time software does not attempt to compensate
for timer errors. For this product, close repeatability is more important
for most models than exact timing. However, sometimes chips have inherent
designs that produce residual jitters that can potentially change
your system behavior. For example, some Intel^{®} Pentium chips produce
residual jitters on the order of 0.5 microseconds from interrupt to
interrupt.

Was this topic helpful?