Servomotor velocity control system

A servomotor velocity control system has an estimating unit (4) for obtaining an estimated value (V) of velocity based on rotary encoder position information (.theta.), which includes a current (I.sub.L) indicative of load torque, and motor current (I) of a servomotor (5). The system is adapted to obtain a torque command signal (U) based on the estimated value (V) of velocity and a velocity comman signal (V.sub.c).

BACKGROUND OF THE INVENTION 
Field of the Invention 
This invention relates to a system for controlling the velocity of a 
servomotor used in a machine tool, an industrial robot and the like. 
SUMMARY OF THE INVENTION 
When subjecting the velocity of a servomotor to feedback control, it is 
necessary to sense the actual velocity of the motor. An example of 
conventional means for sensing actual velocity is a rotary encoder for 
sensing position. The rotary encoder is adapted to generate from several 
thousand to 20,000 pulses per revolution of the motor, the frequency of 
these output pulses being proportional to the rotational velocity of the 
motor. 
With a rotary encoder, however, the spacing between adjacent pulses becomes 
very wide and the pulses become discrete in nature, especially when the 
motor rotates at a low velocity. When these pulses are used as motor 
rotation information, irregular rotation is the result. 
Thus, when it is attempted to employ a rotary encoder used for sensing 
position as means for sensing velocity, velocity resolution is poor in 
comparison with an analog sensor. For this reason, highly precise, smooth 
velocity control cannot be carried out. 
DISCLOSURE OF THE INVENTION 
An object of the present invention is to provide a servomotor velocity 
control system, in which when velocity is estimated by an estimating unit 
based on position information from a rotary encoder mounted on a 
servomotor, load torque, which is a cause of a steady-state estimating 
error, is estimated at the same time to enable smooth, highly precise 
velocity control. 
According to the present invention, there is provided a servomotor velocity 
control system in which position information from a rotary encoder mounted 
on a servomotor driving a mechanical load is fed back and a torque command 
signal is produced for application to the servomotor. The system has an 
estimating unit for obtaining an estimated value of velocity of the 
servomotor based on position information from the rotary encoder, motor 
current of the servomotor and a load torque signal, and arithmetic means 
for calculating the torque command signal based on the estimated value of 
velocity outputted by the estimating unit and a velocity command signal. 
In a case where the velocity of the servomotor is estimated by the 
estimating unit based on the position information from the rotary encoder, 
the servomotor velocity control system of the invention obtains the 
estimated value of velocity upon taking load torque, which is a cause of a 
steady-state estimating error, into account. This eliminates the 
shortcoming of the prior art, wherein the pulses from the rotary encoder 
become discrete when the servomotor is rotating at low velocity. This 
makes it possible to obtain a suitably interpolated value of estimated 
velocity and to control velocity in a highly accurate manner.

