# Patent

## Title
Systems and methods for adaptive torque adjustment and motor control

## Abstract

A system includes a target speed module and a pulse-width modulation (PWM) control module. The target speed module is configured to provide a first waveform based on a first speed setting for a motor. A start of a first cycle of the first waveform corresponds to at least one of a first current or a first voltage. The PWM control module is configured to shift a phase of the first waveform by a torque angle adjustment value to generate a second waveform. A start of a first cycle of the second waveform corresponds to at least one of a second voltage or a second current. The second voltage is greater than the first voltage, and the second current is greater than the first current. The PWM control module is configured to control the motor based on the second waveform.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 61/299,238 filed on Jan. 28, 2010. The disclosure of the above application is incorporated herein by reference in its entirety.


FIELD
The present disclosure relates generally to electric motor control and more particularly to adaptive torque angle adjustment for an electric motor.
BACKGROUND
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Cooling fan assemblies provide airflow to dissipate heat generated by electronic components. Cooling fan assemblies often include a motor that drives fan blades via a rotor. The speed of the rotor may be adjusted to adjust airflow and heat dissipation.
A control module controls the speed of the rotor using pulse-width modulated (PWM) signals. The PWM signals may be based on a comparison of a reference signal and a sine wave signal generated from a motor sensor signal.
The motor sensor signal may be based on signals from a Hall-effect sensor that detects changes in magnetic fields within the motor as the rotor rotates. Alternatively, the sine wave signal can be generated based on detection of back electromotive force (BEMF) from the motor. BEMF may be detected using detected voltages of motor coils and/or a centre tap of one of the coils while the motor is spinning.
SUMMARY
A system includes a target speed module and a pulse-width modulation (PWM) control module. The target speed module is configured to provide a first waveform based on a first speed setting for a motor. A start of a first cycle of the first waveform corresponds to at least one of a first current or a first voltage. The PWM control module is configured to shift a phase of the first waveform by a torque angle adjustment value to generate a second waveform. A start of a first cycle of the second waveform corresponds to at least one of a second voltage or a second current. The second voltage is greater than the first voltage, and the second current is greater than the first current. The PWM control module is configured to control the motor based on the second waveform.
In another feature, the system further includes memory storing a plurality of different torque angle adjustment values each corresponding to a different range of speeds for the motor.
In other features, the PWM control module is configured to select a first of the plurality of different torque angle adjustment values, and shift the phase of the first waveform to generate the second waveform based on the first of the plurality of different torque angle adjustment values.
In another feature, the plurality of different torque angle adjustment values increase non-linearly with respect to each other.
In another feature, the motor drives a fan.
In other features, the first speed setting is greater than a second speed setting, and the target speed module is configured to provide the first waveform based on the first speed setting following the target speed module providing a third waveform based on the second speed setting. The second speed setting is based on an increase in ambient temperature of a device that includes the motor.
In other features, the system further includes a speed determination module configured to provide a current speed signal based on first signals from a Hall-effect sensor positioned relative to the motor or a back electromotive force (BEMF) detection module detecting a BEMF from the motor.
In other features, the system further includes a speed control module configured to provide second signals to the PWM control module based on the second waveform and the current speed signal. The PWM control module is configured to control the motor based on the second signals.
In still other features, a method includes generating a first waveform based on a first speed setting for a motor. A start of a first cycle of the first waveform corresponds to at least one of a first current or a first voltage. The method further includes shifting a phase of the first waveform by a torque angle adjustment value to generate a second waveform. A start of a first cycle of the second waveform corresponds to at least one of a second voltage or a second current. The second voltage is greater than the first voltage, and the second current is greater than the first current. The method further includes controlling the motor based on the second waveform.
In another feature, the method further includes storing a plurality of different torque angle adjustment values each corresponding to a different range of speeds for the motor.
In other features, the method further includes selecting a first of the plurality of different torque angle adjustment values, and shifting the phase of the first waveform to generate the second waveform based on the first of the plurality of different torque angle adjustment values.
In another feature, the plurality of different torque angle adjustment values increase non-linearly with respect to each other.
In another feature, the method further includes driving a fan with the motor.
In other features, the first speed setting is greater than a second speed setting. The method further includes generating the first waveform based on the first speed setting in response to generating a third waveform based on the second speed setting. The second speed setting is based on an increase in ambient temperature of a device that includes the motor.
In other features, the method further includes generating a current speed signal based on first signals from a Hall-effect sensor positioned relative to the motor or a back electromotive force (BEMF) detection module detecting a BEMF from the motor.
In other features, the method further includes generating second signals based on the second waveform and the current speed signal, and controlling the motor based on the second signals.
Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. The detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.



