WO2024013955A1 - 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法 - Google Patents

数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法 Download PDF

Info

Publication number
WO2024013955A1
WO2024013955A1 PCT/JP2022/027773 JP2022027773W WO2024013955A1 WO 2024013955 A1 WO2024013955 A1 WO 2024013955A1 JP 2022027773 W JP2022027773 W JP 2022027773W WO 2024013955 A1 WO2024013955 A1 WO 2024013955A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
machining
correction amount
axis
tool
Prior art date
Application number
PCT/JP2022/027773
Other languages
English (en)
French (fr)
Inventor
智哉 藤田
剛史 久保
弘之 木下
淳二 松野
浩平 日比野
拓也 平尾
晃 井関
Original Assignee
三菱電機株式会社
ヤマザキマザック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社, ヤマザキマザック株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2022/027773 priority Critical patent/WO2024013955A1/ja
Priority to JP2022569153A priority patent/JP7278507B1/ja
Publication of WO2024013955A1 publication Critical patent/WO2024013955A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback

Definitions

  • the present disclosure relates to a numerical control device that controls a numerically controlled machine tool, a numerically controlled machine tool, a machining program generation device, and a machining program generation method.
  • a machine tool is a mechanical device that drives an axis according to a machining program and performs machining to obtain a desired shape.
  • a machine tool that performs removal processing processes a material into a desired shape by removing unnecessary parts of the material.
  • Various tools such as a drill, a milling cutter, an end mill, a grinding wheel, a turning tool, a discharge wire or a discharge electrode, or a laser beam are used to remove the material.
  • Such machine tools use a motor and a detector attached to the shaft to perform feedback control to match the trajectory of the tool with the trajectory specified in the machining program.
  • machining errors will occur. Even when the axis is driven according to the command, the mechanical structure of the machine tool is elastically deformed, resulting in machining errors due to the tool digging into the machined surface and removing too much material, or the tool lifting from the machined surface and leaving material behind. Processing errors may occur due to Elastic deformation of a mechanical structure can be caused by inertial force accompanying acceleration and deceleration of a shaft. Due to the occurrence of such machining errors, visually visible machining marks are generated on the surface of the workpiece, and the workpiece may be determined to be defective in the visual inspection of the workpiece. Since such machining errors cannot be detected depending on the mounting position of the detector, it may not be possible to reduce the machining errors with normal feedback control. To address these problems, a technique has been proposed that predicts machining errors based on axis acceleration and corrects commands.
  • Patent Document 1 discloses that when a machining error occurs in a direction different from the movement direction of the mechanical structure due to the drive of an axis, a correction amount is obtained by multiplying the acceleration of the driven axis by a gain, and a position command of the axis to be corrected is calculated.
  • a motor control device that corrects the above based on a correction amount is disclosed.
  • Patent Document 1 the direction in which a machining error occurs may not match the direction of movement of the mechanical structure. In this case, it becomes difficult for the motor control device to perform correction to reduce machining errors. As described above, the technique disclosed in Patent Document 1 has a problem in that it may be difficult to reduce machining errors caused by deformation of the mechanical structure.
  • the present disclosure has been made in view of the above, and an object of the present disclosure is to obtain a numerical control device that makes it possible to reduce machining errors caused by deformation of a mechanical structure.
  • a numerical control device includes a drive mechanism provided for each of a plurality of axes and a mechanical structure that moves by the power transmitted from the drive mechanism.
  • This is a numerical control device that controls a numerically controlled machine tool that processes a workpiece using tools attached to the machine structure.
  • the numerical control device is a model that simulates the deformation of a mechanical structure due to the movement of the mechanical structure in each axis direction, which is the direction of each of a plurality of axes, and includes a tool in each axis direction due to the deformation of the mechanical structure.
  • a machining error estimation unit that estimates a certain error direction and an error amount in the error direction and outputs machining error information indicating the estimated error direction and the estimated error amount; and one or more axes to be corrected.
  • a correction amount calculation unit that selects a correction amount based on machining error information and calculates a correction amount used to correct a command output to a drive mechanism for the selected axis.
  • the numerical control device has the effect of reducing processing errors caused by deformation of the mechanical structure.
  • a diagram for explaining an example of the mechanism of machining error occurrence in Embodiment 1 A diagram for explaining a first example of the relationship between deformation of the mechanical structure and machining error in Embodiment 1
  • a diagram for explaining a second example of the relationship between deformation of the mechanical structure and machining error in Embodiment 1 A diagram illustrating a configuration example of a numerical control device included in a numerically controlled machine tool according to Embodiment 1.
  • a diagram for explaining an example of machining by the numerically controlled machine tool according to the first embodiment A diagram for explaining an example of calculating a machining error by a machining error estimating unit included in the numerical control device shown in FIG. 6.
  • Flowchart showing the operation procedure of the numerical control device included in the numerically controlled machine tool according to the first embodiment A diagram showing a configuration example of a correction amount calculation section included in a correction amount calculation section of the numerical control device according to the second embodiment.
  • a diagram for explaining an example of calculation of the correction amount by the correction amount calculation unit shown in FIG. 11 A diagram showing a configuration example of a correction amount calculation unit included in the numerical control device according to Embodiment 3.
  • Diagram for explaining an example of machining by the numerically controlled machine tool according to the third embodiment A diagram showing a configuration example of a correction amount calculation section included in the correction amount calculation section shown in FIG. 13 A diagram for explaining an example of calculation of the correction amount by the correction amount calculation unit shown in FIG. 15 A diagram showing a configuration example of a numerically controlled machine tool according to Embodiment 4 A diagram for explaining an example of calculation of machining error by the numerical control device of the numerically controlled machine tool according to the fourth embodiment.
  • a diagram showing a configuration example of a machining program generation device according to a fifth embodiment Flowchart showing the operation procedure of the machining program generation device according to the fifth embodiment A diagram for explaining a first example of a machining program generated by the machining program generation device according to the fifth embodiment.
  • a diagram showing a configuration example of a numerical control device according to a sixth embodiment A diagram showing a configuration example of a machine learning device included in a numerical control device according to a sixth embodiment
  • FIG. 1 is a diagram showing an example of the configuration of a numerically controlled machine tool 99a according to the first embodiment.
  • the numerically controlled machine tool 99a is a machine tool that drives axes according to a machining program.
  • the numerically controlled machine tool 99a is a 5-axis controlled machining center.
  • the numerically controlled machine tool 99a has an X-axis drive section 93X, a V-axis drive section 93V, a Y-axis drive section 93Y, a Z-axis drive section 93Z, a B-axis drive section 93B, a C-axis drive section 93C, and a main shaft.
  • 83 is a diagram showing an example of the configuration of a numerically controlled machine tool 99a according to the first embodiment.
  • the numerically controlled machine tool 99a is a machine tool that drives axes according to a machining program.
  • the numerically controlled machine tool 99a is a 5-axis controlled machining center.
  • the X-axis drive section 93X and the V-axis drive section 93V drive the Y-axis drive section 93Y in the X direction.
  • the Y-axis drive section 93Y drives the Z-axis drive section 93Z in the Y direction.
  • the Z-axis drive section 93Z drives the main shaft 83 in the Z direction.
  • the main shaft 83 rotates the tool 76.
  • a workpiece 78 to be processed is placed on a work table 77.
  • the C-axis drive unit 93C rotates the work table 77 around the Z-axis.
  • the B-axis drive section 93B rotates the C-axis drive section 93C around the Y-axis.
  • the numerically controlled machine tool 99a moves the main shaft 83 by an X-axis drive section 93X, a V-axis drive section 93V, a Y-axis drive section 93Y, and a Z-axis drive section 93Z, and also moves a B-axis drive section 93B and a C-axis drive section 93C.
  • the numerically controlled machine tool 99a rotates the tool 76 while relatively moving the tool 76 and the workpiece 78, thereby cutting the surface of the workpiece 78.
  • the numerically controlled machine tool 99a processes the workpiece 78 into a desired shape by removing unnecessary parts from the workpiece 78.
  • the work performed by the numerically controlled machine tool 99a is to drive each axis according to the machining program and realize the machined shape of the workpiece 78 by cutting.
  • the success or failure of machining by the numerically controlled machine tool 99a depends on whether the machining shape of the workpiece 78 achieves a predetermined standard, specifically, whether the shape accuracy and surface accuracy as designed in advance are achieved. It will be judged.
  • Each of the X-axis drive section 93X, V-axis drive section 93V, Y-axis drive section 93Y, and Z-axis drive section 93Z causes the driven section to move in a straight line.
  • Each of the X-axis, Y-axis, Z-axis, and V-axis is a linear axis.
  • the rotational motion of the motor 71 which is an actuator, is converted by the feed screw 73 into a linear motion in the drive direction of each linear axis.
  • Each of the B-axis drive section 93B and the C-axis drive section 93C rotates a driven section.
  • Each of the B-axis and C-axis is a rotation axis.
  • the rotational motion of the motor 71 is transmitted to a driven section using a speed reducer such as a gear.
  • a linear guide mechanism 72 supports a driven section that is caused to move linearly.
  • a driven section to be rotated is supported by a bearing.
  • the movement of the tool 76 in the three-dimensional space of XYZ that is, the movement of the tool 76 with three degrees of freedom
  • the linear axes that are the X, Y, Z, and V axes.
  • the movement of the workpiece 78 with two degrees of freedom is realized by the rotation axes, which are the B-axis and the C-axis.
  • the numerically controlled machine tool 99a achieves a total of five degrees of freedom of movement.
  • the X-axis drive section 93X, the V-axis drive section 93V, the Y-axis drive section 93Y, the Z-axis drive section 93Z, the B-axis drive section 93B, and the C-axis drive section 93C which are the drive sections that constitute the numerically controlled machine tool 99a.
  • the configuration of the drive section will be explained using the X-axis drive section 93X as an example.
  • Each configuration of the V-axis drive section 93V, the Y-axis drive section 93Y, and the Z-axis drive section 93Z is the same as that of the X-axis drive section 93X.
  • the configurations of the B-axis drive section 93B and the C-axis drive section 93C are similar to the X-axis drive section 93X, except for the difference between linear motion and rotational motion.
  • FIG. 2 is a schematic diagram for explaining the configuration of an X-axis drive section 93X, which is an axis drive section that constitutes the numerically controlled machine tool 99a according to the first embodiment.
  • the numerically controlled machine tool 99a includes a numerical control device 1a that controls the numerically controlled machine tool 99a, a servo control section 6, and a mechanical device section 96.
  • the mechanical device section 96 has a drive mechanism 97 and a mechanical structure 98.
  • the servo control section 6 shown in FIG. 2 and the drive mechanism 97 shown in FIG. 2 constitute an X-axis drive section 93X.
  • the mechanical structure 98 is a driven section driven by the X-axis drive section 93X. Mechanical structure 98 moves by power transmitted from drive mechanism 97 .
  • the numerically controlled machine tool 99a processes a workpiece 78 using a tool 76 attached to the machine structure 98.
  • the drive mechanism 97 plays the role of converting the rotational motion of the X-axis motor 71 into linear motion and the role of supporting the configuration for such conversion.
  • the rotational motion of the motor 71 is transmitted to the feed screw 73 via the coupling 74, and converted to linear motion via the nut 80 and the speed reducer 79.
  • the linear motion of the feed screw 73 is restrained by support bearings 75a and 75b.
  • the linear movement of the nut 80 drives the tool 76 in the X direction together with the support 90 that supports the X axis.
  • the support body 90 is a general term for the Z axis interposed between the tool 76 and the nut 80 and the structure for support.
  • a drive mechanism 97 is provided for each of the plurality of axes.
  • Each axis drive section, the V-axis drive section 93V, the Y-axis drive section 93Y, and the Z-axis drive section 93Z, has the same configuration as the X-axis drive section 93X.
  • the range of the mechanical structure 98 varies depending on the axis.
  • the Z-axis drive mechanism 97 is included in the X-axis mechanical structure 98 because it has no role in converting the motion of the X-axis motor 71 when viewed from the X-axis.
  • Each shaft drive section of the B-axis drive section 93B and the C-axis drive section 93C has a worm gear mechanism instead of the feed screw 73 that reduces rotational motion.
  • each of the B-axis drive section 93B and the C-axis drive section 93C has a bearing that supports a rotating driven section instead of the linear guide mechanism 72.
  • the numerical control device 1a controls the mechanical device section 96.
  • the numerical control device 1a outputs an X-axis position command Xc to the servo control section 6.
  • the position command Xc indicates the position calculated by the numerical control device 1a according to the machining program, and indicates the position of the driven part in a desired control state.
  • the position feedback Xd is position data obtained by multiplying the rotation angle of the motor 71 detected by the rotation angle detector 82 attached to the motor 71 by the thread pitch of the feed screw 73.
  • the position feedback Xd is input to the numerical control device 1a via the servo control section 6.
  • the numerical control device 1a performs feedback control of the drive mechanism 97 so that the error between the position feedback Xd and the position command Xc is reduced.
  • the servo control unit 6 drives the drive mechanism 97 by outputting a motor current Ix to the motor 71 according to the position command Xc.
  • a mechanical structure 98 including a tool 76 to be controlled is connected to the
  • the servo control unit 6 performs feedback control to match the position feedback Xd with the position command Xc. However, even if feedback control is performed, an error may occur between the tip position of the tool 76 and the machining point of the workpiece 78 during machining, resulting in uncut or overcut material on the workpiece 78. Processing errors may occur.
  • FIG. 3 is a diagram for explaining an example of the mechanism of occurrence of processing errors in the first embodiment.
  • FIG. 3 shows machining errors that are caused by deformation of the support body 90 due to the movement of the X-axis drive unit 93X, and that cannot be handled by feedback control.
  • the mechanical structure 98 in an ideal state with no deformation is shown by broken lines.
  • the driving force of the motor 71 is transmitted to the support body 90 via the feed screw 73. If the rigidity of the support body 90 is not sufficient, the drive force of the motor 71 is transmitted to the support body 90, thereby deforming the support body 90. This deformation causes the tool 76 to be displaced in the Z direction.
  • the rotation angle detector 82 of the X-axis drive section 93X can detect errors of the X-axis drive section 93X that occur in the X direction, but cannot detect errors that occur in the Z direction. Furthermore, since this deformation occurs outside the Z-axis drive section 93Z, it cannot be detected by the rotation angle detector 82 of the Z-axis drive section 93Z.
  • FIG. 4 is a diagram for explaining a first example of the relationship between deformation of the mechanical structure 98 and processing error in the first embodiment.
  • FIG. 4 shows an example in which machining is performed using a cylindrical tool 76 called a straight end mill, with the main shaft 83 moving in the X direction. The direction of movement 21 of the tool 76 is the X direction.
  • a machining error shape 20 shown in FIG. 4 is an example of a machining error shape that occurs when the X-axis drive section 93X is decelerated at the deceleration position shown in FIG. FIG.
  • FIG. 4 shows the XY plane shape of the machining error shape 20 when the machining error shape 20 is viewed from the Z direction, and the XZ cross section of the machining error shape 20 when the machining error shape 20 is cut along the line AA'. shows. Furthermore, for reference, FIG. 4 schematically shows a change in shape of the mechanical structure 98 when the main shaft 83 is moved in the X direction.
  • the mechanical structure 98 is deformed so as to be tilted rearward in the movement direction 21 due to the inertia force accompanying the deceleration of the X-axis drive unit 93X.
  • the deformation of the mechanical structure 98 causes the tool 76 to sink into the workpiece 78.
  • the surface of the workpiece 78 is scraped off more than necessary. Therefore, a machining error shape 20 that is more depressed than the surrounding area is formed at the position where the X-axis drive unit 93X has decelerated.
  • the XY plane shape of the machining error shape 20 is a circle with the same diameter as the outer diameter of the tool 76.
  • FIG. 5 is a diagram for explaining a second example of the relationship between deformation of the mechanical structure 98 and processing error in the first embodiment.
  • FIG. 5 also shows an example in which machining is performed using the tool 76, which is a straight end mill, while the main shaft 83 moves in the X direction.
  • the direction of movement 21 of the tool 76 is the X direction.
  • a machining error shape 20 shown in FIG. 5 is an example of a machining error shape that occurs when the X-axis drive section 93X is accelerated at the acceleration position shown in FIG. FIG.
  • FIG. 5 shows the XY plane shape of the machining error shape 20 when the machining error shape 20 is viewed from the Z direction, and the XZ cross section of the machining error shape 20 when the machining error shape 20 is cut along the line AA'. shows. Furthermore, for reference, FIG. 5 schematically shows changes in the posture of the mechanical structure 98 when the main shaft 83 is moved in the X direction.
  • the mechanical structure 98 is deformed so as to be tilted forward in the movement direction 21 due to the inertial force accompanying the acceleration of the X-axis drive unit 93X.
  • the deformation of the mechanical structure 98 causes the tool 76 to lift off the workpiece 78.
  • the surface of the workpiece 78 is left uncut. Therefore, a machining error shape 20 that protrudes from the surroundings is formed at the position where the X-axis drive unit 93X has accelerated.
  • the XY plane shape of the machining error shape 20 is a circle with the same diameter as the outer diameter of the tool 76.
  • FIGS. 3 to 5 changes in the shape of the mechanical structure 98 are emphasized in order to clearly explain the mechanism of occurrence of machining errors.
  • the size of the shape change that occurs during actual machining is, for example, about 100 micrometers or less for a numerically controlled machine tool 99a that processes metal, and about several micrometers or less for a high-precision numerically controlled machine tool 99a. It is difficult to visually confirm the change in the posture of the mechanical structure 98 at the moment when a machining error occurs. However, in the case of a metal machined surface, even if the process error is only a few micrometers, the reflection and interference of light change, so the process error is not perceived by the human eye as a noticeable feature of the machined surface. Ru.
  • the quality of the machined surface as seen by the human eye may be judged to be insufficient, and it may be considered a processing defect. If a defect in the machined surface quality occurs, it is not preferable because the machining must be redone and the defective workpiece 78 must be discarded. Examples of such machining errors that characterize the appearance of the machined surface include striped patterns caused by vibrations of the mechanical structure 98 or streaked patterns caused by quadrant protrusions caused by friction.
  • 3 to 5 show examples of machining errors caused by acceleration and deceleration when the motion direction 21 is the X direction.
  • machining errors occur due to deformation of the mechanical structure 98 by the same mechanism as when the movement direction 21 is the X direction.
  • FIG. 6 is a diagram showing a configuration example of the numerical control device 1a included in the numerically controlled machine tool 99a according to the first embodiment.
  • FIG. 6 shows the numerical control device 1a and the servo control section 6.
  • a machining program created by computer aided manufacturing (CAM) software or an interactive program creation device is input to the numerical control device 1a.
  • the numerical control device 1a includes a machining program input unit 10 that receives a machining program, a command value generation unit 11 that generates command values that are position commands for each axis, a machining error estimation unit 12 that estimates machining errors, and a machine model. , a correction amount calculation section 14a that calculates a correction amount, and a command value output section 15 that outputs a command value that is a position command for each axis.
  • the machining program input unit 10 outputs the received machining program to the command value generation unit 11.
  • the command value generation unit 11 calculates position commands for each axis based on the machining program.
  • the command value generation section 11 outputs position commands for each axis to the machining error estimation section 12 and the command value output section 15, respectively.
  • the mechanical model is a model that simulates the deformation of the mechanical structure 98 due to the movement of the mechanical structure 98 in each axis direction, which is the direction of each of a plurality of axes, and is a model that simulates the deformation of the mechanical structure 98 due to the movement of the mechanical structure 98 in each axis direction, which is the direction of each of a plurality of axes.
  • the machining error estimating unit 12 reads the machine model from the model holding unit 13.
  • the servo control unit 6 outputs position feedback for each axis to the machining error estimation unit 12.
  • the machining error estimating unit 12 estimates the error direction, which is the direction in which the tool 76 is displaced, and the error amount in the error direction, based on the axis data and the machine model, and calculates the estimated error direction and the error amount in the error direction. Processing error information indicating the estimated error amount is output.
  • the axis data is data regarding the drive of the drive mechanism 97.
  • the axis data is data of one or more of a speed command for each axis, an acceleration command for each axis, and a speed or acceleration that is a state quantity of the drive mechanism 97 for each axis.
  • the machining error estimation section 12 outputs machining error information to the correction amount calculation section 14a.
  • the correction amount calculation unit 14a reads the machine model from the model holding unit 13. The correction amount calculation unit 14a selects one or more axes to be corrected based on the machining error information and the machine model. The correction amount calculation unit 14a calculates a correction amount used to correct the command output to the drive mechanism 97 for the selected axis. The correction amount calculation unit 14a outputs information on the correction amount of each axis to the command value output unit 15. The command value output unit 15 corrects the position command for each axis based on the correction amount. The command value output section 15 outputs corrected position commands for each axis to the servo control section 6.
  • FIG. 7 is a diagram for explaining an example of machining by the numerically controlled machine tool 99a according to the first embodiment.
  • FIG. 7 schematically shows the machining process when a simple linear machining path is described in the machining program.
  • the dashed arrow shown in FIG. 7 represents the locus of the tip of the tool 76.
  • FIG. 7 shows a solid line arrow representing the X direction and a solid line arrow representing the Z direction.
  • the direction pointed to by the solid arrow representing the Z direction is referred to as the plus Z direction, and the direction opposite to the plus Z direction is referred to as the minus Z direction.
  • the direction pointed by the solid arrow representing the X direction is referred to as the plus X direction, and the direction opposite to the plus X direction is referred to as the minus X direction.
  • the numerically controlled machine tool 99a starts the rotation of the tool 76 at position P1, which is the program start position.
  • the numerically controlled machine tool 99a moves the tool 76 in the minus Z direction by driving the Z-axis drive section 93Z.
  • the numerically controlled machine tool 99a moves the tool 76 to the processing surface that is the upper surface of the workpiece 78.
  • the numerically controlled machine tool 99a moves the tool 76 in the plus X direction on the machining surface by driving the X-axis drive section 93X.
  • the numerically controlled machine tool 99a accelerates the X-axis drive section 93X, and then decelerates the X-axis drive section 93X.
  • the numerically controlled machine tool 99a stops the X-axis drive section 93X.
  • the numerically controlled machine tool 99a moves the tool 76 in the plus Z direction by driving the Z-axis drive section 93Z.
  • the numerically controlled machine tool 99a separates the tool 76 from the processing surface.
  • the numerically controlled machine tool 99a stops the rotation of the tool 76 at position P3, which is the program end position, and finishes machining the workpiece 78.
  • the mechanical structure 98 is deformed at the position where the X-axis drive unit 93X is decelerated.
  • FIG. 8 is a diagram for explaining an example of calculating a machining error by the machining error estimation unit 12 included in the numerical control device 1a shown in FIG.
  • FIG. 8 schematically shows how machining errors occur due to deceleration of the X-axis drive section 93X in the machining shown in FIG.
  • the mechanical structure 98 which is the driven part of the X-axis drive section 93X, is deformed so as to tilt rearward in the direction of movement due to the inertia force accompanying the deceleration of the X-axis drive section 93X.
  • the arrow 23 shown in FIG. 8 represents the direction of the inertial force applied to the mechanical structure 98 when the mechanical structure 98 moves in the plus X direction.
  • the deformation of the mechanical structure 98 causes the tool 76 to dig into the workpiece 78 more than necessary.
  • the numerically controlled machine tool 99a when the tool 76 bites into the workpiece 78, a machining error occurs in which the workpiece 78 is cut too much.
  • the tool 76 is shown by a broken line when the mechanical structure 98 is in an ideal state with no deformation.
  • the amount of deformation of the mechanical structure 98 in each of the linear axes X, Y, and Z axes is determined by substituting the axis data of the X-axis drive mechanism 97 into the mechanical model.
  • a mechanical model for calculating the amount of error in each axis direction caused by driving the X-axis drive unit 93X can be described by a transfer function as shown in the following equations (1), (2), and (3).
  • Equations (1), (2), and (3) are mechanical models that simulate the deformation of the mechanical structure 98 as the mechanical structure 98 moves in the X direction.
  • Err xx (s) shown in equation (1) represents the amount of displacement of the tool 76 in the X direction due to the deformation of the mechanical structure 98, that is, the amount of error in the X direction due to the deformation of the mechanical structure 98.
  • Err yx (s) shown in equation (2) represents the amount of displacement of the tool 76 in the Y direction due to the deformation of the mechanical structure 98, that is, the amount of error in the Y direction due to the deformation of the mechanical structure 98.
  • Err zx (s) shown in equation (3) represents the amount of displacement of the tool 76 in the Z direction due to the deformation of the mechanical structure 98, that is, the amount of error in the Z direction due to the deformation of the mechanical structure 98.
  • s is a Laplace operator.
  • the term with a dot symbol "•" attached above X rx (s) represents the Laplace transform of the speed command.
  • the speed command is expressed by the differentiation of the position command.
  • the term with a dot symbol ".” above X fx (s) represents the Laplace transform of the velocity feedback.
  • the speed feedback is speed data that is a state quantity of the drive mechanism 97.
  • Velocity feedback is represented by the derivative of position feedback.
  • K xx and K xz are coefficients for describing the amount of deformation of the mechanical structure 98.
  • ⁇ x1 and ⁇ x2 represent frequencies for describing the deformation of the mechanical structure 98.
  • ⁇ x1 and ⁇ x2 are damping coefficients for describing the deformation of the mechanical structure 98.
  • Equations (1) and (3) each include a speed command and speed feedback, which are axis data regarding the X-axis, as variables.
  • the amount of error is described in the frequency domain by Laplace transform.
  • the error amount can be transformed into the time domain using known methods such as the inverse Laplace transform.
  • the machining error refers to a phenomenon caused by the displacement of the tool 76 in the time domain.
  • Err xx represents the amount of error in the X direction when the mechanical structure 98 moves in the X direction.
  • Err yx represents the amount of error in the Y direction when the mechanical structure 98 moves in the X direction.
  • Err zx represents the amount of error in the Z direction when the mechanical structure 98 moves in the X direction.
  • the arrow 24 shown in FIG. 8 represents the error amount which is the sum of Err xx , Err yx and Err zx .
  • the mechanical model is not limited to those shown in equations (1), (2), and (3).
  • the mechanical model may use a state space model instead of a transfer function.
  • the machine model may be described by a time domain function.
  • acceleration commands may be used instead of velocity commands
  • acceleration feedback may be used instead of velocity feedback.
  • the acceleration feedback is acceleration data that is a state quantity of the drive mechanism 97.
  • the difference between the acceleration command and the acceleration feedback may be used in the machine model.
  • the speed data which is a state quantity
  • the acceleration data which is a state quantity, may be the result of detecting acceleration by each of the plurality of servo control units 6 of the numerically controlled machine tool 99a, or the result of detecting acceleration by each of the plurality of sensors. good.
  • K xx and K xz are arbitrary real numbers.
  • ⁇ x1 , ⁇ x2 , ⁇ x1 , ⁇ x2 are arbitrary positive real numbers.
  • the error amount is any positive real number.
  • common frequencies ⁇ x1 and ⁇ x2 in each axial direction are used as frequencies for describing the amount of deformation of a single mechanical structure 98.
  • common damping coefficients ⁇ x1 and ⁇ x2 in each axial direction are used as damping coefficients to describe the amount of deformation of a single mechanical structure 98.
  • different frequencies may be used in each axial direction, and different damping coefficients may be used in each axial direction.
  • Each of Err xx , Err yx , and Err zx takes a positive value when a machining error occurs in which the tool 76 is displaced in the plus X direction with respect to the ideal tool position.
  • Each of Err xx , Err yx , and Err zx takes a negative value when a machining error occurs in which the tool 76 is displaced in the minus X direction with respect to the ideal tool position. For example, if Err zx takes a positive value, the tool 76 will lift off the workpiece 78. If Err zx takes a negative value, the tool 76 sinks into the workpiece 78.
  • Equations (1) and (3) show an example of a machine model that includes axis data regarding the X-axis as a variable.
  • a machine model including axis data regarding the Y-axis, Z-axis, B-axis, or C-axis, which are axes other than the X-axis, as variables is also set.
  • a machine model that includes axis data for the Y-axis, Z-axis, B-axis, or C-axis as a variable also has the same axial data as a variable for the X-axis, Y-axis, and Z-axis.
  • a mechanical model representing the amount of error in the axial direction is included.
  • the numerically controlled machine tool 99a may be set with only the machine model in the axial direction in which the error is significant.
  • the numerically controlled machine tool 99a may be set with only a mechanical model that represents the amount of error regarding the movement of the mechanical structure 98 in each direction of the X-axis, Y-axis, and Z-axis, which are linear axes.
  • FIG. 9 is a diagram showing an example of the configuration of the correction amount calculating section 14a included in the numerical control device 1a shown in FIG.
  • the machining error estimation unit 12 outputs machining error information indicating an error direction, which is the direction in which the tool 76 is displaced, and an error amount in the error direction, to the correction amount calculation unit 14a.
  • the correction amount calculation section 14a reads out the machine model from the model holding section 13.
  • the correction amount calculation unit 14a includes an axis selection unit 31a that selects one or more axes to be corrected, and a correction amount calculation unit 32a that calculates a correction amount.
  • the axis selection unit 31a selects an axis to be corrected based on the machining error information and the machine model. For example, when a processing error occurs as shown in FIG. 8, the error directions are the X direction and the Z direction. In this case, machining error information indicating error directions in the X direction and Z direction and error amounts in the error directions, Err xx and Err zx , is input to the axis selection unit 31a. The axis selection unit 31a recognizes, based on the machine model, that the input machining error information is machining error information caused by the drive of the X-axis drive unit 93X.
  • Err xx is the error amount component in the direction included in the machined surface, of the error amount represented by the arrow 24.
  • Err zx is the error amount component in the direction perpendicular to the machined surface of the error amount represented by the arrow 24.
  • Err xx does not cause overcutting in the direction perpendicular to the machined surface or uncut material in the direction perpendicular to the machined surface.
  • a machining error due to an error amount component in a direction perpendicular to the machined surface causes uncut material in the direction perpendicular to the machined surface or overcut in the direction perpendicular to the machined surface, and remains as a machining defect.
  • the axis selection unit 31a selects the Z direction as the axis to be corrected from the X direction and the Z direction, which are the error directions shown in the machining error information.
  • the axis selection unit 31a selects the axis to be corrected based on the machine model and the machining error information in each axis direction.
  • the axis selection unit 31a outputs axis information indicating the selected axis to the correction amount calculation unit 32a.
  • Machining error information and axis information are input to the correction amount calculation unit 32a.
  • the correction amount calculation unit 32a calculates the correction amount for each axis indicated in the axis information based on the machining error information. In the case of the example shown in FIG. 8, the correction amount calculation unit 32a calculates the correction amount to reduce the machining error in the Z direction caused by driving the X-axis drive unit 93X, based on the axis information indicating the Z direction and the machining error information. do. That is, the correction amount calculating section 32a calculates the correction amount Zrc for correcting the movement of the driven section by the Z-axis driving section 93Z.
  • -Err zx is set as the correction amount in order to cancel Err zx by operating the driven part in the opposite direction to Err zx , which is the error amount component in the Z direction.
  • the correction amount calculation unit 32a calculates a correction amount that can cancel out the error amount estimated by the machining error estimation unit 12 for the axis selected as the correction target.
  • Correction may be delayed due to a delay due to calculation processing of the correction amount, a delay due to communication, a response delay of the servo control unit 6 of the Z-axis drive unit 93Z, or the like.
  • a correction amount that is different from the correction amount that can offset the error amount may be calculated. Assuming that the transfer function to the response of the Z-axis drive unit 93Z to the input of the position command to the servo control unit 6 of the Z-axis drive unit 93Z is G zm (s), the correction amount calculation unit 32a calculates the inverse transfer function of the control system.
  • a certain G zm -1 Using a certain G zm -1 , -Err zx G zm -1 , which is a correction amount that can compensate for the characteristics of the control system, may be output.
  • the correction amount calculation section 32a outputs information on the obtained correction amount to the command value output section 15.
  • the command value output unit 15 corrects the position command for each axis based on the correction amount.
  • FIG. 10 is a flowchart showing the operation procedure of the numerical control device 1a included in the numerically controlled machine tool 99a according to the first embodiment.
  • step S1 the machining error estimating unit 12 of the numerical control device 1a reads the machine model from the model holding unit 13.
  • the machining error estimation unit 12 estimates the error direction and error amount based on the axis data and the machine model, and outputs machining error information.
  • the machining error estimating unit 12 estimates an error direction, which is a direction in which the tool 76 is displaced, among the axial directions, and an error amount in the error direction.
  • the machining error estimation unit 12 outputs machining error information indicating the estimated error direction and the estimated error amount.
  • step S3 the correction amount calculation unit 14a of the numerical control device 1a selects one or more axes to be corrected based on the machining error information using the axis selection unit 31a.
  • step S4 the correction amount calculation unit 14a calculates the correction amount based on the machining error information using the correction amount calculation unit 32a.
  • the correction amount calculation section 32a outputs information on the obtained correction amount to the command value output section 15.
  • step S5 the command value output unit 15 adds the correction amount to the position command output to the drive mechanism 97 for the selected axis.
  • the command value output unit 15 corrects the position command by adding a correction amount to the position command.
  • the command value output section 15 outputs the corrected position command to the servo control section 6.
  • the numerical control device 1a estimates the error direction and the error amount based on the axis data and the machine model, and calculates the correction amount. If a machining error occurs due to deformation of the mechanical structure 98 due to acceleration/deceleration of the shaft drive unit of each axis, the numerical control device 1a can correct only the machining error in the axial direction that affects machining. By not correcting machining errors in the axial direction that do not affect machining, the numerical control device 1a can reduce concerns about deterioration of machining accuracy due to unnecessary corrections. As described above, the numerical control device 1a and the numerically controlled machine tool 99a have the effect of reducing machining errors caused by deformation of the mechanical structure 98.
  • Embodiment 2 an example will be described in which a correction amount that allows processing errors to be corrected with high precision is calculated by simple approximation calculation.
  • the configuration of the numerically controlled machine tool 99a according to the second embodiment is similar to the configuration of the numerically controlled machine tool 99a according to the first embodiment.
  • the same components as in Embodiment 1 described above are given the same reference numerals, and configurations that are different from Embodiment 1 will be mainly explained.
  • the correction amount calculation unit 14a outputs a correction amount that can cancel out the error amount estimated based on the mechanical model for the axis selected as the correction target.
  • a correction amount that can cancel out the error amount estimated based on the mechanical model for the axis selected as the correction target.
  • an inverse transfer function that compensates for the characteristics of the control system is used to calculate the correction amount, low modeling accuracy of the transfer function may affect the accuracy of the correction. If a differential term exists in the inverse transfer function, the amount of correction may become oscillatory.
  • FIG. 11 is a diagram showing a configuration example of the correction amount calculation section 32b included in the correction amount calculation section 14a of the numerical control device 1a according to the second embodiment.
  • the correction amount calculation section 14a includes a correction amount calculation section 32b different from the correction amount calculation section 32a shown in FIG.
  • the correction amount calculation unit 32b generates an acceptable amount of uncut material by making the correction amount larger than the amount of error that is actually expected to occur. In other words, the correction amount calculation unit 32b prevents any over-cutting from occurring due to the movement for correction, and even if uncut parts are generated due to the movement for correction, the uncut parts can be processed by the movements before and after the correction. Calculate the correction amount.
  • the correction amount calculation section 32b includes a reference correction amount calculation section 33, a clamp section 34, and a rate of change calculation section 35.
  • the reference correction amount calculation unit 33 calculates a reference correction amount, which is a reference value of the correction amount, based on the axis information and the machining error information for each axial direction. Taking Err zx , which is the error amount in the Z direction due to the drive of the X-axis drive unit 93X, as an example, the reference correction amount is ⁇ Err zx . ⁇ is an arbitrary real number.
  • the reference correction amount calculation unit 33 calculates - ⁇ Err zx by multiplying -Err zx , which is obtained by adding a minus to Err zx , by ⁇ . The value of ⁇ is determined by performing machining and measuring the shape after machining while actually making corrections, and searching for conditions in which no uncut material is generated.
  • the reference correction amount calculation section 33 outputs information on the reference correction amount to the clamp section 34
  • the clamping unit 34 performs a clamping process using the upper limit value Z rxlim+ on the reference correction amount that exceeds the upper limit value Z rxlim+ of the correction amount. Alternatively, the clamping unit 34 performs a clamping process using the lower limit value Z rxlim- on the reference correction amount that is less than the lower limit value Z rxlim- of the correction amount.
  • the absolute value of the upper limit value and the absolute value of the lower limit value may be the same or different.
  • the clamp section 34 is not limited to having both an upper limit value and a lower limit value set. Only one of the upper limit value and the lower limit value may be set in the clamp portion 34.
  • the maximum value of -Err zx may be set as the upper limit value.
  • the minimum value of -Err zx may be set as the lower limit value.
  • the upper limit value and the lower limit value may be set based on the determined correction amount by experimentally determining a correction amount that does not cause a processing error.
  • the clamp section 34 outputs information on the correction amount after clamping to the change rate calculation section 35.
  • the correction amount calculation section 14a has a correction amount calculation section 32b including a clamp section 34, and thereby outputs a correction amount subjected to a clamping process based on at least one of the upper limit value and the lower limit value.
  • the correction amount calculation unit 14a prevents a correction amount larger than the upper limit value or smaller than the lower limit value from being output by the clamping process in the clamp unit 34.
  • the rate of change calculation unit 35 calculates the rate of change at which the correction amount is changed.
  • the rate of change calculation unit 35 calculates the rate of change when changing the correction amount from 0 to the correction amount after clamping, and the rate of change when changing the correction amount from the correction amount after clamping to 0.
  • the rate of change calculation unit 35 may calculate the rate of change using any function such as a linear function, a quadratic function, a trigonometric function, or an exponential function, and calculates the rate of change using a formula approximated by a combination of these functions. You can calculate it.
  • the rate of change calculation unit 35 outputs a correction amount changed according to the calculated rate of change.
  • FIG. 12 is a diagram for explaining an example of calculation of the correction amount by the correction amount calculation section 32b shown in FIG. 11.
  • an outline of the approximate calculation of the correction amount performed in the correction amount calculation section 32b is shown in a graph.
  • the vertical axis of each of the graphs (a), (b), and (c) in FIG. 12 represents the correction amount Z rc in the Z direction.
  • the horizontal axis of each graph (a), (b), and (c) in FIG. 12 represents time t.
  • FIG. 12A shows a graph representing ⁇ Err zx , which is the error amount component in the Z direction, Err zx , with a minus sign, and ⁇ Err zx , which is the reference correction amount calculated by the reference correction amount calculation unit 33.
  • FIG. 12(b) a graph representing the amount of correction after the clamping process by the clamping unit 34 is shown by a solid line.
  • the results of clamping ⁇ Err zx using the upper limit value Z rxlim+ are shown.
  • the numerical control device 1a prevents a correction amount larger than the upper limit value or smaller than the lower limit value from being output by the clamping process in the clamp unit 34. Thereby, the numerical control device 1a can avoid generating uncut parts that cannot be machined before and after acceleration/deceleration.
  • a graph showing the correction amount when the correction amount after the clamping process is changed according to the change rate calculated by the change rate calculation unit 35 is shown by a solid line.
  • the correction amount increases at a constant rate of change from the time when the change in acceleration starts until the correction amount reaches Z rxlim+ . After the correction amount is maintained at Z rxlim+ , the correction amount decreases at a constant rate of change.
  • the numerical control device 1a can determine the correction amount by simple calculation by changing the correction amount according to the change rate calculated by the change rate calculating section 35.
  • the correction amount calculation unit 32b calculates the correction amount from -Err zx , but the invention is not limited to this.
  • the correction amount calculation unit 32b may calculate the correction amount from ⁇ Err zx G zm ⁇ 1 , which is a correction amount that can compensate for the characteristics of the control system.
  • the correction amount calculation section 32b is provided with the clamp section 34 and the rate of change calculation section 35, but in the correction amount calculation section 32b, one of the clamp section 34 and the rate of change calculation section 35 is may be omitted.
  • the correction amount calculation unit 14a may output the correction amount when the tool 76 moves toward the processing surface in the error direction, and may set the correction amount to zero when the tool 76 moves away from the processing surface in the error direction. .
  • the numerical control device 1a corrects only over-cutting and does not correct un-cutting. Thereby, the numerical control device 1a can reduce machining errors that result in visually noticeable scratches.
  • the numerical control device 1a and the numerically controlled machine tool 99a perform simple approximate calculation of the correction amount that allows the machining error to be corrected with high precision when it is difficult to strictly model the machining error. This has the effect that it can be calculated by
  • Embodiment 3 an example will be described in which correction time adjustment is performed to maintain the correction amount for a certain period of time.
  • the configuration of the numerically controlled machine tool 99a according to the third embodiment is similar to the configuration of the numerically controlled machine tool 99a according to the first embodiment.
  • the same components as in Embodiment 1 or 2 described above are given the same reference numerals, and configurations that are different from Embodiment 1 or 2 will be mainly explained.
  • FIG. 13 is a diagram showing an example of the configuration of the correction amount calculating section 14c included in the numerical control device 1a according to the third embodiment.
  • the numerical control device 1a has a correction amount calculation section 14c instead of the correction amount calculation section 14a shown in FIGS. 6 and 9.
  • the correction amount calculation section 14c includes an axis selection section 31c different from the axis selection section 31a shown in FIG. 9, and a correction amount calculation section 32c different from the correction amount calculation section 32a shown in FIG.
  • the machining error estimation unit 12 outputs machining error information indicating the error direction, which is the direction in which the tool 76 is displaced, and the amount of error in the error direction, to the correction amount calculation unit 14c.
  • the correction amount calculation unit 14c reads the machine model from the model holding unit 13.
  • the axis selection unit 31c selects one or more axes to be corrected based on the machining error information and the machine model.
  • the axis selection unit 31c outputs axis information indicating the selected axis to the correction amount calculation unit 32c. Machining error information and axis information are input to the correction amount calculation unit 32c.
  • the correction amount calculation unit 32c calculates the correction amount for each axis indicated in the axis information based on the machining error information.
  • FIG. 14 is a diagram for explaining an example of machining by the numerically controlled machine tool 99a according to the third embodiment.
  • FIG. 14 shows an example of the trajectory of the tool 76 when the machined surface of the workpiece 78 is machined by moving the tool 76 within the XY plane.
  • the dashed arrow shown in FIG. 14 represents the trajectory of the tool 76. In this machining, the tool 76 is not moved in the Z direction.
  • the tool 76 starts moving from a machining start position P4 outside the workpiece 78 and moves along a spiral machining path from the outer periphery of the workpiece 78 to the center of the workpiece 78 while changing the direction of movement at the corner. to move counterclockwise.
  • the tool 76 processes the surface of the workpiece 78 while moving counterclockwise along a spiral machining path.
  • the tool 76 processes the surface of the workpiece 78 until it reaches a process end position P5 near the center of the workpiece 78 on the XY plane.
  • a solid circle 25 shown in FIG. 14 represents a machining error shape due to overshaving of the machined surface.
  • the machining error shape represented by the circle 25 is caused by the tool 76 sinking into the machining surface during acceleration and deceleration.
  • a broken line circle 26 shown in FIG. 14 represents a machining error shape due to uncut parts on the machined surface.
  • the machining error shape represented by the circle 26 is caused by the tool 76 being lifted off the machining surface during acceleration and deceleration.
  • a machining error shape represented by a circle 25 occurs in the half of the machining surface on the plus X direction side.
  • a machining error shape represented by a circle 26 occurs in the half of the machining surface on the minus X direction side.
  • the drive of the X-axis drive unit 93X causes a machining error of Err xx in the X direction, a machining error of Err yx in the Y direction, and a machining error of Err zx in the Z direction.
  • the drive of the Y-axis drive unit 93Y causes a machining error of Err xy in the X direction, a machining error of Err yy in the Y direction, and a machining error of Err zy in the Z direction.
  • the machining error estimation unit 12 calculates the amount of each machining error based on the axis data and the machine model.
  • Each of Err zx and Err zy is an error amount component in the direction perpendicular to the machined surface.
  • the axis selection unit 31c selects the Z direction as the axis to be corrected.
  • Machining error information and axis information are input to the correction amount calculation unit 32c.
  • the correction amount calculation unit 32c calculates the correction amount for each axis indicated in the axis information based on the machining error information.
  • the correction amount calculation unit 32c calculates the machining error in the Z direction due to the drive of the X-axis drive unit 93X and the machining error in the Y-axis drive unit 93Y based on the axis information indicating the Z direction and the machining error information.
  • a correction amount for correcting the machining error in the Z direction due to driving is calculated. That is, the correction amount calculating section 32c calculates the correction amount Zrc for correcting the movement of the driven section by the Z-axis driving section 93Z.
  • FIG. 15 is a diagram showing a configuration example of the correction amount calculation section 32c included in the correction amount calculation section 14c shown in FIG. 13.
  • the correction amount calculation section 32c includes a reference correction amount calculation section 33, a clamp section 34, and a rate of change calculation section 35, similar to the correction amount calculation section 32b shown in FIG. Further, the correction amount calculation section 32c includes a correction time adjustment section 36.
  • the reference correction amount calculation unit 33 calculates a reference correction amount, which is a reference value of the correction amount, based on the axis information and the machining error information for each axial direction.
  • the reference correction amount determined from Err zx is ⁇ x Err zx .
  • the reference correction amount determined from Err zy is - ⁇ y Err zy .
  • ⁇ x and ⁇ y are arbitrary real numbers.
  • the reference correction amount calculation section 33 outputs information on the reference correction amount to the clamp section 34.
  • the clamping unit 34 performs a clamping process using the upper limit values Z rxlim+ and Z rylim+ on the reference correction amounts that exceed the upper limit values of the correction amounts Z rxlim+ and Z rylim+ .
  • the clamping unit 34 performs a clamping process using the lower limit values Z rxlim- and Z rylim- on the reference correction amounts that are lower than the lower limit values Z rxlim- and Z rylim- of the correction amounts.
  • Z rxlim+ is the upper limit value of the correction amount for the Z-direction machining error caused by the drive of the X-axis drive unit 93X.
  • Z rylim+ is the upper limit value of the correction amount for the Z-direction machining error caused by driving the Y-axis drive unit 93Y.
  • Z rxlim- is the lower limit value of the correction amount for the Z-direction machining error caused by the drive of the X-axis drive unit 93X.
  • Z rylim- is the lower limit value of the correction amount for the Z-direction machining error caused by driving the Y-axis drive unit 93Y.
  • the clamp section 34 outputs information on the correction amount after clamping to the change rate calculation section 35.
  • the rate of change calculation unit 35 calculates the rate of change at which the correction amount is changed.
  • the rate of change calculation unit 35 outputs the correction amount changed according to the calculated rate of change to the correction time adjustment unit 36.
  • the correction time adjustment unit 36 performs adjustment to maintain the correction amount for a certain period of time when the correction amount reaches an upper limit value or a lower limit value that is a reference for clamp processing.
  • the correction amount calculation unit 14c has a correction amount calculation unit 32c including a correction time adjustment unit 36, so that the correction amount is maintained for a certain period of time when the correction amount reaches an upper limit value or a lower limit value that is a reference for clamp processing.
  • FIG. 16 is a diagram for explaining an example of calculation of the correction amount by the correction amount calculation unit 32c shown in FIG. 15.
  • an outline of the approximate calculation of the correction amount performed in the correction amount calculation unit 32c is shown in a graph.
  • the vertical axis of each of the graphs (a), (b), and (c) in FIG. 16 represents the correction amount Z rc in the Z direction.
  • the horizontal axis of each graph (a), (b), and (c) in FIG. 16 represents time t.
  • FIG. 16 shows a graph representing -Err zx and -Err zy , which are the error amount components in the Z direction, Err zx and Err zy , with minus signs attached, and a reference calculated by the reference correction amount calculation unit 33.
  • a graph representing the correction amounts - ⁇ x Err zx and - ⁇ y Err zy is shown.
  • a solid line represents a graph representing the amount of correction through the processing by the clamp section 34 and the processing by the rate of change calculation section 35.
  • the solid line graph in FIG. 16(b) represents the correction amount when the correction amount after the clamping process is changed according to the change rate calculated by the change rate calculation unit 35.
  • Z rxlim+ and Z rylim+ are set to different values.
  • the numerical control device 1a prevents a correction amount larger than the upper limit value or smaller than the lower limit value from being output by the clamping process in the clamp unit 34. Thereby, the numerical control device 1a can avoid generating uncut parts that cannot be machined before and after acceleration/deceleration.
  • the numerical control device 1a can determine the correction amount by simple calculation by changing the correction amount according to the change rate calculated by the change rate calculating section 35.
  • FIG. 16(c) a graph representing the amount of correction after adjustment by the correction time adjustment section 36 is shown by a solid line.
  • the time during which the correction amount is maintained at Z rxlim+ is longer than in the case of the correction amount shown by the solid line in FIG. 16(b).
  • the time during which the correction amount is maintained at Z rylim+ is longer than in the case of the correction amount shown by the solid line in FIG. 16(b).
  • the time during which the correction amount is maintained at Z rxlim+ and the time during which the correction amount is maintained at Z rylim+ can be arbitrarily set.
  • the numerical control device 1a maintains the correction amount for a certain period of time when the correction amount reaches the upper limit value or the lower limit value, thereby reducing the correction amount in areas where machining errors may occur continuously, such as at corners. Machining of the corner portion proceeds without reduction.
  • the numerical control device 1a can avoid the occurrence of scratches due to overshoot when a correction movement, which is a movement for correcting machining errors, is repeated over a short distance. Thereby, the numerical control device 1a can prevent the quality of the machined surface from deteriorating.
  • the correction amount calculation unit 14c may calculate a correction amount to prevent over-shaving of the machined surface due to overshoot. In this case, by setting ⁇ x and ⁇ y used in the calculation of the reference correction amount in the reference correction amount calculation unit 33 to negative values, the numerical control device 1a can reduce machining errors due to overshoot.
  • the numerical control device 1a and the numerically controlled machine tool 99a maintain the correction amount for a certain period of time when the correction amount reaches the upper limit value or the lower limit value.
  • the numerical control device 1a and the numerically controlled machine tool 99a have the effect of being able to calculate an appropriate correction amount that can reduce the occurrence of flaws in areas where machining errors may occur continuously.
  • FIG. 17 is a diagram showing a configuration example of a numerically controlled machine tool 99d according to the fourth embodiment.
  • the numerically controlled machine tool 99d is a machine tool that drives an axis according to a machining program.
  • the numerically controlled machine tool 99d is a lathe-type 5-axis multi-tasking machine equipped with three linear axes and two rotation axes.
  • Embodiment 4 the same components as in Embodiments 1 to 3 described above are given the same reference numerals, and configurations that are different from Embodiments 1 to 3 will be mainly explained.
  • the numerically controlled machine tool 99d includes an X-axis drive section 93X, a Y-axis drive section 93Y, a Z-axis drive section 93Z, an A-axis drive section 93A, and a C-axis drive section 93C.
  • Each of the X-axis, Y-axis, Z-axis, and V-axis is a linear axis.
  • Each of the A-axis and C-axis is a rotation axis.
  • the numerically controlled machine tool 99d moves the tool 76 in the X direction, Y direction, and Z direction by driving the X axis drive section 93X, Y axis drive section 93Y, and Z axis drive section 93Z.
  • the A-axis drive section 93A rotates the tool 76 around the Y-axis.
  • the C-axis drive section 93C rotates the workpiece 78 around the Z-axis.
  • the X-axis drive unit 93X has a configuration called a slant axis.
  • the numerically controlled machine tool 99d moves the tool 76 in the X direction by simultaneously driving the X-axis drive section 93X and the Y-axis drive section 93Y.
  • the numerically controlled machine tool 99d includes an X-axis drive section 93X, which is a slant axis, and an A-axis drive section 93A, which rotates the tool 76, so that the tool axis direction and the drive axis direction do not coincide.
  • This is different from the numerically controlled machine tool 99a shown. Therefore, the direction of the machined surface in the numerically controlled machine tool 99d and the error direction that causes a machining error are significantly different from those in the numerically controlled machine tool 99a.
  • the numerical control device 1a included in the numerically controlled machine tool 99d has the same configuration as the numerical control device 1a shown in FIG.
  • FIG. 18 is a diagram for explaining an example of calculation of a machining error by the numerical control device 1a included in the numerically controlled machine tool 99d according to the fourth embodiment.
  • FIG. 18 shows how a machining surface 41 perpendicular to the tool axis is machined in a state where ⁇ , which is the angle of the A-axis, is 45 degrees.
  • Arrow 42 represents the processing direction.
  • the processing direction is a diagonal direction between the plus X direction and the minus Z direction.
  • FIG. 18 schematically shows how a machining error occurs in which the tool 76 sinks into the machining surface 41 when machining the machining surface 41.
  • the tool 76 is shown by a broken line when the mechanical structure 98 is in an ideal state with no deformation.
  • the X-axis drive section 93X, the Y-axis drive section 93Y, and the Z-axis drive section 93Z are driven simultaneously.
  • the drive of the X-axis drive unit 93X causes a machining error of Err xx in the X direction, a machining error of Err yx in the Y direction, and a machining error of Err zx in the Z direction.
  • the drive of the Y-axis drive unit 93Y causes a machining error of Err xy in the X direction, a machining error of Err yy in the Y direction, and a machining error of Err zy in the Z direction.
  • the driving of the Z-axis drive unit 93Z causes a machining error of Err xz in the X direction, a machining error of Err yz in the Y direction, and a machining error of Err zz in the Z direction.
  • the correction amount calculation unit 14a of the numerical control device 1a has the same configuration as the correction amount calculation unit 14a shown in FIG.
  • the axis selection unit 31a selects one or more axes to be corrected based on the machining error information and the machine model.
  • Err X which is the total amount of error occurring in the X direction in the numerically controlled machine tool 99d
  • Err Y which is the total amount of error occurring in the Y direction in the numerically controlled machine tool 99d
  • Err Z which is the total amount of error occurring in the Z direction in the numerically controlled machine tool 99d
  • an arrow 43 shown in FIG. 18 represents an error amount that is the sum of Err X , Err Y , and Err Z.
  • the mechanical structure 98 is likely to be deformed in the X direction and the Z direction due to the drive of the X-axis drive section 93X and the drive of the Z-axis drive section 93Z. For example, if a machining error occurs in which one of Err When a machining error occurs in which the contributions of Err
  • Err N which is the amount of error occurring in the direction perpendicular to the machined surface 41, is obtained by the following equation (7).
  • the correction amount calculation unit 32a can cancel Err N by setting ⁇ Err N as the correction amount.
  • the correction amount calculation unit 32a calculates the correction amount X rc in the X direction, the correction amount Y rc in the Y direction, and the correction amount in the Z direction using the following equations (9), (10), and (11). Calculation is performed to divide -Err N into Z rc and -Err N.
  • is the angle between the X and Y axes.
  • ⁇ /4 (rad).
  • the numerical control device 1a has the same configuration as in Embodiment 1, but the present invention is not limited to this.
  • the configuration of the numerical control device 1a in the fourth embodiment may be the same as that in the second or third embodiment.
  • the numerical control device 1a and the numerically controlled machine tool 99d can calculate an appropriate correction amount even when the tool axis direction and the drive axis direction do not match in the configuration of the numerically controlled machine tool 99d. can. Thereby, the numerical control device 1a and the numerically controlled machine tool 99d have the effect of reducing machining errors.
  • Embodiment 5 an example will be described in which a machining program for correcting machining errors is generated by a machining program generation device.
  • FIG. 19 is a diagram showing a configuration example of the machining program generation device 2 according to the fifth embodiment.
  • the same components as those in Embodiments 1 to 4 described above are given the same reference numerals, and configurations that are different from Embodiments 1 to 4 will be mainly described.
  • the machining program generation device 2 is a device that creates a machining program for correcting machining errors of a numerically controlled machine tool.
  • the machining program generation device 2 is an attached program that is attached to CAM software or an interactive program creation device and edits a machining program.
  • the machining program generation device 2 generates a machining program that corrects machining errors by modifying the machining program based on shape data specifying a machining shape to correct machining errors.
  • the machining program before change is the machining program before being changed to correct machining errors.
  • the machining program generation device 2 includes a machining program input unit 10 that receives a machining program before change, a machining error estimation unit 12 that estimates a machining error, a model holding unit 13 that holds a machine model, and a correction amount that calculates a correction amount. It includes a calculation section 14a, a simulation section 51 that simulates the operation of the numerically controlled machine tool 99e, and a machining program correction section 52 that corrects the machining program before change according to the correction amount.
  • the machining program input unit 10 outputs the received machining program before change to the simulation unit 51 and the machining program correction unit 52, respectively.
  • the simulation unit 51 simulates the behavior of the numerical control device of the numerically controlled machine tool 99e and the behavior of the servo control unit 6 of each axis, which is a servo control device of the numerically controlled machine tool 99e, based on the machining program before change.
  • the simulation unit 51 calculates axis data based on a machining path analyzed from a pre-change machining program, which is a machining program before the correction amount is written.
  • the simulation unit 51 calculates the state quantity of each axis, such as position feedback, velocity feedback, or acceleration feedback, using a known simulation method for servo control devices.
  • the simulation unit 51 outputs axis data, which is the state quantity of each axis, to the machining error estimation unit 12.
  • the machining error estimation unit 12 reads the machine model from the model holding unit 13.
  • the machining error estimating unit 12 estimates the error direction, which is the direction in which the tool 76 is displaced, and the error amount in the error direction, based on the axis data and the machine model, and calculates the estimated error direction and the error amount in the error direction. Processing error information indicating the estimated error amount is output.
  • the machining error estimating unit 12 calculates the error amount in each axis direction, for example, based on the acceleration feedback obtained from the simulation unit 51, as in the first embodiment.
  • the machining error estimation section 12 outputs machining error information to the correction amount calculation section 14a.
  • the correction amount calculation unit 14a reads the machine model from the model holding unit 13. The correction amount calculation unit 14a selects one or more axes to be corrected based on the machining error information, and calculates a correction amount for correcting the movement of the drive mechanism 97 regarding the selected axes. The correction amount calculation unit 14a selects an axis to be corrected by the axis selection unit 31a shown in FIG. 9 based on the machine model and machining error information in each axis direction. The correction amount calculation unit 14a calculates the correction amount for each axis indicated by the axis information based on the machining error information using the correction amount calculation unit 32a shown in FIG. The correction amount calculation section 32a outputs information on the obtained correction amount to the machining program correction section 52.
  • the machining program correction unit 52 corrects the pre-change machining program according to the correction amount by adding a correction movement, which is a movement for correcting machining errors, to the pre-change machining program according to the correction amount.
  • the machining program correction unit 52 outputs a modified machining program, which is a machining program modified to add a correction motion, to the numerically controlled machine tool 99e.
  • the numerically controlled machine tool 99e has the same configuration as the numerically controlled machine tool 99a shown in FIG.
  • the numerical control device of the numerically controlled machine tool 99e controls the drive mechanism 97 according to the changed machining program.
  • the numerical control device of the numerically controlled machine tool 99e includes a machining program input section into which a changed machining program is input, a command value generation section that generates a command value as a position command for each axis according to the changed machining program, and a command value generation section for each axis. and a command value output section that outputs a command value, which is a position command, to the servo control section 6.
  • FIG. 20 is a flowchart showing the operation procedure of the machining program generation device 2 according to the fifth embodiment.
  • step S11 the simulation unit 51 of the machining program generation device 2 calculates axis data based on the machining program before change.
  • the simulation section 51 outputs axis data to the machining error estimation section 12.
  • step S12 the machining error estimation unit 12 reads the machine model from the model holding unit 13.
  • step S13 the machining error estimation unit 12 estimates the error direction and error amount based on the axis data and the machine model, and outputs machining error information.
  • the machining error estimating unit 12 estimates an error direction, which is a direction in which the tool 76 is displaced, among the axial directions, and an error amount in the error direction.
  • the machining error estimation unit 12 outputs machining error information indicating the estimated error direction and the estimated error amount.
  • step S14 the correction amount calculation unit 14a of the machining program generation device 2 uses the axis selection unit 31a to select one or more axes to be corrected based on the machining error information.
  • step S15 the correction amount calculation section 14a calculates the correction amount based on the machining error information using the correction amount calculation section 32a.
  • the correction amount calculation section 32a outputs information on the obtained correction amount to the machining program correction section 52.
  • the machining program correction unit 52 corrects the pre-change machining program according to the correction amount by adding a correction movement for correcting machining errors to the pre-change machining program according to the correction amount.
  • the machining program correction unit 52 outputs a modified machining program that is a machining program corrected according to the correction amount.
  • FIG. 21 is a diagram for explaining a first example of a machining program generated by the machining program generation device 2 according to the fifth embodiment.
  • FIG. 21 shows an example of a machining path shown in the machining program before change and an example of a machining path shown in the machining program after change.
  • the machining path shown in FIG. 21 is a machining path at a corner portion.
  • the path 53 shown in FIG. 21 is the machining path shown in the machining program before change.
  • the route 53 is a route that sequentially passes through five points, P10, P11, P14, P17, and P18.
  • the path 54 shown in FIG. 21 is the machining path shown in the changed machining program.
  • the route 54 includes a route passing through P11, P12, P13, and P14 in sequence instead of the straight route between P11 and P14 in the route 53.
  • the route 54 includes a route passing through P14, P15, P16, and P17 in sequence.
  • the machining program correction unit 52 adds P11, which is the point at which the tool 76 starts moving in the Z direction toward P12, to the machining program before change.
  • the machining program correction unit 52 adds a description of the movement of moving the tool 76 sequentially from P11 to P12, P13, and P14 to the pre-change machining program.
  • the machining program correction unit 52 adds P17, which is the point at which the movement of the tool 76 in the Z direction ends from P16, to the machining program before change.
  • the machining program correction unit 52 adds a description of the movement of moving the tool 76 sequentially from P14 to P15, P16, and P17 to the machining program before change.
  • the machining program correction unit 52 uses the correction amount calculated by the method described with reference to FIG. Reflect on each.
  • FIG. 21 shows a path 55 using a broken line when the reference correction amount is used instead of the correction amount calculated by the correction amount calculation unit 32b.
  • FIG. 22 is a diagram for explaining correction of a machining program by the machining program correction unit 52 of the machining program generation device 2 according to the fifth embodiment.
  • FIG. 22 shows a machining program 56 that is an example of a machining program before change, and a machining program 57 that is an example of a machining program after change.
  • Each of the two parts surrounded by broken lines in the machining program 57 is a program added for correction movement.
  • One of the two parts surrounded by the broken line is a part in which a correction movement for sequentially moving the tool 76 from P11 to P12, P13, and P14 is described.
  • the other of the two parts surrounded by the broken line is a part in which a correction movement for sequentially moving the tool 76 from P14 to P15, P16, and P17 is described.
  • FIG. 23 is a diagram for explaining a second example of a machining program generated by the machining program generation device 2 according to the fifth embodiment.
  • the machining program generation device 2 includes a correction amount calculation section 14c shown in FIG. 13 instead of the correction amount calculation section 14a shown in FIG.
  • the correction amount calculation section 14c includes a correction amount calculation section 32c shown in FIG. 15.
  • the correction amount calculation unit 14c has a correction amount calculation unit 32c including a correction time adjustment unit 36, so that when the correction amount reaches the upper limit value or the lower limit value, which is a reference for clamp processing, the correction amount is maintained for a certain period of time.
  • the machining program correction unit 52 corrects the machining path as shown in FIG. 21, it is assumed that two correction movements occur consecutively within a range of 2 mm or less at a corner portion. In this case, correction movements over short distances will be repeated at the corner.
  • the machining program generation device 2 converts the two correction movements into one correction movement by using the correction amount calculation unit 14c to calculate the correction amount that is maintained at the upper limit value for a certain period of time. Add them all to the machining program before the change.
  • the path 58 shown in FIG. 23 is the machining path shown in the modified machining program.
  • the route 58 includes a route that sequentially passes through P11, P12, P14'P16, and P17 instead of the route that sequentially passes through P11, P14, and P17 of the route 53.
  • the machining program generation device 2 maintains the correction amount for a certain period of time when the correction amount reaches the upper limit value or the lower limit value, thereby reducing the correction amount in areas where machining errors may occur continuously, such as corner portions.
  • the machining of the corner portion can proceed without reducing the amount.
  • the machining program generation device 2 can avoid the occurrence of scratches due to overshoot when correction movements are repeated over a short distance. Thereby, the machining program generation device 2 can prevent the quality of the machined surface from deteriorating.
  • the machining program generation device 2 estimates the error direction and error amount based on the axis data and the machine model, and calculates the correction amount. If a machining error occurs due to deformation of the mechanical structure 98 due to acceleration/deceleration of the shaft drive unit of each axis, the machining program generation device 2 can correct only the machining error in the axial direction that affects machining. By not correcting machining errors in the axial direction that do not affect machining, the machining program generation device 2 can reduce concerns about deterioration of machining accuracy due to unnecessary correction. As described above, the machining program generation device 2 has the effect of reducing machining errors caused by deformation of the mechanical structure 98.
  • FIG. 24 is a diagram showing a configuration example of a numerical control device 1f according to the sixth embodiment.
  • the same components as in Embodiments 1 to 5 described above are given the same reference numerals, and configurations that are different from Embodiments 1 to 5 will be mainly described.
  • FIG. 24 shows the numerical control device 1f, the servo control section 6, and the mechanical device section 96.
  • the numerical control device 1f has the same configuration as the numerical control device 1a shown in FIG. and a command value output section 15. Furthermore, the numerical control device 1f includes a machine learning device 100 that learns a machine model. Here, it is assumed that the numerical control device 1f is a combination of the machine learning device 100 and the configuration of the numerical control device 1a described in the first embodiment. The numerical control device 1f may be one in which the machine learning device 100 is combined with the configuration of the numerical control device 1a of Embodiment 2, 3, or 4.
  • Axis data, machining condition information, machining error measurement results, and machining error information are input to the machine learning device 100.
  • the machine learning device 100 includes one or more of a position command, a speed command, an acceleration command, a position feedback, a speed feedback, or an acceleration feedback, which are axis data for each axis position of the numerically controlled machine tool 99a, as a mechanical device section. It is input from 96.
  • the axis data may be input from the servo control unit 6 to the machine learning device 100.
  • the machining condition information is information about the machining conditions of the numerically controlled machine tool 99a.
  • the machining condition information includes the shape of the workpiece 78, the material of the workpiece 78, the tool diameter, the tool material, the tool shape, the number of teeth, the feed amount per tooth, the rotational speed of the tool 76, machine structure information, and tool friction information. , and tool usage time.
  • the mechanical structure information is information that characterizes the configuration of the mechanical structure 98.
  • the machining error measurement results are the results of measuring machining errors in actual machining.
  • the machining error measurement results may include a determination result as to whether or not there is a machining error.
  • the determination result of the presence or absence of a machining error may be a result of visually determining the presence or absence of a machining error by an operator using the numerically controlled machine tool 99a.
  • the machining error measurement result may use information on the magnitude of the machining error extracted from the unevenness information of the machined surface.
  • the unevenness information on the machined surface is obtained by using a device such as a coordinate measuring machine (CMM) or a microscope.
  • CCMM coordinate measuring machine
  • the output signal of an acceleration sensor attached near the tool 76 may be used as the machining error measurement result.
  • the results of observing the operation of the numerically controlled machine tool 99a that simulates machining may be used as the machining error measurement results.
  • the output signal of the displacement sensor may be used as the machining error measurement result.
  • FIG. 25 is a diagram showing a configuration example of the machine learning device 100 included in the numerical control device 1f according to the sixth embodiment.
  • the machine learning device 100 includes a state observation section 101 and a learning section 102.
  • the state observation unit 101 observes the training data set, processing error measurement results, and processing error information as state variables.
  • the training data set is a data set that includes axis data and processing condition information.
  • the learning unit 102 learns a machine model according to the training data set. Specifically, the learning unit 102 uses coefficients to describe the amount of deformation of the mechanical structure 98, frequencies to describe the deformation of the mechanical structure 98, and damping coefficients to describe the deformation of the mechanical structure 98. Learn machine model parameters.
  • Any learning algorithm may be used by the learning unit 102.
  • Reinforcement learning is a method in which an agent in an environment observes the current state and decides what action to take. Agents obtain rewards from the environment by selecting actions, and through a series of actions, they learn strategies that will yield the most rewards.
  • Q-learning, TD-learning, and the like are known as representative methods of reinforcement learning.
  • the action value table which is a general update formula for the action value function Q(s, a)
  • the action value function Q(s, a) represents the action value Q, which is the value of the action of selecting action "a" under environment "s".
  • the learning section 102 includes a reward calculation section 103 and a function updating section 104.
  • the reward calculation unit 103 calculates the reward based on the state variables.
  • the function update unit 104 updates the function for determining the parameters of the machine model according to the reward calculated by the reward calculation unit 103.
  • the reward calculation unit 103 calculates the reward "r” based on the error amount shown in the processing error information and the processing error measurement result. For example, when the processing error measurement result matches the error amount shown in the processing error information, the reward calculation unit 103 increases the reward “r”. The reward calculation unit 103 increases the reward "r” by giving a reward value of "1". Note that the reward value is not limited to "1". Further, when the processing error measurement result does not match the error amount indicated in the processing error information, the remuneration calculation unit 103 reduces the remuneration “r”. The reward calculation unit 103 reduces the reward "r” by giving a reward value of "-1". Note that the reward value is not limited to "-1".
  • the function update unit 104 updates the function for determining the parameters of the machine model according to the reward calculated by the reward calculation unit 103. Updating the function can be done, for example, by updating the action value table according to the training data set.
  • the action value table is a data set in which arbitrary actions and their action values are associated with each other and stored in a table format. For example, in the case of Q-learning, the action value function Q(s t , a t ) expressed by the above equation (12) is used as a function for determining the parameters of the machine model.
  • the machine learning device 100 outputs a machine model that is a learning result in the learning unit 102 to the model holding unit 13.
  • the learning unit 102 may learn a machine model by using information about all axes of the numerically controlled machine tool 99a as a training data set at once, or may construct a training data set for each axis of the numerically controlled machine tool 99a.
  • a machine model may be learned for each axis.
  • the learning unit 102 may perform learning using a neural network that receives the training data set as input and outputs the parameters of the machine model.
  • the learning unit 102 may perform machine learning using a learning algorithm such as deep learning, genetic programming, inductive logic programming, or support vector machine.
  • the learning unit 102 is not limited to being built into the numerical control device 1f.
  • the learning unit 102 may be realized by a device external to the numerical control device 1f.
  • the device functioning as the learning section 102 may be a device connectable to the numerical control device 1f via a network.
  • the device functioning as the learning unit 102 may be a device existing on a cloud server.
  • the numerical control device 1f has the effect that by learning the machine model, it is possible to predict machining errors with high accuracy when the conditions in which machining errors occur vary in a complex manner depending on the machining conditions. play.
  • the processing units of the numerical control devices 1a and 1f which are the machining program input unit 10, the command value generation unit 11, the machining error estimation unit 12, the correction amount calculation units 14a and 14c, the command value output unit 15, and the machine learning device 100. , realized by a processing circuit.
  • the processing circuit may be a circuit on which a processor executes software, or may be a dedicated circuit.
  • FIG. 26 is a diagram showing a configuration example of control circuit 200 according to the first to sixth embodiments.
  • the control circuit 200 includes an input section 201, a processor 202, a memory 203, and an output section 204.
  • the input unit 201 is an interface circuit that receives data input from outside the control circuit 200 and provides it to the processor 202.
  • the output unit 204 is an interface circuit that sends data from the processor 202 or the memory 203 to the outside of the control circuit 200.
  • the processing section is realized by software, firmware, or a combination of software and firmware.
  • Software or firmware is written as a program and stored in memory 203.
  • each function is realized by the processor 202 reading and executing a program stored in the memory 203. That is, the processing circuit includes a memory 203 for storing a program by which the processing of the numerical control devices 1a and 1f is executed as a result. It can also be said that these programs cause the computer to execute the procedures and methods of the numerical control devices 1a and 1f.
  • the processor 202 is a CPU (Central Processing Unit), a processing device, an arithmetic unit, a microprocessor, a microcomputer, a processor, or a DSP (Digital Signal Processor).
  • the memory 203 is, for example, RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), or EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory). ory), etc., non-volatile Alternatively, volatile semiconductor memory, magnetic disk, flexible disk, optical disk, compact disk, mini disk, DVD (Digital Versatile Disc), etc. are applicable.
  • FIG. 26 is an example of hardware in which each component is implemented by a general-purpose processor 202 and memory 203, each component may also be implemented by a dedicated hardware circuit.
  • FIG. 27 is a diagram showing a configuration example of the dedicated hardware circuit 205 according to the first to sixth embodiments.
  • the dedicated hardware circuit 205 includes an input section 201, an output section 204, and a processing circuit 206.
  • the processing circuit 206 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a combination thereof.
  • Each function of the numerical control devices 1a, 1f may be realized by the processing circuit 206 for each function, or each function may be realized by the processing circuit 206 collectively. Note that each component may be realized by combining the control circuit 200 and the hardware circuit 205.
  • the machining program generation device 2 shown in FIG. 19 is realized by a hardware configuration similar to that shown in FIG. 26 or a hardware configuration similar to that shown in FIG. 27.
  • the machining program input section 10, machining error estimation section 12, correction amount calculation section 14a, simulation section 51, and machining program correction section 52, which are processing sections of the machining program generation device 2 are realized by processing circuits.
  • the processing circuit may be a circuit on which a processor executes software, or may be a dedicated circuit.
  • the device functioning as the learning section 102 shown in FIG. 25 may have a hardware configuration similar to that shown in FIG. 26, or a hardware configuration similar to that shown in FIG. This is realized by a hardware configuration similar to that shown.
  • the device functioning as the learning unit 102 is realized by a processing circuit.
  • the processing circuit may be a circuit on which a processor executes software, or may be a dedicated circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Numerical Control (AREA)

