CN117318574A - Servo motor control method and servo motor control device - Google Patents

Servo motor control method and servo motor control device Download PDF

Info

Publication number
CN117318574A
CN117318574A CN202310777642.1A CN202310777642A CN117318574A CN 117318574 A CN117318574 A CN 117318574A CN 202310777642 A CN202310777642 A CN 202310777642A CN 117318574 A CN117318574 A CN 117318574A
Authority
CN
China
Prior art keywords
speed
motor
acceleration
buffer
pulse
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202310777642.1A
Other languages
Chinese (zh)
Inventor
足立浩一郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nidec Instruments Corp
Original Assignee
Nidec Instruments Corp
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 Nidec Instruments Corp filed Critical Nidec Instruments Corp
Publication of CN117318574A publication Critical patent/CN117318574A/en
Pending legal-status Critical Current

Links

Abstract

The invention provides a servo motor control method and a servo motor control device. Even when a command exceeding the maximum speed of the motor is input, the position and speed of the motor are controlled as faithfully as possible to the intention of the user who generated the command. A servo motor control device for servo control according to command pulses comprises: an accelerometer that stores average acceleration for each of a plurality of speed regions obtained by dividing a range from a speed 0 to a maximum speed of the motor; an acceleration calculation unit that obtains an average acceleration for each speed region from the command pulse and stores the average acceleration in an accelerometer; a buffer section that stores the number of instruction pulses; a saturation calculation unit that, when the speed exceeds a limit value, stores the command pulse of the exceeding portion in a buffer unit and holds the command pulse until the next control cycle, thereby limiting the speed of the motor to be within the limit value; and a speed change unit that reads out the average acceleration from the accelerometer and changes the speed.

Description

