Servo motor control method and servo motor control device

The servo motor control method addresses the issue of positional deviations by using an acceleration table and buffer to adjust speed changes, ensuring accurate positioning and speed control that aligns with user intentions, even when exceeding motor limits.

JP7859889B2Active Publication Date: 2026-05-15NIDEC INSTR CORP
View PDF 9 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
NIDEC INSTR CORP
Filing Date
2022-06-29
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing servo motor control methods fail to accurately reflect the user's intended speed changes when command pulses exceed the motor's maximum speed, leading to positional deviations and mechanical shocks.

Method used

A servo motor control method that divides the motor's speed range into multiple bands, stores average accelerations in an acceleration table, and uses a buffer to limit speeds within a specified limit, applying the stored accelerations to adjust speed changes as intended by the user.

Benefits of technology

Ensures accurate positioning and speed changes that align with the user's intentions, preventing overrunning and mechanical shocks, even when command pulses exceed the motor's maximum speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007859889000001
    Figure 0007859889000001
  • Figure 0007859889000002
    Figure 0007859889000002
  • Figure 0007859889000003
    Figure 0007859889000003
Patent Text Reader

Abstract

To provide a servo motor control method and a servo motor control device, capable of controlling a position and a speed of a motor as faithfully as possible to the intention of a user who has generated a command exceeding the maximum speed of the motor even when the command is input.SOLUTION: A servo motor control device which controls a servo on the basis of a command pulse comprises: an acceleration table 15 in which a range from a speed 0 to the maximum speed of a motor is divided into a plurality of speed bands and which stores an average acceleration for each of the speed bands; an acceleration calculation unit 24 which calculates an average acceleration per speed band from a command pulse and stores the calculated average acceleration in an acceleration table 25; a buffer unit 20 which accumulates the number of command pulses; a saturation calculation unit 23 which limits the speed of a motor 50 to be fallen within a limit value or lower by accumulating command pulses of a portion exceeding the maximum speed in the buffer unit 20 when a speed determined by the command pulse exceeds the specified limit value and adding the accumulated command pluses to the command pulse to be input in the next control cycle; and speed changing means (26, 28) for reading the average acceleration from the acceleration table 25 and changing the speed.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This invention relates to a servo motor control method and a servo motor control device used in numerical control (NC) of machine tools and the like. [Background technology]

[0002] In numerical control of machine tools, a command pulse is generated for each axis of the machine tool based on a numerical control program (machining program) to move the motor on that axis by a fixed small amount, and servo control of the motor is performed based on this command pulse. There are command pulses that rotate the motor in the positive direction and command pulses that rotate it in the negative direction (also called the reverse direction). The current position command for the motor in servo control is represented by subtracting the integrated value of the command pulses that rotate in the negative direction from the integrated value of the command pulses that rotate in the positive direction. When the motor rotates in one direction, the motor speed is proportional to the number of command pulses input per unit time.

[0003] In numerical control, the command pulses used for tools or workpieces may contain portions that cause abrupt changes in the object's movement speed. Abrupt changes in the object's movement speed are undesirable because they cause mechanical shock to the machine tool. In such cases, the command pulse is corrected to make abrupt speed changes into gradual speed changes. For example, Patent Document 1 discloses detecting portions that cause abrupt changes in the object's movement speed from within the command pulse, identifying a pulse correction section that includes the abrupt speed change portion, and correcting the pulse so that the speed change is gradual only within the pulse correction section. In numerical control, if the object's movement path includes a corner point, acceleration and deceleration control of the speed is performed before and after the corner point. Patent Document 2 discloses a numerical control device that can appropriately perform acceleration and deceleration control before and after a corner point even if the time constant is changed during the execution of the machining program.

[0004] Patent Document 3 discloses that in order to suppress vibrations that occur when a machine tool is driven in response to a feed axis command, when the periods of acceleration from speed 0 to a first speed in the forward direction, deceleration from the first speed to speed 0, acceleration from speed 0 to a second speed in the reverse direction, and deceleration from the second speed to speed 0 are consecutive, the lengths of two of these four periods are made the same, and the lengths of the remaining two periods are also made the same. Patent Document 4 discloses combining two consecutive movement commands in order to prevent wasted movement time when numerically controlling a machine tool.

[0005] Incidentally, motors generally have a defined maximum rotational speed. When performing numerical control, if the motor's rotational speed determined by the input command pulse exceeds the maximum speed, the motor cannot be rotated at that speed, so conventionally, such command pulses were ignored. However, ignoring command pulses causes the position of objects such as tools and workpieces to deviate from the position intended by the user. Patent Document 5 discloses that, in order to suppress the occurrence of such positional deviations, when a command exceeding the maximum speed is input, the motor is rotated at the maximum speed, and the excess amount in the command is saved and added to the command value for the next control cycle. [Prior art documents] [Patent Documents]