Abstract

数値制御装置(1a)は、複数の軸の各々の方向である各軸方向における機械構造の運動に伴う機械構造の変形を模擬するモデルであって、機械構造の変形による各軸方向における工具の変位量である誤差量を表す機械モデルを保持するモデル保持部(13)と、駆動機構の駆動についてのデータである軸データと機械モデルとに基づいて、各軸方向のうち工具の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定し、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する加工誤差推定部(12)と、補正の対象とする1つ以上の軸を加工誤差情報に基づいて選択して、選択された軸についての駆動機構へ出力される指令の補正に使用される補正量を演算する補正量演算部(14a)と、を備える。

Description

数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法
 本開示は、数値制御工作機械を制御する数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法に関する。
 工作機械は、加工プログラムに従って軸を駆動し、所望の形状を得るための加工を行う機械装置である。除去加工を行う工作機械は、材料の不要な部分を除去することによって、材料を目的の形状へ加工する。材料の除去には、ドリル、フライスカッタ、エンドミル、研削砥石、旋削バイト、放電ワイヤ、または放電電極といった種々の工具、あるいはレーザ光が用いられる。このような工作機械は、軸に取り付けられたモータおよび検出器を用いて、加工プログラムにおいて指定される軌跡に工具の軌跡を一致させるフィードバック制御を行う。
 加工時における工具の軌跡が、加工プログラムにおいて指定される軌跡とは異なる場合、加工誤差が生じる。指令に従って軸が駆動されても工作機械の機械構造が弾性変形することにより、加工面へ工具が食い込んで材料を除去し過ぎることによる加工誤差、または、加工面から工具が浮き上がって材料を取り残すことによる加工誤差が生じることがある。機械構造の弾性変形は、軸の加減速に伴う慣性力により生じ得る。このような加工誤差の発生により、目視可能な加工痕が加工品の表面に生じ、加工品の外観検査において加工不良と判定される場合がある。検出器の取付位置によってはこのような加工誤差を検出できないことから、通常のフィードバック制御では加工誤差を低減できない場合がある。このような問題に対し、軸の加速度に基づいて加工誤差を予測して、指令を補正する技術が提案されている。
 特許文献1には、軸の駆動による機械構造の運動方向とは異なる方向の加工誤差が生じる場合において、駆動する軸の加速度にゲインを乗じた補正量を求め、補正対象である軸の位置指令を補正量に基づいて補正するモータ制御装置が開示されている。
