Controller for spindle motor

09846428 · 2017-12-19

Assignee

Inventors

Cpc classification

International classification

Abstract

A controller has a varying speed signal generation unit generating a varying speed command signal varying at predetermined amplitude and period, a current control unit generating a current command signal based on the varying speed command signal, a feedback control unit generating a correction signal based on a deviation between the varying speed command signal and a present rotational speed of the spindle motor and adding the correction signal to the current command signal, and a learning control unit calculating a disturbance component caused by cutting resistance based on the deviation every predetermined rotation angle of the spindle motor and, in synchronism with a rotation angle of the spindle motor corresponding to the varying speed command signal input into the current control unit, generating a compensation signal based on the disturbance component corresponding to the rotation angle and adding the compensation signal to the varying speed command signal.

Claims

1. A controller, for controlling a spindle motor which rotates a spindle of a machine tool, comprising: a varying speed signal generation unit which receives a speed command signal relating to a target rotational speed of the spindle motor and generates a varying speed command signal varying at predetermined amplitude and period with respect to the target rotational speed and outputs the generated varying speed command signal; a current control unit which generates a current command signal for driving the spindle motor based on the varying speed command signal input from the varying speed signal generation unit and outputs the generated current command signal; a feedback control unit which generates a correction signal based on a deviation between the varying speed command signal output from the varying speed signal generation unit and a signal relating to a present rotational speed of the spindle motor and adds the generated correction signal to the current command signal; and a learning control unit which has a memory for storing therein a disturbance component caused by cutting resistance in machining, and successively calculates the disturbance component based on the deviation every predetermined rotation angle of the spindle motor and stores the calculated disturbance component in the memory, and which, in synchronism with a rotation angle of the spindle motor corresponding to the varying speed command signal input from the varying speed signal generation unit into the current control unit, reads out the disturbance component one revolution before corresponding to the rotation angle from the memory, generates a compensation signal based on the read-out disturbance component, and adds the generated compensation signal to the varying speed command signal, wherein, when the disturbance component is represented as F.sub.θ(s) and the compensation signal is represented as C.sub.Fθ(s), the learning control unit calculates the disturbance component F.sub.θ(s) and the compensation signal C.sub.Fθ(s) according to the following equations, respectively:
F.sub.θ(s)=e.sub.θ(s).Math.(1+C(s).Math.P(s))/P(s); and
C.sub.Fθ(s)=F.sub.θ(s).Math.P(s)/(1+C(s).Math.P(s)), where F.sub.θ(s) is the disturbance component when the rotation angle of the spindle motor is θ, e.sub.θ(s) is the deviation when the rotation angle of the spindle motor is θ, C.sub.Fθ(s) is the compensation signal when the rotation angle of the spindle motor is θ, C(s) is a transfer function when the correction signal is generated in the feedback control unit, and P(s) is a transfer function of the spindle motor.

2. A controller, for controlling a spindle motor which rotates a spindle of a machine tool, comprising: a varying speed signal generation unit which receives a speed command signal relating to a target rotational speed of the spindle motor and generates a varying speed command signal varying at predetermined amplitude and period with respect to the target rotational speed and outputs the generated varying speed command signal; a current control unit which generates a current command signal for driving the spindle motor based on the varying speed command signal input from the varying speed signal generation unit and outputs the generated current command signal; a feedback control unit which generates a correction signal based on a deviation between the varying speed command signal output from the varying speed signal generation unit and a signal relating to a present rotational speed of the spindle motor and adds the generated correction signal to the current command signal; and a leaning control unit which has a memory for storing therein a disturbance component caused by cutting resistance in machining, and successively calculates the disturbance component based on the deviation every predetermined rotation angle of the spindle motor and stores the calculated disturbance component and an actual rotational speed of the spindle motor at a position of the rotation angle with the calculated disturbance component and the actual rotational speed related with each other for each of the rotation angles in the memory, and in synchronism with a rotation angle of the spindle motor corresponding to the varying speed command signal input from the varying speed signal generation unit into the current control unit, reads out the disturbance component and the actual rotational speed one revolution before corresponding to the rotation angle, generates a compensation signal based on the read-out disturbance component and the read-out actual rotation speed and based on the varying speed command signal and adds the generated compensation signal to the varying speed command signal.