[0006] [Patent Document 1] Patent No. 5336217 [Patent Document 2] Patent No. 5573664 [Patent Document 3] Japanese Patent Publication No. 2021-71895 [Patent Document 4] Patent No. 5413085 [Patent Document 5] Japanese Patent Publication No. 2003-202912 [Overview of the initiative] [Problems that the invention aims to solve]

[0007] The method described in Patent Document 5 allows the tool or workpiece to ultimately be positioned to the user's initial intended location, even if a command exceeding the motor's maximum speed is input, provided the motor is rotated in only one direction. However, the user's intention includes not only the final position of the object but also what kind of speed change is applied to move the object to the specified position. The method described in Patent Document 5 does not necessarily reflect the user's intention regarding what kind of speed change is applied.

[0008] The object of the present invention is to provide a servo motor control method and a servo motor control device that can control the position and speed changes of the motor as faithfully as possible to the intention of the user who generated the command, even when a command exceeding the maximum speed of the motor is input. [Means for solving the problem]

[0009] According to one aspect of the present invention, a servo motor control method that receives a command pulse instructing movement by a predetermined minute amount and performs servo control of the motor based on the command pulse includes: a storage step in which the range from speed 0 to the maximum speed of the motor is divided into a plurality of speed bands and the average value of the acceleration of command pulses previously input for each speed band is stored as the average acceleration in an acceleration table; a speed limiting step in which, when the speed determined by the command pulse exceeds a specified limit value, the portion of the command pulse exceeding the limit value is stored in a buffer and added to the command pulse input in the next control cycle, thereby limiting the motor speed to within the limit value; and a speed change step in which the average acceleration of the speed band corresponding to the speed limited in the speed limiting step is read from the acceleration table and the speed limited to within the limit value is changed using the read average acceleration.

[0010] In one embodiment of the servo motor control method, the average acceleration for each speed band is calculated from previously input command pulses and stored in an acceleration table. When speed limiting is applied based on a limit value, the average acceleration is read from the acceleration table based on the speed indicated by the command pulse after the speed limiting is applied, and the speed after the speed limiting is changed according to the read average acceleration. This allows the motor to be servo-controlled with speed changes as intended by the user.

[0011] In one embodiment, it is preferable that the average value of acceleration be a moving average value of acceleration. By using a moving average value, even if the speed change intended by the user changes over a long period of time, it becomes possible to perform servo control of the motor with a speed change that is considered to be in line with the user's intention at that time. Furthermore, the limit value may be the motor's rated maximum speed or the maximum speed determined by the user within the range of the rated maximum speed. By making it possible to set a limit value in this way, servo control can be performed flexibly according to the user's intention. In addition, in the speed change process, if the number of command pulses accumulated in the buffer exceeds a threshold, the speed change using the average acceleration can be prevented. With this configuration, it becomes possible to easily reach the position indicated by the command pulse without overrunning.

[0012] In one embodiment, the command pulse may consist of a positive pulse that rotates the motor in the positive direction and a negative pulse that rotates the motor in the negative direction, and the buffer may consist of a positive buffer that stores the number of positive pulses and a negative buffer that stores the number of negative pulses. By providing both a positive buffer and a negative buffer, it becomes easier to handle the motor when it rotates in both the positive and negative directions. In this case, the positive pulse input when the motor is driven in the positive direction and the value of the negative buffer is positive can be ignored, and the negative pulse input when the motor is driven in the negative direction and the value of the positive buffer is positive can be ignored. When the command pulse is ignored in this way, the motor can be reliably moved back and forth to reach the position intended by the command pulse at least for the first time. It is also possible to add further buffers as needed.

[0013] According to another aspect of the present invention, a servo motor control device that receives a command pulse instructing movement by a predetermined minute amount and performs servo control of a motor based on the command pulse includes: an acceleration table that divides the range from speed 0 to the maximum speed of the motor into a plurality of speed bands and stores the average value of the acceleration for each speed band as the average acceleration; an acceleration calculation unit that analyzes the input command pulse, calculates the speed and acceleration represented by the command pulse, obtains the average acceleration for each speed band and stores it in the acceleration table; a buffer unit that stores the number of command pulses; a saturation calculation unit that, when the speed determined by the command pulse exceeds a specified limit value, stores the command pulses exceeding the limit value in the buffer unit and adds them to the command pulse input in the next control cycle, thereby limiting the motor speed to within the limit value; and a speed change means that reads the average acceleration of the speed band corresponding to the speed limited to within the limit value from the acceleration table and changes the speed limited to within the limit value using the read average acceleration.