特開2016-51398号公報
 しかしながら、上記特許文献1の技術では、加工誤差が生じる方向と機械構造の運動方向とが一致しない場合がある。この場合、モータ制御装置は、加工誤差を低減させる補正を行うことが困難となる。このように、上記特許文献1の技術では、機械構造の変形に起因する加工誤差の低減が困難となる場合があるという課題があった。
 本開示は、上記に鑑みてなされたものであって、機械構造の変形に起因する加工誤差の低減を可能とする数値制御装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本開示にかかる数値制御装置は、複数の軸の各々について設けられている駆動機構と駆動機構から伝達される動力により運動する機械構造とを有し、機械構造に取り付けられる工具を用いて工作物を加工する数値制御工作機械を制御する数値制御装置である。本開示にかかる数値制御装置は、複数の軸の各々の方向である各軸方向における機械構造の運動に伴う機械構造の変形を模擬するモデルであって、機械構造の変形による各軸方向における工具の変位量である誤差量を表す機械モデルを保持するモデル保持部と、駆動機構の駆動についてのデータである軸データと機械モデルとに基づいて、各軸方向のうち工具の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定し、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する加工誤差推定部と、補正の対象とする1つ以上の軸を加工誤差情報に基づいて選択して、選択された軸についての駆動機構へ出力される指令の補正に使用される補正量を演算する補正量演算部と、を備える。
 本開示にかかる数値制御装置は、機械構造の変形に起因する加工誤差を低減できるという効果を奏する。