BRIEF DESCRIPTION OF DRAWINGS
The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein:
FIG. 1 is a cooling fan system according to the present disclosure;
FIGS. 2A-2D are functional block diagrams of motor control modules according to the present disclosure;
FIGS. 3A-3C are waveforms that illustrate analog signals processed by a cooling fan system according to the present disclosure;
FIGS. 4A-4C are waveforms that illustrate response signals of a cooling fan system according to the present disclosure; and
FIG. 5 is a flowchart that illustrates a method for operating a motor according to the present disclosure.



DESCRIPTION
The following description is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical OR. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure.
As used herein, the term module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC); an electronic circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor (shared, dedicated, or group) that executes code; other suitable components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip. The term module may include memory (shared, dedicated, or group) that stores code executed by the processor.
The term code, as used above, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories.
Referring now to FIG. 1, a cooling fan system 100 includes a motor 102 and a motor control module 104. In one example, the motor 102 is a two-phase brushless direct current (DC) motor. In an alternative example, the motor is a three phase motor. The motor 102 includes at least four stator poles: pole A1 106 and pole A2 108 (collectively pole pair A) and pole B1 110 and pole B2 112 (collectively pole pair B). Pole pair A is wound with a stator coil 114 (hereinafter “coil A 114”); and pole pair B is wound with a stator coil 115 (hereinafter “coil B 115”).
The motor control module 104 applies a voltage and/or current to coil A 114 to generate a magnetic field between pole A1 106 and pole A2 108. Applying the voltage and/or current to coil A 114 is referred to as “driving phase A.” The motor control module 104 also applies the voltage and/or current to coil B 115 to generate a magnetic field between pole B1 110 and pole B2 112. Applying the voltage and/or current to coil B 115 is referred to as “driving phase B.” The motor control module 104 may apply the voltages and/or currents via pulse-width modulation (PWM) driving signals.
The motor 102 includes a rotor 116, which may include at least one permanent magnet. The motor control module 104 drives phase A and/or phase B to actuate the rotor 116 about an axle 118. In one example, the axle 118 mechanically couples the rotor 116 to a device. For example, the axle 118 may mechanically couple the rotor 116 to a fan 120. The rotor 116 in FIG. 1 rotates between the stator poles 106, 108, 110, 112. In an alternative example, the motor 102 includes a rotor that surrounds the stator poles 106, 108, 110, 112.
In one example, the motor control module 104 drives phases A and B based on sine waves that are used to generate the PWM drive signals. The PWM signals therefore cause motor torque based on an angle along a sine wave (i.e., a torque angle). Traditional sine-wave-based electric motors have the same initial torque angle applied to the motor 102 at different speed settings of the motor. For example, as the speed of the motor 102 increases, the same initial torque angle is applied regardless of the applied speed. If the same initial torque angle is used, spikes in the output drive current and/or voltage may occur that translate into audible noise.
For example, different poles, such as pole pair A and pole pair B, may have different coil windings or different size magnets. Thus, the motor 102 may have an inconsistent speed depending on which pole is receiving voltage and/or current. Such inconsistencies in speed may result in audible noise.
The present disclosure minimizes audible noise in motor operation by adjusting initial torque angles applied to the coils of the pole pairs A and/or B by a torque angle adjustment. In other words, if coil A 114 drives the motor slower than coil B 115, the present disclosure increases an initial torque angle applied to coil A 114 by adjusting (e.g., increasing) the torque angle, which in turn increases the initial amount of current and/or voltage applied to coil A 114. However, the present disclosure may alternatively include increasing the amount of the initial torque angle adjustment applied to either or both coil A 114 and coil B 115 regardless of which coil drives the motor 102 slower.
In one example, the motor 102 includes at least one Hall-effect sensor 122 that indicates rotation of the rotor 116. In another example, the motor 102 is sensor-less, and the motor control module 104 may detect back electro-motive force (BEMF) from the motor 102.
The motor control module 104 uses the torque angle adjustment to adjust the initial torque angle of the sine waves used to generate the PWM signals. By adjusting the initial torque angle, the present disclosure aligns the current or voltage applied to the motor 102 based on the BEMF of the motor 102 or the Hall-effect signal voltage of the motor 102. This alignment increases motor efficiency and lowers acoustic noise of the motor 102. Changing the motor speed can be achieved by adjusting the target speed of the motor. By changing the torque angle, the motor speed will change. However, the purpose of adjusting the torque angle is to align voltages applied to the motor 102 with the BEMF or Hall-effect sensor voltages.
In one example, the motor control module 104 detects BEMF generated while the rotor 116 is spinning. In another example, the Hall-effect sensor 122 generates a pulse when a magnetic pole of the rotor 116 passes the Hall-effect sensor 122. The motor control module 104 determines a rotational speed of the rotor 116 based on the pulses from the Hall-effect sensor 122. Alternatively, the motor control module 104 determines a rotational speed of the rotor 116 by determining BEMF of the motor 102. This may be done by comparing a tri-stated phase for the motor 102 with a centre tap of the motor 102 and/or voltages detected from the coils of the motor 102.
The motor control module 104 drives the motor 102 using PWM driving signals when the speed of the rotor 116 is less than full speed. The PWM signals include a series of driving pulses. The motor control module 104 controls a duty cycle of the driving pulses to control the speed of the rotor 116. In one example, the PWM signals are generated to correspond to a target motor speed signal. The target motor speed signal may indicate a speed requested by a user and/or an electronic controller and may include a torque angle adjustment provided by the motor control module 104. The PWM signals may also be generated by comparing a sine wave signal generated from the Hall-effect signals or BEMF signals (i.e., current motor speed) and a target motor speed signal and then adding the torque angle adjustment.
Referring now to FIGS. 2A-2B, the motor control module 104 implements a feedback system that adjusts the speed of the rotor 116 to reach a target motor speed in view of a current motor speed. The current motor speed may be determined from Hall-effect sensor signals, as shown in FIG. 2A, or BEMF detection, as shown in FIG. 2B.
In FIG. 2A, the motor control module 104 adjusts the speed of the rotor 116 based on a difference between a current motor speed of the rotor 116 and the target motor speed. For example, when the current motor speed is less than the target motor speed, the motor control module 104 increases the speed of the rotor 116 to achieve the target motor speed. When the current motor speed is greater than the target motor speed, the motor control module 104 decreases the speed of the rotor 116 to achieve the target motor speed.
In this example, the motor control module 104 includes a target speed module 202, a PWM control module 210, a sensor signal module 212, a speed determination module 214 and a speed control module 218.
The PWM control module 210 drives phase A and/or phase B to adjust the speed of the rotor 116 using PWM signals. The PWM signals are based on a modified speed signal from the speed control module 218 and a torque angle adjustment from, for example, a look-up table 221 in memory 223.
The sensor signal module 212 receives signals from the Hall-effect sensor 122 when the rotor 116 is rotating. The speed determination module 214 determines the current motor speed of the rotor 116 based on the Hall-effect sensor signals.
The target speed module 202, which may include a digital-to-analog converter (DAC) and/or an analog-to-digital converter (ADC), generates target speed signals based on the target motor speed requested by a user and/or an electronic controller. The target speed signals may therefore correspond to a target DAC value, for example. The target speed signals can range from 0% to 100% of the total speed of the motor 102. The amount of power transferred to the motor 102 depends on the target speed signals. For example, a 100% target speed signal corresponds to full speed of the motor 102, and a 50% target speed signal corresponds to half the maximum speed spinning of the motor 102.
The speed control module 218 generates a modified speed signal (e.g., a modified DAC value) by comparing the target speed signals and the Hall-effect sensor signals. The look-up table 221 provides a predetermined torque angle adjustment to the PWM control module 210 based on the target speed signal.
In FIG. 2B, the motor control module 104 adjusts the speed of the rotor 116 based on a difference between a current motor speed of the rotor 116 and the target motor speed. For example, when the current motor speed is less than the target motor speed, the motor control module 104 increases the speed of the rotor 116 to achieve the target motor speed. When the current motor speed is greater than the target motor speed, the motor control module 104 decreases the speed of the rotor 116 to achieve the target motor speed.
In this example, the motor control module 104 includes the target speed module 202, the PWM control module 210, a BEMF detection module 219, the speed determination module 214, and the speed control module 218.
The PWM control module 210 drives phase A and/or phase B to adjust the speed of the rotor 116 using PWM signals. The PWM signals are based on a modified speed signal from the speed control module 218 and a torque angle adjustment from, for example, the look-up table 221 in memory 223.
The BEMF detection module 219 detects voltages induced in the coils and/or in a center-tap of one or more of the coils when the rotor 116 is rotating and generates a BEMF signal based on the voltages. The speed determination module 214 determines the current speed of the rotor 116 based on the voltages induced in the coils and/or center-tap.
The target speed module 202 generates target speed signals based on control signals indicative of the target motor speed requested by a user and/or an electronic controller. The speed control module 218 generates the modified speed signal based on the target speed signals and the BEMF signal. The look-up table 221 provides a predetermined torque angle adjustment to the PWM control module 210 based on the modified speed signal.
Referring now to FIGS. 2C-2D, in other examples, the motor control module 104 adjusts the speed of the rotor 116 without feedback and based only on the target motor speed. The target motor speed may include a torque angle adjustment provided by the motor control module 104. The motor control module 104 applies the voltage and/or current corresponding to the target motor speed to drive the rotor 116 to the target motor speed.
In FIG. 2C, the motor control module 104 includes the target speed module 202, the PWM control module 210 and the sensor signal module 212.
The PWM control module 210 drives phase A and/or phase B to adjust the speed of the rotor 116 using PWM signals. The PWM signals are based on outputs of the target speed module 202 and a torque angle adjustment from, for example, the look-up table 221 in memory 223. The PWM signals may also be based on Hall-effect sensor signals from the sensor signal module 212.
The sensor signal module 212 receives signals from the Hall-effect sensor 122 when the rotor 116 is rotating. The target speed module 202 generates target speed signals based on the target motor speed requested by a user and/or an electronic controller. The look-up table 221 provides a predetermined torque angle adjustment to the PWM control module 210 based on the target speed signals.
In FIG. 2D, the motor control module 104 includes the target speed module 202, the PWM control module 210 and the BEMF detection module 219.
The PWM control module 210 drives phase A and/or phase B to adjust the speed of the rotor 116 using PWM signals. The PWM signals are based on outputs of the target speed module 202, a torque angle adjustment from, for example, the look-up table 221 in memory 223. The PWM signals may also be based on BEMF signals from the BEMF detection module 219.
The BEMF detection module 219 measures voltages induced in the coils and/or in a center-tap of one or more of the coils when the rotor 116 is rotating and generates a BEMF signal based on the voltages.
The target speed module 202 generates target speed signals based on the target motor speed requested by a user and/or an electronic controller. The look-up table 221 provides a predetermined torque angle adjustment to the PWM control module 210 based on the target speed signals.
Referring now to FIGS. 3A-3B, an example of an output of the target speed module 202 (i.e., target speed signal) is illustrated as a waveform 217 of voltage (V) versus time (T). Voltage increases from V1-V3, and time increase from T0-T2. The higher the voltage applied to the coils of the pole pairs A and B, the faster the speed of the motor 102. In one example, the PWM control module 210 modifies the waveform 217 of the target speed module 202 by shifting the waveform by the torque angle adjustment.
An example of a modified waveform 220 is illustrated in FIG. 3B. The modified waveform 220 includes the waveform 217 shifted by a predetermined amount. The predetermined amount corresponds to the torque angle adjustment. In one example, the PWM control module 210 shifts the waveform 217 by different torque angle adjustment values for different percentages of the total motor speed indicated by the waveform 217. The torque angle adjustment values may correspond to torque angle adjustments.
The speed control module 218 may determine the percentage of the total motor speed by comparing the motor speed indicated by the waveform 217 with a predetermined maximum motor speed. The predetermined maximum motor speed may be stored in memory 223 and may be based on the particular motor that is being used.
The PWM control module 210 may modify the waveform 217 by different torque angle adjustment values based on the percentage of the total motor speed of the target speed signal.
For example, for a target speed signal within a range of 0%-10% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 0. For a target speed signal within a range of 10%-20% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 1. For a target speed signal within a range of 20%-30% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 2. For a target speed signal within a range of 30%-40% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 4.
For a target speed signal within a range of 40%-50% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 5. For a target speed signal within a range of 50%-70% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 7. For a target speed signal within a range of 70%-100% of the total motor speed, the PWM control module 210 uses a torque angle adjustment value of 9.
In one example, the torque angle adjustment values for the motor 102 increase in a linear manner for different percentages of total motor speed. In another example, the torque values for the motor 102 increase in a non-linear manner for different percentages of total motor speed.
The different torque angle adjustment values correspond to a scale. For example, one increment of torque adjustment (e.g., from torque angle adjustment value 0 to torque angle adjustment value 1) corresponds to a number of degrees, such as a one-degree torque angle adjustment, to shift the waveform 217. The waveform 217 is shifted in order to adjust the initial torque applied to the motor 102.
To illustrate, FIG. 3B shows a modified waveform 220 having a torque angle adjustment value of 1, and FIG. 3C shows a modified waveform 222 having a torque angle adjustment value of 9. The torque angle adjustment values represent increments for moving the waveform 217 to the left, for example. Thus, an increased voltage and/or current is applied to the motor 102 at time T0.
Typically, the waveform 217 would start its first cycle at T0 with the same low voltage and/or current regardless of the selected speed. However, in the present disclosure, the waveform 217 starts its first cycle with higher voltages and/or currents, depending on the selected speed, than the waveform 217 would without the application of a torque angle adjustment/value.
The torque angle adjustment values can be programmed automatically without the control of any external controllers. In one example, preset torque angle adjustment values are fixed internally. In another example, preset torque angle adjustment values are programmed upon power-up or by a one-time programming during manufacture.
In one example, the PWM control module 210 automatically adjusts the waveform 217 based on a particular type of motor 102. An indication of the particular type of motor 102 may be provided to the PWM control module 210 from an external source, such as an attached processor or database and may be selected by a user.
The present disclosure includes different torque angle adjustment values for different ranges of the target speed signal. The torque angle adjustment values may be stored in a look-up table 221 stored in memory 223. In one example, the memory 223 stores different sets of torque values for different motors. In other words, each of a plurality of motors may have its own set of torque angle adjustment values for adjusting torque.
Referring now to FIG. 4A, in one example of the disclosure, the speed control module 218 rectifies the waveform 217 to generate a rectified waveform for a two-phase motor. The rectified waveform drives the motor 102. The sensor signal module 212 or the BEMF detection module 219 generates a reconstructed waveform 225 based on the motor 102. The reconstructed waveform 225 illustrates a system lacking the adaptive torque adjustment of the present disclosure. As shown, different coil windings and/or poles in the motor 102 may cause different length cycles 231, 233 in the reconstructed waveform 225.
Referring now to FIG. 4B, a reconstructed waveform 227 for a two-phase motor system having the adaptive torque adjustment of the present disclosure is illustrated. The reconstructed waveform 227 represents a commanded increase in speed based on, for example, the modified waveform 220. As shown, the torque angle adjustment reduces effects of different coil windings and/or poles and has more consistent length cycles 235 than those in the reconstructed waveform 225.
Referring now to FIG. 4C, a reconstructed waveform 241 for a three-phase motor system having the adaptive torque adjustment of the present disclosure is illustrated. The reconstructed waveform 241 represents a commanded increase in speed based on, for example, the modified waveform 220. As shown, the torque adjustment reduces effects of different coil windings and/or poles and has more consistent length cycles 245.
Generally, the PWM control module 210 drives phases A and B separately to rotate the rotor 116 based on the modified waveform 220. The speed determination module 214 determines the current motor speed based on Hall-effect sensor signals or BEMF signals. The amount of time between consecutive detections of Hall-effect sensor signals or BEMF signals may be referred to hereinafter as a “signal detection period.” For example, the speed determination module 214 determines the signal detection period based on the detection of consecutive signals from the Hall-effect sensor 122 or the BEMF detection module 219.
For examples that include feedback, the speed control module 218 instructs the PWM control module 210 to drive phase A and/or phase B based on a difference between the current motor speed and the target motor speed. The target motor speed is indicated by the modified waveform 220. The speed control module 218 instructs the PWM control module 210 to increase the speed of the rotor 116 when the target motor speed is less than the current motor speed. The speed control module 218 instructs the PWM control module 210 to decrease the speed of the rotor 116 when the target motor speed is less than the current motor speed.
The target speed module 202 generates the target speed signal based on the speed requested by the user and/or electronic controller. For example, the user may use a switch to select from a range of speeds. The electronic controller may also request the target motor speed based on sensed ambient temperature. For example, when the rotor 116 drives a fan blade, the electronic controller may request an increase in the target motor speed when the ambient temperature increases. Accordingly, the increase in the target motor speed may result in an increased airflow that cools components connected to the motor system 100.
Referring now to FIG. 5, a flowchart 400 illustrates a method for operating the motor 102 according to one example of the present disclosure. At 402 the motor control module 104 receives a signal indicating a requested target motor speed. At 404 the target speed module 202 converts the signal into a target speed signal, which may include a digital or analog representation of the signal that may be referred to as a DAC value.
At 406 if target speed signal from the target speed module indicates a target motor speed that is different than the current motor speed, control moves to 408. At 408 if the target speed signal indicates a motor speed that is greater than the current motor speed, at 410 the speed control module 218 generates a signal to increase power to the motor 102 based on the target speed signal. Otherwise, at 412 the speed control module 218 generates a signal to decrease power to the motor 102 based on the target speed signal.
At 414 the PWM control module 210 adjusts the initial torque angle of the target speed signal. The PWM control module 210 adjusts the initial torque angle of the target speed signal by shifting a waveform representation of the target speed signal to the left by a torque angle adjustment value, as discussed above.
The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims.