[0014] In another embodiment of the servo motor control device, an acceleration table is provided that stores the average acceleration calculated for each speed band from previously input command pulses, and a saturation calculation unit performs speed limiting based on a limit value for the command pulses input for each control cycle. Then, a speed change means applies a change to the speed limited within the limit value based on the average acceleration read from the acceleration table according to the speed band to which that speed belongs, so that the motor can be servo controlled with speed changes as intended by the user.

[0015] In a servo motor control device, it is preferable that the average value of acceleration be a moving average value of acceleration. By using a moving average value, even if the speed change intended by the user changes over a long period of time, it becomes possible to perform servo control of the motor with a speed change that is considered to be in line with the user's intention at that time. Furthermore, the limit value may be the motor's rated maximum speed or a maximum speed determined by the user within the range of the rated maximum speed. By making it possible to set a limit value in this way, servo control can be performed flexibly according to the user's intention.

[0016] In a servo motor control device, the speed change means may include: a speed band classification unit that determines a speed band corresponding to the speed represented by the command pulse that the speed change means intends to output; an acceleration selection unit that receives the average acceleration obtained by searching an acceleration table based on the speed band determined by the speed band classification unit and selects an acceleration; and a speed determination unit that modifies the command pulse output by the saturation calculation unit so that the speed changes according to the acceleration selected by the acceleration selection unit. The acceleration selection unit may select 0 as the acceleration when the number of command pulses accumulated in the buffer unit exceeds a threshold, and may select the average acceleration obtained from the acceleration table as the acceleration if the number of command pulses accumulated in the buffer unit is within the threshold. With this configuration, it becomes possible to easily reach the position indicated by the command pulse without overrunning.

[0017] In a servo motor control device, the command pulse may consist of a positive-direction pulse for rotating the motor in the positive direction and a negative-direction pulse for rotating the motor in the negative direction, and the buffer unit may include a positive-direction buffer for accumulating the number of positive-direction pulses and a negative-direction buffer for accumulating the number of negative-direction pulses. By providing both the positive-direction buffer and the negative-direction buffer, it becomes easier to handle the case where the motor rotates in both the positive and negative directions. In this case, when the motor is driven in the positive direction and the value of the negative-direction buffer is positive, the input positive-direction pulses are ignored, and when the motor is driven in the negative direction and the value of the positive-direction buffer is positive, the input negative-direction pulses can be ignored. When the command pulses are ignored in this way, it is possible to reliably reach the position intended by the command pulses at least for the first time when the motor is reciprocated. Also, it is possible to add further buffers as necessary.

Advantages of the Invention

[0018] According to the present invention, even when a command exceeding the maximum speed of the motor is input, it becomes possible to control the position and speed change of the motor as faithfully as possible to the intention of the user who generated the command.

Brief Description of the Drawings

[0019] [Figure 1] It is a block diagram showing a servo motor control device according to an embodiment of the present invention. [Figure 2] It is a block diagram showing the configuration of the speed limit processing unit. [Figure 3] It is a diagram for explaining the operation of the speed limit processing unit. [Figure 4] It is a graph showing the relationship between the speed by the command pulse and the actual speed of the motor.

Embodiments for Carrying Out the Invention

[0020] Next, embodiments for carrying out the present invention will be described with reference to the drawings. Figure 1 is a block diagram showing the configuration of a servo motor control device according to one embodiment of the present invention. The servo motor control device 10 of this embodiment is used to perform servo control of a motor 50 in a numerical control device or the like. Machine tools and the like that to be controlled by a numerical control device usually have multiple axes, with a motor provided for each axis, but since the control of the motor for each axis is substantially the same, the part relating to the control of a motor 50 for one axis will be described here.

[0021] The servo motor control device 10 shown in Figure 1 receives command pulses output from a numerical control program (NC program) or the like for servo control of the motor 50. Each of these command pulses instructs the motor to rotate by a constant minute amount of movement, and therefore the rotational speed of the motor 50 is proportional to the pulse frequency of the command pulses. The command pulses input to the servo motor control device 10 are first input to the frequency divider / multiplier unit 11, where they are divided or multiplied. Specifically, assuming that M and N are both integers of 1 or greater, the frequency divider / multiplier unit 11 divides or multiplies the command pulses by a frequency divider / multiplier ratio N / M. The command pulses that have been divided or multiplied by the frequency divider / multiplier unit 11 are then input to the speed limiting processing unit 12.