実施の形態1にかかる数値制御工作機械の構成例を示す図 実施の形態1にかかる数値制御工作機械を構成する軸駆動部であるX軸駆動部の構成を説明するための模式図 実施の形態1における加工誤差発生のメカニズムの一例について説明するための図 実施の形態1における機械構造の変形と加工誤差との関係の第1の例について説明するための図 実施の形態1における機械構造の変形と加工誤差との関係の第2の例について説明するための図 実施の形態1にかかる数値制御工作機械が有する数値制御装置の構成例を示す図 実施の形態1にかかる数値制御工作機械による加工の例について説明するための図 図6に示す数値制御装置が有する加工誤差推定部による加工誤差の計算例について説明するための図 図6に示す数値制御装置が有する補正量演算部の構成例を示す図 実施の形態1にかかる数値制御工作機械が有する数値制御装置の動作手順を示すフローチャート 実施の形態2にかかる数値制御装置の補正量演算部が有する補正量計算部の構成例を示す図 図11に示す補正量計算部による補正量の計算例について説明するための図 実施の形態3にかかる数値制御装置が有する補正量演算部の構成例を示す図 実施の形態3にかかる数値制御工作機械による加工の例について説明するための図 図13に示す補正量演算部が有する補正量計算部の構成例を示す図 図15に示す補正量計算部による補正量の計算例について説明するための図 実施の形態4にかかる数値制御工作機械の構成例を示す図 実施の形態4にかかる数値制御工作機械が有する数値制御装置による加工誤差の計算例について説明するための図 実施の形態5にかかる加工プログラム生成装置の構成例を示す図 実施の形態5にかかる加工プログラム生成装置の動作手順を示すフローチャート 実施の形態5にかかる加工プログラム生成装置によって生成される加工プログラムの第1の例について説明するための図 実施の形態5にかかる加工プログラム生成装置の加工プログラム補正部による加工プログラムの補正について説明するための図 実施の形態5にかかる加工プログラム生成装置によって生成される加工プログラムの第2の例について説明するための図 実施の形態6にかかる数値制御装置の構成例を示す図 実施の形態6にかかる数値制御装置が有する機械学習装置の構成例を示す図 実施の形態1から6にかかる制御回路の構成例を示す図 実施の形態1から6にかかる専用のハードウェア回路の構成例を示す図
 以下に、数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法を図面に基づいて詳細に説明する。