## Claims

1. A system comprising:
a target speed module configured to provide a first waveform based on a first speed setting for a motor, wherein the motor includes a first stator coil and a second stator coil, and wherein a start of a first cycle of the first waveform corresponds to at least one of a first current or a first voltage; and
a pulse-width modulation (PWM) control module configured to shift a phase of the first waveform by a torque angle adjustment value to generate a second waveform,
wherein the torque angle adjustment value is included in a set of torque angle adjustment values corresponding to the motor,
wherein the set of torque angle adjustment values corresponding to the motor is selected from pluralities of different torque angle adjustment values for different types of motors by sensing a type of the motor upon power-up,
wherein a start of a first cycle of the second waveform corresponds to at least one of a second voltage or a second current,
wherein the second voltage is greater than the first voltage, and the second current is greater than the first current,
wherein the PWM control module is configured to
control the motor based on the second waveform, and
increase in response to the first stator coil driving the motor slower than the second stator coil, an initial torque angle applied to the first stator coil and not to the second stator coil.

2. The system of claim 1, further comprising memory storing a plurality of different torque angle adjustment values each corresponding to a different range of speeds for the motor.

3. The system of claim 2, wherein the PWM control module is configured to:
select a first of the plurality of different torque angle adjustment values, and
shift the phase of the first waveform to generate the second waveform based on the first of the plurality of different torque angle adjustment values.