[0022] Generally, a motor 50 has a rated maximum speed that it must not rotate at. Even within the range of the rated maximum speed, users may want to individually set a maximum speed for the motor 50. Regardless of whether it is the rated maximum speed or a maximum speed individually set by the user, the maximum speed set for the motor 50 will be called the limit value. The speed limit processing unit 12 counts the number of command pulses during each predetermined control cycle, and if the speed of the motor 50 indicated by the counted number of command pulses exceeds the limit value, it 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 per control cycle so that the speed of the motor 50 does not exceed the limit value. Details of the speed limit processing unit 12 will be described later. Since the cumulative number of command pulses becomes the position command for the motor 50, the command pulses limited by the limit value are cumulative in the speed limit processing unit 12. Subsequently, the cumulative value of the command pulses is processed by a smoothing filter 13 and a user-defined filter 14, which can be arbitrarily set by the user, and input to the servo amplifier 15. The servo amplifier 15 servo-controls the motor 50 based on the position command, which is the cumulative value of command pulses. Since the number of command pulses output from the speed limiting processing unit 12 for each control cycle is limited by a limit value, the time change of the position command, which is the cumulative value of the number of command pulses, is also limited by the limit value, and the speed of the motor 50 will not exceed the limit value when the motor 50 is servo-controlled based on the position command. The servo amplifier 15 receives a signal indicating the rotational position of the motor 50 from an encoder (not shown) attached to the motor 50 as feedback.

[0023] For example, in the control of the feed axis of a machine tool, a motor is often used to perform reciprocating motion so that the tool moves from an initial position to a desired position, and then returns to the initial position. When limiting the command pulse using a limit value when performing such reciprocating motion of a tool, it is necessary to ensure that the tool reaches the predetermined desired position. Furthermore, even when limiting the motor speed with a limit value, it is preferable that the motor speed after the limit value is applied reflects the user's intention in setting the speed change. The speed limiting processing unit 12 provided in the servo motor control device 10 of this embodiment can limit the speed of the motor 50 with a limit value, ensure that the motor reaches the desired position during reciprocating motion, and control the motor 50 so that the speed change reflects the user's intention. Figure 2 is a block diagram showing the configuration of the speed limiting processing unit 12. The speed limiting processing unit 12 is configured, for example, with a microprocessor, and is configured to process command pulses based on a predetermined control cycle.

[0024] In this embodiment, the motor 50 is to be rotated in both the positive direction and the negative direction, which is the opposite direction to the positive direction. Therefore, two types of command pulses are input to the speed limiting processing unit 12: a positive pulse that commands rotation in the positive direction and a negative pulse that commands rotation in the negative direction. The amount of rotation of the motor 50 caused by one positive pulse and the amount of rotation caused by one negative pulse are the same in absolute value, only the direction of rotation is different. The speed limiting processing unit 12 is provided with a buffer unit 20 that stores the number of command pulses input for each control cycle, and the buffer unit 20 has a positive buffer (R) that stores the number of positive pulses. + )21 and a negative buffer (R) that stores the number of negative pulses. -A buffer unit 22 is provided. If no speed limit is applied, the speed of the motor 50 is proportional to the number of command pulses per unit time. Therefore, the number of command pulses input to the speed limit processing unit 12 for each control cycle represents the speed of the motor 50 when controlling the motor 50 for each control cycle. A saturation calculation unit 23 is provided on the output side of the buffer unit 20 to limit the speed of the motor 50 by a maximum speed defined as a limit value. The limit value may be the rated maximum speed defined for the motor 50 as hardware, or it may be the maximum speed set by the user within the range of the rated maximum speed.

[0025] In the speed limiting processing unit 12, the output state ST is defined as a state variable. The output state ST is a state variable that indicates whether the command pulse output by the saturation calculation unit 23 for each control cycle is a positive pulse or a negative pulse, and takes three values: +1, 0, and -1. If ST=+1, a positive pulse is output, and in this case the motor 50 is driven in the positive direction. If ST=-1, a negative pulse is output, and in this case the motor 50 is driven in the negative direction. ST=0 indicates that both buffers 21 and 22 are both 0, and no command pulse is output from the saturation calculation unit 23. The number of pulses corresponding to the limit value is called the limit pulse number. When ST=+1, the saturation calculation unit 23 compares the number of positive pulses accumulated in the positive buffer 21 with the limit pulse number for each control cycle. If the number of positive pulses is less than or equal to the limit pulse number, it outputs the number of positive pulses accumulated in the positive buffer 21; if it exceeds the limit pulse number, it outputs the same number of positive pulses as the limit pulse number. Then, the value stored in the positive buffer 21 is subtracted by the number of positive pulses output. Therefore, any portion of the number of positive pulses stored in the positive buffer 21 that exceeds the limit pulse count is carried over to the next control cycle. The number of positive pulses in the new control cycle is added to the number of positive pulses carried over, and the saturation calculation unit 23 processes the data again. Similarly, when ST = -1, the saturation calculation unit 23 compares the number of negative pulses stored in the negative buffer 22 with the limit pulse count for each control cycle. If the number of negative pulses is less than or equal to the limit pulse count, it outputs the number of negative pulses stored in the negative buffer 22; if it exceeds the limit pulse count, it outputs the same number of negative pulses as the limit pulse count. Then, the value stored in the negative buffer 22 is subtracted by the number of negative pulses output.