実施の形態1.
 図1は、実施の形態1にかかる数値制御工作機械99aの構成例を示す図である。数値制御工作機械99aは、加工プログラムに従って軸を駆動する工作機械である。数値制御工作機械99aは、5軸制御マシニングセンタである。数値制御工作機械99aは、X軸駆動部93Xと、V軸駆動部93Vと、Y軸駆動部93Yと、Z軸駆動部93Zと、B軸駆動部93Bと、C軸駆動部93Cと、主軸83とを備える。X軸駆動部93XおよびV軸駆動部93Vは、X方向にY軸駆動部93Yを駆動する。Y軸駆動部93Yは、Y方向にZ軸駆動部93Zを駆動する。Z軸駆動部93Zは、Z方向に主軸83を駆動する。主軸83は、工具76を回転させる。加工対象である工作物78は、ワークテーブル77に設置される。C軸駆動部93Cは、ワークテーブル77をZ軸周りに回転させる。B軸駆動部93Bは、C軸駆動部93CをY軸周りに回転させる。
 数値制御工作機械99aは、X軸駆動部93X、V軸駆動部93V、Y軸駆動部93YおよびZ軸駆動部93Zによって主軸83を移動させ、かつ、B軸駆動部93BおよびC軸駆動部93Cによって工作物78の姿勢を変化させることによって、工具76と工作物78とを相対的に動かす。数値制御工作機械99aは、工具76と工作物78とを相対的に動かしながら工具76を回転させて、工作物78の表面を切削する。数値制御工作機械99aは、工作物78から不要な部分を除去することによって、工作物78を目的の形状へ加工する。
 数値制御工作機械99aが行う作業は、加工プログラムに従って各軸を駆動し、切削加工によって工作物78の加工形状を実現することである。工作物78の加工形状が定められた基準を達成するかどうか、具体的には、予め設計されたとおりの形状精度および面精度を達成するかどうかで、数値制御工作機械99aによる加工の成否が判定される。
 X軸駆動部93X、V軸駆動部93V、Y軸駆動部93YおよびZ軸駆動部93Zの各々は、被駆動部を直進運動させる。X軸、Y軸、Z軸およびV軸の各々は、直進軸である。X軸駆動部93X、V軸駆動部93V、Y軸駆動部93YおよびZ軸駆動部93Zの各々では、アクチュエータであるモータ71の回転運動が送りねじ73によって各直進軸の駆動方向への直進運動に変換される。B軸駆動部93BおよびC軸駆動部93Cの各々は、被駆動部を回転させる。B軸およびC軸の各々は、回転軸である。B軸駆動部93BおよびC軸駆動部93Cの各々では、モータ71の回転運動を、ギアといった減速機を用いて被駆動部へ伝達する。X軸駆動部93X、V軸駆動部93V、Y軸駆動部93YおよびZ軸駆動部93Zの各々では、直進運動させる被駆動部を直進案内機構72により支持する。B軸駆動部93BおよびC軸駆動部93Cの各々では、回転運動させる被駆動部を軸受により支持する。
 数値制御工作機械99aでは、X軸、Y軸、Z軸およびV軸である直進軸によって、XYZの3次元空間内における工具76の運動、すなわち3自由度の工具76の運動が実現される。数値制御工作機械99aでは、B軸およびC軸である回転軸によって、2自由度の工作物78の運動が実現される。数値制御工作機械99aでは、その結果、合計で5自由度の運動が実現される。
 次に、数値制御工作機械99aを構成する駆動部であるX軸駆動部93X、V軸駆動部93V、Y軸駆動部93Y、Z軸駆動部93Z、B軸駆動部93BおよびC軸駆動部93Cについて説明する。ここでは、X軸駆動部93Xを例として、駆動部の構成を説明する。V軸駆動部93V、Y軸駆動部93YおよびZ軸駆動部93Zの各構成は、X軸駆動部93Xと同様である。B軸駆動部93BおよびC軸駆動部93Cの各構成は、直進運動と回転運動との違いがある点以外は、X軸駆動部93Xと同様である。
 図2は、実施の形態1にかかる数値制御工作機械99aを構成する軸駆動部であるX軸駆動部93Xの構成を説明するための模式図である。図2に示すように、数値制御工作機械99aは、数値制御工作機械99aを制御する数値制御装置1aと、サーボ制御部6と、機械装置部96とを有する。機械装置部96は、駆動機構97と機械構造98とを有する。図2に示すサーボ制御部6と図2に示す駆動機構97とは、X軸駆動部93Xを構成する。機械構造98は、X軸駆動部93Xにより駆動される被駆動部である。機械構造98は、駆動機構97から伝達される動力により運動する。数値制御工作機械99aは、機械構造98に取り付けられる工具76を用いて工作物78を加工する。
 駆動機構97は、X軸のモータ71の回転運動を直進運動に変換する役割と、かかる変換のための構成を支持する役割とを担う。X軸駆動部93Xにおいて、モータ71の回転運動は、カップリング74を介して送りねじ73に伝達され、ナット80および減速機79を介して直進運動に変換される。送りねじ73の直進運動は、支持軸受75a,75bにより拘束される。ナット80の直進運動によって、X軸を支持する支持体90とともに工具76がX方向に駆動する。支持体90は、工具76とナット80との間に介在するZ軸と支持のための構成とを総称したものとする。駆動機構97は、複数の軸の各々について設けられている。
 V軸駆動部93V、Y軸駆動部93Y、およびZ軸駆動部93Zの各軸駆動部は、X軸駆動部93Xと同様の構成を備える。なお、機械構造98の範囲は軸によって異なる。例えば、Z軸の駆動機構97は、X軸から見るとX軸のモータ71の運動を変換する役割がないため、X軸の機械構造98に含まれる。B軸駆動部93BおよびC軸駆動部93Cの各軸駆動部は、送りねじ73の代わりに、回転運動を減速させるウォームギア機構を有する。また、B軸駆動部93BおよびC軸駆動部93Cの各々は、直進案内機構72の代わりに、回転運動する被駆動部を支持する軸受を有する。
 数値制御装置1aは、機械装置部96を制御する。数値制御装置1aは、X軸の位置指令Xcをサーボ制御部6へ出力する。位置指令Xcは、加工プログラムに従って数値制御装置1aにより演算された位置を示すものであって、所望の制御状態における被駆動部の位置を示す。位置フィードバックXdは、モータ71に取り付けられた回転角検出器82により検出されたモータ71の回転角度に送りねじ73のねじピッチを乗じることによって得られる位置データである。位置フィードバックXdは、サーボ制御部6を経て数値制御装置1aへ入力される。数値制御装置1aは、位置フィードバックXdと位置指令Xcとの誤差が小さくなるように駆動機構97のフィードバック制御を行う。サーボ制御部6は、位置指令Xcに応じたモータ電流Ixをモータ71へ出力することにより、駆動機構97を駆動する。駆動機構97には、制御対象である工具76を含む機械構造98が接続されている。
 サーボ制御部6は、位置指令Xcに位置フィードバックXdを一致させるフィードバック制御を行う。ただし、フィードバック制御が行われても、加工中に工具76の先端位置と工作物78の加工点との間に誤差が生じ、工作物78において材料の削り残しまたは削り過ぎなどが生じることによって、加工誤差が発生する場合がある。
 次に、数値制御工作機械99aにおける加工誤差発生のメカニズムについて説明する。ここでは、B軸駆動部93Bの回転角が0度、かつ、C軸駆動部93Cの回転角が0度であって、工作物78が水平に取り付けられている場合を例とする。
 図3は、実施の形態1における加工誤差発生のメカニズムの一例について説明するための図である。図3では、X軸駆動部93Xの運動による支持体90の変形に起因する加工誤差であって、フィードバック制御では対応できない加工誤差について示す。図3では、変形を生じていない理想状態における機械構造98を破線により示す。
 X軸駆動部93Xが加減速を行う場合、モータ71の駆動力が送りねじ73を介して支持体90に伝達される。支持体90の剛性が十分でない場合は、モータ71の駆動力が支持体90に伝達されることによって、支持体90が変形する。この変形によって、工具76はZ方向に変位する。X軸駆動部93Xの回転角検出器82は、X方向に生じるX軸駆動部93Xの誤差を検出することができる一方、Z方向に生じる誤差を検出できない。また、この変形はZ軸駆動部93Zの外部で生じるため、Z軸駆動部93Zの回転角検出器82でも検出できない。
 結果として、かかる支持体90の変形はいずれの軸の回転角検出器82でも検出されないため、かかる変形に対してフィードバック制御は機能しない。支持体90の変形によって工具76が工作物78に食い込み、加工誤差が発生する。工具76は回転運動をしているため、工作物78と干渉したときに工作物78の表面から円形に材料を削り取る。加工誤差の発生によって、円形の加工痕である加工誤差形状が生じる。加工誤差形状とは、加工誤差によって加工面に生じる形状とする。
 図4は、実施の形態1における機械構造98の変形と加工誤差との関係の第1の例について説明するための図である。図4では、ストレートエンドミルと呼ばれる円筒形の工具76を用いて、X方向に主軸83が移動しながら加工を行う場合の例を示す。工具76の運動方向21は、X方向である。図4に示す加工誤差形状20は、図4に示す減速位置においてX軸駆動部93Xを減速させたときに生じる加工誤差形状の例である。図4には、加工誤差形状20をZ方向から見たときにおける加工誤差形状20のXY平面形状と、加工誤差形状20をA-A’線で切断した場合における加工誤差形状20のXZ断面とを示す。また、図4では、参考として、X方向に主軸83を移動させている際における機械構造98の形状変化を模式的に示す。
 減速位置では、X軸駆動部93Xの減速に伴う慣性力によって、運動方向21の後方へ傾くように機械構造98が変形する。機械構造98の変形により、工具76が工作物78に沈み込む。工作物78に工具76が沈み込むことによって、工作物78の表面が必要以上に削り取られる。このため、X軸駆動部93Xが減速した位置には、周囲よりも窪んだ加工誤差形状20が形成される。加工誤差形状20のXY平面形状は、工具76の外径と同じ直径の円形である。
 図5は、実施の形態1における機械構造98の変形と加工誤差との関係の第2の例について説明するための図である。図5でも、図4と同様に、ストレートエンドミルである工具76を用いて、X方向に主軸83が移動しながら加工を行う場合の例を示す。工具76の運動方向21は、X方向である。図5に示す加工誤差形状20は、図5に示す加速位置においてX軸駆動部93Xを加速させたときに生じる加工誤差形状の例である。図5には、加工誤差形状20をZ方向から見たときにおける加工誤差形状20のXY平面形状と、加工誤差形状20をA-A’線で切断した場合における加工誤差形状20のXZ断面とを示す。また、図5では、参考として、X方向に主軸83を移動させている際における機械構造98の姿勢の変化を模式的に示す。
 加速位置では、X軸駆動部93Xの加速に伴う慣性力によって、運動方向21の前方へ傾くように機械構造98が変形する。機械構造98の変形により、工具76が工作物78から浮き上がる。工作物78から工具76が浮き上がることによって、工作物78の表面が削り残される。このため、X軸駆動部93Xが加速した位置には、周囲よりも突出した加工誤差形状20が形成される。加工誤差形状20のXY平面形状は、工具76の外径と同じ直径の円形である。
 なお、図3から図5では、加工誤差発生のメカニズムを分かり易く説明するため機械構造98の形状変化を強調して示した。実際の加工で生じる形状変化の大きさは、例えば、金属を加工する数値制御工作機械99aでは百マイクロメートル程度以下、高精度な数値制御工作機械99aであれば数マイクロメートル程度以下であって、加工誤差発生の瞬間における機械構造98の姿勢変化を目視で確認することは難しい。しかしながら、金属の加工面の場合は、加工誤差が数マイクロメートル程度であっても光の反射や干渉の様子が変化するため、加工誤差は、人の目には目立つ加工面の特徴として感受される。そのため、たとえ寸法の精度が設計された公差内であっても人の目で見た加工面の品位が不十分と判断され加工不良とみなされることがある。加工面品位の不良が発生した場合、加工のやり直し、および、不良となった工作物78の廃棄などが発生するため、好ましくない。このような加工面の外観を特徴づける加工誤差の例としては、機械構造98の振動によって生じる縞模様、または、摩擦によって生じる象限突起に起因する筋状模様などが挙げられる。
 図3から図5では、運動方向21がX方向である場合における加減速によって生じる加工誤差の例を示した。運動方向21がY方向である場合、または、運動方向21がZ方向である場合も、運動方向21がX方向である場合と同様のメカニズムで、機械構造98の変形による加工誤差が発生する。
 図6は、実施の形態1にかかる数値制御工作機械99aが有する数値制御装置1aの構成例を示す図である。図6には、数値制御装置1aとサーボ制御部6とを示す。数値制御装置1aには、コンピュータ支援製造(Computer Aided Manufacturing:CAM)ソフトウェアまたは対話式プログラム作成装置等によって作成された加工プログラムが入力される。数値制御装置1aは、加工プログラムを受け付ける加工プログラム入力部10と、各軸の位置指令である指令値を生成する指令値生成部11と、加工誤差を推定する加工誤差推定部12と、機械モデルを保持するモデル保持部13と、補正量を演算する補正量演算部14aと、各軸の位置指令である指令値を出力する指令値出力部15とを備える。
 加工プログラム入力部10は、受け付けた加工プログラムを指令値生成部11へ出力する。指令値生成部11は、加工プログラムに基づいて、各軸の位置指令を計算する。指令値生成部11は、加工誤差推定部12と指令値出力部15との各々へ各軸の位置指令を出力する。
 機械モデルは、複数の軸の各々の方向である各軸方向における機械構造98の運動に伴う機械構造98の変形を模擬するモデルであって、機械構造98の変形による各軸方向における工具76の変位量である誤差量を表す。加工誤差推定部12は、モデル保持部13から機械モデルを読み出す。サーボ制御部6は、加工誤差推定部12へ各軸の位置フィードバックを出力する。加工誤差推定部12は、軸データと機械モデルとに基づいて、各軸方向のうち工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定し、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する。軸データは、駆動機構97の駆動についてのデータである。軸データは、各軸の速度指令と、各軸の加速度指令と、各軸の駆動機構97の状態量である速度または加速度と、のうちの1つ以上のデータである。加工誤差推定部12は、補正量演算部14aへ加工誤差情報を出力する。
 補正量演算部14aは、モデル保持部13から機械モデルを読み出す。補正量演算部14aは、補正の対象とする1つ以上の軸を、加工誤差情報と機械モデルとに基づいて選択する。補正量演算部14aは、選択された軸についての駆動機構97へ出力される指令の補正に使用される補正量を演算する。補正量演算部14aは、各軸の補正量の情報を指令値出力部15へ出力する。指令値出力部15は、補正量に基づいて各軸の位置指令を補正する。指令値出力部15は、各軸の補正後の位置指令をサーボ制御部6へ出力する。
 次に、数値制御工作機械99aによる加工の例と機械モデルの例とについて説明する。図7は、実施の形態1にかかる数値制御工作機械99aによる加工の例について説明するための図である。図7では、単純な直線方向の加工経路が加工プログラムに記述されている場合における加工の様子を模式的に表す。図7に示す破線矢印は、工具76の先端部の軌跡を表す。図7には、X方向を表す実線矢印と、Z方向を表す実線矢印とを示す。Z方向を表す実線矢印が指す方向をプラスZ方向、プラスZ方向とは逆の方向をマイナスZ方向と称する。X方向を表す実線矢印が指す方向をプラスX方向、プラスX方向とは逆の方向をマイナスX方向と称する。
 数値制御工作機械99aは、プログラム開始位置である位置P1において、工具76の回転を開始させる。数値制御工作機械99aは、Z軸駆動部93Zの駆動により、マイナスZ方向へ工具76を移動させる。これにより、数値制御工作機械99aは、工作物78の上面である加工面へ工具76を移動させる。数値制御工作機械99aは、加工面において、X軸駆動部93Xの駆動によりプラスX方向へ工具76を移動させる。プラスX方向へ工具76を移動させる際、数値制御工作機械99aは、X軸駆動部93Xを加速させた後、X軸駆動部93Xを減速させる。
 位置P2に工具76が到達したときに、数値制御工作機械99aは、X軸駆動部93Xを停止させる。数値制御工作機械99aは、Z軸駆動部93Zの駆動により、プラスZ方向へ工具76を移動させる。これにより、数値制御工作機械99aは、加工面から工具76を引き離す。数値制御工作機械99aは、プログラム終了位置である位置P3において、工具76の回転を停止し、工作物78の加工を終了する。図7に示す加工の場合、X軸駆動部93Xを減速させる位置において、機械構造98の変形が生じる。
 図8は、図6に示す数値制御装置1aが有する加工誤差推定部12による加工誤差の計算例について説明するための図である。図8には、図7に示す加工においてX軸駆動部93Xの減速により加工誤差が生じる様子を模式的に示す。減速位置において、X軸駆動部93Xの被駆動部である機械構造98は、X軸駆動部93Xの減速に伴う慣性力によって、運動方向の後方へ傾くように変形する。図8に示す矢印23は、プラスX方向に機械構造98が運動する際に機械構造98にかかる慣性力の向きを表す。機械構造98の変形により、工具76が必要以上に工作物78に食い込む。数値制御工作機械99aは、工作物78に工具76が食い込むことによって、工作物78を削り過ぎる加工誤差を生じる。図8では、機械構造98が変形を生じていない理想状態のときにおける工具76を破線により示す。
 直進軸であるX軸、Y軸およびZ軸の各々の方向である各軸方向への機械構造98の変形量は、X軸の駆動機構97の軸データを機械モデルへ代入することにより求まる。X軸駆動部93Xの駆動によって生じる各軸方向の誤差量を計算する機械モデルは、次の式(1),(2)および(3)に示すように伝達関数により記述できる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 式(1),(2)および(3)は、X方向における機械構造98の運動に伴う機械構造98の変形を模擬する機械モデルである。式(1)に示すErrxx(s)は、機械構造98の変形によるX方向における工具76の変位量、すなわち機械構造98の変形によるX方向における誤差量を表す。式(2)に示すErryx(s)は、機械構造98の変形によるY方向における工具76の変位量、すなわち機械構造98の変形によるY方向における誤差量を表す。式(3)に示すErrzx(s)は、機械構造98の変形によるZ方向における工具76の変位量、すなわち機械構造98の変形によるZ方向における誤差量を表す。sはラプラス演算子である。
 Xrx(s)の上部にドット記号「・」を付した項は、速度指令のラプラス変換を表す。速度指令は、位置指令の微分により表される。Xfx(s)の上部にドット記号「・」を付した項は、速度フィードバックのラプラス変換を表す。速度フィードバックは、駆動機構97の状態量である速度のデータである。速度フィードバックは、位置フィードバックの微分により表される。Kxx,Kxzは、機械構造98の変形量を記述するための係数である。ωx1,ωx2は、機械構造98の変形を記述するための周波数を表す。ζx1,ζx2は、機械構造98の変形を記述するための減衰係数である。数値制御工作機械99aでは、X軸駆動部93Xの駆動においてY方向の誤差量は生じない。このため、式(2)に示すように、Erryx(s)は、X軸の駆動機構97の軸データに関係なく「0」である。式(1)および(3)の各々には、X軸についての軸データである速度指令および速度フィードバックが変数として含まれる。
 式(1),(2)および(3)に示す機械モデルにおいて、誤差量は、ラプラス変換により周波数領域で記述される。誤差量は、逆ラプラス変換といった既知の方法を用いて、時間領域に変換可能である。以下の説明では、加工誤差は、時間領域における工具76の変位による現象を指すものとする。Errxxは、X方向へ機械構造98が運動する際におけるX方向の誤差量を表す。Erryxは、X方向へ機械構造98が運動する際におけるY方向の誤差量を表す。Errzxは、X方向へ機械構造98が運動する際におけるZ方向の誤差量を表す。図8に示す矢印24は、Errxx,ErryxおよびErrzxの和である誤差量を表す。
 なお、式(1),(2)および(3)に示す機械モデルは例である。機械モデルは、式(1),(2)および(3)に示すものに限られない。機械モデルは、伝達関数の代わりに状態空間モデルが用いられたものでも良い。機械モデルは、時間領域の関数により記述されたものでも良い。機械モデルには、速度指令の代わりに加速度指令が使用されても良く、速度フィードバックの代わりに加速度フィードバックが使用されても良い。加速度フィードバックは、駆動機構97の状態量である加速度のデータである。また、機械モデルには、速度指令と速度フィードバックとの差の代わりに、加速度指令と加速度フィードバックとの差が使用されても良い。状態量である速度のデータには、数値制御工作機械99aが有する複数のサーボ制御部6の各々によって速度を検出した結果、または、複数のセンサの各々によって速度を検出した結果が使用されても良い。状態量である加速度のデータには、数値制御工作機械99aが有する複数のサーボ制御部6の各々によって加速度を検出した結果、または、複数のセンサの各々によって加速度を検出した結果が使用されても良い。
 Kxx,Kxzは、任意の実数である。ωx1,ωx2,ζx1,ζx2は、任意の正の実数である。誤差量は、任意の正の実数である。式(1),(3)では、単一の機械構造98の変形量を記述するための周波数として、各軸方向において共通の周波数ωx1,ωx2を使用する。式(1),(3)では、単一の機械構造98の変形量を記述するための減衰係数として、各軸方向において共通の減衰係数ζx1,ζx2を使用する。機械モデルには、軸方向ごとに異なる周波数が使用されても良く、軸方向ごとに異なる減衰係数が使用されても良い。
 Errxx,ErryxおよびErrzxの各々は、理想的な工具位置に対してプラスX方向へ工具76が変位する加工誤差が生じる場合に正の値を取る。Errxx,ErryxおよびErrzxの各々は、理想的な工具位置に対してマイナスX方向へ工具76が変位する加工誤差が生じる場合に負の値を取る。例えば、Errzxが正の値を取る場合、工具76は、工作物78から浮き上がる。Errzxが負の値を取る場合、工具76は、工作物78へ沈み込む。
 式(1)および(3)には、X軸についての軸データを変数として含む機械モデルの例を示した。機械モデルとしては、X軸以外の軸であるY軸、Z軸、B軸またはC軸についての軸データを変数として含む機械モデルも設定される。Y軸、Z軸、B軸またはC軸についての軸データを変数として含む機械モデルにも、X軸についての軸データを変数として含む機械モデルと同様に、X方向、Y方向およびZ方向の各軸方向における誤差量を表す機械モデルが含まれる。すなわち、X軸、Y軸、Z軸、B軸およびC軸の各々の方向である各軸方向における機械構造98の運動に伴う機械構造98の変形を模擬するモデルであって、機械構造98の変形によるX方向、Y方向およびZ方向の各々における誤差量を表す機械モデルが、数値制御工作機械99aには設定される。設定された機械モデルは、モデル保持部13に格納される。なお、数値制御工作機械99aには、誤差が顕著な軸方向の機械モデルのみが設定されても良い。数値制御工作機械99aには、直進軸であるX軸、Y軸およびZ軸の各々の方向における機械構造98の運動についての誤差量を表す機械モデルのみが設定されても良い。
 図9は、図6に示す数値制御装置1aが有する補正量演算部14aの構成例を示す図である。加工誤差推定部12は、工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを示す加工誤差情報を補正量演算部14aへ出力する。補正量演算部14aは、モデル保持部13から機械モデルを読み出す。補正量演算部14aは、補正の対象とする1つ以上の軸を選択する軸選択部31aと、補正量を計算する補正量計算部32aとを備える。
 軸選択部31aは、加工誤差情報と機械モデルとに基づいて、補正の対象とする軸を選択する。例えば、図8に示すように加工誤差が生じる場合、誤差方向は、X方向およびZ方向である。この場合、誤差方向であるX方向およびZ方向と、誤差方向における誤差量であるErrxxおよびErrzxとを示す加工誤差情報が、軸選択部31aへ入力される。軸選択部31aは、機械モデルを基に、入力された加工誤差情報がX軸駆動部93Xの駆動による加工誤差情報であることを認識する。
 図8に示す例において、Errxxは、矢印24により表される誤差量のうち、加工面に含まれる方向の誤差量成分である。Errzxは、矢印24により表される誤差量のうち、加工面に垂直な方向の誤差量成分である。ErrxxおよびErrzxのうちErrxxは、加工面に垂直な方向における削り過ぎ、または、加工面に垂直な方向における削り残しの要因にはならない。一定の半径の工具76の使用により工具76の半径以内の距離において加減速が行われた場合に、加工面に含まれる方向の誤差量成分による削り残しが生じたとしても、その削り残しの部分の前後を加工する際に、その削り残しの部分は削り取られることになる。このため、加工面に含まれる方向の誤差量成分による削り残しは、加工不良とはならない。また、加工面に含まれる方向の削り過ぎがあったとしても、加工誤差とはならない。一方、加工面に垂直な方向の誤差量成分による加工誤差は、加工面に垂直な方向における削り残し、または、加工面に垂直な方向における削り過ぎを生じさせ、加工不良となって残る。このことから、軸選択部31aは、加工誤差情報に示される誤差方向であるX方向およびZ方向から、補正の対象とする軸としてZ方向を選択する。
 このように、軸選択部31aは、機械モデルと各軸方向の加工誤差情報とを基に、補正の対象とする軸を選択する。軸選択部31aは、選択された軸を示す軸情報を補正量計算部32aへ出力する。
 補正量計算部32aには、加工誤差情報と軸情報とが入力される。補正量計算部32aは、軸情報に示される各軸についての補正量を、加工誤差情報に基づいて計算する。図8に示す例の場合、補正量計算部32aは、Z方向を示す軸情報と加工誤差情報とに基づいて、X軸駆動部93Xの駆動によるZ方向の加工誤差を低減させる補正量を計算する。すなわち、補正量計算部32aは、Z軸駆動部93Zによる被駆動部の運動を補正するための補正量Zrcを計算する。例えば、補正量の計算例としては、Z方向の誤差量成分であるErrzxとは逆の方向に被駆動部を動作させることによってErrzxを相殺させるために、-Errzxを補正量とすることが挙げられる。補正量計算部32aは、補正の対象に選択された軸について、加工誤差推定部12で推定された誤差量を打ち消し得る補正量を計算する。
 補正量の演算処理による遅延、通信による遅延、または、Z軸駆動部93Zのサーボ制御部6の応答遅れなどによって、補正が遅延する場合がある。あるいは、誤差量を相殺可能な補正量とは異なる補正量が計算される場合がある。Z軸駆動部93Zのサーボ制御部6への位置指令の入力に対するZ軸駆動部93Zの応答までの伝達関数をGzm(s)として、補正量計算部32aは、制御系の逆伝達関数であるGzm -1を用いて、制御系の特性を補償可能とする補正量である-Errzxzm -1を出力しても良い。補正量計算部32aは、求めた補正量の情報を指令値出力部15へ出力する。指令値出力部15は、補正量に基づいて各軸の位置指令を補正する。
 次に、数値制御装置1aの動作手順について説明する。図10は、実施の形態1にかかる数値制御工作機械99aが有する数値制御装置1aの動作手順を示すフローチャートである。
 ステップS1において、数値制御装置1aの加工誤差推定部12は、モデル保持部13から機械モデルを読み出す。ステップS2において、加工誤差推定部12は、軸データと機械モデルとに基づいて誤差方向と誤差量とを推定し、加工誤差情報を出力する。加工誤差推定部12は、各軸方向のうち工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定する。加工誤差推定部12は、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する。
 ステップS3において、数値制御装置1aの補正量演算部14aは、軸選択部31aによって、補正の対象とする1つ以上の軸を加工誤差情報に基づいて選択する。ステップS4において、補正量演算部14aは、補正量計算部32aによって、加工誤差情報に基づいて補正量を演算する。補正量計算部32aは、求めた補正量の情報を指令値出力部15へ出力する。
 ステップS5において、指令値出力部15は、選択された軸についての駆動機構97へ出力される位置指令に補正量を加算する。指令値出力部15は、位置指令に補正量を加算することによって、位置指令を補正する。指令値出力部15は、補正後の位置指令をサーボ制御部6へ出力する。以上により、数値制御装置1aは、図10に示す手順による動作を終了する。
 実施の形態1によると、数値制御装置1aは、軸データと機械モデルとに基づいて誤差方向と誤差量とを推定して、補正量を演算する。数値制御装置1aは、各軸の軸駆動部の加減速によって、機械構造98の変形による加工誤差が生じる場合に、加工に影響を及ぼす軸方向の加工誤差のみを補正することができる。数値制御装置1aは、加工に影響を及ぼさない軸方向の加工誤差については補正を行わないことで、不要な補正によって懸念される加工精度の悪化を低減できる。以上により、数値制御装置1aおよび数値制御工作機械99aは、機械構造98の変形に起因する加工誤差を低減できるという効果を奏する。
