Patent Description:
The use of brushless direct-current (BLDC) motors in power tools provides efficiency and power output improvements. These motors are powered by an inverter bridge including power switching elements. A controller of the power tool controls the power switching elements, for example, using pulse-width modulated (PWM) drive signals to operate the motor. The duty cycle of the PWM signals can be varied to vary the speed of rotation of the motor.

<CIT> describes that when a brushless motor is rotated at low speeds, the brushless motor is driven by exciting a first phase coil, a second phase coil and a third phase coil by a sine wave PWM system having a phase difference of <NUM>° from each other to perform a torque control. The crest value of the sine wave is controlled in response to torque greatly fluctuated by a load. When the brushless motor is rotated at high speeds, the brushless motor is driven by a square wave PWM system based on a three-phase <NUM>° conduction type.

<CIT> describes a high-frequency detection pulse injection method of a brushless direct current motor. In the method a high-frequency source is utilized for generating high-frequency detection pulse signals, the high-frequency detection pulse signals are respectively coupled onto each phase of power supply wires and windings of the brushless direct current motor through a coupling circuit, each phase of end voltage values of the brushless direct current motor are detected through a voltage sensor, the high-frequency voltage components of each phase of end voltage are obtained from each phase of end voltage values respectively through a band-pass filter, position signals are obtained according to amplitude, phase position or instantaneous value differences of the high-frequency voltage components, and a controller realizes the non-position sensor control of the brushless direct current motor according to the position signals.

Unlike in brushed motors, a position of the rotor may be determined in order to control operation of the BLDC motor. For example, systems with BLDC motors may use sensors (e.g., Hall sensors) or encoders (e.g., rotary encoders) to detect the position of magnets in the rotor and, thereby, control the timing of the drive signals to the power switching elements.

In BLDC motors, the inclusion of rotor position sensors adds cost and increases size of the power tools, as well as increases inefficiencies of driving the motor. Accordingly, for at least these reasons, there is a need for at least one or more of sensorless motors, methods for detecting rotor position in sensorless motors, and techniques for operating the sensorless motors.

Solutions to address the above need are defined by the independent claims <NUM> and <NUM>, preferred embodiments are defined by the dependent claims.

Methods described herein provide for automatic control of switching for driving a sensorless motor of a power tool. The methods include determining, using a motor controller, a first load point based on user inputs and determining, using the motor controller, a first motor control technique corresponding to the first load point. The method also includes driving the motor based on the first motor control technique. The method further includes determining, using the motor controller, a change from the first load point to a second load point, and determining, using the motor controller, a second motor control technique corresponding to the second load point. The method includes driving the motor based on the second motor technique.

Power tools described herein provide include a sensorless motor, an inverter bridge configured to provide operating power to the motor, and a motor controller coupled to the inverter bridge. The motor controller is configured to determine a first load point based on user inputs and determine a first motor control technique corresponding to the first load point. The motor controller is also configured to drive, using the inverter bridge, the motor based on the first motor control technique. The motor controller is further configured to determine a change from the first load point to a second load point and determine a second motor control technique corresponding to the second load point. The motor controller is configured to drive, using the inverter bridge, the motor based on the second motor technique.

Methods described herein provide for automatic control of switching for driving a sensorless motor of a power tool. The methods include detecting, using a motor controller, power tool operating parameters, and determining, using the motor controller, a load point of the power tool based on the power tool operating parameters. The methods also include determining, using the motor controller, a motor control technique corresponding to the load point and driving, using the motor controller, the motor based on the motor control technique.

Power tools described herein include a sensorless motor, an inverter bridge configured to provide operating power to the motor, and a motor controller coupled to the inverter bridge. The motor controller is configured to detect power tool operating parameters and determine a load point of the power tool based on the power tool operating parameters. The motor controller is also configured to determine a motor control technique corresponding to the load point and drive, using the inverter bridge, the motor based on the motor control technique.

Methods described herein provide for high-frequency injection rotor position detection in a sensorless motor of a power tool. The methods include coupling, using a coupling circuit, a high-frequency injection signal to the motor and detecting, using the motor controller, a motor response to the high-frequency injection signal. The methods further include determining, using the motor controller, rotor position based on motor response while maintaining lower switch frequency on an inverter bridge and driving, using the motor controller, the motor based on the detected rotor position.

Power tools described herein include a sensorless motor, a coupling circuit, an inverter bridge configured to provide operating power to the motor, and a motor controller coupled to the inverter bridge and the coupling circuit. The coupling circuit is configured to couple a high-frequency injection signal to the motor. The motor controller is configured to detect motor response to the high-frequency injection signal and determine rotor position based on motor response while maintaining lower switch frequency on the inverter bridge. The motor controller is also configured to drive, using the inverter bridge, the motor based on the detected rotor position.

Before any embodiments are explained in detail, it is to be understood that the embodiments are not limited in its application to the details of the configuration and arrangement of components set forth in the following description or illustrated in the accompanying drawings. The embodiments are capable of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. The use of "including," "comprising," or "having" and variations thereof are meant to encompass the items listed thereafter and equivalents thereof as well as additional items.

In addition, it should be understood that embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiment, the electronic-based aspects may be implemented in software (e.g., stored on non-transitory computer-readable medium) executable by one or more processing units, such as a microprocessor and/or application specific integrated circuits ("ASICs"). As such, it should be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components, may be utilized to implement the embodiments. For example, "servers," "computing devices," "controllers," "processors," etc., described in the specification can include one or more processing units, one or more computer-readable medium modules, one or more input/output interfaces, and various connections (e.g., a system bus) connecting the components.

Relative terminology, such as, for example, "about," "approximately," "substantially," etc., used in connection with a quantity or condition would be understood by those of ordinary skill to be inclusive of the stated value and has the meaning dictated by the context (e.g., the term includes at least the degree of error associated with the measurement accuracy, tolerances [e.g., manufacturing, assembly, use, etc.] associated with the particular value, etc.). Such terminology should also be considered as disclosing the range defined by the absolute values of the two endpoints. For example, the expression "from about <NUM> to about <NUM>" also discloses the range "from <NUM> to <NUM>". The relative terminology may refer to plus or minus a percentage (e.g., <NUM>%, <NUM>%, <NUM>%, or more) of an indicated value.

It should be understood that although certain drawings illustrate hardware and software located within particular devices, these depictions are for illustrative purposes only. Functionality described herein as being performed by one component may be performed by multiple components in a distributed manner. Likewise, functionality performed by multiple components may be consolidated and performed by a single component. In some embodiments, the illustrated components may be combined or divided into separate software, firmware and/or hardware. For example, instead of being located within and performed by a single electronic processor, logic and processing may be distributed among multiple electronic processors. Regardless of how they are combined or divided, hardware and software components may be located on the same computing device or may be distributed among different computing devices connected by one or more networks or other suitable communication links. Similarly, a component described as performing particular functionality may also perform additional functionality not described herein. For example, a device or structure that is "configured" in a certain way is configured in at least that way but may also be configured in ways that are not explicitly listed.

<FIG> illustrates one example embodiment of a power tool <NUM> incorporating a brushless direct-current (BLDC) motor. The power tool <NUM> is, for example, a brushless hammer drill having a housing <NUM> with a handle portion <NUM> and motor housing portion <NUM>. The power tool <NUM> further includes an output driver <NUM> (illustrated as a chuck), a torque setting dial <NUM>, a forward/reverse selector <NUM>, a trigger <NUM>, a battery interface <NUM>, and a light <NUM>. Although <FIG> illustrates a hammer drill, in some embodiments, the motors and motor drives described herein are incorporated into other types of power tools including drill-drivers, impact drivers, impact wrenches, angle grinders, circular saws, reciprocating saws, string trimmers, leaf blowers, vacuums, and the like.

The power tool <NUM> incorporates a brushless direct current (DC) motor <NUM> (<FIG>). In a brushless motor power tool, such as power tool <NUM>, switching elements are selectively enabled and disabled by control signals from a controller to selectively apply power from a power source (e.g., battery pack) to drive a brushless motor <NUM>. With reference to <FIG>, the motor <NUM> includes a stator <NUM> and a rotor <NUM> positioned at least partially within the stator <NUM>. The stator <NUM> includes a plurality of individual laminations stacked together to form a stator core <NUM> (e.g., a stator stack). The stator <NUM> includes inwardly extending stator teeth <NUM> and slots <NUM> defined between each pair of adjacent stator teeth <NUM>. In the example illustrated, the stator <NUM> includes six stator teeth <NUM> defining six stator slots <NUM>. The stator <NUM> further includes stator windings <NUM> at least partially positioned within the slots <NUM>. In the example illustrated, the stator windings <NUM> includes six coils 174A-174F connected in a three phase, parallel delta configuration. In alternative embodiments, the coils 174A-174F may be connected in alternative configurations (e.g., series, delta, etc.).

The rotor <NUM> includes individual rotor laminations stacked together to form a rotor core <NUM>. A rotor shaft <NUM> is positioned through a center aperture <NUM> in the rotor core <NUM>. The rotor <NUM> includes a plurality of slots <NUM> in which permanent magnets <NUM> are received (only one of which is shown in <FIG>).

<FIG> illustrates one example embodiment of a motor drive <NUM> used to control operation of the motor <NUM>. The motor drive <NUM> includes a motor controller <NUM>, an inverter bridge <NUM>, and the motor <NUM>. In some embodiments, the motor controller <NUM> is implemented as a microprocessor with a separate memory. In other embodiments, the motor controller <NUM> is implemented as a microcontroller (with memory on the same chip). In other embodiments, the motor controller <NUM> may be implemented partially or entirely as, for example, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), hardware implemented state machine, etc., and the memory may not be needed or modified accordingly. The motor controller <NUM> controls the operation of the motor <NUM> through the inverter bridge <NUM>. The motor controller <NUM> is communicatively coupled to user inputs <NUM>, and a current sensor <NUM>. The user inputs <NUM> may include the trigger switch <NUM>, the torque setting dial <NUM>, the forward/reverse selector <NUM>, a mode selector, and the like. The trigger switch <NUM> may include, for example, a potentiometer, a distance sensor, or the like to determine and provide an indication of the distance the trigger is pulled to the motor controller <NUM>. The current sensor <NUM> is coupled to the motor coils <NUM> or the inverter bridge <NUM> to detect the current flowing through each coil <NUM>. The motor controller <NUM> performs variable speed control of the motor <NUM> through the inverter bridge <NUM> based on one or more of the inputs received from the user input <NUM> and motor feedback received from the current sensor <NUM>.