[0026] The servo motor control device 10 in this embodiment controls the motor so that the speed changes reflect the user's intentions. However, when the saturation calculation unit 23 limits the speed and adds the number of command pulses corresponding to the portion exceeding the limit value to the buffer in the buffer unit 20, the acceleration information represented by the pulse train of the input command pulses is lost. Therefore, in this embodiment, with respect to the speed of the motor 50, the speed range from speed 0 to the rated maximum speed is divided into multiple speed bands, and an acceleration table 25 is provided to store what kind of speed changes the user has commanded in the past for each of these speed bands. Then, based on the speed after limiting by the limit value, the acceleration is retrieved by searching the acceleration table 25, and the speed of the motor 50 is controlled to change according to that acceleration. In the illustrated example, the speed range from speed 0 to the rated maximum speed of the motor 50 is divided into five speed bands from speed band 1 to speed band 5, and the average acceleration is stored in the acceleration table 25 for each speed band from speed band 1 to speed band 5. The average acceleration stored in the acceleration table 25 is obtained by calculating the acceleration represented by the command pulse input to the servo motor control device 10 for each speed band, when the speed represented by that command pulse is within that speed band, and then calculating the average of the accelerations obtained in this way. In order to realize this control of speed changes, the speed limiting processing unit 12 is equipped with an acceleration calculation unit 24, a speed determination unit 26, a speed band classification unit 27, and an acceleration selection unit 28 in addition to the acceleration table 25.

[0027] The acceleration calculation unit 24 monitors the command pulses input to the servo motor control device 10, determines the velocity and acceleration represented by the command pulses, calculates the average acceleration for each velocity band, and stores it in the acceleration table 25. User intentions may change over time, so when calculating the average acceleration, it is preferable to exclude data older than a certain amount. Therefore, it is preferable to use a moving average to calculate the average acceleration and to constantly update the average acceleration values ​​in the acceleration table 25.

[0028] The speed determination unit 26 determines the speed of the motor 50, as described later, and outputs a command pulse that reflects the determined speed. The speed band classification unit 27 determines the speed represented by the command pulse output by the speed determination unit 26 and determines which speed band in the acceleration table 25 it belongs to. The determined speed band is sent to the acceleration table 25, and the average acceleration is read from the acceleration table 25 corresponding to that speed band. The read average acceleration is input to the acceleration selection unit 28. The acceleration selection unit 28 determines the acceleration to be applied by the speed determination unit 26. For example, when the average acceleration read from the acceleration table 25 is a, if the buffer value (the value of the positive buffer 21 when ST=+1, and the value of the negative buffer 22 when ST=-1) is large, the acceleration to be applied is set to 0, and if the buffer value is small, the average acceleration a read from the acceleration table 25 is selected. Whether the buffer value is large or not is determined by taking the buffer value as X and the current speed as V, X>V 2 / 2a This can be determined by whether or not the following holds true. 2 / 2a is used as a threshold for this determination. The speed determination unit 26 increases or decreases the number of command pulses for each control cycle in response to the command pulse output from the saturation calculation unit 23 so that the acceleration is selected by the acceleration selection unit 28, and the command pulse after this processing becomes the output of the speed limit processing unit 12. The position command for the motor 50 is obtained by subtracting the cumulative value of negative pulses from the cumulative value of positive pulses for each control cycle with respect to the command pulse output from the speed limit processing unit 12.

[0029] As a result of the process of increasing or decreasing the number of command pulses, the number of command pulses input from the saturation calculation unit 23 to the speed determination unit 26 will differ from the number of command pulses output from the speed determination unit 26, which will cause an error in the position of the motor 50. To prevent such position errors, it is necessary to adjust the number of command pulses stored in the buffer unit 20 by the difference in the number of command pulses between the input and output of the speed determination unit 26. Furthermore, when the speed bandwidth corresponds to the minimum speed and the buffer value is smaller than the average acceleration a, the buffer value is output directly from the speed determination unit 26 to ensure that the motor stops at the position specified by the user.

[0030] The processing in the servo motor control device 10 of this embodiment will be explained with reference to Figure 3, which illustrates the operation of the speed limiting processing unit 12. The processing shown in Figure 3 is executed in the speed limiting processing unit 12 at each control cycle. In the figure, "R + " means the positive buffer 21, and "R - " refers to the negative buffer 22. When a command pulse is input to the speed limiting processing unit 12, as shown in "1. Acceleration Measurement", the acceleration calculation unit 24 divides the velocity represented by the command pulse into five speed bands 1 to 5, and calculates a moving average of the acceleration represented by the command pulse for each speed band. The obtained average acceleration is stored in the acceleration table 25 for each speed band.