実施の形態2.
 実施の形態2では、加工誤差を高精度に補正可能とする補正量を簡単な近似計算により計算する例について説明する。実施の形態2にかかる数値制御工作機械99aの構成は、実施の形態1にかかる数値制御工作機械99aの構成と同様である。実施の形態2では、上記の実施の形態1と同一の構成要素には同一の符号を付し、実施の形態1とは異なる構成について主に説明する。
 実施の形態1では、補正量演算部14aは、補正の対象に選択された軸について、機械モデルに基づいて推定された誤差量を打ち消し得る補正量を出力する。ただし、制御系の遅れによって、計算された補正量では加工誤差の十分な補正が困難となる場合がある。または、制御系の特性を補償する逆伝達関数を補正量の演算に用いる場合、伝達関数のモデル化精度が低いことが補正の精度に影響する場合があり得る。逆伝達関数に微分項が存在する場合、補正量が振動的になる場合がある。
 加工誤差の補正では、実際に加工誤差が発生するタイミングにおいて補正のための運動が遅延無く開始されることが重要である。加工面に対し工具76が沈み込むことによる削り過ぎは、一度でも発生すると、その後修正することはできない。その一方、加工面から工具76が浮き上がることにより削り残しが発生する場合は、削り残しの部分の上を工具76が通過する間に工具位置を適正な位置とすることによって削り残しの部分を除去できるため、加工不良を挽回する余地はある。このように、削り過ぎについては補正のタイミングの遅れは許されない一方、削り残しについては、多少発生したとしても加工誤差発生を回避できる。
 図11は、実施の形態2にかかる数値制御装置1aの補正量演算部14aが有する補正量計算部32bの構成例を示す図である。実施の形態2において、補正量演算部14aは、図9に示す補正量計算部32aとは異なる補正量計算部32bを備える。
 補正量計算部32bは、実際に発生が予想される誤差量よりも補正量を大きくすることによって、許容可能な削り残しを発生させる。すなわち、補正量計算部32bは、補正のための運動による削り過ぎが一切発生しないようにするとともに、補正のための運動による削り残しが発生した場合でも補正前後の運動で削り残しを加工可能な補正量を演算する。
 補正量計算部32bは、基準補正量計算部33と、クランプ部34と、変化率計算部35とを備える。基準補正量計算部33は、軸情報と各軸方向についての加工誤差情報とに基づいて、補正量の基準値である基準補正量を計算する。X軸駆動部93Xの駆動によるZ方向の誤差量であるErrzxを例とすると、基準補正量は、-αErrzxである。αは任意の実数である。基準補正量計算部33は、Errzxにマイナスを付した-Errzxにαを乗算することにより、-αErrzxを求める。αの値は、実際に補正を行いながら加工および加工後の形状の計測を行い、削り残しが発生しない条件を探索することにより決定される。基準補正量計算部33は、基準補正量の情報をクランプ部34へ出力する。
 クランプ部34は、補正量の上限値であるZrxlim+を上回る基準補正量に、上限値であるZrxlim+によるクランプ処理を施す。または、クランプ部34は、補正量の下限値Zrxlim-を下回る基準補正量に、下限値であるZrxlim-によるクランプ処理を施す。上限値の絶対値と下限値の絶対値とは、互いに同じでも良く、互いに異なっても良い。クランプ部34は、上限値と下限値との双方が設定されるものに限られない。クランプ部34には、上限値と下限値とのうちの一方のみが設定されても良い。上限値には、-Errzxの最大値が設定されても良い。下限値には、-Errzxの最小値が設定されても良い。加工誤差が生じない補正量を実験的に求めることにより、求めた補正量を基に上限値と下限値とが設定されても良い。クランプ部34は、クランプ後の補正量の情報を変化率計算部35へ出力する。
 補正量演算部14aは、クランプ部34を含む補正量計算部32bを有することによって、上限値および下限値の少なくとも一方に基づいたクランプ処理が施された補正量を出力する。補正量演算部14aは、クランプ部34でのクランプ処理によって、上限値よりも大きい補正量、または、下限値よりも小さい補正量が出力されないようにする。
 変化率計算部35は、補正量を変化させる変化率を計算する。変化率計算部35は、補正量を0からクランプ後の補正量へ変化させる際における変化率と、クランプ後の補正量から0へ補正量を変化させる際における変化率とを計算する。変化率計算部35は、例えば、X軸駆動部93Xが加速度の変化を開始した時点をt=0として、クランプ後の補正量まで時刻tに対して線形に補正量を変化させる場合における変化率を計算する。変化率計算部35は、1次関数、2次関数、三角関数、または指数関数といった、任意の関数によって変化率を計算しても良く、これらの関数の組合せにより近似される数式によって変化率を計算しても良い。変化率計算部35は、計算された変化率に従って変化させた補正量を出力する。
 図12は、図11に示す補正量計算部32bによる補正量の計算例について説明するための図である。図12では、補正量計算部32bにおいて行われる補正量の近似計算の概要をグラフにより示す。図12における(a),(b),(c)の各グラフの縦軸はZ方向の補正量であるZrcを表す。図12における(a),(b),(c)の各グラフの横軸は時刻tを表す。
 図12の(a)には、Z方向の誤差量成分であるErrzxにマイナスを付した-Errzxを表すグラフと、基準補正量計算部33により計算される基準補正量である-αErrzxを表すグラフとを示す。数値制御装置1aは、基準補正量計算部33における基準補正量の計算によって、補正開始時または補正終了時に実際に発生する誤差量に応じた補正を可能とし、補正の遅れを無くすことができる。
 図12の(b)には、クランプ部34によるクランプ処理後の補正量を表すグラフを実線により示す。ここでは、-αErrzxを上限値であるZrxlim+によりクランプ処理した結果を示す。数値制御装置1aは、クランプ部34におけるクランプ処理によって、上限値よりも大きい補正量、または、下限値よりも小さい補正量が出力されないようにする。これにより、数値制御装置1aは、加減速の前後において加工しきれない削り残しが発生することを回避できる。
 図12における(c)には、変化率計算部35によって計算された変化率に従ってクランプ処理後の補正量を変化させた場合における補正量を表すグラフを実線により示す。加速度の変化が開始された時刻から補正量がZrxlim+に到達するまで、一定の変化率で補正量は増加する。補正量がZrxlim+に維持された後、一定の変化率で補正量は減少する。数値制御装置1aは、変化率計算部35において計算された変化率に従って補正量を変化させることにより、簡易な演算により補正量を求めることができる。
 上記説明では、補正量計算部32bは、-Errzxから補正量を計算することとしたが、これに限られない。補正量計算部32bは、制御系の特性を補償可能とする補正量である-Errzxzm -1から補正量を計算しても良い。また、上記説明では補正量計算部32bにクランプ部34と変化率計算部35とが設けられることとしたが、補正量計算部32bでは、クランプ部34と変化率計算部35とのうちの一方が省略されても良い。
 実施の形態2において、補正量演算部14aは、誤差方向において工具76が加工面に向かう場合は補正量を出力し、誤差方向において工具76が加工面から遠ざかる場合は補正量をゼロとしても良い。この場合、数値制御装置1aは、削り過ぎのみを補正し、削り残しは補正しない。これにより、数値制御装置1aは、目視において目立つ傷となる加工誤差を低減できる。
 実施の形態2によると、数値制御装置1aおよび数値制御工作機械99aは、加工誤差の厳密なモデル化が困難である場合において、加工誤差を高精度に補正可能とする補正量を簡単な近似計算により計算することができるという効果を奏する。
実施の形態3.
 実施の形態3では、補正量を一定時間において維持させる補正時間調整を行う例について説明する。実施の形態3にかかる数値制御工作機械99aの構成は、実施の形態1にかかる数値制御工作機械99aの構成と同様である。実施の形態3では、上記の実施の形態1または2と同一の構成要素には同一の符号を付し、実施の形態1または2とは異なる構成について主に説明する。
 図13は、実施の形態3にかかる数値制御装置1aが有する補正量演算部14cの構成例を示す図である。実施の形態3において、数値制御装置1aは、図6および図9に示す補正量演算部14aの代わりに、補正量演算部14cを有する。補正量演算部14cは、図9に示す軸選択部31aとは異なる軸選択部31cと、図9に示す補正量計算部32aとは異なる補正量計算部32cとを備える。
 加工誤差推定部12は、工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを示す加工誤差情報を補正量演算部14cへ出力する。補正量演算部14cは、モデル保持部13から機械モデルを読み出す。軸選択部31cは、加工誤差情報と機械モデルとに基づいて、補正の対象とする1つ以上の軸を選択する。軸選択部31cは、選択された軸を示す軸情報を補正量計算部32cへ出力する。補正量計算部32cには、加工誤差情報と軸情報とが入力される。補正量計算部32cは、軸情報に示される各軸についての補正量を、加工誤差情報に基づいて計算する。
 次に、数値制御工作機械99aによる加工の例と補正量の計算例とについて説明する。図14は、実施の形態3にかかる数値制御工作機械99aによる加工の例について説明するための図である。図14には、XY平面内において工具76を移動させることによって工作物78の加工面を加工した場合における工具76の軌跡の例を示す。図14に示す破線矢印は、工具76の軌跡を表す。この加工では、Z方向には工具76は移動させないものとする。
 工具76は、工作物78の外部の加工開始位置P4から移動を開始し、コーナ部で運動方向を変えながら、工作物78の外周部から工作物78の中心に向かう渦巻状の加工経路に沿って反時計回りに移動する。工具76は、渦巻状の加工経路に沿って反時計回りに移動しながら工作物78の表面を加工する。工具76は、工作物78のXY平面における中心付近の加工終了位置P5に到達するまで、工作物78の表面を加工する。
 工具76の運動方向が変化する位置では、X軸駆動部93XまたはY軸駆動部93Yが加減速を行う。図14に示す実線の円25は、加工面の削り過ぎによる加工誤差形状を表す。円25で表す加工誤差形状は、加減速の際に加工面に対して工具76が沈み込むことによって生じる。図14に示す破線の円26は、加工面の削り残しによる加工誤差形状を表す。円26で表す加工誤差形状は、加減速の際に工具76が加工面から浮き上がることによって生じる。図14に示すように、円25で表す加工誤差形状は、加工面のうちプラスX方向側の半分において生じる。円26で表す加工誤差形状は、加工面のうちマイナスX方向側の半分において生じる。
 X軸駆動部93Xの駆動によって、X方向にErrxxの加工誤差、Y方向にErryxの加工誤差、Z方向にErrzxの加工誤差がそれぞれ生じる。Y軸駆動部93Yの駆動によって、X方向にErrxyの加工誤差、Y方向にErryyの加工誤差、Z方向にErrzyの加工誤差がそれぞれ生じる。加工誤差推定部12は、軸データと機械モデルとに基づいて、各加工誤差の誤差量を計算する。ErrzxおよびErrzyの各々は、加工面に垂直な方向の誤差量成分である。図14に示す加工の場合において、軸選択部31cは、補正の対象とする軸としてZ方向を選択する。
 補正量計算部32cには、加工誤差情報と軸情報とが入力される。補正量計算部32cは、軸情報に示される各軸についての補正量を、加工誤差情報に基づいて計算する。図14に示す例の場合、補正量計算部32cは、Z方向を示す軸情報と加工誤差情報とに基づいて、X軸駆動部93Xの駆動によるZ方向の加工誤差とY軸駆動部93Yの駆動によるZ方向の加工誤差とを補正するための補正量を計算する。すなわち、補正量計算部32cは、Z軸駆動部93Zによる被駆動部の運動を補正するための補正量Zrcを計算する。
 図15は、図13に示す補正量演算部14cが有する補正量計算部32cの構成例を示す図である。補正量計算部32cは、図11に示す補正量計算部32bと同様に、基準補正量計算部33と、クランプ部34と、変化率計算部35とを備える。さらに、補正量計算部32cは、補正時間調整部36を備える。
 基準補正量計算部33は、軸情報と各軸方向についての加工誤差情報とに基づいて、補正量の基準値である基準補正量を計算する。Errzxから求まる基準補正量は、-αxErrzxである。Errzyから求まる基準補正量は、-αyErrzyである。αx,αyは、任意の実数である。基準補正量計算部33は、基準補正量の情報をクランプ部34へ出力する。
 クランプ部34は、補正量の上限値であるZrxlim+,Zrylim+を上回る基準補正量に、上限値であるZrxlim+,Zrylim+によるクランプ処理を施す。または、クランプ部34は、補正量の下限値Zrxlim-,Zrylim-を下回る基準補正量に、下限値であるZrxlim-,Zrylim-によるクランプ処理を施す。Zrxlim+は、X軸駆動部93Xの駆動によって生じるZ方向の加工誤差に対する補正量の上限値である。Zrylim+は、Y軸駆動部93Yの駆動によって生じるZ方向の加工誤差に対する補正量の上限値である。Zrxlim-は、X軸駆動部93Xの駆動によって生じるZ方向の加工誤差に対する補正量の下限値である。Zrylim-は、Y軸駆動部93Yの駆動によって生じるZ方向の加工誤差に対する補正量の下限値である。クランプ部34は、クランプ後の補正量の情報を変化率計算部35へ出力する。
 変化率計算部35は、補正量を変化させる変化率を計算する。変化率計算部35は、計算された変化率に従って変化させた補正量を補正時間調整部36へ出力する。補正時間調整部36は、クランプ処理の基準である上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させる調整を行う。補正量演算部14cは、補正時間調整部36を含む補正量計算部32cを有することによって、クランプ処理の基準である上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させる。
 図16は、図15に示す補正量計算部32cによる補正量の計算例について説明するための図である。図16では、補正量計算部32cにおいて行われる補正量の近似計算の概要をグラフにより示す。図16における(a),(b),(c)の各グラフの縦軸はZ方向の補正量Zrcを表す。図16における(a),(b),(c)の各グラフの横軸は時刻tを表す。
 図16の(a)には、Z方向の誤差量成分であるErrzx,Errzyにマイナスを付した-Errzx,-Errzyを表すグラフと、基準補正量計算部33により計算される基準補正量である-αxErrzx,-αyErrzyを表すグラフとを示す。数値制御装置1aは、基準補正量計算部33における基準補正量の計算によって、補正開始時または補正終了時に実際に発生する誤差量に応じた補正を可能とし、補正の遅れを無くすことができる。
 図16の(b)には、クランプ部34による処理と変化率計算部35による処理とを経た補正量を表すグラフを実線により示す。図16の(b)における実線のグラフは、変化率計算部35によって計算された変化率に従ってクランプ処理後の補正量を変化させた場合における補正量を表す。ここでは、-αxErrzxを上限値であるZrxlim+によりクランプ処理した補正量を変化率に従って変化させた結果と、-αyErrzyを上限値であるZrylim+によりクランプ処理した補正量を変化率に従って変化させた結果とを示す。Zrxlim+とZrylim+とは、互いに異なる値とする。なお、Zrxlim-とZrylim-とは、いずれも0とする。数値制御装置1aは、クランプ部34におけるクランプ処理によって、上限値よりも大きい補正量、または、下限値よりも小さい補正量が出力されないようにする。これにより、数値制御装置1aは、加減速の前後において加工しきれない削り残しが発生することを回避できる。数値制御装置1aは、変化率計算部35において計算された変化率に従って補正量を変化させることにより、簡易な演算により補正量を求めることができる。
 図16の(c)には、補正時間調整部36による調整を経た補正量を表すグラフを実線により示す。図16の(c)に示す例では、補正量がZrxlim+に維持される時間が、図16の(b)において実線により示される補正量の場合よりも延ばされている。また、図16の(c)に示す例では、補正量がZrylim+に維持される時間が、図16の(b)において実線により示される補正量の場合よりも延ばされている。補正量がZrxlim+に維持される時間と、補正量がZrylim+に維持される時間とは、任意に設定可能である。ここでは、補正量が上限値に維持される時間を調整する例を示したが、補正時間調整部36は、下限値によるクランプ処理を経た補正量については、補正量が下限値に維持される時間を調整する。
 数値制御装置1aは、上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させることによって、コーナ部のように連続して加工誤差が発生し得る部分において、補正量を減少させることなくコーナ部の加工を進行させる。数値制御装置1aは、加工誤差を補正するための運動である補正運動が短い距離の間に繰り返される際のオーバーシュートによる傷の発生を回避することができる。これにより、数値制御装置1aは、加工面の品質低下を防ぐことができる。
 加工面からの工具76の浮き上がりによる加工誤差が生じる場合において、浮き上がった工具76が加工面に戻る際におけるオーバーシュートによって、加工面に対して工具76が沈み込むことがあり得る。補正量演算部14cは、オーバーシュートによる加工面の削り過ぎを生じさせないための補正量を演算しても良い。この場合、基準補正量計算部33における基準補正量の計算に用いられるαx,αyを負の値とすることによって、数値制御装置1aは、オーバーシュートによる加工誤差を低減できる。
 実施の形態3によると、数値制御装置1aおよび数値制御工作機械99aは、上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させる。これにより、数値制御装置1aおよび数値制御工作機械99aは、連続して加工誤差が発生し得る部分における傷の発生を低減可能とする適切な補正量を演算することができるという効果を奏する。
