Position control system of a machine tool control drive based on motor and object position

11079734 · 2021-08-03

Assignee

Inventors

Cpc classification

International classification

Abstract

Respective amounts of movement of feed axes corresponding to first and second position controllers are determined, and if a value obtained by dividing a smaller amount of movement by a larger amount of movement, in the two amounts of movement, falls within a prescribed reference range, a position controller for the feed axis with the smaller amount of movement selects a detected motor position as a position feedback value and a position controller for the other feed axis selects a detected object position as a position feedback value.

Claims

1. A position control system for controlling a position of a controlled object by driving a plurality of motors provided respective for a plurality of feed axes, the system comprising: a plurality of object position detectors, each provided for each of the plurality of feed axes, each object position detector detecting a position, in a movement direction of the relevant axis, of the controlled object as a detected object position; a plurality of motor position detectors, each provided for each of the plurality of feed axes, each motor position detector detecting a position of a motor driving the relevant feed axis as a detected motor position; a position controller provided for each of the plurality of feed axes, each position controller controlling driving of the motor that drives the relevant feed axis so that a difference between a position feedback value and a command position is eliminated; and a numerical controller that outputs the command positions to the plurality of position controllers, respectively, wherein the position controller for a feed axis, a value of which falls within a prescribed reference range, the value being obtained by dividing an amount of movement of the feed axis by a larger amount in amounts of movements of the plurality of feed axes than the amount of movement of the feed axis, selects a value based on the detected motor position as the position feedback value, and the position controller for a feed axis, having the value obtained by the division falling outside the prescribed reference range, selects a value based on the detected object position as the position feedback value.

2. The position control system according to claim 1, wherein each position controller stores a difference between the detected object position and the detected motor position at a timing of switching of the position feedback value from the value based on the detected object position to the value based on the detected motor position, as an initial difference, and during selection of the value based on the detected motor position, employs a value obtained by the detected motor position and the initial difference being added up as the position feedback value.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) Embodiments of the present disclosure will be described by reference to the following figures, wherein:

(2) FIG. 1 is an example system block diagram illustrating a schematic configuration of a position control system according to the present invention;

(3) FIG. 2 is a system block diagram illustrating an example schematic configuration of a numerical controller in the position control system according to the present invention;

(4) FIG. 3 is an example flowchart illustrating processing in position control loop selector 304;

(5) FIG. 4 is an example flowchart illustrating processing in a position control loop switch 120a;

(6) FIG. 5 is a block diagram illustrating a conventional position control system;

(7) FIG. 6 is a sectional view of a tapered plug part having a tapering angle α°; and

(8) FIG. 7 is an example schematic block diagram illustrating internal processing in a conventional numerical controller.

EMBODIMENTS

(9) Embodiments of the present invention will be described below with reference to the drawings.

Embodiment 1

(10) FIG. 1 is an example system block diagram illustrating a schematic configuration of a position control system according to the present invention and is provided with reference numerals that are the same as those in FIG. 5 for components that are the same as those in FIG. 5. Also, description of processing that is similar to that in FIG. 5 will be omitted. The position control system includes a first position controller 101a and a second position controller 101b provided for two feed axes, respectively. Note that the first position controller 101a and the second position controller 101b are substantially the same in configuration, and thus where there is no need to distinguish between “first” and “second,” suffixes a, b will be omitted, and will simply be referred to as “position controller(es) 101.” The same applies to other members. A detected motor position Pm output by a motor position detector 106 and a detected object position Pd output by a linear encoder 103 are fed to a position control loop switch 120 of each position controller 101. The position control loop switch 120 receives a switching signal C for providing a command to select the detected motor position Pm or the detected object position Pd as a position control loop input (position feedback value) from a numerical controller 102 and selects either of the detected positions according to the switching signal as a position control loop input (position feedback value) and feeds the position control loop input to a subtractor 104. Processing for subtracting the detected position fed out by the position control loop switch 120 from a command position P and the subsequent processing in the subtractor 104 are similar to those in the example illustrated in FIG. 5.

(11) FIG. 2 is a system block diagram illustrating an example schematic configuration of the numerical controller 102 in the position control system according to the present invention and is provided with reference numerals that are the same as those in FIG. 7 for components that are the same as those in FIG. 7. Also, description of processing that is similar to that in FIG. 7 will be omitted. Command positions Pa, Pb for two feed axes, which have been calculated by function generator 303, are fed out not only to the position controlleres 101 but also to position control loop selector 304. The position control loop selector 304 preferably includes, e.g., a CPU with storage unit such as a ROM incorporated therein. In the storage unit, e.g., a control program for selecting a position feedback value, which will be described later, and reference range numerical values, which are references for selection, are stored. Also, where Pa.sub.n, Pb.sub.n are command positions in an n-th control cycle, the storage unit in the position control loop selector 304 retains command positions Pa.sub.n-1, Pb.sub.n-1 in a control cycle that is one control cycle before, in addition to the current command positions Pa.sub.n, Pb.sub.n.

