Abstract:
A sliding mode including a process of feeding back an amount of twist for controlling a servo loop is controlled by reading the position of a servomotor and the position of a mechanical actuator drivable by the servomotor (SP1), calculating an amount of twist which is an error (SP2), calculating a switching surface Suf with a value produced by filtering the amount of twist (SP3), and selecting a switching input with the produced value (SP4, SP5, SP6). The amount of twist is filtered by a filter which has a numerator and a denominator which are of a first order. The filter allows a system to be realized which suffers less vibration and is robust against inertia fluctuations.

Description:
This application is a continuation of application Ser. No. 07/743,343, filed Aug. 7, 1991, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a method of executing a sliding-mode control including a process of feeding back an amount of twist of a robot, and more particularly to a method of executing a sliding-mode control including a process of feeding back an amount of twist, the method being capable of reducing vibration by changing switching surfaces with a value which is produced by filtering the amount of twist. 
     2. Description of the Related Art 
     Some mechanical systems have mechanical actuators, such as robot arms, which allow the inertia of applied loads to vary greatly depending on whether the robot arms, for example, are extended or contracted, and which include servomotors and associated mechanisms that have large speed reduction ratios. If those mechanical systems are controlled by the ordinary feedback control process, their responses are so slow that they are not practically feasible. 
     In view of the above drawback, it has been customary to measure the spring constant and viscosity term of a mechanical actuator, such as a robot arm, in various postures thereof, and calculate a dynamically variable feed-forward term according to the conventional linear control method on an on-line basis for feed-forward control of the mechanical system. The applicant has filed Japanese Patent Application No. 1-117518 on a sliding-mode control method in which a torque command value is varied depending on the fluctuation of the inertia of a robot. As well known in the art, sliding mode control which has been used in relay control since 1955, has been applied to many kinds of systems, including robot manipulators. The use of sliding mode control in a robot control system suppresses nonlinear interactions between servo systems due to Coriolis and centrifugal forces and automatically compensates for variations in mass at the hand or distal end of the robot manipulator. 
     The applicant has also filed Japanese Patent Application No. 1-253767, corresponding to U.S. patent application Ser. No. 07/687,902, on a sliding-mode control method which is an improvement over the above sliding-mode control method. According to the improved sliding-mode control method, a switching plane for sliding-mode control is varied depending on a twist or positional difference between a servomotor and a mechanical actuator which is driven by the servomotor, and a twisting speed, i.e., the speed at which such a twist occurs. As illustrated in FIGS. 3A and 3B, a manipulator may have an angle θ t  between lines L 1  and L 2  which respectively connect points J 1  and J 2 , and joint J 2  to the actual position of end E of the manipulator. Due to twist, the angular position θ of the motor at joint J 2  may be different than θ t . As illustrated in FIG. 3B, the angular position θ of the motor may also differ from the commanded position θ r . 
     The above method is however disadvantageous in that it is necessary to establish a positional loop gain lower than a resonant frequency, and the servo rigidity is lowered. 
     SUMMARY OF THE INVENTION 
     In view of the aforesaid difficulties of the conventional sliding-mode control methods, it is an object of the present invention to provide a method of executing a sliding-mode control including a process of feeding back an amount of twist, the method being capable of reducing vibration by changing switching surfaces with a value which is produced by filtering the amount of twist, so that the rigidity is maintained at a high level for reduced vibration. 
     In order to accomplish the above object, there is provided in accordance with the present invention a method of executing a sliding-mode control including a process of feeding back an amount of twist for controlling a servo loop, comprising the step of effecting sliding mode control by changing switching surfaces with a value produced by filtering an amount of twist which is the positional difference between a servomotor and a mechanical actuator drivable by said servomotor. 
     The amount of twist is filtered by a filter which has a numerator and a denominator which are of a first order. The filter allows a system to be realized which suffers less vibration and is robust against inertia fluctuations. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flowchart of a method of executing a sliding-mode control including a process of feeding back an amount of twist according to the present invention; 
     FIG. 2 is a block diagram of a servo control loop for a robot controlled by the method of the present invention; 
     FIG. 3A is a schematic diagram of a two-joint robot manipulator; and 
     FIG. 3B is a schematic diagram of the second joint of the robot manipulator illustrated in FIG. 3A. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     An embodiment of the present invention will hereinafter be described with reference to the drawings. 
     FIG. 2 shows a servo control loop for a robot controlled by the present invention. A host CPU 1 is a processor for controlling a robot control apparatus in its entirety. A ROM for storing a system program, a work RAM,etc., which are associated with the host CPU 1, are omitted from illustration. Position command values are written from the host CPU 1 intoa shared memory 2. A digital servo circuit 3 for servo control is basicallyconstructed of a DSP (digital signal processor). The digital servo circuit 3 reads a position command value from the shared memory 2 at a constant time interval, reads motor information from a feedback signal register 4, calculates a command for a servo system, and controls the positions, speeds, and currents of servomotors of respective axes in a robot 5. Various calculations for a sliding-mode control process, described below, are also carried out by the digital servo circuit 3. 
     FIG. 1 shows a flowchart of a method of executing a sliding-mode control including a process of feeding back an amount of twist according to the present invention. In FIG. 1, numerals following the letters &#34;SP&#34; represent the numbers of steps. 
     SP1: A position command is read from the shared memory 2, and feedback pulses are read from the feedback signal register 4. 
     SP2: Position and speed errors are calculated. 
     SP3: The value of a switching surface Suf is calculated. When calculating the switching surface Suf, an amount of twist is filtered. Details will bedescribed later on. 
     SP4: If Suf is positive, then control goes to a step SP5, and if not, then control goes to a step SP6. 
     SP5: Since Suf is positive, a switching input I is selected. The switching input will be described in detail later on. 
     SP6: Since Suf is negative, a switching input II is selected. The switchinginput will be described in detail later on. 
     SP7: An input to a current compensating loop is calculated. 
     SP8: Transfer of the input to the current compensating loop is carried out. 
     According to a feature of the present invention, a value produced by specially filtering an amount of twist that is estimated by an observer isfed back to a switching surface in a sliding mode, for thereby realizing a robust system that is adaptable to inertia fluctuations in a spring system. Details will now be described below. 
     A formula for calculating the switching surface Suf is given by: 
     
         Suf=ε.sup.(1) +C*ε+D*∫(ε+C*ε)-K*{(S+C)/(S+A)}(θ-.theta.t) 
    
     where {(S+C)/(S+A)} is a term indicating a filter used in the present invention, and (θ-θt) an amount of twist. While a switching surface is generally represented by S, it is represented by Suf in this embodiment in order to avoid confusion between itself and an operator in Laplace transform. The various symbols in the above equation are defined as follows: 
     Suf: switching surface, 
     S: Laplace operator, 
     θ: motor position, 
     θr: position command value, 
     θt: distal end position of the mechanical actuator, and 
     ε: error in the position (θr-θ). 
     The control of a robot will now be considered. If it is assumed that the inertia of a robot is indicated by J and an input torque applied to the robot is indicated by T, then the following equation is satisfied: 
     
         J*θ.sup.(2) =T                                       (1) 
    
     If D=0 in the equation (1) for simplicity, then the following equations aresatisfied: ##EQU1##where T1: switching input, 
     J o  : expected minimum inertia, 
     ω c  : constant which is determined subsequently, and 
     εn: θ-θt. 
     When the following input is given, it is possible to reach a switching surface necessarily according to a control process including feed-forward control. Here, the newly added term -K*{(S+C)/(S+A)}εn will be described below. The other terms will be omitted. 
     If T1=K1(ε)+K2(θr)+K6(εn)+K7(εn), then K6(εn), K7(εn) are new terms corresponding to a filter, and these terms will be described below. The other terms will be omitted as they are the same as those disclosed in the earlier Japanese Patent Application No. 1-253767. 
     (a) At the time Suf≧0 (the switching input I is selected in the stepSP5 shown in FIG. 1), 
     (ai) when εn≧0 relative to the term K6(εn), K6(εn)=0, 
     when εn&lt;0 relative to the term K6(εn), K6(εn)=C* (J o  -J MAX )*K*{(S+C)/(S+A)}*εn, 
     (aii) when εn.sup.(1) ≧0 relative to the term K7(εn), K7(εn.sup.(1))=-J o  *K*{(S+C)/(S+A)}*εn.sup.(1), and 
     when εn&lt;0 relative to the term K7(εn), K7(εn.sup.(1))=-J MAX  *K*{(S+C)/(S+A)}εn.sup.(1). 
     (b) At the time Suf&lt;0 (the switching input II is selected in the step SP6 shown in FIG. 1), 
     (bi) when εn≧0 relative to the term K6(εn), K6(εn)=C* (J o  -J MAX )*K*{(S+C)/(S+A)}*εn, 
     when εn&lt;0 relative to the term K6(εn), K6(εn)=0, 
     (bii) when εn.sup.(1) ≧0 relative to the term K7(εn.sup.(1)), K7(εn.sup.(1))=-J MAX  *K*{(S+C)/(S+A)}εn.sup.(1), and 
     when εn.sup.(1) &lt;0 relative to the term K7(εn.sup.(1)), K7(εn.sup.(1))=-J o  *K*{(S+C)/(S+A)}*εn.sup.(1). 
     When the switching input T1 is applied depending on the value of Suf, it becomes possible to effect a control process while suffering less vibration, without lowering the servo rigidity even if the inertia varies. 
     It will hereinafter be proven that εn, εn.sup.(1) are effective to dampen vibrations of a spring model of a robot. When Suf becomes 0 in response to the above input, the following equation is satisfied: 
     
         0=ε.sup.(1) +C*ε-K*{(S+C)/(S+A)}*εn.sup.(1). 
    
     Substituting 
     
         n=θr-θ, 
    
     
         ε.sup.(1) =θr.sup.(1) -θ.sup.(1), 
    
     and 
     
         εn:θ-θt, 
    
     subjecting the both sides to Laplace transform, and rearranging them, the following equation is obtained: ##EQU2## 
     A spring system is introduced, and it is assumed that constants of the spring system, which is primarily a speed reducer, are defined as follows: 
     Bk: damping term, 
     Kc: spring constant, and 
     Jt: load inertia beyond the speed reducer. 
     With respect to the spring system, the following equation is satisfied: 
     
         (θt/θ)=(BkS+Kc)/(JtS.sup.2 +BkS+Kc)            (4) 
    
     (since Bk and Kc are small in general robots, they have poor damping and vibrate at low frequency). Solving the equation (4) for θ, putting it into the equation (3), and rearranging the same, the following equationis obtained: 
     
         (θt/θr)=(BkS+Kc)/{(JtS.sup.2 +BkS+Kc+KJtS.sup.2 /(S+A)}. 
    
     If a is reduced (specifically to the extent that (S+A) can be regarded as Sat the reasonant frequency of the above spring system), then the above equation can be rewritten as: 
     
         (θt/θr)=(BkS+Kc)/{(JtS.sup.2 +(Bk+KJt)S+Kc}. 
    
     K represents a damping term, indicating that there is a vibration damping effect. 
     It will now be proven that adaptability is compensated for by the switchinginput. By assuming εn={(S+C)/(S+A)}*εn, the following equations are obtained: 
     
         Suf=ε.sup.(1) +C*ε-K*εn            (5) (switching surface) 
    
     
         T=J.sub.o *ω.sub.c *ε.sup.(1) +J.sub.o *ω.sub.c *C*ε+T1                                           (6) (input). 
    
     In the above equations, the symbols are defined as follows: 
     T1: switching input, 
     J o  : expected minimum inertia, 
     ω c  : constant which is determined subsequently, and 
     J*θ.sup.(2) =T . . . (7) (object to be controlled). 
     If ε=θr-θ, then the following equations are established: ##EQU3##where θ R  : position command value, and 
     θ: position which is fed back. 
     Now, the equation: 
     
         V=1/2*S.sup.2 
    
     is considered as a Lyapunov function candidate (The minimum value of V is 0. If V&lt;0, then V converges to the minimum value of 0 as it monotonously decreases. Therefore, S always converges to 0, and the response is determined by a constant response function with Suf=0). 
     From the equation (5), the following equation is satisfied: 
     
         Suf.sup.(1) =ε.sup.(2) +C*ε.sup.(1) -K*εn.sup.(1)(9). 
    
     When the equation (8) is substituted into the equation (7), and the resultant equation is rearranged, the following equation is obtained: 
     
         ε.sup.(2) =θr.sup.(2) -T/J                   (10). 
    
     When the equation (6) is substituted into the equation (10), and the resultant equation is rearranged, the following equation is obtained: 
     
         ε.sup.(2) =θr.sup.(2) -J.sub.o *ω.sub.c *ε.sup.(1) /J-J.sub.o *ω.sub.c *C*ε/J-T1/J(11). 
    
     When the equation (11) is substituted into the equation (9), and the resultant equation is rearranged, the following equation is obtained: 
     
         Suf.sup.(1) =(C-ω.sub.c *J.sub.o /J)*ε.sup.(1) -J.sub.o /J*ω.sub.c *C.sup.* ε-K.sup.* εn-T1/J+θr.sup.(2)                          (12). 
    
     When the equation (5) is solved for ε.sup.(1), the following equation is obtained: 
     
         ε.sup.(1) =S-C*ε+K*εn.sup.(1). 
    
     When this equation is substituted into the equation (12), and the resultantequation is rearranged, the following equations are obtained: ##EQU4## 
     If ω c  =C*J MAX  /J o , then the following inequality is satisfied: 
     
         (C-ω.sub.c *J.sub.o /J)*S.sup.2 &lt;0. 
    
     In order to satisfy the inequality: 
     
         V.sup.(1) &lt;0 at all times, 
    
     the switching input T1 is determined so as to satisfy the following inequality: 
     
         -[C.sup.2 *ε-(C-J.sub.o /J*ω.sub.c)*K*εn+K*εn.sup.(1) T1/J-θr.sup.(2) ]*S&lt;0, 
    
     and only the vibration part is taken out, thus achieving the result described above. 
     While the present invention has been described with reference to a mechanical actuator for a robot by way of example, the present invention is also applicable to any of various other mechanisms which are driven by servomotors. 
     With the present invention, as described above, an amount of twist is subject to filtering to realize a servo system which suffers less vibration and is capable of well responding to commands without sacrificing the rigidity. As a consequence, there can be realized a robot which follows paths with high accuracy and suffers less vibration when moving at steady speed and less residual vibration when brought to a stop.