3. The controller of claim 2, wherein, when the disturbance component is represented as F.sub.θ(s) and the compensation signal is represented as C.sub.Fθ(s), the leaning control unit calculates the disturbance component F.sub.θ(s) and the compensation signal C.sub.Fθ(s) according to following equations, respectively:
F.sub.θ(s)=e.sub.θ(s).Math.(1+C(s).Math.P(s))/P(s); and
C.sub.Fθ(s)=ω(θ).Math.F.sub.θ(s).Math.P(s)/(ω.sub.ref(θ).Math.(1+C(s).Math.P(s))), where F.sub.θ(s) the disturbance component when the rotation angle of the spindle motor is θ, e.sub.θ(s) is the deviation when the rotation angle of the spindle motor is θ, C.sub.Fθ(s) is the compensation signal when the rotation angle of the spindle motor is θ, ω(θ) is the actual rotational speed when the rotation angle of the spindle motor is θ, and is a scalar value, ω.sub.ref(θ) is a commanded rotational speed of the varying speed command signal when the rotation angle of the spindle motor is θ, and is a scalar value, C(s) is a transfer function when the correction signal is generated in the feedback control unit, and P(s) is a transfer function of the spindle motor.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawings(s) will be provided by the Office upon request and payment of the necessary fee.

(2) For a more complete understanding of the disclosed methods and apparatus, reference should be made to the embodiment illustrated in greater detail on the accompanying drawings, wherein:

(3) FIG. 1 is an explanatory diagram showing a schematic configuration of a machine tool according to a first embodiment of the present disclosure;

(4) FIG. 2 is a block diagram showing a configuration of a controller according to the first embodiment;

(5) FIG. 3 is an explanatory diagram for explaining a function of a learning control unit according to the first embodiment;

(6) FIG. 4 is an explanatory diagram for explaining the function of the learning control unit according to the first embodiment;

(7) FIG. 5 is an explanatory diagram for explaining the function of the learning control unit according to the first embodiment;

(8) FIG. 6 is an explanatory diagram showing the rotational speed of a spindle motor in a period where compensation by the learning control unit is not performed and in a period where the compensation by the learning control unit is performed, in a machining simulation performed with a commanded rotational speed of the spindle motor kept at a constant value of 104.7 [rad/s];

(9) FIG. 7 is an explanatory diagram showing a compensation signal in the learning control unit in the example shown in FIG. 6;

(10) FIG. 8 is an explanatory diagram showing the rotational speed of the spindle motor in a period where the compensation by the learning control unit is not performed and in a period where the compensation by the learning control unit is performed, in a machining simulation performed the commanded rotational speed of the spindle motor varied in a sinusoidal waveform;

(11) FIG. 9 is an explanatory diagram showing a compensation signal in the learning control unit in the example shown in FIG. 8;

(12) FIG. 10 is an explanatory diagram showing a speed tracking error of the spindle motor that results when the compensation by the learning control unit is not performed in cutting performed with the rotational speed of the spindle motor kept at a constant value of 104.7 [rad/s];

(13) FIG. 11 is an explanatory diagram showing the result of a spectral analysis of the speed tracking error shown in FIG. 10;

(14) FIG. 12 is an explanatory diagram showing a speed tracking error of the spindle motor that results when compensation by the learning control unit is performed in cutting performed with the rotational speed of the spindle motor kept at a constant value of 104.7 [rad/s];

(15) FIG. 13 is an explanatory diagram showing the result of a spectral analysis of the speed tracking error shown in FIG. 12;

(16) FIG. 14 is an explanatory diagram for explaining a variation amplitude and a variation period of the rotational speed of the spindle motor;

(17) FIG. 15 is a state diagram showing a correlation between a speed variation rate RVA, a speed variation period ratio RVF, and displacement (vibration) of a tool;

(18) FIG. 16 is a state diagram showing the correlation between the speed variation rate RVA, the speed variation period ratio RVF, and the displacement (vibration) of the tool;

(19) FIG. 17 is an explanatory diagram showing displacement of the tool that results when the speed variation period ratio RVF is changed with the speed variation rate RVA set to 0.1;

(20) FIG. 18 is a block diagram showing a configuration of a controller according to a second embodiment of the present disclosure;

(21) FIG. 19 is an explanatory diagram for explaining a function of a learning control unit according to the second embodiment;

(22) FIG. 20 is an explanatory diagram for explaining the function of the learning control unit according to the second embodiment;

(23) FIG. 21 is an explanatory diagram for explaining an effect of the learning control unit according to the second embodiment; and

(24) FIG. 22 is an explanatory diagram for explaining the effect of the learning control unit according to the second embodiment.

(25) It should be understood that the drawings are not necessarily to scale and that the disclosed embodiments are sometimes illustrated diagrammatically and in partial views. In certain instances, details which are not necessary for an understanding of the disclosed methods and apparatus or which render other details difficult to perceive may have been omitted. It should be understood, of course, that this disclosure is not limited to the particular embodiments illustrated herein.

DETAILED DESCRIPTION

