Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Extra Discussion (http://www.chiefdelphi.com/forums/forumdisplay.php?f=68)
-   -   pic: Encoder Noise (http://www.chiefdelphi.com/forums/showthread.php?t=129839)

notmattlythgoe 20-06-2014 18:40

Re: pic: Encoder Noise
 
Quote:

Originally Posted by Ether (Post 1390603)
Your S4 is less than half the CPR of the OP's and has ball bearings. So the two are not comparable. What works for you won't necessarily work for the OP.

At 7K RPM you are exceeding the speed the FPGA could handle if your S4 were at max tolerance for quadrature phase error:

Code:

Welcome to RLaB. New users type `help INTRO'
RLaB version 2.1.05 Copyright (C) 1992-97 Ian Searle
RLaB comes with ABSOLUTELY NO WARRANTY; for details type `help warranty'
This is free software, and you are welcome to redistribute it under
certain conditions; type `help conditions' for details
>
> format(5);
>
> CPR = 120 # cycles per rev (single channel)
      120
>
> EPRS = 2*CPR # edges per rev (single channel)
      240
>
> EPRQ = 2*EPRS # edges per rev quadrature (both channels)
      480
>
> RPEQ = 1/EPRQ # angular distance (revs) between cross-channel edges
0.0020833
>
> per = 261/40e6 # FPGA sampling period, seconds
6.525e-006
>
> RPS = RPEQ/per # maximum revs per sec
  319.28
>
> RPM = RPS*60 # maximum RPM (revs per minute)
    19157
>
> # angular distance (revs) between cross-channel edges
> # with "typical" tolerance:
>
> RPEQ_TYP = (90-10)/90*RPEQ
0.0018519
>
> RPM_TYP = RPEQ_TYP/per*60
    17029
>
>
> # angular distance (revs) between cross-channel edges with "max" tolerance:
>
> RPEQ_MAX = (90-60)/90*RPEQ
0.00069444
>
> RPM_MAX = RPEQ_MAX/per*60
  6385.7
>
>
> # RPM with no tolerance, typical tolerance, and max tolerance:
> RPM
    19157
> RPM_TYP
    17029
> RPM_MAX
  6385.7
>
>




After thinking about it more we weren't at 7k rpm the encoder was reporting a rate of 7k.

Ether 21-06-2014 17:11

Re: pic: Encoder Noise
 
Quote:

Originally Posted by notmattlythgoe (Post 1390605)
After thinking about it more we weren't at 7k rpm the encoder was reporting a rate of 7k.

7k what?



notmattlythgoe 23-06-2014 08:05

Re: pic: Encoder Noise
 
Quote:

Originally Posted by Ether (Post 1390650)
7k what?



Pulses per second. Which I believe should put it around 875 RPM.

(7000 pules/s / 480 EPRQ) * 60 s = 875 RPM

jhersh 21-08-2014 17:29

Re: pic: Encoder Noise
 
Quote:

Originally Posted by Ether (Post 1390590)
@jhersh: (if you are following this thread) would there be any advantage, tolerance-wise, to change the sample size to an even multiple of 4 (say 12 or 8) so that the averaging would always take place over an integer number of cycles?

It depends on the decoding that you have selected. If you select 1x, you have effectively chosen to always average a full cycle, thus averaging out phase noise, If choosing 2x, then multiples of 2 is advised, and if choosing 4x, multiples of 4 is advised (at least if phase noise is something you would like to eliminate, but its a trade-off). I can't imagine a scenario where selecting 4x and 63 samples averaged is better than 64 averaged. I'd love to hear it if you have thought of one.

Ether 22-08-2014 13:24

Re: pic: Encoder Noise
 
Quote:

Originally Posted by notmattlythgoe (Post 1390586)
...we were decoding in 4x with 10 samples being averaged.

@notmattlythgoe:

if you are still following this thread, you might want to try 8 or 12 samples instead of 10 (see jhersh's post).



notmattlythgoe 22-08-2014 13:46

Re: pic: Encoder Noise
 
Quote:

Originally Posted by Ether (Post 1397611)
@notmattlythgoe:

if you are still following this thread, you might want to try 8 or 12 samples instead of 10 (see jhersh's post).



I saw that, thanks. We'll have to give it a try.


All times are GMT -5. The time now is 22:53.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi