# Patent

## Title
Proportional integral derivative control incorporating multiple actuators

## Abstract

Embodiments of the disclosure provide proportional integral derivative control (PID) using multiple actuators. In one embodiment, a process includes providing a PID controller in communication with a primary actuator and a secondary actuator, the primary actuator and the secondary actuator coupled to a handler, such as a robotic arm for manipulating an object. The process further includes receiving position feedback and a specified trajectory for the handler, and generating a dynamic feedforward force command and a position correction command for the handler based on the position feedback and the specified trajectory. The process further includes providing, from the PID controller, the dynamic feedforward force command to the secondary actuator and the position correction command to the primary actuator.

## Background
FIELD OF THE DISCLOSURE
Embodiments of the disclosure provided herein generally relate to a system for controlling multiple motors used as a driving source of a machine such as a robot, machine tool, or industrial machine.
BACKGROUND OF THE DISCLOSURE
A proportional-integral-derivative (PID) controller is a control loop feedback device commonly used in industrial control systems. A PID controller calculates an error value as the difference between a measured process variable and a desired setpoint. The PID controller attempts to minimize the error over time by adjustment of a control variable, such as the position of a robotic arm supporting a payload.
While PID controllers are applicable to many control problems, PID controllers often perform poorly because PID control is inherently a feedback system using constant parameters, yet with no direct knowledge of the process. Thus overall performance is reactive and a compromise. In one example, when used alone, PID controllers may give poor performance when the PID loop gains are reduced so the control system does not overshoot, oscillate, or hunt around the control setpoint value.
Feedforward control is one technique used to improve the shortcomings of conventional (e.g., feedback) PID controllers, as feed-forward control incorporates knowledge regarding the system. The PID controller communicates with an actuator responsible for error correction and dynamic torque (feed forward) control. However, this increases the workload on the PID controller, and the actuator tasked with providing error correction and dynamic torque control needs to be larger, creating space and packaging issues. Furthermore, PID actuators providing error correction and dynamic torque control need to be replaced or serviced more often, and are not as easily monitored for identification of wear.
SUMMARY OF THE DISCLOSURE
In view of the foregoing, embodiments herein provide proportional integral derivative control (PID) using multiple actuators. Unlike prior art feed forward applications using the same motor for controlling feedback and feedforward modes, embodiments herein employ a secondary motor dedicated to feed forward (open loop) control. The primary motor may then be used in feedback mode for smaller corrections on the error.
In one embodiment, a process includes providing a PID controller in communication with a primary actuator and a secondary actuator, the primary actuator and the secondary actuator coupled to a handler. The process further includes receiving position feedback and a specified trajectory for the handler, and generating a dynamic feedforward force command and a position correction command for the handler based on the position feedback and the specified trajectory. The process further includes providing, from the PID controller, the dynamic feedforward force command to the secondary actuator and the position correction command to the primary actuator.
In another embodiment a system includes a robotic arm coupled to a primary actuator and a secondary actuator, a first control loop including the primary actuator in communication with a proportional integral derivative (PID) controller, wherein the first control loop communicates, from the PID controller, a position correction command to the primary actuator based on position feedback from the robotic arm. The system further includes a second control loop including the secondary actuator in communication with the PID controller, wherein the second control loop communicates a dynamic feedforward force command to the secondary actuator based on the position feedback and a specified trajectory of the robotic arm.
In yet another embodiment, a computer system for providing proportional integral derivative (PID) control using multiple actuators includes a memory medium comprising program instructions, and a PID controller. The PID controller, when executing the program instructions, causes the computer system to receive position feedback and a specified trajectory for a robotic arm, and generate a dynamic feedforward force command and a position correction command for the robotic arm based on the position feedback and the specified trajectory. The PID further causes the system to provide, from the PID controller, the dynamic feedforward force command to a secondary actuator coupled to the robotic arm, and provide, from the PID controller, the position correction command to a primary actuator coupled to the robotic arm.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a schematic of an exemplary apparatus in accordance with certain aspects of the present disclosure.
FIG. 2 shows a schematic of an exemplary computer system in accordance with certain aspects of the present disclosure.
FIG. 3 shows a schematic of an exemplary system in accordance with certain aspects of the present disclosure.
FIG. 4 is a flowchart illustrating an exemplary process according to the present disclosure.