(26) Hereinafter, specific embodiments of the present disclosure will be described with reference to the drawings.

First Embodiment

(27) FIG. 1 is an explanatory diagram showing a schematic configuration of a machine tool according to a first embodiment of the present disclosure. As shown in the same FIG. 1, a machine tool 1 of this embodiment includes a base 2, a ball screw 4 supported by the base 2 to be rotatable, a feed motor 3 which rotates the ball screw 4 about its axis, a table 5 which is screwed to the ball screw 4 and is moved in the axial direction of the ball screw 4 (X-axis direction) by the rotation of the ball screw 4, a spindle 6 disposed in an area above the table 5, a spindle motor 7 which rotates the spindle 6 about its axis, a controller 10 which numerically controls the feed motor 3 and the spindle motor 7, and other components.

(28) It is noted that, although, for the sake of convenience, FIG. 1 depicts only a feed mechanism (the ball screw 4 and the feed motor 3) for moving the table 5 in the X-axis direction, the machine tool 1 also includes a feed mechanism for moving the table 5 and the spindle 6 relative to each other in the Y-axis and Z-axis directions shown in FIG. 1 and operation of this feed mechanism is also controlled by the controller 10.

(29) Thus, in the machine tool 1, under the control by the controller 10, the table 5 and the spindle 6 are moved relative to each other along the three orthogonal axes: the X axis, the Y axis, and the Z axis by the feed mechanisms including the feed motor 3 and the spindle motor 7. Further, a workpiece W is placed on the table 5 and a tool 8 is attached to the spindle 6, and the table 5 and the spindle 6 are moved relative to each other as appropriate in a state where the spindle 6 is rotated at a predetermined rotational speed, thereby machining the workpiece W.

(30) It is noted that, obviously, the machine tool is not limited to a machine tool having the above-described configuration and includes, besides an NC lathe, every type of known machine tool that cuts and machines a workpiece through relative rotation between a tool and the workpiece.

(31) As shown in FIG. 2, the controller 10 has a program analysis unit 11, a varying speed signal generation unit 12, a current control unit 13, a feedback control unit 14, a learning control unit 15, and other components. It is noted that, although not shown in FIG. 2, the controller 10 of this embodiment further has a storage unit storing an NC program therein and a control unit controlling the feed motor 3, etc.

(32) The program analysis unit 11 analyzes an NC program stored in the storage unit or an NC program input as appropriate, extracts a command relating to the rotational speed of the spindle motor 7 contained in the NC program, and transmits the extracted speed command signal to the varying speed signal generation unit 12.

(33) Based on the speed command signal received from the program analysis unit 11, the varying speed signal generation unit 12 generates a varying speed command signal ω.sub.ref varying at predetermined amplitude and period with a rotational speed of the speed command signal used as a target rotational speed and outputs the generated varying speed command signal to the current control unit 13. Although a triangular waveform as shown in FIG. 14 can be given as an example of the waveform varying the rotational speed, the waveform is not limited thereto and may be a sinusoidal waveform or a trapezoidal waveform, for example. It is noted that, as described above, N.sub.0 is the target rotational speed (average rotational speed) [rad/s], the variation amplitude is 2×N.sub.A [rad/s], and the variation period is T [s].

(34) The current control unit 13 generates a current command signal for driving the spindle motor 7 based on the varying speed command signal ωref received from the varying speed signal generation unit 12 and outputs the generated current command signal to the spindle motor 7 to drive the spindle motor 7. It is noted that the spindle motor 7 is supplied with a current corresponding to the current command signal output from the current control unit 13. B.sup.−1(I−z.sup.−1A) and H (Tu) in FIG. 2 are each a transfer function. Further, K.sub.t and 1/(Js+D) in a block corresponding to the spindle motor 7 are also each a transfer function, and K.sub.t is a torque constant [Nm/A], Js is an inertia [kg.Math.m2] of the spindle 6 including a tool, and D is a friction coefficient [Nm.Math.s] of the spindle motor 7.

(35) The feedback control unit 14 calculates a deviation (a tracking error) e [rad/s] between an actual rotational speed ω [rad/s] of the spindle motor 7 detected by a rotary encoder attached to the spindle motor 7 or the like and a nominal value ω.sub.0 [rad/s] of the varying speed command ω.sub.ref output from the varying speed signal generation unit 12 at predetermined time intervals and successively generates correction signals (current command signals) for cancelling the deviations e [rad/s] based on the obtained deviations e [rad/s] and adds the generated correction signals to the signal output from the current control unit 13. In FIG. 2, S(Tu) is a transfer function for calculating the actual rotational speed ω [rad/s] of the spindle motor 7, z.sup.−1C and H(Tu) are transfer functions for calculating the nominal value ω.sub.0 [rad/s], and C(z) is a transfer function for generating the correction signal based on the deviation e [rad/s].

