next up previous contents
Next: Using a Hilbert transform Up: Tachometers / Frequency Detection Previous: Tooth-to-tooth counting   Contents

Real-world problems with the tooth-to-tooth algorithm. The tooth-to-next-revolution algorithm

The tooth-to-tooth timing algorithm of the previous section looks good, but only because we are using it on simulated sine waves. On real data, it does not fair as well. To understand this, consider that fact that when we see a tachometer tooth come by, that does not tell us the shaft speed, but actually the shaft position. So the tachometer pulses give us a record of $ \theta$, the shaft position angular versus time. Then we differentiate that signal to get velocity. As any good numerical methods book will tell you, differentiation is an ill-conditioned algorithm. That is, a very small change in the input (from noise) will cause a very large change in the output.

There are many different sources of noise that can affect this algorithm, but one of the biggest problem is tooth spacing errors on the tachometer wheel. Consider an example in which 1 tooth out of 60 is 0.07% ahead of where it should be and the tooth two places down is 0.07% behind where is should be. This is the case in 7 for the red trace. The reader can see that there is a +/- 1 RPM spike that happens periodically. For a nominal shaft speed of 45 RPM, this is a 2.2% error in the ouput for a 0.07% error in the input, an amplification of 31 times. Shaft runout and rotating unbalance can also cause problems (green trace).

One often used and straightforward way to correct these problems is to low pass filter the output. Of course, this will introduce some lag time. Another way is to determine the repetitive errors ahead of time (presumably at low speeds where there are no dynamic effects) and then subtract the reptitive errors out. This requires somewhat more computational effort (I personally have never done this, nor found it to be necessary. If anyone has done this, I would like to hear about your application). The way I use most frequently is to take the time difference not between the zero crossings of sucessive teeth but between a tooth's zero crossing and the zero crossing of that same tooth the next time it comes around. Thus the repetitive errors are automatically cancelled out, at the expense of adding one revolution's worth of lag time. At low shaft speeds, one revolution is a long time compared to the lag introduced to the delay of a low pass filter. But at high shaft speeds, it can be much shorter. For example, in Figure 8 at 30 - 40 RPM, a 3 Hz low pass filter gives the better response, but at 500 RPM (Figure 9), the tooth-to-next-revolution algorithm is better. Notice that the speed precision of the tooth-to-next-rev algorithm is worse at higher speeds, as was mentioned in the previous section. This example was using a 10 kHz sample rate.

Figure 7: Real world effects on the tooth-to-tooth algorithm

Figure 8: The tooth to next revolution algorithm versus a low pass filter on the tooth to tooth algorithm for a low speed.

Figure 9: The tooth to next revolution algorithm versus a low pass filter on the tooth to tooth algorithm for a high speed.


next up previous contents
Next: Using a Hilbert transform Up: Tachometers / Frequency Detection Previous: Tooth-to-tooth counting   Contents " . $row['Name'] . " Posted on " . $row['DateTime']; echo "
"; echo $row['Comment']; echo "

"; } echo "
"; ?> Leave a comment on this page:

Name: (optional)
To prove you are not a robot, what is 2+3?

Creative Commons License
This work by Daniel Kiracofe (daniel dot kiracofe at gmail dot com) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License./' $I