This invention relates to a velocity control system and, more particularly, to a velocity control system in which velocity is controlled by using an observer to estimate velocity on the basis of position information.
By virtue of the rapid progress which has been made in technology, digital feedback control of a variety of motors by microcomputer has become commonplace. When subjecting a motor to feedback control by using a microcomputer, it is necessary to sense the actual velocity of the motor. To this end, conventional practice is to use a rotary encoder, by way of example. 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.
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 directly as motor velocity information, irregular rotation is the result.
Thus, when an attempt is made to use a position sensing rotary encoder for sensing velocity as well, highly precise, smooth velocity cannot be carried out due to the fact that velocity resolution is poor in comparison with an analog-type sensor.
Accordingly, a velocity control system has been proposed in which, when an observer is used to estimate velocity based on position information from a rotary encoder, load torque, which is a cause of a steady-state estimating error, is estimated at the same time to enable highly precise, smooth velocity control.
FIG. 2 is a block diagram of such a velocity control system. Numerals 1 through 3 denote arithmetic units, 4 an observer, 5 a motor and 6 an I-P controller formed by an integration element K.sub.1 /S and a proportion element K.sub.2. V.sub.c represents a velocity command, U a torque command signal, I motor current and I.sub.L current indicative of a load torque. V represents velocity, .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 Ra denotes motor winding resistance and L.sub.a represents inductance. Further, K.sub.t is a torque constant, J stands for inertia which is the total of the load and motor inertia, and K.sub.p is a conversion coefficient decided by the rotary encoder. S represents d/dt. Further, the observer per se is one commonly in use. An arrangement in which a velocity sensor is combined with the observer has been proposed in Japanese patent application No. 59-55114.
The operation of this velocity control system will now be described.
First, the arithmetic unit 1 produces an output indicative of the difference between the velocity command 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 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, thereby controlling the motor 5. The velocity of the motor is output as V, and the 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 this velocity control system, the estimated value of velocity is obtained by using the observer 4. At this time the load torque, which is a cause of a steady-state estimation 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 observer 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, velocity V, position .theta. and current I.sub.L due to load torque, we will have ##EQU1##
What are actually sensed and applied to the observer 4 are the motor current I and the 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, and .lambda..sub.3 are the observer gains. These values are inversely proportional to time needed for the estimated value to converge to a true value.
In order to process the above by a microprocessor, the observer is implemented by the following algorithm: ##EQU3##
FIG. 3 is a view useful in describing information processing for obtaining the estimated value V of velocity. FIG. 3(a) is for describing the processing level (j) of a motor current loop, and FIG. 3(b) is for describing a velocity processing level (m).
The observer 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 the observer gains .lambda..sub.1, .lambda..sub.2, and .lambda..sub.3 which will bring an estimation error to zero at a fifth step are calculated and given in advance.
FIG. 4 illustrates a flowchart of processing performed by the observer 4 at the motor current loop processing level. FIG. 5 illustrates a flowchart of velocity loop processing.
First, with regard to the motor current loop, the observer 4 reads in position information .DELTA..theta..sub.j from position pulses during one sampling period T, and motor current I.sub.m. Next, these are integrated. Then, based on Eq. (1), position estimation information .DELTA..theta..sub.m+1, velocity estimation information V.sub.m+1 and current estimation information L.sub.Lm+1 indicative of load are calculated. When this processing has been performed for the fifth time, V.sub.m+1 is delivered to a velocity processing program. This relationship is evident from FIGS. 3(a) and 3(b).
Next, in velocity loop processing as indicated by the flowchart of FIG. 5, the observer reads in velocity commands V.sub.5m and then calculates the summation of V.sub.5m -V.sub.5m, where V.sub.5m is derivative information them. Next, the integrated value is multiplied by the integration gain k.sub.1 and from this product is subtracted the product of velocity estimation information V.sub.5m and feedback gain k.sub.2, whereby the torque command U.sub.5m is obtained.
In such velocity control using an observer, the estimated velocity value V obtained by the observer 4 is fed back to the input side of the integration element K.sub.1 /S of the I-P controller and to the proportion element K.sub.2 of the I-P controller. The irregular rotation of the motor at low velocity is eliminated. When the motor rotates at a high velocity, however, the error in the estimated velocity due to cancelling in the calculations in the observer 4 is accumulated during each sampling period. Therefore, the stability of the feedback loop cannot be performed by the integration element which eliminates an offset quantity from the torque command and accurate velocity control cannot be performed.
The present invention solves the aforementioned problem of the prior art and its object is to provide a highly accurate velocity control system in which the estimated velocity value obtained by the observer is fed back to the proportion element of the I-P controller and the position information itself is fed back to the input side of the integration element.