(36) The learning control unit 15 is a processing unit for successively calculating (estimating) a cutting resistance F, which is a disturbance component, based on the deviation e [rad/s] calculated in the feedback control unit 14 every predetermined rotation angle (phase θ) of the spindle motor 7 and storing the calculated cutting resistances F in a memory within a periodic signal generator (PSG) 16, and, in synchronism with a rotation angle (phase) of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 into the current control unit 13, generating a compensation signal based on the estimated cutting resistance F corresponding to the rotation angle (phase) and adding the generated compensation signal to the varying speed command signal ω.sub.ref.

(37) The phase θ is defined by dividing one revolution of the spindle motor 7 by N (an integer) as shown in FIG. 3 and the learning control unit 15 stores the estimated cutting resistances F (θ[i]) of the phases θ[i] as a data table as shown in FIG. 5 in the memory. It is noted that i is integers from 1 to N.

(38) The actual rotation angle (actual phase θ) of the spindle motor 7 is detected by the rotary encoder or the like and the following equation holds between the cutting resistance Fθ(s) and the actual rotational speed ω(θ) at a certain phase θ.
ω(θ)=ω.sub.0(θ)−(F.sub.θ(s).Math.P(s)/(1+C(s).Math.P(s)))  (Equation 1)

(39) Further, since, as described above, the deviation e (θ) is a difference between the nominal value ω.sub.0 (θ) and the actual rotational speed ω (θ), that is,
e(θ)=ω.sub.0(θ)−ω(θ),  (Equation 2)

(40) the cutting resistance F.sub.θ(s) is estimated by the following equation based on the Equations 1 and 2:
F.sub.θ(s)=e.sub.θ(s).Math.(1+C(s).Math.P(s))/P(s),  (Equation 3)

(41) where F.sub.θ(s) is a disturbance component when the rotation angle of the spindle motor is θ, e.sub.θ(s) is a deviation when the rotation angle of the spindle motor is θ, C(s) is a transfer function when the correction signal is generated in the feedback control unit 14, and P(s) is a transfer function of the spindle motor 7.

(42) The learning control unit 15 successively calculates an estimated cutting resistance F(θ[i]) for each phase θ[i] according to the Equation 3 and successively stores the calculated estimated cutting resistances F(θ[i]) as a data table (cutting resistance table) as shown in FIG. 5 in the memory of the PSG 16 while updating the data table.

(43) On the other hand, the learning control unit 15 calculates a phase θ of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 into the current control unit 13, reads out the estimated cutting resistance F (θ) corresponding to the phase θ from the memory, and generates a compensation signal based on the estimated cutting resistance F (θ) read out and adds the generated compensation signal to the varying speed command signal ω.sub.ref.

(44) The phase θ of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref is a phase θ[i+1] which is advanced by one phase from the actual phase θ[i] of the spindle motor 7, and the phase θ[i+1] is calculated by the following equation:
θ[i+1]=θ[i]+(ω(θ[i])+ω.sub.ref(θ[i])).Math.Tu/2,  (Equation 4)

(45) where Tu is a control period.

(46) The learning control unit 15 reads out the estimated cutting resistance F (θ[i+1]) corresponding to the phase θ[i+1] from the memory based on the phase θ[i+1] calculated by the Equation 4 and generates a compensation signal C.sub.F (θ[i+1]) by the following equation based on the estimated cutting resistance F(θ[i+1]) read out.
C.sub.Fθ(s)=F.sub.θ(s).Math.P(s)/(1+C(s).Math.P(s)),  (Equation 5)

(47) where C.sub.Fθ(s) is a compensation signal when the rotation angle of the spindle motor 7 is θ, F.sub.θ(s) is a disturbance component when the rotation angle of the spindle motor 7 stored in the memory is θ, C(s) is a transfer function when the correction signal is generated in the feedback control unit, and P(s) is a transfer function of the spindle motor.

(48) It is noted that a conceptual block diagram showing the processing of calculating the phase θ[i+1], the processing of storing the estimated cutting resistance F(θ[i]), and the processing of reading out the estimated cutting resistance F (θ[i+1]) is shown in FIG. 4.

(49) Subsequently, the learning control unit 15 multiplies the calculated compensation signal C.sub.F(θ[i+1]) by a function Q[z], and then adds the result of the multiplication to the varying speed command signal ω.sub.ref (θ[i+1]) input from the varying speed signal generation unit 12 into the current control unit 13. It is noted that the function Q[z] is a Q filter represented by the following equation, where γ=2.
Q[z]=(1+γz.sup.−1+z.sup.−2)/(γ+2)  (Equation 6)