The inverter bridge <NUM> controls the power supply to the three-phase (e.g., U, V, and W) motor <NUM> of the power tool <NUM>. The inverter bridge <NUM> includes high-side field effect transistors (FETs) <NUM> and low-side FETs <NUM> for each phase of the motor <NUM>. The high-side FETs <NUM> and the low-side FETs <NUM> are controlled by corresponding gate drivers implemented in, for example, the motor controller <NUM>.

The drain of the high-side FETs <NUM> is connected to a positive DC bus <NUM> (e.g., a power supply), and the source of the high-side FETs <NUM> is connected to the motor <NUM> (for example, phase coils <NUM> of the motor <NUM>) to provide the power supply to the motor <NUM> (i.e., the corresponding phase coil <NUM>) when the high-side FETs <NUM> are closed. In other words, the high-side FETs <NUM> are connected between the positive DC bus <NUM> and the motor phase coils <NUM>.

The drain of the low-side FETs <NUM> is connected to the motor <NUM> (for example, phase coils <NUM> of the motor <NUM>) and the source of the low-side FETs <NUM> is connected to negative DC bus <NUM> (e.g., ground). In other words, the low-side FETs <NUM> are connected between the motor phase coils <NUM> and negative DC bus <NUM>. The low-side FETs <NUM> provide a current path between the motor phase coil <NUM> and the negative DC bus <NUM> when closed.

In the example illustrated, to the motor drive <NUM>, the motor <NUM> appears as coils <NUM> connected in a DELTA configuration. The below explanation is provided with the DELTA configuration as an example, however, the explanation is equally applicable to other configurations (e.g., a WYE configuration) and the controls for these other configurations are obtained using simple mathematical transforms. The three motor terminals are normally referred to as U, V, and W terminals. The inverter bridge <NUM> allows the motor drive <NUM> to connect each terminal to either the positive DC bus <NUM>, the negative DC bus <NUM>, or leave the terminal open as explained above. The motor controller <NUM> selectively enables the FETs <NUM>, <NUM> to activate the coils <NUM> using pulse-width modulated signals provided to the FETs <NUM>, <NUM>. The selective activation of the phase coils <NUM> produces a force on the permanent magnets <NUM> of the rotor <NUM> to rotate the rotor <NUM>. The rotor shaft <NUM> rotates with the rotor <NUM> to operate the output driver <NUM> of the power tool <NUM>.

Conventional motors include Hall sensors (or other rotary encoders) that provide rotor magnet position information to the motor controller <NUM>. The motor controller <NUM> selectively activates each phase U, V, and W based on the rotor magnet position information. Hall sensors and other external position sensors require additional parts and wiring that add cost, size, and design complexity to the motor drive <NUM>. The presence of sensors also adds cost to the motor <NUM> and reduces reliability of operation at high temperatures.

During operation of the motor <NUM>, a current passing through a motor phase coil <NUM> produces a force of the rotor magnets <NUM> to rotate the rotor <NUM>. Inversely, when a rotor magnet <NUM> passes by a phase coil <NUM>, the rotor magnet <NUM> generates a current or back electro-motive force (BEMF) in the phase coil <NUM>. This BEMF can be detected in sensorless motors to determine the rotor position and drive the motor <NUM> accordingly. Sensorless motors refer to a type of motor that does not include a Hall-effect sensor or other external sensors (e.g., external angular position sensors) to detect a position of the rotor <NUM>. Rather, sensorless motors use the BEMF generated in the inactive phase coils <NUM> to determine the rotor position. Sensorless motor drives <NUM> reduce cost and require fewer interconnects between the motor <NUM> and other components, thereby simplifying the motor design.

Typical motor control includes activating two phases and deactivating one phase of the motor <NUM>. The inactive phase is used to detect the BEMF generated by the rotor <NUM>. For each sequential activation of the phase coils <NUM>, the BEMF generated in the inactive coil is used to detect, for example, a zero-crossing of the BEMF signal. A rotor position can be detected based on the zero-crossings detected in the BEMF signal. The motor controller <NUM> uses the rotor position as described above to control the rotation of the motor <NUM>.

