# Patent

## Title
Servo motor controller

## Abstract

A controller includes a rotating direction detecting unit 34 to detect the rotating direction of a servo motor 6, a reversing distance computing unit 31 to compute a rotating angle of the servo motor 6, a rotation resistance computing unit 35 to compute rotation resistance on the servo motor side 6, and an elastic deformation error amount computing unit 21 to compute a deformation error amount of a ball screw 3. In the controller, when the rotating direction detecting unit 34 detects reverse of the servo motor 6, the rotation resistance computing unit 35 computes rotation resistance based on a rotating angle δθ of the servo motor 6 after the servo motor is reversed. The elastic deformation error amount computing unit 21 computes the elastic deformation error amount δ based on the computed rotation resistance. Thereby, a position command value inputted into the position control unit 14 can be corrected.

## Background
BACKGROUND OF THE INVENTION
This application claims the benefit of Japanese Patent Application Number 2007-45948 filed on Feb. 26, 2007, the entirety of which is incorporated by reference.
1. Field of the Invention
The present invention relates to a servo motor controller (it will be called just as a controller in below) to control an operation of a servo motor provided on a machine tool or the like.
2. Description of the Background Art
In a general machine tool, a servo motor is rotated and driven so as to be able to slide a table or the like connected with a feeding shaft such as a ball screw or the like. In such a general machine tool, as positioning is made while the servo motor is reversibly rotating, an elastic deformation error, which is called as a lost motion, occurs at an elastic deformation unit of the feeding shaft or the like. Therefore, a controller in a machine tool has a correcting unit to correct the error. Here, a conventional controller in a machine tool (for example, as shown in the patent document 1) will be described referring to FIGS. 6 and 7. FIG. 6 is an explanation view illustrating a machine tool, and FIG. 7 is a block configuration diagram of a conventional controller 61.
As shown in FIG. 6, the machine tool includes a pair of brackets 72 and 72 fixed on a bed 71, and a ball screw 73 installed between the brackets 72 and 72. A nut 74 engaged with the ball screw 73 is attached with a table 75, and the table 75 is slid in the right and left directions by the ball screw 73 which is rotated by a servo motor 76. In addition, the ball screw 73 is held by the bracket 72 through a bearing which is not illustrated.
On the other hand, the controller 61 controls rotating and driving of the servo motor 76. The controller 61 assembles a position loop at which the deviation between an inputted NC position command and a position feedback signal from a position detector 62 provided at the servo motor 76 is made to be 0, and a speed loop using a speed feedback signal obtained by differentiating the position feedback signal. The controller 61 controls a torque command value of the servo motor 76 based on these two loops. Further, the controller 61 includes a forward-reverse detecting unit 63 to detect the rotating direction of the servo motor 76, and also includes a torque correcting unit 64 to correct a torque command value when the servo motor 76 is found to be reversed by the forward-reverse detecting unit 63.
In the above-described controller 61, a test run is preliminarily made and a value obtained by dividing the difference between a maximum value (TjA in FIG. 8(a)) and a minimum value (TjB in FIG. 8(b)) of a torque command value at the time of reversing by 2 is stored as a correction reference torque in a table corresponding to a feeding speed or the like. In an actual operation, when the forward-reverse detecting unit 63 detects reverse of the servo motor 76, the controller 61 reads a correction reference torque corresponding to a feeding speed at the time of reverse and corrects a torque command value. FIG. 8A illustrates changes of a torque command signal in the test run.
[Patent Document 1] Japanese Unexamined Patent Publication No. 1998-63325
The controller carries out correction based on a finally converging torque command value after the servo motor is reversed as illustrated in FIG. 8A. The correction is carried out with estimation of an elastic deformation error regarding that a torque is varied in a staircase pattern according to the reverse of the motor as illustrated in FIG. 8B. However, a torque does not actually reverse in a staircase pattern after the servo motor is reversed but gradually increases in the reversing direction so as to converge to a final torque value. Therefore, in the conventional controller, an estimation error occurs during the period from reversing of a servo motor to converging of a torque value to be a predetermined value, and thus an accuracy of positioning may decrease.
Further, in a case where a servo motor is reversed, there is a torque not working on an elastic deformation part such as a ball screw or the like, for example, rotation resistance in a bearing of a ball screw. Therefore, it is desired to estimate an elastic deformation error considering the torque not working on the elastic deformation unit or the like.
SUMMARY OF THE INVENTION
The present invention is to provide a controller capable of estimating an elastic deformation error more correctly and more improving the accuracy of positioning.
To achieve the above object, a first aspect of the present invention is a servo motor controller to correct a position of a moving object connected with a servo motor through an elastic body, based on a torque command value of the servo motor. The servo motor includes a rotating direction detecting unit to detect the rotating direction of the servo motor, a rotating angle computing unit to compute the rotating angle of the servo motor, a rotation resistance computing unit to compute rotation resistance on the servo motor side, and an elastic deformation error amount computing unit to compute a deformation error amount of an elastic body. The controller corrects the position of the moving object by the steps of detecting a reverse of the servo motor in the rotating direction detecting unit, computing rotation resistance in the rotation resistance computing unit based on a rotating angle of the reversed servo motor, and computing the deformation error amount of the elastic body in the elastic deformation error amount computing unit based on the computed rotation resistance and the torque command value of the servo motor.
A second aspect of the present invention is the servo motor according to the first aspect, the rotation resistance computing unit computes rotation resistance using the following formula 1.
In the formula, TAmp indicates a finally converging rotation resistance which is a fixed number, and δθ0 indicates a rotating angle whish is also a fixed number, which makes rotation resistance to be 0 after the servo motor is reversed. Further, δθ indicates a rotating angle computed in the rotating angle computing unit.




  
    
      
        
          T
          Brg
        
        =
        
          
            2
            ·
            
              T
              Amp
            
            ·
            
              
                δ
                ⁢
                
                  
                
                ⁢
                θ
              
              
                (
                
                  δθ
                  +
                  
                    δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      0
                    
                  
                
                )
              
            
          
          -
          
            T
            Amp
          
        
      
    
    
      
        [
        
          Formula
          ⁢
          
            
          
          ⁢
          1
        
        ]
      
    
  




A third aspect of the present invention is the servo motor according to the first aspect including a rotating direction computing unit showing the rotating direction of the servo motor with a code, and a reverse rotation resistance storage unit to store rotation resistance at the time of reversing. In the controller, when the rotating direction detecting unit detects that the servo motor is reversed, the reverse rotation resistance storage unit once stores the rotation resistance at the time of reverse, and then the rotation resistance computing unit computes rotation resistance based on a rotating angle of the reversed servo motor, the rotating direction of the servo motor, and the rotation resistance stored in the reverse rotation resistance storage unit.
A fourth aspect of the present invention is the serve motor according to the third aspect, where the rotation resistance computing unit computes rotation resistance by the following formula 2. In the formula, sign ({dot over (θ)}) indicates a function computed in the rotating direction computing unit, and Treverse indicates rotation resistance stored in the reverse rotation resistance storage unit.




  
    
      
        
          T
          Brg
        
        =
        
          
            
              sign
              ⁡
              
                (
                
                  θ
                  .
                
                )
              
            
            ·
            2
            ·
            
              T
              Amp
            
            ·
            
              δθ
              
                (
                
                  δθ
                  +
                  
                    δθ
                    0
                  
                
                )
              
            
          
          +
          
            T
            reverse
          
        
      
    
    
      
        [
        
          Formula
          ⁢
          
            
          
          ⁢
          2
        
        ]
      
    
  




wherein provided that |TBrg|>|TAmp|, TBrg=sign({dot over (θ)})·TAmp 

According to the present invention, since the elastic deformation error amount is computed considering a torque, which is rotation resistance on the servo motor side, not working on an elastic deformation part such as a ball screw or the like, the elastic deformation error amount can be estimated more correctly, and thus the accuracy of positioning a moving object can be improved.
Further, when the servo motor is reversed, rotation resistance is computed based on a rotating angle of the reversed servo motor. Thus, the present invention can compute an elastic deformation error amount δ more correctly than a conventional controller does, in which torque correction is carried out regarding that rotation resistance is reversed in a staircase pattern at the time when the servo motor is reversed. Thus, accuracy of positioning can be more improved.
Furthermore, according to the inventions of the third and fourth aspects, when the servo motor is reversed, rotation resistance is computed based on a rotating angle of the reversed servo motor, a rotating direction of the servo motor, and rotation resistance stored in a reverse rotation resistance storage unit. Thus, in such a case where the servo motor is once reversed and then immediately reversed again, the elastic deformation error amount δ can be estimated more correctly, and the accuracy of positioning can be more improved.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an explanation view to illustrate a machine tool including a controller according to the present invention;
FIG. 2 is a block configuration diagram of a controller to control rotating and driving of a servo motor 6 in a machine tool;
FIG. 3 is an explanation view of the modeled machine tool illustrated in FIG. 1;
FIG. 4 is a graph to illustrate variation of rotation resistance;
FIG. 5 is a graph to illustrate variation of the rotation resistance;
FIG. 6 is an explanation view to illustrate a conventional machine tool;
FIG. 7 is a block configuration diagram of a conventional controller; and
FIG. 8 is a graph to illustrate variation of conventional rotation resistance.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
A controller as an embodiment of the present invention will be described below referring to the drawings.
FIG. 1 is an explanation view to illustrate a machine tool having a controller according to the present invention.
A machine tool includes a pair of brackets 2 and 2 erected on a bed 1, and the brackets 2 and 2 include a ball screw (an elastic body) 3 held as an elastic deformation part through a bearing which is not illustrated. Further, the machine tool includes a table (moving object) 5 attached through a nut 4 engaged with the ball screw 3. By rotating and driving of a servo motor 6, the table 5 can be slid in the right and left directions in FIG. 1.
FIG. 2 is a block configuration diagram of a controller to control rotating and driving of the servo motor 6 in the machine tool.
The controller assembles a position loop at which the deviation between an NC position command inputted from an NC apparatus not illustrated and a position feedback signal from a position detector 12 provided at the servo motor 6 makes to be 0. Further, the controller also assembles a speed loop at an inside of the position loop, and the speed loop is to compare a speed feedback signal and an output signal from a position control unit 14 in a speed control unit 15. The speed feedback signal is obtained by differentiating the position feedback signal by a differentiator 13. In addition, an output from the speed controlling unit 15 is converted to a torque command in a torque/current conversion unit 16, and the torque command is outputted to the servo motor 6 through a current control unit 17.
On the other hand, the controller assembles a torque loop to estimate an elastic deformation error amount δ based on the feedback signal of the torque command outputted from the torque/current conversion unit 16 and the position feedback signal from the position detector 12. An elastic deformation error amount computing unit (it will be called as a computing unit in below) 21 computes the elastic deformation error amount δ of the ball screw 3. In addition, a reversing distance computing unit (a rotating angle computing unit) 31 computes a rotating angle δθ after the servo motor is reversed, based on the feedback signal from the position detector 12. A rotating direction computing unit 32 computes the rotating direction sign ({dot over (θ)}) based on the feedback signal from the position detector 12. A reverse rotation resistance storage unit 33 stores rotation resistance Treverse at the time when the servo motor is reversed. A rotating direction detecting unit 34 detects reversing of the servo motor 6. A rotation resistance computing unit 35 computes rotation resistance TBrg (or TRR) on a bearing or the like. A rotating body acceleration/deceleration torque computing unit 36 computes a required acceleration/deceleration torque TACC to accelerate objects except a table, e.g., a motor, a ball screw and the like, based on an NC position command.
Further, the controller controls rotating and driving of the servo motor 6 while correcting a torque command based on feedback signals from each loop, estimating force applied to an elastic body correctly, and correcting a position command value inputted into the position control unit 14.
Here, a torque loop to compute the elastic deformation error amount δ will be described in detail below.
FIG. 1 illustrates a modeled machine tool where an elastic deformation error amount δ is estimated. In the model illustrated in FIG. 3, a position, inertia, frictional force of a bearing or the like, are expressed with a linear axis.
With regard to force F applied to an elastic deformation part (the ball screw unit 3), the following formula (1) is obtained by considering frictional force FBrg in a TAC bearing holding the ball screw 3 and a motor bearing. In other words, the balance of force shown in the following formula (1) is obtained by considering rotation resistance not working to an elastic deformation.
[Formula 3]

F=Fdisturb+Msaddle·{umlaut over (Z)}saddle=Fmotor−Jmotor·{umlaut over (Z)}motor−FBrg   (1)

Further, when the elastic deformation error amount is indicated as δ, F=KBS·δ (KBS is an elastic coefficient of the ball screw 3). Thus, the elastic deformation error amount δ can be expressed with the following formula (2)




  
    
      
        [Formula  4]
      
    
    
      
        
      
    
  
  
    
      
        δ
        =
        
          
            F
            
              K
              BS
            
          
          =
          
            
              
                F
                motor
              
              -
              
                
                  J
                  motor
                
                ·
                
                  
                    Z
                     ̈
                  
                  motor
                
              
              -
              
                F
                Brg
              
            
            
              K
              BS
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




Further, each parameter in the formula (1) can be converted to rotation systems shown in the following formulae (3) to (5) by using a pitch P of the ball screw 3.




  
    
      
        [Formula  5]
      
    
    
      
        
      
    
  
  
    
      
        
          F
          motor
        
        =
        
          
            
              2
              ⁢
              π
            
            P
          
          ·
          
            T
            motor
          
        
      
    
    
      
        (
        3
        )
      
    
  
  
    
      
        
          
            J
            motor
          
          ·
          
            
              Z
               ̈
            
            saddle
          
        
        =
        
          
            
              2
              ⁢
              π
            
            P
          
          ·
          
            I
            motor
          
          ·
          
            
              θ
               ̈
            
            motor
          
        
      
    
    
      
        (
        4
        )
      
    
  
  
    
      
        
          F
          Brg
        
        =
        
          
            
              2
              ⁢
              π
            
            P
          
          ·
          
            T
            Brg
          
        
      
    
    
      
        (
        5
        )
      
    
  




Therefore, when the formulae (3) to (5) are substituted in the formula (2), the elastic deformation error amount δ can be expressed with the following formula (6) finally.




  
    
      
        [Formula  6]
      
    
    
      
        
      
    
  
  
    
      
        δ
        =
        
          
            
              
                C
                BS
              
              ·
              
                (
                
                  
                    T
                    motor
                  
                  -
                  
                    
                      I
                      motor
                    
                    ·
                    
                      
                        θ
                         ̈
                      
                      motor
                    
                  
                  -
                  
                    F
                    Brg
                  
                
                )
              
            
            ⁢
            
              

            
            ∵
            
              C
              BS
            
          
          =
          
            
              
                2
                ⁢
                π
              
              P
            
            ·
            
              1
              
                K
                BS
              
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




Clearly from the above formula (6), when the elastic deformation error amount δ is estimated, it is necessary to obtain the rotation resistance TBrg(FBrg) on the servo motor 6 side. Further, as for TBrg at the time when the servo motor 6 is reversed, inventors resulted that a code of rotation resistance is not reversed simultaneously with reverse rotation. Instead, the rotation resistance TBrg on the servo motor 6 side gradually changes as shown in a curve in FIG. 4, and converges to fixed rotation resistance (TAmp) corresponding to a rotating angle δθ after the servo motor is reversed. The curve in FIG. 4 can be expressed by the following formula (7). Thus, a rotation resistance computing unit 35 computes rotation resistance TBrg based on the formula (7). In addition, δθ0 in the formulae (7) indicates a rotating angle at which rotation resistance becomes to be 0 after the reverse of the motor.




  
    
      
        [Formula  7]
      
    
    
      
        
      
    
  
  
    
      
        
          T
          Brg
        
        =
        
          
            2
            ·
            
              T
              Amp
            
            ·
            
              
                δ
                ⁢
                
                  
                
                ⁢
                θ
              
              
                (
                
                  δθ
                  +
                  
                    δθ
                    0
                  
                
                )
              
            
          
          -
          
            T
            Amp
          
        
      
    
    
      
        (
        7
        )
      
    
  




Rotation resistance in which the servo motor is reversed after the rotation resistance converges to an approximately fixed value, can be computed by the above formulae (7). However, when the servo motor 6 is reversed again before the rotation resistance converges to be a fixed value, that is, the servo motor 6 is once reversed and then reversed again, the rotation resistance TBrg changes, for example, in a curve illustrated in FIG. 5. In such case, the rotation resistance TBrg can be estimated more correctly by computing with the following formula (8).




  
    
      
        [Formula  8]
      
    
    
      
        
      
    
  
  
    
      
        
          T
          Brg
        
        =
        
          
            
              sign
              ⁡
              
                (
                
                  θ
                  .
                
                )
              
            
            ·
            
              T
              Amp
            
            ·
            
              
                (
                
                  δθ
                  -
                  
                    δθ
                    0
                  
                
                )
              
              
                (
                
                  δθ
                  +
                  
                    δθ
                    0
                  
                
                )
              
            
          
          +
          
            T
            reverse
          
        
      
    
    
      
        (
        8
        )
      
    
  




wherein provided that |TBrg|>|TAmp|, TBrg=sign({dot over (θ)})·TAmp  (9)

Treverse in the above-formula (8) indicates rotation resistance at the time of reversing. When the rotating direction detecting unit 34 detects that the servo motor is reversed, Treverse at the time of reverse is stored in the reverse rotation resistance storage unit 33, and is used to compute the rotation resistance TBrg in the formula (8). Further, sign ({dot over (θ)}) indicates a function which expresses the rotating direction with only plus-or-minus codes, and is computed in the rotating direction computing unit 32. In addition, when there is rotation resistance depending on only the rotating direction, and not having rotating direction dependency such as contact sealing, the rotation resistance is pre-stored in the rotation resistance computing unit 35 as a parameter, and then the rotation resistance TRR can be computed by the following formula (10).
[Formula 9]

TRR=TBrg+sign({dot over (θ)})·Tfric   (10)

As described above, the rotation resistance computing unit 35 computes the rotation resistance TBrg or TRR to be inputted into a computing unit 21. Further, Imotor·{umlaut over (θ)}motor which is required to compute elastic deformation error amount δ using the above formula (6) is computed in the rotating body acceleration/deceleration torque computing unit 36 based on an NC position command, and is inputted into the computing unit 21. In addition, an acceleration/deceleration torque TACC is Imotor·{umlaut over (θ)}motor. Further, when rotation resistance is computed, it may be set in advance which formula is used, (7) or (8), corresponding to a processing mode before processing. Further, when the rotating angle δθ is a predetermined value or less, the formula (8) may be selected.
Furthermore, the computing unit 21 computes the elastic deformation error amount δ based on the inputted rotation resistance TBrg or TRR, the acceleration/deceleration torque TACC, and the torque command value Tmotor, and then the computing unit 21 feedbacks it to the position control unit 14. Thereby, a torque command considering a position deviation based on elastic deformation is outputted to the servo motor 6.
According to a controller performing the above-described correction, the elastic deformation error amount δ can be computed considering a torque not working on the elastic deformation part which is rotation resistance on the servo motor 6 side, for example, the ball screw 3 or the like. Thus, the elastic deformation error amount δ can be estimated more correctly than a conventional controller does, and the accuracy of positioning such as the table 5 or the like can be improved.
Further, since the rotation resistance TBrg on the servo motor side is computed by the formula (7) based on the curve illustrated in FIG. 4, the elastically deformation error amount δ can be computed more correctly by the present invention than the conventional controller where torque correction is carried out regarding that rotation resistance is reversed in a staircase pattern when the servo motor 6 is reversed, and thus the accuracy of positioning can be more improved.
Furthermore, when the servo motor 6 is once reversed and then immediately reversed again, the rotation resistance TBrg (or TRR) can be computed by the formula (8) (or formula (10)). Thus, the elastic deformation error amount δ can be estimated more correctly, and thus the accuracy of positioning can be more improved.
In addition, a controller of the present invention can be applied not only to a machine tool having a feeding shaft using the ball screw described in the above-described embodiment, but also applied to a machine tool having a direct drive-type rotating shaft as an elastic deformation unit.

## Claims

1. A servo motor controller to correct a position of a moving object connected with the servo motor through an elastic body based on a torque command value of the servo motor, the servo motor controller comprising:
a rotating direction detecting unit to detect a rotating direction of the servo motor;
a rotating angle computing unit to compute a rotating angle of the servo motor;
a rotation resistance computing unit to compute rotation resistance on the servo motor side; and
an elastic deformation error amount computing unit to compute a deformation error amount of the elastic body,
wherein the controller corrects a position of the moving object by the steps of;
detecting the reverse of the servo motor in the rotating direction detecting unit;
computing rotation resistance in the rotation resistance computing unit based on a rotating angle of the reversed servo motor; and
computing the elastic deformation error amount in the elastic deformation error amount computing unit based on the computed rotation resistance and the torque command value of the servo motor.

2. The servo motor controller according to claim 1,
wherein the rotation resistance computing unit computes rotation resistance by the following formula:





  
    T
    Brg
  
  =
  
    
      2
      ·
      
        T
        Amp
      
      ·
      
        
          δ
          ⁢
          
            
          
          ⁢
          θ
        
        
          (
          
            δθ
            +
            
              δθ
              0
            
          
          )
        
      
    
    -
    
      
        T
        Amp
      
      .

3. The servo motor controller according to claim 1, the controller comprising:
a rotating direction computing unit showing the rotating direction of the servo motor with a code; and
a reverse rotation resistance storage unit to store rotation resistance at the time of reversing,
wherein when the rotating direction detecting unit detects reverse of the servo motor, the reverse rotation resistance storage unit once stores rotation resistance at the time of reversing, and the rotation resistance computing unit computes rotation resistance based on a rotating angle of the reversed servo motor, the rotating direction of the servo motor, and the rotation resistance stored in the reverse rotation resistance storage unit.

4. The servo motor controller according to claim 3,
wherein the rotation resistance computing unit computes rotation resistance by the following formula





  
    T
    Brg
  
  =
  
    
      
        sign
        ⁡
        
          (
          
            θ
            .
          
          )
        
      
      ·
      
        T
        Amp
      
      ·
      
        δθ
        
          (
          
            δθ
            +
            
              δθ
              0
            
          
          )
        
      
    
    +
    
      T
      reverse
    
  




wherein provided that |TBrg|>|TAmp|, TBrg=sign({dot over (θ)})·2·TAmp.