Servo motor control method and servo motor control device
Technical Field
The present invention relates to a servo motor control method and a servo motor control device for numerical control (NC: numerical Control) or the like of a machine tool.
Background
In numerical control of a machine tool, a command pulse for moving a motor of a machine tool by a predetermined minute amount is generated for each axis of the machine tool according to a numerical control program (machining program), and servo control of the motor is performed according to the command pulse. The command pulse includes a command pulse for rotating the motor in the positive direction and a command pulse for rotating the motor in the negative direction (also referred to as the reverse direction), and a value obtained by subtracting the integrated value of the command pulse for rotating the motor in the negative direction from the integrated value of the command pulse for rotating the motor in the positive direction represents a current position command to the motor in servo control. When the motor is rotated in one direction, the speed of the motor is proportional to the number of command pulses input per unit time.
A tool or a workpiece is referred to as an object, and a command pulse used for numerical control may include a portion that abruptly changes the moving speed of the object. The sudden change in the moving speed of the object is not preferable because it gives mechanical impact to the machine tool. In this case, the command pulse is corrected so that the abrupt speed change becomes a smooth speed change. For example, patent document 1 discloses the following: a portion that suddenly changes the moving speed of the object is detected from the command pulse, a pulse correction section including the portion that suddenly changes the speed is determined, and correction is performed only in the pulse correction section so that the change in speed becomes slow. In addition, in numerical control, when a corner point is included in a movement path of an object, acceleration and deceleration control of the speed is performed before and after the corner point. Patent document 2 discloses a numerical controller capable of appropriately performing acceleration and deceleration control before and after a corner point even if a time constant is changed during execution of a machining program.
Patent document 3 discloses: in order to suppress vibration generated when the machine tool is driven according to the feed axis command, the lengths of two of the four periods are made the same as each other and the lengths of the remaining two periods are made the same as each other when the period of acceleration from the speed 0 to the first speed, the period of deceleration from the first speed to the speed 0, the period of acceleration from the speed 0 to the opposite direction to the second speed, and the period of deceleration from the second speed to the speed 0 are continued. Patent document 4 discloses that, in order to prevent waste of movement time when numerical control of a machine tool is performed, two consecutive movement commands are synthesized.
Typically, the maximum rotational speed of the motor is determined. In the case of numerical control, when the rotational speed of the motor determined by an input command pulse exceeds a maximum speed, the motor cannot be rotated at such a speed, and therefore such command pulse has been omitted conventionally. However, if the command pulse is ignored, the position of the object such as a tool or a workpiece deviates from the position desired by the user. Patent document 5 discloses that in order to suppress occurrence of such positional deviation, a motor is rotated at a maximum speed when an instruction exceeding the maximum speed is input, and a portion exceeding the maximum speed is saved in the instruction and added to an instruction value of the next control cycle.
[ Prior Art literature ]
[ patent literature ]
Patent document 1: japanese patent No. 5336217
Patent document 2: japanese patent No. 5573664
Patent document 3: japanese patent laid-open No. 2021-71895
Patent document 4: japanese patent No. 5413085
Patent document 5: japanese patent laid-open No. 2003-202912
Disclosure of Invention
In the method described in patent document 5, if the motor is rotated in only one direction, even when a command exceeding the maximum speed of the motor is input, the position of the tool or workpiece can be finally set to the position that the user originally wants. However, the user's intent includes not only the final position of the object, but also what speed change is given to move the object to a specified position. In the method described in patent document 5, it is not necessarily possible to reflect the intention of the user as to what speed change is given.
The present invention aims to provide a servo motor control method and a servo motor control device, which can control the position or speed change of a motor as faithfully as possible to the intention of a user generating a command even when the command exceeding the maximum speed of the motor is input.
According to one aspect of the present invention, there is provided a servo motor control method for inputting a command pulse for commanding a movement by a predetermined minute movement amount and performing servo control of a motor based on the command pulse, the servo motor control method including: a storage step of dividing a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and storing an average value of accelerations under a command pulse inputted in the past as an average acceleration in an accelerometer for each speed region; a speed limiting step of storing, when the speed determined by the command pulse exceeds a specified limit value, a part of the command pulse exceeding the limit value in a buffer, and adding the part of the command pulse to the command pulse input in the next control cycle, thereby limiting the speed of the motor to be within the limit value; and a speed change step of reading out an average acceleration of the speed region corresponding to the speed limited in the speed limiting step from the accelerometer, and changing the speed limited within the limit value using the read average acceleration.
In one embodiment of the servo motor control method, since the average acceleration is obtained for each speed region based on the command pulse inputted in the past and stored in the accelerometer, and when the speed is limited based on the limit value, the average acceleration is read from the accelerometer based on the speed indicated by the command pulse after the speed limitation, and the speed after the speed limitation is changed based on the average acceleration read, the servo control of the motor can be performed at the speed change desired by the user.
In one embodiment, the average value of the acceleration is preferably a moving average value of the acceleration. By using the moving average, even when the user's desired speed change changes over a long period of time, the servo control of the motor can be performed at a speed change that is considered to match the user's intention at that time. The limit value may be a rated maximum speed of the motor, or may be a maximum speed determined by a user within a range of the rated maximum speed. By thus enabling the limit value to be set, servo control can be flexibly performed according to the intention of the user. Further, in the speed change step, when the number of instruction pulses stored in the buffer exceeds the threshold value, the speed change using the average acceleration may not be performed. With such a configuration, the position indicated by the instruction pulse can be easily reached without over travel.
In one embodiment, the command pulse may be composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction, and the buffer may be composed of a positive direction buffer for storing the number of positive direction pulses and a negative direction buffer for storing the number of negative direction pulses. By providing both the positive direction buffer and the negative direction buffer, it is easy to cope with a case where the motor rotates in both the positive direction and the negative direction. In this case, the input positive direction pulse may be ignored when the motor is driven in the positive direction and the value of the negative direction buffer is positive, and the input negative direction pulse may be ignored when the motor is driven in the negative direction and the value of the positive direction buffer is positive. When the command pulse is ignored in this way, the desired position of the command pulse can be reliably reached at least for the first time when the motor is reciprocated. Further, a buffer may be added as needed.
According to another aspect of the present invention, there is provided a servo motor control device for inputting a command pulse for commanding movement by a predetermined minute movement amount and performing servo control of a motor based on the command pulse, the servo motor control device including: an accelerometer that divides a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and stores an average value of the accelerations as an average acceleration for each speed region; an acceleration calculation unit that analyzes an input command pulse, calculates a speed and an acceleration indicated by the command pulse, calculates an average acceleration for each speed region, and stores the average acceleration in an accelerometer; a buffer section that stores the number of instruction pulses; a saturation calculation unit that, when the speed determined by the command pulse exceeds a predetermined limit value, stores the command pulse exceeding the limit value in a buffer unit, and adds the command pulse to the command pulse input in the next control cycle, thereby limiting the speed of the motor to be within the limit value; and a speed change unit that reads out an average acceleration of a speed region corresponding to a speed limited within a limit value from the accelerometer, and changes the speed limited within the limit value using the read-out average acceleration.
In the servo motor control device according to the other aspect, since the acceleration table storing the average acceleration calculated for each speed region based on the command pulse input in the past and the saturation calculation unit limiting the speed of the command pulse input for each control period based on the limit value are provided, the speed change means applies the change to the speed limited within the limit value based on the average acceleration read from the acceleration table based on the speed region to which the speed belongs, the servo motor can be controlled with the speed change desired by the user.
In the servo motor control device, it is preferable that the average value of the accelerations is a moving average value of the accelerations. By using the moving average, even when the user's desired speed change changes over a long period of time, the servo control of the motor can be performed at a speed change that is considered to match the user's intention at that time. The limit value may be a rated maximum speed of the motor, or may be a maximum speed determined by a user within a range of the rated maximum speed. By thus enabling the limit value to be set, servo control can be flexibly performed according to the intention of the user.
In the servo motor control device, the speed change means may include: a speed region classification unit that determines a speed region corresponding to a speed indicated by a command pulse to be output by the speed change means; an acceleration selection unit that selects an acceleration by inputting an average acceleration obtained by searching the accelerometer based on the velocity region determined by the velocity region classification unit; and a speed determining unit that applies a change to the command pulse output from the saturation calculating unit so that the speed changes in accordance with the acceleration selected by the acceleration selecting unit, wherein the acceleration selecting unit may select 0 as the acceleration when the number of command pulses stored in the buffer unit exceeds a threshold value, and may select the average acceleration obtained from the accelerometer as the acceleration if the number of command pulses stored in the buffer unit is the threshold value. With such a configuration, the position indicated by the instruction pulse can be easily reached without over travel.
In the servo motor control device, the command pulse may be composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction, and the buffer portion may include a positive direction buffer for storing the number of positive direction pulses and a negative direction buffer for storing the number of negative direction pulses. By providing both the positive direction buffer and the negative direction buffer, it is easy to cope with a case where the motor rotates in both the positive direction and the negative direction. In this case, the input positive direction pulse may be ignored when the motor is driven in the positive direction and the value of the negative direction buffer is positive, and the input negative direction pulse may be ignored when the motor is driven in the negative direction and the value of the positive direction buffer is positive. When the command pulse is ignored in this way, the desired position of the command pulse can be reliably reached at least for the first time when the motor is reciprocated. Further, a buffer may be added as needed.
According to the aspect of the present invention, even when a command exceeding the maximum speed of the motor is input, the position and speed of the motor can be controlled as faithfully as possible to the intention of the user who generated the command.
Drawings
Fig. 1 is a block diagram showing a servo motor control device according to an embodiment of the present invention.
Fig. 2 is a block diagram showing the configuration of the speed limit processing section.
Fig. 3 is a diagram illustrating the operation of the speed limit processing unit.
Fig. 4 is a graph showing a relationship between the speed based on the command pulse and the actual speed of the motor.
Detailed Description
Next, modes for carrying out the present invention will be described with reference to the drawings. Fig. 1 is a block diagram showing a configuration of a servomotor control apparatus according to an embodiment of the present invention. The servomotor control device 10 of the present embodiment is used for performing servo control of the motor 50 in a numerical control device or the like. A machine tool or the like to be controlled by the numerical controller is generally provided with a plurality of axes, and a motor is provided for each axis, but the control of the motor for each axis is substantially the same, and therefore, a part related to the control of the motor 50 for 1 axis will be described here.
In order to perform servo control of the motor 50, a command pulse output from a numerical control program (NC program) or the like is input to the servo motor control device 10 shown in fig. 1. Each of the command pulses is a pulse indicating that the motor is rotated by a certain minute movement amount, and thus, the rotational speed of the motor 50 is proportional to the pulse frequency of the command pulse. The command pulse inputted to the servomotor control device 10 is first inputted to the frequency division/multiplication unit 11, and is divided or multiplied. Specifically, the frequency dividing/multiplying unit 11 divides or multiplies the command pulse by a frequency dividing/multiplying ratio N/M, assuming that M and N are integers equal to or greater than 1. The command pulse divided or multiplied by the frequency division/multiplication section 11 is then input to the speed limit processing section 12.
In general, the motor 50 has a rated maximum speed, and at or above the rated maximum speed, the motor 50 cannot be rotated. Even within the range of rated maximum speeds, the user wishes to set the maximum speed for the motor 50 alone. The maximum speed determined for the motor 50, whether it is a nominal maximum speed or a maximum speed determined by the user alone, will be referred to as the limit value. The speed limit processing unit 12 counts the number of command pulses in each predetermined control cycle, and when the speed of the motor 50 indicated by the counted number of command pulses exceeds a limit value, adds the number of command pulses exceeding the limit value to the number of command pulses input in the next control cycle, thereby limiting the number of command pulses in each control cycle so that the speed of the motor 50 does not exceed the limit value. The speed limit processing unit 12 will be described in detail later. Since the accumulated command pulse becomes a position command for the motor 50, the command pulse limited by the limit value is accumulated in the speed limit processing unit 12. The integrated value of the command pulse is processed by the smoothing filter 13 and the user setting filter 14 arbitrarily set by the user, and is input to the servo amplifier 15. The servo amplifier 15 servo-controls the motor 50 according to a position command which is an integrated value of command pulses. Since the number of command pulses outputted from the speed limit processing section 12 per control cycle is limited by the limit value, the time variation of the position command, which is the integrated value of the number of command pulses, is also limited by the limit value, and the speed of the motor 50 does not exceed the limit value when servo-controlling the motor 50 according to the position command. A signal showing the rotational position of the motor 50 is fed back to the servo amplifier 15 from an encoder (not shown) attached to the motor 50.
For example, in the control of the feed shaft of a machine tool, the tool is moved from the initial position to a desired position, and then the tool is reciprocated by a motor so as to return to the initial position again. Thus, when limiting the command pulse using a limit value while performing the reciprocation of the tool, it is necessary to ensure that the tool reaches a predetermined desired position. In the case where the motor speed is limited by the limit value, it is also preferable to reflect the user's intention to set the speed change in the motor speed after the limit value. The speed limit processing unit 12 provided in the servomotor control device 10 of the present embodiment can control as follows: the speed of the motor 50 is limited based on the limit value, and the motor 50 is made to change reflecting the intention of the user while ensuring that the motor reaches a desired position during the reciprocating movement. Fig. 2 is a block diagram showing the configuration of the speed limit processing section 12. The speed limit processing unit 12 is constituted by a microprocessor or the like, for example, and is configured to process command pulses based on a predetermined control cycle.
In the present embodiment, since the motor 50 is rotated in both the positive direction and the negative direction opposite to the positive direction, a positive direction pulse for instructing rotation in the positive direction and a negative direction for instructing rotation in the negative direction are input to the speed limit processing unit 12The two command pulses are pulse-wise. The rotation amount of the motor 50 based on one positive direction pulse and the rotation amount based on one negative direction pulse differ only in the direction of rotation as the absolute value. The speed limit processing unit 12 is provided with a buffer unit 20 for storing the number of command pulses input for each control cycle, and the buffer unit 20 is provided with a forward direction buffer (R + ) 21 and a negative direction buffer (R - ) 22. In the case where the speed limitation is not performed, since the speed of the motor 50 is proportional to the number of command pulses per unit time, the number of command pulses input to the speed limitation processing unit 12 per control cycle indicates the speed of the motor 50 when the motor 50 is controlled per control cycle. A saturation calculation unit 23 is provided on the output side of the buffer unit 20, and the saturation calculation unit 23 limits the speed of the motor 50 by the maximum speed determined as the limit value. The limit value may be a rated maximum speed determined for the motor 50 as hardware, or may be a maximum speed set by a user within a range of the rated maximum speed.
In the speed limit processing section 12, an output state ST is defined as a state variable. The output state ST is a state variable showing whether the command pulse output from the saturation arithmetic unit 23 is a positive direction pulse or a negative direction pulse for each control cycle, and takes three values of +1, 0, and-1. If st= +1, a positive direction pulse is output, and the motor 50 is driven in the positive direction. If st= -1, a negative direction pulse is output, at which time the motor 50 is driven in the negative direction. St=0 shows a state in which both buffers 21 and 22 are 0 and no command pulse is output from the saturation calculation unit 23. The number of pulses corresponding to the limit value is referred to as the limit number of pulses. When st= +1, the saturation arithmetic section 23 compares the number of positive direction pulses stored in the positive direction buffer 21 with the limit pulse number in each control cycle, outputs the number of positive direction pulses stored in the positive direction buffer 21 if the number of positive direction pulses is equal to or less than the limit pulse number, and outputs the same number of positive direction pulses as the limit pulse number if the number of positive direction pulses exceeds the limit pulse number. Then, the number of positive direction pulses output is subtracted from the value stored in the positive direction buffer 21. Therefore, of the number of positive direction pulses stored in the positive direction buffer 21, the portion exceeding the limit number of pulses is reserved in the positive direction buffer 21 to the next control period. The number of positive direction pulses in the new control period is added to the number of positive direction pulses held, and the saturation arithmetic section 23 again performs processing. Similarly, when st= -1, the saturation arithmetic unit 23 compares the number of negative direction pulses stored in the negative direction buffer 22 with the limit pulse number in each control cycle, outputs the number of negative direction pulses stored in the negative direction buffer 22 if the number of negative direction pulses is equal to or less than the limit pulse number, and outputs the same number of negative direction pulses as the limit pulse number if the number of negative direction pulses exceeds the limit pulse number. Then, the value stored in the negative direction buffer 22 is subtracted by the number of negative direction pulses outputted.
The servo motor control device 10 of the present embodiment controls the speed change reflecting the user's intention, but when the saturation arithmetic unit 23 limits the speed and the number of command pulses corresponding to the portion exceeding the limit value is added to the buffer in the buffer unit 20, the information of the acceleration indicated by the pulse train of the input command pulses is lost. Therefore, in the present embodiment, the speed range from the speed 0 to the rated maximum speed is divided into a plurality of speed regions with respect to the speed of the motor 50, and an accelerometer 25 is provided for each such speed region, and the accelerometer 25 stores what speed change the user has instructed in the past. Then, based on the speed limited by the limit value, the acceleration is retrieved from the accelerometer 25, and the speed of the motor 50 is controlled so as to change according to the acceleration. In the illustrated example, the speed range from the speed 0 to the rated maximum speed of the motor 50 is divided into five speed ranges from the speed range 1 to the speed range 5, and the accelerometer 25 stores an average acceleration for each of the speed ranges 1 to 5. The average acceleration stored in the accelerometer 25 is obtained by calculating the acceleration indicated by the command pulse when the speed indicated by the command pulse input to the servo motor control device 10 falls within the speed range for each speed range, and calculating the average of the accelerations thus calculated. In order to realize such control of the speed change, the speed limit processing unit 12 is provided with an acceleration calculating unit 24, a speed determining unit 26, a speed region classifying unit 27, and an acceleration selecting unit 28 in addition to the accelerometer 25.
The acceleration calculation unit 24 monitors the command pulse input to the servo motor control device 10, obtains the speed and acceleration indicated by the command pulse, calculates the average acceleration for each speed range, and stores the average acceleration in the accelerometer 25. The user's intention may change with the passage of time, and it is preferable to exclude older data to some extent or more when calculating the average acceleration. Therefore, it is preferable to use a moving average for calculating the average acceleration, and to always update the value of the average acceleration in the accelerometer 25.
As described later, the speed determining unit 26 determines the speed of the motor 50 and outputs a command pulse reflecting the determined speed. The velocity region classification unit 27 obtains the velocity indicated by the command pulse output from the velocity determination unit 26, and determines which velocity region in the accelerometer 25 belongs to. The determined velocity region is transmitted to the accelerometer 25, and the average acceleration is read from the accelerometer 25 in accordance with the velocity region. The read average acceleration is input to the acceleration selecting unit 28. The acceleration selecting unit 28 determines the acceleration to be applied to the speed determining unit 26. For example, when the average acceleration read from the accelerometer 25 is a, the value of the buffer (the value of the positive direction buffer 21 in st= +1, and the value of the negative direction buffer 22 in st= -1) is large, the acceleration to be applied is set to 0, and when the value of the buffer is small, the average acceleration a read from the accelerometer 25 is selected. Whether the buffer value is large or not can be determined by setting the buffer value to X and the current speed to V, according to
X>V 2 /2a
Whether or not this is true is determined. V (V) 2 And/2 a is used as a threshold for this determination. The speed determination unit 26 increases or decreases the command pulse output from the saturation calculation unit 23 for each controlThe number of periodic command pulses is processed so as to be the acceleration selected by the acceleration selecting unit 28, and the processed command pulses are output from the speed limit processing unit 12. The position command for the motor 50 is obtained by subtracting the integrated value of the negative direction pulse from the integrated value of the positive direction pulse at each control cycle for the command pulse output from the speed limit processing unit 12.
As a result of the increase/decrease processing of the command pulses, the number of command pulses input from the saturation calculation unit 23 to the speed determination unit 26 is different from the number of command pulses output from the speed determination unit 26, which is a factor of an error in the position of the motor 50. In order to avoid such a positional error, the number of command pulses stored in the buffer unit 20 needs to be adjusted by an amount corresponding to the difference between the number of command pulses input to and output from the speed determining unit 26. When the value of the buffer corresponding to the minimum speed in the speed range is smaller than the average acceleration a, the value of the buffer is directly outputted from the speed determining unit 26 in order to ensure stopping at the position designated by the user.
The processing in the servomotor control device 10 according to the present embodiment will be described with reference to fig. 3 for describing the operation of the speed limit processing unit 12. The processing shown in fig. 3 is processing executed in the speed limit processing section 12 for each control cycle. In the figure, "R + "show forward direction buffer 21," R - "negative direction buffer 22 is shown. When the command pulse is input to the speed limit processing unit 12, as indicated by "measurement of acceleration 1", the acceleration calculating unit 24 divides the speed indicated by the command pulse into five stages as speed regions 1 to 5, and calculates a moving average of the acceleration indicated by the command pulse for each speed region. The obtained average acceleration is stored in the accelerometer 25 for each speed region.
In parallel with the measurement of the acceleration, the number of command pulses is added to either the positive direction buffer 21 or the negative direction buffer 22 in the buffer section 20 based on the output state ST. In this embodiment, it is ensured that a desired position is reached during the reciprocating movement. When the reciprocation is instructed to be repeated continuously a plurality of times, if the motor speed is limited and a desired position is reached during each reciprocation, the control becomes complicated. Thus, the present embodiment ensures that a desired position is reached in at least one reciprocation. If the value of the negative direction buffer 22 is positive in the output state ST of +1, that is, in the state where the saturation arithmetic section 23 outputs the positive direction pulse, the instruction pulse for moving it in the negative direction has been received after the movement in the positive direction. If a positive direction pulse is further input in this state, this means that a command pulse for the next reciprocation of the reciprocation currently being executed is input, and therefore the positive direction pulse is ignored. In st= +1 and the value of the negative direction buffer 22 is not positive, the number of positive direction pulses is added to the positive direction buffer 21. When st= +1 and a negative direction pulse is input, since a movement in the negative direction after a movement in the positive direction in the current execution is instructed, the number of negative direction pulses is added to the negative direction buffer 22.
Similarly, if the value of the positive direction buffer 21 is positive in the state where the output state ST is-1, that is, in the state where the saturation arithmetic section 23 outputs the negative direction pulse, the negative direction pulse input at this time is ignored. At st= -1 and the value of the positive direction buffer 21 is not positive, the number of negative direction pulses input is added to the negative direction buffer 22. When st= -1 and a positive direction pulse is input, the number of positive direction pulses is added to the positive direction buffer 21. When the output state ST is 0, the saturation arithmetic unit 23 does not output the command pulse, and both the positive direction buffer 21 and the negative direction buffer 22 should be 0. In this state, if a positive direction pulse is input, the number of positive direction pulses is added to the positive direction buffer 21, and if a negative direction pulse is input, the number of negative direction pulses is added to the negative direction buffer 22.
After the addition of the number of command pulses in the buffer section 20, the saturation arithmetic section 23 performs the output of the command pulses according to the output state ST. When st=0, in order to determine whether the positive direction pulse should be output or the negative direction pulse should be output in the next control cycle, the positive direction buffer 21 and the negative direction buffer 22 are checked. When st= +1, a positive direction pulse is output, and when st= -1, a negative direction pulse is output. When the positive direction buffer 21 and the negative direction buffer 22 are both empty by the output of these command pulses, st=0 is set.
The "4. Algorithm of output" of fig. 3 shows an algorithm for outputting the command pulse in such a manner that the over travel does not occur. In the present embodiment, the average acceleration a is determined for each speed region indicated by the command pulse. Since acceleration is shown as a slope in the time variation of velocity, if the current velocity is set to V 1 The area S of the region indicated by oblique lines in the figure has the same dimension as the movement amount of the motor 50, and is formed by
S=(V1) 2 /2a
Showing the same. Therefore, the number of command pulses remaining in the buffer unit 20 is compared with 2 times the area S, and if the number of remaining pulses is smaller than 2S, the speed is reduced by the average acceleration a, otherwise the speed is maintained. By performing such control, the position specified by the command pulse can be reached without overshooting.
Fig. 4 shows a change in the speed of the motor 50 when the servo control of the motor 50 is performed based on the present embodiment. Here, as shown in fig. 4 (a), the command pulse input to the servomotor control device 10 is accelerated in the forward direction, and the motor 50 is rotated at 3000rpm for a certain period of time and then decelerated, at time P 1 To a speed of 0, then accelerating in the negative direction, rotating the motor 50 at 3000rpm for a certain period of time, decelerating, and at time P 2 The speed is changed to 0, and the motor 50 is stopped. Further, 1000rpm is set as a limit value related to the maximum speed of the motor 50. In fig. 4, (b) shows an actual speed change of the motor 50 servo-controlled by the servo motor control device 10 when a command pulse showing the speed change shown in (a) is input. It is understood that the speed of the motor 50 is limited to a range of + -1000 rpm and is controlled with a delay compared to the original command pulse. In particular, in (b), the rotation in the forward direction is started at time Q 1 The speed becomes 0, and then the rotation in the negative direction is started at time Q 2 The speed becomes 0. These moments Q 1 、Q 2 The actual position of the motor 50 of (2) is respectively determined by(a) Time P of instruction pulse instruction shown 1 、P 2 The same position of the motor 50. Further, when the speed is in the range of 0 to ±1000rpm, the actual speed variation of the motor 50 shown in (b) is the same as that expected by the user using the command pulse.
In the present embodiment described above, the command pulse is analyzed in advance, the average acceleration for each speed range is stored in the accelerometer, and the acceleration in the output command pulse is determined based on the speed obtained by limiting the speed based on the limit value, so that the servo control of the motor 50 can be performed at a speed change desired by the user. Further, by controlling the addition of the number of positive direction pulses and the number of negative direction pulses using the output state ST, even when the speed limitation based on the limit value is performed, a desired position designated by the user can be reached when the reciprocating movement is performed.
Note that the present technology can employ the following configuration.
(1) A servo motor control method is provided, in which a command pulse for moving a motor by a predetermined minute movement amount is inputted, and servo control of the motor is performed based on the command pulse, wherein
A storage step of dividing a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and storing an average value of accelerations under a command pulse input in the past as an average acceleration in an accelerometer for each of the speed regions;
a speed limiting step of storing, when a speed determined by the command pulse exceeds a specified limit value, a part of the command pulse exceeding the maximum speed in a buffer, and adding the command pulse to the command pulse input in a next control cycle, thereby limiting the speed of the motor to be within the limit value; and
and a speed change step of reading the average acceleration of the speed region corresponding to the speed limited in the speed limiting step from the accelerometer, and changing the speed limited within the limit value using the read average acceleration.
(2) The servo motor control method according to (1), wherein the average value of the accelerations is a moving average value of the accelerations.
(3) The servo motor control method according to (1) or (2), wherein the limit value is a rated maximum speed of the motor or a maximum speed decided by a user within a range of the rated maximum speed.
(4) The servo motor control method according to any one of (1) to (3), wherein in the speed changing step, when the number of command pulses stored in the buffer exceeds a threshold value, the speed change using the average acceleration is not performed.
(5) The servo motor control method according to any one of (1) to (4), wherein,
the command pulse is composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction,
the buffer is composed of a positive direction buffer storing the number of positive direction pulses and a negative direction buffer storing the number of negative direction pulses.
(6) The servo motor control method according to (5), wherein,
ignoring the positive direction pulse input when the motor is driven in the positive direction and the value of the negative direction buffer is positive,
the motor will be driven in the negative direction and the input negative direction pulse will be ignored when the positive direction buffer value is positive.
(7) A servo motor control device, which is inputted with a command pulse for commanding movement by a predetermined minute movement amount and performs servo control of a motor based on the command pulse, comprises:
an accelerometer that divides a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and stores an average value of acceleration as an average acceleration for each of the speed regions;
an acceleration calculation unit configured to calculate a speed and an acceleration indicated by an input command pulse, calculate the average acceleration for each speed region, and store the average acceleration in the accelerometer;
a buffer section that stores the number of the instruction pulses;
a saturation calculation unit that, when a speed determined by the command pulse exceeds a specified limit value, stores the command pulse in a buffer unit in a portion exceeding the maximum speed, and adds the command pulse to the command pulse input in a next control cycle, thereby limiting the speed of the motor to be within the limit value; and
and a speed change unit that reads out the average acceleration of a speed region corresponding to the speed limited within the limit value from the accelerometer, and changes the speed limited within the limit value using the read-out average acceleration.
(8) The servo motor control device according to (7), wherein the average value of the accelerations is a moving average value of the accelerations.
(9) The servo motor control device according to (7) or (8), wherein the limit value is a rated maximum speed of the motor or a maximum speed determined by a user within a range of the rated maximum speed.
(10) The servo motor control device according to any one of (7) to (9), wherein the speed change unit includes:
a speed region classification unit that determines the speed region corresponding to the speed indicated by the command pulse to be output by the speed change unit;
an acceleration selection unit that selects an acceleration by inputting the average acceleration obtained by searching the accelerometer based on the velocity region determined by the velocity region classification unit; and
a speed determining unit that applies a change to the command pulse output from the saturation calculating unit so that a speed changes in accordance with the acceleration selected by the acceleration selecting unit,
the acceleration selecting section selects 0 as an acceleration when the number of the instruction pulses stored in the buffer section exceeds a threshold value, and selects the average acceleration obtained from the accelerometer as an acceleration if the number of the instruction pulses stored in the buffer section is the threshold value.
(11) The servo motor control device according to any one of (7) to (10), wherein,
the command pulse is composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction,
the buffer unit includes a positive direction buffer for storing the number of positive direction pulses and a negative direction buffer for storing the number of negative direction pulses.
(12) The servo motor control device according to (11), wherein in the buffer section, the input positive direction pulse is ignored when the motor is driven in the positive direction and the value of the negative direction buffer is positive, and the input negative direction pulse is ignored when the motor is driven in the negative direction and the value of the positive direction buffer is positive.
Description of the reference numerals
10 … servo motor control means; a frequency division and multiplication unit of 11 …;12 … speed limit processor; 13 … smoothing filter; 14 … user set filters; 15 … servo amplifier; 20 … buffer portions; 21 … forward buffer (R) + ) The method comprises the steps of carrying out a first treatment on the surface of the 22 … negative direction buffer (R) - ) The method comprises the steps of carrying out a first treatment on the surface of the 23 … saturation calculation unit; 24 … acceleration calculation unit; 25 … accelerometer; 26 and … speed determining unit; 27 … speed zone classification section; 28 … acceleration selection part; 50 … motor.

