Predictive torque control for power tools
Through the combination of multi-sensor system and machine learning model, the torque of the electric fastener driver motor is monitored and estimated in real time, and the electronic clutch is activated based on the torque signal for control, the problem of inefficient torque detection and control in the prior art is solved, and more efficient and accurate motor torque control is achieved.
Patent Information
- Application Number
- CN202411971264.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-29
- Filing Date
- 2024-12-30
- Publication Date
- 2025-07-01
AI Technical Summary
Existing electric fastener drivers have problems of inefficiency and insufficient accuracy in motor torque detection and electronic clutch control, which leads to the driver being unable to effectively control motor torque under high load conditions.
A multi-sensor system including speed sensors, voltage sensors and current sensors is adopted, combined with machine learning models, to monitor and estimate the torque of the motor in real time, and to activate the electronic clutch based on the torque signal for control.
The torque control accuracy and efficiency of the electric fastener driver under high load conditions is improved, ensuring stable operation and effective braking of the motor.
Smart Images

Figure CN120228675A_ABST
Abstract
Description
[0001] Related Applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 616,170, filed Dec. 29, 2023, the entire content of which is hereby incorporated by reference into this application. Summary of the Invention
[0002] Embodiments of the present invention provide systems and methods for implementing an electronic clutch in an electric fastener driver.
[0003] A fastener driver including the electronic clutch of the present invention includes a motor, a trigger, a battery pack interface configured to receive a battery pack, and a lift assembly operable to be moved by the motor. The fastener driver includes a speed sensor configured to sense the speed of the motor, a voltage sensor configured to sense the voltage of the battery pack, and a current sensor configured to sense the current of the motor. The fastener driver includes a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor. The controller is configured to supply power to the motor in response to actuation of the trigger and based on the position of the lift assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, and receive a current signal indicating the current of the motor from the current sensor. The controller is configured to determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0004] In some aspects, the controller is configured to activate the electronic clutch to electronically brake the motor for a first period of time and supply power to the motor in response to the expiration of the first period of time.
[0005] In some aspects, the fastener driver further includes a position sensor configured to sense the position of the lift assembly, and wherein the controller is further configured to receive a position signal indicating the position of the lift assembly from the position sensor, and wherein the torque of the motor is further determined based on the position of the lift assembly.
[0006] In some aspects, the controller is further configured to set a position command for driving the motor to a first position command when the lift assembly is in a first position, set the position command to a second position command when the lift assembly is in a second position, and set the position command to a third position command when the lift assembly is in a third position.
[0007] In some aspects, the controller is further configured to compare the position command with the position of the lifting assembly sensed by the position sensor and supply power to the motor in response to the position of the lifting assembly being less than the position command.
[0008] In some aspects, the controller is further configured to determine a torque limit based on the position of the lifting assembly and control the motor at least in part based on the torque limit.
[0009] In some aspects, the controller is configured to detect a high load state of the motor based on the speed of the motor and limit the torque value driving the motor in response to the high load state of the motor.
[0010] In some aspects, the controller is further configured to determine a torque value for driving the motor based on the speed of the motor and a speed command signal, compare the torque value with a torque-speed-current look-up table, determine a current value to be supplied to the motor based on the comparison, and supply the current value to the motor to drive the motor.
[0011] In some aspects, the controller is further configured to determine a pulse width modulation (PWM) duty cycle based on the current of the motor and the current value and drive the motor according to the PWM duty cycle.
[0012] A method for operating a fastener driver including an electronic clutch as described in the present invention includes: supplying power to the motor in response to actuation of a trigger and based on the position of the lifting assembly, receiving a speed signal indicating the speed of the motor from a speed sensor, receiving a voltage signal indicating the voltage of a battery pack from a voltage sensor, and receiving a current signal indicating the current of the motor from a current sensor. The method further includes determining the torque of the motor based on the speed signal, the voltage signal, and the current signal, determining whether the torque of the motor is less than or equal to a torque threshold, and activating the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0013] In some aspects, activating the electronic clutch includes activating the electronic clutch to electronically brake the motor for a first period of time, and wherein the method further includes supplying power to the motor in response to the expiration of the first period of time.
[0014] In some aspects, the method further includes receiving a position signal indicating the position of the lifting assembly from a position sensor, wherein the torque of the motor is further determined based on the position of the lifting assembly.
[0015] In some aspects, the method further includes: when the lifting assembly is in the first position, setting the position command for driving the motor to a first position command; when the lifting assembly is in the second position, setting the position command to a second position command; and when the lifting assembly is in the third position, setting the position command to a third position command.
[0016] In some aspects, the method further includes comparing the position command with the position of the lifting assembly sensed by a position sensor, and supplying power to the motor in response to the position of the lifting assembly being less than the position command.
[0017] A fastener driver including the electronic clutch of the present invention includes a motor, a trigger, a battery pack interface configured to receive a battery pack, and a lifting assembly operable to be moved by the motor. The fastener driver includes a speed sensor configured to sense the speed of the motor, a voltage sensor configured to sense the voltage of the battery pack, and a current sensor configured to sense the current of the motor. The fastener driver includes a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor. The controller is configured to supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, and receive a current signal indicating the current of the motor from the current sensor. The controller is configured to provide the speed signal, the voltage signal, and the current signal to a machine learning model, receive an estimate of the torque of the motor from the machine learning model, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0018] In some aspects, the controller is configured to activate the electronic clutch to electronically brake the motor for a first period of time, and supply power to the motor in response to the expiration of the first period of time.
[0019] In some aspects, the fastener driver further includes a position sensor configured to sense the position of the lifting assembly, and wherein the controller is further configured to receive a position signal indicating the position of the lifting assembly from the position sensor, and wherein the torque of the motor is further determined based on the position of the lifting assembly.
[0020] In some aspects, the controller is further configured to set the position command for driving the motor to a first position command when the lifting assembly is in the first position, set the position command to a second position command when the lifting assembly is in the second position, and set the position command to a third position command when the lifting assembly is in the third position.
[0021] In some aspects, the controller is further configured to determine a torque value for driving the motor based on the speed of the motor and the speed command signal, compare the torque value with a torque-speed-current look-up table, determine a current value to be provided to the motor based on the comparison, and provide the current value to the motor to drive the motor.
[0022] In some aspects, the controller is further configured to determine a pulse width modulation (PWM) duty cycle based on the current of the motor and the current value, and drive the motor according to the PWM duty cycle.
[0023] A fastener driver including the electronic clutch of the present invention includes a motor, a trigger, a battery pack interface configured to receive a battery pack, and a lifting assembly operable to be moved by the motor. The fastener driver includes a sensor configured to sense a characteristic of the fastener driver. The fastener driver includes a controller connected to the trigger, the motor, and the sensor. The controller is configured to supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, and receive a signal indicating a characteristic of the fastener driver from the sensor. The controller is configured to determine the torque of the motor based on the signal from the sensor, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0024] A fastener driver of the present invention includes a motor, a trigger, a battery pack interface configured to receive a battery pack, a lifting assembly operable to be moved by the motor, a speed sensor configured to sense the speed of the motor, a voltage sensor configured to sense the voltage of the battery pack, a current sensor configured to sense the current of the motor, and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor. The controller is configured to supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, receive a current signal indicating the current of the motor from the current sensor, determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, determine the condition of the fastener driver based on the torque of the motor, and provide an indication of the condition of the fastener driver.
[0025] In some aspects, the condition of the fastener driver includes the condition of the lifting assembly.
[0026] In some aspects, the fastener driver further includes a pressurized cylinder and a buffer at the bottom end of the cylinder, wherein the condition of the fastener driver includes the condition of the buffer.
[0027] In some aspects, the fastener driver further includes a pressurizing cylinder, wherein a condition of the fastener driver includes determining that the pressure of the cylinder is below a pressure threshold.
[0028] In some aspects, a condition of the fastener driver includes the motor being jammed.
[0029] The method for determining a condition of a fastener driver according to the present invention includes: supplying power to the motor in response to actuation of a trigger and based on the position of a lifting assembly, receiving a speed signal indicating the speed of the motor from a speed sensor, receiving a voltage signal indicating the voltage of a battery pack from a voltage sensor, receiving a current signal indicating the current of the motor from a current sensor, determining the torque of the motor based on the speed signal, the voltage signal, and the current signal, determining the condition of the fastener driver based on the torque of the motor, and providing an indication of the condition of the fastener driver.
[0030] In some aspects, a condition of the fastener driver includes the condition of a lifting assembly.
[0031] In some aspects, a condition of the fastener driver includes the condition of a buffer located at the bottom end of the cylinder.
[0032] In some aspects, determining the condition of the fastener driver includes determining that the pressure of the cylinder is below a pressure threshold.
[0033] In some aspects, a condition of the fastener driver includes the motor being jammed.
[0034] The fastener driver according to the present invention includes a motor, a trigger, a battery pack interface configured to receive a battery pack, a lifting assembly operable to be moved by the motor, a speed sensor configured to sense the speed of the motor, a voltage sensor configured to sense the voltage of the battery pack, a current sensor configured to sense the current of the motor, and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor. The controller is configured to supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, receive a current signal indicating the current of the motor from the current sensor, determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, and change the firing process of the fastener driver based on the torque of the motor.
[0035] In some aspects, to change the firing process of the fastener driver, the controller is configured to adjust the firing ready position of the lifting assembly based on the torque of the motor.
[0036] In some aspects, to change the firing process of the fastener driver, the controller is configured to reduce the field weakening angle implemented by a field weakening module based on the torque of the motor.
[0037] In some aspects, to change the firing process of the fastener driver, the controller is configured to limit the maximum value of the speed command for driving the motor based on the torque of the motor.
[0038] In some aspects, the controller is further configured to drive the motor based on the changed firing process in response to actuation of the trigger after changing the firing process of the fastener driver.
[0039] The method of operating a fastener driver according to the present invention includes: supplying power to the motor in response to actuation of the trigger and based on the position of the lift assembly, receiving a speed signal indicating the speed of the motor from a speed sensor, receiving a voltage signal indicating the voltage of the battery pack from a voltage sensor, receiving a current signal indicating the current of the motor from a current sensor, determining the torque of the motor based on the speed signal, the voltage signal, and the current signal, and changing the firing process of the fastener driver based on the torque of the motor.
[0040] In some aspects, changing the firing process of the fastener driver based on the torque of the motor includes adjusting the firing ready position of the lift assembly based on the torque of the motor.
[0041] In some aspects, changing the firing process of the fastener driver based on the torque of the motor includes reducing the field weakening angle implemented by the field weakening module based on the torque of the motor.
[0042] In some aspects, changing the firing process of the fastener driver based on the torque of the motor includes limiting the maximum value of the speed command for driving the motor based on the torque of the motor.
[0043] In some aspects, the method includes driving the motor based on the changed firing process in response to actuation of the trigger after changing the firing process of the fastener driver.
[0044] Before explaining any embodiments in detail, it should be understood that the embodiments are not limited in their application to the details of the configuration and arrangement of components set forth in the following description or shown in the drawings. The embodiments can be implemented or realized in various ways. Additionally, it should be understood that the language and terminology used in the present invention are for the purpose of description and should not be regarded as restrictive. The use of "including", "comprising", or "having" and their variants is intended to cover the items listed hereinafter and their equivalents as well as additional items. Unless otherwise specified or limited, the terms "mounted", "connected", "supported", and "coupled" and their variants are used broadly and cover direct and indirect mounting, connection, support, and coupling.
[0045] Unless the context in which they are used clearly indicates otherwise, the articles "a", "an", and "the" shall not be construed to mean "one" or "only one". Instead, these articles shall be construed to mean "at least one" or "one or more than one". Similarly, when the terms "the" or "said" are used to refer to a noun previously introduced by the indefinite article "a" or "an", "the" and "said" mean "at least one" or "one or more than one", unless the usage clearly indicates otherwise in some other way.
[0046] In addition, it should be understood that embodiments can include hardware, software, and electronic components or modules, which for purposes of discussion may be illustrated and described as if most components were implemented only in hardware. However, one of ordinary skill in the art, upon reading this detailed description, will recognize that in at least one embodiment, the electronic aspects can be implemented in software (e.g., stored on a non-transitory computer-readable medium) executable by one or more processing units such as microprocessors and / or application specific integrated circuits ("ASICs"). Accordingly, it should be noted that these embodiments can be implemented using a plurality of hardware- and software-based devices and a plurality of different structural components. For example, "servers", "computing devices", "controllers", "processors", etc. described in a patent specification can include one or more processing units, one or more computer-readable medium modules, one or more input / output interfaces, and various connection components (e.g., a system bus) for connecting the components.
[0047] Relative terms used in connection with a quantity or condition, such as "about", "approximately", "substantially", etc., will be understood by one of ordinary skill in the art to include the stated value and to have the meaning dictated by the context (e.g., the term includes at least the degree of error associated with the measurement precision, tolerances associated with a particular value [e.g., manufacturing, assembly, use, etc.], etc.). Such terms should also be considered to disclose a range defined by the absolute values of two endpoints. For example, the expression "about 2 to about 4" also discloses the range "2 to 4". Relative terms can refer to plus or minus a percentage of the indicated value (e.g., 1%, 5%, 10%).
[0048] It should be understood that although some of the figures illustrate hardware and software within a particular device, these depictions are for illustrative purposes only. The functions described in the present invention as being performed by one component may be performed by multiple components in a distributed manner. Similarly, functions performed by multiple components may be combined and performed by a single component. In some embodiments, the components shown may be combined or divided into separate software, firmware, and / or hardware. For example, the logic and processing may be distributed among multiple electronic processors rather than being located within and performed by a single electronic processor. Regardless of how the hardware and software components are combined or divided, they 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, components described as performing a particular function may also perform additional functions not described in the present invention. For example, a device or structure “configured” in a certain way is at least configured in that way but may also be configured in ways not explicitly listed.
[0049] Accordingly, in the claims, if a device, method, or system is claimed as including, for example, a controller, control unit, electronic processor, computing device, logic element, module, memory module, communication channel, or network, or other elements configured in a certain way to perform, for example, multiple functions, the claim or claimed element should be construed to mean one or more of such elements, where any one of the one or more elements is configured as claimed to perform, for example, any one or more of the multiple functions such that the one or more elements together as a set perform the multiple functions.
[0050] Other features and aspects will become apparent by a careful reading of the following detailed description and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1A A perspective view of an electric fastener driver is shown.
[0052] Figure 1B Shows Figure 1A Another perspective view of the electric fastener driver of
[0053] Figure 1C Shows Figure 1A A partial cross-sectional view of the electric fastener driver of
[0054] Figure 2 Shows a block diagram of a controller for an electric fastener driver according to an embodiment of the present invention for Figures 1A - 1C the electric fastener driver of
[0055] Figure 3 Shows according to an embodiment of the present invention byFigure 2 Block diagram of a control architecture implemented by a controller.
[0056] Figure 4 Shows a block diagram of a control block included in a control architecture according to an embodiment of the present invention. Figure 3 in the control architecture.
[0057] Figure 5 Shows a block diagram of another control block included in a control architecture according to an embodiment of the present invention. Figure 3 in the control architecture.
[0058] Figures 6A - 6B Shows a graph for measuring the absorbed energy of a motor according to an embodiment of the present invention.
[0059] Figure 7 Shows a graph of a dynamic torque limiter according to an embodiment of the present invention.
[0060] Figure 8 Shows a block diagram of a method executed by a controller according to an embodiment of the present invention. Figure 2 in the control architecture.
[0061] Figure 9 Shows a graph of actual torque values and estimated torque values according to an embodiment of the present invention.
[0062] Figures 10A - 10B Shows unfiltered and filtered current signals according to an embodiment of the present invention.
[0063] Figures 11A - 11B Shows unfiltered and filtered position signals according to an embodiment of the present invention.
[0064] Figures 12A - 12B Shows an estimated torque signal according to an embodiment of the present invention.
[0065] Figure 13 Shows a state machine block diagram of an electronic clutch according to an embodiment of the present invention.
[0066] Figure 14 Shows a block diagram of a speed controller according to an embodiment of the present invention.
[0067] Figure 15 Shows a block diagram of a look-up table operation according to an embodiment of the present invention.
[0068] Figure 16 Shows a block diagram of a bus current controller according to an embodiment of the present invention.
[0069] Figure 17Shows another method executed by a controller according to an embodiment of the present invention Figure 2 block diagram.
[0070] Figures 18A - 18B Shows another method executed by a controller according to an embodiment of the present invention Figure 2 block diagram.
[0071] Figure 19 Shows another control block included in a control architecture according to an embodiment of the present invention Figure 3 block diagram.
[0072] Figure 20 Shows another method executed by a controller according to an embodiment of the present invention Figure 2 block diagram.
[0073] Figure 21 Shows another method executed by a controller according to an embodiment of the present invention Figure 2 block diagram.
[0074] Figure 22 Shows a partial cross-sectional view of an electric fastener driver according to an embodiment of the present invention Figure 1A including an initial ram drop position and a modified ram drop position.
[0075] Figure 23 Shows a graph of the change in ram drop position compared to an increase in the number of operating cycles of a fastener driver according to an embodiment of the present invention Figure 1A compared to an increase in the number of operating cycles of a fastener driver.
[0076] Figure 24 Shows a graph of predicted peak torque compared to an increase in the number of operating cycles of a fastener driver according to an embodiment of the present invention Figure 1A compared to an increase in the number of operating cycles of a fastener driver.
[0077] Figure 25 Shows a graph showing the firing ready position and top dead center position based on estimated motor torque adjustment according to an embodiment of the present invention
[0078] Figure 26 Shows a graph showing the firing ready position and top dead center position adjusted based on a signal from a position sensor according to an embodiment of the present invention
[0079] Figure 27 Shows a graph showing the rotation cycle of a lifter according to an embodiment of the present invention Detailed Description
[0080] Figures 1A - 1CShown is an electric fastener driver 10 operable to drive fasteners (e.g., nails, staples, U - shaped staples, etc.) held within a magazine 14 into a workpiece. The fastener driver 10 includes an inner cylinder 18 having a movable piston 22 positioned within the cylinder 18. The fastener driver 10 further includes a driver blade 26 attached to the piston 22 and movable therewith.
[0081] The fastener driver 10 includes a housing 30 having a cylinder receiving portion 34 and a motor receiving portion 38 extending therefrom. The cylinder receiving portion 34 is configured to support the cylinder 18, while the motor receiving portion 38 is configured to support a drive unit 40. The drive unit 40 includes an electric motor 42 and a transmission 82 positioned downstream of the electric motor 42. Additionally, the shown housing 30 includes a handle portion 46 extending from the cylinder receiving portion 34 and a battery pack interface 50 coupled to an opposite end of the handle portion 46. A battery pack 54 is removably coupled to the battery pack interface 50 and supplies power to the drive unit 40. The handle portion 46 supports a trigger 58 that a user presses to initiate a driving cycle of the fastener driver 10.
[0082] See Figure 1C , the driver blade 26 defines a drive axis 62 and includes a plurality of driver blade teeth or lift teeth 74 formed along an edge 78 extending in a direction of the drive axis 62 along the driver blade 26. In particular, the lift teeth 75 project laterally from the edge 78 relative to the drive axis 62. During a driving cycle, the driver blade 26 and the piston 22 are movable along the drive axis 62 between a top dead center (TDC) position and a bottom dead center (BDC) or follower position. The driver blade 26 can further be held in a ready position positioned between the BDC position and the TDC position. The piston 22 is adjacent to a top end 19 of the cylinder 18 at the TDC position, and the piston 22 is adjacent to a bottom end 20 of the cylinder 18 at the BDC position. The fastener driver 10 further includes a rotary lifter 66 supported within the housing 30 by a frame 70. The rotary lifter 66 includes a plurality of rollers 90 supported by a plurality of pins 94. The lifter 66 is supported on a lifter frame 70 and receives torque from the drive unit 40 to rotate the lifter 66. The lifter 66 and the drive unit 40 can be collectively referred to as a lifter assembly 88. As the lifter 66 rotates, the rollers 90 sequentially engage lift teeth 74 formed on the driver blade 26 to return the driver blade 26 along the drive axis 62 from the BDC position toward the TDC position.
[0083] The cylinder 18 includes a buffer 98 located at the bottom end 20 of the cylinder 18. The buffer 98 has a generally annular frustoconical shape and has a central hole 99 therethrough. The hole 99 is coaxial with the drive axis 62, which allows the driver blade 26 to extend through the hole 99. As the piston 22 and the driver blade 26 move from the TDC position toward the BDC position, the piston 22 impacts the buffer 98, and the buffer 98 absorbs the impact from the piston 22 and stops the piston 22 at the BDC position. In some embodiments, the buffer 98 is made of an elastic material (e.g., rubber, elastomeric material, etc.).
[0084] Although the embodiments described in the present invention mainly relate to the fastener driver 10, the methods and operations described in the present invention (e.g., Figure 8 method 800, Figure 17 method 1700, Figures 18A - 18B method 1800, Figure 20 method 2000, etc.) can also be implemented in other types of power tools, such as circular saws, chain saws, screw guns (e.g., drywall screw guns), impact tools (e.g., impact drivers, impact wrenches, hammer drills, etc.).
[0085] In Figure 2 a controller 200 for the fastener driver 10 is shown. The controller 200 is electrically connected and / or communicatively connected to various modules or components of the fastener driver 10. For example, the shown controller 200 is connected to an indicator 245, a current sensor 270, a speed sensor 250, a voltage sensor 272, an auxiliary sensor 274 (e.g., an accelerometer, a workpiece contact sensor, etc.), a position sensor 276, a temperature sensor 278, a trigger 58 (via a trigger switch 258), a power switch network 255, and a power input unit 260.
[0086] The controller 200 includes a plurality of electrical and electronic components that provide power, operation control, and protection to components and modules within the controller 200 and / or the fastener driver 10. For example, the controller 200 particularly includes a processing unit 205 (e.g., a microprocessor, an electronic processor, an electronic controller, a microcontroller, or another suitable programmable device), a memory 225, an input unit 230, and an output unit 235. The processing unit 205 particularly includes a control unit 210, an arithmetic logic unit (“ALU”) 215, and a plurality of registers 220 (shown as a set of registers in Figure 2 ), and is implemented using a known computer architecture (e.g., a modified Harvard architecture, a von Neumann architecture, etc.). The processing unit 205, the memory 225, the input unit 230, the output unit 235, and various modules connected to the controller 200 are connected by one or more control and / or data buses (e.g., a common bus 240). For purposes of illustration, inFigure 2 A control and / or data bus is generally shown. In view of the embodiments described in the present invention, it will be known to those skilled in the art to use one or more control and / or data buses for the interconnection and communication between various modules and components.
[0087] The memory 225 is a non-transitory computer-readable medium, including, for example, a program storage area and a data storage area. The program storage area and the data storage area may include a combination of different types of memories, such as ROM, RAM (e.g., DRAM, SDRAM, etc.), EEPROM, flash memory, hard disk, SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The processing unit 205 is connected to the memory 225 and executes software instructions that can be stored in the RAM of the memory 225 (e.g., during execution), the ROM of the memory 225 (e.g., on a substantially permanent basis), or another non-transitory computer-readable medium such as another memory or disk. The software included in the implementation of the fastener driver 10 can be stored in the memory 225 of the controller 200. The software includes, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. The controller 200 is configured to retrieve and execute instructions related to the control processes and methods described in the present invention from the memory 225. In other embodiments, the controller 200 includes additional, fewer, or different components.
[0088] In response to the user actuating the trigger 58, the controller 200 drives the motor 42 to drive the piston 22 and the driver blade 26. Pressing the trigger 58 actuates the trigger switch 258, and the trigger switch 258 outputs a signal to the controller 200 to drive the motor 42, and thus drive the piston 22 and the driver blade 26. In some embodiments, the controller 200 controls the power switch network 255 (e.g., a FET switch bridge) to drive the motor 42. For example, the power switch network 255 may include a plurality of high-side switch elements (e.g., FETs) and a plurality of low-side switch elements. The controller 200 can control each FET of the plurality of high-side switch elements and the plurality of low-side switch elements to drive each phase of the motor 42. For example, the power switch network 255 can be controlled to cause the motor 42 to decelerate faster. In some embodiments, the controller 200 monitors the rotation of the motor 42 (e.g., the rotation rate of the motor 42, the speed of the motor 42, the position of the motor 42, etc.) via the speed sensor 250. The motor 42 can be configured to drive the mechanism 285 (e.g., the piston 22, the driver blade 26, the firing pin, etc.).
[0089] The indicator 245 is also connected to the controller 200 and receives control signals from the controller 200 to turn on and off or otherwise convey information based on different states of the fastener driver 10. The indicator 245 includes, for example, one or more light-emitting diodes (LEDs) or a display screen. The indicator 245 can be configured to display the condition of the fastener driver 10 or information associated with the fastener driver 10. For example, the indicator 245 can display information related to the operating state of the fastener driver 10, such as a mode or speed setting. The indicator 245 can also display information related to a fault condition or other abnormality of the fastener driver 10. In addition to or as an alternative to the visual indicator, the indicator 245 can also include a speaker or a tactile feedback mechanism to convey information to the user through an audible or tactile output. In some embodiments, the indicator 245 displays information related to the braking operation or clutch operation (e.g., electronic clutch operation) of the controller 200. For example, when the controller 200 is performing a clutch operation, one or more LEDs are activated.
[0090] The battery pack interface 50 is connected to the controller 200 and is configured to couple with the battery pack 54. The battery pack interface 50 includes a combination of mechanical (e.g., battery pack receiving portion) and electrical components that are configured and operable to dock the fastener driver 10 with the battery pack 54 (e.g., mechanically, electrically, and communicatively connect). The battery pack interface 50 is coupled to the power input unit 260. The battery pack interface 50 sends the power received from the battery pack 54 to the power input unit 260. The power input unit 260 includes active and / or passive components (e.g., voltage step-down controller, voltage converter, rectifier, filter, etc.) to regulate or control the power received through the battery pack interface 50 and to the controller 200. In some embodiments, the battery pack interface 50 is also coupled to the power exchange network 255. The operation of the power switch network 255 controlled by the controller 200 determines how power is supplied to the motor 42.
[0091] The current sensor 270 senses the current provided by the battery pack 54, the current associated with the motor 42, or a combination thereof. In some embodiments, the current sensor 270 senses at least one of the phase currents of the motor. The current sensor 270 can be, for example, an in-line phase current sensor, a pulse width modulation center-sampling inverter bus current sensor, or the like. The speed sensor 250 senses the speed of the motor 42. The speed sensor 250 can include, for example, one or more Hall effect sensors. The voltage sensor 272 senses the voltage provided by or associated with the battery pack 54. In some embodiments, the voltage sensor 272 senses other voltages within the fastener driver 10, such as the voltage of the motor 42. The position sensor 276 senses the position of the mechanism 285 (e.g., the piston 22, the driver blade 26, and / or the lifter assembly 88). The position sensor 276 can be an absolute position sensor, such as an optical or mechanical rotary encoder, a magnetic position sensor, a capacitive position sensor, an inductive sensor, or the like. The temperature sensor 278 senses the temperature associated with the fastener driver 10, such as the temperature of the motor 42, the temperature of the switch network 255, the temperature associated with the mechanism 285, and the like.
[0092] The controller 200 is configured to monitor the operating characteristics of the fastener driver 10 to drive the motor 42. For example, Figure 3 A block diagram of a control architecture 300 implemented by the controller 200 is provided. The control architecture 300 particularly includes a position controller 302, a temperature reader module 304, a current reader module 306, a pulse width modulation (PWM) limiter 308, a field weakening module 322, a dynamic commutation module 324, a control state machine 326, and a drive algorithm 310. The drive algorithm 310 particularly includes software and applications for driving the motor 42, such as a speed controller 312, a torque limiter module 314, a brake control module 316, a look-up table 318, and a bus current controller 320. Figure 3 The control architecture 300 shown is merely an example. In other embodiments, the functions of the various modules and controllers can be combined or separated into additional modules.
[0093] The control state machine 326 sets a position command based on the position of the mechanism 285 (as indicated by the position sensor 276) and based on control inputs (e.g., actuation of the trigger 58, detection of the presence of the workpiece based on a signal from the workpiece contact sensor). For example, when the mechanism 285 reaches the firing ready position (e.g., the first position) and the trigger 58 is actuated, the control state machine 326 sets the position command to the firing pin drop position command. The firing ready position may correspond to the TDC position. When the mechanism 285 reaches the firing pin drop position (e.g., the second position), the control state machine 326 sets the position command to the firing pin re-mesh position command. The firing pin drop position may correspond to the BDC position. When the mechanism 285 reaches the firing pin re-mesh position (e.g., the third position), the control state machine 326 sets the position command to the firing ready position command, completing the control loop.
[0094] The position controller 302 receives the position command from the control state machine 326 and receives the position of the mechanism 285 from the position sensor 276. The position controller 302 compares the position command from the control state machine 326 with the actual position of the mechanism 285. If the actual position of the mechanism 285 is less than the commanded position, the position controller 302 outputs a positive speed command. If the actual position of the mechanism 285 is greater than or equal to the commanded position, the position controller 302 outputs a zero speed command. Thus, when the actual position of the mechanism 285 is at or exceeds the position command provided by the control state machine 326, the fastener driver 10 does not perform any operation until the control state machine 326 catches up or corrects the fault condition.
[0095] The temperature reader module 304 receives a temperature signal from the temperature sensor 278 indicating the temperature of the fastener driver 10. For example, the temperature reader module 304 receives a temperature signal indicating the temperature of the mechanism 285. In some embodiments, the temperature reader module 304 receives a temperature signal indicating the temperature of the motor 42 and / or the switch network 255. The temperature reader module 304 converts the temperature signal into a temperature value and then provides it to the drive algorithm 310. In some embodiments, the temperature signal from the temperature sensor 278 is provided directly to the drive algorithm 310. The drive algorithm 310 may use the temperature signal to improve torque repeatability over a wide temperature range.
[0096] The current reader module 306 receives a current signal from the current sensor 270 indicating the current of the motor 42. The current reader module 306 converts the received current signal into a current value (e.g., a voltage indicating the current) and then provides it to the drive algorithm 310. In some embodiments, the current signal from the current sensor 270 is provided directly to the drive algorithm 310.
[0097] The PWM limiter 308 receives the current of the motor 42 from the current reader module 306. The PWM limiter 308 limits the maximum PWM ratio command for driving the motor 42 to prevent a low voltage condition on the switching network 255 (e.g., gate driver). The PWM ratio command limit is provided to the bus current controller 320.
[0098] Figure 4 A block diagram of the control box 400 for controlling the motor 42 is provided. The control state machine 326 outputs a position command based on the position of the mechanism 285 and control inputs (e.g., actuation of the trigger 58, detection of the presence of a workpiece based on a signal from a workpiece contact sensor, etc.). The position controller 302 receives the position command from the control state machine 326 and compares the position command with the actual position of the mechanism 285. When the position of the mechanism 285 is less than the position indicated by the position command, the position controller 302 outputs a positive speed command. When the position of the mechanism 285 is greater than or equal to the position indicated by the position command, the position controller 302 outputs a zero speed command.
[0099] The speed controller 312 receives the speed command from the position controller 302. Additionally, the speed controller 312 receives the speed of the motor 42 (indicated by the speed sensor 250). The speed controller 312 compares the speed command provided by the position controller 302 with the detected speed of the motor 42 to determine the torque for driving the motor 42. For example, if the motor speed is less than the speed command, the speed controller 312 outputs a torque command (e.g., torque value) to increase the speed of the motor 42. If the motor speed is greater than the speed command, the speed controller 312 outputs a torque command to decrease the speed of the motor 42. If the motor speed is equal to the speed command, the speed controller 312 outputs a torque command to maintain the speed of the motor 42.
[0100] The torque command and the motor speed are provided to the look-up table 318. The torque command and the motor speed are compared with the look-up table 318 to determine a current command, such as the current value for driving the motor 42 or the bus current value. The current command is provided to the bus current controller 320. The bus current controller 320 then compares the current command with the measured bus current (e.g., the measured current of the motor 42 provided by the current reader module 306). The bus current controller 320 drives the switching network 255 based on this comparison using a PWM ratio command (e.g., PWM duty cycle command). For example, if the current command is less than the measured bus current, the bus current controller 320 reduces the PWM duty cycle for driving the switching network 255. If the current command is greater than the measured bus current, the bus current controller 320 increases the PWM duty cycle for driving the switching network 255. If the current command is equal to the measured bus current, the bus current controller 320 maintains the PWM duty cycle for driving the switching network 255.
[0101] In some embodiments, the torque limiter module 314 limits the torque command provided by the speed controller 312. Figure 5 A block diagram of a control box 500 for limiting the torque command is provided. A torque setpoint is provided to the torque limiter module 314. The torque setpoint can be a predetermined value stored in the memory 225 to protect the mechanism 285 from over-torque conditions. In some embodiments, the torque setpoint is a function of the lifter position (e.g., the position of the piston 22) that varies throughout the cycle of the fastener driver 10.
[0102] The torque limiter module 314 limits the torque, for example, based on the estimated absorbed energy of the motor 42. The absorbed energy is estimated based on the principle of balancing the mechanical flywheel energy of the motor 42 and the mechanism 285 with the available absorbed energy of the components within the fastener driver 10. For example, the torque setpoint is selected to limit the stress on the various components of the fastener driver 10 in the event of a fastener jam (e.g., a nail jam) or misalignment of the mechanism 285.
[0103] The absorbed energy of the fastener is the integral of torque with respect to angle, and the net absorbed energy of the fastener is the absorbed energy minus the energy transferred by the torque of the motor 42. Figure 6A An example of the absorbed energy when the motor torque remains constant after engagement is provided. Equation 1 provides the absorbed energy balanced with the flywheel energy: [Equation 1] Where: – The reflected inertia of the fastener driver from the motor angle (kg-m²) – The motor speed (rad / s) – The torque setpoint (Nm) – The drive torque (Nm) – The engagement stiffness (Nm / rad) When the torque limit is set to the drive torque, Equation 1 can be rearranged such that the torque limit is set based on the motor speed, torque setpoint, driver fastener inertia, and engagement stiffness, as shown in Equation 2: [Equation 2] Where: – The torque limit (Nm) In another embodiment, all of the energy absorbed by the piston 22 and the driver blade 26 is used to stop the motor 42. When the fastener is driven into the workpiece, the motor 42 returns the piston 22 and the driver blade 26 to their original positions to reload for a new operation (e.g., moving the driver blade 26 and the piston 22 from the BDC position to the TDC position). Thus, once the fastener is secured (e.g., the driver blade 26 is in the BDC position), the motor 42 is powered off, and a negative torque is introduced when the brake is applied. The absorbed energy is absorbed back into the driver blade 26 and the piston 22 (e.g., as binding energy). Figure 6B An example of the absorbed energy when the motor 42 is powered off is provided. Equation 3 provides the absorbed energy balanced with the flywheel energy.
[0104] [Equation 3] When the torque limit is set to the drive torque, Equation 3 can be rearranged such that the torque limit is set based on the motor speed, torque setpoint, drill bit inertia, and engagement stiffness, as shown in Equation 4: [Equation 4] In another embodiment, the torque limit is dynamic and is a function of the system position. Figure 7 A graph 700 illustrating the torque limit as a function of the position of the piston 22 is provided. The graph 700 includes a system limit torque 710, an electronic clutch torque setting 712, a torque limit 714 set by the torque limiter module 314, and an operating torque 716 indicating the torque of the fastener driver 10 operation (e.g., the motor current supplied to the motor 42). Within the first region 702, the piston is fully compressed and the driver blade 26 drops to secure the fastener in the workpiece. At this time, the torque limit 714 is at its highest value T1.
[0105] Within the second region 704, the lifter lug within the lifter assembly 88 re-engages with the striker teeth within the lifter assembly 88. At this time, the torque limit 714 is at its lowest value T2. The torque limit 714 in the second region 704 limits the stress applied by the lifter lug and the striker teeth when they are misaligned, and the system experiences a binding event.
[0106] Within the third region 706, the piston 22 begins to compress partially to complete the reload cycle and prepare the fastener driver 10 to drive the next fastener. The torque limit 714 increases with the operating torque 716 to reload the piston 22 until the torque limit 714 reaches an intermediate value or median value T3.
[0107] Returning to Figure 3 , if the torque command is greater than the torque limit, the torque limit is provided to the lookup table 318. Then, asFigure 5 As shown, torque limit is used as the torque command to continue the control of the motor 42.
[0108] In some embodiments, the PWM ratio command provided by the bus current controller 320 is overridden by the braking control module 316. The braking control module 316 monitors the characteristics of the fastener driver 10 to determine whether to brake the motor 42. For example, the braking control module 316 receives the speed of the motor 42 (indicated by the speed sensor 250), the voltage of the battery pack 54 (indicated by the voltage sensor 272) or the voltage associated with the battery pack 54, and the current of the motor 42 (indicated by the current sensor 270). The braking control module 316 uses the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 to estimate the torque of the motor 42. Then, the estimated torque of the motor 42 is compared with a threshold torque value to determine whether to brake the motor 42.
[0109] Figure 8 A method 800 for controlling the motor 42 is provided. The method 800 can be executed by the controller 200. At block 805, the controller 200 drives the motor 42 based on the position of the lift assembly 88. For example, the controller 200 drives the motor 42 according to the high-speed mode when the trigger 58 is actuated and based on the position of the lift assembly 88.
[0110] At block 810, the controller 200 receives a speed signal indicating the speed of the motor 42 from the speed sensor 250. At block 815, the controller 200 receives a voltage signal indicating the voltage of the battery pack 54 from the voltage sensor 272. At block 820, the controller 200 receives a current signal indicating the current of the motor 42 from the current sensor 270.
[0111] At block 825, the controller 200 determines the torque of the motor 42 based on the speed signal, the voltage signal, and the current signal. In one embodiment, the controller 200 compares the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 with a look-up table (e.g., a speed-voltage-current-torque look-up table) to estimate the torque of the motor 42. In another embodiment, the controller 200 provides the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 as inputs to an algorithm for estimating the torque of the motor 42. In one embodiment, the algorithm is a machine learning model trained to estimate the torque of the motor 42. The machine learning model can be stored in the memory 225.
[0112] To implement the machine learning model, the controller 200 is configured to learn a general rule or model that maps inputs to outputs based on the provided example input-output pairs. The machine learning algorithm can be configured to perform machine learning using various types of methods. For example, the controller 200 can use decision tree learning (such as random decision forests), association rule learning, artificial neural networks, recurrent artificial neural networks, long short-term memory neural networks, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, genetic algorithms, k-nearest neighbor (KNN), etc. to implement machine learning programs, such as those listed in Table 1 below.
[0113]
[0114] The controller 200 is programmed and trained to perform a specific task using the machine learning model. For example, in some embodiments, the controller 200 is trained to estimate the output torque of the fastener driver 10. The training examples for training the machine learning algorithm can be graphs or tables of torque profiles. The training examples can be previously collected from, for example, a plurality of identical types of power tools. For example, the training examples can be previously collected from a plurality of identical types of power tools (e.g., the fastener driver 10) over a span of, for example, one year.
[0115] A plurality of different training examples are provided to the controller 200. The controller 200 uses these training examples to generate a machine learning model (e.g., rules, set of equations, etc.) that helps classify or estimate the output based on new input data. The controller 200 can weight different training examples differently to, for example, prioritize different conditions or the inputs and outputs going in and out of the controller 200. For example, certain observed operating characteristics may have a greater weight than other operating characteristics.
[0116] In one embodiment, the controller 200 implements an artificial neural network. The artificial neural network includes an input layer, a plurality of hidden layers or nodes, and an output layer. Generally, the input layer includes as many nodes as the inputs provided to the controller 200. The number (and type) of inputs provided to the machine controller 200 can vary based on the specific task of the controller 200. Thus, based on the specific task of the controller 200, the input layer of the artificial neural network of the controller 200 can have a different number of nodes. The input layer is connected to the hidden layer. The number of hidden layers varies and can depend on the specific task of the controller 200. Additionally, each hidden layer can have a different number of nodes and can be connected to the next layer differently. For example, each node of the input layer can be connected to each node of the first hidden layer. A weight parameter can be assigned to the connection between each node of the input layer and each node of the first hidden layer. Additionally, a bias value can be assigned to each node of the neural network. However, each node of the first hidden layer may not be connected to each node of the second hidden layer. That is, there may be some nodes of the first hidden layer that are not connected to all nodes of the second hidden layer. Different weight parameters are assigned to the connections between the nodes of the first hidden layer and the second hidden layer. Each node of the hidden layer is associated with an activation function. The activation function defines how the hidden layer processes the input received from the input layer or from a previous input layer. These activation functions can vary and are based not only on the type of task associated with the controller 200, but also on the specific type of hidden layer implemented.
[0117] Each hidden layer can perform a different function. For example, some hidden layers can be convolutional hidden layers, which in some cases can reduce the dimension of the input, while other hidden layers can perform statistical functions such as max pooling, which can reduce a set of inputs to a maximum value, an average layer, etc. In some hidden layers (also referred to as "dense layers"), each node is connected to each node of the next hidden layer. Some neural networks that include, for example, more than three hidden layers can be considered deep neural networks. The last hidden layer is connected to the output layer. Similar to the input layer, the output layer generally has the same number of nodes as the possible outputs.
[0118] During training, an artificial neural network receives inputs for training examples and generates an output using the bias of each node and the connections between each node and the corresponding weights. The artificial neural network then compares the generated output with the actual output of the training example. Based on the generated output and the actual output of the training example, the neural network changes the weights associated with the connections of each node. In some embodiments, the neural network also changes the weights associated with each node during training. Training continues until a training condition is met. The training condition can correspond to, for example, a predetermined number of training examples being used, a minimum accuracy threshold achieved during training and validation, a predetermined number of validation iterations completed, etc. Different types of training algorithms can be used to adjust the bias values and weights of the node connections based on the training examples. The training algorithms can include, for example, gradient descent, Newton's method, conjugate gradient, quasi Newton, and Levenberg-Marquardt method, etc.
[0119] At block 830, the controller 200 determines whether the torque of the motor 42 is greater than or equal to a torque threshold. When the torque of the motor 42 is greater than or equal to the torque threshold (Yes at block 830), the controller 200 returns to block 805 and continues to drive the motor 42 according to the position of the elevator assembly 88. Figure 9 A graph 900 showing an example estimated torque value compared to the torque threshold 905 is shown. As shown in graph 900, estimating the torque of the motor 42 based on the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 results in a value that is approximately the same as directly measuring the actual torque.
[0120] When the torque of the motor 42 is less than the torque threshold (No at block 830), the controller 200 brakes the motor 42. In some cases, the controller 200 brakes the motor 42 by activating an electronic clutch described in more detail below.
[0121] In some cases, the controller 200 also receives a position signal from the position sensor 276 indicating the position of the mechanism 285. The controller 200 also refers to the position signal to estimate the torque of the motor 42. For example, the position signal is also provided as an input to a machine learning model.
[0122] In some cases, the controller 200 filters the speed signal, voltage signal, current signal, and position signal when receiving them from the speed sensor 250, voltage sensor 272, current sensor 270, and position sensor 276, respectively. For example, Figure 10A An example current signal from the current sensor 270 is shown, and Figure 10B A filtered current signal is shown. Figure 11A An example position signal from the position sensor 276 is shown, andFigure 11B A filtered position signal is shown. Figure 12A An example torque determined using the unfiltered signal is shown, and Figure 12B an example torque determined using the filtered signal is shown. Filtering can remove outlying signal values, such as current signals associated with current in-rush events during initial actuation of the motor 42, or position signals that shift up in value during a flip event.
[0123] In some embodiments, the controller 200 determines an estimate of another characteristic of the fastener driver 10 - rather than the torque of the motor 42. For example, the controller 200 determines the speed of the lifter assembly 88, the acceleration of the lifter assembly 88, the acceleration of the motor 42, or the total power of the motor 42. The braking of the motor 42 is then controlled based on the estimated characteristic.
[0124] Additionally, in some cases, the controller 200 estimates the torque of the motor 42 based on signals from a sensor or from multiple sensors. For example, the sensor senses a characteristic of the fastener driver 10. The controller 200 receives the signal from the sensor and estimates the torque of the motor 42 based on the characteristic of the fastener driver 10. The sensor can be the position sensor 276, the temperature sensor 278, the current sensor 270, the speed sensor 250, the voltage sensor 272, and / or a sensor included in the auxiliary sensor 274. Thus, torque can be estimated based on fewer or more characteristics of the fastener driver 10 rather than based on speed signals, voltage signals, and current signals (as shown in the example of method 800).
[0125] Accordingly, when the estimated torque of the motor 42 is below (or in some cases equal to) a threshold, the brake control module 316 overrides the current command of the bus current controller 320.
[0126] Figure 13A state diagram 1300 is provided that shows the operation of the fastener driver 10 as performed by the controller 200. When the speed command of the motor 42 is set to 0 (e.g., when the trigger 58 is not actuated), the controller 200 is in an idle mode (block 1310). When in the idle mode, the controller 200 monitors the actuation of the trigger 58, and the switch network 255 is placed in a high-impedance state to prevent power from the battery pack 54 from being transferred to the motor 42. When the trigger 58 is actuated (e.g., when the speed command is greater than 0), the controller 200 advances to block 1315 and operates the motor 42 according to a low-speed mode (e.g., a first operating mode, a first speed setting, etc.). The low-speed mode can be, for example, an operating mode associated with starting to drive the motor 42 when the motor 42 is completely stopped. When in the low-speed mode, the controller 200 monitors the speed of the motor 42 provided by the speed sensor 250. In some embodiments, when in the low-speed mode, the speed controller 312 is bypassed, and the motor 42 is controlled such that the torque output of the speed controller 312 is equal to the torque set point. If the speed of the motor 42 increases to be greater than or equal to a minimum speed threshold, the controller 200 advances to block 1320. In some embodiments, the minimum speed threshold has a value between 500 revolutions per minute ("RPM") and 3000 RPM. In some embodiments, the minimum speed threshold has a value of approximately 1800 RPM. However, if the speed of the motor 42 remains below the minimum speed threshold for a low-speed timeout period (e.g., a first predetermined period of time), the controller 200 instead advances to block 1325. If the speed command is set to zero (0) at any point (e.g., the trigger 58 is deactuated), the controller 200 transitions back to the idle mode (block 1310).
[0127] When the speed of the motor 42 exceeds or is equal to the minimum speed threshold, the controller 200 advances to block 1320 to operate in a high-speed mode (e.g., a second operating mode, a second speed setting). When in the high-speed mode, the controller 200 drives the motor 42 according to the received speed command within the set torque limit. The speed controller 312 is active, and the torque limiter module 314 can limit the torque output of the speed controller 312, which can reduce the clutch setting or the speed when a significant load is applied. For example, when a high-load state is detected based on the speed of the motor 42, the torque output of the speed controller 312 is restricted.
[0128] When the speed of the motor 42 drops below the minimum speed threshold while operating in the high-speed mode, the controller 200 advances to block 1325 and operates in the clutch mode. In some embodiments, hysteresis can be used such that different speed thresholds are used to control the transition from the low-speed mode and the high-speed mode. Additionally, when the operation of the controller 200 in the low-speed mode (block 1315) has persisted for a predetermined period of time, the controller 200 advances to block 1325 and operates in the clutch mode. When in the clutch mode, the controller 200 limits the current of the motor 42. For example, the current command provided to the bus current controller 320 by the look-up table 318 is overridden by a low-current command. In some embodiments, the low-current command corresponds to a current value low enough to maintain the engagement of the motor 42 with the associated gear train but not overcome the gear train friction. This results in a torque value of zero for the lift assembly 88. The low-current command maintains a clutch timeout period, at which time the controller 200 returns to block 1315 and operates in the low-speed mode. If the trigger 58 is deactivated while the controller 200 is in the clutch mode, the controller 200 returns to block 1310 and operates in the idle mode. Additionally, in some cases, due to the clutch timeout period and the low-speed timeout period, the controller 200 can alternate indefinitely between the low-speed mode at block 1315 and the clutch mode at block 1325 until the trigger 58 is deactivated. In some cases, the current of the motor 42 is limited by reducing the PWM duty cycle used to drive the motor 42. In some embodiments, the clutch timeout period and the low-speed timeout period have values between 5 milliseconds and 100 milliseconds. In some embodiments, the clutch timeout period and the low-speed timeout period have a value of approximately 15 milliseconds.
[0129] In some embodiments, when the estimated torque of the motor 42 drops below the minimum torque threshold, the controller 200 operates in the clutch mode, as described in connection with Figure 8 that. Thus, due to the clutch timeout period, if the torque does not recover and exceed the torque threshold, the controller 200 can alternate indefinitely between the low-speed mode at block 1315 and the clutch mode at block 1325 until the trigger 58 is deactivated.
[0130] Returning to Figure 3 , the field weakening module 322 is configured to increase the torque capability at high speeds when the back electromotive force (“EMF”) of the motor 42 causes the drive to become voltage limited. Field weakening can be applied by identifying the relationship between the motor current, motor torque, and motor speed in the steady state. This relationship can be used to correct the nominal field weakening. In some embodiments, the field weakening module 322 is disabled.
[0131] Figure 14 An example block diagram of the speed controller 312 is shown. Equation 5 provides an example model for determining the torque command based on the motor speed: [Equation 5] Equation 6 provides a simplified transfer function of the model of Equation 5: [Equation 6] Whenever the controller 200 operates in the low-speed mode, the torque command output by the speed controller 312 is locked to the torque limit. When the controller 200 is in the clutch mode, the torque command is rewritten downstream. However, the speed controller 312 continues to operate. The illustrated speed controller 312 includes two gains: a proportional gain KP and an integral gain KI.
[0132] Figure 15 An example block diagram of the look-up table 318 is shown. The torque command from the speed controller 312 is compared with the motor speed in the torque look-up table 1500. The torque look-up table 1500 (e.g., torque-speed-current look-up table) outputs a baseline bus current command. Additionally, the motor speed is compared with the measured temperature provided by the temperature reader module 304 in the temperature look-up table 1550. The output of the temperature look-up table 1550 is a temperature regulation output. The temperature regulation output is applied to the baseline bus current command to create a bus current command provided to the bus current controller 320.
[0133] In some embodiments, instead of using the look-up table 318, the slope-intercept method is used to convert the torque command into a bus current command. The slope-intercept method converts torque into current, independent of motor speed and temperature. For a given gear ratio, a slope and an intercept are provided to convert torque into a current command.
[0134] Figure 16 An example block diagram of the bus current controller 320 is shown. The bus current controller 320 outputs a PWM ratio command signal based on the bus current command from the look-up table 318. Equation 7 provides an example model for determining the PWM ratio command signal based on the bus current: [Equation 7] If the speed is constant with respect to electrodynamics and the battery voltage is constant, the model of Equation 7 becomes the transfer function defined by Equation 8: [Equation 8] When the controller 200 operates in the low-speed mode or the high-speed mode, the bus current controller 320 operates normally. When in the idle mode or during braking, the PWM ratio command output is overridden to zero. When in the clutch mode, the bus current command is overridden to another value to overcome the cogging torque and reduce the system backlash. Additionally, in some embodiments, when transitioning from the clutch mode to the low-speed mode, the PWM ratio command is rewritten to increase the value of the jerk of the fastener driver 10. Additionally, the bus current controller 320 may limit the PWM ratio command output to prevent bus current overshoot (e.g., overcurrent condition). The illustrated current controller 320 includes two gains: a proportional gain KP and an integral gain KI.
[0135] Figure 17 A method 1700 for controlling the motor 42 is shown. The method 1700 may be executed by the controller 200. At block 1705, the controller 200 drives the motor 42 based on the position of the mechanism 285. For example, the controller 200 drives the motor 42 in the high-speed mode and based on the position of the lifter assembly 88 when the trigger 58 is actuated. At block 1710, the controller 200 estimates the torque of the motor 42 as previously described in connection with method 800.
[0136] At block 1715, the controller 200 determines whether the torque of the motor 42 is less than or equal to a torque threshold. If the estimated torque of the motor 42 is greater than the torque threshold ( "no" at block 1715), the controller 200 returns to block 1705 and continues to drive the motor 42 based on the position of the lifter assembly 88. If the estimated torque of the motor 42 is less than or equal to the torque threshold ( "yes" at block 1715), the controller 200 proceeds to block 1720.
[0137] At block 1720, the controller 200 determines whether braking of the motor 42 is allowed. For example, to prevent false braking triggers, braking of the motor 42 may not be allowed for a predetermined period of time after a braking event is completed, because the deceleration of the motor caused by braking can result in a second torque reduction that satisfies the torque threshold. By not allowing repeated braking events, the controller 200 avoids false braking events. If the braking event is not allowed, the controller 200 returns to block 1705 and continues to drive the motor 42 based on the position of the lifter assembly 88. If the braking event is allowed, the controller proceeds to block 1725. In some embodiments, the braking event is not allowed, and block 1720 (as well as blocks 1730 and 1735) may be removed from the method 1700.
[0138] At block 1725, the controller 200 brakes the motor 42 for a predetermined period of time. For example, the controller 200 controls the switch network 255 to electronically brake the motor 42. Once the predetermined period of time is satisfied, the controller 200 does not allow a braking event (at block 1730) and returns to block 1705. The controller 200 does not allow a braking event for a second predetermined period of time to prevent false braking triggers. Once the second predetermined period of time is satisfied, the controller 200 allows the braking event to be executed (at block 1735). In some embodiments, braking is disabled at low speeds (e.g., 2000 rpm or less) or low torque values.
[0139] Figures 18A - 18B A method 1800 for controlling the motor 42 is shown. The method 1800 may be executed by the controller 200. The method 1800 may be executed in parallel with Figure 17 the method 1700. At block 1805, the controller 200 sets the drive of the motor 42 at a first speed based on the position of the window regulator assembly 88. For example, the controller 200 drives the motor 42 according to a low-speed mode while receiving a speed command from the trigger 58 and based on the position of the window regulator assembly 88. At block 1810, the controller 200 determines the speed of the motor 42. For example, in some embodiments, the controller 200 receives a speed signal indicating the speed of the motor 42 from the speed sensor 250. In other embodiments, the controller 200 determines the speed of the motor 42 based on a current signal from the current sensor 270.
[0140] At block 1815, the controller 200 determines whether the speed of the motor 42 is greater than or equal to a speed threshold. If the speed of the motor 42 is greater than or equal to the speed threshold, the controller 200 proceeds to block 1835 (see Figure 18B ). If the speed of the motor 42 is less than the speed threshold, the controller 200 determines whether a low-speed timeout threshold has been satisfied (block 1820). If the low-speed timeout threshold is not satisfied, the controller 200 returns to block 1805 and continues to drive the motor 42 based on the position of the window regulator assembly 88.
[0141] If the low speed timeout threshold is met, the controller 200 advances to block 1825 and enters the electronic clutch mode. In the electronic clutch mode, the controller 200 drives the motor 42 according to a low current command (e.g., a reduced PWM duty cycle), as described above. At block 1830, the controller 200 determines whether the clutch timeout period is met. If the clutch timeout period is met, the controller 200 returns to block 1805 and drives the motor 42 according to the first speed setting. If the clutch timeout period is not met, the controller 200 returns to block 1825 and continues to operate in the electronic clutch mode. In some embodiments, the clutch timeout period corresponds to between 10 and 100 milliseconds. In some embodiments, the clutch timeout period is approximately 35 milliseconds.
[0142] Returning to block 1815, if the speed of the motor is greater than or equal to the speed threshold, the controller 200 advances to block 1835. At block 1835, the controller 200 drives the motor 42 according to the position of the lift assembly 88 and at a second speed setting. In some embodiments, the second speed setting is a high speed mode. At block 1840, the controller 200 determines the speed of the motor 42. For example, in some embodiments, the controller 200 receives a speed signal from the speed sensor 250 indicating the speed of the motor 42. In other embodiments, the controller 200 determines the speed of the motor 42 based on a current signal from the current sensor 270.
[0143] At block 1845, the controller 200 determines whether the speed of the motor 42 is less than or equal to the speed threshold. If the speed of the motor 42 is greater than the speed threshold, the controller 200 continues to drive the motor 42 according to the position of the lift assembly 88 and at the second speed setting. If the speed of the motor 42 is less than or equal to the speed threshold, the controller 200 advances to block 1825 and enters the electronic clutch mode. For example, Figure 17 the method 1700 in [reference] can cause a rapid deceleration of the motor 42, which causes the motor speed to become less than the speed threshold and transition from the second speed setting to the electronic clutch mode.
[0144] To avoid distributed stop positions throughout the entire operating cycle of the fastener driver 10, the embodiments described herein provide alternative stop point biases and dynamic error margins for controlling the motor 42. For example, the embodiments described herein can bias the stop point of the motor 42 closer to the striker drop position, thereby reducing the time between trigger pull and fastener drive. Additionally, the tolerance window can have a lower limit (e.g., from about 30 degrees to about 5 degrees) that avoids double firing events.
[0145] Figure 19A block diagram of a control box 1900 for position control of a motor 42 is provided. A control state machine 326 outputs a position command based on the position of a mechanism 285 (indicated by position feedback from a position sensor 276) and control inputs (e.g., actuation of a trigger 58, detection of the presence of a workpiece based on a signal from a workpiece contact sensor, etc.).
[0146] A speed controller receives a speed command from a position controller 302. Additionally, the speed controller 312 receives the speed of the motor 42. In Figure 19 an embodiment, the speed controller 312 determines the speed of the motor 42 based on a position signal received from the position sensor 276, e.g., by determining the derivative of the position signal. However, in other cases, the speed controller 312 may receive the speed of the motor 42 indicated by a speed sensor 250. The speed controller 312 compares the speed command provided by the position controller 302 with the detected speed of the motor 42 to determine the torque for driving the motor 42. For example, if the motor speed is less than the speed command, the speed controller 312 outputs a torque command to increase the speed of the motor 42. If the motor speed is greater than the speed command, the speed controller 312 outputs a torque command to decrease the speed of the motor 42. If the motor speed is equal to the speed command, the speed controller 312 outputs a torque command to maintain the speed of the motor 42.
[0147] In some cases, the torque command is provided to a look-up table 318 to determine a current command for a bus current controller 320 as described previously. However, in other cases, the control box 1900 includes a torque controller 1905. The torque controller 1905 receives the torque command from the speed controller 312 and the motor current of the motor 42 (indicated by a current sensor 270). In some embodiments, the torque controller 1905 determines the current torque of the motor 42 based on the motor current of the motor 42. The torque controller 1905 compares the torque command provided by the speed controller 312 with the detected torque of the motor 42 to determine whether to adjust the torque command provided to the look-up table 318. For example, if the motor torque is less than the torque command, the torque controller 1905 adjusts the torque command to increase the torque of the motor 42. If the motor torque is greater than the torque command, the torque controller 1905 adjusts the torque command to decrease the torque of the motor 42. If the motor torque is equal to the torque command, the torque controller 1905 maintains the value of the torque command provided by the speed controller 312.
[0148] In some cases, the controller 200 tracks the performance of the fastener driver 10. For example, the controller 200 can track the type of battery pack 54 received by the fastener driver 10. The controller 200 can track whether the lifter assembly 88 jams during the operation of the fastener driver 10 and the location where the lifter assembly 88 jams. These events can be recorded in a report and can be used for training machine learning models and the like.
[0149] In some cases, the controller 200 monitors the condition of the fastener driver 10 based on the torque of the motor 42. Figure 20 A method 2000 for controlling the motor 42 is provided. The method 2000 can be executed by the controller 200. At block 2005, the controller 200 drives the motor 42 according to the position of the lifting assembly 88. For example, the controller 200 drives the motor 42 in high-speed mode and based on the position of the lifter assembly 88 when the trigger 58 is actuated.
[0150] At block 2010, the controller 200 receives a speed signal indicating the speed of the motor 42 from the speed sensor 250. At block 2015, the controller 200 receives a voltage signal indicating the voltage of the battery pack 54 from the voltage sensor 272. At block 2020, the controller 200 receives a current signal indicating the current of the motor 42 from the current sensor 270.
[0151] At block 2025, the controller 200 determines the torque of the motor 42 based on the speed signal, the voltage signal, and the current signal. In one embodiment, the controller 200 compares the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 with a look-up table (e.g., a speed-voltage-current-torque look-up table) to estimate the torque of the motor 42. In another embodiment, the controller 200 provides the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 as inputs to an algorithm that estimates the torque of the motor 42. In one implementation, the algorithm is a machine learning model trained to estimate the torque of the motor 42, as previously described in connection with Figure 8 block 825. The machine learning model can be stored in the memory 225.
[0152] At block 2030, the controller 200 determines the condition of the fastener driver 10 based on the torque of the motor 42. For example, the desired torque value of the motor 42 increases during the life of the fastener driver 10. As the fastener driver 10 undergoes more and more operations, the torque of the motor 42 also naturally increases. This increase in torque may be due to wear and deterioration of the components of the fastener driver 10. In some embodiments, the controller 200 compares the torque of the motor 42 with a threshold. When the torque of the motor 42 is greater than or equal to the threshold, the controller 200 determines that the fastener driver 10 is in need of maintenance.
[0153] The controller 200 may include a look-up table that provides an expected torque value for the motor 42 based on the number of operations performed by the fastener driver 10, the time period since the manufacture of the fastener driver 10, and the like. The look-up table may indicate expected components that may require maintenance based on the torque value of the motor 42. For example, the torque value of the motor 42 may indicate that the buffer 98 needs maintenance or replacement, the lifter 66 or the lifter assembly 88 needs maintenance or replacement, the mechanism 285 needs maintenance or replacement, and so on. In some cases, the torque value of the motor 42 indicates that the motor 42 needs maintenance or replacement. In some cases, the torque value of the motor 42 indicates that the cylinder 18 may need to be refilled or otherwise needs maintenance. In another case, since the temperature of the cylinder 18 (indicated by the temperature sensor 278) is below the temperature threshold and the torque of the motor 42 is less than or equal to the torque threshold, the controller 200 determines that the cylinder 18 needs to be refilled.
[0154] At block 2035, the controller 200 provides an indication of the condition of the fastener driver 10. For example, the controller 200 controls one or more of the indicators 245 to provide an indication of the condition of the fastener driver 10. In an embodiment where the indicator 245 includes an LED, one LED may be controlled by the controller 200 to emit light to indicate that the fastener driver 10 needs maintenance. In another embodiment, where the indicator 245 includes a display, the controller 200 may control the display to provide specific details regarding the condition of the fastener driver 10, such as which component needs maintenance. In some cases, the indication of the condition of the fastener driver 10 indicates that the fastener driver has not been serviced in a recommended manner and is operating beyond the recommended maintenance time. In yet another case, the indicator 245 may include a re-pressurization LED to indicate low pressure in the chamber 18.
[0155] In some embodiments, the condition of the fastener driver 10 is that the fastener driver 10 is jammed. For example, the controller 200 may detect a spike in the torque of the motor 42 (e.g., the torque increases from 40 Newton meters ["Nm"] to 200 Nm within a 2 - 3 millisecond period during reloading). In response to detecting the spike in the torque of the motor 42, the controller 200 determines that the motor 42 is jammed and stops driving the motor 42.
[0156] In some cases, the controller 200 changes the firing process of the fastener driver 10 based on the torque of the motor 42. For example, during operation, the fastener driver 10 transitions from a firing ready position to a firing pin down position, to a firing pin re-engagement position, and back to the firing ready position, as previously described in connection with Figure 3As described above. The time from when the user pulls the trigger until the fastener (e.g., a nail) is placed in the work surface is referred to as the firing time. The examples described in the present invention particularly provide a change in the firing time based on the estimated torque of the motor 42.
[0157] Figure 21 A method 2100 for controlling the motor 42 is provided. The method 2000 can be executed by the controller 200. At block 2105, the controller 200 drives the motor 42 based on the position of the lifting assembly 88. For example, the controller 200 drives the motor 42 in high-speed mode and based on the position of the lifter assembly 88 when the trigger 58 is actuated.
[0158] At block 2110, the controller 200 receives a speed signal from the speed sensor 250 indicating the speed of the motor 42. At block 2115, the controller 200 receives a voltage signal from the voltage sensor 272 indicating the voltage of the battery pack 54. At block 2120, the controller 200 receives a current signal from the current sensor 270 indicating the current of the motor 42.
[0159] At block 2125, the controller 200 determines the torque of the motor 42 based on the speed signal, the voltage signal, and the current signal. In one embodiment, the controller 200 compares the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 with a look-up table (e.g., a speed-voltage-current-torque look-up table) to estimate the torque of the motor 42. In another embodiment, the controller 200 provides the speed of the motor 42, the voltage of the battery pack 54, and the current of the motor 42 as inputs to an algorithm for estimating the torque of the motor 42. In one implementation, the algorithm is a machine learning model trained to estimate the torque of the motor 42, as described above in connection with Figure 8 block 825. The machine learning model can be stored in the memory 225.
[0160] At block 2130, the controller 200 changes the firing process of the fastener driver 10 based on the determined torque of the motor 42. For example, the fastener driver 10 starts from a firing-ready position (e.g., a reload state). The firing-ready position can define how much the lifter 66 will rotate before the mechanism 285 (e.g., the firing pin) is released. Due to the increased load, components such as the roller 90 are subjected to greater stress, especially when the mechanism 285 approaches the firing pin drop position (e.g., the kickout position). Therefore, in some cases, the mechanism 285 is controlled to intentionally stop further away from the kickout position to reduce the stress on these components. When the controller 200 estimates the torque of the motor 42, the controller 200 can control the motor 42 to stop the mechanism 285 at a position closer to the true limit position, thereby providing a faster firing time for the user.
[0161] As the fastener driver 10 ages, components may slow down due to increased wear and friction. The positioning of the striker drop position can be changed (e.g., decreased) to increase the firing time and reduce the stress applied to the components (e.g., roller 90) of the fastener driver 10. Figure 22 An embodiment of a changed striker drop position is provided. The fastener driver 10 may have an initial striker drop position 2200. Once the torque of the motor 42 is greater than or equal to a threshold, the controller 200 adjusts the striker drop position to the changed striker drop position 2202 (e.g., by controlling the motor 42 until the driver vane 26 is in the changed striker drop position 2202).
[0162] Figure 23 A graph 2300 is provided that shows the change in the striker drop position compared to an increasing number of operating cycles of the fastener driver 10. As can be seen from the graph 2300, the striker drop position decreases during the life of the fastener driver 10. For example, the striker drop position decreases from approximately 111 mm to approximately 103 mm.
[0163] In addition, Figure 24 A graph 2400 is provided that shows an embodiment of the predicted peak torque compared to an increasing number of operating cycles of the fastener driver 10. As can be seen from the fitted line 2405, the predicted peak torque increases substantially linearly with the number of operating cycles. The torque of the motor 42 increases during the life of the fastener driver 10.
[0164] Therefore, the controller 200 can use the torque of the motor 42 to change the firing ready position of the fastener driver 10 in response to the change in the striker drop position. As an example, assume that the torque required for the firing ready position is 20 Nm. As the tool ages and the components wear, firing occurs earlier and the 20 Nm torque value is reached at an earlier time. Therefore, the firing ready position can be adjusted based on the actual increase in the torque of the motor 42 according to the graph 2400. Figure 25 A graph 2500 is provided that shows an embodiment of adjusting the firing ready position and the TDC position based on the estimated torque of the motor 42. Specifically, the graph 2500 shows how the position of the piston 22 changes within the cylinder 18 based on the estimated torque of the motor 42 over the life span of the fastener driver 10. At the firing ready position and the TDC position, the position of the piston 22 is controlled by the controller 200 to decrease over the life span of the fastener driver 10.
[0165] In other embodiments of varying the firing process of the fastener driver 10 based on the determined torque of the motor 42, the controller 200 may reduce the field weakening angle (e.g., phase advance angle, conduction angle, or both) implemented by the field weakening module 322, may limit the maximum value of the speed command provided by the speed controller 312, may limit the firing rate of the fastener driver 10, and the like.
[0166] In some cases, the controller 200 adjusts the firing ready position based on a signal from the position sensor 276 indicating the position of the lifter assembly 88. As the striker down position changes over time, the signal from the position sensor 276 indicating the position of the lifter assembly 88 also changes. The firing ready position may be adjusted by the controller 200 based on the position of the lifter assembly 88. Figure 26 A graph 2600 is provided showing an embodiment of adjusting the firing ready position and the TDC position based on the signal provided by the position sensor 276. As the TDC position changes over time, the controller 200 adjusts the firing ready position.
[0167] Figure 27 A graph 2700 is provided showing one rotation cycle of the lifter 66. Specifically, graph 2700 shows the relationship between the lifting torque and the lifter rotation (in degrees) shown by function 2702. By monitoring the torque, the controller 200 can identify when firing occurs (e.g., the torque becomes zero as indicated by threshold 2704). Additionally, the controller 200 can identify when each lifter pin (e.g., lifter teeth 74, 75) engages the mechanism 285 by a decrease in torque (at position 2706).
[0168] The embodiments described in the present invention can also be used in power tools other than the fastener driver 10. As an example, by estimating the torque in a circular saw or a chain saw, the controller 200 can control the motor 42 to stop in the event of detecting a mechanical binding or kickback event based on the estimated torque of the motor 42. In another example, the controller 200 can control the motor 42 to stop a drywall screw gun based on the estimated torque indicating that a screw is being placed into a workpiece.
[0169] Representative Features The representative features are recited in the following clauses, which exist independently or may be combined with one or more features disclosed in the text and / or drawings of this patent specification in any combination.
[0170] Article 1. A fastener driver including an electronic clutch, the fastener driver comprising: a motor; a trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense the speed of the motor; a voltage sensor configured to sense the voltage of the battery pack; a current sensor configured to sense the current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: supply power to the motor in response to actuation of the trigger and based on the position of the lift assembly, receive a speed signal indicative of the speed of the motor from the speed sensor, receive a voltage signal indicative of the voltage of the battery pack from the voltage sensor, receive a current signal indicative of the current of the motor from the current sensor, determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0171] Article 2. The fastener driver according to any one of the preceding articles, wherein the controller is configured to: activate the electronic clutch to electronically brake the motor for a first period of time continuously, and supply power to the motor in response to the expiration of the first period of time.
[0172] Article 3. The fastener driver according to any one of the preceding articles, wherein the fastener driver further includes a position sensor configured to sense the position of the lift assembly, and wherein the controller is further configured to: receive a position signal indicative of the position of the lift assembly from the position sensor, wherein the torque of the motor is further determined based on the position of the lift assembly.
[0173] Article 4. The fastener driver according to Article 3, wherein the controller is further configured to: set a position command for driving the motor to a first position command when the lift assembly is in a first position, set the position command to a second position command when the lift assembly is in a second position, and set the position command to a third position command when the lift assembly is in a third position.
[0174] Article 5. The fastener driver according to Article 4, wherein the controller is further configured to: compare the position command with the position of the lift assembly sensed by the position sensor, and supply power to the motor in response to the position of the lift assembly being less than the position command.
[0175] Article 6. The fastener driver according to Article 3, wherein the controller is further configured to: determine a torque limit based on the position of the lifting assembly and control the motor at least in part based on the torque limit.
[0176] Article 7. The fastener driver according to any one of the preceding articles, wherein the controller is configured to: detect a high-load state of the motor based on the speed of the motor; and in response to the high-load state of the motor, limit the torque value for driving the motor.
[0177] Article 8. The fastener driver according to any one of the preceding articles, wherein the controller is further configured to: determine a torque value for driving the motor based on the speed of the motor and a speed command signal; compare the torque value with a torque-speed-current look-up table; determine a current value to be supplied to the motor based on the comparison; and supply the current value to the motor to drive the motor.
[0178] Article 9. The fastener driver according to Article 8, wherein the controller is further configured to: determine a pulse width modulation (PWM) duty cycle based on the current of the motor and the current value and drive the motor according to the PWM duty cycle.
[0179] Article 10. A method for operating a fastener driver including an electronic clutch, the method including: supplying power to a motor in response to actuation of a trigger and based on the position of a lifting assembly; receiving a speed signal indicating the speed of the motor from a speed sensor; receiving a voltage signal indicating the voltage of a battery pack from a voltage sensor; receiving a current signal indicating the current of the motor from a current sensor; determining the torque of the motor based on the speed signal, the voltage signal, and the current signal; determining whether the torque of the motor is less than or equal to a torque threshold; and activating the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0180] Article 11. The method according to Article 10, wherein activating the electronic clutch includes activating the electronic clutch to electronically brake the motor for a first period of time, and wherein the method further includes: supplying power to the motor in response to expiration of the first period of time.
[0181] Article 12. The method according to any one of Articles 10 or 11, further including: receiving a position signal indicating the position of the lifting assembly from a position sensor, wherein the torque of the motor is further determined based on the position of the lifting assembly.
[0182] Article 13. The method according to Article 12 further includes: when the lifting component is in the first position, setting a position command for driving the motor to a first position command; when the lifting component is in the second position, setting the position command to a second position command; and when the lifting component is in the third position, setting the position command to a third position command.
[0183] Article 14. The method according to Article 13 further includes: comparing the position command with the position of the lifting component sensed by the position sensor, and supplying power to the motor in response to the position of the lifting component being less than the position command.
[0184] Article 15. A fastener driver including an electronic clutch, the fastener driver comprising: a motor; a trigger; a battery pack interface configured to receive a battery pack; a lifting component operable to be moved by the motor; a speed sensor configured to sense the speed of the motor; a voltage sensor configured to sense the voltage of the battery pack; a current sensor configured to sense the current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: supply power to the motor in response to actuation of the trigger and based on the position of the lifting component, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, receive a current signal indicating the current of the motor from the current sensor, provide the speed signal, the voltage signal, and the current signal to a machine learning model, receive an estimate of the torque of the motor from the machine learning model, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0185] Article 16. The fastener driver according to Article 15, wherein the controller is configured to: activate the electronic clutch to electronically brake the motor for a first period of time continuously, and supply power to the motor in response to the expiration of the first period of time.
[0186] Article 17. The fastener driver according to any one of Articles 15 or 16, wherein the fastener driver further includes a position sensor configured to sense the position of the lifting component, and wherein the controller is further configured to: receive a position signal indicating the position of the lifting component from the position sensor, and further determine the torque of the motor based on the position of the lifting component.
[0187] Article 18. The fastener driver according to Article 17, wherein the controller is further configured to: set a position command for driving the motor to a first position command when the lifting assembly is in a first position, set the position command to a second position command when the lifting assembly is in a second position, and set the position command to a third position command when the lifting assembly is in a third position.
[0188] Article 19. The fastener driver according to any one of Articles 15 - 18, wherein the controller is further configured to: determine a torque value for driving the motor based on the speed of the motor and a speed command signal; compare the torque value with a torque - speed - current look - up table; determine a current value to be provided to the motor based on the comparison; and provide the current value to the motor to drive the motor.
[0189] Article 20. The fastener driver according to Article 19, wherein the controller is further configured to: determine a pulse width modulation (PWM) duty cycle based on the current of the motor and the current value, and drive the motor according to the PWM duty cycle.
[0190] Article 21. A fastener driver including an electronic clutch, the fastener driver comprising: a motor; a trigger; a battery pack interface configured to receive a battery pack; a lifting assembly operable to be moved by the motor; a sensor configured to sense a characteristic of the fastener driver; and a controller connected to the trigger, the motor, and the sensor, the controller being configured to: supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receive a signal from the sensor indicating a characteristic of the fastener driver, determine the torque of the motor based on the signal from the sensor, determine whether the torque of the motor is less than or equal to a torque threshold, and activate the electronic clutch to electronically brake the motor in response to determining that the torque of the motor is less than or equal to the torque threshold.
[0191] Article 22. A fastener driver, comprising: a motor; a trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense the speed of the motor; a voltage sensor configured to sense the voltage of the battery pack; a current sensor configured to sense the current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: supply power to the motor in response to actuation of the trigger and based on the position of the lift assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, receive a current signal indicating the current of the motor from the current sensor, determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, determine the condition of the fastener driver based on the torque of the motor, and provide an indication of the condition of the fastener driver.
[0192] Article 23. The fastener driver according to Article 22, wherein the condition of the fastener driver includes the condition of the lift assembly.
[0193] Article 24. The fastener driver according to any one of Articles 22 or 23, further comprising: a pressurizing cylinder; and a buffer at the bottom end of the cylinder, wherein the condition of the fastener driver includes the condition of the buffer.
[0194] Article 25. The fastener driver according to any one of Articles 22 - 24, further comprising: a pressurizing cylinder, wherein the condition of the fastener driver includes determining that the pressure in the cylinder is below a pressure threshold.
[0195] Article 26. The fastener driver according to any one of Articles 22 - 25, wherein the condition of the fastener driver includes the motor being jammed.
[0196] Article 27. A method for determining the condition of a fastener driver, the method comprising: supplying power to a motor in response to actuation of a trigger and based on the position of a lift assembly; receiving a speed signal indicating the speed of the motor from a speed sensor; receiving a voltage signal indicating the voltage of a battery pack from a voltage sensor; receiving a current signal indicating the current of the motor from a current sensor; determining the torque of the motor based on the speed signal, the voltage signal, and the current signal; determining the condition of the fastener driver based on the torque of the motor, and providing an indication of the condition of the fastener driver.
[0197] Article 28. The method according to Article 27, wherein the condition of the fastener driver includes the condition of the lifting assembly.
[0198] Article 29. The method according to any one of Articles 27 or 28, wherein the condition of the fastener driver includes the condition of a buffer located at the bottom end of the cylinder.
[0199] Article 30. The method according to any one of Articles 27 - 29, wherein determining the condition of the fastener driver includes determining that the pressure of the cylinder is lower than a pressure threshold.
[0200] Article 31. The method according to any one of Articles 27 - 30, wherein the condition of the fastener driver includes the motor being jammed.
[0201] Article 32. A fastener driver, comprising: a motor; a trigger; a battery pack interface configured to receive a battery pack; a lifting assembly operable to be moved by the motor; a speed sensor configured to sense the speed of the motor; a voltage sensor configured to sense the voltage of the battery pack; a current sensor configured to sense the current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: supply power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receive a speed signal indicating the speed of the motor from the speed sensor, receive a voltage signal indicating the voltage of the battery pack from the voltage sensor, receive a current signal indicating the current of the motor from the current sensor, determine the torque of the motor based on the speed signal, the voltage signal, and the current signal, and change the firing process of the fastener driver based on the torque of the motor.
[0202] Article 33. The fastener driver according to Article 32, wherein, in order to change the firing process of the fastener driver, the controller is configured to: adjust the firing ready position of the lifting assembly based on the torque of the motor.
[0203] Article 34. The fastener driver according to any one of Articles 32 or 33, wherein, in order to change the firing process of the fastener driver, the controller is configured to: reduce the weak magnetic angle implemented by the weak magnetic module based on the torque of the motor.
[0204] Article 35. The fastener driver according to any one of Articles 32 - 34, wherein, in order to change the firing process of the fastener driver, the controller is configured to: limit the maximum value of the speed command for driving the motor based on the torque of the motor.
[0205] Article 36. A fastener driver according to any one of Articles 32 - 34, wherein the controller is further configured to: drive the motor based on the changed firing process in response to actuation of the trigger after changing the firing process of the fastener driver.
[0206] Article 37. A method of operating a fastener driver, the method comprising: supplying power to the motor in response to actuation of the trigger and based on the position of the lifting assembly; receiving a speed signal indicative of the speed of the motor from a speed sensor; receiving a voltage signal indicative of the voltage of the battery pack from a voltage sensor; receiving a current signal indicative of the current of the motor from a current sensor; determining the torque of the motor based on the speed signal, the voltage signal, and the current signal; and changing the firing process of the fastener driver based on the torque of the motor.
[0207] Article 38. The method according to Article 37, wherein changing the firing process of the fastener driver based on the torque of the motor includes adjusting the firing ready position of the lifting assembly based on the torque of the motor.
[0208] Article 39. The method according to any one of Articles 37 or 38, wherein changing the firing process of the fastener driver based on the torque of the motor includes reducing the field weakening angle implemented by the field weakening module based on the torque of the motor.
[0209] Article 40. The method according to any one of Articles 37 - 39, wherein changing the firing process of the fastener driver based on the torque of the motor includes limiting the maximum value of the speed command for driving the motor based on the torque of the motor.
[0210] Article 41. The method according to any one of Articles 37 - 40, further comprising: driving the motor based on the changed firing process in response to actuation of the trigger after changing the firing process of the fastener driver.
[0211] Accordingly, the embodiments provided by the present invention particularly describe systems and methods for estimating the torque of a power tool and controlling the power tool based on the estimated torque. Various features and advantages are recited in the appended claims.
Claims
1. A fastener driver including an electronic clutch, the fastener driver comprising: motor; trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense a speed of the motor; a voltage sensor configured to sense a voltage of the battery pack; a current sensor configured to sense a current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: providing power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receiving a speed signal from the speed sensor indicative of a speed of the motor, receiving a voltage signal indicative of a voltage of the battery pack from the voltage sensor, receiving a current signal indicative of a current of the motor from the current sensor, determining a torque of the motor based on the speed signal, the voltage signal and the current signal, determining whether the torque of the motor is less than or equal to a torque threshold, and In response to determining that the torque of the motor is less than or equal to the torque threshold, the electronic clutch is activated to electronically brake the motor.
2. The fastener driver of claim 1, wherein: The controller is configured to: activating the electronic clutch to electronically brake the motor for a first period of time, and Power is provided to the motor in response to the first period of time elapsing.
3. The fastener driver of claim 1, wherein: The fastener driver further includes a position sensor configured to sense a position of the lifting assembly, and wherein the controller is further configured to: A position signal indicative of a position of the lifting assembly is received from the position sensor, wherein a torque of the motor is further determined based on the position of the lifting assembly.
4. The fastener driver of claim 3, wherein: The controller is further configured to: When the lifting assembly is in the first position, the position command for driving the motor is set as the first position command, When the lifting assembly is in the second position, setting the position command to a second position command, and When the lifting assembly is in the third position, the position command is set to a third position command.
5. The fastener driver of claim 4, wherein: The controller is further configured to: comparing the position command with the position of the lifting assembly sensed by the position sensor, and Power is provided to the motor in response to the position of the lift assembly being less than the position command.
6. The fastener driver of claim 3, wherein: The controller is further configured to: determining a torque limit based on the position of the lifting assembly, and The motor is controlled based in part on the torque limit.
7. The fastener driver of claim 1, wherein: The controller is configured to: detecting a high load condition of the motor based on a speed of the motor; and In response to a high load state of the motor, a torque value driving the motor is limited.
8. The fastener driver of claim 1, wherein: The controller is further configured to: determining a torque value for driving the motor based on the speed of the motor and a speed command signal; comparing the torque value to a torque-speed-current lookup table; determining a current value to be supplied to the motor based on the comparison; as well as The current value is provided to the motor to drive the motor.
9. The fastener driver of claim 8, wherein: The controller is further configured to: determining a pulse width modulation (PWM) duty cycle based on the motor current and the current value, and The motor is driven according to a PWM duty cycle.
10. A method for operating a fastener driver including an electronic clutch, the method comprising: providing power to the motor in response to actuation of the trigger and based on the position of the lift assembly; receiving a speed signal indicative of a speed of the motor from a speed sensor; receiving a voltage signal indicative of a voltage of the battery pack from a voltage sensor; receiving a current signal indicative of a current of the motor from a current sensor; determining a torque of the motor based on the speed signal, the voltage signal, and the current signal; determining whether a torque of the motor is less than or equal to a torque threshold; and In response to determining that the torque of the motor is less than or equal to the torque threshold, the electronic clutch is activated to electronically brake the motor.
11. The method according to claim 10, wherein: Activating the electronic clutch includes activating the electronic clutch to electronically brake the motor for a first period of time, and wherein the method further includes: Power is provided to the motor in response to the first period of time elapsing.
12. The method according to claim 10, further comprising: A position signal indicative of a position of the lifting assembly is received from a position sensor, wherein a torque of the motor is further determined based on the position of the lifting assembly.
13. The method according to claim 12, further comprising: When the lifting assembly is in the first position, the position command for driving the motor is set as the first position command, When the lifting assembly is in the second position, setting the position command to a second position command, and When the lifting assembly is in the third position, the position command is set to a third position command.
14. The method according to claim 13, further comprising: comparing the position command with the position of the lifting assembly sensed by the position sensor, and In response to the position of the lift assembly being less than the position command, power is provided to the motor.
15. A fastener driver including an electronic clutch, the fastener driver comprising: motor; trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense a speed of the motor; a voltage sensor configured to sense a voltage of the battery pack; a current sensor configured to sense a current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: providing power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receiving a speed signal from the speed sensor indicative of a speed of the motor, receiving a voltage signal indicative of a voltage of the battery pack from the voltage sensor, receiving a current signal indicative of a current of the motor from the current sensor, providing the speed signal, the voltage signal, and the current signal to a machine learning model, receiving an estimate of the torque of the motor from the machine learning model, determining whether the torque of the motor is less than or equal to a torque threshold, and In response to determining that the torque of the motor is less than or equal to the torque threshold, the electronic clutch is activated to electronically brake the motor.
16. The fastener driver of claim 15, wherein: The controller is configured to: activating the electronic clutch to electronically brake the motor for a first period of time, and Power is provided to the motor in response to the first period of time elapsing.
17. The fastener driver of claim 15, wherein: The fastener driver further includes a position sensor configured to sense a position of the lifting assembly, and wherein the controller is further configured to: A position signal indicative of a position of the lifting assembly is received from the position sensor, wherein a torque of the motor is further determined based on the position of the lifting assembly.
18. The fastener driver of claim 17, wherein: The controller is further configured to: When the lifting assembly is in the first position, the position command for driving the motor is set as the first position command, When the lifting assembly is in the second position, setting the position command to a second position command, and When the lifting assembly is in the third position, the position command is set to a third position command.
19. The fastener driver of claim 15, wherein: The controller is further configured to: determining a torque value for driving the motor based on the speed of the motor and a speed command signal; comparing the torque value to a torque-speed-current lookup table; determining a current value to be supplied to the motor based on the comparison; and The current value is provided to the motor to drive the motor.
20. The fastener driver of claim 19, wherein: The controller is further configured to: determining a pulse width modulation (PWM) duty cycle based on the motor current and the current value, and The motor is driven according to the PWM duty cycle.
21. A fastener driver including an electronic clutch, the fastener driver comprising: motor; trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a sensor configured to sense a characteristic of the fastener driver; and a controller connected to the trigger, the motor, and the sensor, the controller being configured to: providing power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receiving a signal from the sensor indicative of a characteristic of the fastener driver, determining a torque of the motor based on a signal from the sensor, determining whether the torque of the motor is less than or equal to a torque threshold, and In response to determining that the torque of the motor is less than or equal to the torque threshold, the electronic clutch is activated to electronically brake the motor.
22. A fastener driver comprising: motor; trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense a speed of the motor; a voltage sensor configured to sense a voltage of the battery pack; a current sensor configured to sense a current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: providing power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receiving a speed signal from the speed sensor indicative of a speed of the motor, receiving a voltage signal indicative of a voltage of the battery pack from the voltage sensor, receiving a current signal indicative of a current of the motor from the current sensor, determining a torque of the motor based on the speed signal, the voltage signal and the current signal, determining a condition of the fastener driver based on the torque of the motor, and An indication of a condition of the fastener driver is provided.
23. The fastener driver of claim 22, wherein: The condition of the fastener driver includes the condition of the lifting assembly.
24. The fastener driver of claim 22, further comprising: Pressurized cylinders; and a buffer, the buffer being located at the bottom end of the cylinder, Wherein the condition of the fastener driver includes a condition of the buffer.
25. The fastener driver of claim 22, further comprising: Pressurized cylinder, The fastener driver condition includes determining that a pressure of the cylinder is below a pressure threshold.
26. The fastener driver of claim 22, wherein the fastener driver condition comprises the motor being stuck.
27. A method for determining a condition of a fastener driver, the method comprising: providing power to the motor in response to actuation of the trigger and based on the position of the lift assembly; receiving a speed signal indicative of a speed of the motor from a speed sensor; receiving a voltage signal indicative of a voltage of the battery pack from a voltage sensor; receiving a current signal indicative of a current of the motor from a current sensor; determining a torque of the motor based on the speed signal, the voltage signal, and the current signal; determining a condition of the fastener driver based on the torque of the motor, and An indication of a condition of the fastener driver is provided.
28. The method according to claim 27, wherein: The condition of the fastener driver includes the condition of the lifting assembly.
29. The method according to claim 27, wherein: The fastener driver condition includes the condition of the buffer located at the bottom end of the cylinder.
30. The method of claim 27, wherein: Determining a condition of the fastener driver includes determining that a pressure of a cylinder is below a pressure threshold.
31. The method of claim 27, wherein: The fastener driver condition includes the motor being stuck.
32. A fastener driver comprising: motor; trigger; a battery pack interface configured to receive a battery pack; a lift assembly operable to be moved by the motor; a speed sensor configured to sense a speed of the motor; a voltage sensor configured to sense a voltage of the battery pack; a current sensor configured to sense a current of the motor; and a controller connected to the trigger, the motor, the speed sensor, the voltage sensor, and the current sensor, the controller being configured to: providing power to the motor in response to actuation of the trigger and based on the position of the lifting assembly, receiving a speed signal from the speed sensor indicative of a speed of the motor, receiving a voltage signal indicative of a voltage of the battery pack from the voltage sensor, receiving a current signal indicative of a current of the motor from the current sensor, determining a torque of the motor based on the speed signal, the voltage signal, and the current signal, and The firing process of the fastener driver is varied based on the torque of the motor.
33. The fastener driver of claim 32, wherein: To change the firing process of the fastener driver, the controller is configured to: A ready-to-fire position of the lift assembly is adjusted based on the torque of the motor.
34. The fastener driver of claim 32, wherein: To change the firing process of the fastener driver, the controller is configured to: A field weakening angle implemented by a field weakening module is reduced based on the torque of the motor.
35. The fastener driver of claim 32, wherein: To change the firing process of the fastener driver, the controller is configured to: A maximum value of a speed command for driving the motor is limited based on the torque of the motor.
36. The fastener driver of claim 32, wherein the controller is further configured to: After changing the firing sequence of the fastener driver, the motor is driven based on the changed firing sequence in response to actuation of the trigger.
37. A method of operating a fastener driver, the method comprising: providing power to the motor in response to actuation of the trigger and based on the position of the lift assembly; receiving a speed signal indicative of a speed of the motor from a speed sensor; receiving a voltage signal indicative of a voltage of the battery pack from a voltage sensor; receiving a current signal indicative of a current of the motor from a current sensor; determining a torque of the motor based on the speed signal, the voltage signal, and the current signal; and The firing process of the fastener driver is varied based on the torque of the motor.
38. The method of claim 37, wherein varying the firing process of the fastener driver based on the torque of the motor comprises adjusting a ready-to-fire position of the lift assembly based on the torque of the motor.
39. The method of claim 37, wherein: Changing the firing process of the fastener driver based on the torque of the motor includes reducing a magnetic weakening angle implemented by a magnetic weakening module based on the torque of the motor.
40. The method of claim 37, wherein varying the firing process of the fastener driver based on the torque of the motor comprises limiting a maximum value of a speed command used to drive the motor based on the torque of the motor.
41. The method of claim 37, further comprising: After changing the firing sequence of the fastener driver, the motor is driven based on the changed firing sequence in response to actuation of the trigger.
Citation Information
Patent Citations
Oil pump systems and methods for preventing torque overload in motors of oil pump systems
CN101330272A
Control system used for air spring fastener driver
CN108058142A
Jam release and lifter mechanism for gas spring fastener driver
CN108068059A
Driving machine
CN110709210A
Hand-held mounting tool
CN114269518A