The motor drive <NUM> may implement several drive techniques, for example, a six-step control (also referred to as block commutation), sinusoidal control, and field oriented control (FOC). Six-step control includes sequential activation of each phase (or block) to produce a torque in the rotor <NUM>. When a rotor magnet <NUM> is "<NUM>" degrees away from an active phase coil <NUM>, the motor <NUM> produces no torque in the rotor <NUM>. When the rotor magnet <NUM> is "<NUM>" degrees away from an active phase coil <NUM>, the motor <NUM> produces a maximum torque in the rotor <NUM>. Six-step control includes the motor controller <NUM> detecting a position of the rotor <NUM> to selectively activate the phase that is "<NUM>" degrees away to produce the maximum torque in the rotor <NUM>. As described above, the motor controller <NUM> detects the rotor position based on the BEMF signal detected in the inactive phase coils <NUM>. As the rotor <NUM> rotates, in response to the motor controller <NUM> determining the rotor position, the motor controller <NUM> activates the next phase coil <NUM> that is "<NUM>" degrees apart from the rotor magnet <NUM> to continue to produce the optimum amount of torque in the rotor <NUM> as the rotor <NUM> rotates.

<FIG> illustrates the motor drive <NUM> for sinusoidal commutation of the motor <NUM>. Unlike six-step control which provides current signals in rectangular blocks of High, Low, or Zero into the coils <NUM> to drive the motor <NUM>, sinusoidal commutation attempts to provide smooth sinusoidal current signals into the coils <NUM>. The motor drive <NUM> of <FIG> is similar to the motor drive <NUM> as illustrated in <FIG>, but with the logical components of the motor controller <NUM> for sinusoidal commutation broken-down and illustrated. The motor drive <NUM> includes a rotor position detector <NUM>, a sinusoidal reference block <NUM>, and a PWM generator <NUM>. For example, the motor controller <NUM> may implement one or more of the rotor position detector <NUM>, the sinusoidal reference block <NUM>, and the PWM generator <NUM> through execution of instructions stored on a memory of the motor controller <NUM>. The rotor position detector <NUM> receives the current detection signals from the current detector <NUM> and provides a rotor position signal to the sinusoidal reference block <NUM>. The sinusoidal reference block <NUM> receives the user inputs <NUM> and the rotor position signal and outputs a sinusoidal control signal to the PWM generator <NUM>. The sinusoidal reference block <NUM> includes, for example, a look-up table having a mapping between user inputs <NUM> (for example, a desired torque, a desired speed, and the like), rotor position, and sinusoidal control signals. The sinusoidal control signals may provide an indication of the desired signal characteristics (e.g., amplitude, frequency, and the like) of the signals that are to be provided to motor coils <NUM> to output the desired torque. The PWM generator <NUM> generates PWM signals and provides the PWM signals to the FETs <NUM>, <NUM>. In the example illustrated, the PWM generator <NUM> illustrated as providing a first PWM signal to a high-side FET <NUM> and a second PWM signal to a low-side FET <NUM>. In some embodiments, additional PWM signals may be provided to other FETs <NUM>, <NUM> to control the current provided to the motor coils <NUM>.

<FIG> illustrates the motor drive <NUM> for field oriented control of the motor <NUM>. Unlike six-step control where coil blocks are commutated sequentially, field orientated control includes providing, for example, a smooth or trapezoidal waveform to the motor coils <NUM> using PWM control of the FETs <NUM>, <NUM>. The motor drive <NUM> of <FIG> is similar to the motor drive <NUM> as illustrated in <FIG>, but with the logical components of the motor controller <NUM> for field oriented control broken-down and illustrated. The motor drive <NUM> includes the rotor position detector <NUM>, a Clarke and Park transform block <NUM>, an error comparator <NUM>, a current regulator <NUM>, an inverse Park transform block <NUM>, and a space vector PWM generator <NUM>. For example, the motor controller <NUM> may implement one or more of the rotor position detector <NUM>, the Clarke and Park transform block <NUM>, the error comparator <NUM>, the current regulator <NUM>, the inverse Park transform block <NUM>, and the space vector PWM generator <NUM> through execution of instructions stored on a memory of the motor controller <NUM>. The rotor position detector <NUM> receives the current detection signals from the current detector <NUM> and provides a rotor position signal to the Clarke and Park transform block <NUM> and the inverse park transform block <NUM>. The Clarke and Park transform block <NUM> receives motor phase current signals from at least two of the motor phases U, V, and W and converts using Clarke transform and then Park transform the motor phase current signals to in-phase stator current (id) signal and quadrature phase stator current (iq) signal. The in-phase and quadrature current signals are provided to the error comparator <NUM>. The error comparator <NUM> also receives the desired in-phase current (idref) signal and desired quadrature current (iqref) signal based on the desired torque from the user inputs <NUM>. The error comparator <NUM> determines the differences between the detected current signals and the desired current signals and provides the error between the detected current signals and the desired current signals to the current regulator <NUM>. The current regulator <NUM> outputs voltage control signals (Vq and Vd) in the quadrature and in-phase domains to the inverse Park transform block <NUM> based on the error signals from the error comparator <NUM>. The inverse Park transform block <NUM> converts using Park transform the voltage control signals to phase voltage control signals. The phase voltage control signals are provided to the space vector PWM generator <NUM>. In some embodiments, an inverse Clarke transform PWM generator may be used instead of the space vector PWM generator <NUM>. The space vector PWM generator <NUM> uses space vector modulation for generating PWM signals that are provided to the inverter bridge <NUM>. In the example illustrated, the space vector PWM generator <NUM> is illustrated as generating three PWM signals provided, respectively, to one high-side FET <NUM> and two low-side FETs <NUM> of the inverter bridge <NUM>. In some embodiments, a different number of PWM signals and different selection of FETs <NUM>, <NUM> may be used to implement field oriented control.