(50) Thus, according to the controller 10 of this embodiment having the above-described configuration, the program analysis unit 11 analyzes as an NC program stored in the storage unit as appropriate or an NC program input as appropriate, extracts a command relating to the rotational speed of the spindle motor 7 contained in the NC program, and transmits the extracted speed command signal to the varying speed signal generation unit 12.

(51) Once the speed command signal is input into the varying speed signal generation unit 12, the varying speed signal generation unit 12 generates a varying speed command signal ωref varying at predetermined amplitude and period with respect to a received target rotational speed and transmits the generated varying speed command signal to the current control unit 13.

(52) Subsequently, the current control unit 13 generates a current command signal for driving the spindle motor 7 based on the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 and outputs the generated varying speed command signal ωref, and the spindle motor 7 is driven according to the current command signal. At this time, a correction signal is generated based on a deviation e between a nominal value ω.sub.0 of the varying speed command signal ω.sub.ref output from the varying speed signal generation unit 12 and an actual rotational speed ω of the spindle motor 7 by the feedback control unit 14, and the generated correction signal is added to the current command signal.

(53) Further, the learning control unit 15 successively calculates a disturbance component caused by cutting resistance in machining based on the deviation every predetermined phase θ of the spindle motor 7e and stores the calculated disturbance components therein, and, in synchronism with a phase θ of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 into the current control unit 13, generates a compensation signal based on the disturbance component corresponding to the phase θ and adds the generated compensation signal to the varying speed command signal.

(54) Thus, according to the controller 10 of this embodiment, first, the feedback control unit 14 generates a correction signal corresponding to the deviation e between the nominal value ω.sub.0 of the varying speed command signal ω.sub.ref output from the varying speed signal generation unit 12 and the present rotational speed ω of the spindle motor 7, that is, a tracking error e and correction is performed using the correction signal.

(55) The tracking error e includes an error occurring due to disturbance, such as a friction force of the spindle motor 7 and a cutting resistance F, and this error is corrected by the feedback control unit 14. However, in a case where the rotational speed of the spindle motor 7 is varied at predetermined variation amplitude and variation period, periodic variation also occurs in the cutting resistance F due to the periodic variation of the rotational speed, so that there may occur a case where a tracking error e caused by the periodically varying cutting resistance F cannot be sufficiently suppressed by the feedback control unit 14. Particularly, as described above, when the variation period is set to a short period in order to suppress self-excited chatter vibration while keeping machining accuracy good, the tracking error e caused by the cutting resistance F cannot be suppressed.

(56) In the controller 10 of this embodiment, as described above, by the learning control unit 15, a disturbance component caused by the cutting resistance F in machining are calculated based on the deviation e every predetermined phase θ of the spindle motor 7 and the calculated components are stored, and, in synchronism with a phase θ of the spindle motor 7 corresponding to the varying speed command signal ωref input from the varying speed signal generation unit 12 into the current control unit 13, the disturbance component corresponding to the phase θ, that is, a disturbance component estimated one revolution before with respect to the phase θ is read out, a compensation signal for cancelling the disturbance component read out is generated based on the disturbance component read out, and the generated compensation signal is added to the varying speed command signal ωref to previously correct a tracking error e which will occur due to the disturbance component, that is, a feed-forward control is performed. Thereby, the tracking error e caused by the cutting resistance F which cannot be sufficiently suppressed by the feedback control can be suppressed.

(57) As described above, according to the controller 10 of this embodiment, even when the spindle motor 7 is driven with the rotational speed thereof varied at predetermined variation amplitude and variation period in order to suppress self-excited chatter vibration while keeping machining accuracy good, the tracking error e caused by the cutting resistance F can be more stably compensated for.

(58) In this connection, FIG. 6 depicts a rotational speed ω [rad/s] of the spindle motor 7 obtained when a machining simulation was performed with cutting resistance set as appropriate and a command value of the rotational speed of the spindle motor 7 set to a constant speed of 104.7 [rad/s]. It is noted that, in this example, a speed signal generation unit which does not vary the rotational speed, that is, generates a speed command signal relating to a constant rotational speed and outputs the generated speed command signal was used instead of the varying speed signal generation unit 12 shown in FIG. 2. Further, a resolution N of the phase θ is set to 10000 and, as shown in FIG. 7, on and after a time 0.5 [s], compensation signals generated by the learning control unit 15 (compensation signals shown in FIG. 7) were added to the speed command signal output from the speed signal generation unit.