4. The system of claim 2, wherein the plurality of different torque angle adjustment values increase non-linearly with respect to each other.

5. The system of claim 2, wherein:
the memory stores the pluralities of different torque angle adjustment values including the plurality of different torque angle adjustment values, and
each of the pluralities of different torque angle adjustment values corresponds to a different type of the motor.

6. The system of claim 1, wherein a start of a second cycle of the second waveform provides equivalent power as a start of a second cycle of the first waveform.

7. The system of claim 1, wherein the motor drives a fan.

8. The system of claim 7, wherein:
the first speed setting is greater than a second speed setting, and
the target speed module is configured to provide the first waveform based on the first speed setting following the target speed module providing a third waveform based on the second speed setting,
wherein the second speed setting is based on an increase in ambient temperature of a device that includes the motor.

9. The system of claim 7, further comprising a speed determination module configured to provide a current speed signal based on first signals from a Hall-effect sensor positioned relative to the motor or a back electromotive force (BEMF) detection module detecting a BEMF from the motor.

10. The system of claim 9, further comprising:
a speed control module configured to provide second signals to the PWM control module based on a target speed signal and the current speed signal,
wherein the PWM control module is configured to control the motor based on the second signals.

11. A method comprising:
generating a first waveform based on a first speed setting for a motor,
wherein the motor includes a first stator coil and a second stator coil, and
wherein a start of a first cycle of the first waveform corresponds to at least one of a first current or a first voltage; and
shifting a phase of the first waveform by a torque angle adjustment value to generate a second waveform,
wherein the torque angle adjustment value is included in a set of torque angle adjustment values corresponding to the motor,
wherein the set of torque angle adjustment values corresponding to the motor is selected from pluralities of different torque angle adjustment values for different types of motors by sensing a type of the motor upon power-up,
wherein a start of a first cycle of the second waveform corresponds to at least one of a second voltage or a second current, and
wherein the second voltage is greater than the first voltage, and the second current is greater than the first current;
controlling the motor based on the second waveform; and
increasing, in response to the first stator coil driving the motor slower than the second stator coil, an initial torque angle applied to the first stator coil and not o the second stator coil.

12. The method of claim 11, further comprising storing a plurality of different torque angle adjustment values each corresponding to a different range of speeds for the motor.

13. The method of claim 12, further comprising:
selecting a first of the plurality of different torque angle adjustment values; and
shifting the phase of the first waveform to generate the second waveform based on the first of the plurality of different torque angle adjustment values.

14. The method of claim 12, wherein the plurality of different torque angle adjustment values increase non-linearly with respect to each other.

15. The method of claim 12, further comprising:
storing the pluralities of different torque angle adjustment values including the plurality of different torque angle adjustment values,
wherein each of the pluralities of different torque angle adjustment values corresponds to a different type of the motor.

16. The method of claim 11, wherein a start of a second cycle of the second waveform provides equivalent power as a start of a second cycle of the first waveform.

17. The method of claim 11, further comprising driving a fan with the motor.

18. The method of claim 17, wherein the first speed setting is greater than a second speed setting, the method further comprising:
generating the first waveform based on the first speed setting in response to generating a third waveform based on the second speed setting,
wherein the second speed setting is based on an increase in ambient temperature of a device that includes the motor.

19. The method of claim 17, further comprising generating a current speed signal based on first signals from a Hall-effect sensor positioned relative to the motor or a back electromotive force (BEMF) detection module detecting a BEMF from the motor.

20. The method of claim 19, further comprising:
generating second signals based on a target speed signal and the current speed signal; and
controlling the motor based on the second signals.