<FIG> illustrate only example embodiments of six-step control, sinusoidal commutation, and field oriented control of the motor <NUM>. The control methods described above may be adjusted according to device and motor specifications and designs. Additionally, other motor control techniques not described above may also be used by the motor controller <NUM> to drive the motor <NUM>.

As discussed above, the motor controller <NUM> is capable of implementing any of the motor control techniques described above. Each of the motor control techniques includes advantages and disadvantages. Particularly, the motor control techniques produce optimal drive at different load and speed conditions. For example, the six-step control may be used at high speeds and low torque, but may be relatively inefficient at low speed. Six-step control may produce torque ripple at low speeds leading to inefficient operation. Six-step control is, however, better at achieving peak torque from the motor for longer periods of time than sinusoidal or field oriented control techniques. Accordingly, motor efficiency can be improved by using the appropriate motor control technique at the appropriate load point. For example, the motor controller <NUM> may store a look-up table correlating a plurality of load points to one of the different kinds of motor control techniques. The motor controller <NUM> may then detect the load point, access the look-up table to determine a motor control technique (selected from a plurality of motor control techniques) that is associated with the load point, and then apply the motor control technique to drive the motor. Accordingly, the motor controller <NUM> drives the motor using different control techniques at different load points.

<FIG> is a flowchart of an example method <NUM> for automatic control switching for driving the motor <NUM> in accordance with some embodiments. In the example illustrated, the method <NUM> includes determining, using the motor controller <NUM>, a first load point based on user inputs <NUM> (at block <NUM>). The motor controller <NUM> receives user inputs <NUM>, for example, a speed input from a trigger switch <NUM>, a torque limit from a torque setting dial <NUM>, a direction signal from a forward/reverse selector <NUM>, an operation mode from a mode selector, and the like. The motor controller <NUM> determines the load point based on these user inputs <NUM>. For example, the load point is one of a high speed low torque application, a high speed high torque application, a low speed low torque application, a low speed high torque application and the like. In some embodiments, the load point may be a speed setting, for example, a high speed, a medium speed, a low speed (e.g., indicated by an amount of trigger pull when compared to associated thresholds or from a speed selector dial), and the like, or a torque setting, for example, a high torque, a medium torque, a low torque, and the like (e.g., indicated by an amount of trigger pull when compared to associated thresholds or from the torque dial <NUM>). The load point may also be determined based on the application or mode selected using a mode selector of the power tool <NUM>. In some embodiments, the motor controller <NUM> may store a look-up table in a memory of the motor controller <NUM> or the power tool <NUM> that includes a mapping between a plurality of user inputs <NUM> and associated load points (e.g., low, medium, or high load points).

The method <NUM> also includes determining, using the motor controller <NUM>, a first motor control technique corresponding to the first load point (at block <NUM>). As discussed above, the motor controller <NUM> may store a look-up table in a memory of the motor controller <NUM> or the power tool <NUM>. The look-up table includes a mapping between a plurality of load points and motor control techniques. The motor controller <NUM> selects the first motor control technique (for example, six-step control, sinusoidal commutation, field oriented control, or the like) that corresponds to the first load point.

The method <NUM> further includes driving the motor <NUM> based on the first motor control technique (at block <NUM>). The motor drive <NUM> implements the selected motor control technique as further described above. For example, the motor controller <NUM> drives the motor <NUM> using six-step control, sinusoidal commutation, field oriented control, or the like.

The method <NUM> also includes determining, using the motor controller <NUM>, a change from the first load point to a second load point (at block <NUM>). The motor controller <NUM> continues to analyze user inputs (e.g., periodically during the course of a tool operation) to determine the desired or operating load point of the power tool <NUM>. The motor controller <NUM> determines the change in load point from the first load point to a second load point based on the change in user inputs <NUM>, for example, using similar techniques as described above with respect to block <NUM>. The method <NUM> also includes determining, using the motor controller <NUM>, a second motor control technique corresponding to the second load point (at block <NUM>). As discussed above, the motor controller <NUM> may store a look-up table in a memory of the motor controller <NUM> or the power tool <NUM>. The look-up table includes a mapping between a plurality of load points and motor control techniques. The motor controller <NUM> selects the second motor control technique (for example, six-step control, sinusoidal commutation, field oriented control, and the like) that corresponds to the second load point.