(59) As understood from FIG. 6, although the rotational speed of the spindle motor 7 varies largely until 0.5 [s] after the start, on and after 0.5 [s], disturbance caused by cutting resistance is suppressed by addition of the compensation signals generated by the learning control unit 15. A tracking error which still remains after the addition of the compensation signals is caused by a delay due to the Q filter. It is noted that, in FIG. 6, a black solid line indicates the speed command signal ω.sub.ref and a gray solid line indicates the actual rotational speed ω of the spindle motor 7.

(60) Further, FIG. 8 depicts a rotational speed ω [rad/s] of the spindle motor 7 obtained when a machining simulation was performed in which cutting resistance was set to the same value as the above and, using the varying speed signal generation unit 12, the command value of the rotational speed of the spindle motor 7 was periodically varied in a sinusoidal waveform with the average rotational speed, the speed variation rate RVA, and the speed variation period ratio RVF of the spindle motor 7 set to 104.7 [rad/s], 0.1 and 1.0, respectively. It is noted that, similarly to the above, on and after a time 0.5 [s], compensation signals generated by the learning control unit 15 (compensation signals shown in FIG. 9) were added to the varying speed command signal ω.sub.ref output from the varying speed signal generation unit 12. In FIG. 8, a black solid line indicates the varying speed command signal ωref and a gray broken line indicates the actual rotational speed ω of the spindle motor 7.

(61) As understood from FIG. 8, although a tracking error occurs until 0.5 [s], the disturbance caused by cutting resistance is suppressed by addition of the compensation signals generated by the learning control unit 15 on and after 0.5 [s]. Thus, even when machining is performed while the rotational speed of the spindle motor 7 is periodically varied, the disturbance caused by cutting resistance can be suppressed and the tracking error of the rotational speed can be reduced.

(62) Further, FIG. 10 depicts a tracking error of the rotational speed of the spindle motor 7 obtained when a chemical wood was used as a cutting material, machining was performed using an end mill having a diameter of 20 mm and four blades with the width of cut in the diametrical direction se to 20 mm, the depth of cut in the axial direction set to 2 mm, the feed rate set to 643 mm/min-1, and the rotational speed of the spindle motor 7 set to a constant speed of 104.7 [rad/s], and the compensation by the learning control unit 15 was not performed and FIG. 11 depicts the result of a spectrum analysis thereof, whereas FIG. 12 depicts a tracking error of the rotational speed of the spindle motor 7 obtained in the case where the compensation by the learning control unit 15 was performed and FIG. 13 depicts the result of a spectrum analysis thereof. It is noted that the resolution N of the phase θ was set to 2000.

(63) As shown in FIG. 11, the influence of the cutting resistance appears as errors having frequencies of integral multiples of the rotational frequency of the spindle motor 7, 16.7 Hz. However, since the number of pole pairs of the spindle motor 7 is 4, an error having a frequency of four times the rotational period of the spindle motor 7 is caused by the cutting resistance and a torque ripple of the spindle motor 7. As understood by comparisons between FIG. 10 and FIG. 12, and between FIG. 11 and FIG. 13, a tracking error of an integral multiple of the rotational frequency of the spindle motor 7 is suppressed by performing the compensation by the learning control unit 15.

(64) As described in detail above, according to the machine tool 1 having the controller 10 of this embodiment, the tracking error caused cutting resistance, which cannot be sufficiently suppressed by a feedback control, can be suppressed, and even when the spindle motor is driven with the rotational speed thereof varied at predetermined variation amplitude and variation period in order to suppress self-excited chatter vibration while keeping machining accuracy good, the tracking error caused by cutting resistance can be more stably compensated for.

Second Embodiment

(65) Next, a second embodiment of the present disclosure will be described. A machine tool according to the second embodiment has a controller 10′ shown in FIG. 18 instead of the controller 10 shown in FIG. 2, and, except for this, has the same configuration as that of the machine tool according to the first embodiment. It is noted that FIG. 2 is a block diagram showing a configuration of the controller 10′ of this embodiment.

(66) As shown in FIG. 2, the configuration of the controller 10′ of this embodiment is different from that of the controller 10 in that the controller 10′ has, instead of the learning control unit 15 of the controller 10 according to the first embodiment, a learning control unit 15′ different in function from the learning control unit 15. Therefore, the same components as those of the controller 10 are denoted by the same reference signs and detailed explanation thereof is omitted.