Claims (12)

1. A servo motor control method for inputting a command pulse for commanding movement by a predetermined minute movement amount and performing servo control of a motor based on the command pulse, comprising:
a storage step of dividing a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and storing an average value of accelerations under a command pulse input in the past as an average acceleration in an accelerometer for each of the speed regions;
a speed limiting step of storing, when a speed determined by the command pulse exceeds a specified limit value, a part of the command pulse exceeding the maximum speed in a buffer, and adding the command pulse to the command pulse input in a next control cycle, thereby limiting the speed of the motor to be within the limit value; and
and a speed change step of reading the average acceleration of the speed region corresponding to the speed limited in the speed limiting step from the accelerometer, and changing the speed limited within the limit value using the read average acceleration.
2. The method of controlling a servomotor as recited in claim 1, wherein,
the average of the accelerations is a moving average of the accelerations.
3. A servo motor control method according to claim 1 or 2, wherein,
the limit value is a rated maximum speed of the motor or a maximum speed determined by a user within a range of the rated maximum speed.
4. A servo motor control method according to claim 1 or 2, wherein,
in the speed change step, when the number of command pulses stored in the buffer exceeds a threshold value, the speed change using the average acceleration is not performed.
5. A servo motor control method according to claim 1 or 2, wherein,
the command pulse is composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction,
the buffer is composed of a positive direction buffer storing the number of positive direction pulses and a negative direction buffer storing the number of negative direction pulses.
6. The method for controlling a servomotor as recited in claim 5, wherein,
ignoring the positive direction pulse input when the motor is driven in the positive direction and the value of the negative direction buffer is positive,
the input negative direction pulse is ignored when the motor is driven in the negative direction and the positive direction buffer value is positive.
7. A servo motor control device to which a command pulse for moving a predetermined minute movement amount is input and which performs servo control of a motor based on the command pulse, the servo motor control device comprising:
an accelerometer that divides a range from a speed 0 to a maximum speed of the motor into a plurality of speed regions, and stores an average value of acceleration as an average acceleration for each of the speed regions;
an acceleration calculation unit configured to calculate a speed and an acceleration indicated by an input command pulse, calculate the average acceleration for each speed region, and store the average acceleration in the accelerometer;
a buffer section that stores the number of the instruction pulses;
a saturation calculation unit that, when a speed determined by the command pulse exceeds a specified limit value, stores the command pulse in a buffer unit in a portion exceeding the maximum speed, and adds the command pulse to the command pulse input in a next control cycle, thereby limiting the speed of the motor to be within the limit value; and
and a speed change unit that reads out the average acceleration of a speed region corresponding to the speed limited within the limit value from the accelerometer, and changes the speed limited within the limit value using the read-out average acceleration.
8. The servo motor control device according to claim 7, wherein,
the average of the accelerations is a moving average of the accelerations.
9. The servo motor control device according to claim 7 or 8, wherein,
the limit value is a rated maximum speed of the motor or a maximum speed determined by a user within a range of the rated maximum speed.
10. The servo motor control device according to claim 7 or 8, wherein,
the speed change unit includes:
a speed region classification unit that determines the speed region corresponding to the speed indicated by the command pulse to be output by the speed change unit;
an acceleration selection unit that selects an acceleration by inputting the average acceleration obtained by searching the accelerometer based on the velocity region determined by the velocity region classification unit;
a speed determining unit that applies a change to the command pulse output from the saturation calculating unit so that a speed changes in accordance with the acceleration selected by the acceleration selecting unit,
the acceleration selecting section selects 0 as an acceleration when the number of the instruction pulses stored in the buffer section exceeds a threshold value, and selects the average acceleration obtained from the accelerometer as an acceleration if the number of the instruction pulses stored in the buffer section is the threshold value.
11. The servo motor control device according to claim 7 or 8, wherein,
the command pulse is composed of a positive direction pulse for rotating the motor in a positive direction and a negative direction pulse for rotating the motor in a negative direction,
the buffer unit includes a positive direction buffer for storing the number of positive direction pulses and a negative direction buffer for storing the number of negative direction pulses.
12. The servo motor control device of claim 11 wherein,
in the buffer section, the positive direction pulse is ignored when the motor is driven in the positive direction and the value of the negative direction buffer is positive, and the negative direction pulse is ignored when the motor is driven in the negative direction and the value of the positive direction buffer is positive.
CN202310777642.1A 2022-06-29 2023-06-28 Servo motor control method and servo motor control device Pending CN117318574A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-104757 2022-06-29
JP2022104757A JP2024004881A (en) 2022-06-29 2022-06-29 Servo motor control method and servo motor control device

