This application claims priority under 35 U.S.C. §119 and/or §365 to Japanese Application No. 2009-279760 filed Dec. 9, 2009, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a servomotor control system and, more particularly, to a servomotor control system that enables high-speed oscillating motion to be highly precise.
2. Description of the Related Art
As for jig grinders and the like, there is a need for a control system that enables highly precise machining during high-speed oscillating motion of a grinding stone. Particularly, highly precise upper dead centers and lower dead centers in vertical oscillating operations are required.
A jig grinder is a machine tool that carries out finish grinding for sides of jigs, trimming dies, gages, and other tools for machines and for internal surfaces of holes. As shown in
With a conventional control system used for a jig grinder, precision is increased by correcting commands to suppress tracking delays in servo control. Specifically, to increase the precision of the upper dead center and lower dead center, an oscillation command is compared with the operation of the servo, and a commanded amplitude is gradually increased (see Japanese Patent Application Laid-Open No. 4-289903 and Japanese Patent Application Laid-Open No. 3-31906).
In this method, however, a long tracking time is taken to obtain desired precision. There is another problem with stability; a divergence may occur due to a change in a machining condition such as a change in amplitude.
A known method that achieves highly precise tracking at high speed in response to a repetition command is learning control (repetitive control). Two types of learning control are used; a time synchronization method in which learning is performed with respect to time (see Japanese Patent Application Laid-Open No. 3-175502) and an angle synchronization method in which learning is performed with respect to angle (see Japanese Patent Application Laid-Open No. 2004-280772).
In the learning control based on the time synchronization method, described above, a delay memory the length of which is equal to the length of a commanded repetitive cycle is provided in a control unit, so this type of leaning control cannot be used when the commanded repetitive cycle dynamically changes. In the learning control based on the angle synchronization method, described above, a reference angle that monotonously increases in synchronization with a commanded repetitive operation is needed, so this type of learning control cannot be used when no reference angle is given.
In high-speed oscillating motion performed by, for example, a jig grinder, a commanded repetitive cycle dynamically changes according to the machining condition. There is no reference angle that should be in synchronization with a commanded repetitive operation, making it impossible to use a reference angle in servo control. Accordingly, neither the learning control based on the time synchronization method nor the learning control based on the angle synchronization method can be used.
An object of the present invention is to provide a servomotor control system that enables the use of learning control based on an angle synchronization method in high-speed oscillating motion performed by, for example, a jig grinder.
The novel servomotor control system to achieve the above object controls a servomotor, provided in a machine tool or an industrial machine, that drives a driven body cyclically oscillating at high speed; the servomotor control system includes a control unit and a servo control unit. The control unit includes a reference angle calculating means for calculating a reference angle and an oscillation command calculating means for calculating a cyclic oscillation command according to the reference angle and a machining condition. The servo control unit includes a position detecting means for detecting the position of the servomotor, a positional difference calculating means for calculating, for each commanded distribution cycle, a positional difference between a position in the oscillation command and the detected position of the servomotor, and a learning control means for performing learning control on the basis of the reference angle, the oscillation command, and the positional difference. The positional difference calculated by the positional difference calculating means is corrected by the learning control means, and the corrected positional difference is used to control the driving of the servomotor.
The reference angle calculating means may calculate the reference angle ωt at time “t” (=nT, where n is 1, 2, 3, . . . ) from an angular velocity ω given according to the machining condition and the commanded distribution cycle T.
The learning control means may include first converting means for converting the positional difference obtained in the each commanded distribution cycle to a difference for each reference angle, correction calculating means for calculating the amount of correction with respect to the reference angle from the converted difference for each reference angle, correction storage means for storing the calculated amount of correction for at least one cycle of the driven body, which cyclically oscillates at high speed, second converting means for converting the amount of correction stored in the correction storage means to an amount of correction for each commanded distribution cycle, and a phase advancing filter for advancing a phase for the amount of correction obtained by the second converting means.
The servo control unit may further include means for calculating, from the oscillation command and the position of the servomotor, the amount of overshoot at the start of an oscillation and means for adjusting the output of the phase advancing filter according to the amount of overshoot.
The servo control unit may further include means for calculating, from the oscillation command and the position of the servomotor, an amount of overshoot when an oscillation speed changes and means for adjusting the size of the amount of correction stored in the correction storage means according to the amount of overshoot.
The servo control unit may further include means for detecting that the positional difference falls within a prescribed range near 0 at the start of the oscillation. After the positional difference falls within the prescribed range near 0, the first converting means can start conversion of the positional difference obtained in the each commanded distribution cycle to the difference for each reference angle.
The servo control unit may further include means for obtaining velocity data about the servomotor from the positional data about the servomotor at the end of the oscillation and means for adjusting the output of the phase advancing filter by using the velocity data about the servomotor.
The present invention can provide a servomotor control system having the above structure to enable the use of learning control based on an angle synchronization method in high-speed oscillating motion performed by, for example, a jig grinder.
The purposes and advantages of the present invention, including those described above, will be clarified by referring to the attached drawings in combination with the description of the embodiments described below. Of these drawings:
The numerical control unit 20 calculates a positional command Pc and outputs it to the servo control unit 40. The servomotor 80 has a position detector 82 for detecting the rotational position of the motor. Positional information detected by the position detector 82 is fed back to the servo control unit 40 as positional feedback Pf. The servo control unit 40 controls the driving of the servomotor 80 according to the positional command Pc and positional feedback Pf. The servomotor control system 10 has a means that enables the use of learning control based on an angle synchronization method in high-speed oscillation motion performed by, for example, a jig grinder, as described later.
A first embodiment of the servomotor control system according to the present invention will be described first with reference to
The numerical control unit 20 calculates an oscillation command F(t) in an oscillation command calculating means 22, according to shaping conditions. An exemplary oscillation command is F(t)=A·cos (ωt) (coefficient A is an amplitude). The numerical control unit 20 distributes the positional command Pc to the servo control unit 40 at intervals of a commanded distribution cycle T, according to the oscillation command F(t). The numerical control unit 20 also calculates, in a reference angle calculating means 24, a reference angle θ(=ωt) in each commanded distribution cycle from time t (=nT, n is 1, 2, 3, . . . ) and an angular velocity ω, which is a machining condition. The oscillation command F(t) is calculated from reference angle θ(=ωt).
The servo control unit 40 according to the present invention has a function for performing leaning control according to the positional command Pc, the positional feedback Pf, which indicates the current position of the servomotor, and the reference angel θ(=ωt), which is an angle to be referenced. In the case of the sine wave, the angular velocity ω can also be obtained from a tangential velocity and the amplitude, as the machining condition. The oscillation command F(t) may command a triangular wave instead of the sine wave.
A calculator 41 subtracts the positional feedback Pf, which is sent from the position detector 82 attached to the servomotor 80 to detect the position of the servomotor 80, from the position command Pc output from the numerical control unit 20, and obtains a positional difference ε. A calculator 48 adds the amount of correction sent from a first learning control unit 70, which will be described later, to the positional difference ε to correct the positional difference ε. The corrected positional difference ε′ is multiplied by a position gain Kp (49) to obtain a velocity command Vc. That is, positional loop control processing is carried out.
A velocity control unit (not shown) performs velocity loop control processing on the obtained velocity command Vc to obtain a current command. A current control unit performs current loop control processing according to the obtained current command and current feedback sent from a current detector (not shown) and controls the driving of the servomotor 80 through a current amplifier (not shown).
The structure and effect described above are the same as for conventional servo control units except that the calculator 48 adds the amount of correction sent from the first learning control unit 70 to the positional difference.
The numerical control unit 20 sends the reference angle θ(=ωt), which is a reference used in repetitive positional command Pc calculation, to the servo control unit 40 together with the positional command Pc, so the servo control unit 40 can control angle synchronization with reference to the reference angle θ(=ωt).
Next, the first learning control unit 70, which controls learning in the angle synchronization method, will be described. The first learning control unit 70 includes a time-to-angle converting means 42, an adder 43, a band limiting filter 44, a delay memory 45, an angle-to-time converting means 46, and a phase advancing filter 47.
The time-to-angle converting means 42 is the first converting means that converts the positional difference ε in each commanded distribution cycle to the positional difference ε through each prescribed angle by using the positional difference ε and reference angle θ(=ωt). Specifically, the first converting means converts the time-based positional difference ε to the angle-based positional difference ε. The adder 43 adds the positional difference ε at a prescribed angle θ′(m) (m=1, 2, 3, . . . , mmax), obtained by the first converting means (time-to-angle converting means 42), to correction data at the prescribed angle θ′(m) in a corresponding one pattern cycle before, stored in the delay memory 45.
The band limiting filter 44 filters the output from the adder 43 to obtain correction data, and outputs the obtained correction data (correction data at a prescribed angle) to the delay memory 45 in which data corresponding to the reference angles for 360 degrees is stored. The delay memory 45 stores correction data received from the band limiting filter 44.
The angle-to-time converting means 46 is the second converting means, which reads correction data corresponding to the reference angle θ(=ωt) from the delay memory 45 according to the prescribed angle θ′(m), and converts the read correction data (angle-based correction data) to time-based correction data. The time-based correction data converted by the second converting means (angle-to-time converting means 46) is compensated for a phase delay, which is a parameter to be controlled, by the phase advancing filter 47, and the compensated data is output to the calculator 48. The calculator 48 adds the positional difference ε to the amount of correction sent from the first learning control unit 70.
The first converting means (time-to-angle converting means 42) and second converting means (angle-to-time converting means 46) will be described below in detail.
The first converting means (time-to-angle converting means 42) converts the positional difference ε obtained for each commanded distribution cycle (for each position and velocity loop processing cycle) to the positional difference at the reference angle θ′(m). The delay memory 45 has memory sections, each of which stores the correction data at the angular position θ′(m), which is the prescribed angle obtained by dividing one pattern cycle in which a repetitive operation for, for example, a repeatedly commanded machining shape is performed. If the one pattern cycle is 2π and it is divided at intervals of “d”, the delay memory 45 has at least (2π/d) memory sections. For example, if (2π/d) is taken as “q”, the delay memory 45 has memory sections that store correction data at angular positions θ′(m) from θ′(0) (=0) to θ′(q−1) (=2π−d) in one pattern.
The second converting means (angle-to-time converting means 46) obtains correction data δ(n) at the time of the current sampling by interpolating correction data at reference angles θ′(m) and θ′(m+1) before and after the reference angle θ(n), according to the reference angles θ(n) obtained in each commanded distribution cycle. The obtained correction data δ(n) is correction data at the time of the current sampling (time-based correction data).
[Step 100] A machining condition is set in the numerical control unit. In this learning control processing, the machining condition is the angular velocity ω.
[Step 102] The numerical control unit calculates the reference angle ωt for each commanded distribution cycle T; ω is a angular velocity (machining condition), and “t” is an elapsed time (t=n×T) (n=1, 2, 3, . . . ).
[Step 104] The numerical control unit calculates an oscillation command. In this learning control processing, the numerical control calculates cos (ωt).
[Step 106] The numerical control unit outputs the positional command Pc and reference angle θ to the servo control unit.
[Step 108] The servo control unit detects the current position of the servomotor according to the positional feedback Pf from the position detector attached to the servomotor.
[Step 110] The servo control unit calculates a difference (positional difference ε) between the positional command Pc and the positional feedback Pf.
[Step 112] The servo control unit carries out first conversion (conversion from the time-based positional difference to the angle-based positional difference) according to the positional difference ε and reference angle θ.
[Step 114] The servo control unit calculates the amount of correction in learning control.
[Step 116] The servo control unit stores the amount of correction for one cycle.
[Step 118] The servo control unit carries out second conversion (conversion from angle-based correction data to time-based correction data) according to the amount of correction and the reference angle θ.
[Step 120] The servo control unit processes the phase advancing filter.
[Step 122] The servo control unit adds the filter output to the positional difference ε to correct the positional difference ε.
[Step 124] The servo control unit uses the corrected positional difference ε′ to control the servomotor.
A second embodiment of the servomotor control system according to the present invention will be described next with reference to
When learning control in the angle synchronization method is applied to high-speed oscillation motion, an overshoot may occur at the start of the oscillation motion. For a jig grinder or the like, if a commanded amplitude is exceeded even a little at the upper or lower dead center of a cylindrical grinding stone 6, the cylindrical grinding stone 6 or another tool may be damaged due to the shape of a workpiece 2 (see
To prevent this type of collision, in the second embodiment of the present invention, there is provided means for determining an optimum learning control parameter before the workpiece 2 is machined and adjusting output Gx from the phase advancing filter 47 in learning control according to the amount of overshoot at the start of oscillation.
A second learning control unit 72 provided in the servomotor control system shown in
In the second learning control unit 72, when recognizing that the angular velocity ω obtained by differentiation of the reference angle θ by the differentiator 50 becomes a non-0, the start deciding part 51 decides that an oscillation motion has started. The overshoot calculator 52 finds the positional command Pc and the maximum value and minimum value of the positional feedback Pf in a period from when the oscillation motion has started until the reference angle θ becomes 360 degrees. If the absolute value of the maximum value or minimum value of the positional feedback Pf is larger than the absolute value of the positional command Pc, the overshoot calculator 52 calculates an overshoot Ov, which is a difference between these absolute values. The gain adjuster 53 calculates a gain adjustment value according to the overshoot Ov. The multiplier 54 multiplies the gain adjustment value by the output Gx from the phase advancing filter 47 to obtain an adjusted output Gx′. Specifically, the output Gx from the phase advancing filter 47 is reduced by calculation in, for example, expression Gx′=(1−α×Ov)×Gx, according to the overshoot Ov. In this case, if Gx is equal to or greater than 0, and Ov is equal to or smaller than 0, then Ov is 0. The symbol α is a constant (see
It will be described below with reference to
Incidentally, if the gain of the phase advancing filter 47 is not appropriately set in a tracking process during learning control, an overshoot occurs.
Next, a third embodiment of the servomotor control system according to the present invention will be described with reference to
When learning control in the angle synchronization method is applied to high-speed oscillation motion, an overshoot may occur when the speed of the oscillation motion is changed. It is necessary to suppress this overshoot for the same reason as described in the second embodiment (
A third learning control unit 74 provided in the servomotor control system shown in
To suppress an overshoot caused when the speed of the oscillation motion changes, the speed change decider 55 in the third learning control unit 74 detects a point at which the speed has changed, from the angular velocity ω obtained by differentiation of the reference angle θ by the differentiator 50. That is, when the speed change decider 55 detects a change in the angular velocity ω, it is decided that the speed of the oscillation motion has changed. The overshoot calculator 52 finds the positional command Pc in a period from when the speed of the oscillation motion has changed until the reference angle θ becomes 360 degrees and the maximum value and minimum value of the positional feedback Pf. If the absolute value of the maximum value or minimum value of the positional feedback Pf is larger than the absolute value of the positional command Pc, the overshoot calculator 52 calculates an overshoot Ov, which is a difference between these absolute values. The learning compensated output adjuster 56 calculates a correction value in learning control according to the calculated overshoot Ov. Specifically, output compensation Cm in learning control is reduced by calculation in, for example, expression Cm′=(1−β×Ov)×Cm, according to the overshoot Ov. In this case, if Cm is equal to or greater than 0, and Ov is equal to or smaller than 0, then Ov is 0. The symbol β is a constant (see
When the commanded frequency in a sine wave command is reduced from 2 Hz to 1 Hz, if the output compensation Cm in learning control during the reduction is limited, it is found that the overshoot is reduced as shown in
Next, a fourth embodiment of the servomotor control system according to the present invention will be described with reference to
In learning control, the positional difference rapidly converges to 0, so a large amount of compensation is output according to the degree of the positional difference at the start of learning control. As a result, the servo control unit 40 commands large torque at the start of learning control according to the amount of compensation. This may cause a mechanical shock. A large shock causes mechanical damage, so it should be suppressed.
The servomotor control system shown in
The differentiator 50 differentiates the reference angle θ and obtains the angular velocity ω. When recognizing that the angular velocity ω calculated by the differentiator 50 becomes a non-0, the start deciding part 51 decides that an oscillation motion has started. Then the difference monitor 59 starts to monitor the value of the difference ε. When the difference monitor 59 recognizes that the value of the difference ε instantaneously falls within a prescribed range near 0, the time-to-angle converting means 42 starts to convert the positional difference ε for each commanded distribution cycle to the positional difference ε through a prescribed angle and then learning control is started.
Next, a fifth embodiment of the servomotor control system according to the present invention will be described with reference to
When learning control in the angle synchronization method is applied to high-speed oscillation motion, there is a problem in that a shock occurs when the oscillation motion stops. The servomotor control system shown in
To stop the oscillation motion, the angular velocity can be reduced with a certain time constant without a problem. When the oscillation motion is immediately stopped or when learning control is rapidly stopped to suspend the oscillation motion and perform normal linear reduction in speed, however, the amount of compensation suddenly becomes 0, so the positional difference rapidly increases and a shock occurs. This problem depends on the degree of the speed when the oscillation motion is stopped. A large shock causes mechanical damage, as described above, so it should be suppressed.
To suppress the shock, the servomotor control system shown in
The start and end of the oscillation motion are decided according to the value of the angular velocity w obtained by differentiation of the reference angle θ(=ωt) by the differentiator 50. At the same time, whether to enable or disable learning control is also decided according to a change in the angular velocity ω. This is because when the angular velocity ω becomes 0, learning control in the angle synchronization method is disabled.
If detected that an angular velocity ω becomes 0, then it is decided that the oscillation motion and learning have been ended, and the output Gx from the phase advancing filter 47 at the time of oscillation motion end is tentatively held without alteration. Then, this output (Gx′) is gradually reduced depending on the velocity Ve, by using, for example, expression Gx′=Gx×Ve/Vo. In the above expression, Vo is the motor velocity at the time of oscillation motion end. Ve can be obtained by differentiation of the positional feedback Pf by the differentiator 58 (see
Number | Date | Country | Kind |
---|---|---|---|
2009-279760 | Dec 2009 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5019763 | Komatsu | May 1991 | A |
5172040 | Sasaki et al. | Dec 1992 | A |
5371451 | Toyosawa et al. | Dec 1994 | A |
6686716 | Predina et al. | Feb 2004 | B1 |
6859007 | Toyozawa et al. | Feb 2005 | B2 |
6903527 | Toyozawa et al. | Jun 2005 | B2 |
7479750 | Iwashita et al. | Jan 2009 | B2 |
7590458 | Endo et al. | Sep 2009 | B2 |
Number | Date | Country |
---|---|---|
2-39304 | Feb 1990 | JP |
3-31906 | Feb 1991 | JP |
3-175502 | Jul 1991 | JP |
4-289903 | Oct 1992 | JP |
2004-280772 | Oct 2004 | JP |
2007-206857 | Aug 2007 | JP |
Number | Date | Country | |
---|---|---|---|
20110133681 A1 | Jun 2011 | US |