[0031] In parallel with the measurement of acceleration, the number of command pulses is added to either the positive buffer 21 or the negative buffer 22 in the buffer unit 20 based on the output state ST described above. In this embodiment, it is guaranteed that the desired position will be reached during the reciprocating movement. When a command is given to repeat the reciprocating movement multiple times in succession, it becomes complicated to control the motor while limiting the speed and ensuring that the desired position is reached in each reciprocating movement. Therefore, this embodiment guarantees that the desired position will be reached in at least one reciprocating movement. If the output state ST is +1, that is, when the saturation calculation unit 23 is outputting a positive pulse, and the value of the negative buffer 22 is positive, it means that a command pulse for moving in the negative direction after moving in the positive direction has already been received. If another positive pulse is input in this state, it means that a command pulse for the next reciprocating movement after the currently executing reciprocating movement has been input, so this positive pulse is ignored. When ST = +1 and the value of the negative buffer 22 is not positive, the number of positive pulses is added to the positive buffer 21. When ST = +1 and a negative pulse is input, it means that a negative movement following the currently executing positive movement has been commanded, and the number of negative pulses is added to the negative buffer 22.

[0032] Similarly, if the output state ST is -1, meaning the saturation calculation unit 23 is outputting negative pulses, and the value of the positive buffer 21 is positive, then any negative pulses input at this time are ignored. If ST = -1 and the value of the positive buffer 21 is not positive, the number of negative pulses input is added to the negative buffer 22. If ST = -1 and a positive pulse is input, the number of positive pulses is added to the positive buffer 21. When the output state ST is 0, the saturation calculation unit 23 is not outputting command pulses, and both the positive buffer 21 and the negative buffer 22 should be 0. In this state, if a positive pulse is input, the number of positive pulses is added to the positive buffer 21, and if a negative pulse is input, the number of negative pulses is added to the negative buffer 22.

[0033] Following the increment of the command pulse count in the buffer unit 20, the saturation calculation unit 23 outputs command pulses according to the output state ST. When ST=0, the positive buffer 21 and negative buffer 22 are checked to determine whether to output a positive pulse or a negative pulse in the next control cycle. When ST=+1, a positive pulse is output, and when ST=-1, a negative pulse is output. When both the positive buffer 21 and the negative buffer 22 become empty due to the output of these command pulses, ST=0.

[0034] Figure 3, "4. Output Algorithm," shows an algorithm for outputting command pulses to prevent overrun. In this embodiment, the average acceleration a is determined for each speed band represented by the command pulse. Since acceleration is expressed as the gradient of the change in velocity over time, if the current velocity is V1, then the area S of the region indicated by the shaded area in the figure has the same dimensions as the amount of movement of the motor 50. S=(V1) 2 / 2a This is expressed as follows: The number of command pulses remaining in the buffer section 20 is compared with twice the area S. If the number of remaining pulses is less than 2S, the vehicle decelerates at the average acceleration a; otherwise, the vehicle maintains its speed. By performing this control, the vehicle can reach the position specified by the command pulse without overrunning.

[0035] Figure 4 shows the change in speed of motor 50 when servo control of motor 50 is performed according to this embodiment. Here, the command pulse input to the servo motor control device 10 is assumed to accelerate in the positive direction, rotate motor 50 at a speed of 3000 rpm for a certain period of time, then decelerate to a speed of 0 at time P1, and then accelerate in the negative direction, rotate motor 50 at a speed of 3000 rpm for a certain period of time, then decelerate to a speed of 0 at time P2, stopping motor 50. It is also assumed that a limit value of 1000 rpm is set for the maximum speed of motor 50. Figure 4(b) shows the actual speed change of motor 50 that is servo controlled by the servo motor control device 10 when a command pulse showing the speed change as shown in (a) is input. It can be seen that the speed of motor 50 is limited to a range of ±1000 rpm and that it is controlled with a delay compared to the original command pulse. In particular, in (b), the motor rotates in the positive direction, then its speed becomes 0 at time Q1, followed by rotation in the negative direction, and from the negative rotation, its speed becomes 0 at time Q2. The actual position of the motor 50 at times Q1 and Q2 is the same as the position of the motor 50 at times P1 and P2, respectively, as commanded by the command pulse shown in (a). Furthermore, within the range of speed from 0 to ±1000 rpm, the actual speed change of the motor 50 shown in (b) is the same as that intended by the user using the command pulse.

[0036] In the embodiment described above, the command pulse is analyzed in advance and the average acceleration for each speed band is stored in an acceleration table. By determining the acceleration in the output command pulse based on the speed after speed limiting by a limit value, the servo control of the motor 50 can be performed with the speed change intended by the user. Furthermore, by controlling the addition of the number of positive pulses and the number of negative pulses using the output state ST, it becomes possible to reach the desired position specified by the user when performing reciprocal movement, even when speed limiting by a limit value is applied.

