How do I know how many counts per revolution I need for an encoder for my application?

I need to be able to accurately capture a 1000 Hz signal on an input side running from 1-133 rev/sec (60-8000 RPM) and a 1000 Hz signal on an output side with gear ratio 1:100, so speeds are .01-1.33 rev/sec (.6 – 80 RPM).

Here is the math I have but am not sure if it is correct:

For a 1000 Hz signal, it takes .001 sec for one period. But if I want to accurately capture this and accurately obtain velocity from this position data, I need 100 counts (is this a good assumption? what would be a better value?). Hence, I need 100/.001 = 100,000 cts/sec. Now, if I divide this by my rev/sec, I’ll get cts/rev which is what encoders are rated at. Assuming input is running at 10 rev/sec, I need 100,000/10 = 10,000 cts/rev. Assuming output is running at .1 rev/sec, I need 1,000,000 cts/rev.

I strongly suspect my math is incorrect however because the best encoders that meet the speed requirement of my application are 1024 cts/rev for input and 72,000 cts/rev for output. Would these cts/rev actually be good enough for my application then?

For context, I need to obtain the Bode plot of a gear drive and hence plan to give sinusoidal inputs to my motor. I do not expect this the bandwidth of my gear drive to be more than 1000 Hz, but since I am not sure what it’s exact number is, I would like my design to be capable of accurately measuring a 1000 Hz signal. This sinusoid will be in terms of velocity which is why I want to obtain velocity data. Also, I know it may seem odd that I am using position first and then getting velocity rather than getting velocity directly, but I want this system to be capable of positional control so I would like to only use position sensors if possible.

TLDR: How many position counts are needed to get an accurate velocity reading? How many position counts per revolution do you need to capture velocity changing at a frequency of 1000 Hz?

submitted by /u/hydreichomp

[link] [comments]