BLENDED VELOCITY ESTIMATION

Abstract: A system and method for calculating the speed of a moving member having an output device (24) providing an output periodic signal as a function of displacement of the moving member includes measuring a time duration (44) for a plurality of first periodic occurrences of the output periodic signal to occur. A number of second periodic occurrences of the output periodic signal is also counted in a selected time period (48). A speed of the moving member is calculated as a function of the time duration (44) for the plurality of first periodic occurrences to occur and the number of second periodic occurrences to occur in the selected time period (48).

Description: BLENDED VELOCITY ESTIMATION BACKGROUND OF THE INVENTION The present invention relates to motion control systems. More particularly, the present invention relates to a method and system for estimating a speed of a moving member in the motion control system. In many motion control systems (rotary or linear) , it is necessary to know the speed or velocity of a moving member in order to properly control the moving member. Typically, speed or velocity is determined as a function of displacement of the moving member. For instance, a position sensor, such as an encoder, provides a periodic output signal as a function of displacement. A first method of determining speed of the moving member includes counting the number of occurrences (e.g., edges of a square wave) in a selected time period. This technique can provide accurate estimates of the speed of the moving member particularly when higher speeds are present. However, when the moving member is traveling at a slow rate of speed, less accurate estimates are obtained. A second technique of speed estimation includes measuring the time between successive occurrences of the periodic output signal . This technique provides accurate estimates of the velocity of the moving member when the moving member is traveling slowly. However, at higher rates of speed, less accurate results are obtained. Accordingly, there is an ongoing need to provide an accurate system and method for estimating the speed of a moving member at slow and high rates of speed. SUMMARY OF THE INVENTION A system and method for calculating the speed of a moving member having an output device providing an output periodic signal as a function of displacement of the moving member includes measuring a time duration for a plurality of first periodic occurrences of the output periodic signal to occur. A number of second periodic occurrences of the output periodic signal is also counted in a selected time period. A speed of the moving member is calculated as a function of the time duration for the plurality of first periodic occurrences to occur and the number of second periodic occurrences to occur in the selected time period. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a motion control system. FIG, 2 is a flow chart of a method for calculating the speed of a moving member according to the present invention. FIG. 3 is a signal diagram pictorially illustrating the method of FIG. 2. FIGS. 4A, 4B and 4C are a block diagram of an exemplary edge detection circuit. FIGS. 5A and 5B are a flow chart of an exemplary method for calculating the speed of a moving member. DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS FIG. 1 schematically illustrates a motion control system 10 comprising an electric motor 12 and a motor drive 14. Typically, based on a command input 16, the motor drive 14 provides energization signals 18 to energize stator windings 20 of the electric motor 12. As is well known in the art, energization of the stator windings, in turn, causes movement of a rotor 22. A position sensor 24, such as an encoder, a resolver, Hall Effect switches, or the like, provide a feedback output signal 26 to the motor drive 14 indicative of a position of the rotor 22. The electric motor 12 can be a rotating motor where the rotor 22 rotates relative to the stator windings 20, or a linear motor, wherein the rotor 22 and the stator windings 20 move linearly with respect to each other. It should also be noted that although depicted herein where the moving member comprises a rotor or a stator assembly of the electric motor 12, this is but one exemplary embodiment and that the method and system described below for calculating the speed of a moving member can also be applied to other apparatuses wherein a position sensor provides an output periodic signal as a function of displacement of the moving member. FIG. 3 pictorially illustrates an exemplary feedback signal or output signal 26 of a position sensor 24, comprising an encoder. Generally, the output signal 26 is a periodic signal comprising a square wave that is produced as a function of the position of the rotor 22. In this embodiment, the feedback or output signal 26 comprises periodic signals 26A and 26B. Each periodic signal 26A and 26B is a square wave. Feedback signal 26B is substantially in quadrature with respect to signal 26A (a phase shift of 90°). Use of quadrature feedback signals is well known in the art; however, the present invention is not limited to use of two periodic output signals, but can also be used with a single output signal, or more than two output signals. As appreciated by those skilled in the art, the use of quadrature output signals allows the direction of the moving member (herein rotor 22) to be determined. FIG. 2 illustrates a method 40 for calculating the speed of the moving member using an output periodic signal that is a function of displacement of the moving member. The method 40 includes a step 42 of measuring a time duration 44 (FIG. 3) for a plurality of first periodic occurrences of the output periodic signal 26 to occur. At step 46, a number of second periodic occurrences of the output periodic signal 26 are counted in a selected time period 48. Of course, steps 42 and 46 can be interchanged if desired. At step 50, the speed of the moving member is calculated as a function of the time duration 44 for the plurality of first periodic occurrences to occur and the number of second periodic occurrences to occur in the selected time period 48. In the embodiment illustrated in FIG. 3, the first periodic occurrences and the second periodic occurrences each comprise either rising or falling edges 52 of the feedback signals 26A and 26B. In the illustrated embodiment, all of the edges 52 (periodic occurrences) are used. In other words, each of the first periodic occurrences and each of the second periodic occurrences are the same feature of the output signal 26. However, in other embodiments, the first periodic occurrences could be only rising edges whereas the second periodic occurrences could be only the falling edges, or vice-versa. Likewise, if desired, some of the edges can be skipped. As appreciated by those skilled in the art, many variations can be used. It should also be noted that although illustrated wherein the output periodic signal 26 comprises square waves, analog signals (e.g. sine waves) or other periodic output signals can also be used. For instance, the first periodic occurrences of an analog signal can be when the analog signal reaches a first threshold, while the second periodic occurrences can be when the analog signal reaches the same threshold, or a different threshold. Referring to FIG. 3, the speed of the moving member is calculated as a function of: Speed = K*N/T Eq. 1 where, N is the number of second periodic occurrences in the selected time period 48, T is the measured time duration 44 for the plurality of first periodic occurrences to occur, and K is a scaling value. The scaling value K can be calculated or determined based on each specific application. For instance, the scaling value K can be ascertained by use of the following equation: K = M * P / E Eq. 2 where, M is the maximum value of speed of the moving member, P is the selected time period 48, and E is the number of periodic occurrences in the selected time period 48 at maximum speed. FIGS. 4A, 4B and 4C illustrate a circuit to detect the edges (periodic occurrences) of the output signals 26A and 26B of FIG. 3. In short, the circuit counts the periodic occurrences and provides a running count to a controller 64 (herein a processor) for calculating the time duration 44. The processor 64 includes a module or program 65 that receives the count indicating the occurrence of an edge. The module 65 comprises a set of instructions stored in a processor readable medium. The set of instructions are operable on the processor 64 for counting the number of edges or occurrences in the selected time period 48, which is determined by the processor 64. Similarly, the processor 64 also receives values of a counter indicating the time duration 44 for a fixed number of periodic occurrences to occur. The module 65 of the processor 64 uses the foregoing information in the manner described above to calculate the speed of the moving member. If desired, module 65 can comprise circuitry to process the foregoing information rather than software. Referring to FIG. 4A, signals 26A and 26B are applied to an edge detection and direction circuit 70. Output signals from the edge detection and direction circuit 70 include an output on a signal line 72 indicative of when an edge has occurred whereas an output on signal line 74 is indicative of the current direction of the moving member. Flip-flops 76-79 and logic gates 80 are used to determine whether output signal 26A leads or follows output signal 26B. Gates 82 are used to detect proper edge occurrences . Referring to FIG. 4B, upon the selected occurrences of an edge, a counter 90 is incremented in the embodiment illustrated. The direction output on signal line 74 is also provided to the processor 64, and is further used to control operation of the counter 90. Flip-flop 92 receives the output value indicative of the occurrence of an edge on a signal line 72 and the output value indicative of the direction of the moving member on signal line 74. The flip-flop 92 delays the direction value by one clock cycle, the output of which is provided on signal line 94 as "DIR 1". At this point, it should be noted that an edge selection circuit 100 also receives the output on signal line 72 indicative of the occurrence of an edge. The circuit 100 includes a counter 102, AND gates 104 and a multiplexer 106. The circuit 100 provides a modified signal indicative of edge occurrences wherein an output signal 108 herein denoted as "CNT OK" is provided for every edge that is detected, every other edge that is detected, or every fourth edge that is detected. The signal "CNT OK" is used to increment the counter 90. External command inputs 110 and 112, such as from the processor 64, or from external switches at inputs SI and SO of the multiplexer 106, are used to select whether every edge, every other edge, or every fourth edge will be used to increment the counter 90. Logic gates 120 reset the counter 90 if the direction changes. In the embodiment illustrated, a latch 122 receives the value from the counter 90 indicating the number of edges detected, which is then transferred to the processor 64. A flip-flop circuit 124 provides a "latch" signal having a duration of one clock pulse. When the "latch" signal goes low, the counter 90 is reset and simultaneously, the output values 126 of the counter 90 are provided to the latch 122 for temporary storage. As stated above, the processor 64 determines the fixed sampling period or selected time period 48. Accordingly, periodically, at some fixed rate, the processor 64 will obtain the data from the latch 122. In order to reset the counter 90, the processor 64 will write a "one" to a flip-flop 130, the output of which is provided to a flip-flop 132. The flip-flops 130 and 132 create a "latch" signal 134, which will go low for one clock cycle. The latch signal 134 is provided to OR gate 135, which, in turn, is connected to the "reset" terminal of the counter 90 and to the "enable" terminal of the latch 122. Accordingly, when the latch signal 134 goes low, the counter 90 is reset and the output of the counter 90 is provided to the latch 122. The latch signal 134 is further provided to a flip-flop 140 (FIG. 4C) , which also receives the value indicative of direction from flip-flop 92. The output of flip-flop 144 is provided to the processor 64 and indicates the current direction of the moving member. Flip-flop circuit 150 (FIG. 4C) provides an indication to the processor 64 of any change in direction by the moving member . Referring to FIG. 4C, timing circuit 160 measures the time duration 44 between a selected number of edges as indicated in FIG. 3 as ten edges. Timing circuit 160 includes a counter 162, a latch 164, a multiplexer 166 and a latch 168. Counter 162 is a reference counter having values indicative of a lapsed time. The latch 164 receives at an "enable" input the same signal 108 provided to counter 90 indicative of the occurrence of an edge. The latch 164 thus stores the value of the counter 162 at the occurrence of each edge. At the same time that the value of the edge counter 90 is provided to the latch 122, described above, the value in the latch 164 or the current value of the counter 162 is transferred to the latch 168 through the multiplexer 164. In particular, the current value of the counter 162 is transferred to the latch 168 until the first edge has been detected. Referring back to edge counter 90, the outputs comprise a plurality of signals 126, which are also provided to a gate array indicated at 174, having an output 176. The output 176 is provided as an input to the multiplexer 166. The output of the gate array 174 will be a 1 if no edges have been detected wherein the multiplexer 166 provides the current value of the counter 162 to the latch 168. Once an edge has been detected, the output 176 of the gate array 174 is low, which causes the multiplexer 166 to select the value stored in latch 164, which in turn, is then transferred to latch 168. The processor 64 receives each of the values stored in the latch 168 sequentially and by knowing what each value is indicative of can calculate the time duration 44 between a selected number of edges. The counter 162 can be reset upon a change of direction of the moving member. It should be noted that by passing the current value of the counter 162 to the latch 168 and then subsequently to the processor 64 until the first edge is received, this technique allows measurements of time over a relatively long duration. In this manner, slow speeds of the moving member can be calculated. In summary, the processor receives values indicative of the number of edges from latch 122, the time values of each edge received from the latch 168, whether the direction of the moving member has changed from circuit 150 and the current direction of the moving member from flip-flop 140. FIGS. 5A and 5B illustrate an exemplary method 200 for calculating the speed of the moving member based on these values. Step 202 represents receipt of the values from each of the latches 122 and 168, the circuit 150 and the flip-flop 140. At step 204, the value representative of a change in direction is examined. In the embodiment illustrated, if the value is high, indicating a change in direction, program flow continues to step 206 where it is assumed that the velocity of the moving member is zero. At step 208, the value from latch 168 is stored as "time total" and a shift register is set to 15 at step 210. The method flow is complete for this iteration as represented at step 212. Program flow then returns to step 202 where the values from latches 122 and 168, the circuit 150 and the flip-flop 140 are read once again. As appreciated by those skilled in the art, execution of the method 200 illustrated in FIGS. 5A and 5B occurs frequently, for example, once every 100 microseconds. Since the value indicating a change in direction of the moving member is momentary (e.g. 100 microseconds) , it is safe to assume that the moving member has zero velocity when the value of the change in direction is high. Returning back to decision block 204, if the value indicative of the change in direction of the moving member is low, indicating no change in direction, a value "time change" is calculated at step 220. In effect, the value "time change" is indicative of the time between sequential edges. After the "time change" has been calculated, the time value is saved as "old time" at step 222. At step 224, the value "time total" is incremented according to the following equation: Time Total = Time Total * Time Change * 2 shlft As appreciated by those skilled in the art, use of the "shift" value allows binary arithmetic. Of course, other calculating techniques can also be used. At decision block 226, the value of "time total" is examined to ascertain if it is a large number. In the embodiment illustrated, bit 30 is examined, and if bit 30 is high, the value of time total is divided by 2 as indicated at step 228. Program flow then continues to step 230 where the shift register is decremented by one . At decision block 232, the program ascertains if any edges have been detected yet. If an edge has been detected, program flow continues to step 234 where the speed of the moving member is calculated according to the following equation: Speed = VSC1 * N * 2 shift"VSC2 / Time Total The above equation is of the form found in equation 1 where K has been separated into velocity scaling parameters VSC1 and VSC2 , which are determined based on each application. VSC1 can be considered proportion to K whereas VSC2 can be considered a power of K. By using VSC1 and VSC2 , wide ranges of K can be accommodated and binary arithmetic can be used. After the speed has been calculated at step 264, the value "time total" is reset to zero at step 236, and the shift register is reset to 15 at step 238. At decision block 240, the direction of the moving member is examined. If the direction is high, the velocity is reported as equal to the speed at step 242. In contrast, if the direction variable is low, the velocity is reported as the negative of the speed at step 244. Returning back to decision block 232, if the number of edges detected is less than or equal to zero, program flow continues to decision block 250. At decision block 250, the quantity (shift - VSC2) is examined to determine if it is less than zero. If this quantity is less than zero, program flow continues to step 252 where the velocity is reported to be zero since an edge has not been detected for a long time. At step 254, the value "time total" is set to a high default value and at step 256, the shift register is set equal to the parameter VSC2. If, on the other hand, the quantity (shift minus VSC2) is greater than zero, indicating that an edge has not yet been detected, but an excessive amount of time has not yet elapsed, program flow continues to step 212, and then back to step 202 to allow another iteration to determine if an edge is once again detected. In this manner, slow speeds of the moving member can be detected. Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims: WHAT IS CLAIMED IS: 1. A method for calculating the speed of a moving member having an output device providing an output periodic signal as a function of displacement of the moving member, the method comprising: measuring a time duration for a plurality of first periodic occurrences of the output periodic signal to occur; counting a number of second periodic occurrences of the output periodic signal to occur in a selected time period; and calculating a speed of the moving member as a function of the time duration for the plurality of first periodic occurrences to occur and the number of second periodic occurrences to occur in the selected time period. 2. The method of claim 1 wherein calculating includes calculating the speed of the moving member as a function of : Speed = K*N/T where, N is the number of second periodic occurrences in the selected time period, T is the time duration for the plurality of first periodic occurrences to occur, and K is a scaling value. 3. The method of claim 2 wherein the first and second periodic occurrences comprise a digital signal. 4. The method of claim 2 wherein the first and second periodic occurrences comprise an analog signal. 5. The method of claim 1 wherein the moving member comprises a rotating member. 6. The method of claim 1 wherein the moving member comprises a linear moving member. 7. The method of claim 1 wherein measuring a time duration comprises counting occurrences of a reference signal . 8. The method of claim 7 wherein the reference signal comprises a counter signal, and wherein measuring a time duration comprises storing a value of the number of occurrences of the reference signal each time a set of the plurality of first periodic occurrences has occurred, and subtracting a previous value from a current value . 9. The method of claim 1 wherein the output device comprises at least one of an encoder, a resolver and a Hall-effect sensor. 10. The method of claim 1 wherein the each of the first periodic occurrences and each of the second periodic occurrences are the same feature of the output periodic signal . 11. An apparatus for calculating a speed of a moving member, the apparatus comprising: an output device providing an output periodic signal as a function of displacement of the moving member; a measuring device providing a time duration output indicative of a time duration for a plurality of first periodic occurrences of the output periodic signal to occur; a counter providing a counter output indicative of a number of second periodic occurrences of the output periodic signal to occur in a selected time period; and a module receiving the time duration output and the counter output and calculating a speed of the moving member as a function of the time duration output and the counter output . 12. The apparatus of claim 11 wherein the module calculates the speed of the moving member as a function of: Speed = K*N/T where, N is the number of second periodic occurrences in the selected time period, T is the time duration for the plurality of first periodic occurrences to occur, and K is a scaling value. 13. The apparatus of claim 11 wherein the output periodic signal comprises a digital signal . 14. The apparatus of claim 11 wherein the output periodic signal comprises an analog signal. 15. The apparatus of claim 11 wherein the module comprises a processing circuit. 16. The apparatus of claim 11 and further comprising a processor, and wherein the module comprises a set of instructions stored in a processor readable medium, the set of instructions operable on the processor. 17. The apparatus of claim 11 wherein the each of the first periodic occurrences and each of the second periodic occurrences are the same feature of the output periodic signal . 18. The apparatus of claim 11 wherein the output device comprises at least one of an encoder, a resolver and a Hall-effect sensor. 19. An electric motor comprising: a stator winding assembly; a rotor movable relative to the stator winding assembly; an output device providing an output periodic signal as a function of displacement of the rotor relative to the stator winding assembly; a controller energizing the stator winding assembly and receiving the output periodic signal, the controller measuring a time duration for a plurality of first periodic occurrences of the output periodic signal to occur, counting a number of second periodic occurrences of the output periodic signal to occur in a selected time period, and calculating a speed of the moving member as a function of the time duration for the plurality of first periodic occurrences to occur and the number of second periodic occurrences to occur in the selected time period. 20. The electric motor of claim 19 wherein the rotor rotates relative to the stator winding assembly. 21. The electric motor of claim 19 wherein the rotor moves linearly relative to the stator winding assembly. 22. The electric motor of claim 19 wherein the controller calculates the speed of the moving member as a function of : Speed = K*N/T where , N is the number of second periodic occurrences in the selected time period, T is the time duration for the plurality of first periodic occurrences to occur, and K is a scaling value. 23. The electric motor of claim 19 wherein the output device comprises at least one of an encoder, a resolver and a Hall-effect sensor. 24. The electric motor of claim 19 wherein the controller includes a processing circuit. 25. The electric motor of claim 19 wherein the controller includes a processor and a set of instructions stored in a processor readable medium, the set of instructions operable on the processor. 26. The electric motor of claim 19 wherein the each of the first periodic occurrences and each of the second periodic occurrences are the same feature of the output periodic signal.

Inventors: FENSTERMACHER BRIAN J, FENSTERMACHER, BRIAN, J.
Applicants: MTS SYSTEM CORP, MTS SYSTEMS CORPORATION
Application year: 1999
Main classification: G01P3
IPC codes: G01P3, G01P13, H02P25