[0037] Furthermore, this technology can be configured as follows:

[0038] (1) A servo motor control method in which a command pulse is input to command movement by a predetermined minute amount of movement, and servo control of the motor is performed based on the command pulse, A storage step involves dividing the range from speed 0 to the maximum speed of the motor into multiple speed bands and storing the average value of the acceleration from command pulses previously input for each speed band as the average acceleration in an acceleration table. A speed limiting step is performed to limit the motor speed to within the limit value by accumulating the portion of the command pulse exceeding the maximum speed in a buffer when the speed determined by the command pulse exceeds a specified limit value, and adding it to the command pulse input in the next control cycle. A speed change step involves reading the average acceleration of the speed band corresponding to the speed limited in the speed limit step from the acceleration table, and changing the speed, which has been limited to within the limit value, using the read average acceleration. A servo motor control method having the following features.

[0039] (2) The servo motor control method according to (1), wherein the average value of the acceleration is the moving average value of the acceleration.

[0040] (3) The servo motor control method according to (1) or (2), wherein the limit value is the rated maximum speed of the motor, or the maximum speed determined by the user within the range of the rated maximum speed.

[0041] (4) The servo motor control method according to any one of (1) to (3), wherein in the speed change step, the speed is not changed using the average acceleration when the number of command pulses accumulated in the buffer exceeds a threshold.

[0042] (5) The command pulse consists of a positive pulse that rotates the motor in the positive direction and a negative pulse that rotates the motor in the negative direction. The servo motor control method according to any one of (1) to (4), wherein the buffer comprises a positive buffer for accumulating the number of positive pulses and a negative buffer for accumulating the number of negative pulses.

[0043] (6) When the motor is driven in the positive direction and the value of the negative buffer is positive, ignore the input positive pulse, The servo motor control method according to (5), wherein the motor is driven in the negative direction and the negative pulse input when the value of the positive buffer is positive is ignored.

[0044] (7) A servo motor control device that receives a command pulse that commands movement by a predetermined minute amount and performs servo control of the motor based on the command pulse, An acceleration table is provided which the range from speed 0 to the maximum speed of the motor is divided into multiple speed bands, and the average value of the acceleration for each speed band is stored as the average acceleration, An acceleration calculation unit analyzes the input command pulse, calculates the velocity and acceleration represented by the command pulse, obtains the average acceleration for each velocity band, and stores it in the acceleration table. A buffer unit that stores the number of command pulses, A saturation calculation unit limits the motor speed to within the limit value by accumulating the portion of the command pulse exceeding the maximum speed in a buffer unit when the speed determined by the command pulse exceeds a specified limit value, and adding it to the command pulse input in the next control cycle. A speed changing means reads the average acceleration of the speed band corresponding to the speed limited to within the limit value from the acceleration table, and uses the read average acceleration to change the speed limited to within the limit value, A servo motor control device equipped with the following features.

[0045] (8) The servo motor control device according to (7), wherein the average value of the acceleration is the moving average value of the acceleration.

[0046] (9) The servo motor control device according to (7) or (8), wherein the limit value is the rated maximum speed of the motor, or the maximum speed determined by the user within the range of the rated maximum speed.

[0047] (10) The speed changing means is A speed band classification unit that determines the speed band corresponding to the speed represented by the command pulse that the speed changing means intends to output, An acceleration selection unit receives the average acceleration obtained by searching the acceleration table based on the speed band determined by the speed band classification unit and selects an acceleration, A velocity determination unit modifies the command pulse output by the saturation calculation unit so that the velocity changes according to the acceleration selected in the acceleration selection unit. Equipped with, The servo motor control device according to any one of (7) to (9), wherein the acceleration selection unit selects 0 as the acceleration when the number of command pulses accumulated in the buffer unit exceeds a threshold, and selects the average acceleration obtained from the acceleration table as the acceleration when the number of command pulses accumulated in the buffer unit exceeds the threshold.

[0048] (11) The command pulse consists of a positive pulse that rotates the motor in the positive direction and a negative pulse that rotates the motor in the negative direction, The servo motor control device according to any one of (7) to (10), wherein the buffer unit comprises a positive buffer for accumulating the number of positive pulses and a negative buffer for accumulating the number of negative pulses.

[0049] (12) The servo motor control device according to (11), wherein in the buffer section, when the motor is driven in the positive direction and the value of the negative buffer is positive, the positive pulse input is ignored, and when the motor is driven in the negative direction and the value of the positive buffer is positive, the negative pulse input is ignored. [Explanation of Symbols]