DESCRIPTION OF THE PREFERRED EMBODIMENT 
The present invention will now be described in detail based on an 
embodiment illustrated in the drawings. 
FIG. 1 is a block diagram of a velocity control system according to the 
present invention. Numerals 1 through 3 denote arithmetic units, 4 an 
estimating unit, namely an observer, and 5 a servomotor. V.sub.c 
represents a velocity command, U a torque command, I motor current and 
I.sub.L current indicative of a load torque. V represents the velocity of 
the servomotor, .theta. position, k.sub.1 integration gain, k.sub.2 
feedback gain, K.sub.m a motor constant, and T.sub.m a ratio between 
L.sub.a and R.sub.a, namely the value of L.sub.a /R.sub.a, where R.sub.a 
denotes motor winding resistance and L.sub.a represents inductance. 
Further, K.sub.t is a torque constant, J stands for the total inertia of 
the load and motor, and K.sub.p is a conversion coefficient decided by the 
rotary encoder. S represents d/dt. Further, the estimating unit per se is 
one commonly in use. An arrangement in which a velocity sensor is combined 
with the estimating unit has been proposed in Japanese Patent Application 
No. 59-55114. 
The operation of the velocity control system according to the invention 
will now be described. 
First, the arithmetic unit 1 produces an output indicative of the 
difference between the velocity command V.sub.c and an estimated value V 
of velocity, described below. The output signal is integrated and then 
applied to the arithmetic unit 2. The result of multiplying the estimated 
value V of velocity, described below, by the feedback gain k.sub.2 is 
applied to the arithmetic unit 2, which outputs the difference between its 
two input signals as the torque command U, by which the motor 5 is 
controlled. The velocity of the motor 5 is outputted as V, and position 
.theta. is sensed by a rotary encoder. The information indicative of the 
position .theta. includes the results of adding the current I.sub.L, which 
is indicative of the load torque (Coulomb friction), at the arithmetic 
unit 3. 
In the present invention, the estimated value of velocity is obtained by 
using the estimating unit, namely the observer 4. At this time the load 
torque, which is a cause of a steady-state estimating error, is estimated 
simultaneously. Specifically, the position information .theta., which 
takes into account the motor current I and the current I.sub.L indicative 
of load torque, is applied to the estimating unit 4, which proceeds to 
output the estimated value V of velocity. 
Let us describe this point in detail. If an identity observer is 
constructed for the motor current I, motor velocity V, position .theta. 
and current I.sub.L ascribable to torque, we will have 
##EQU1## 
What are actually sensed and applied to the estimating unit, namely the 
observer 4, are the motor current I and position .theta.. An identity 
observer for digital processing is as follows: 
##EQU2## 
where T is a sampling period and .lambda..sub.1, .lambda..sub.2, 
.lambda..sub.3 are observer poles, which are decided by the number of 
convergence steps necessary. 
In order to process the above by a microprocessor, the observer is 
implemented by the following algorithm: 
##EQU3## 
FIG. 2 is a view useful in describing information processing for obtaining 
the predicted velocity V. FIG. 2(a) is a view illustrating the processing 
level (j) of a motor current loop, and FIG. 2(b) is for describing a 
velocity processing level. 
The observer 4 is equipped with a hardware counter for integrating a number 
of pulses .DELTA..theta. which arrive from the rotary encoder in the 
sampling time period T. In this case, it is assumed that observer poles 
.lambda..sub.1, .lambda..sub.2, .lambda..sub.3, which will bring an 
estimating error to zero in five steps, are calculated and given in 
advance. 
FIG. 3 illustrates a flowchart of processing performed by the observer at 
the motor current loop processing level. FIG. 4 illustrates a flowchart of 
velocity loop processing. 
First, with regard to the motor current loop, the observer 4 reads in 
position information .DELTA..theta.j and motor current I.sub.m. Next, 
these are integrated. Then, based on Eq. (1), the observer 4 calculates 
position estimation information .DELTA..theta..sub.m+1, velocity 
estimation information V.sub.m+1 and current estimation information 
I.sub.Lm+1 indicative of load. When the observer 4 has performed this 
processing for the fifth time, the velocity estimation information 
V.sub.m+1 is delivered to a velocity processing program. This relationship 
is evident from FIGS. 2(a) and 2(b). 
Next, in velocity loop processing as indicated by the flowchart of FIG. 4, 
the observer 4 first reads in velocity commands V.sub.5m and then 
integrates them. Next, the observer 4 multiplies the integrated value by 
the integration gain k.sub.1 and subtracts from this product the product 
of velocity estimation information V.sub.5m and feedback gain k.sub.2, 
thereby obtaining the torque command U.sub.5m. 
Thus, according to the present embodiment, the estimating unit 4 obtains 
the estimated value V of velocity based on the position signal from the 
rotary encoder, which signal is inclusive of the current I.sub.L 
indicating load torque, and the motor current I of servomotor 5. This 
solves the shortcoming of the prior art, wherein the pulses become 
discrete in nature, as when the motor is rotated at a low velocity, and 
makes it possible to obtain a value of estimated velocity that is suitably 
interpolated. In other words, since load torque, which causes a 
steady-state estimating error, can be estimated simultaneously, smooth, 
highly precise velocity control can be carried out even while employing a 
digital control system that exhibits a velocity resolution poorer than 
that of an analog control system. 
Though the present invention has been described based on the illustrated 
embodiment, the invention is not limited solely to the embodiment but can 
be modified in various ways in accordance with the gist of the invention, 
such modifications being within the scope of the claims. 
As set forth above, the present invention makes possible highly precise 
velocity control even at a low servomotor velocity. The invention is 
particularly well-suited to velocity control of servomotors for operating 
a machine tool bed or industrial robot, which require to be controlled in 
a precise manner.