(67) The learning control unit 15′ is a processing unit of successively calculating (estimating) a cutting resistance F, which is a disturbance component, based on the deviation e [rad/s] calculated in the feedback control unit 14 every predetermined rotation angle (phase θ) of the spindle motor 7 and storing the estimated cutting resistance F together with the actual rotational speed ω of the spindle motor 7 at that time in a memory of a periodic signal generator (PSG) 16′, and, in synchronism with a rotation angle (phase) of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 into the current control unit 13, generating a compensation signal based on the estimated cutting resistance F and the actual rotational speed ω.sub.a corresponding to the rotation angle (phase) and based on the varying speed command signal ω.sub.ref and adding the generated compensation signal to the varying speed command signal ω.sub.ref.

(68) As shown in FIG. 3, the phase θ is defined by dividing one revolution of the spindle motor 7 by N (an integer), and the learning control unit 15′ stores the estimated cutting resistance F(θ[i]) the actual rotational speed ω(θ[i]) of the spindle motor 7 at that time for each of the phases θ[i] as a data table as shown in FIG. 20 in the memory, where i is integers from 1 to N.

(69) The actual rotation angle (actual phase θ) and the actual rotational speed w of the spindle motor 7 are detected by the rotary encoder or the like, and the learning control unit 15′ successively calculates the estimated cutting resistances F (θ[i]) of each of the phases θ[i] according to the Equation 3 and stores the calculated cutting resistance F together with the actual rotational speed ω (θ[i]) at that time as a data table (cutting resistance table) as shown in FIG. 20 in the memory of the PSG 16′ while successively updating the data table.

(70) On the other hand, the learning control unit 15′ calculates a phase θ of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref input from the varying speed signal generation unit 12 into the current control unit 13, reads out the estimated cutting resistance F(θ) and the actual rotational speed ω (θ) corresponding to the phase θ from the memory, and generates a compensation signal based on the estimated cutting resistance F(θ) and actual rotational speed ω(θ) read out and based on the varying speed command signal ω.sub.ref, and adds the generated compensation signal to the varying speed command signal ω.sub.ref.

(71) The phase θ of the spindle motor 7 corresponding to the varying speed command signal ωref is a phase θ[i+1] which is advanced by one phase from the actual phase θ[i] of the spindle motor 7, and the phase θ[i+1] is calculated by the Equation 4, as shown in FIG. 19.

(72) Based on the phase θ[i+1] calculated by the Equation 4, the learning control unit 15′ reads out the estimated cutting resistance F(θ[i+1]) and the actual rotational speed ω(θ[i+1]) corresponding to the phase θ[i+1] from the memory and generates a compensation signal CF(θ[i+1]) according to the following equation based on the estimated cutting resistance F(θ[i+1]) and actual rotational speed ω(θ[i+1]) read out and based on the varying speed command signal ωref(θ[i+1]):
C.sub.Fθ(s)=ω(θ).Math.F.sub.θ(s).Math.P(s)/(ω.sub.ref(θ).Math.(1+C(s).Math.P(s))),  (Equation 7)

(73) where C.sub.Fθ(s) is a compensation signal when the rotation angle of the spindle motor 7 is θ, F.sub.θ(s) is a disturbance component when the rotation angle of the spindle motor 7 is θ, which is stored in the memory, and ω(θ) is the actual rotational speed when the rotation angle of the spindle motor 7 is θ, which is stored in the memory, and is a scalar value. Further, ω.sub.ref(θ) is a commanded rotational speed of the varying speed command signal when the rotation angle of the spindle motor 7 is θ, and is a scalar value. Furthermore, C(s) is a transfer function when the correction signal is generated in the feedback control unit, and P(s) is a transfer function of the spindle motor.

(74) It is noted that FIG. 19 shows a conceptual block diagram showing the processing of calculating the phase θ[i+1], the processing of storing the estimated cutting resistance F(θ[i]) and the actual rotational speed ω (θ[i]), and the processing of reading out the estimated cutting resistance F(θ[i+1]) and the actual rotational speed ω(θ[i+1]).

(75) Subsequently, the learning control unit 15′ multiplies the calculated compensation signal C.sub.F(θ[i+1]) by the function Q[z] (the Equation 6), and then adds the result of the multiplication to the varying speed command signal ω.sub.ref (θ[i+1]) input from the varying speed signal generation unit 12 into the current control unit 13.

(76) Thus, according to the controller 10′ of this embodiment having the above-described configuration, first, the feedback control unit 14 generates a correction signal corresponding to a deviation e between a nominal value ω.sub.0 of the varying speed command signal ω.sub.ref output from the varying speed signal generation unit 12 and a present rotational speed ω of the spindle motor 7, that, a tracking error e, and correction is performed using this correction signal.