The drawings are not necessarily to scale. The drawings are merely representations, not intended to portray specific parameters of the disclosure. Furthermore, the drawings are intended to depict exemplary embodiments of the disclosure, and therefore is not considered as limiting in scope.
DETAILED DESCRIPTION
Various approaches in accordance with the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, where embodiments of the methods are shown. The approaches may be embodied in many different forms and are not to be construed as being limited to the embodiments set forth herein. Instead, these embodiments are provided so this disclosure will be thorough and complete, and will fully convey the scope of the system and method to those skilled in the art.
For the sake of convenience and clarity, terms such as “top,” “bottom,” “upper,” “lower,” “vertical,” “horizontal,” “lateral,” and “longitudinal” will be used herein to describe the relative placement and orientation of these components and their constituent parts with respect to the geometry and orientation of a component of a device as appearing in the figures. The terminology will include the words specifically mentioned, derivatives thereof, and words of similar meaning and/or significance.
As used herein, an element or operation recited in the singular and proceeded with the word “a” or “an” is to be understood as including plural elements or operations, until such exclusion is explicitly recited. Furthermore, references to “one embodiment” of the present disclosure are not intended as limiting. Additional embodiments may also incorporating the recited features.
With reference now to the figures, FIG. 1 depicts a system 100 for providing proportional integral derivative control (PID) using multiple actuators. As shown, the system 100 includes a component under control, such as a handler or a robotic arm 104 coupled to a primary actuator 108 and a secondary actuator 112. In some embodiments, the primary actuator 108 and the secondary actuator 112 are motors having a feedback device such as an encoder.
The system 100 may operate using a first control loop 114 (e.g. a feedback closed-loop) including the primary actuator 108 in communication with a PID controller 120 for communicating one or more commands to the primary actuator 108, and using a second control loop 122 (e.g., a feed forward open loop) including the secondary actuator 112 in communication with the same PID controller 120 to provide one or more commands to the secondary actuator 112, as will be described in greater detail below. Unlike prior art approaches using the same motor for controlling feedback and feedforward modes, embodiments herein employ the secondary actuator 112 dedicated for feed forward (open loop) control via the second control loop 122. The primary actuator 108 may then be used in feedback mode with the PID controller 120 for smaller error corrections.
In some embodiments, the robotic arm 104 includes an object 124 (e.g., a wafer) provided thereon, for example, at a distal end 126, and the robotic arm 104 is coupled to the secondary actuator 112 (e.g., a motor) at a proximal end 128. The primary actuator 108 is coupled to the robotic arm 104 between the distal end 126 and the proximal end 128. In a non-limiting embodiment, the primary actuator 108 and the secondary actuator 112 are fixed or mounted to surfaces 130 and 132, respectively.
During use, the robotic arm 104 may be moved, positioned, and otherwise controlled by the first control loop 114 and the second control loop 122. For example, applying forward and reverse power to the primary actuator 108 and/or the secondary actuator 112 lifts, lowers, and/or rotates the robotic arm 104. As will be described in greater detail below, the PID controller 120 allows for the inertial mass of the robotic arm 104 and forces due to gravity, and compensates for external forces on the robotic arm 104 such as a load to lift or work to be done on the object 124.
Turning now to FIG. 2, a computer-implemented system 250 for providing PID control using multiple actuators will be described in greater detail. The system 250 is intended to demonstrate, among other things, embodiments herein can be implemented within a network environment 252 (e.g., the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc.), a cloud-computing environment, or on a stand-alone computer system. Still yet, the system 250 includes a computer infrastructure 254 including a computing device 255 intended to demonstrate some or all of the components of the system 250 could be deployed, managed, serviced, etc., by a service provider offering to implement, deploy, and/or perform the functions of the present embodiments for others.
The system 250 is intended to represent any type of computer system implemented in deploying/realizing the teachings recited herein. In this particular example, the system 250 represents an illustrative system for operating the PID controller 220 together with multiple actuators 208 and 212. The system 250 depicted is non-limiting, as any other computers implemented under various embodiments may have different components/software and will perform similar functions. As further shown, the system 250 includes a memory unit 256, a bus 258, and device interfaces 260.
The PID controller 220 refers, generally, to any apparatus for performing logic operations, computational tasks, control functions, etc. In some embodiments, the PID controller 220 may be a component of a processor. The PID controller 220 may include one or more subsystems, components, modules, and/or other processors, and may include various logic components operable using a clock signal to latch data, advance logic states, synchronize computations and logic operations, and/or provide other timing functions. During operation, the PID controller 220 may receive signals transmitted over a LAN and/or a WAN (e.g., T1, T3, 56 kb, X.25), broadband connections (ISDN, Frame Relay, ATM), wireless links (802.11, Bluetooth, etc.), and so on. In some embodiments, the signals may be encrypted using, for example, trusted key-pair encryption. Different systems may transmit information using different communication pathways, such as Ethernet or wireless networks, direct serial or parallel connections, USB, Firewire®, Bluetooth®, or other proprietary interfaces. (Firewire is a registered trademark of Apple Computer, Inc. Bluetooth is a registered trademark of Bluetooth Special Interest Group (SIG)).
In general, the PID controller 220 executes computer program instructions or code stored in memory unit 256 and/or storage system 262. For example, when executing computer program instructions, the PID controller 220 causes the system 250 to receive position feedback and a specified trajectory for the robotic arm 204, generate a dynamic feedforward force command and a position correction command for the robotic arm 204 based on the position feedback and the specified trajectory, and provide, from the PID controller 220, the dynamic feedforward force command to the secondary actuator 212 coupled to the robotic arm 204, and the position correction command to a primary actuator 208 coupled to the robotic arm.
While executing computer program code, the PID controller 220 can read and/or write data to/from the memory unit 256 and/or the storage system 262. The storage system 262 may comprise VCRs, DVRs, RAID arrays, USB hard drives, optical disk recorders, flash storage devices, and/or any other data processing and storage elements for storing and/or processing data. Although not shown, system 250 could also include I/O interfaces communicating with one or more hardware components of computer infrastructure 254 to enable a user to interact with the system 250 (e.g., a keyboard, a display, camera, etc.). As will be described in further detail below, the computer infrastructure 254 is configured to operate with the primary actuator 208 and the secondary actuator 212.
Referring now to FIG. 3, operation of an exemplary PID controller will be described in greater detail. In this embodiment, the PID controller 320 is a control loop feedback device used to calculate an error value as the difference between a measured process variable (PV) and a desired setpoint (SP). The PID controller 320 minimizes the error over time by adjusting a control variable, such as the position of the robotic arm 304, to a new value determined by a weighted sum:




  
    
      u
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        
          K
          p
        
        ⁢
        
          e
          ⁡
          
            (
            t
            )
          
        
      
      +
      
        
          K
          i
        
        ⁢
        
          
            ∫
            0
            t
          
          ⁢
          
            
              e
              ⁡
              
                (
                t
                )
              
            
            ⁢
            dt
          
        
      
      +
      
        
          K
          d
        
        ⁢
        
          
            de
            ⁡
            
              (
              t
              )
            
          
          dt
        
      
    
  
  ,




wherein Kp, Ki, and Kd are non-negative, and denote the coefficients for the proportional, integral, and derivative terms, respectively (sometimes denoted P, I, and D).

In this model, P accounts for present values of the error of the position of the robotic arm 304 (e.g. if the error is large and positive, the control variable will be large and negative), and I accounts for past values of the error (e.g. if the output is not adequate to reduce the size of the error, the control variable will accumulate over time, causing the controller to apply a stronger action). Furthermore, D accounts for possible future values of the error of the position of the robotic arm 304, based on a current rate of change.
In this embodiment, the first control loop 314 represents a PID closed-loop including the PID controller 320, the primary actuator 308, and a process to be controlled, such as movement of the robotic arm 304. A process variable PV associated with the process is measured and compared to a set point value SP, the target equilibrium value of the process variable PV. An error value e, defined as the difference of the set point and the measured process value, is supplied as the input to the PID controller 320 as position feedback 366, thus forming a feedback loop. The output of the PID controller 320 corresponds to one or more commands, such as a position correction command (PCC) 370, used to drive the process and apply a supplemental force 367, via the primary actuator 308, to the robotic arm 304 for correcting positional error.
In some embodiments, physical or behavior characteristics of the robotic arm 304 may be codified in a transfer function. Generally, a transfer function describes the characteristic response of a system to standard stimuli. Autotuning methods may apply an autotuning algorithm, such as the Ziegler-Nichols technique, to a system's transfer function to generate or calculate appropriate gain values for the PID controller 320. These gains may then be applied to the PID controller 320 for operational control of the robotic arm 304. By varying parameter values of the autotuning algorithm in response to user input, gain values may be determined, resulting in a control system of a desired stiffness, movement, or with a particular response time.
Performance of the PID controller 320 may be improved by combining the feedback control of the first control loop 314 with the feed-forward control of the second control loop 322. Specifically, system data 365, such as a specified trajectory 368, an acceleration 369, and a dynamic torque value 371 of the robotic arm 304 can be fed forward to the secondary actuator 312, as a dynamic feedforward force command (DFFC) 372. In one embodiment, torque feed forward is a method using specific model based information for pre-calculation of the dynamic torque value for a given trajectory. For example, feed forward forces or torques may be calculated using Newton's Second Law. For linear applications, the equation Force=Mass*Acceleration can be used. For rotary applications, the equation Torque=Mass Moment*Angular Acceleration can be used. In some embodiments, “specific model based information” refers to the system Mass (linear) or Mass Moment (rotary). Furthermore, the terms, “trajectory”, “motion profile”, or “planned path” refer to the acceleration (linear) or angular acceleration (rotary). The DFFC 372, along with the position correction command 370 of the first control loop 314, improve the overall system performance.
In exemplary embodiments, the secondary actuator 312 is dedicated to feed forward (open loop) control, and the primary actuator 308 is operated in feedback mode for smaller corrections on the error. In other words, inclusion of the secondary actuator 312 allows the PID controller 320 to primarily compensate the difference or error remaining between the setpoint (SP) and the system response to the open loop control (e.g., DFFC 372) of the second control loop 322. Since the feed-forward output is provided to the secondary actuator 312, independent of the position feedback 364 and the primary actuator 308, thus improving the system response yet not affecting stability. Feed forward can be based on the setpoint and on extra measured disturbances. Setpoint weighting is one form of feed forward.
In one non-limiting example, in order to accelerate a mechanical load from the object 324 under control, a feed forward torque is provided. In this case, the PID controller 320 is being used to control the speed of the load and command the torque 374 being applied by the secondary actuator 312. A benefit may be provided by taking the desired instantaneous acceleration, trajectory, and/or feedforward torque, scaling these values appropriately, and adding them to the output (e.g., the DFFC 372) of the second control loop 322. In this case, although the object 324 and the robotic arm 304 is being accelerated or decelerated, an amount of torque 374 is independently commanded from the secondary actuator 312 via the feedback DFFC 372. The secondary control loop 322 in this situation uses the position feedback 364 to change the combined output, DFFC 372, while the first control loop 314 uses the position feedback 364 to reduce the remaining difference between the process setpoint and the process variable based on the position feedback 364. Working together, the open-loop feed-forward control provided by the secondary actuator 312 and the PID controller 320, combined with the closed-loop feedback control provided by the primary actuator 308 and the PID controller 320, provide a more responsive control system overall.
FIG. 4 depicts a flow diagram of a process 400 for providing a PID controller operable with multiple actuators, in accordance with certain aspects of the present disclosure. In some embodiments, the process 400 may be implemented using a computer system (e.g., the system 250 of FIG. 2). As such, the process 400 of FIG. 4 may illustrate the functionality and/or operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, the blocks in the flowchart may represent a module, segment, or portion of code, comprising one or more executable instructions for implementing the specified logical function(s). As also noted, in some alternative implementations, the functions noted in the blocks might occur out of the order depicted in the figures. For example, two blocks shown in succession may, in fact, be executed concurrently. As also noted, the blocks of the process 400 can be implemented by special purpose hardware-based systems for performing the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In one embodiment, the process 400 may include providing a PID controller in communication with a primary actuator and a secondary actuator, as shown at block 401, wherein the primary and secondary actuators are coupled to a handler. In some embodiments, the primary actuator and the PID controller form a first control loop, and the secondary actuator and the PID controller form a second control loop. In some embodiments, the handler is a robotic arm. In some embodiments, an object is coupled to the handler. In some embodiments, the primary actuator and the secondary actuator are motors. In some embodiments, the primary actuator and the secondary actuator are motors coupled to the robotic arm at different positions.
The process 400 may further include receiving position feedback and a specified trajectory for the handler, as shown at block 403. In some embodiments, the position feedback and the specified trajectory are received at the PID controller. In some embodiments, the process includes calculating a dynamic torque for the specified trajectory of the handler.
The process 400 may further include generating a plurality of commands based on the position feedback and the specified trajectory, as shown at block 405. In some embodiments, a dynamic feedforward force command (DFFC) and a position correction command (PCC) are generated by the PID controller.
The process 400 may further include providing, from the PID controller, the DFFC to the secondary actuator and the PCC to the primary actuator, as shown in block 407.
The process 400 may further include applying a torque by the secondary actuator to the hander, in response to the DFFC, and applying a supplemental force by the primary actuator to correct a positional error of the handler, in response to the PCC, as shown in block 409.
In sum, embodiments of the disclosure are applicable with a robot/mechanism arm, where motion quality is influential to the overall function. A primary (e.g., master) actuator is capable of pivoting the robot arm, and a PID Control System uses an encoder to provide feedback for the position of the arm and ultimate calculation of error. The position of the arm and the planned trajectory are used to calculate the dynamic torque appropriate for the movement. The dynamic torque (e.g., feed forward) is applied to the arm using a secondary (e.g., slave) actuator, thus enabling the remaining error to be corrected by applying a supplemental force via the primary master actuator. The secondary actuator is designated for applying the dynamic torque or force.
A first advantage of the disclosure includes the reduction of the peak torque necessary from the primary actuator, thus allowing a smaller primary actuator to be used. This has the benefit of reducing packaging and associated costs. A second advantage of the disclosure includes providing a majority of the toque (or force) from the secondary motor. This allows the primary motor to be more closely monitored for identification of wear. A third advantage of the disclosure relates to serviceability. Unlike the primary actuator requiring disassembly of the robot/mechanism, the secondary actuator can be serviced or replaced while the primary actuator and the robot/mechanism remain in place. This decreases downtime and increases throughput.
While certain embodiments of the disclosure have been described herein, the disclosure is not limited thereto, as the disclosure is as broad in scope as the art will allow and the specification may be read likewise. Therefore, the above description is not to be construed as limiting. Instead, the above description is merely as exemplifications of particular embodiments. Those skilled in the art will envision other modifications within the scope and spirit of the claims appended hereto.

## Claims

1. A method comprising:
providing a proportional integral derivative (PID) controller in communication with a primary actuator and a secondary actuator, the primary actuator and the secondary actuator coupled to a handler directly supporting a wafer, wherein the primary actuator is directly mounted to a first stationary surface and the secondary actuator is directly mounted to a second stationary surface, and wherein the first surface is located above the wafer and the second surface is located below the wafer;
receiving position feedback and a specified trajectory for the handler;
generating a dynamic feedforward force command and a position correction command for the handler based on the position feedback and the specified trajectory; and
providing, from the PID controller, the dynamic feedforward force command to the secondary actuator and the position correction command to the primary actuator.

2. The method of claim 1, further comprising applying a torque by the secondary actuator to the handler in response to the dynamic feedforward force command.

3. The method of claim 2, further comprising applying a supplemental force by the primary actuator to correct a positional error of the handler in response to the position correction command.

4. The method of claim 1, wherein the primary actuator and the secondary actuator are motors.

5. The method of claim 1, further comprising calculating a dynamic torque value for the specified trajectory of the handler.

6. The method of claim 1, wherein the handler is a robotic arm.

7. A system comprising:
a robotic arm coupled to a primary actuator and a secondary actuator, wherein the robotic arm directly supports a wafer, wherein the primary actuator is directly mounted to a first stationary surface and the secondary actuator is directly mounted to a second stationary surface, and wherein the first surface is located above the wafer and the second surface is located below the wafer;
a first control loop including the primary actuator in communication with a proportional integral derivative (PID) controller, wherein the first control loop communicates, from the PID controller, a position correction command to the primary actuator based on position feedback from the robotic arm; and
a second control loop including the secondary actuator in communication with the PID controller, wherein the second control loop communicates a dynamic feedforward force command to the secondary actuator based on the position feedback and a specified trajectory of the robotic arm.

8. The system of claim 7, wherein the secondary actuator applies a torque to the robotic arm in response to the dynamic feedforward force command.

9. The system of claim 7, wherein the primary actuator applies a supplemental force to the robotic arm to correct a positional error.

10. The system of claim 7, wherein the primary actuator and the secondary actuator are motors coupled to the robotic arm at different positions.

11. The system of claim 7, wherein the primary actuator is coupled to the robotic arm at a first position, and wherein the secondary actuator is coupled to the robotic arm at a second position located at a proximal end of the robotic arm.

12. A computer system for providing proportional integral derivative (PID) control using multiple actuators, the system comprising:
a memory medium comprising program instructions; and
a PID controller, wherein the PID controller, when executing the program instructions, causes the computer system to:
receive position feedback and a specified trajectory for a robotic arm;
generate a dynamic feedforward force command and a position correction command for the robotic arm based on the position feedback and the specified trajectory;
provide, from the PID controller, the dynamic feedforward force command to a secondary actuator coupled to the robotic arm; and
provide, from the PID controller, the position correction command to a primary actuator coupled to the robotic arm, wherein the primary actuator is directly mounted to a first stationary surface and the secondary actuator is directly mounted to a second stationary surface, and wherein the first surface is located above the wafer and the second surface is located below the wafer.

13. The computer system of claim 12, the PID controller further causing the computer system to apply a torque by the secondary actuator to the robotic arm in response to the dynamic feedforward force command.

14. The computer system of claim 12, the PID controller further causing the computer system to apply a supplemental force by the primary actuator to correct a positional error of the robotic arm.

15. The computer system of claim 12, wherein the primary actuator and the secondary actuator are motors coupled to the robotic arm.

16. The computer system of claim 12, wherein the wafer is coupled to the robotic arm at a distal end of the robotic arm, wherein the secondary actuator is coupled to the robotic arm at a proximal end of the robotic arm, and wherein the primary actuator is coupled to the robotic arm between the wafer and the secondary actuator.

17. The computer system of claim 12, the PID controller further causing the computer system to calculate a dynamic torque value for the specified trajectory of the robotic arm.