Angular frequency extractor for controlling a brushed DC motor

An apparatus includes a motor driver configured to drive a motor across a pair of input terminals to the motor and a current sense unit configured to sense the motor's electrical current amplitude. Further, an angular frequency extractor is operatively coupled to the motor driver and the current sense unit and configured to detect discontinuities in the motor's electrical current amplitude. The angular frequency extractor also is configured to determine a time period for one complete revolution of a rotor of the motor and to generate a feedback signal based on the determined period to control an angular frequency of the motor. The feedback signal may be used to adjust how the motor is being driven (e.g., to slow the motor down or speed it up).

BACKGROUND

Direct current (DC) motors are caused to rotate upon application of a DC voltage. Generally, the angular frequency of the motor increases as the applied DC voltage increases. Thus, the angular frequency of the motor can be controlled through the applied DC voltage. DC motors are used for a wide variety of applications. For instance, smart phones may use eccentric rotational mass (ERM) DC motors to cause a vibration for haptic feedback to the user of the phone (e.g., vibration upon receipt of a text message). Numerous other applications exist for DC motors including medical tools, fan control, pump control and toothbrushes.

Some applications for DC motors benefit from tight control of the motor's angular frequency (i.e., speed). Unfortunately, due to manufacturing variations, DC motors of a common type (e.g., same part number) do not all exhibit the same angular frequency for a given DC voltage. Friction, for example, is not a commonly well-controlled parameter and thus affects angular frequency differently from actuator to actuator. Such manufacturing variations may impair the use of DC motors in various applications.

SUMMARY

In one example, an apparatus includes a motor driver configured to drive a motor across a pair of input terminals to the motor and a current sense unit configured to sense the motor's electrical current amplitude. Further, an angular frequency extractor is operatively coupled to the motor driver and the current sense unit and configured to detect discontinuities in the motor's electrical current amplitude. The angular frequency extractor also is configured to determine a time period for one complete revolution of a rotor of the motor and to generate a feedback signal based on the determined period to control an angular frequency of the motor. The feedback signal may be used to adjust how the motor is being driven (e.g., to slow the motor down or speed it up).

In another example, an angular frequency extractor includes a differentiator that is configured to receive a current amplitude signal indicative of the current amplitude of a motor and to generate a derivative output signal based on the received current amplitude signal. The angular frequency extractor in this example also includes an amplifier to amplify the derivative output signal to generate an amplified signal and a comparator to compare the amplified signal to a threshold to generate a comparator output signal. The extractor further includes a one-shot to generate a voltage pulse based each time the comparator's output signal indicates that the amplified signal exceeds the threshold, and a timer to measure the elapsed time between adjacent voltage pulses to thereby generate a feedback signal for use in controlling the motor.

Another example is directed to an apparatus that includes a motor comprising input terminals, a motor driver configured to drive the motor across the input terminals to the motor, a current sense unit configured to sense the motor's electrical current amplitude, and an angular frequency extractor operatively coupled to the motor driver and the current sense unit. The angular frequency extractor preferably is configured to detect discontinuities in the motor's electrical current amplitude and to determine a time period for one complete revolution of a rotor of the motor and to generate a feedback signal based on the determined period to control an angular frequency of the motor. An error generator also is provided and is configured to generate an error signal as an input to the motor driver based on the feedback signal from the angular frequency extractor and a motor control input signal.

A method is also disclosed that includes various operations. The operations include driving a motor and sensing a current amplitude of the motor. The method further includes generating a feedback signal based on the sensed current amplitude and adjusting the driving of the motor based on the feedback signal.

DETAILED DESCRIPTION

Some DC motor control solutions use the motor's back electromotive force (BEMF) voltage to generate a feedback signal for control of the angular frequency of the motor. The BEMF voltage is generally proportional to the angular frequency so controlling the BEMF voltage indirectly permits control of the motor's angular frequency. This approach, however, has several problems. First, the BEMF voltage cannot be measured while the motor is actively being driven by an applied voltage. Thus, periodic temporary cessation of driving the motor is required to use the BEMF voltage approach. Second, measuring the BEMF voltage is not the same as measuring angular frequency because the constant that defines the relationship between BEMF voltage and angular frequency typically is not necessarily known. So, even if the BEMF voltage was measured, the system still could not compute angular frequency without knowing the conversion factor.