The method <NUM> further includes driving the motor <NUM> based on the second motor control technique (at block <NUM>). The motor drive <NUM> implements the selected motor control technique as further described above. For example, the motor controller <NUM> drives the motor <NUM> using six-step control, sinusoidal commutation, field oriented control, or the like.

<FIG> is a flowchart of an example method <NUM> for automatic control switching for driving the motor <NUM> in accordance with some embodiments. In the example illustrated, the method <NUM> includes detecting, using the motor controller <NUM>, the power tool operating parameters (at block <NUM>). The motor controller <NUM> is in communication with various sensors of the power tool <NUM> to determine the operating parameters of the power tool <NUM> or the motor <NUM>. The motor controller <NUM> may use the sensors to determine motor current, motor voltage, torque output, and the like of the power tool <NUM>.

The method <NUM> also includes determining, using the motor controller <NUM>, a load point of the power tool <NUM> based on the power tool operating parameters (at block <NUM>). For example, the load point is one of a high speed low torque application, a high speed high torque application, a low speed low torque application, a low speed high torque application and the like. In some embodiments, the load point may be a speed setting, for example, a high speed, a medium speed, a low speed, and the like or a torque setting, for example, a high torque, a medium torque, a low torque, and the like. The motor controller <NUM> determines the load point based on the sensor outputs monitored by the motor controller <NUM>.

The method <NUM> further includes determining, using the motor controller <NUM>, a motor control technique corresponding to the load point (at block <NUM>). As discussed above, the motor controller <NUM> may store a look-up table in a memory of the motor controller <NUM> or the power tool <NUM>. The look-up table includes a mapping between a plurality of load points and motor control techniques. The motor controller <NUM> selects the motor control technique (for example, six-step control, sinusoidal commutation, field oriented control, and the like) that corresponds to the load point. The method <NUM> includes driving the motor <NUM> based on the motor control technique (at block <NUM>). The motor drive <NUM> implements the selected motor control technique as further described above. Similarly as discussed above with method <NUM>, the method <NUM> may further include determining a change in the load point and automatically switching the motor control technique to one corresponding to the new load point.

One example implementation of the methods <NUM> and <NUM> may include seating and driving fasteners using the power tool <NUM>. Seating a fastener may include precision control and low speed at the beginning of the fastening operation. The motor controller <NUM> detects the low speed and determines that the low speed corresponds to the first load point of the power tool <NUM>. Typically, sinusoidal commutation or field oriented control is better suited for low speed applications as sinusoidal commutation and field oriented control provide better precision with low torque ripple output compared to the six-step control. The motor controller <NUM> therefore determines that, for example, field oriented control corresponds to the detected load point. The motor controller <NUM> drives the motor <NUM> based on field oriented control. Once the fastener is seated, the power tool <NUM> may operate at a high speed to drive the fastener into the workpiece. The motor controller <NUM> detects the change from low speed to high speed. Typically six-step control is better suited for high speed operation as six-step control provides longer run times before overheating and can achieve higher peak performance than sinusoidal or field oriented control. The motor controller <NUM> therefore determines that six-step control corresponds to high speed operation based on, for example, a pre-stored look-up table. In response, the motor controller <NUM> drives the motor <NUM> based on six-step control until the fastening operation is complete.

As discussed above, the motor <NUM> is a sensorless motor and does not include Hall-effect sensors or external angular position sensors (i.e., external to the motor components). One alternative to using external position sensors to detect rotor position and control the motor is high-frequency injection rotor position sensing. Typically, high-frequency injection rotor position sensing includes space vector modulation to inject higher order harmonic frequencies through inverter bridge modulation. The high-frequency signals are injected onto the PWM signals provided to the FETs <NUM>, <NUM>. The motor <NUM> response to these frequencies is used to determine the rotor position at start up and during operation. However, high-frequency injection through inverter modulation requires higher switching speeds, which increases inverter bridge <NUM> losses and decreases performance of the motor <NUM>.

<FIG> illustrates the motor drive <NUM> for high-frequency injection rotor position detection in accordance with some embodiments. In some embodiments, high-frequency refers to a frequency greater than the nominal switching frequency of the inverter bridge <NUM>. In some examples, the nominal switching frequency of the inverter bridge <NUM> is a frequency between about <NUM> and <NUM>. The motor drive <NUM> of <FIG> is similar to the motor drive <NUM> as illustrated in <FIG>, but with the logical components of the motor controller <NUM> for high-frequency injection broken-down and illustrated. The motor drive <NUM> includes a coupling circuit <NUM>, a de-coupling circuit <NUM>, a response measurement block <NUM>, and a rotor position estimator block <NUM>. For example, the motor controller <NUM> may implement one or more of the response measurement block <NUM> and the rotor position estimator block <NUM>. The coupling circuit <NUM> receives a high-frequency injection signal from, for example, a signal generator <NUM>, which may include an oscillator to generate the high-frequency injection signal. The coupling circuit <NUM> couples the injection signal onto the DC bus <NUM>, <NUM>. In the example illustrated, the coupling circuit <NUM> couples the injection signal on to the positive DC bus <NUM>. In other examples, the coupling circuit <NUM> may couple the injection signal on to the negative DC bus <NUM> or both the positive DC bus <NUM> and the negative DC bus <NUM>. In some embodiments, the coupling circuit <NUM> includes a capacitor that capacitively couples the signal generator <NUM> to the DC bus <NUM>, <NUM>. In some embodiments, the coupling circuit <NUM> includes a transformer (e.g., coil of wound wire) that couples the signal generator <NUM> to the DC bus <NUM>, <NUM>. The DC bus <NUM>, <NUM> provides the injection signal along with the DC operation voltage signal to the inverter bridge <NUM> for operation of the motor <NUM>.

The de-coupling circuit <NUM> is connected to the motor phase coils <NUM>. The de-coupling circuit <NUM> is selectively connected to the inactive phase coil <NUM> (also referred to as non-driven phase) to extract the motor response to the high-frequency injection. The de-coupling circuit <NUM> de-couples the response signal from other signals detected on the inactive phase coil <NUM>. The de-coupling circuit <NUM> provides the response signal to the response measurement block <NUM>. The de-coupling circuit <NUM> may have a similar structure as the coupling circuit. For example, the de-coupling circuit <NUM> may capacitively couple the inactive phase coil <NUM> to the response measurement block <NUM>, or may include a transformer to couple the inactive phase coil <NUM> to the response measurement block <NUM>. For example, the response signal is a current signal that is the response of the motor <NUM> to the high-frequency injection signal. The de-coupling circuit <NUM> provides the response current signal as the response signal to the response measurement block <NUM>. In the example illustrated, for simplifying the explanation, a single de-coupling circuit <NUM> is illustrated and the de-coupling circuit <NUM> is connected to a single motor terminal. However, the de-coupling circuit <NUM> may be connected to all motor terminals U, V, and W to detect the response of each motor terminal during the motor terminal's inactive phase. Alternatively, separate de-coupling circuits <NUM> may be provided, one for each of the motor terminals, to provide the response signal from each motor terminal to the response measurement block <NUM>.

The response measurement block <NUM> receives the response signal from the de-coupling circuit <NUM> and measures the motor's response to the high-frequency injection signal. For example, the response measurement block <NUM> detects the impedance (for example, reluctance, inductance, and the like) of each motor coil <NUM> in response to the high-frequency injection. The response measurement block <NUM> provides the measured response to the rotor position estimator block <NUM> as a measurement signal. The characteristic of the measured signal could then be used to determine information about the motor and rotor position. For example, in some embodiments, the amplitude difference or phase difference (delay) between the injected and measured signals indicates the rotor position.

The rotor position estimator block <NUM> receives the measurement signal from the response measurement block <NUM> and determines the rotor position, rotor speed, or both based on the measurement signal. The motor controller <NUM> may store a look-up table including a mapping between different impedance measurements and rotor positions. The rotor position estimator block <NUM> determines the rotor position by referring the look-up table to determine the rotor position corresponding to the impedance measurement. The rotor position estimator block <NUM> may use the changing rotor position to also determine the rotation speed of the motor <NUM>.

In some embodiments, the de-coupling circuit <NUM>, the response measurement block <NUM>, and/or the rotor position estimator block <NUM> are provided in the rotor position detector <NUM> (see <FIG> and <FIG>). The motor <NUM> is then driven by the motor drive <NUM> based on the rotor position and/or rotor speed provided by the rotor position detector <NUM> in accordance with any of the motor control techniques described above without the need of a separate rotor position sensor (for example, a Hall sensor, or external position sensor).

<FIG> illustrates the motor drive <NUM> for high-frequency injection rotor position detection in accordance with some embodiments. The motor drive <NUM> of <FIG> is similar to the motor drive <NUM> of <FIG>. However, in the example illustrated in <FIG>, the high-frequency injection signal is coupled directly at the motor terminals U, V, and W rather than the DC bus <NUM>, <NUM>. The coupling circuit <NUM> couples the high-frequency injection signal at the junction of the high-side FETs <NUM> and the low-side FETs <NUM>. In some embodiments, the coupling circuit <NUM> couples the high-frequency injection signal directly on the terminals U, V, and W of the motor <NUM>.

In the example illustrated in <FIG>, a single coupling circuit <NUM> is illustrated and the coupling circuit <NUM> is connected to a single motor terminal. However, the coupling circuit <NUM> may be connected to all motor terminals U, V, and W to provide the high-frequency injection signal to each motor terminal. Alternatively, separate coupling circuits <NUM> may be provided, one for each of the motor terminals, to provide the injection signal from the signal generator <NUM> to each motor terminal. For example, the motor controller <NUM> may control the coupling circuit(s) <NUM> to inject the high-frequency signal to a motor terminal U, V, and W when the corresponding high-side FET <NUM> of the motor terminal is closed and the corresponding low-side FET <NUM> of the motor terminal is open.

In some embodiments, the motor controller <NUM> injects a third harmonic frequency signal into the DC bus <NUM>, <NUM> or the motor terminals U, V, and W using space vector modulation. In this example, the third harmonic frequency refers to a frequency approximately three times the frequency of the output signal of the inverter bridge <NUM> (e.g., when the output signal of the inverter bridge <NUM> is <NUM>, the injected signal is about <NUM>). The rotor position detector <NUM> determines the motor response to the third harmonic injection to estimate the rotor position and speed. Third harmonic injection creates a sinusoidal BEMF response in the inactive phase terminals. Accordingly, third harmonic injection provides for a more accurate rotor position and rotor speed estimate.

<FIG> illustrates the motor drive <NUM> for high-frequency injection rotor position detection in accordance with some embodiments. The motor drive <NUM> of <FIG> is similar to the motor drives <NUM> of <FIG> and <FIG>. However, in the example illustrated in <FIG>, the high-frequency signal is injected into an injection coil <NUM>. The injection coil <NUM> receives the high-frequency injection signal and is not used to power the motor <NUM>. Particularly, the coupling circuit <NUM> provides the high-frequency injection signal from the signal generator <NUM> to the injection coil <NUM>. In these embodiments, the response of the inactive coils <NUM> is similarly detected as described above with respect to <FIG> and <FIG>. The rotor position and/or speed are detected based on the motor's response to high-frequency injection into the injection coil <NUM>. As discussed above, space vector modulation with third harmonic injection in the injection coil <NUM> may be used to detect the motor <NUM> response to increase the accuracy of rotor position estimation. In some embodiments, the injection coil <NUM> may be provided around an existing phase coil <NUM>. <FIG> illustrates one example placement of the injection coil <NUM>. In the example illustrated, the injection coil <NUM> is wound around an existing phase coil <NUM> of the motor <NUM>. The injection coil <NUM> may be placed in other locations, for example, at a top or bottom of the stator <NUM>.

<FIG> is a flowchart of an example method <NUM> for high-frequency injection rotor position detection. In the example illustrated, the method <NUM> includes coupling, using the coupling circuit <NUM>, the high-frequency injection signal to the motor <NUM> (at block <NUM>). As discussed above, the coupling circuit <NUM> couples the high-frequency injection signal to one of the DC bus <NUM>, <NUM>, the motor terminals U, V, and W, and the injection coil <NUM>. The high-frequency injection signal generally has a higher frequency than the switching frequency of the inverter bridge <NUM>. Coupling the high-frequency injection signal onto the DC bus or the motor coils <NUM>, <NUM> helps maintain lower switch frequency of the inverter bridge <NUM> and increase performance.

The method <NUM> also includes detecting, using the motor controller <NUM>, motor response to the high-frequency injection signal (at block <NUM>). The motor response is detected on the inactive phase coils <NUM> of the motor <NUM>. The de-coupling circuit <NUM> detects the motor response and provide the response signal to the response measurement block <NUM>. The response measurement block <NUM> measures the motor response based on the response signal, as discussed in further detail above, and provides the measurement signal to the rotor position estimator block <NUM>.

The method <NUM> also includes determining, using the motor controller <NUM>, rotor position based on the motor response, while maintaining lower switch frequency on the inverter bridge <NUM> (at block <NUM>). The rotor position estimator block <NUM> receives the motor response and estimates the rotor position based on the motor response. Particularly, the rotor position estimator block <NUM> receives the measurement signal and estimates the rotor position based on the measurement signal as further described above. As discussed above, because the high-frequency injection signal is provided on the DC bus <NUM>, <NUM> or the motor terminals, the normal switching frequency of the FETs <NUM>, <NUM> of the inverter bridge <NUM> used for operating the motor <NUM> is not affected.

The method <NUM> includes driving the motor <NUM> based on the detected rotor position (at block <NUM>). The rotor position and/or speed detected by the rotor position detector <NUM> is used to drive the motor <NUM>. For example, in six-step control, the rotor position is used to activate the next coil <NUM> or block of the motor <NUM>. In sinusoidal commutation, the rotor position is provided to the sinusoidal reference block <NUM> to determine the PWM control signals for the inverter bridge <NUM>. In field oriented control, the rotor position is provided to a Park transform block of the Clarke and Park transform block <NUM> and the inverse Park transform block to determine the PWM control signals for the inverter bridge <NUM>. The method <NUM> may then loop back to block <NUM>.

Claim 1:
A power tool comprising;
a sensorless motor;
an inverter bridge configured to provide operating power to the sensorless motor; and
a motor controller coupled to the inverter bridge, the motor controller configured to
determine a first load point based on a user input,
determine a first motor control technique corresponding to the first load point, wherein the first load point is one selected from the group consisting of a high speed low torque application, a high speed high torque application, a low speed low torque application, and a low speed high torque application,
drive, using the inverter bridge, the sensorless motor based on the first motor control technique,
determine a change from the first load point to a second load point;
determine a second motor control technique corresponding to the second load point, and
drive, using the inverter bridge, the sensorless motor based on the second motor control technique.