(77) Further, by the learning control unit 15′, a disturbance component caused the cutting resistance F in machining is calculated based on the deviation e every predetermined phase θ of the spindle motor 7 and the calculated disturbance components are stored, and, on the other hand, in synchronism with a phase θ[i+1] of the spindle motor 7 corresponding to the varying speed command signal ω.sub.ref(θ[i+1]) input from the varying speed signal generation unit 12 into the current control unit 13, the cutting resistance F(θ[i+1]) corresponding to the phase θ[i+1], that is, a cutting resistance F(θ[i+1]) estimated one revolution before with respect to the phase θ[i+1] is read out, and a compensation signal C.sub.F(θ[i+l]) is generated according to the Equation 7 where the estimated cutting resistance F(θ[i+1]) read out is multiplied by a ratio of the actual rotational speed ω(θ[i+1]) to the varying speed command signal ω.sub.ref(θ[i+1]), that is, ω (θ[i+1])/ω.sub.ref (θ[i+1]) and the generated compensation signal C.sub.F(θ[i+1]) is added to the varying speed command signal ω.sub.ref (θ[i+1]) to previously correct the tracking error e which will occur due to the disturbance component, that is, a feed-forward control is performed.

(78) As described above, the disturbance component caused by the cutting resistance is in inverse proportion to the rotational speed of the spindle motor 7. Therefore, the cutting resistance which is estimated to occur due to the varying speed command signal ω.sub.ref(θ[i+1]) can be estimated accurately by multiplying the estimated cutting resistance F(θ[i+1]) one revolution before by a ratio of the actual rotational speed ω(θ[i+1]) to the varying speed command signal ω.sub.ref(θ[i+1]), that is, ω(θ[i+1])/ω.sub.ref(θ[i+1]). In the learning control unit 15′ of this embodiment, since the compensation signal C.sub.F(θ[i+1]) is generated by multiplying the estimated cutting resistance F(θ[i+1]) by ω(θ[i+1])/ω.sub.ref(θ[i+1]), an accurate compensation signal C.sub.F(θ[i+1]) corresponding to the varying speed command signal ω.sub.ref(θ[i+1]) can be generated, and the tracking error e caused by the cutting resistance F can be suppressed more effectively.

(79) As described above, according to the controller 10′ of this embodiment, even when the spindle motor 7 is driven with the rotational speed thereof varied at predetermined variation amplitude and variation period in order to suppress self-excited chattering vibration while keeping machining accuracy good, the tracking error e caused by cutting resistance F can be more stably compensated for.

(80) In this connection, an aluminum as a cutting material was machined using the machine tool 1 shown in FIG. 1 with the command value of the rotational speed of the spindle motor 7 periodically varied in a triangular waveform and where cutting resistance was set as appropriate the average rotational speed of the spindle motor 7, the speed variation rate RVA, and the speed variation period ratio RVF were set to 104.7 [rad/s], 0.1, and 0.7, respectively, by the varying speed generation unit 12, and the rotational speed of the spindle motor 7 in the case where the compensation by the learning control unit 15 of the first embodiment was performed and the rotational speed of the spindle motor 7 in the case where the compensation by the learning control unit 15′ of the second embodiment were measured. FIG. 21 shows the measured rotational speeds ω [rad/s] of the spindle motor 7 and FIG. 22 shows the tracking errors to the command value of the rotational speed (varying speed command). It is noted that, in FIG. 21, ω.sub.ref is the varying speed command, and in FIGS. 21 and 22, w/o indicates a case where neither the compensation by the learning control unit 15 nor the compensation by the learning control unit 15′ was performed.

(81) As shown in FIGS. 21 and 22, the tracking error is more suppressed by the compensation by the learning control unit 15′ of the second embodiment than by the compensation by the learning control unit 15 of the first embodiment.

(82) Thus, according to the controller 10′ of this embodiment, the tracking error caused cutting resistance, which cannot be sufficiently suppressed by feedback control, can be suppressed, and even when the spindle motor is driven with the rotational speed thereof varied at predetermined variation amplitude and variation period in order to suppress self-excited chatter vibration while keeping machining accuracy good, the tracking error caused by cutting resistance can be more stably compensated for.

(83) Although specific embodiments of the present disclosure have been described above, the embodiment which can be taken by the present disclosure is not limited to the above embodiments.

(84) For example, although, in both of the above-described first and second embodiments, the Q filter is provided and, after the compensation signal C.sub.F(θ[i+1]) is multiplied by the function Q[z], the result of the multiplication is added to the varying speed command signal ω.sub.ref(θ[i+1]) input from the varying speed signal generation unit 12 into the current control unit 13, the Q filter has not to be always provided and the compensation signal C.sub.F(θ[i+1]) may be added to the varying speed command signal ω.sub.ref(θ[i+1]) as it is.