(12) FIG. 3 is an example flowchart illustrating processing in the position control loop selector 304. In S30, an amount of n-th movement of a first feed axis controlled by the first position controller 101a and an amount of n-th movement of a second feed axis controlled by the second position controller 101b are compared with each other. In other words, a feed axis with a larger amount of movement in the two feed axes is identified. The “amount of movement” here is an amount of movement of the relevant command position P and is an amount of movement in one control cycle. More specifically, the position control loop selector 304 calculates an absolute value of a difference between a current command position P.sub.n and a command position P.sub.n-1 in a control cycle that is one control cycle before as an amount of movement. However, as necessary, the amount of movement may be calculated by another method. For example, the amount of movement to be calculated is not limited to an amount of movement in one control cycle but may be an amount of movement in a longer period of time such as two control cycles or three control cycles. Also, the amount of movement may be calculated based not on command positions but on the detected object position Pd or the detected motor position Pm.

(13) If the amount of movement on the first position controller 101a side is larger (if the amount of movement of the first feed axis is larger), the position control loop selector 304 proceeds to the processing in S31, and if not (if the amount of movement of the second feed axis is larger or the first feed axis and the second feed axis are equal to each other in amount of movement), the position control loop selector 304 proceeds to the processing in S32. In S31 (where the amount of movement of the first feed axis is larger), the position control loop selector 304 determines whether or not a value obtained by dividing the amount of n-th movement of the feed axis controlled by the second position controller 101b by the amount of n-th movement of the feed axis controlled by the first position controller 101a (larger movement amount) falls within a reference range of “more than 0 but less than K.” If the value obtained by the division falls within the reference range, the position control loop selector 304 proceed to S33, and if not, the position control loop selector 304 proceed to the processing in S34. Here, the reference range can freely be determined by a party utilizing the present invention. For example, where θ is an angle formed between a vector of movement of an object and a vector of movement of the feed axis with the larger amount of movement, if a range of the angle θ in which no intended striped pattern attributable to an interpolation error of a linear encoder is generated in a machined surface is 0°<θ<5°, the reference range is more than 0 but less than K=tan 5°=0.0875. Here, in the processing in S31, the result of the calculation being 0 means that the feed axis on the position controller 101b side is in a halting state.

(14) In S32 (where the amount of movement of the second feed axis is larger or the first feed axis and the second feed axis are equal to each other in amount of movement), also, the position control loop selector 304 determines whether or not a value obtained by dividing the amount of n-th movement of the feed axis controlled by the first position controller 101a by the amount of n-th movement of the feed axis controlled by the position controller 101b (larger movement amount) falls within the reference range of “more than 0 and less than K.” If the value obtained by the division falls within the reference range, the position control loop selector 304 proceeds to the processing in S35, and if not, the position control loop selector 304 proceeds to the processing in S36.

(15) In S34 and S36, since the condition that “a value obtained by dividing an amount of movement of a feed axis by a larger movement amount falls within the reference range” is not satisfied, switching signals Ca, Cb for providing a command to employ detected object positions Pda, Pdb as position control loop inputs are fed out to the first and second position control loop switches 120a, 120b, respectively. On the other hand, in S33, since the value obtained by dividing the amount of movement of the second feed axis by the amount of movement of the first feed axis with the larger movement amount falls within the reference range, the position control loop selector 304 outputs a signal Cb for providing a command to employ the detected motor position Pmb as a position control loop input, to the signal second position controller 101b and outputs a signal Ca for providing a command to employ the detected motor position Pma as a position control loop input, to the first position controller 101a.

(16) Likewise, in S35, since the value obtained by dividing the amount of movement of the first feed axis by the amount of movement of the second feed axis with the larger movement amount falls within the reference range, the position control loop selector 304 outputs a signal Ca for providing a command to employ the detected motor position Pma as a position control loop input, to a first position controller 101a and outputs a signal Cb for providing a command to employ a detected motor position Pmb as a position control loop input, to the second position controller 101b. The processing in the position control loop selector 304 is performed in such a manner as described above.

(17) Although in the above description, only the case where one controlled object is driven by two orthogonal feed axes has been taken as an example, the technique disclosed in the present specification may be employed for the case where one controlled object is driven by more feed axes. For example, it is possible that where an orthogonal three-axis, X-, Y-, and Z-axis configuration is employed for feed axes in a machining center of a machine tool, for each of the feed axes, a value obtained by an amount of n-th movement of the feed axis by a larger movement amount is calculated, whether or not the value falls within a reference range is determined, and for a feed axis, the movement amount of which falls within the reference range, a switching signal C for selecting a detected motor position Pm as a position control loop input is output.

Embodiment 2

(18) Next, another embodiment will be described. Embodiment 2 is different from Embodiment 1 in that the processing in each position control loop switch 120 illustrated in FIG. 1 is complicated. Each position control loop switch 120 preferably includes, e.g., a CPU with storage unit such as a ROM incorporated therein. Also, in the below description, respective n-th data are indicated in the manner of Ca.sub.n or Pma.sub.n. FIG. 4 is an example flowchart illustrating processing in a first position control loop switch 120a. In S40, a switching signal Ca.sub.n input from position control loop selector 304 is interpreted and whether or not the switching signal Ca.sub.n is a command to employ a detected motor position Pma is determined. If the content of the switching signal is a command to select a detected motor position Pma, the first position control loop switch 120a proceeds to the processing in S41 and if not; that is, if the content of the switching signal Ca.sub.n is a command to select a detected object position Pda, the first position control loop switch 120a proceeds to the processing in S44. In the storage unit incorporated in the position control loop switch 120a, a switching signal Ca.sub.n-1 input from position control loop selector 304 in a control cycle that is one control cycle before; that is, in an n−1-th control cycle, is stored. In S41, the position control loop switch 120 determines whether or not the switching signal Ca.sub.n-1 is a command to select a detected object position Pda. If the content of the switching signal is a command to select a detected object position Pda, the position control loop switch 120a proceeds to the processing in S42, and if not; that is, if the content of the switching signal Ca.sub.n-1 is a command to select a detected motor position Pma, the position control loop switch 120a proceeds to the processing in S43. In S42, the position control loop switch 120a calculates a difference between an n-th; that is, current detected object position Pda.sub.n and an n-th; that is, current detected motor position Pma.sub.n as an initial difference D and proceeds to the processing in S43. Here, the initial difference D is stored in the storage unit incorporated in the position control loop switch 120a. The initial difference stored in the storage unit is not updated until calculation is newly performed in the processing in S42. Next, in S43, the position control loop switch 120a feeds out “Pma.sub.n+D” obtained by adding up the detected motor position Pma.sub.n and the initial difference D stored in the storage unit, as a position control loop input (position feedback value) to a subtractor 104a. On the other hand, in S44, the position control loop switch 120a feeds out the detected object position Pda.sub.n as a position control loop input, to the subtractor 104a.

(19) As described above, the position control loop switch 120a described in Embodiment 2 is configured to perform processing for updating an initial difference D, which is a difference between Pda and Pma, at a timing of transition of the switching signal Ca from the position control loop selector 304 from Pda selection to Pma selection, and if the switching signal Ca is one for providing a command to select Pma, outputting “Pma.sub.n+D” as a position control loop input and in any other case, outputting Pda.sub.n. Although in Embodiment 2, the processing in the position control loop switch 120a has been described, it should be understood that processing similar to the above is also performed in the position control loop switch 120b.

(20) Embodiments of the present invention have been described taking the examples above. As a result of employment of either of the embodiments, where machining is performed with a plurality of feed axes in synchronization with each other, even if extremely gentle inclined surface machining or extremely gentle tapered surface machining is performed, a detected position of a linear encoder 103 that causes a machined striped pattern; that is, a defect in texture of a machined surface, is not employed for the feed axis with a smaller amount of movement in a plurality of feed axes, enabling reduction of striped unevenness in the machined surface. Furthermore, addition of Embodiment 2 enables reduction of striped unevenness in the machined surface while enjoying an advantage of direct detection of a current position of a controlled object, which is an original purpose of mounting of linear encoders 103.

(21) Although some modes of the present invention have been described as embodiments, the present invention is not limited only to such modes. For example, in the above description, the position control loop selector 304 are described as a component inside the numerical controller 102; however, control is performed with the first position controller 101a and the second position controller 101b in synchronization with each other, and thus, an alternation of components so that the first position controller 101a and the second position controller 101b monitor amounts of movement of each other and each position controller 101 itself determines whether or not a value obtained by dividing an amount of movement of a relevant feed axis by an amount of movement of the other feed axis falls within a reference range and selects a position control loop input (position feedback value) according to a result of the determination falls within the technique of the present invention. In other words, the position control loop selector 304 may be provided not in the numerical controller 102 but in each of the position controllers 101.

REFERENCE SIGNS LIST

(22) 101 position controller, 102 numerical controller, 103 linear encoder, 104 subtractor, 108 subtractor, 105 velocity command calculator, 106 motor position detector, 107 differentiator, 111 adder, 112 current controller, 113 motor, 114 coupling, 115 ball screw, 116 ball screw nut, 117 controlled object, 118 detection head, 119 scale, 120 position control loop switch, 301 program input device, 302 program interpreter, 303 function generator, 304 position control loop selector, 601 tapered plug part, 602 tapered portion.