実施の形態4.
 実施の形態4では、図1に示す数値制御工作機械99aとは異なる構成の数値制御工作機械における補正量の計算例について説明する。図17は、実施の形態4にかかる数値制御工作機械99dの構成例を示す図である。数値制御工作機械99dは、加工プログラムに従って軸を駆動する工作機械である。数値制御工作機械99dは、3つの直進軸と2つの回転軸とを備える、旋盤型の5軸複合加工機である。実施の形態4では、上記の実施の形態1から3と同一の構成要素には同一の符号を付し、実施の形態1から3とは異なる構成について主に説明する。
 数値制御工作機械99dは、X軸駆動部93Xと、Y軸駆動部93Yと、Z軸駆動部93Zと、A軸駆動部93Aと、C軸駆動部93Cとを備える。X軸、Y軸およびZ軸およびV軸の各々は、直進軸である。A軸およびC軸の各々は、回転軸である。数値制御工作機械99dは、X軸駆動部93X、Y軸駆動部93Y、およびZ軸駆動部93Zの駆動によって、X方向、Y方向およびZ方向に工具76を動かす。A軸駆動部93Aは、Y軸周りに工具76を回転運動させる。C軸駆動部93Cは、Z軸周りに工作物78を回転運動させる。X軸駆動部93Xは、スラント軸と呼ばれる構成を備える。数値制御工作機械99dは、X軸駆動部93XとY軸駆動部93Yとを同時に駆動することによって工具76をX方向に移動させる。
 数値制御工作機械99dは、スラント軸であるX軸駆動部93Xと工具76を回転運動させるA軸駆動部93Aとを備えることによって工具軸方向と駆動軸方向とが一致しない点が、図1に示す数値制御工作機械99aとは異なる。このため、数値制御工作機械99dにおける加工面の方向と加工誤差を生じる誤差方向とは、数値制御工作機械99aの場合とは大きく異なる。なお、数値制御工作機械99dが有する数値制御装置1aは、図6に示す数値制御装置1aと同様の構成を備える。
 次に、数値制御装置1aによる加工誤差の計算例について説明する。図18は、実施の形態4にかかる数値制御工作機械99dが有する数値制御装置1aによる加工誤差の計算例について説明するための図である。図18には、A軸の角度であるθが45度である状態において工具軸に垂直な加工面41を加工する様子を示す。矢印42は、加工方向を表す。加工方向は、プラスX方向とマイナスZ方向との間の斜め方向である。図18には、加工面41の加工時において工具76が加工面41に対して沈み込む加工誤差が生じる様子を模式的に示す。図18では、機械構造98が変形を生じていない理想状態のときにおける工具76を破線により示す。
 図18に示す加工において、X軸駆動部93XとY軸駆動部93YとZ軸駆動部93Zとは、互いに同時に駆動する。X軸駆動部93Xの駆動によって、X方向にErrxxの加工誤差、Y方向にErryxの加工誤差、Z方向にErrzxの加工誤差がそれぞれ生じる。Y軸駆動部93Yの駆動によって、X方向にErrxyの加工誤差、Y方向にErryyの加工誤差、Z方向にErrzyの加工誤差がそれぞれ生じる。Z軸駆動部93Zの駆動によって、X方向にErrxzの加工誤差、Y方向にErryzの加工誤差、Z方向にErrzzの加工誤差がそれぞれ生じる。
 実施の形態4において、数値制御装置1aの補正量演算部14aは、図9に示す補正量演算部14aと同様の構成を備える。軸選択部31aは、加工誤差情報と機械モデルとに基づいて、補正の対象とする1つ以上の軸を選択する。
 数値制御工作機械99dにおいてX方向に生じる総誤差量であるErrXは、次の式(4)により得られる。数値制御工作機械99dにおいてY方向に生じる総誤差量であるErrYは、次の式(5)により得られる。数値制御工作機械99dにおいてZ方向に生じる総誤差量であるErrZは、次の式(6)により得られる。なお、図18に示す矢印43は、ErrX,ErrYおよびErrZの和である誤差量を表す。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
 機械構造98は、機械構造98の重心と機械構造98の駆動点との間の距離が長いほど、大きな変形を生じ易い。そのため、数値制御工作機械99dにおいて、機械構造98は、X軸駆動部93Xの駆動およびZ軸駆動部93Zの駆動によるX方向およびZ方向の変形を生じ易い。例えば、ErrXとErrZとのうちの一方が支配的な加工誤差が生じる場合、補正量演算部14aは、実施の形態1または実施の形態2の場合と同様に補正量を演算し得る。ErrXの寄与とErrZの寄与とが同程度である加工誤差が生じる場合、補正量演算部14aは、加工面41に垂直な方向に生じる誤差量を演算する必要がある。
 加工面41に垂直な方向に生じる誤差量であるErrNは、次の式(7)により得られる。
Figure JPOXMLDOC01-appb-M000007
 φは、次の式(8)を満足する。
Figure JPOXMLDOC01-appb-M000008
 補正量計算部32aは、加工面41に垂直な方向のErrNが生じる場合、ErrNを相殺させる-ErrNを補正量とし得る。補正量計算部32aは、次の式(9),(10),(11)により、X方向の補正量であるXrcとY方向の補正量であるYrcとZ方向の補正量であるZrcとに-ErrNを分ける計算を行う。δは、X軸とY軸との間の角度である。ここでは、δ=π/4(rad)とする。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
 なお、上記説明では、数値制御装置1aは実施の形態1と同様の構成としたが、これに限られない。実施の形態4における数値制御装置1aの構成は、実施の形態2または実施の形態3と同様の構成でも良い。
 実施の形態4によると、数値制御装置1aおよび数値制御工作機械99dは、数値制御工作機械99dの構成が工具軸方向と駆動軸方向とが一致しない場合でも、適切な補正量を演算することができる。これにより、数値制御装置1aおよび数値制御工作機械99dは、加工誤差を低減できるという効果を奏する。
実施の形態5.
 実施の形態5では、加工誤差を補正する加工プログラムを加工プログラム生成装置によって生成する例について説明する。図19は、実施の形態5にかかる加工プログラム生成装置2の構成例を示す図である。実施の形態5では、上記の実施の形態1から4と同一の構成要素には同一の符号を付し、実施の形態1から4とは異なる構成について主に説明する。
 加工プログラム生成装置2は、数値制御工作機械の加工誤差を補正するための加工プログラムを作成する装置である。加工プログラム生成装置2は、CAMソフトウェアまたは対話式プログラム作成装置等に付属されて加工プログラムを編集する付属プログラムである。加工プログラム生成装置2は、加工形状を指定する形状データに基づいた加工プログラムに、加工誤差を補正するための変更を施すことによって、加工誤差を補正する加工プログラムを生成する。以下、変更前加工プログラムとは、加工誤差を補正するための変更が施される前の加工プログラムとする。
 加工プログラム生成装置2は、変更前加工プログラムを受け付ける加工プログラム入力部10と、加工誤差を推定する加工誤差推定部12と、機械モデルを保持するモデル保持部13と、補正量を演算する補正量演算部14aと、数値制御工作機械99eの動作をシミュレーションするシミュレーション部51と、補正量に従って変更前加工プログラムを補正する加工プログラム補正部52とを備える。
 加工プログラム入力部10は、受け付けた変更前加工プログラムをシミュレーション部51と加工プログラム補正部52との各々へ出力する。シミュレーション部51は、変更前加工プログラムに基づいて、数値制御工作機械99eの数値制御装置の挙動、および数値制御工作機械99eのサーボ制御装置である各軸のサーボ制御部6の挙動を模擬する。シミュレーション部51は、補正量が記述される前の加工プログラムである変更前加工プログラムから解析される加工経路に基づいて軸データを計算する。シミュレーション部51は、サーボ制御装置についての既知のシミュレーション方式を用いて、位置フィードバック、速度フィードバック、または加速度フィードバックといった、各軸の状態量を演算する。シミュレーション部51は、各軸の状態量である軸データを加工誤差推定部12へ出力する。
 加工誤差推定部12は、モデル保持部13から機械モデルを読み出す。加工誤差推定部12は、軸データと機械モデルとに基づいて、各軸方向のうち工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定し、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する。加工誤差推定部12は、例えば、シミュレーション部51から取得される加速度フィードバックに基づいて、実施の形態1の場合と同様に各軸方向の誤差量を計算する。加工誤差推定部12は、補正量演算部14aへ加工誤差情報を出力する。
 補正量演算部14aは、モデル保持部13から機械モデルを読み出す。補正量演算部14aは、補正の対象とする1つ以上の軸を加工誤差情報に基づいて選択して、選択された軸についての駆動機構97による運動を補正するための補正量を演算する。補正量演算部14aは、図9に示す軸選択部31aにより、機械モデルと各軸方向の加工誤差情報とを基に、補正の対象とする軸を選択する。補正量演算部14aは、図9に示す補正量計算部32aにより、軸情報に示される各軸についての補正量を、加工誤差情報に基づいて計算する。補正量計算部32aは、求めた補正量の情報を加工プログラム補正部52へ出力する。
 加工プログラム補正部52は、補正量に従って加工誤差を補正するための運動である補正運動を変更前加工プログラムに追加することにより、補正量に従って変更前加工プログラムを補正する。加工プログラム補正部52は、補正運動を追加する変更が施された加工プログラムである変更後加工プログラムを数値制御工作機械99eへ出力する。数値制御工作機械99eは、図1に示す数値制御工作機械99aと同様の構成を備える。数値制御工作機械99eの数値制御装置は、変更後加工プログラムに従って駆動機構97を制御する。数値制御工作機械99eの数値制御装置は、変更後加工プログラムが入力される加工プログラム入力部と、変更後加工プログラムに従って各軸の位置指令である指令値を生成する指令値生成部と、各軸の位置指令である指令値をサーボ制御部6へ出力する指令値出力部とを備える。
 次に、加工プログラム生成装置2の動作手順について説明する。図20は、実施の形態5にかかる加工プログラム生成装置2の動作手順を示すフローチャートである。
 ステップS11において、加工プログラム生成装置2のシミュレーション部51は、変更前加工プログラムに基づいて、軸データを計算する。シミュレーション部51は、加工誤差推定部12へ軸データを出力する。
 ステップS12において、加工誤差推定部12は、モデル保持部13から機械モデルを読み出す。ステップS13において、加工誤差推定部12は、軸データと機械モデルとに基づいて誤差方向と誤差量とを推定し、加工誤差情報を出力する。加工誤差推定部12は、各軸方向のうち工具76の変位を生じる方向である誤差方向と誤差方向における誤差量とを推定する。加工誤差推定部12は、推定された誤差方向と推定された誤差量とを示す加工誤差情報を出力する。
 ステップS14において、加工プログラム生成装置2の補正量演算部14aは、軸選択部31aによって、補正の対象とする1つ以上の軸を加工誤差情報に基づいて選択する。ステップS15において、補正量演算部14aは、補正量計算部32aによって、加工誤差情報に基づいて補正量を演算する。補正量計算部32aは、求めた補正量の情報を加工プログラム補正部52へ出力する。
 加工プログラム補正部52は、補正量に従って加工誤差を補正するための補正運動を変更前加工プログラムに追加することにより、補正量に従って変更前加工プログラムを補正する。ステップS16において、加工プログラム補正部52は、補正量に従って補正された加工プログラムである変更後加工プログラムを出力する。以上により、加工プログラム生成装置2は、図20に示す手順による動作を終了する。
 図21は、実施の形態5にかかる加工プログラム生成装置2によって生成される加工プログラムの第1の例について説明するための図である。図21には、変更前加工プログラムに示される加工経路の例と変更後加工プログラムに示される加工経路の例とを示す。図21に示す加工経路は、コーナ部における加工経路とする。
 図21に示す経路53は、変更前加工プログラムに示される加工経路とする。経路53は、P10,P11,P14,P17およびP18の5個の点を順次通る経路である。図21に示す経路54は、変更後加工プログラムに示される加工経路とする。経路54には、経路53におけるP11とP14との間の直線経路の代わりに、P11,P12,P13,P14を順次通る経路が含まれている。また、経路54には、経路53におけるP14とP17との間の直線経路の代わりに、P14,P15,P16,P17を順次通る経路が含まれている。
 加工プログラム補正部52は、P12へ向けてZ方向への工具76の移動を開始させる点であるP11を変更前加工プログラムに追加する。加工プログラム補正部52は、P11からP12とP13とP14とに工具76を順次移動させる運動についての記述を変更前加工プログラムに追加する。加工プログラム補正部52は、P16からZ方向への工具76の移動を終了させる点であるP17を変更前加工プログラムに追加する。加工プログラム補正部52は、P14からP15とP16とP17とに工具76を順次移動させる運動についての記述を変更前加工プログラムに追加する。
 加工プログラム補正部52は、図12を参照して説明した方法により計算された補正量を、P11,P12,P13,P14を順次通る経路と、P14,P15,P16,P17を順次通る経路との各々に反映させる。図21には、参考として、補正量計算部32bにより計算された補正量の代わりに基準補正量が使用された場合の経路55を破線により示す。
 図22は、実施の形態5にかかる加工プログラム生成装置2の加工プログラム補正部52による加工プログラムの補正について説明するための図である。図22には、変更前加工プログラムの例である加工プログラム56と、変更後加工プログラムの例である加工プログラム57とを示す。加工プログラム57のうち破線で囲われた2つの部分の各々は、補正運動のために追加されたプログラムである。破線で囲われた2つの部分のうちの一方は、P11からP12とP13とP14とに工具76を順次移動させる補正運動が記述された部分である。破線で囲われた2つの部分のうちの他方は、P14からP15とP16とP17とに工具76を順次移動させる補正運動が記述された部分である。
 加工プログラム生成装置2は、実施の形態3と同様に、補正量を一定時間において維持させる補正時間調整を行うこととしても良い。図23は、実施の形態5にかかる加工プログラム生成装置2によって生成される加工プログラムの第2の例について説明するための図である。
 加工プログラム生成装置2は、図19に示す補正量演算部14aの代わりに、図13に示す補正量演算部14cを備える。補正量演算部14cは、図15に示す補正量計算部32cを備える。補正量演算部14cは、補正時間調整部36を含む補正量計算部32cを有することによって、クランプ処理の基準である上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させる。
 例えば、加工プログラム補正部52により図21に示すように加工経路を補正した場合において、コーナ部における2mm以内の範囲において2回の補正運動が連続するものとする。この場合、コーナ部において、短い距離における補正運動が繰り返されることとなる。図23に示す例では、加工プログラム生成装置2は、一定時間において上限値に維持させた補正量を補正量演算部14cにより演算することによって、当該2回の補正運動を1回の補正運動にまとめて変更前加工プログラムに追加する。
 図23に示す経路58は、変更後加工プログラムに示される加工経路とする。経路58には、経路53のうちP11,P14,P17を順次通る経路の代わりに、P11,P12,P14’P16,P17を順次通る経路が含まれている。
 加工プログラム生成装置2は、上限値または下限値に補正量が到達した場合に補正量を一定時間において維持させることによって、コーナ部のように連続して加工誤差が発生し得る部分において、補正量を減少させることなくコーナ部の加工を進行させる。加工プログラム生成装置2は、短い距離の間に補正運動が繰り返される際のオーバーシュートによる傷の発生を回避することができる。これにより、加工プログラム生成装置2は、加工面の品質低下を防ぐことができる。
 実施の形態5によると、加工プログラム生成装置2は、軸データと機械モデルとに基づいて誤差方向と誤差量とを推定して、補正量を演算する。加工プログラム生成装置2は、各軸の軸駆動部の加減速によって、機械構造98の変形による加工誤差が生じる場合に、加工に影響を及ぼす軸方向の加工誤差のみを補正することができる。加工プログラム生成装置2は、加工に影響を及ぼさない軸方向の加工誤差については補正を行わないことで、不要な補正によって懸念される加工精度の悪化を低減できる。以上により、加工プログラム生成装置2は、機械構造98の変形に起因する加工誤差を低減できるという効果を奏する。