In accordance with various embodiments, a feedback signal used to control the motor's angular frequency is derived from measurements involving the motor's current amplitude, not the BEMF voltage.FIG. 1illustrates one such example of a motor control100that is configured to drive a motor150. In the examples disclosed herein, the motor150is a brushed DC motor and may be used for any of a wide variety of applications including ERMs (e.g., smart phone haptic user feedback), as well as non-ERM motor applications. The motor control100in the example ofFIG. 1includes an input amplifier102(with gain G), an error generator104, a motor driver106, a current sense unit108, and an angular frequency extractor110. The input amplifier102receives a motor control input102which may be a voltage whose amplitude generally determines the desired angular frequency of the motor. The motor control input102is scaled by amplifier102. The motor driver106provides an output voltage via its Vout+ and Vout− to input terminals152and154of the motor.

The current sense unit108senses the motor's electrical current amplitude and provides a current sense signal109indicative of the motor's current amplitude to the angular frequency extractor110. The angular frequency extractor110is operatively coupled to the motor driver106(e.g., via the error generator104) and the current sense unit108. The angular frequency extractor110is configured to detect discontinuities in the motor's electrical current amplitude received from the current sense unit108by way of current sense signal109and to determine a time period for one complete revolution of a rotor of the motor. The angular frequency extractor110generates a feedback signal111based on the determined period and/or the angular frequency and provides the feedback signal111to the error generator104to control an angular frequency of the motor150.

The error generator104(which may be implemented as a voltage summer) receives the amplified signal103from the input amplifier102and generates an error signal105as, for example, the difference between the amplified signal103and the feedback signal111from the angular frequency extractor110. The error signal105causes the angular frequency to be tightly controlled to the target angular frequency specified by the motor control input signal based on the feedback signal111derived from the motor's current amplitude.

FIG. 2shows an example of a waveform depicting the time-varying current amplitude of the motor150, as might be sensed by current sense unit108. The discontinuities160in the waveform are due to the brushes of the brushed DC motor150breaking contact with one commutator and making contact with the next commutator as the rotor spins. The elapsed time between adjacent discontinuities160(e.g., T1, T2) is a function of the angular frequency of the motor—the faster the motor spins, the smaller the time periods will be between adjacent discontinuities160. Thus, the time period between adjacent discontinuities160can be used, along with knowledge of the number of poles of the motor, to compute the angular frequency of the motor150. The angular frequency is given by:

ANGULAR⁢⁢FREQUENCY=1∑n=1N⁢Δ⁢⁢Ti(1)
where N is the number of poles of the motor and ΔTiis the time between the ithdiscontinuity for a given pole and the discontinuity for the preceding pole.

The angular frequency extractor110detects the current amplitude discontinuities160, measures the elapsed time between adjacent discontinuities (adjacent with respect to time), and computes the time for the motor's rotor to make one complete revolution. From that, the angular frequency can be computed as indicated above. The angular frequency extractor110generates the feedback signal111based on the period of time determined for the motor's rotor to make one complete revolution. The feedback signal111preferably is a voltage that is proportional to the angular frequency of the motor.

The feedback signal111is a voltage that is directly or indirectly related to the angular frequency of the spinning motor150. The angular frequency extractor110may actually determine the angular frequency of the motor and generate a voltage based on the determined angular frequency. Alternatively, the angular frequency extractor110may determine the period of time required for one complete revolution of the motor's rotor and generate a voltage based on the determined period. Further still, the angular frequency extractor may determine the elapsed time between a single pair of adjacent current amplitude discontinuities and generate a voltage based on that elapsed time.

FIG. 3provides an example of an implementation of the angular frequency extractor110. The angular frequency extractor in this example includes a differentiator120, an amplifier124, a comparator126, a 1-shot128, a timer130, and a peak detector132. The differentiator receives the current sense signal109as its input and is coupled to the amplifier124. The amplifier124, in turn, is coupled to an input of the comparator126. The other input of the comparator is a threshold signal131received from the timer130. The comparator's output is coupled to the 1-shot, and the 1-shot is coupled to the timer130. The peak detector's input is received from the output of the amplifier124and the peak detector132provides a peak detection signal133to the timer130.

