ROTATIONAL SPEED ESTIMATION METHOD FOR INCREMENTAL ENCODER
20240418741 ยท 2024-12-19
Assignee
Inventors
- Ming-Tsan Lin (Keelung City, TW)
- Yl-Shiang Ouyang (Miaoli County, TW)
- Zi-Xuan Huang (Nantou County, TW)
Cpc classification
International classification
Abstract
A rotational speed estimation method for an incremental encoder includes generating a plurality of pulse signals according to a plurality of square waves, detecting a time duration when the pulse signals reach a predetermined amount, and generating a rotational speed of a disc according to the predetermined amount, the time duration, and the total number of pulses corresponding to one rotation of the disc of the incremental encoder.
Claims
1. A rotational speed estimation method for an incremental encoder, comprising: generating a plurality of pulse signals according to a plurality of square waves; detecting a time duration for the plurality of pulse signals to reach a predetermined number; and generating a rotational speed of the incremental encoder according to the predetermined number, the time duration, and a total pulse number generated by one rotation of a disc of the incremental encoder.
2. The method of claim 1, wherein detecting the time duration for the plurality of pulse signals to reach the predetermined number comprises: using a direct memory access (DMA) to access a start time and an end time of generating the plurality of pulse signals.
3. The method of claim 2, wherein detecting the time duration for the plurality of pulse signals to reach the predetermined number further comprises: generating the time duration based on the start time and the end time.
4. The method of claim 1, further comprising generating the predetermined number according to a pulse number of the pulse signals, and the number of rotations of the disc for generating the pulse number of the pulse signals.
5. The method of claim 1, further comprising generating the predetermined number according to a pulse number of the pulse signals, the number of rotations of the disc for generating the pulse number of the pulse signals, and a compensation value.
6. The method of claim 1, further comprising: generating the square waves according to a plurality of light sources and a plurality of light sensors.
7. The method of claim 1, wherein generating the plurality of pulse signals according to the square waves comprises: generating the pulse signals according to a first square wave and a second square wave, the second square wave having a same period as the first square wave, and a phase difference between the second square wave and the first square wave being 90 degrees.
8. A rotational speed estimation method for an incremental encoder, comprising: generating a plurality of pulse signals according to a plurality of square waves; detecting a plurality of time durations for the plurality of pulse signals to reach a predetermined number; and generating a rotational speed of the incremental encoder according to the predetermined number, a sum of the time durations, and a total pulse number generated by one rotation of a disc of the incremental encoder.
9. The method of claim 8, further comprising: generating the square waves according to a plurality of light sources and a plurality of light sensors.
10. The method of claim 8, wherein generating the plurality of pulse signals according to the square waves comprises: generating the pulse signals according to a first square wave and a second square wave, the second square wave having a same period as the first square wave, and a phase difference between the second square wave and the first square wave being 90 degrees.
11. The method of claim 8, further comprising: accessing the plurality of time durations using a plurality of direct memory accesses (DMA).
12. The method of claim 8, further comprising summing the plurality of time durations to generate the sum of the time durations.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] Encoders can be classified into three types based on the principle of signal generation: mechanical, magnetic and optical. The optical type encoder, in particular, has a disc that spins in synchronization with the main shaft, and is sandwiched between light sources and light sensors. The disc has alternating transparent and opaque regions, enabling the light sensors to generate data for a microprocessor to determine the number of rotations of the disc.
[0017] The encoders can be classified into absolute encoders and incremental encoders based on the encoding methods. An incremental encoder operates by using a first signal A and a second signal B that have a 90-degree phase difference therebetween, resulting in four combinations at output terminals. The four combinations of the first signal A and the second signal B are (0, 0), (0, 1), (1, 1), (1, 0) respectively, enabling the high and low levels of the first signal A and the second signal B to be converted into pulses that correspond to the number of rotations of the disc. Assuming that a rotation of the disc corresponds to 600 pulses, then the disc performs 1/600 rotation when the first signal A and the second signal B changes from (0,0) to (0,1).
[0018] An embodiment of the invention presents a method for estimating the rotational speed of an incremental encoder.
[0019]
[0020]
[0021] When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) is stored in the microprocessor 100. When the timer 130 starts timing, the time is reset to 0. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the microprocessor 100 can instruct the timer 130 to stop timing when the number of pulses reaches the predetermined number of pulses
[0022] Upon the timer 130 stopping the timing, the time recorded by the timer 130 is the end time Td, and the microprocessor 100 can use the end time Td, the total number of pulses P.sub.T for one turn of the disc 140, the number of pulses N, and the predetermined number of pulses P.sub.r to generate the rotational speed
of the disc 140.
[0023] In another embodiment of the present invention, suppose the microprocessor 100 sequentially calculates the rotational speeds of the disc 140 as .sub.1, .sub.2, . . . , .sub.n, if the slope of .sub.1, .sub.2, . . . , .sub.n obtained by linear regression
is a negative value, then the disc is decelerating, where
[0024] When the timer 130 stops timing, the time recorded by the timer 130 is the end time Td, and the microprocessor 100 can use the end time Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed
of the disc 140.
[0025] In another embodiment of the present invention, a method for estimating the rotational speed of an incremental encoder is provided. When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc, and the starting time Ta is stored into the DMA 110 or another memory. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) is stored in the microprocessor 100. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the DMA 110 may record the end time Tb of the timer 130 in the memory when the number of pulses reaches the predetermined number of pulses
[0026] The microprocessor 100 can generate an elapsed time duration Td=TbTa according to the start time Ta and the end time Tb. The microprocessor 100 can use the elapsed time duration Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed
of the disc 140.
[0027] In another embodiment of the present invention, suppose the microprocessor 100 sequentially calculates the rotational speeds of the runner 140 as .sub.1, .sub.2, . . . , .sub.n, if the slope of .sub.1, .sub.2, . . . , .sub.n obtained by linear regression
is a negative value, then the disc is decelerating, where
[0028] The microprocessor 100 can generate an elapsed time duration Td=TbTa according to the start time Ta and the end time Tb. The microprocessor 100 can use the elapsed time duration Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed
of the disc 140.
[0029] In yet another embodiment, the invention presents a method for estimating the rotational speed of an incremental encoder.
[0030]
[0031] The microprocessor 100 can set the first timer 420 to calculate the time duration of each pulse signal, prompting the DMA 110 to store the time durations in a loop. The length of the DMA 110 is equal to the total number of pulses P.sub.T generated by one turn of the disc 140. When the second timer 430 starts to time, the initial count value N0 is recorded in the DMA 110, followed by the ending count value N1 at the end of the timing period. The number of complete pulses during the timing period Tc is given by m=N1-N0-2. By summing all the pulse periods from N0+2 to N1 memory segments, the elapsed time duration Td of m pulses can be obtained, and the microprocessor 100 uses pulse number m, the elapsed time duration Td of the m pulses and total pulse number P.sub.1 in one turn of the disc 140 to generate the rotational speed
of the disc 140.
[0032] Consider the embodiment in
[0033] Therefore, when calculating the number of pulses m where m=N1-N0-2, the microprocessor 100 adds up the pulse time durations recorded in the access units from p3 to m+3 of the DMA 110 to obtain the elapsed time duration Td. The microprocessor 100 can then generate the rotational speed
of the disc 140 according to the pulse number m, the elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.
[0034]
of the disc 140 according to the predetermined number (P.sub.rN1), elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.
[0038]
of the disc 140 according to the predetermined number m=(N1-N0-2), the elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.
[0042] In the embodiments of the present invention, the timer is used to calculate the exact elapsed time duration Td and the number of complete pulses, thereby addressing the issues of the traditional estimation method and satisfying both high-speed and low-speed applications. The embodiment of the present invention is not only applicable to the estimation of the speed/position of the disc 140, but can also be used for measuring and recording pulses and pulse intervals. In addition to generating a plurality of pulse signals through the first signal A and the second signal B, a plurality of pulse signals can be generated using more than two square wave signals.
[0043] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.