実施の形態6.
 実施の形態6では、機械学習によって機械モデルを学習する例について説明する。図24は、実施の形態6にかかる数値制御装置1fの構成例を示す図である。実施の形態6では、上記の実施の形態1から5と同一の構成要素には同一の符号を付し、実施の形態1から5とは異なる構成について主に説明する。図24には、数値制御装置1fとサーボ制御部6と機械装置部96とを示す。
 数値制御装置1fは、図6に示す数値制御装置1aと同様の構成である、加工プログラム入力部10、指令値生成部11、加工誤差推定部12、モデル保持部13、補正量演算部14a、および指令値出力部15を備える。さらに、数値制御装置1fは、機械モデルを学習する機械学習装置100を備える。ここでは、数値制御装置1fは、実施の形態1にて説明する数値制御装置1aの構成に機械学習装置100が組み合わせられたものとする。数値制御装置1fは、実施の形態2,3または4の数値制御装置1aの構成に機械学習装置100が組み合わせられたものでも良い。
 機械学習装置100には、軸データと加工条件情報と加工誤差測定結果と加工誤差情報とが入力される。機械学習装置100には、数値制御工作機械99aの各軸の位置ごとにおける軸データである、位置指令、速度指令、加速度指令、位置フィードバック、速度フィードバック、または加速度フィードバックの1つ以上が機械装置部96から入力される。軸データは、サーボ制御部6から機械学習装置100へ入力されても良い。
 加工条件情報は、数値制御工作機械99aの加工条件についての情報である。加工条件情報には、工作物78の形状、工作物78の材質、工具径、工具材質、工具形状、刃数、1刃当たりの送り量、工具76の回転速度、機械構造情報、工具摩擦情報、および工具使用時間といった情報が含まれる。機械構造情報は、機械構造98の構成を特徴付ける情報である。
 加工誤差測定結果は、実際の加工において加工誤差を測定した結果である。加工誤差測定結果には、加工誤差の有無の判定結果が含まれても良い。加工誤差の有無の判定結果は、数値制御工作機械99aを使用する作業者等が目視により加工誤差の有無を判定した結果でも良い。加工誤差測定結果には、加工面の凹凸情報から抽出された加工誤差の大きさの情報が使用されても良い。加工面の凹凸情報は、3次元測定器(Coordinate Measuring Machine:CMM)またはマイクロスコープといった機器の使用によって取得される。または、加工誤差測定結果には、工具76の近傍に取り付けられた加速度センサの出力信号が使用されても良い。加工誤差測定結果には、加工を模した数値制御工作機械99aの動作を観測した結果が使用されても良い。例えば、レーザ変位計といった変位センサを工具76の代わりに取り付けて加工時と同様に数値制御工作機械99aを動作させた場合における変位センサの出力信号が、加工誤差測定結果に使用されても良い。
 図25は、実施の形態6にかかる数値制御装置1fが有する機械学習装置100の構成例を示す図である。機械学習装置100は、状態観測部101と学習部102とを備える。状態観測部101は、訓練データセットと加工誤差測定結果と加工誤差情報とを、状態変数として観測する。訓練データセットは、軸データおよび加工条件情報を含むデータセットである。学習部102は、訓練データセットに従って機械モデルを学習する。具体的には、学習部102は、機械構造98の変形量を記述するための係数、機械構造98の変形を記述するための周波数、および機械構造98の変形を記述するための減衰係数といった、機械モデルのパラメータを学習する。
 学習部102が用いる学習アルゴリズムはどのようなものを用いても良い。一例として、学習部102が用いる学習アルゴリズムに強化学習(Reinforcement Learning)を適用する場合について説明する。強化学習は、ある環境内におけるエージェントである行動主体が、現在の状態を観測し、取るべき行動を決定する、というものである。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q-Learning)およびTD学習(TD-Learning)などが知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式である行動価値テーブルは、次の式(12)で表される。行動価値関数Q(s,a)は、環境「s」のもとで行動「a」を選択する行動の価値である行動価値Qを表す。
Figure JPOXMLDOC01-appb-M000012
 上記の式(12)において、「st+1」は、時刻「t」における環境を表す。「a」は、時刻「t」における行動を表す。行動「a」によって、環境は「st+1」に変わる。「rt+1」は、その環境の変化によってもらえる報酬を表す。「γ」は、割引率を表す。「α」は、学習係数を表す。Q学習を適用した場合、機械モデルのパラメータが行動「a」となる。
 上記の式(12)により表される更新式は、時刻「t+1」における最良の行動「a」の行動価値が、時刻「t」において実行された行動「a」の行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻「t」における行動「a」の行動価値Qを、時刻「t+1」における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、ある環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播する。
 学習部102は、報酬計算部103および関数更新部104を有する。報酬計算部103は、状態変数に基づいて報酬を計算する。関数更新部104は、報酬計算部103によって算出される報酬に従って、機械モデルのパラメータを決定するための関数を更新する。
 具体的には、報酬計算部103は、加工誤差情報に示される誤差量と加工誤差測定結果とに基づいて報酬「r」を計算する。例えば、加工誤差情報に示される誤差量に加工誤差測定結果が一致する場合において、報酬計算部103は、報酬「r」を増大させる。報酬計算部103は、報酬の値である「1」を与えることによって報酬「r」を増大させる。なお、報酬の値は「1」に限られない。また、加工誤差情報に示される誤差量に加工誤差測定結果が一致しない場合において、報酬計算部103は、報酬「r」を低減させる。報酬計算部103は、報酬の値である「-1」を与えることによって報酬「r」を低減させる。なお、報酬の値は「-1」に限られない。
 関数更新部104は、報酬計算部103によって計算される報酬に従って、機械モデルのパラメータを決定するための関数を更新する。関数の更新は、訓練データセットに従って、例えば行動価値テーブルを更新することによって行うことができる。行動価値テーブルは、任意の行動と、その行動価値とを関連付けてテーブルの形式で記憶したデータセットである。例えばQ学習の場合、上記の式(12)により表される行動価値関数Q(s,a)を、機械モデルのパラメータを決定するための関数として用いる。機械学習装置100は、学習部102での学習結果である機械モデルをモデル保持部13へ出力する。
 学習部102は、数値制御工作機械99aの全ての軸についての情報を一括で訓練データセットにして機械モデルを学習しても良く、数値制御工作機械99aの軸ごとに訓練データセットを構築して軸ごとに機械モデルを学習しても良い。
 ここまで、学習部102が用いる学習アルゴリズムに強化学習を適用する場合について説明したが、学習アルゴリズムには、強化学習以外の学習が適用されても良い。学習部102は、訓練データセットを入力とし、機械モデルのパラメータを出力とするニューラルネットワークを用いて学習を行っても良い。学習部102は、例えば、深層学習(Deep Learning)、遺伝的プログラミング、帰納論理プログラミングまたはサポートベクターマシンといった学習アルゴリズムを用いて機械学習を実行しても良い。
 学習部102は、数値制御装置1fに内蔵されるものに限られない。学習部102は、数値制御装置1fの外部の装置により実現されても良い。この場合、学習部102として機能する装置は、ネットワークを介して数値制御装置1fに接続可能な装置であっても良い。学習部102として機能する装置は、クラウドサーバ上に存在する装置であっても良い。
 実施の形態6によると、数値制御装置1fは、機械モデルを学習することによって、加工誤差の発生条件が加工条件によって複雑に変化する場合において、加工誤差を高精度に予測することができるという効果を奏する。
 次に、実施の形態1から6にかかる数値制御装置1a,1fを実現するハードウェアについて説明する。数値制御装置1a,1fの処理部である、加工プログラム入力部10、指令値生成部11、加工誤差推定部12、補正量演算部14a,14c、指令値出力部15、および機械学習装置100は、処理回路により実現される。処理回路は、プロセッサがソフトウェアを実行する回路であっても良いし、専用の回路であっても良い。
 処理回路がソフトウェアにより実現される場合、処理回路は、例えば、図26に示す制御回路である。図26は、実施の形態1から6にかかる制御回路200の構成例を示す図である。制御回路200は、入力部201、プロセッサ202、メモリ203および出力部204を備える。入力部201は、制御回路200の外部から入力されたデータを受信してプロセッサ202に与えるインターフェース回路である。出力部204は、プロセッサ202またはメモリ203からのデータを制御回路200の外部に送るインターフェース回路である。
 処理回路が図26に示す制御回路200である場合、上記処理部は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ203に格納される。処理回路では、メモリ203に記憶されたプログラムをプロセッサ202が読み出して実行することにより、各機能を実現する。すなわち、処理回路は、数値制御装置1a,1fの処理が結果的に実行されることになるプログラムを格納するためのメモリ203を備える。また、これらのプログラムは、数値制御装置1a,1fの手順および方法をコンピュータに実行させるものであるともいえる。
 プロセッサ202は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、またはDSP(Digital Signal Processor)である。メモリ203は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはDVD(Digital Versatile Disc)等が該当する。
 図26は、汎用のプロセッサ202およびメモリ203により各構成要素を実現する場合のハードウェアの例であるが、各構成要素は、専用のハードウェア回路により実現されても良い。図27は、実施の形態1から6にかかる専用のハードウェア回路205の構成例を示す図である。
 専用のハードウェア回路205は、入力部201、出力部204および処理回路206を備える。処理回路206は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせた回路である。数値制御装置1a,1fの各機能を機能別に処理回路206で実現しても良いし、各機能をまとめて処理回路206で実現しても良い。なお、各構成要素は、制御回路200とハードウェア回路205とが組み合わされて実現されても良い。
 図19に示す加工プログラム生成装置2は、図26に示すハードウェア構成と同様のハードウェア構成、または、図27に示すハードウェア構成と同様のハードウェア構成により実現される。加工プログラム生成装置2の処理部である、加工プログラム入力部10、加工誤差推定部12、補正量演算部14a、シミュレーション部51、および加工プログラム補正部52は、処理回路により実現される。処理回路は、プロセッサがソフトウェアを実行する回路であっても良いし、専用の回路であっても良い。
 図25に示す学習部102が数値制御装置1fの外部の装置により実現される場合、学習部102として機能する装置は、図26に示すハードウェア構成と同様のハードウェア構成、または、図27に示すハードウェア構成と同様のハードウェア構成により実現される。学習部102として機能する装置は、処理回路により実現される。処理回路は、プロセッサがソフトウェアを実行する回路であっても良いし、専用の回路であっても良い。
 以上の各実施の形態に示した構成は、本開示の内容の一例を示すものである。各実施の形態の構成は、別の公知の技術と組み合わせることが可能である。各実施の形態の構成同士が適宜組み合わせられても良い。本開示の要旨を逸脱しない範囲で、各実施の形態の構成の一部を省略または変更することが可能である。
 1a,1f 数値制御装置、2 加工プログラム生成装置、6 サーボ制御部、10 加工プログラム入力部、11 指令値生成部、12 加工誤差推定部、13 モデル保持部、14a,14c 補正量演算部、15 指令値出力部、20 加工誤差形状、21 運動方向、23,24,42,43 矢印、25,26 円、31a,31c 軸選択部、32a,32b,32c 補正量計算部、33 基準補正量計算部、34 クランプ部、35 変化率計算部、36 補正時間調整部、41 加工面、51 シミュレーション部、52 加工プログラム補正部、53,54,55,58 経路、56,57 加工プログラム、71 モータ、72 直進案内機構、73 送りねじ、74 カップリング、75a,75b 支持軸受、76 工具、77 ワークテーブル、78 工作物、79 減速機、80 ナット、82 回転角検出器、83 主軸、90 支持体、93A A軸駆動部、93B B軸駆動部、93C C軸駆動部、93V V軸駆動部、93X X軸駆動部、93Y Y軸駆動部、93Z Z軸駆動部、96 機械装置部、97 駆動機構、98 機械構造、99a,99d,99e 数値制御工作機械、100 機械学習装置、101 状態観測部、102 学習部、103 報酬計算部、104 関数更新部、200 制御回路、201 入力部、202 プロセッサ、203 メモリ、204 出力部、205 ハードウェア回路、206 処理回路。

Claims (11)

  1.  複数の軸の各々について設けられている駆動機構と前記駆動機構から伝達される動力により運動する機械構造とを有し、前記機械構造に取り付けられる工具を用いて工作物を加工する数値制御工作機械を制御する数値制御装置であって、
     複数の前記軸の各々の方向である各軸方向における前記機械構造の運動に伴う前記機械構造の変形を模擬するモデルであって、前記機械構造の変形による前記各軸方向における前記工具の変位量である誤差量を表す機械モデルを保持するモデル保持部と、
     前記駆動機構の駆動についてのデータである軸データと前記機械モデルとに基づいて、前記各軸方向のうち前記工具の変位を生じる方向である誤差方向と前記誤差方向における前記誤差量とを推定し、推定された前記誤差方向と推定された前記誤差量とを示す加工誤差情報を出力する加工誤差推定部と、
     補正の対象とする1つ以上の前記軸を前記加工誤差情報に基づいて選択して、選択された前記軸についての前記駆動機構へ出力される指令の補正に使用される補正量を演算する補正量演算部と、
     を備えることを特徴とする数値制御装置。
  2.  前記軸データは、各軸の速度指令と、各軸の加速度指令と、各軸の前記駆動機構の状態量である速度または加速度と、のうちの1つ以上のデータであることを特徴とする請求項1に記載の数値制御装置。
  3.  前記補正量演算部は、クランプ処理が施された前記補正量を出力することを特徴とする請求項1または2に記載の数値制御装置。
  4.  前記補正量演算部は、前記クランプ処理の基準である上限値または下限値に前記補正量が到達した場合に前記補正量を一定時間において維持させることを特徴とする請求項3に記載の数値制御装置。
  5.  前記補正量演算部は、前記補正量を変化させる変化率を計算し、前記変化率に従って変化させた補正量を出力することを特徴とする請求項1から4のいずれか1つに記載の数値制御装置。
  6.  前記補正量演算部は、前記誤差方向において前記工具が前記工作物の加工面に向かう場合は補正量を出力し、前記誤差方向において前記工具が前記加工面から遠ざかる場合は補正量をゼロとすることを特徴とする請求項1から5のいずれか1つに記載の数値制御装置。
  7.  前記軸データと、前記数値制御工作機械の加工条件についての情報と、加工誤差測定結果と、前記加工誤差情報とを状態変数として観測する状態観測部と、
     前記状態変数に基づいて作成されるデータセットに従って前記機械モデルを学習する学習部と、
     を備えることを特徴とする請求項1から6のいずれか1つに記載の数値制御装置。
  8.  複数の軸の各々について設けられている駆動機構と前記駆動機構から伝達される動力により運動する機械構造とを有し、前記機械構造に取り付けられる工具を用いて工作物を加工する数値制御工作機械であって、
     複数の前記軸の各々の方向である各軸方向における前記機械構造の運動に伴う前記機械構造の変形を模擬するモデルであって、前記機械構造の変形による前記各軸方向における前記工具の変位量である誤差量を表す機械モデルを保持するモデル保持部と、
     前記駆動機構の駆動についてのデータである軸データと前記機械モデルとに基づいて、前記各軸方向のうち前記工具の変位を生じる方向である誤差方向と前記誤差方向における前記誤差量とを推定し、推定された前記誤差方向と推定された前記誤差量とを示す加工誤差情報を出力する加工誤差推定部と、
     補正の対象とする1つ以上の前記軸を前記加工誤差情報に基づいて選択して、選択された前記軸についての前記駆動機構へ出力される指令の補正に使用される補正量を演算する補正量演算部と、
     を備えることを特徴とする数値制御工作機械。
  9.  複数の軸の各々について設けられている駆動機構と前記駆動機構から伝達される動力により運動する機械構造とを有し、前記機械構造に取り付けられる工具を用いて工作物を加工する数値制御工作機械の加工プログラムを生成する加工プログラム生成装置であって、
     複数の前記軸の各々の方向である各軸方向における前記機械構造の運動に伴う前記機械構造の変形を模擬するモデルであって、前記機械構造の変形による前記各軸方向における前記工具の変位量である誤差量を表す機械モデルを保持するモデル保持部と、
     前記駆動機構の駆動についてのデータである軸データと前記機械モデルとに基づいて、前記各軸方向のうち前記工具の変位を生じる方向である誤差方向と前記誤差方向における前記誤差量とを推定し、推定された前記誤差方向と推定された前記変位量とを示す加工誤差情報を出力する加工誤差推定部と、
     補正の対象とする1つ以上の前記軸を前記加工誤差情報に基づいて選択して、選択された前記軸についての前記駆動機構による運動を補正するための補正量を演算する補正量演算部と、
     前記補正量に従って前記加工プログラムを補正する加工プログラム補正部と、
     を備えることを特徴とする加工プログラム生成装置。
  10.  前記補正量が記述される前の前記加工プログラムから解析される加工経路に基づいて前記軸データを算出するシミュレーション部をさらに備えることを特徴とする請求項9に記載の加工プログラム生成装置。
  11.  複数の軸の各々について設けられている駆動機構と前記駆動機構から伝達される動力により運動する機械構造とを有し、前記機械構造に取り付けられる工具を用いて工作物を加工する数値制御工作機械の加工プログラムを生成する加工プログラム生成方法であって、
     複数の前記軸の各々の方向である各軸方向における前記機械構造の運動に伴う前記機械構造の変形を模擬するモデルであって、前記機械構造の変形による前記各軸方向における前記工具の変位量である誤差量を表す機械モデルを読み出すステップと、
     前記駆動機構の駆動についてのデータである軸データと前記機械モデルとに基づいて、前記各軸方向のうち前記工具の変位を生じる方向である誤差方向と前記誤差方向における前記誤差量とを推定し、推定された前記誤差方向と推定された前記変位量とを示す加工誤差情報を出力するステップと、
     補正の対象とする1つ以上の前記軸を前記加工誤差情報に基づいて選択して、選択された前記軸についての前記駆動機構による運動を補正するための補正量を演算するステップと、
     前記補正量に従って前記加工プログラムを補正するステップと、
     を含むことを特徴とする加工プログラム生成方法。
PCT/JP2022/027773 2022-07-14 2022-07-14 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法 WO2024013955A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/027773 WO2024013955A1 (ja) 2022-07-14 2022-07-14 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法
JP2022569153A JP7278507B1 (ja) 2022-07-14 2022-07-14 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/027773 WO2024013955A1 (ja) 2022-07-14 2022-07-14 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法

Publications (1)

Publication Number Publication Date
WO2024013955A1 true WO2024013955A1 (ja) 2024-01-18

Family

ID=86382609

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/027773 WO2024013955A1 (ja) 2022-07-14 2022-07-14 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法

Country Status (2)

Country Link
JP (1) JP7278507B1 (ja)
WO (1) WO2024013955A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0420103U (ja) * 1990-06-12 1992-02-20
JPH08297508A (ja) * 1995-04-26 1996-11-12 Canon Inc 位置決め装置
JP2000322116A (ja) * 1999-05-13 2000-11-24 Toyoda Mach Works Ltd サーボ制御装置及び位置決め装置
JP2000322115A (ja) * 1999-05-13 2000-11-24 Toyoda Mach Works Ltd 数値制御装置
JP6567205B1 (ja) * 2018-06-14 2019-08-28 三菱電機株式会社 機械学習装置、補正パラメータ調整装置および機械学習方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105234743B (zh) * 2015-10-13 2017-06-16 天津大学 一种五轴加工中心刀具变形误差补偿方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0420103U (ja) * 1990-06-12 1992-02-20
JPH08297508A (ja) * 1995-04-26 1996-11-12 Canon Inc 位置決め装置
JP2000322116A (ja) * 1999-05-13 2000-11-24 Toyoda Mach Works Ltd サーボ制御装置及び位置決め装置
JP2000322115A (ja) * 1999-05-13 2000-11-24 Toyoda Mach Works Ltd 数値制御装置
JP6567205B1 (ja) * 2018-06-14 2019-08-28 三菱電機株式会社 機械学習装置、補正パラメータ調整装置および機械学習方法

Also Published As

Publication number Publication date
JP7278507B1 (ja) 2023-05-19

Similar Documents

Publication Publication Date Title
JP5566469B2 (ja) 数値制御方法
KR100914349B1 (ko) 서보모터의 제어방법
Pan et al. Robotic machining from programming to process control: a complete solution by force control
JP4829359B2 (ja) 機上計測装置のプローブ取り付け位置算出方法
CN111123842B (zh) 数值控制装置
US20120191238A1 (en) Control device and control method of five-axis control machine tool, program, and mold
JP6585666B2 (ja) 速度一定が要求されるアプリケーションにおいて学習制御を行うロボット及びその制御方法
JP6450732B2 (ja) 数値制御装置
US11567470B2 (en) Computer-aided optimization of numerically controlled machining of a workpiece
WO2008113807A2 (en) A method and an apparatus for programming a material removal process carried out on an object by means of a robot
US10994422B2 (en) Robot system for adjusting operation parameters
JP2009098982A (ja) 加工シミュレーション装置およびそのプログラム
JP2019181610A (ja) モータエンコーダ及びセンサを用いて学習制御を行うロボットシステム
JP2019152936A (ja) 工作機械の加工シミュレーション装置
JP2001125613A (ja) 数値制御シミュレーション装置
EP1536302B1 (en) Method and apparatus for controlling a machine tool
JP3135738B2 (ja) 数値制御装置
JP2007219951A (ja) ワークの姿勢制御方法およびnc工作機械
JP6961128B1 (ja) シミュレーション装置、工作機械システム、シミュレーション方法および加工方法
JP6595273B2 (ja) 数値制御装置
WO2024013955A1 (ja) 数値制御装置、数値制御工作機械、加工プログラム生成装置および加工プログラム生成方法
CN107303626B (zh) 激光加工装置及激光加工方法
JP2006235776A (ja) 工作機械及びこの工作機械による加工方法
US10579044B2 (en) Computer readable information recording medium, evaluation method, and control device
JP2019171561A (ja) ワークピース/ツール間境界における振動現象を制限するための方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22951168

Country of ref document: EP

Kind code of ref document: A1