Publications (1)

Publication Number Publication Date
CN117318574A true CN117318574A (en) 2023-12-29

Family

ID=89241461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310777642.1A Pending CN117318574A (en) 2022-06-29 2023-06-28 Servo motor control method and servo motor control device

Country Status (2)

Country Link
JP (1) JP2024004881A (en)
CN (1) CN117318574A (en)

Also Published As

Publication number Publication date
JP2024004881A (en) 2024-01-17

Similar Documents

Publication Publication Date Title
EP0103351B1 (en) Numerical control method and apparatus therefor
JP3681972B2 (en) Acceleration / deceleration control method
EP0089156B1 (en) Method and apparatus for controlling acceleration and/or deceleration
CN115884847B (en) Numerical control device and numerical control method
US11126163B2 (en) Numerical controller
JP4796936B2 (en) Processing control device
JP6893792B2 (en) Machine tools and vibration suppression methods
JPH1039915A (en) Numerical controller
JP2009098981A (en) Working time calculation device and its program
JP2007000941A (en) Screw cutting control method and device
JPH11129144A (en) Control device for nc machine tool
CN117318574A (en) Servo motor control method and servo motor control device
JP2007279899A (en) Numerical control apparatus
EP2328052A1 (en) Numerical control device for machine tool
JP7280310B2 (en) Numerical controller
US6658317B2 (en) Method for setting a moving position in a machine tool
JP3063562B2 (en) Moving body speed control method and its control device
JPH07210225A (en) Numerical controller
JP4982170B2 (en) Machining control device and machining control program
JP2575894B2 (en) Numerical control unit
JP6799022B2 (en) Tap processing control device
JP3188396B2 (en) Feed rate control method and apparatus in numerical control
JPH0258106A (en) Accelerating/decelerating time constant control system
CN116917822A (en) Numerical controller and numerical control program
JP2022131354A (en) Vibration suppression method, vibration suppression device, and machine tool

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination