Apparatus for machining a non-circular workpiece

Abstract: An apparatus for machining a non-circular workpiece, wherein the profile data of plural sections of the workpiece stored in the profile data storage means are transformed into the frequency functions of 1 to n degree which is a function of the rotary angular velocity of the workpiece. The calculation means finds the amplitudes and the phases of each degree of the frequency function of each of plural intermediate sections by means of the interpolation according to the position between selected two sections based on the frequency functions of the selected two sections so as to obtain high frequency functions and low frequency functions which are then converted to high frequency and low frequency profile data. The machining apparatus actuates a linear motor in accordance with the high frequency profile data and actuates a PZT actuator in accordance with the low frequency profile data. The actuations of these actuators are accomplsihed in a synchronized relationship with the rotation of the workpiece to machine the workpiece into a non-circular shape whose sectional shape changes with respect to its axial position.

Description: This invention relates to an apparatus for machining a non-circular workpiece wherein a workpiece is rotated at a constant angular velocity ω and a cutting tool is moved in a direction perpendicular to the rotational axis of the workpiece and a direction parallel to the rotational axis in a synchronized relationship with rotation of the workpiece so that the workpiece may be machined into a non-circular shape whose sectional shape changes along the rotational axis. In case that a difference between major and minor diameters of a workpiece is constant at all positions along the rotational axis of the workpiece, only one set of non-circular profile data (hereinafter referred to as profile data), which defines a sectional shape perpendicular to the rotational axis of the workpiece, is required to be prepared. In this case, profile data of other sections can be calculated based on the prepared profile data with taking the major and minor diameters of each section into consideration. However, prior apparatus for machining the non-circular workpiece wherein profile data of a predetermined section of the workpiece is stored and the profile data of the other sections are created based upon the periodicity of the sectional shape has a problem in that the apparatus cannot machine the workpiece whose difference between the major and the minor diameter doesn't vary constantly with respect to the axial position along the rotational axis of the workpiece and the workpiece which twists with respect to the axis of the workpiece, because the profile data of the other sections cannot be created by the calculation based on the stored profile data for the predetermined section of the workpiece. Document EP-A-0 043 741 discloses a method and an apparatus for machining a non-circular workpiece. The workpiece is rotated at an angular velocity and a cutting tool is moved in a direction perpendicular to the rotational axis of the workpiece and a direction parallel to the rotational axis in a synchronized relationship with the rotation of the workpiece so that the workpiece may be machined into a non-circular shape whose sectional shape changes with respect to its axial position. For adjusting the cutting tool a function is calculated from the curvature of the profile and the roundness of the cross-section of the whole workpiece being machined by the cutting tool dependent on an axial parameter and an angle. The caculation of the members of a Fourier series is executed by linear interpolation. SUMMARY OF THE INVENTION An object of the invention is to provide an apparatus for machining a non-circular workpiece whose sectional shape changes with respect to its axial position, which can easily create profile data of different intermediate sections between multiple sections profile data of which are known. Another object of the invention is to provide an apparatus for machining a non-circular workpiece whose sectional shape changes with respect to its axial position, in which the responsiveness of the tool feed is improved. According to the invention this object is achieved by an apparatus for machining a non-circular workpiece wherein a workpiece is rotated at an angular velocity and a cutting tool is moved in a direction perpendicular to the rotational axis of the workpiece and a direction parallel to the rotational axis in a synchronized relationship with the rotation of the workpiece so that the workpiece may be machined into a non-circular shape whose sectional shape changes with respect to its axial position, characterized by a first data storage means for storing therein non-circular profile data of plural sections perpendicular to the rotational axis of the workpiece, a data transformation means for transforming the stored non-circular profile data into a frequency function of 1 to n degree which is a function of the angular velocity, a calculation means for finding an amplitude and a phase of each degree of frequency function for each of plural intermediate sections by means of an interpolation according to a position between selected sections based on the amplitude and the phase of the each degree of the frequency function of each of the selected sections and for separating the frequency function of the intermediate sections into low frequency functions and high frequency functions, a data inverse transformation means for transforming inversely the high frequency function and the low frequency function calculated by the calculation means to create high frequency profile data and low frequency profile data, a first driving system driven in accordance with the high frequency profile data, and a second driving system driven in accordance with the low frequency profile data, wherein the second driving system is moving the first driving system and the first driving system is moving the cutting tool. The advantages of a prefered embodyment of the invention will become apparent and obvious to those skilled in the pertinent art upon referring to the following description provided in connection with the accompanying drawings, of which: Fig. 1 is a block diagramm showing an entire construction of a machining apparatus according to the present invention; Fig. 2A and 2B are sectional views showing an X-axis tool feeding mechanism of the machining apparatus shown in Fig. 1; construction of the machining apparatus shown in Fig. 2; Fig. 3 is a block diagram showing an electric Fig. 4 and 5 are diagrams illustrating movement of a tool; Fig. 6 is an explanatory view showing a workpiece to be machined and the movement of the tool. Fig. 7(A) and Fig. 7(B) are flow charts illustrating procedures of creating transient profile data by means of a proportional distribution method. Fig. 8 is a flow chart illustrating the operation of the CPU when the machining apparatus machines the workpiece. Fig. 9 is a flow chart illustrating the operation of memory controllers 41 and 61 when the machining apparatus machines the workpiece. Fig. 10 is an illustration for explaining a method of a spline interpolation for use with a mixed function. Fig. 11(A) and Fig.11(B) are flow charts illustrating creation of the intermediate profile data by means of the spline interpolation. Fig. 12 is an explanatory view illustrating a portion of the profile data stored in a profile data memory. DESCRIPTION OF THE INVENTION Referring first to Fig. 1, there is shown a mechanical construction of a non-circular workpiece machining apparatus according to a preferred embodiment of the present invention. The machining apparatus shown includes a bed 10 and a pair of slide rails 15a and 15b formed on the bed 10 and extending in the direction of a Z-axis. A tool slide 12 is disposed for sliding movement in the Z-axis direction on the slide rails 15a and 15b and connected to a Z-axis motor 18 in the form of a servomotor via a feed screw mechanism 11. A tool base 13 is placed on the tool slide 12, and a cutting tool T and an X-axis tool feeding mechanism 14 are placed on the tool base 13. The cutting tool T is moved back and forth in the X-axis direction by the tool feeding mechanism 14 which will be hereinafter described. An amount of rotation of the Z-axis motor 18 is detected by a rotary encoder 20, and a detection signal of the rotary encoder 20 is fed back as a position feedback signal to a Z-axis motor driving circuit 36. The detected signal of the rotary encoder 20 is also counted by a Z-axis position counter 201 and the count value is inputted to a CPU 30, a linear motor driving circuit 40 and a piezoelectric actuator driving circuit 60. Meanwhile, a speed of rotation of the Z-axis motor 18 is detected by a tachometer generator 22, and a detection signal of the tachometer generator 22 is fed back as a speed feedback signal to the Z-axis motor driving circuit 36. A spindle head 16 is disposed on the bed 10, and a spindle 17 is supported for rotation on the spindle head 16. The spindle 17 is rotated by a spindle motor 19 in the form of a servomotor. A workpiece W such as a piston for an engine is attached to the spindle 17 by means of a chuck (not shown) and fitted on a positioning pin (not shown) which extends from the spindle 17. As a result, the phase of rotation of the workpiece W coincides with the phase of rotation of the spindle 17. An amount of rotation of the spindle motor 19 is detected by a rotary encoder 21, and a detection signal of the rotary encoder 21 is fed back as a position feedback signal to a spindle motor driving circuit 35. The detected signal of the rotary encoder 21 is counted by a position counter 211 and the count value is inputted to the linear motor driving circuit 40 and the piezoelectric actuator driving circuit 60. Meanwhile, a speed of rotation of the spindle motor 19 is detected by a tachometer generator 23, and a detection signal of the tachometer generator 23 is fed back as a speed feedback signal to the spindle motor driving circuit 35. With the machining apparatus, when the spindle 17 is rotated, the cutting tool T is moved back and forth in the X-axis direction in a synchronized relationship with rotation of the spindle 17 so that the workpiece W may be machined so as to have a predetermined substantially elliptic cross section. In a combined or overlapping relationship with the machining movement, the tool slide 12 is fed in the Z-axis direction by the Z-axis motor 18 so that the workpiece W may be machined also in the Z-axis direction. Consequently, the workpiece W is machined into a desired cylindrical shape. The X-axis tool feeding mechanism 14 is shown in detail in Figs. 2A and 2B which are sectional views thereof taken in directions parallel and perpendicular to the X-axis, respectively. Referring to Figs. 2A and 2B, the cutting tool T is mounted on a tool mount 2. A piezoelectric actuator 1 made of PZT (lead zirconate titanate) is disposed in the inside of the tool mount 2. The end face of a holder 81 for the cutting tool T is normally held in contact with an end face 1a of the piezoelectric actuator 1 under the biasing force exerted by a compression coil spring 82. When a voltage is applied to the piezoelectric actuator 1, the end face 1a of the piezoelectric actuator 1 is displaced by an amount corresponding to the magnitude of the voltage applied thereto in the direction indicated by an arrow mark of the X-axis direction against the biasing force of the compression coil spring 82. As a result, the position of the cutting tool T in the X-axis direction with respect to the tool mount 2 is controlled in accordance with the magnitude of the voltage applied to the piezoelectric actuator 1. The amount of displacement of the piezoelectric actuator 1 with respect to the tool mount 2 is detected by an eddy-current displacement sensor 86 provided in the tool mount 2. A signal detected by the eddy-current displacement sensor 86 is transmitted as a position feedback signal to the piezoelectric actuator driving circuit 60 (Fig. 3). The tool mount 2 is securely mounted on a tool mount table 5. The tool mount table 5 is disposed for sliding movement in the X-axis direction with respect to the tool base 13 under the guidance of a pair of linear guides 4 provided on the opposite sides along the length of the tool base 13. An armature 83 of a linear motor 3 is securely mounted on a lower face of the tool mount table 5. A stator 84 extends in the X-axis direction through the armature 83 and is supported at the opposite ends thereof on the tool base 13 by means of a holding member 85. When the armature 83 and the stator 84 are energized, an electromagnetic force is generated between the armature 83 and the stator 84 so that the armature 83 is moved in the X-axis direction with respect to the stator 84. Upon such movement of the armature 83, the tool mount table 5 is slidably moved in the X-axis direction with respect to the tool base 13. The amount and speed of the movement of the tool mount table 5 in the X-axis direction with respect to the tool base 13 are detected by a linear encoder 87 and a frequency to voltage (F/V) converter 88 (Fig. 3) for converting an output of the linear encoder 87 from a frequency into a voltage. A signal detected by the linear encoder 87 is transmitted as a position feedback signal while a signal detected by the F/V converter 88 is transmitted as a speed feedback signal to the linear motor driving circuit 40 (Fig. 3). Referring now to Fig. 4, the absolute position of the cutting tool T is represented by the position XT of an tool end TP of the cutting tool T. Meanwhile, the position of the tool end TP which is projected by a predetermined reference length with respect to the tool mount 2 is defined as the origin (hereinafter referred to as tool origin) Ov, and a coordinate system Ov-V having an axis V parallel to the X-axis (the coordinate system will be hereinafter referred to as tool coordinate) is fixed on the tool mount 2. The position of the tool origin Ov on the X-axis (hereinafter referred to as tool origin position) is represented by Xo while the position of the tool end TP indicated on the tool coordinate Ov-V (hereinafter referred to as relative end position) is represented by Xv. Using Xo and Xv, XT is calculated in accordance with the following equation: XT = Xo + Xv (1) It is to be noted that the tool origin position Xo is controlled by the linear motor 3 while the relative end position Xv is control led by the piezoelectric actuator 1. Referring now to Figs. 1 and 3, an electric construction of the machining apparatus is shown. The machining apparatus includes a central processing unit (hereinafter referred to as " CPU") 30, a ROM 34 and a RAM 31 both connected to the CPU 30. The ROM 34 includes a control program area 341 in which a control program for controlling the machining apparatus is stored in advance while the RAM 31 includes a profile data area 312 for storing therein profile data for moving the cutting tool T back and forth in accordance with an outer profile of a workpiece W. The profile data are stored for each of the sections P A to P F of the fixed pitches P, as shown in Fig. 6. Referring now to Fig. 5, each of such profile data indicates a relative position ΔXT(ϑ) of the tool end TP which varies in a synchronized relationship with an angle ϑ of rotation of the spindle 17 with respect to a reference point PS. In particular, a relative position ΔXT(ϑ) of the tool end TP is represented by an equation given below using a movably set position (hereinafter referred to as reference position) Xs of the reference point PS on the X-axis. It is to be noted that the reference position Xs does not vary in a synchronized relationship with rotation of the spindle 17. However, the reference position Xs can vary along the Z-axis. ΔXT(ϑ) = XT(ϑ) - Xs (2) Here, the reference position Xs is controlled by the linear motor 3 while the relative position ΔXT(ϑ) is controlled by both of the linear motor 3 and the piezoelectric actuator 1. Accordingly, the relative position ΔXT(ϑ) is decomposed into a component ΔXT L (ϑ) which is controlled by the linear motor 3 and another component Δ XTp( ϑ ) which is controlled by the piezoelectric actuator 1. In particular, the following equation stands: ΔXT(ϑ) = ΔXT L (ϑ) + ΔXT P (ϑ) (3) Further, in case the position of the tool end TP is controlled in a synchronized relationship with rotation of the spindle 17, each of the positions Xo and Xv defined hereinabove makes a function of the angle ϑ of rotation, and the equation (1) given hereinabove can be rewritten as function of ϑ as can be seen from the following equation: XT(ϑ) = Xo(ϑ) + Xv(ϑ) (4) Accordingly, the following equation can be derived from the equations (2) and (4): ΔXT(ϑ) = Xo(ϑ) - Xs + Xv(ϑ) (5) The following equations can be derived from the equations (3) and (5): ΔXT L (ϑ) = Xo(ϑ) - Xs (6) ΔXT P (ϑ) = Xv(ϑ) (7) Thus, each profile data ΔXT L (ϑ) assigned to the linear motor 3 is represented by a deviation of the tool origin position Xo(ϑ) with respect to the reference position Xs. Meanwhile, each profile data ΔXT P (ϑ) assigned to the piezoelectric actuator 1 is represented by an aforementioned relative end position Xv(ϑ). Referring back to Figs. 2 and 3, such profile data as described above is transmitted from a data inputting device 33 into a predetermined area of the RAM 31 by way of an input/output interface 32. Also connected to the CPU 30 are the linear motor driving circuit 40 for driving the linear motor 3, the piezoelectric actuator driving circuit 60 for driving the piezoelectric actuator 1, the Z-axis motor driving circuit 36 for driving the Z-axis motor 18, and the spindle motor driving circuit 35 for driving the spindle motor 19. Referring particularly to Fig. 3, a detailed construction of the linear motor driving circuit 40 and the piezoelectric actuator driving circuit 60 is shown. The linear motor driving circuit 40 includes a memory controller 41 connected to the CPU 30 for controlling address designation and data to be input to or output from a profile data memory 42. As illustrated in Fig. 12, multiple storage areas are formed in the profile data memory 42. Stored in the storage areas are low frequency components of profile data (hereinafter referred to as low frequency profile data) of sections P A to P F and low frequency profile data of plural intermediate sections. As stated below, the CPU 30 calculates the low frequency profile data for each of the sections P A to P F and the low frequency profile data for each of plural intermediate sections located between selected two adjacent sections of the sections P A to P F based on the profile data of each of the sections P A to P F stored in the profile data area 312 and the CPU 30 stores the calculated low frequency profile data in the profile data memory 42 by way of the memory controller 41. As is evident from the above description, the each low frequency profile data is composed of multiple components ΔXT L (ϑ) corresponding to multiple rotary angle positions of the spindle 17. Meanwhile, the memory controller 41 receives C-axis present position data and Z-axis present position data which are output from the position counter 211 and Z-axis position counter 201, respectively. The C-axis present position data indicates the angular position of the spindle 17. As shown in Fig. 9, the memory controller 41 reads out the output of the Z-axis position counter 201 (step 300) and selects the storage area in which the low frequency profile data corresponding to the Z-axis position is stored (step 301). Then, each time the spindle 17 is rotated over a predetermined angle (for example, 0.5 degrees), the count value of the position counter 211 is updated. Each time the count value of the position counter 211 is updated, the memory controller 41 reads out a component ΔXT L (ϑ) of low frequency profile data stored in the selected memory area of the profile data memory 42 (step 302). Namely, a component ΔXT L (ϑ) stored at an address thereof corresponding to a current angular position of the spindle 17, is outputted as a parallel signal of 12 bits to a terminal A of a full adder 43 by way of the memory controller 41. The linear motor driving circuit 40 further includes an incremental movement amount pulse generator 51 also connected to the CPU 30. The incremental movement amount pulse generator 51 generates a pulse signal for varying the reference position Xs of the profile generating movement in response to an instruction from the CPU 30. The position of a maximum radius of a workpiece W is selected, for example, as the reference position Xs. Accordingly, if the workpiece W has a barrel-like shape, then the reference position Xs makes a function of the Z-coordinate. The reference position Xs of the profile generating movement can be varied arbitrarily with such pulse signal. Accordingly, the cutting tool T is caused to make profile generating movement with respect to the reference position Xs by the linear motor 3 and the piezoelectric actuator 1, and such profile generating movement can be offset by varying the reference position Xs. In other words, a workpiece W can be cut-in by varying the reference position Xs. Also, a similar shape having a different size can be machined. Further, if the reference position Xs is varied in a synchronized relationship with movement in the Z-axis direction, then a workpiece W can be machined, for example, into a conical shape having sectional shapes having a fixed profile. An incremental movement pulse signal developed from the incremental movement amount pulse generator 51 is transmitted to a 20-bit counter 47. The counter 47 decrements the current count value thereof in response to an input pulse corresponding to movement in the positive direction of the X-axis but increments the current count value thereof in response to an input pulse corresponding to movement in the negative direction of the X-axis. The output of the counter 47 is coupled to a terminal A of a 20-bit full adder 48. Thus, an output value of the counter 47 is a 20-bit parallel signal and represents an aimed control position then. Normally, a corresponding number of pulse signals is output from the incremental movement amount pulse generator 51 in order to position the tool origin position Xo to the predetermined reference position Xs. The tool origin position Xo coincides with the position of the tool end TP when the relative end position Xv is equal to zero, that is, when the piezoelectric actuator 1 remains at the origin. Then, at a point of time when the outputting of the pulse signal is completed, the output value of the 20-bit counter 47 is held at the reference position Xs. On the other hand, a feedback pulse signal of the linear encoder 87 for detecting an amount of movement of the linear motor 3 is transmitted to another 20-bit counter 46. The counter 46 increments the current count value thereof in response to an input pulse corresponding to movement in the positive direction of the X-axis but decrements the current count value thereof in response to an input pulse corresponding to movement in the negative direction of the X-axis. The output of the 20-bit counter 46 is coupled to a terminal B of the 20-bit full adder 48. An output value of the 20-bit counter 46 is a 20-bit parallel signal and represents a current position of the tool origin Ov. Accordingly, a deviation between the aimed control position and the current position is calculated by the 20-bit full adder 48 and is transmitted to a complementary number converting circuit 52 which has a function of inverting each bit of a received signal and adding " 1" to the value after such inversion. The output of the complementary number converting circuit 52 is coupled to a terminal B of the full adder 43. Accordingly, a value obtained by subtracting an output of the full adder 48 from a value received at the terminal A is outputted from the full adder 43. The output of the full adder 43 is converted into a voltage value by a digital to analog (D/A) converter 44 and transmitted to a servo amplifier 45. The servo amplifier 45 amplifies a deviation between a voltage value received from the D/A converter 44 and an output voltage of the F/V converter 88, and the linear motor 3 is driven at a speed corresponding to an output of the servo amplifier 45. Since the full adder 43 is included in a position feedback loop, the linear motor 3 is positioned to such a position that the output of the full adder 43 may be equal to zero. In particular, when no low frequency profile data ΔXT L (ϑ) is received from the terminal A of the full adder 43, the tool origin Ov is positioned to the reference position Xs which is a final aimed position to be outputted from the incremental movement amount pulse generator 51. Then, after the tool position Ov is positioned to the reference position Xs and the output of the full adder 48 is reduced to zero, outputting of the low frequency profile data ΔXT L (ϑ) from the profile data memory 42 is instructed by an instruction from the CPU 30. The low frequency profile data ΔXT L (ϑ) are transmitted to the terminal A of the full adder 43 in synchronism with rotation of the spindle 17. Then, the linear motor 3 is driven in accordance with a deviation between the two inputs to the full adder 43. Also then, a feedback pulse is developed from the linear encoder 87, and a current deviation ΔX R (ϑ) of a current position X R (ϑ) of the tool origin Xo with respect to the reference position Xs is developed from the full adder 48. The output of the full adder 43 is thus equal to ΔXT L (ϑ) - ΔX R (ϑ). Since the current position of the tool origin Ov is controlled by the linear motor 3 so that the output of the full adder 43 may be equal to zero, it is controlled followingly to a position represented by the low frequency profile data ΔXT L (ϑ) after all. Generally, the output value of the full adder 43 is given by ΔXT L (ϑ) + Xs(ϑ) - X R (ϑ) (8) Since the current position of the tool origin Ov is positioned so that the output value of the full adder 43 may be equal to zero, it follows an aimed position given by ΔXT L (ϑ) + Xs(ϑ). On the other hand, the piezoelectric actuator driving circuit 60 includes a profile data memory 62 connected to the CPU 30 by way of a memory controller 61. Constructions and functions of the memory controller 61 and profile data memory 62 of the piezoelectric actuator driving circuit 60 are similar to those of the memory controller 41 and profile data memory 42 of the linear motor driving circuit 40. The profile data memory 62 has stored therein high frequency profile data ΔXT P (ϑ) each of which represents a relative position of the tool end TP assigned to the piezoelectric actuator 1 with respect to the tool origin position Xo. High frequency profile data ΔXT P (ϑ) output from the profile data memory 62 by way of the memory controller 61 are input to a digital to analog (D/A) converter 63 and converted into an analog voltage value by the latter. The output of the D/A converter 63 is coupled to a differential amplifier 64. As illustrated in Fig. 12, multiple storage areas are formed in the profile data memory 62. Stored in the storage areas are high frequency components of profile data (hereinafter referred to as high frequency profile data) of sections P A to P F , and high frequency profile data of plural intermediate sections. As stated below, the CPU 30 calculates the high frequency profile data for each of the sections P A to P F and the high frequency profile data for each of the plural intermediate sections between selected two sections based on the profile data of each of the sections P A to P F stored in the profile data area 312, and the CPU 30 stores the calculated high frequency profile data in the profile data memory 62 by way of the memory controller 61. The each high frequency profile data is composed of multiple components ΔXT P (ϑ) corresponding to multiple rotary angle positions of the spindle 17. As shown in Fig. 9, the memory controller 61 reads in the output of the Z-axis position counter 201 and selects the storage area in which the high frequency profile data corresponding to the Z-axis position is stored. The memory controller 61 reads out the component ΔXT P (ϑ) of the high frequency profile data in the selected memory area successively in the synchronism with increment of the position counter 211 and outputs the component ΔXT P (ϑ) to the D/A converter 63. An output of a displacement sensor 86 for detecting a displacement of the piezoelectric actuator 1 is amplified by a DC amplifier 66 and then transmitted to the differential amplifier 64. An output of the DC amplifier 66 represents a current relative position XvR(ϑ) of the tool end TP with respect to the tool origin Ov. Accordingly, an output of the differential amplifier 64 has a value equal to ΔXT P (ϑ) - XvR(ϑ). Such output of the differential amplifier 64 is amplified by an amplifying circuit 65 and then applied to the piezoelectric actuator 1. Consequently, the piezoelectric actuator 1 is displaced in accordance with the voltage applied thereto so that the relative position of the tool end TP with respect to the tool origin Ov is varied. Since the differential amplifier 64 forms part of a position feedback loop, the piezoelectric actuator 1 is displaced so that the output of the differential amplifier 64 may be equal to zero. Accordingly, the current relative position XvR(ϑ) of the tool end TP with respect to the tool origin Ov follows an instructed value of the profile data ΔXT P (ϑ). A method of separating the profile data ΔXT(ϑ) into the profile data ΔXT L (ϑ) for the linear motor 3 and the profile data ΔXT P (ϑ) for the piezoelectric actuator 1 is executed by means of the fourier transformation according to the operation of the CPU 30. The profile data ΔXT(ϑ) are prepared with respect to each of sections P A to P F of constant pitches p, as shown in Fig.6 and are inputted to the profile data area 312 of the RAM 21 through the CPU 30, the input/output interface 32 and the data inputting device 33. It is to be noted that the sectional shape changes between section P A and P F , but does not change between section P F and P R . A method of creating the profile data for plural intermediate sections based on the profile data of the sections P A to P F will be described below. The operation of the CPU 30 is described with respect to the case that the profile data for plural intermediate sections are created by the proportional distribution based on the profile data of two selected sections. Fig. 7(A) and Fig. 7(B) are a flow charts illustrating the above operation of the CPU 30. Referring to Fig.7(A) and Fig.7(B), at first at step 100, a fourier transformation of the profile data of the each section P A ...P F stored in the profile data area 312 is executed to find a frequency function which is a function of a rotary angular velocity ω of the spindle 17. The section P A is given by the following expression: f(ϑ) A = a₀ + a₁cos(2ωt + ρ₁) + a₂cos(4ωt + ρ₂) + a₃cos(6ωt + ρ₃) + a₄cos(8ωt + ρ₄) + a₅cos(10ωt + ρ₅) + a₆cos(12ωt + ρ₆) The section P B is given by the following expression: f(ϑ) B = b₀ + b₁cos(2ωt + τ₁) + b₂cos(4ωt + τ₂) + b₃cos(6ωt + τ₃) + b₄cos(8ωt + τ₄) + b₅cos(10ωt + τ₅) + b₆cos(12ωt + τ₆) (ϑ = ωt) Subsequently, the sections P C to P F are given in such a manner as given by the above expressions as the frequency functions f(ϑ) C ... f(ϑ) F which are functions of ω. Then at step 101 the frequency function data of each of the sections P A ... P F are extracted and stored. In case of the section P A , the frequency function data are the coefficients representing the frequency function f(ϑ) A , namely a₀,a₁ ... a₆ and ρ₁, ρ₂ ... ρ₀. In case of the sections P B ... P F , the frequency function data are the coefficients thereof. At step 102 initialization is executed by setting an internal counter for Z-axis to zero. The internal counter is used for indicating Z-axis position Z C of the cutting tool T with respect to the Z-axis origin. Therefore, the cutting tool T is presumed to be moved from the Z-axis origin, as shown in Fig. 6. The process advances to step 103, at which it is judged whether or not a Z-axis position Z C indicated by the internal counter coinsides with the section P A . If the judgment at step 103 is No, at step 104 calculated from the frequency function data of the section P A are which is high frequency function and f L (ϑ) A = a₀ + a₁cos(2ωt + ρ₁) which is low frequency function, and inverse fourier transformations of the high and the low frequency functions are executed to obtain high frequency profile data and low frequency profile data, then the high and the low frequency profile data are stored in areas, corresponding the to Z-axis position, of the profile data memory 42 and 62, respectively. Then at step 105 Z-axis position is set at Z C =Z C +ΔZ and the process returns to step 103 and steps 104 to 105 are repeated till it is judged at step 103 that Z C =P A . In case it is judged at step 103 that Z C =P A at step 106 the high frequency functions f H (ϑ) X and f H (ϑ) X +1 and the low frequency functions f L (ϑ) X and f L (ϑ) X +1 are found from the frequency function data of the adjacent sections of the sections P A ... P F , respectively. For example, the sections P A and P B (see Fig. 6) are given by the following expressions: f L (ϑ) A = a₀ + a₁cos(2ωt + ρ₁) (11) f L (ϑ) B = b₀ + b₁cos(2ωt + τ₁) (12) The proportional distribution is executed for a difference in a term of a fixed number k, a difference in amplitude Am and a difference in a phase ph in a proportion of (movement position of the tool )/(pitch p between the sections). That is, the expressions are as follows: k = ( b₀ - a₀) x S/p A m = ( b n - a n ) x S/p (n = 1···6), and p h = (τ n - ρ n ) x S/p (n = 1···6) . According to the above expressions, the high frequency function f H (ϑ) S and the low frequency function f L (ϑ) S for an intermediate section are given by the following expressions: f L (ϑ) S = a₀ + (b₀ - a₀) x S/p + {a₁ + (b₁ - a₁) x S/P} x cos [2ωt + {ρ₁ + (τ₁ - ρ₁) x S/p}] ( S = vt ; v is movement velocity of the cutting tool T in the Z-axis direction) (ϑ = ωt) At step 107, the movement distance S of the cutting tool T from a previous section in the Z-axis direction is initialized as S=0. At step 108 the value of S is substituted for the high frequency function f H (ϑ) S and the low frequency function f L (ϑ) S , respectively. The process advances to step 109, at which the inverse fourier transformation is executed to create the high frequency profile data ΔXT P (ϑ) and the low frequency profile data ΔXT L (ϑ), which are stored in areas corresponding to the Z-axis positions of the profile data memories 42 and 62, respectively. Steps 108 to 109 are repeated while at step 111 value S is incremented by ΔZ until it is judged at step 110 that S=P (P=pitch between the selected two sections). Till it is judged at step 112 that the Z-axis position Z C of the tool corresponds with the position P F , steps 106 to 111 are repeated to creat the plural profile data for intermediate sections between the sections P A and P F . Then at step 113 the high frequency functions f H (ϑ) F and the low frequency functions f L (ϑ) F for intermediate sections between P F and P R are calculated from the frequency function data of the section P F and the inverse fourier transformation is executed to obtain low frequency profile data ΔXT L (ϑ) and the high frequency profile data ΔXT H (ϑ). These profile data are stored in the areas corresponding to the Z-axis positions of the profile data memory 42 and 62, respectively. The process advances to step 114. Until it is judged at step 114 that the Z-axis position of the cutting tool T is equal to a machining stop position, namely P R , the process of step 113 is executed after increment of Z-axis position by the predetermined amount ΔZ at step 115. In this way, the profile data for intermediate sections between the adjacent sections can be found by means of the proportional distribution. FIG. 8 is a flow chart showing the operation of CPU 30 during the machining operation . In step 200, the cutting tool T is moved to the machining start position shown in FIG. 6. In step 201, the cutting tool T is moved from the machining start position toward the workpiece W in the X-axis direction to accomplish a radial cut-in feed. Then, the process continues to step 202 wherein the CPU 30 outputs a synchronous rotation start instructions to memory controllers 41 and 61. In step 203, the CPU 30 outputs Z-axis command pulses to Z-axis motor driving circuit 36 so as to move the cutting tool T along the Z-axis to the machining stop position P R , and in step 204, the CPU 30 outputs a synchronous operation stop instructions to the memory controllers 41 and 61. After that, the CPU 30 outputs Z-axis command pulses to the Z-axis motor driving circuit 36 so as to return the cutting tool T. FIG. 9 is a flow chart showing the operation of memory controllers 41 and 61 during machining operation. When the synchronous operation start instructions are output from the CPU 30, the memory controllers 41 and 61 execute following process. In step 300, the output of Z-axis position counter 201 is read. In step 301, memory areas corresponding to the absolute position of the cutting tool T in the Z-axis are selected. In step 302, high frequency profile data and low frequency profile data corresponding to the angular position detected by position counter 211 are respectively read from the selected memory areas of the profile data memories 42 and 62. The processes in the previously described steps 300 and 301 are repeated until the synchronous operation stop instructions are output from the CPU 30. The linear motor 3 and the piezoelectric actuator 1 are driven according to the low frequency profile data and the high frequency profile data corresponding to the Z-axis position of the tool in combination so that the cutting tool T is moved along Z-axis with back and forth movement in X-axis direction. Then, according to change in the Z-axis position of the cutting tool T, the different low and the high frequency profile data are selected successively, thereby moving the cutting tool T. Thus, a piston whose sectional profile varys with respect to the axial position is machined. Next, the creation of the intermediate profile data between sections by spline interpolation using mix function is described hereinafter. Spline interpolation by mix function is characterized by: (1) generating interpolation formula connecting four continuous points in a single group, and using area between two center points; (2) Always passing the given points; (3) secondary derivatives are consistent at data points (given as data points). The interpolation method seeks mix function passing four continuous points (X n-1 , Y n-1 ), (X n , Y n ) , (X n+1 , Y n+1 ), (X n+2 , Y n+2 ), joining points [n] and [n+1], then, seeking the mix function passing four points [n], [n+1], [n+2] and [n+3], and joining points [n+1] and [n+2]. Thus, successive data points are interpolated, and the mix functions are defined as using a parameter [u] as follows: x=-u(u-1)(u-2)x₀/6+(u+1)(u-1)(u-2)x₁/2 -(u+1)u(u-2)x₂/2+(u+1)u(u-1)x₃/6 (13) y=u(u-1)(u-2)y₀/6+(u+1)(u-1)(u-2)y₁/2 -(u+1)u(u-2)y₂/2+(u+1)u(u-1)y₃/6 (14) When the four points X n-1 , X n , X n+1 , X n+2 are substituted for the successive values X₀, X₁, X₂ and X₃ in the aforesaid equation (13), the values are sought in the cases of [u]=0 and 1, X(0)=X n and X(1)=X n+1 . Similarly, in equation (14), the values when [u]=0 and 1 are Y(0)=Y n and Y(1)=Y n+1 . The aforesaid values represent the respective data points (X n , Y n ) and (X n+1 , y n+1 ). The X and Y values obtained by changing the parameter [u] between 0 and 1 are the data actually used. The interval between adjoined data points is normalized at 1 using the [u] parameter. FIG. 11(A) and FIG.11(B) are flow charts showing the operation of the CPU 30 when profile data of intermediate sections are created by the previously described technique of spline interpolation. First, in step 400, profile data of sections P A through P F , which are stored in the RAM 31, are subjected to fourier transformation, and the respective frequency functions are sought that are functions of angular rotational speed ω of the spindle 17. The section P A is expressed as f(ϑ) A =a₀+a₁cos(2ωt + ρ₁) +a₂cos(4ωt + ρ₂) + a₃cos(6ωt + ρ₃) +a₄cos(8ωt + ρ₄) + a₅cos(10ωt + ρ₅) + a₆cos(12ωt + ρ₆) and the section P B is expressed as f(ϑ) B = b₀ + b₁cos(2ωt + τ₁) + b₂cos(4ωt + τ₂) + b₃cos(6ωt + τ₃) + b₄cos(8ωt + τ₄) + b₅cos(10ωt + τ₅) + b₆cos(12ωt + τ₆) (where ϑ = ωt ). Similarly, sections P C through P F are expressed as frequency functions f(ϑ) C through f(ϑ) F , which are functions of ω. Next, in step 401, the frequency function data for each section P A through P F are derived and stored in memory. The frequency function data, for example relative to section P A , are the coefficients a₀, a₁...a₆, ρ₁, ρ₂...ρ₆ expressing the frequency function f(ϑ) A . The sections P A through P F are similarly treated. In step 402, the internal counter indicating Z-axis position Z C is initially set to zero. The process continues to step 403 where a determination is made as to whether or not the Z-axis position Z C indicated by the internal counter coinsides with the Z-axis position of section P A position. If the result of the check in step 403 is NO, the process continues to step 404 and the high-frequency function and the low frequency function f L (ϑ) A = a₀ + a K cos(2ωt + ρ₁) are calculated from the frequency function data of the aforesaid section P A , and the results are subjected to inverse-fourier transformation to obtain the high and low frequency profile data which are then stored in profile data memories 42 and 62 in the areas corresponding to the Z-axis position. Then, in step 405, Z C is set to Z C =Z C +ΔZ , and steps 404 and 405 are repeated until the Z-axis position Z C coinsides with that of section P A , whereupon the process returns to step 403. When the check in step 403 determines that Z C =P A , a determination is made in step 406 as to whether or not the Z-axis position Z C indicated by the counter reaches the Z-axis position of the section P B . If the relation is not satisfied, the process continues to step 407 where frequency data are read for four individual section P A through P D , and thereafter the process continues to step 411 which is described later. If Z C ≧ P B in step 406, a check is made in step 408 to determine if Z C ≧ P E , and if Z C ≧ P E , does not obtain, the process continues to step 409 where the frequency function data are read for four individual sections P C through P F , and the process then continues to step 411. If the check in step 408 determines that Z C ≧ P E , then in step 410 the frequency function data are read for four sections including one section located before the current Z-axis position and two sections located after the current position, the process of step 411 thereafter is executed. In step 411, the constant term K, amplitude AM and phase PH derived from the frequency function data read in the aforesaid steps 407, 409 and 410 are used to derive interpolations fK, fAM and fPH through the previously mentioned mix functions. The sections P A through P D are described in detail hereinafter. The high and low frequency functions expressing each section P A through P D are: f L (ϑ) A = a₀ + a₁cos(2ωt+ρ₁) f L (ϑ) B = b₀ + b₁cos(2ωt+τ₁) f L (ϑ) C = c₀ + c₁cos(2ωt+₁) f L (ϑ) D = d₀ + d₁cos(2ωt+η₁) Interpolations are made using mix functions for each of the profile data of constant item K, amplitude AM and phase PH of sections P A through P D . Interpolation function fK for constant item K becomes fK=-u(u-1)(u-2)a₀/6+(u+1)(u-1)(u-2)b₀/2 -(u+1)u(u-2)c₀/2+(u+1)u(u-1)d₀/6 and the interpolation function fAM for amplitude AM becomes fAM=-u(u-1)(u-2)a n /6+(u+1)(u-1)(u-2)b n /2 -(u+1)u(u-2)c n /6+(u+1)u(u-1)d n /2 (where n is an integer 1 through 6), and the interpolation function fPH for phase PH becomes fPH=-u(u-1)(u-2)ρ n /6+(u+1)(u-1)(u-2)τ n /2 -(u+1)u(u-2) n /6+(u+1)u(u-1)η n /2 (where n is an integer 1 through 6). In step 412, the movement amount [S] from the previous section in the Z-axis direction is initially set to zero, and in step 413, the parameter [u] corresponding to the [S] value is calculated using following equation: U=S/P (P:Pitch of sections). The calculated parameter [u] is substituted in the interpolation functions fK, fAM and fPH. When P A <Z C ≦ P B , parameter [u] is set at u=u-1, and when P E <Z C ≦ P F , parameter [u] is set at u=u+1. Next, in step 414, the high-frequency functions f H (ϑ) S and low frequency functions f L (ϑ) S for an intermediate section are determined as described hereinafter. f L (ϑ) S =(-U₀a₀+U₁b₀-U₂c₀+U₃d₀) +(-U₀a₁+U₁b₁-U₂c₁+U₃d₁)cos{2ωt +(-U₀ρ₁+U₁τ₁-U₂₁+U₃η₁)} where U₀=u(u-1)(u-2)/6 U₁=(u+1)(u-1)(u-2)/2 U₂=(u+1)u(u-2)/2 U₃=(u+1)u(u-1)/6 In step 415, the high-frequency function f H (ϑ) S and the low-frequency function f L (ϑ) S derived in step 414 are subjected to inverse fourier transformation, the high-frequency profile data and the low-frequency profile data are created for the intermediate section, and the profile data are stored in areas of profile data memories 42 and 62. Until a determination is made that S=P (P= the pitch between specified sections) in step 416, S is set at S=S+ ΔZ in step 417, and steps 413 through 415 are repeated until the value S=P is reached. Until a determination is made that the present position in the Z-axis direction reaches the position P F in step 418, the previously described steps 408 through 417 are repeated, and intermediate profile data are created corresponding to plural intermediate sections between the section P A and P F . In step 419, the high-frequency function f H (ϑ) F and the low-frequency function f L (ϑ) F are calculated from the frequency function data for section P F , then subjected to inverse-fourier transformation, and the profile data are stored in profile data memories 42 and 62 corresponding to the Z-axis position. The process continues to step 420. Until a determination is made that Z C =P R (P R = the machining stop position) in step 420, Z C is set at Z C =Z C + ΔZ in step 421, and processing continues in step 420. Accordingly, the transient profile data for plural intermediate sections after section P F is determined by the technique of spline interpolation. The operation of the CPU 30 during the machining operation based on the profile data determined by the spline interpolation technique is identical to that of the previously described first embodiment.

Claims: An apparatus for machining a non-circular workpiece wherein a workpiece (W) is rotated at an angular velocity (ω) and a cutting tool (T) is moved in a direction perpendicular to the rotational axis of the workpiece (W) and a direction parallel to the rotational axis in a synchronized relationship with the rotation of the workpiece (W) so that the workpiece (W) may be machined into a non-circular shape whose sectional shape changes with respect to its axial position, characterized by a first data storage means (312) for storing therein non-circular profile data of plural sections (P A to P F ) perpendicular to the rotational axis of the workpiece, a data transformation means (41) for transforming the stored non-circular profile data into a frequency function of 1 to n degree which is a function of said angular velocity (ω), a calculation means (30) for finding an amplitude and a phase of each degree of frequency function for each of plural intermediate section by means of an interpolation according to a position between selected sections (P A to P F ) based on the amplitude and the phase of the each degree of the frequency function of each of the selected sections and for separating the frequency function of the intermediate sections into low frequency functions and high frequency functions, a data inverse transformation means (30) for transforming inversely the high frequency function and the low frequency function calculated by said calculation means (30) to create high frequency profile data and low frequency profile data, a first driving system (60) driven in accordance with the high frequency profile data and, a second driving system (40) driven in accordance with the low frequency profile data, wherein said second driving system (40) is moving said first driving system (60) and the first driving system (60) is moving the cutting tool (T). The apparatus as claimed in claim 1, characterized in that said second driving system (40) driven in accordance with the low frequency profile data includes a linear motor (3) while the first driving system (60) driven in accordance with the high frequency profile data includes a piezoelectric actuator (1). The apparatus as claimed in claim 1, characterized by a second data storage means for storing therein the high frequency profile data and the low frequency profile data created by said data inverse transformation means (30), and said second data storage means includes a first memory (42) for storing therein low frequency profile data which define position change of said tool (T) by said linear motor (3) in the direction perpendicular to the rotational axis of the workpiece (W) with regard to an angle of rotation of the workpiece (W), a first memory controller (41) for successively outputting the low frequency profile data stored in said first memory (42) as target control values for said linear motor (3) in a synchronized relationship with rotation of the workpiece (W), a second memory (62) for storing therein high frequency profile data which define position change of said tool (T) by said piezoelectric actuator (1) in the direction perpendicular to the axis of said workpiece (W) with regard to an angle of rotation of the workpiece (W), and a second memory controller (61) for successively outputting the high frequency profile data stored in said second memory (62) as target control values for said piezoelectric actuator (1) in a synchronized relationship with rotation of the workpiece (W). The apparatus as claimed in claim 1, characterized in that said interpolation used in said calculation means (30) is proportional distribution. The apparatus as claimed in claim 1, characterized in that said interpolation used in said calculation means (30) is spline interpolation.

Inventors: HORI NOBUMITSU, SAKAKIBARA NORIO, SUGITA KAZUHIKO, YAMAKAWA YOUICHI, HORI, NOBUMITSU, SAKAKIBARA, NORIO, SUGITA, KAZUHIKO, YAMAKAWA, YOUICHI
Applicants: TOYODA MACHINE WORKS LTD, TOYODA KOKI KABUSHIKI KAISHA
Application year: 1990
Main classification: B23Q33
IPC codes: G05B19, B23B5, B23Q1, B23Q15, B23Q33