Patent Publication Number: US-11660684-B2

Title: Method and apparatus for machining a workpiece

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 16/253,294, filed Jan. 22, 2019, which claims the benefit of U.S. Provisional Application No. 62/620,856, filed Jan. 23, 2018, the disclosures of which are incorporated by reference herein in their entirety. 
    
    
     BACKGROUND 
     This application relates to machining, and more particularly to a method and apparatus for machining a workpiece. 
     When repetitively performing machining operations on a workpiece, such as drilling operations, it is generally desirable to perform those machining operations as quickly as possible. However, performing a machining operation too quickly can undesirably increase the thrust force and torque applied to a workpiece by a tool, potentially shortening tool life and detrimentally affecting the geometry and/or integrity of the feature desired on the workpiece. 
     SUMMARY 
     A method includes performing a machining operation by providing linear movement of a tool along a feed axis relative to a workpiece while superimposing oscillation of the tool onto the feed axis and providing rotation of the tool relative to the workpiece. During an optimization mode, the machining operation is performed on a first workpiece portion while providing the linear movement at an initial feed velocity, and sequentially superimposing the oscillating at a plurality of different frequencies. One of the plurality of different frequencies that causes the tool to apply less force to the first workpiece portion at the initial feed velocity than others of the frequencies at the initial feed velocity is determined to be an optimal oscillation frequency. During a run mode, the machining operation is performed on a second workpiece portion having a same composition as the first workpiece portion while superimposing the oscillation at the optimal oscillation frequency. The first workpiece portion and second workpiece portion are part of a same workpiece or different workpieces. 
     In a further embodiment of any of the foregoing embodiments, the determination of one of the plurality of different frequencies that causes the tool to apply less force to the first workpiece portion at the initial feed velocity than others of the frequencies includes determining whichever of the plurality of different frequencies causes the tool to apply a smallest amount of force to the first workpiece portion at the initial feed velocity to be the optimal oscillation frequency. 
     In a further embodiment of any of the foregoing embodiments, the sequential superimposing of the oscillation at a plurality of different frequencies includes performing a frequency sweep within a frequency band. 
     In a further embodiment of any of the foregoing embodiments, the force is a thrust force and providing the linear movement including providing current to a stator of a linear motor, and the method includes determining a thrust force applied by the tool to the first workpiece portion based on an amount of current provided to the stator. 
     In a further embodiment of any of the foregoing embodiments, the providing linear movement at the initial feed velocity includes adjusting an amount of current provided to the stator based on a feedback signal from a position sensor to maintain the initial feed velocity. 
     In a further embodiment of any of the foregoing embodiments, the force is a thrust force and the run mode is a force mode, and the method includes, during the force mode: utilizing a feed velocity for the tool that is different than the initial velocity, and controlling the thrust force applied by the tool to the second workpiece portion to be within a predefined amount of a maximum force threshold without exceeding the maximum force threshold. 
     In a further embodiment of any of the foregoing embodiments, providing linear movement of the tool includes advancing the tool in a first direction, and the method includes, after the machining operation, retracting the tool away from the workpiece along the feed axis in a second direction opposite the first direction, and superimposing oscillation of the tool onto the feed axis during the retracting. 
     In a further embodiment of any of the foregoing embodiments, the first workpiece portion has a plurality of layers, and the second workpiece portion has a plurality of layers corresponding to the plurality of layers of the first workpiece portion. The method includes, during the optimization mode, determining the optimal oscillation frequency for each of the plurality of layers of the first workpiece portion; and during the run mode, for each layer of the second workpiece portion, utilizing the optimal oscillation frequency of the corresponding layer of the first workpiece portion. 
     In a further embodiment of any of the foregoing embodiments, the machining operation is a drilling operation that drills a hole from a first side to a second side of a workpiece portion, the second side opposite to the first side. The method includes determining that the tool has advanced beyond the second side based on a rate of change of a feed velocity of the tool exceeding a predefined threshold. 
     In a further embodiment of any of the foregoing embodiments, the tool is a rotary tool that rotates about the longitudinal feed axis, and the method includes rotating the rotary tool at an approximately constant rotational velocity during the optimization mode. 
     In a further embodiment of any of the foregoing embodiments, during an additional optimization mode, the method includes performing the machining operation on a third workpiece portion while superimposing the oscillating at the optimal oscillation frequency and rotating the tool at a plurality of different rotational velocities. One of the plurality of different rotational velocities that causes the tool to apply less thrust force the third workpiece portion while oscillating at the optimal oscillation frequency than others of the rotational velocities at the optimal oscillation frequency is determined to be an optimal rotational velocity. During the run mode, the tool is rotated at the optimal rotational velocity. The third workpiece portion is part of a same workpiece as at least one of the first and second workpiece portions or is part of a different workpiece than each of the first and second workpiece portions. 
     In a further embodiment of any of the foregoing embodiments, the method includes determining that the tool has encountered a non-homogenous zone of the second workpiece portion based on a linear feed velocity of the tool changing by more than a predefined percent while the oscillating is superimposed at the optimal oscillation frequency. The method includes, based on the determination that the tool has encountered the non-homogenous zone, entering an adaptive run mode which includes sequentially superimposing the oscillating at a second plurality of different frequencies, and modifying the optimal oscillation frequency for at least the non-homogenous zone of the workpiece to one of the second plurality of different frequencies that enables the tool to apply less thrust force to the non-homogenous zone at a given feed velocity than the unmodified optimal oscillation frequency, enables the tool to travel at a higher feed velocity in the non-homogenous zone at a given thrust force than the un-modified optimal oscillation frequency, or both. 
     A method of operating a tool according to an example of the present disclosure includes oscillating a direct current (DC) control signal provided to a linear motor, and thereby causing the linear motor to both provide linear movement of a tool along a feed axis relative to a workpiece and superimpose oscillation of the tool onto the feed axis during the linear movement. 
     A machining device according to an example of the present disclosure includes a tool, and a linear motor including a core and stator that each surround a longitudinal feed axis. The linear motor is operable to provide linear movement of the tool relative to the stator along the longitudinal feed axis, and superimpose oscillation of the tool onto the feed axis during said linear movement. A rotary motor is operable to rotate the tool about the longitudinal feed axis during linear movement. A controller is operable to cause the linear motor to provide the linear movement and superimpose the oscillation by oscillating a direct current (DC) control signal provided to the linear motor. 
     In a further embodiment of any of the foregoing embodiments, a sensor is operable to measure at least one machining parameter related to the linear movement, rotation of the tool, or both, and the controller is operable to control the linear motor, rotary motor, or both based on feedback from the sensor. 
     In a further embodiment of any of the foregoing embodiments, a support housing is included that has opposing first and second sides, and defines an internal cavity. The linear motor and rotary motor are mounted to the support housing. A driveshaft couples the linear motor to the tool and extends through the internal cavity. A central longitudinal axis of the rotary motor is parallel to and spaced apart from the longitudinal feed axis, and a drive mechanism within the internal cavity translates rotation of a spindle of the rotary motor to rotation of the driveshaft. 
     In a further embodiment of any of the foregoing embodiments, in an optimization mode, the controller is configured to command the linear and rotary motors to cooperate and perform a machining operation on a first workpiece portion while the linear motor provides linear movement at an initial feed velocity and superimposes the oscillation sequentially at a plurality of different frequencies. One of the plurality of different frequencies that causes the tool to apply less force to the first workpiece portion at the initial feed velocity than others of the frequencies at the initial feed velocity is determined to be an optimal oscillation frequency. In a run mode, the controller is configured to perform the machining operation on a second workpiece portion having a same composition as the first workpiece portion while superimposing the oscillation at the optimal oscillation frequency. The first workpiece portion and second workpiece portion are part of a same workpiece or different workpieces. 
     In a further embodiment of any of the foregoing embodiments, the sensor includes a displacement transducer operable to measure a linear displacement of the tool relative to the stator. 
     In a further embodiment of any of the foregoing embodiments, a sleeve is provided having a radially outer surface secured to the rotary motor, and a radially inner surface that engages a rotary shaft of the rotary motor and imparts rotation from the rotary motor to the rotary shaft and tool. A cross section of the rotary shaft has a non-circular shape that engages the radially inner surface. 
     In a further embodiment of any of the foregoing embodiments, the stator of the rotary motor includes a radial outer portion and a radial inner portion and a cavity therebetween, and the core of the linear motor at least partially received into the cavity. 
     The embodiments, examples, and alternatives of the preceding paragraphs, the claims, or the following description and drawings, including any of their various aspects or respective individual features, may be taken independently or in any combination. Features described in connection with one embodiment are applicable to all embodiments, unless such features are incompatible. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a schematic view of a machining device and an associated positioning device. 
         FIG.  2    is a schematic view of the machining device of  FIG.  1    in greater detail. 
         FIG.  3    schematically illustrates an example implementation of a linear motor and transition assembly for the machining device of  FIG.  1   . 
         FIG.  4 A  schematically illustrates an example implementation of a rotary motor for the machining device of  FIG.  1   . 
         FIG.  4 B  schematically illustrates a cross-sectional view of an example sleeve of the rotary motor of  FIG.  4 A . 
         FIG.  5    illustrates another example machining device. 
         FIG.  6    is a flowchart showing an example optimization mode for the machining device of  FIG.  1   . 
         FIG.  7    illustrates a graph demonstrating performance of an example frequency sweep during a machining operation. 
         FIG.  8    illustrates a graph showing how a thrust force applied by the machining device varies during the frequency sweep of  FIG.  7   . 
         FIG.  9    is a flowchart of an example run mode for the machining device of  FIG.  1   . 
         FIG.  10 A  illustrates an example single-layer workpiece. 
         FIG.  10 B  illustrates an example multi-layer workpiece. 
         FIG.  11    is a flowchart of an example adaptive run mode for the machining device of  FIG.  1   . 
         FIG.  12    is a flowchart showing an example optimization mode for optimizing a rotational velocity of the machining device of  FIG.  1   . 
     
    
    
     DETAILED DESCRIPTION 
       FIG.  1    is a schematic view of an electromagnetically-operated machining device  20  that is operable to perform a machining operation with a tool  22 . A positioning device  24  is operable to position the machining device  20  relative to a workpiece W, and in particular a portion of the workpiece W that is to be machined. Once positioned, the machining device  20  can perform a machining operation on that portion of the workpiece W. 
     In one example, the positioning device  24  can be programmed to move the machining device  20  in six degrees of freedom. However, it should be appreciated that a six degree of freedom positioning system may not be necessary for some applications and as such, other positioning systems may be used. 
     During machining operations, the machining device  20  provides linear feed movement of the tool  22  along a feed axis A 1  relative to the workpiece W while superimposing oscillation of the tool  22  onto the feed axis A 1  onto the linear feed movement and providing rotation of the tool  22  relative to the workpiece. The rotation could be provided by rotating the tool  22  or rotating the workpiece W. By superimposing oscillation onto the linear feed movement, a thrust force applied by the tool  22  to the workpiece W can be reduced, thereby prolonging tool life, and also allowing use of faster feed velocities at a given force level than would otherwise be possible without the superimposed oscillation. 
     In one example, while the positioning device  24  is used to position the machining device  20  with respect to the workpiece, the positioning device  24  does not move relative to workpiece W and/or the machining device  20  during an actual machining operation because the machining device  20  itself provides for its own feed movement during machining operations. 
     The machining device  20  can be used to perform any of a plurality of different machining operations, such as drilling, milling, and turning. In a drilling operation, the tool  22  is rotated about axis A 1  and is fed in a direction parallel to the axis A 1  into the workpiece W to create a round hole. In a milling operation, the tool  22  is rotated about the axis A 1  and fed in a direction perpendicular to the axis A 1  into the workpiece W to cut a profile matching the tool  22 . In a turning operation, the workpiece W is rotated and the tool  22  is fed either parallel or perpendicular to the rotating workpiece W to create a cylindrical product. 
       FIG.  2    is a schematic view of the machining device  20  device of  FIG.  1    in greater detail. As shown in  FIG.  2   , the machining device  20  includes a linear motor  30 , a transition assembly  31 , and a rotary motor  32  that are each coupled to a shaft  34 . The shaft  34  includes a first section  34 A within the rotary motor  32  that provides linear movement along the feed axis A 1  but does not rotate. The driveshaft  34  also includes a second section  34 B within the rotary motor  32  that does rotate, and therefore acts a drive shaft. The transition assembly  31  includes and intermediate section  34 C that interconnects the two sections  34 A-B. 
     The linear motor  30  is operable to provide linear movement of the tool  22  along the longitudinal axis A 1  and is also operable to superimpose oscillation of the tool  22  onto the feed axis during the linear movement. The rotary motor  32  is operable to rotate the tool  22  about the longitudinal feed axis A 1  during the linear feed movement. The linear motor  30  and rotary motor cooperate to perform a machining operation on the workpiece W. As shown in the example of  FIG.  2   , the longitudinal feed axis A 1  extends through the rotary motor  32 . 
     A controller  40  is operable to control the linear motor  30  and rotary motor  32 . The controller  40  includes a processor  42  that is operatively connected to memory  44 , a user interface  46 , and a communication interface  48 . The processor  42  may include one or more microprocessors, microcontrollers, application specific integrated circuits (ASICs), or the like, for example. The memory  44 , may include one or several types of memory such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, etc. The user interface  46  includes an input device and an electronic display, which may be combined in the form of a touch screen, for example. 
     The controller  40  utilizes communication interface  48  to provide control signals to the machining device  20  over control lines  50 A-B and receive feedback from sensors S 1 -S 4  over feedback lines  52 A-D. The controller  40  is operable to cause the linear motor  30  to provide the linear movement and superimpose the oscillation by oscillating a direct current (DC) control signal provided to the linear motor  30  over control line  50 A. 
     By oscillating the DC control signal provided to the linear motor  30 , the controller causes the linear motor  30  to both provide linear movement of a tool  22  along the feed axis A 1  relative to the workpiece W and superimpose oscillation of the tool  22  onto the feed axis A 1  during the linear movement. 
     The sensors S 1 -S 4  provide feedback about the operations of the linear motor  30  and rotary motor  32  to provide for closed loop feedback control. The sensors S 1 -S 2  are operable to measure at least one machining parameter related to linear movement of the tool  22 , and the sensors S 3 -S 4  are operable to measure at least one machining parameter related to rotary movement of the tool  22 . 
     In one example configuration, sensors S 1  and S 3  are displacement transducers, and sensor S 2  and S 4  are current sensors. This configuration is useful because measuring current applied to a stator of the linear motor  30  is one way to measure a thrust force applied by the linear motor  30 , and measuring a current applied to a stator of the rotary motor  32  is one way to measure a torque force applied by the rotary motor  32 . The stators are discussed below. 
     Some example types of linear displacement transducers that could be used for the sensor S 1  include a linear encoder, linear variable differential transformer (LVDT), or magneto-restrictive device. Some example types of rotary displacement transducers that could be used for the sensor S 3  include a rotary encoder, rotary differential transformer (RVDT), or resolver. Of course, it is understood that these are non-limiting examples and that others types of displacement sensors could be used. 
     In one example, by utilizing the sensors S 1 -S 2 , the controller  40  is able to determine any of the following and use any of the following as process variables for the linear motor  30  in a closed loop control: linear displacement and position, feed velocity, linear acceleration, current applied to linear motor  30 , and thrust force. 
     In the same or another example, by utilizing the sensors S 3 -S 4 , the controller  40  is able to determine any of the following and use any of the following as process variables in a closed loop control for the rotary motor  32 : revolutions per minute (RPM), rotational velocity, rotational acceleration, current applied to rotary motor  32 , and torque. 
     Although the sensors S 1 -S 4  are shown as being disposed at the machining device  20 , it is understood that they could be disposed at other locations (e.g., measuring current at the controller  40  instead of at the machining device  20 ) and/or that other quantities of sensors could be used. 
     Although not shown in  FIG.  2   , the machining device  20  may include a tool holder for interchanging various tools  22  with the machining device  20  (e.g., a 3-jaw chuck, a collet, a drill arbor, or a taper spindle). 
     In the example of  FIG.  2   , the linear motor  30  and rotary motor  32  both surround the longitudinal axis A 1 . 
       FIG.  3    illustrates an example implementation of the linear motor  30  and transition assembly  31 . A shown in the example of  FIG.  3   , the linear motor  30  includes a linear stator  60  that surrounds the feed axis A 1 . The linear stator  60  includes a radially inner portion  60 A and a radially outer portion  60 B which at least partially define an annular cavity  62  therebetween. A core  64  is moveable relative to the linear stator  60  from a position P 1  to a position P 2  to provide linear feed movement of the shaft  34  and the tool  22  coupled to the shaft  34 . 
     The core  64  includes a hollow cylindrical portion  66  that is at least partially received into the cavity  62 .  FIG.  3    depicts the core  64  as being fully retracted, with the core  64  at position P 1 . Windings (not shown) surround portions of the core  64 . As current is applied to windings, the core  64  moves linearly along the feed axis A 1  towards position P 2 . A linear encoder  68  is provided to measure linear displacement of the core  64 . Of course, as discussed above, other linear displacement transducers could be used. As the core  64  translates in the linear motor  30 , the linear position of the core  64  can be determined as an incremental displacement value from a previous position or as an absolute position relative to a fixed datum. 
     In one example, an amplitude of the oscillation that is superimposed onto the feed movement is 0.0001″-0.0005″. In a further example, the amplitude of the oscillation that is superimposed onto the feed movement is 0.0001″-0.0003″. In either example, the amplitude of the oscillation is less than a distance between points P 1  and P 2  in  FIG.  3   . To provide for such precision, in one example the controller  40  has a resolution that is orders of magnitude greater than an amplitude of superimposed oscillation (e.g., if the amplitude is ±0.0002″, then the resolution could be anywhere between 10 to 1,000 times greater). This increased resolution enables fine-tuned adjustments for closed loop control of the machining device  20 . 
     In one example, the intermediate shaft section  34 C mounts to the shaft section  34 B through a splined connection whereby a portion  37  of the shaft section  34 B is received into a cavity  38  within the intermediate shaft section  34 C. Bearings  36  support rotation of the shaft sections  34 B-C. 
       FIG.  4 A  illustrates an example implementation of the rotary motor  32 , which includes a stator  70  and a rotor  72  that rotates relative to the stator  70 . The stator  70  includes windings, and the rotor  72  includes a magnet assembly  74  that is coupled to the rotor  72  to rotate the rotor  72 . Bearings  76  provide rotational support to the linear motor  30 . As current is applied to the stator  70 , rotation of the rotor  72  is provided. Sensor  77  measures rotary displacement of the shaft section  34 B. 
     The rotary motor  32  includes a sleeve  78  having a radially outer surface  79 B secured to the stator  70 , and a radially inner surface  79 A that engages the shaft section  34 B and imparts rotation from the rotary motor  32  to the shaft section  34 B and tool  22 . 
       FIG.  4 B  schematically illustrates a cross-sectional view of the sleeve  78  and shaft  34 . As shown in  FIG.  4 B , the shaft  34  has a non-circular shape that engages the radially inner surface  79 A. Although  FIG.  4 B  illustrates a hexagonal cross section for the shaft  34  and inner surface  79 A, it is understood that other cross-sectional shapes could be used. 
     Those having ordinary skill in the art will appreciate that any electrical rotary motor including but not limited to AC and DC, synchronous and induction, brushed and brushless, and the like, known or later discovered and suitable for this purpose could be employed in place of the rotor  72  and stator  70  described above and that the device would still fall within the scope of the present invention. 
     In this disclosure, like reference numerals designate like elements where appropriate and reference numerals with the addition of one-hundred or multiples thereof designate modified elements that are understood to incorporate the same features and benefits of the corresponding elements. 
       FIG.  5    illustrates another example configuration for a machining device  120  in which linear motor  130  provides feed movement along longitudinal feed axis A 1  and rotary motor  132  rotates about axis A 2  which is parallel and spaced apart from axis A 1 . Components  160 A-B,  164 , and  168  associated with the linear motor  130  operate in a similar manner to their counterparts in  FIG.  3   . Each of the linear motor  130  and rotary motor  132  are coupled to a support housing  180  which has opposing first and second sides  181 A-B. An internal cavity is provided between the opposing sides  181 A-B. A shaft  134  is provided having a first section  134 A that does not rotate and a second section  134 B that does rotate. A transition assembly  131  interconnects the two shaft sections  134 A-B with a splined connection between shaft section  134 B and intermediate shaft section  134 C, whereby a portion  137  of the shaft section  134 B is received into a cavity  138  within the intermediate shaft section  134 C. 
     A drive mechanism  183  within the internal cavity  182  translates rotation of a spindle  184  of the rotary motor  132  to rotation of the shaft  134 . The drive mechanism  183  can include a belt and/or geared architecture, for example. 
     Although internal details for the rotary motor  132  are not shown, it is understood that they could be similar to or the same as that of the rotary motor  32 . 
     Also, although the linear motor  30  and rotary motor  32  are primarily discussed below, it is understood that the methods and features described for the linear motor  30  and rotary motor  32  can also be applied to the linear motor  130  and rotary motor  132  unless otherwise specified. 
     The machining device  20 / 120  includes multiple operating modes, including an “optimization mode” and a “run mode.” During the optimization mode, the machining operation is performed on a first workpiece portion while providing the linear feed movement at an initial feed velocity V FM , and sequentially superimposing the oscillating at a plurality of different frequencies. Also during the optimization mode, one of the plurality of different frequencies that causes the tool to apply less thrust force to the first workpiece portion at the initial feed velocity than others of the frequencies at the initial feed velocity (e.g., the one that applies the least thrust force) is determined to be an optimal oscillation frequency. 
     During the run mode, the machining operation is performed on a second workpiece portion which may have the same composition as the first workpiece portion, while superimposing the oscillation at the optimal oscillation frequency. The first workpiece portion and second workpiece portion can be part of a same workpiece or can be part of different workpieces. 
     As used here, the “optimization mode” and “run mode” refer to operational modes of the controller  40  and not to a mode of vibration of the tool  22  or workpiece W. The optimization mode will now be described in greater detail in connection with  FIG.  6   . 
       FIG.  6    is a flowchart  500  of an example of the optimization mode. Linear feed movement of the tool  22  relative to the workpiece W is provided by providing a current to linear stator  60  of the linear motor  30  (step  502 ). Rotation of the tool  22  relative to the workpiece W and/or superimposing oscillation onto the feed movement of the tool  22  can also be initiated at this time, or that can be postponed until the tool  22  contacts the workpiece W. 
     The controller  40  monitors to determine if the tool  22  has contacted the workpiece (step  504 ). One way that the controller  40  can detect workpiece W contact is by an increase in the current needed by the linear motor  30  to maintain a feed velocity used in step  502 , because that current is representative of a thrust force applied by the linear motor  30 . Another way that the controller  40  could determine contact is by utilizing a force sensor. A force sensor could be mounted internally or externally along on the shaft  134 , either on the rotating portion  34 B,  134 B or the non-rotating portion  34 A,  134 A. As another example, a force sensor could be mounted to the workpiece W (e.g., with the workpiece W situated between the machining device  20 / 120  and the force sensor). 
     Upon detecting contact (a “yes” to step  504 ), the machining operation is performed on the workpiece while superimposing oscillation onto the feed axis onto the linear feed movement of the tool  22  and providing rotation of the tool  22  relative to the workpiece W (e.g., by rotary motor  32 ) (step  506 ). During the machining operation, the feed movement is provided at a feed velocity V FM . 
     The feed velocity V FM  is a velocity setpoint used by the controller  40  in a closed loop control algorithm. The controller  40  adjusts the current applied to the linear motor  30  as needed to achieve the desired linear movement feed velocity V FM  (step  508 ). If the desired feed velocity for machining V FM  is also used in step  502 , the controller  40  will have to increase the current value provided to the linear motor  30  in order to maintain that feed velocity V FM  once the tool  22  contacts the workpiece W. 
     The controller  40  records a frequency value and corresponding value indicative of a thrust force F T  at which the velocity setpoint V FM  is achieved (step  510 ). In one example, the controller  40  determines a thrust force applied by the tool  22  based on an amount of current applied to the linear stator  60  of the linear motor  30 . 
     The controller  40  then initiates a frequency sweep within a first frequency band to sequentially superimpose the superimposed oscillation at a plurality of different frequencies (steps  512 - 514 ) until the machining operation is complete (a “yes” to step  512 ). As used herein, performing a frequency sweep involves utilizing a plurality of discrete frequencies within a frequency range with some interval between the frequencies. In one example, the frequency band used for the frequency sweep is 1-10,000 Hz. In a further example, the frequency band is 1-5,000 Hz. In a further example, the frequency band is 1-2,000 Hz. 
     The tool  22  is then retracted from the workpiece (step  516 ), and a frequency at which the velocity setpoint V FM  is achieved using less thrust force than others of the frequencies is determined to be an optimal oscillation frequency F O  (step  518 ). In one example, the frequency at which the velocity setpoint V FM  is achieved using the least thrust force is determined to be the optimal oscillation frequency F O . 
     In one example, the tool  22  is rotated at an approximately constant rotational velocity V ROT  during the optimization mode, by using V ROT  as a rotational velocity setpoint and adjusting an amount of current applied to stator  70  of the rotatory motor  32  as necessary to achieve the V ROT . 
     In one example, the frequency sweep is terminated prior to completion of the machining operation if the sweep is completed before the machining operation is completed. 
       FIG.  7    illustrates a graph  700  demonstrating performance of an example frequency sweep during a machining operation, as depicted in the loop involving step  514  of  FIG.  6   . A shown in  FIG.  7   , the frequency oscillation sweep is performed starting from a first frequency F min  which is swept up to a maximum frequency F max  and is then swept down again to the first frequency F min . 
       FIG.  8    illustrates a graph  750  showing how the thrust force F T  applied by the tool  22  varies during the frequency sweep of  FIG.  7    while performing the machining operation utilizing feed movement at the velocity V FM  and sequentially superimposing oscillation at a plurality of different oscillation frequencies. As shown in  FIG.  8   , the thrust force F T  drops significantly from value N within a frequency band bounded by frequencies F 1  and F 3 , with a minimum thrust force being applied at frequency F 2 . In one example, the controller  40  performs step  518  by determining the minimum force (e.g., force F 2 ) as the optimal oscillation frequency F O . In another example, the controller performs step  518  by selecting a frequency within the frequency band F 1 -F 3  as the optimal oscillation frequency F O . 
       FIG.  9    is a flowchart  550  of an example method for performing a machining operation in the “run mode” and utilizing the optimal oscillation frequency F O  determined from the optimization mode of  FIG.  6   . The machining operation is performed on a second workpiece portion which can be part of the same or another workpiece utilized for the optimization mode of  FIG.  6   . 
     The tool  22  advances along the feed along the feed axis A 1  towards the workpiece W (step  552 ). Once the tool  22  contacts the workpiece W (a “yes” to step  554 ), the machining operation is performed while superimposing oscillation onto the feed axis A 1  onto linear feed movement at the optimal oscillation frequency F O  and providing rotation of the tool  22  relative to the workpiece W (e.g., by rotating the tool  22  or workpiece W) (step  556 ). 
     The controller  40  utilizes a force mode for the next step  558 , during which the controller  40  utilizes the optimal oscillation frequency F O , and adjusts a current A applied to the linear stator  60  of the linear motor  30  so that the thrust force F T  applied by the linear motor  30  is within a predefined amount of a maximum force threshold F max  without exceeding the force F max . This could be within a predefined percentage of F max  (e.g., 2%, 3% 4%, 5%, or 10%) or it could be utilizing F max  itself. 
     In one example, the force mode causes the machining device  20 / 120  to utilize a run mode feed velocity V R  which is greater than the initial feed velocity V FM  used in the optimization mode of  FIG.  6   . This can be achieved because use of the optimal oscillation frequency F O  reduces the force that would otherwise be applied, balancing out the increase in thrust force provided by the increased feed velocity. 
     In one example, the force mode also has a maximum “do not exceed” velocity that the controller  40  is configured to avoid exceeding, which can be based on user preference. 
     Upon completion of the machining operation (a “yes” to step  560 ), the tool  22  is retracted from the workpiece (step  562 ). 
       FIG.  10 A  illustrates an example single-layer workpiece W 1  having a first side  86 A and an opposing second side  86 B. In one example, the machining operation performed by the machining device  20 / 120  is a drilling operation that drills a hole  87  from the first side  86 A to the second side  86 B of the workpiece W 1  in a direction D 1 . In such an example, the controller  40  can determine that the tool  22  has advanced beyond the second side  86 B based on a rate of change of a feed velocity applied by the tool  22  exceeding a predefined threshold. The increase in feed velocity occurs quickly when the tool  22  advances beyond the second side  86 B because there is considerably less resistance to linear feed movement of the tool  22  after the tool  22  advances beyond the second side  86 B. Although a hole is shown that passes through the workpiece W 1 , it is understood that blind holes could be drilled by the tool  22  additionally using displacement monitoring and control to ensure that the blind hole does not extend through the workpiece W (e.g., using sensor S 1  or S 2  associated with the linear motor  30 ). 
     As discussed above, the controller  40  superimposes oscillation onto linear feed movement of the tool  22  during a machining operation. In one example, the controller  40  also superimposes oscillation of the tool  22  onto the feed axis A 1  during retraction of the tool  22  from a workpiece W in a direction D 2  that is opposite the direction D 1 . Such oscillation during retraction can be beneficial for a variety of reasons. For drilling machining operations, as an example, oscillation during retraction can help minimize and/or remove burrs that would otherwise form on the second side  86 B along a perimeter of the opening  87 . 
       FIG.  10 B  illustrates another example workpiece W 2  which includes a plurality of layers L 1 , L 2 , and L 3  that have different compositions. One or more of the layers may be laminate layer, for example. In one example, the controller  40  determines an optimal oscillation frequencies for each of the layers L 1 -L 3  during the optimization mode, and then subsequently during the run mode the controller  40  performs the machining operation on a portion of a workpiece that has the same composition by using the optimal oscillation frequencies determined during the optimization mode. 
     Some workpieces may have non-homogenous zones due to non-uniform physical properties, such as differing densities. In one example, the controller  40  includes an adaptive run mode for adjusting the optimal oscillation frequency for the non-homogenous zone of a workpiece. 
       FIG.  11    is a flowchart  600  of an example adaptive run mode for the machining device  20 / 120 . The machining device  20 / 120  begins by performing a machining operation according to steps  552 - 560  described above. Upon detecting that the feed velocity decreases by more than a predefined percentage X % (a “yes” to step  604 ), the controller  40  detects that the tool  22  has encountered a non-homogenous zone of the workpiece W and adjusts its optimal oscillation frequency for machining the non-homogenous zone. 
     In one example, the adjustment involves superimposing different oscillation frequencies to see which provides for a reduced thrust force at a given feed velocity, as described in steps  508 - 514  of the method  500 . This could include performing a frequency sweep, for example using a second frequency band. In one particular example, the second frequency band of the frequency sweep for the adaptive run mode is smaller than the first frequency band of the frequency sweep for the optimization mode (e.g., ±Y % of the optimal oscillation frequency for the homogenous portion of the workpiece). 
     Thus, based on the determination of step  606  that the tool  22  has encountered the non-homogenous zone, the controller  40  entering an adaptive run mode which includes sequentially superimposing the oscillating at a second plurality of different frequencies, and modifying the optimal oscillation frequency for at least the non-homogenous zone of the workpiece W to one of the second plurality of different frequencies that enables the tool to apply less thrust force to the non-homogenous zone at a given feed velocity than the unmodified optimal oscillation frequency (i.e., prior to the adjustment of step  606 ), enables the tool to travel at a higher feed velocity in the non-homogenous zone at a given thrust force than the un-modified optimal oscillation frequency, or both. In one example, the modified optimal oscillation frequency is the oscillation frequency that provides the least thrust force at a given feed velocity (and optionally a fixed rotational tool speed) to the workpiece within the second frequency band and/or that enables the highest feed velocity at a given thrust force level (and optionally at a fixed rotational tool speed) within the second frequency band. 
     Once the adjusted optimal oscillation frequency is determined, the controller  40  continues performing the machining operation according to steps  558 - 560  but using the adjusted optimal oscillation frequency (step  608 ). 
     Optionally, the controller  40  monitors (step  610 ) to see if the feed velocity increases by more than Z % which indicates that the tool  22  has exited the non-homogenous zone, and if the tool  22  has exited the non-homogenous zone the controller  40  resumes use of the previous optimal oscillation frequency (step  612 ). In one example, X % of step  604  and y % of step  610  are the same. Steps  610 - 612  are shown with a dotted outline to indicate that they are optional steps. If the tool  22  encounters a second non-homogenous zone, steps  604 - 608  could be repeated for that additional non-homogenous zone. 
     In one example, the controller  40  skips steps  610 - 612  and continues to use the modified optimal oscillation frequency for the rest of the machining operation, even if the tool  22  has exited the non-homogenous zone. 
     In a similar manner to how the controller  40  performs a frequency sweep to determine an optimal oscillation frequency while utilizing an approximately constant rotational velocity, the controller  40  could perform a sweep of tool  22  rotational velocities while utilizing a fixed oscillation frequency. 
       FIG.  12    is a flowchart  650  showing a method of determining an optimal rotational velocity. The controller  40  performs a machining operation on workpiece W while superimposing oscillation onto feed axis A 1  onto linear feed movement of the tool  22  at the optimal oscillation frequency determined by method  500  for the workpiece and using an approximately constant feed velocity (step  652 ). 
     The controller  40  records the current rotational velocity and a corresponding value indicative of a torque applied by the rotary motor  32  at the current rotational velocity (step  654 ). 
     The controller  40  then utilizes a plurality of different rotational velocities within a predefined range and determines an associated thrust force F T  at each rotational velocity (the loop of steps  658 - 654 ). Once the machining operation is complete (a “yes” to step  656 ), the tool  22  is retracted from the workpiece W (step  660 ), and the controller determines a rotational velocity which causes the tool  22  to apply less thrust force F T  at the optimal oscillation frequency than others of the rotational velocities as an optimal rotational velocity (step  662 ). In one example, the rotational velocity at which the thrust force F T  is lowest is determined to be the optimal oscillation rotational velocity. If the optimal rotational velocity causes a lowered thrust force, this reduction can potentially be used to increase the feed velocity of the tool  22  while still avoiding exceeding a maximum force threshold. 
     The optimal rotational velocity can then be used at the optimal oscillation frequency for machining operations. 
     In one example, the determination of the optimal oscillation frequency (flowchart  500 ) and the determination of the optimal rotational velocity (flowchart  650 ) are iteratively performed by re-determining the optimal oscillation frequency at the optimal rotational velocity, and re-determining the optimal rotational velocity at a new optimal oscillation frequency. This iterative performance could further reduce a force applied to a workpiece by the tool  22 . 
     In one example, the controller  40  stores optimal machining parameters in memory  44 , such as optimal oscillation frequencies to be superimposed on to linear feed movement and/or optimal rotational velocities for a variety of materials. The user interface  46  of the controller  40  can be utilized by an operator to recall those optimal values so that the optimization mode can be performed once for a plurality of machining operations for workpieces having a given composition. 
     The machining device  20 / 120  discussed above provides a number of benefits, including providing linear feed movement and superimposing oscillation from a single linear motor  30 . This provides for space reduction and, if desired, allows a positioning device to avoid moving the machining device  20 / 120  and/or avoid moving the workpiece W during certain machining operations. Prior art devices which provided for oscillation during machining did not do so from a single linear motor, but rather utilized separate devices for feed movement and oscillation. Also, those devices provided oscillation not through superimposing oscillation onto a DC control signal provided to a linear motor, but instead by using secondary devices such as piezo elements, hydraulics, or induction coils, which suffer from one of more of the following: being less precise than the machining device  20 / 120 , being limited in range of motion compared to the machining device  20 / 120 , utilizing more space than the machining device  20 / 120 , being more costly than the machining device  20 / 120 , and having limited resolution for closed loop feedback control compared to the machining device  20 / 120 . The integrated multi-axis self-contained machining device  20 / 120  lends itself to portability as an end effector to a delivery device such as a robot for large workpieces (e.g., motor vehicles, aircraft, vessels, etc.). 
     Also, the techniques described herein for identifying optimal oscillation frequencies and rotational speeds provide for reducing thrust force and torque, which enables the use of increased feed velocities without exceeding maximum force thresholds, thereby reducing the time required for machining operations, improving tool life, and enhancing the desired machined feature geometry and/or integrity. 
     Although the methods described in flowcharts  500 ,  550 ,  600 , and  650  have been described in connection with the machining device  20 / 120  which utilizes a single linear motor  30 / 130  to provide for both linear feed movement and the superimposing of oscillation onto the linear feed movement, it is understood that the methods could also be used to control machining devices that utilize separate devices to provide for feed movement and oscillation (e.g., a linear motor for feed movement and a piezoelectric or electroacoustic device to provide oscillation) and/or that use techniques such as hydraulics, piezo elements, and/or electroacoustic transducers to provide for vibration. 
     Although example embodiments have been disclosed, a worker of ordinary skill in this art would recognize that certain modifications would come within the scope of this disclosure. For that reason, the following claims should be studied to determine the scope and content of this disclosure.