[0050] 10…Servo motor control device; 11…Frequency division multiplier; 12…Speed limit processing unit; 13…Smoothing filter; 14…User-specified filter; 15…Servo amplifier; 20…Buffer unit; 21…Positive direction buffer (R + ); 22…Negative direction buffer (R - ); 23…Saturation operation unit; 24…Acceleration operation unit; 25…Acceleration table; 26…Speed determination unit; 27…Speed band classification unit; 28…Acceleration selection unit; 50…Motor.

Claims

1. In a servo motor control method in which a command pulse is input to command movement by a predetermined minute amount, and servo control of the motor is performed based on the command pulse, A storage step involves dividing the range from speed 0 to the maximum speed of the motor into multiple speed bands and storing the average value of the acceleration from command pulses previously input for each speed band as the average acceleration in an acceleration table. A speed limiting step is performed to limit the motor speed to within the limit value by accumulating the portion of the command pulse exceeding the maximum speed in a buffer when the speed determined by the command pulse exceeds a specified limit value, and adding it to the command pulse input in the next control cycle. A speed change step involves reading the average acceleration of the speed band corresponding to the speed limited in the speed limit step from the acceleration table, and changing the speed, which has been limited to within the limit value, using the read average acceleration. A servo motor control method having the following features.

2. The servo motor control method according to claim 1, wherein the average value of the acceleration is the moving average value of the acceleration.

3. The servo motor control method according to claim 1 or 2, wherein the limit value is the rated maximum speed of the motor, or the maximum speed determined by the user within the range of the rated maximum speed.

4. The servo motor control method according to claim 1 or 2, wherein in the speed change step, the speed change using the average acceleration is not performed when the number of command pulses accumulated in the buffer exceeds a threshold.

5. The command pulse consists of a positive pulse that rotates the motor in the positive direction and a negative pulse that rotates the motor in the negative direction. The servo motor control method according to claim 1 or 2, wherein the buffer comprises a positive buffer for accumulating the number of positive pulses and a negative buffer for accumulating the number of negative pulses.

6. When the motor is driven in the positive direction and the value of the negative buffer is positive, the positive pulse input is ignored. The servo motor control method according to claim 5, wherein the motor is driven in the negative direction and the negative pulse input when the value of the positive buffer is positive is ignored.

7. In a servo motor control device that receives a command pulse instructing movement by a predetermined minute amount and performs servo control of the motor based on the command pulse, An acceleration table is provided, in which the range from speed 0 to the maximum speed of the motor is divided into multiple speed bands, and the average value of the acceleration for each speed band is stored as the average acceleration. An acceleration calculation unit analyzes the input command pulse, calculates the velocity and acceleration represented by the command pulse, obtains the average acceleration for each velocity band, and stores it in the acceleration table. A buffer unit that stores the number of command pulses, A saturation calculation unit limits the motor speed to within the limit value by accumulating the portion of the command pulse exceeding the maximum speed in a buffer unit when the speed determined by the command pulse exceeds a specified limit value, and adding it to the command pulse input in the next control cycle. A speed changing means reads the average acceleration of the speed band corresponding to the speed limited to within the limit value from the acceleration table, and uses the read average acceleration to change the speed limited to within the limit value, A servo motor control device equipped with the following features.

8. The servo motor control device according to claim 7, wherein the average value of the acceleration is a moving average value of the acceleration.

9. The servo motor control device according to claim 7 or 8, wherein the limit value is the rated maximum speed of the motor, or the maximum speed determined by the user within the range of the rated maximum speed.

10. The aforementioned speed changing means is A speed band classification unit that determines the speed band corresponding to the speed represented by the command pulse that the speed changing means intends to output, An acceleration selection unit receives the average acceleration obtained by searching the acceleration table based on the speed band determined by the speed band classification unit and selects an acceleration, A velocity determination unit modifies the command pulse output by the saturation calculation unit so that the velocity changes according to the acceleration selected in the acceleration selection unit. Equipped with, The servo motor control device according to claim 7 or 8, wherein the acceleration selection unit selects 0 as the acceleration when the number of command pulses accumulated in the buffer unit exceeds a threshold, and selects the average acceleration obtained from the acceleration table as the acceleration when the number of command pulses accumulated in the buffer unit exceeds the threshold.

11. The command pulse consists of a positive pulse that rotates the motor in the positive direction and a negative pulse that rotates the motor in the negative direction. The servo motor control device according to claim 7 or 8, wherein the buffer unit comprises a positive buffer for accumulating the number of positive pulses and a negative buffer for accumulating the number of negative pulses.

12. The servo motor control device according to claim 11, wherein in the buffer section, when the motor is driven in the positive direction and the value of the negative buffer is positive, the positive pulse input is ignored, and when the motor is driven in the negative direction and the value of the positive buffer is positive, the negative pulse input is ignored.