In operation, the differentiator120receives the current sense signal109from the current sense unit108and determines the derivative of the current sense signal to generate a derivative output signal121. The derivative output signal121is amplified by the amplifier124and the amplified signal125is provided both to the comparator126and the peak detector132. The comparator126compares the amplified signal125to a threshold (TH)131which is generated by the timer130based on an output signal133from the peak detector. In one example, the threshold131is set by the timer130to a value that is between the peak value as determined by the peak detector and the baseline current level. In one particular example, the threshold131is determined by the timer132to be between 0.7 times the peak value and 3 times the root mean square (RMS) value of the noise. The peak detector132also may determine the RMS value of the current's noise level. In other embodiments, the threshold131is preset and thus the peak detector132may not be used or even included.

The comparator output signal127is provided to the 1-shot128which generates a voltage pulse as 1-shot output signal129each time the comparator's output signal127indicates that the amplified signal125exceeds the threshold131. The timer130measures the amount of time that elapses between adjacent 1-shot voltage pulses, uses those elapsed time values to determine the amount of time the motor150takes for its rotor to make one complete revolution, and generates the feedback signal111based on the time required for one complete revolution of the motor's rotor. That time period is proportional (e.g., inversely) to the angular frequency and thus the timer's feedback signal output is proportional as well to the motor's angular frequency.

FIGS. 4 and 5provide examples of implementations of the current sense unit108ofFIG. 1. InFIG. 4, the current sense unit108is implemented as a sense resistor which preferably is a low resistance resistor. The voltage developed across the resistor108is proportional to the motor's current amplitude. InFIG. 5, the current sense unit108is implemented as field effect transistor (FET)108b. The source-to-drain voltage of the FET is proportional to the motor's current amplitude.

FIGS. 6a-6einclude waveforms of the various signals ofFIG. 3.FIG. 6ashows an example of the current sense signal109with the various current amplitude discontinuities160.FIG. 6billustrates the amplified signal125. This signal is an amplified version of the derivative of the current sense signal109. The amplified signal125also indicates the occurrence of the current amplitude discontinuities but with spikes that are easier for a timing circuit to measure elapsed time.FIG. 6cillustrates the comparator's output signal127which is a series of spikes coincident with each current discontinuity160in excess of the threshold131.

FIG. 6dshows the output voltage pulses from the 1-shot128. The width of the voltage pulse can be programmed or is fixed but, in either case, is preferably at least just long enough to ensure that the timer130does not mistakenly count multiple voltage spikes in quick succession that are associated with the same current amplitude discontinuity160.

FIG. 6eillustrates the feedback signal111from the timer130. The feedback signal111in this example is a voltage whose amplitude is a function of the elapsed time between adjacent voltage pulses from the 1-shot128. As can be seen the voltage varies somewhat between adjacent pairs of current amplitude discontinuities. For example, the feedback signal voltage at111ais slightly lower than at111b. This difference indicates that a slightly longer elapsed time period occurred between the current amplitude discontinuities associated with the voltage at111bthan was the case for the inter-discontinuity time period associated with the voltage at111a.

FIG. 7illustrates an example of a method for controlling a motor. The method includes driving the motor at202(e.g., by the motor driver106providing a voltage to the motor150). At204, the method includes sensing the current amplitude of the motor (e.g., via current sense unit108and angular frequency extractor110). At206, the method includes the angular frequency extractor1110generating the feedback signal111based on the sensed current amplitude. At208, the method includes adjusting the driving of the motor based on the feedback signal. For example, the feedback signal111may cause the motor driver106to increase or decrease its output voltage to make the motor150spin faster or slower to make the motor spin at a desired angular frequency.

FIG. 8shows an example method to implement operation206inFIG. 7(generating the feedback signal111). The operations depicted may be performed by the angular frequency extractor110. At210, the method includes receiving the sensed current amplitude from the current sense unit108at the angular frequency extractor110. At212, the method includes detecting the current amplitude discontinuities160in the sensed current amplitude. This operation may be performed by conditioning the current sense signal109using any one or more of the differentiator120, amplifier124, comparator126, 1-shot128, and peak detector132described above.

At214, the elapsed time is measured between adjacent discontinuities. This operation may be performed by the timer130. At216, the method includes determining the aggregate elapsed time between adjacent discontinuities for one complete revolution of the motor's rotor. The timer130then may compute (218) the angular frequency of the motor based on the aggregate of the elapsed time measurements between adjacent discontinuities over one complete revolution of the motor's rotor.