WO2026018441A1 - 制御装置 - Google Patents

制御装置

Info

Publication number
WO2026018441A1
WO2026018441A1 PCT/JP2024/026020 JP2024026020W WO2026018441A1 WO 2026018441 A1 WO2026018441 A1 WO 2026018441A1 JP 2024026020 W JP2024026020 W JP 2024026020W WO 2026018441 A1 WO2026018441 A1 WO 2026018441A1
Authority
WO
WIPO (PCT)
Prior art keywords
acceleration
deceleration
time constant
moving average
average filter
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
PCT/JP2024/026020
Other languages
English (en)
French (fr)
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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Priority to PCT/JP2024/026020 priority Critical patent/WO2026018441A1/ja
Publication of WO2026018441A1 publication Critical patent/WO2026018441A1/ja
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by control of velocity, acceleration or deceleration

Definitions

  • This disclosure relates to a control device.
  • the control device disclosed herein solves the above problem by smoothing the speed using dummy data that is not output to the servo when switching the time constant, thereby preventing speed steps from occurring.
  • One aspect of the present disclosure is a control device that includes an acceleration/deceleration unit that performs acceleration/deceleration processing using a moving average filter to adjust the amount of movement in each control cycle for controlling a servo motor, for interpolated data that commands the amount of movement for each control cycle, and a servo control unit that controls the servo motor based on the interpolated data that has been accelerated/decelerated, and when performing acceleration/deceleration processing on the interpolated data before and after the time constant is switched, the acceleration/deceleration unit inserts a dummy pulse into the moving average filter and performs acceleration/deceleration processing that takes the dummy pulse into account.
  • FIG. 2 is a schematic hardware configuration diagram of a control device according to the first embodiment.
  • FIG. 2 is a block diagram showing a schematic function of a control device according to the first embodiment.
  • FIG. 10 is a schematic diagram showing an example of interpolated data.
  • 10A and 10B are schematic diagrams showing an example in which acceleration/deceleration processing is performed on interpolated data;
  • 10A and 10B are schematic diagrams illustrating an example in which acceleration/deceleration processing is further performed on interpolated data after acceleration/deceleration processing;
  • 10A and 10B are schematic diagrams showing examples of interpolation data before and after the time constant is switched;
  • FIG. 10 is a schematic diagram showing an example in which a speed step occurs.
  • 10A and 10B are schematic diagrams showing examples of interpolated data subjected to acceleration/deceleration processing according to the prior art; 10A and 10B are schematic diagrams illustrating calculations of a moving average filter in acceleration/deceleration processing. 10A and 10B are schematic diagrams illustrating calculations of a moving average filter in acceleration/deceleration processing. 10A and 10B are schematic diagrams showing the transition of the output movement amount when acceleration/deceleration processing is performed.
  • FIG. 10 is a schematic diagram illustrating a second calculation of the moving average filter in the acceleration/deceleration process.
  • FIG. 10 is a schematic diagram illustrating a second calculation of the moving average filter in the acceleration/deceleration process.
  • FIG. 10 is a schematic diagram illustrating a second calculation of the moving average filter in the acceleration/deceleration process.
  • FIG. 10 is a schematic diagram illustrating a second calculation of the moving average filter in the acceleration/deceleration process.
  • FIG. 10 is a schematic diagram illustrating a second calculation of the moving average filter in the acceleration/deceleration process.
  • 10A and 10B are schematic diagrams showing the transition of the output movement amount when double acceleration/deceleration processing is performed;
  • based on XX means “based on at least XX,” and includes cases where it is based on other elements in addition to XX. Furthermore, “based on XX” is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX” is any element (for example, any information).
  • FIG. 1 is a schematic hardware configuration diagram showing the main parts of a control device according to an embodiment of the present disclosure.
  • the control device 1 of the present disclosure can be implemented as a motor control device that controls a motor that drives industrial machinery such as a machine tool or a robot.
  • the control device 1 of the present disclosure can also be implemented as a numerical control device that controls industrial machinery equipped with a moving object that moves when driven by a motor, based on a numerical control program or the like.
  • An example of implementation as a numerical control device that controls based on a numerical control program or the like will be described below.
  • the CPU 11 provided in the control device 1 of the present disclosure is a processor that controls the entire control device 1.
  • the CPU 11 reads the system program stored in the ROM 12 via the bus 22 and controls the entire control device 1 in accordance with the system program.
  • the RAM 13 temporarily stores temporary calculation data, display data, and various data input from outside.
  • the non-volatile memory 14 is composed of, for example, a battery-backed memory (not shown) or an SSD (Solid State Drive), and retains its stored state even when the control device 1 is powered off.
  • the non-volatile memory 14 stores operation programs and data read from the external device 72 via the interface 15, data and operation programs input via the input device 71, and various data acquired from the industrial machinery 3.
  • the operation programs and data stored in the non-volatile memory 14 may be expanded into the RAM 13 when executed/used.
  • various system programs such as well-known analysis programs are pre-written in the ROM 12.
  • the interface 15 is an interface for connecting the CPU 11 of the control device 1 to an external device 72 such as a USB memory, CompactFlash (registered trademark), or SD card.
  • an external device 72 such as a USB memory, CompactFlash (registered trademark), or SD card.
  • operation programs and various data used to control the industrial machinery 3 can be read from the external device 72.
  • operation programs and various data edited within the control device 1 can be stored in the external device 72.
  • the PLC (programmable logic controller) 16 outputs signals to the industrial machinery 3 and its peripheral devices (for example, tool changers, actuators such as robots, and sensors attached to the industrial machinery 3) via the I/O unit 17 using a sequence program built into the control device 1.
  • the PLC 16 also receives signals from various switches on an operation panel installed on the main body of the industrial machinery 3 and from peripheral devices, performs the necessary signal processing, and then passes the signals to the CPU 11.
  • the display device 70 displays various data loaded into memory, data obtained as a result of executing operating programs and system programs, etc., output via the interface 18.
  • the input device 71 which is comprised of a keyboard, pointing device, etc., transmits commands and data based on operations by the operator to the CPU 11 via the interface 19.
  • the interface 20 is an interface for connecting the CPU 11 of the control device 1 to a wired or wireless network 5.
  • the network 5 may communicate using technologies such as serial communication such as RS-485, Ethernet (registered trademark), optical communication, wireless LAN, Wi-Fi (registered trademark), or Bluetooth (registered trademark).
  • Other control devices 4, fog computers 6, cloud servers 7, etc. are connected to the network 5, and data is exchanged between the network 5 and the control device 1.
  • the axis control circuit 30 for controlling the drive axes of the industrial machinery 3 receives position commands related to the drive axes from the CPU 11 and outputs commands for the drive axes to the servo amplifier 40.
  • the servo amplifier 40 receives these commands and drives the servo motors 50 related to the drive axes, moving each part of the industrial machinery 3 along its respective axis.
  • Each servo motor 50 has a built-in position detector, and feeds back a position feedback signal from this position detector to the axis control circuit 30.
  • the axis control circuit 30 performs feedback control of the servo motor 50 based on this position feedback signal.
  • FIG. 1 shows only one axis control circuit 30, servo amplifier 40, and servo motor 50, in reality there are as many as there are drive axes of the industrial machinery 3 to be controlled.
  • axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move the spindle to which the tool is attached and the workpiece relatively in the directions of the three linear axes and two rotational axes (X-axis, Y-axis, Z-axis, A-axis, and C-axis).
  • the spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to the spindle amplifier 61.
  • the spindle amplifier 61 receives this spindle speed signal and rotates the spindle motor 62 of the industrial machine 3 at the commanded rotation speed, driving the spindle.
  • a position coder 63 is connected to the spindle motor 62.
  • the position coder 63 outputs a feedback pulse in synchronization with the rotation of the spindle, and this feedback pulse is read by the CPU 11.
  • the control device 1 may be configured as a separate entity from the industrial machinery 3.
  • the control device 1 and the industrial machinery 3 may be connected by a signal line or the like, or may be connected via a network.
  • the control device 1 may also be connected to the industrial machinery 3 by being incorporated into the industrial machinery 3.
  • FIG. 2 is a schematic block diagram showing the functions of the control device 1 according to the first embodiment of the present disclosure.
  • the functions of the control device 1 according to this embodiment are realized by the CPU 11 of the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.
  • the control device 1 of this embodiment includes a program analysis unit 100, an interpolation unit 120, an acceleration/deceleration unit 130, and a servo control unit 150. Furthermore, the RAM 13 through non-volatile memory 14 included in the control device 1 store in advance a control program 200, such as a numerical control program containing commands for controlling the industrial machine 3.
  • a control program 200 such as a numerical control program containing commands for controlling the industrial machine 3.
  • the program analysis unit 100 sequentially reads blocks included in the control program 200 and analyzes the commands related to the operation of the industrial machine 3 by those blocks. Then, based on the analysis results, it creates command data that commands the operation of the industrial machine 3.
  • the analysis by the program analysis unit 100 is based on parameters set in the control device 1 and the settings of the industrial machine 3. For example, if a block read from the control program 200 is a command to move a moving object of the industrial machine 3, the command data created by the program analysis unit 100 is the movement amount and rotation amount related to at least one axis related to the movement, or the combined movement amount and rotation amount of multiple drive axes, and outputs this to the interpolation unit 120.
  • a block read from the control program 200 commands the operation of the spindle motor 62, it creates data that commands the rotation amount of the spindle motor 62 and outputs this to the control unit 140.
  • the program analysis unit 100 outputs data that commands the rotation operation of the servo motor 50 to the interpolation unit 120. It also outputs other command data that controls the operation of the industrial machine 3 to the control unit 140.
  • the interpolation unit 120 creates interpolation data that indicates the amount of movement or rotation for at least one axis, or the combined amount of movement or rotation for multiple drive axes, per predetermined interpolation period (control period) based on the command data output by the program analysis unit 100.
  • the amount of movement per interpolation period is indicated, for example, by the number of pulses.
  • the interpolation unit 120 outputs the created interpolation data to the acceleration/deceleration unit 130.
  • the acceleration/deceleration unit 130 performs acceleration/deceleration processing on the interpolated data created by the interpolation unit 120, adjusting the amount of movement in each interpolation cycle to prevent sudden acceleration or deceleration.
  • the acceleration/deceleration unit 130 performs acceleration/deceleration processing using, for example, a moving average filter.
  • the acceleration/deceleration unit 130 may also perform acceleration/deceleration processing by applying a double filter, for example.
  • the interpolated data that has undergone acceleration/deceleration processing is then output to the servo control unit 150.
  • the control unit 140 controls each part of the industrial machine 3 based on the command data created by the program analysis unit 100. For example, based on the command data created by the program analysis unit 100, the control unit 140 creates control commands for the spindle motor 62 equipped in the industrial machine 3, signals for controlling peripheral devices, etc., and outputs them to the industrial machine 3. The control unit 140 also acquires the status of each part of the industrial machine 3 as feedback values and uses them for each control process.
  • the control unit 140 includes a servo control unit 150 that controls the servo motor 50 equipped in the industrial machine 3. The servo control unit 150 controls the movement amount of the servo motor 50 for each interpolation period based on the interpolation data that has been accelerated and decelerated by the acceleration/deceleration unit 130.
  • the output movement amount in a predetermined interpolation period is set to the average value of the input movement amounts in interpolation periods of a predetermined width adjacent to the interpolation period.
  • This predetermined width is the size of the moving average filter.
  • the size of the moving average filter is defined by a time constant. In other words, the size of the moving average filter has the same value as the time constant.
  • the output movement amount y (t) in a predetermined interpolation period Pt can be calculated using the following equation 1, where x(t) is the input movement amount in the predetermined interpolation period Pt and k is the size of the moving average filter.
  • FIG. 3 is a schematic diagram showing an example of interpolation data created by the interpolation unit 120.
  • the movement amount per interpolation period in the interpolation data is represented by the amount of pulses.
  • the interpolation data shown in FIG. 3 commands the servo motor 50 to move 10 pulses (10 unit movement amounts) per interpolation period P from time t1 onward. Since these 10 unit movement amounts are the movement amount per interpolation period, they represent a command speed F.
  • the acceleration/deceleration unit 130 performs acceleration/deceleration processing on such interpolation data to prevent sudden acceleration and deceleration.
  • FIG. 4 is a schematic diagram showing an example in which the acceleration/deceleration unit 130 performs acceleration/deceleration processing on the interpolated data shown in FIG. 3.
  • the example in FIG. 4 shows a case in which the size of the moving average filter is set to 5 and acceleration/deceleration processing is performed on the interpolated data shown in FIG. 3. In this way, by performing acceleration/deceleration processing on the interpolated data, the movement amount per interpolation cycle is adjusted so that sudden acceleration does not occur when the servo motor 50 accelerates.
  • Figure 5 is a schematic diagram showing an example in which further acceleration/deceleration processing is performed on the interpolated data after the acceleration/deceleration processing shown in Figure 4.
  • acceleration/deceleration processing is performed with a moving average filter size of 5, as in the example of Figure 4.
  • the movement amount for each interpolation cycle is adjusted so that speed and acceleration changes also result in smooth acceleration and deceleration.
  • a delay occurs in the time it takes to reach the commanded speed. For example, if acceleration/deceleration processing is not performed as shown in FIG. 3, and the servo motor 50 is controlled based on the interpolated data, the speed of the servo motor 50 reaches the commanded speed F at time t1 . However, if acceleration/deceleration processing is performed once using a moving average filter of size 5 as shown in FIG. 4, the commanded speed F is reached at time t5 , and if acceleration/deceleration processing is performed twice as shown in FIG. 5, the commanded speed F is reached at time t9 . At this stage, there are still pulses remaining to be processed in the moving average filter.
  • the time constant may be switched during acceleration/deceleration processing by the moving average filter. For example, suppose the moving average filter size is set to 5 for the cutting feed command and 3 for the fast-forward command.
  • the time constant may be switched not only when switching between cutting feed and fast-forward as in the example, but also during the cutting feed command or the fast-forward command.
  • FIG. 6 consider a case in which interpolated data is generated based on the cutting feed command up to time t5 , and interpolated data is generated based on the fast-forward command from time t6 onward.
  • the interpolated data generated based on the cutting feed command has not yet been output at time t5 ; specifically, approximately 20 pulses remain unoutput.
  • the remaining pulses before the time constant was switched and the pulses based on the command after the time constant was switched are integrated and output as the movement amount. This results in a speed step, as shown in FIG. 7 .
  • the time constant is switched after the output of the pulse in response to the previous command is completed, and then the pulse in response to the next command is output, as illustrated in FIG.
  • the acceleration/deceleration unit 130 inserts a dummy pulse after the moving average filter during acceleration/deceleration processing by the moving average filter before the time constant is switched to compensate for any remaining pulses that were not output before the time constant was switched. Furthermore, in acceleration/deceleration processing by the moving average filter after the time constant is switched, the acceleration/deceleration unit 130 inserts a dummy pulse before the moving average filter to continue the movement from before the time constant was switched. This dummy pulse is used in calculations by the moving average filter, but is not output as the amount of movement.
  • FIG. 9 is a schematic diagram illustrating calculations of a moving average filter in acceleration/deceleration processing by the acceleration/deceleration unit 130 according to this embodiment.
  • FIG. 9 illustrates an example of acceleration/deceleration processing performed by the acceleration/deceleration unit 130 according to this embodiment on interpolated data based on the cutting command illustrated in FIG. 6 .
  • the moving average filter is represented by multiple connected rectangular frames. Note that the time constant of the cutting feed command is five interpolation periods. Each frame of the moving average filter numerically indicates the number of pulses used to calculate the output movement amount at each time.
  • the right side of the frame of the moving average filter numerically indicates the number of pulses in the interpolation period at a newer time, and the left side indicates the number of pulses in the interpolation period at an older time. Furthermore, the circled numbers within the frame indicate the number of dummy pulses.
  • the output movement amount is calculated based on the number of pulses at time t1 and the number of pulses up to four interpolation periods prior to that, as illustrated in FIG. 9 .
  • FIG. 9 when 10 pulses are input as interpolated data at time t1 , the output movement amount is calculated based on the number of pulses at time t1 and the number of pulses up to four interpolation periods prior to that, as illustrated in FIG. 9 .
  • FIG. 9 when 10 pulses are input as interpolated data at time t1 , the output movement amount is calculated based on the number of pulses at time t1 and the number of pulses up to four interpolation periods prior to that, as illustrated in FIG. 9 .
  • the output movement amount is calculated by the moving average filter as time progresses.
  • the interpolated data based on the cutting feed command decreases to 0.
  • the acceleration/deceleration unit 130 of this embodiment performs acceleration/deceleration processing as if a dummy pulse had been input. In the example of FIG. 9, this is treated as if 10 dummy pulses had been input.
  • the input dummy pulses may be the number of pulses required to maintain the commanded speed.
  • the calculation of the output movement amount by the moving average filter continues in this manner.
  • the acceleration/deceleration processing for the interpolated data based on this command is terminated.
  • the final calculated output movement amount is less than the commanded speed, it is adjusted appropriately with the output movement amount in other interpolation periods so that the commanded speed can be maintained until the end.
  • the accumulated value of the output movement amount reaches 50, matching the number of input pulses for the interpolated data based on the cutting command. Therefore, the acceleration/deceleration processing for the interpolated data based on the cutting command is terminated at this stage, and the acceleration/deceleration processing for the interpolated data based on the subsequent fast-forward command is started.
  • FIG. 10 is a schematic diagram illustrating calculations of a moving average filter in acceleration/deceleration processing by the acceleration/deceleration unit 130 according to this embodiment.
  • FIG. 10 illustrates an example of acceleration/deceleration processing performed by the acceleration/deceleration unit 130 according to this embodiment on interpolated data based on the fast-forward command illustrated in FIG. 6 .
  • the time constant for the fast-forward command is set to three interpolation periods.
  • the acceleration/deceleration processing for the interpolated data of the command after the time constant is switched begins in the interpolation period following the interpolation period in which calculation of the output movement amount based on the acceleration/deceleration processing for the interpolated data of the command before the time constant is switched is completed.
  • calculation of the output movement amount based on the interpolated data based on the fast-forward command begins at time t8 , which is the interpolation period following time t7 , in which calculation of the output movement amount based on the acceleration/deceleration processing of the previous command is completed.
  • the acceleration/deceleration unit 130 sequentially inserts interpolated data in chronological order so that the first interpolated data is placed in the center frame of the moving average filter (or the frame immediately to the left of the center if the size is even), and then adds dummy pulses necessary to maintain the specified speed to achieve the command speed. Then, processing begins.
  • the moving average filter is filled with 10 dummy pulses corresponding to the command speed.
  • the center of the moving average filter contains 10 pulses input as interpolated data based on the fast-forward command at time t6 and 10 pulses input as interpolated data based on the fast-forward command at time t7 .
  • the output movement amount is calculated based on these pulse numbers. The calculation of the output movement amount by the moving average filter continues in this manner.
  • FIG. 11 is a schematic diagram showing the transition of the output movement amount when acceleration/deceleration processing is performed by the acceleration/deceleration unit 130 according to this embodiment.
  • acceleration/deceleration processing is performed by the acceleration/deceleration unit 130 according to this embodiment, there is almost no speed difference before and after switching the time constant.
  • the movement commanded before the time constant is switched can be naturally connected to the movement commanded after the time constant is switched, unnecessary acceleration/deceleration is eliminated, and the cycle time can be shortened.
  • movement according to a fast-forward command is initiated at time t10 , and the commanded speed is reached at time t12 .
  • movement according to a fast-forward command is initiated at time t8 , and movement is performed at the commanded speed at the start of movement.
  • FIG. 12 is a schematic diagram illustrating the second calculation of the moving average filter in the acceleration/deceleration process by the acceleration/deceleration unit 130 according to this embodiment.
  • FIG. 12 shows an example in which the time constant of the second moving average filter in the cutting feed command is set to three interpolation periods for the cutting feed interpolation data that has been subjected to acceleration/deceleration processing using a dummy pulse, and the acceleration/deceleration unit 130 according to this embodiment further performs acceleration/deceleration processing.
  • the cutting feed interpolation data that has been subjected to the first acceleration/deceleration process using a dummy pulse is as shown in FIG. 11. As illustrated in FIG.
  • the output movement amount is calculated by the moving average filter as time progresses.
  • the acceleration/deceleration unit 130 of this embodiment performs acceleration/deceleration processing as if dummy pulses had been input. In the example of FIG. 12, this is treated as if 10 dummy pulses had been input.
  • the input dummy pulses may be the number of pulses required to maintain the commanded speed.
  • the calculation of the output movement amount by the moving average filter continues in this manner, and when the integrated value of the output movement amount becomes the same as the number of interpolated data input, the acceleration/deceleration processing for the interpolated data based on that command is terminated.
  • the final calculated output movement amount is less than the commanded speed, it is adjusted appropriately with the output movement amount in other interpolation periods to maintain the commanded speed until the end.
  • the integrated value of the output movement amount reaches 50, which matches the number of input pulses of the interpolated data based on the cutting command. Therefore, at this stage, the acceleration/deceleration process for the interpolated data based on the cutting command is terminated, and the acceleration/deceleration process for the interpolated data based on the subsequent fast-forward command is initiated.
  • FIG. 13 if the final calculated output movement amount is less than the commanded speed, it is adjusted appropriately with the output movement amount in other interpolation periods to maintain the commanded speed until the end.
  • FIG. 14 is a schematic diagram illustrating the second calculation of the moving average filter in the acceleration/deceleration processing by the acceleration/deceleration unit 130 according to this embodiment.
  • FIG. 14 shows an example in which the time constant of the second moving average filter in the fast-forward command is set to three interpolation periods for the fast-forward interpolation data subjected to acceleration/deceleration processing using a dummy pulse following FIG. 12 , and the acceleration/deceleration unit 130 according to this embodiment further performs acceleration/deceleration processing.
  • the fast-forward interpolation data subjected to the first acceleration/deceleration processing using a dummy pulse is as shown in FIG. 11 .
  • the acceleration/deceleration processing for the interpolation data of the command after the time constant is switched begins in the interpolation period following the interpolation period in which calculation of the output movement amount by the acceleration/deceleration processing for the interpolation data of the command before the time constant is switched is completed.
  • calculation of the output movement amount based on the interpolation data based on the fast-forward command begins at time t9 , which is the interpolation period following time t8 , in which calculation of the output movement amount based on the acceleration/deceleration processing of the previous command was completed.
  • the acceleration/deceleration unit 130 sequentially inserts interpolated data in chronological order so that the first interpolated data is placed in the center of the moving average filter, and then adds dummy pulses necessary to maintain the commanded speed to achieve the commanded speed before starting processing.
  • the center of the moving average filter receives 10 pulses input as interpolated data based on the fast-forward command at time t8
  • the right end of the filter receives 10 pulses input as interpolated data based on the fast-forward command at time t9 .
  • the output movement amount is then calculated based on the number of these pulses. The calculation of the output movement amount by the moving average filter continues in this manner.
  • FIG. 15 is a schematic diagram illustrating an example of the second moving average filter calculation in the acceleration/deceleration unit 130 in response to a fast-forward command, with the filter time constant set to four interpolation periods.
  • the acceleration/deceleration unit 130 sequentially inserts interpolated data in chronological order, placing the first interpolated data in the box immediately to the left of the center, and then adds dummy pulses necessary to maintain the commanded speed to achieve the commanded speed before starting processing.
  • the moving average filter receives 10 pulses from the box immediately to the left of the center, which are input as interpolated data based on the fast-forward command from time t8 to time t10 .
  • the output movement amount is calculated based on these pulse counts. However, if left as is, the output pulses would be five pulses short of the interpolated data for the input pulses. Therefore, the output movement amount is adjusted by appropriately adding the output movement amount in the subsequent interpolation periods so that all of the commanded input pulses are output.
  • FIG. 16 is a schematic diagram showing the transition of the output movement amount when double acceleration/deceleration processing is performed by the acceleration/deceleration unit 130 according to this embodiment.
  • acceleration/deceleration processing is performed by the acceleration/deceleration unit 130 according to this embodiment, there is almost no speed difference before and after switching the time constant.
  • the movement commanded before switching the time constant can be naturally connected to the movement commanded after switching the time constant, unnecessary acceleration/deceleration is eliminated, and the cycle time can be shortened.
  • T1 used for the first acceleration/deceleration
  • T2 used for the second acceleration/deceleration
  • T1 the acceleration/deceleration calculation for T1 is performed first, and then the acceleration/deceleration calculation for T2 is performed, thereby realizing switching of the time constants at a constant speed without changing the results of the double acceleration/deceleration.
  • the control device 1 which is configured as described above, always uses the optimal time constant (a time constant that satisfies the allowable jerk) and can change the time constant depending on the direction of travel of the controlled object and the control method. It also becomes clear how many pulses of a certain interpolation cycle are output at what time.
  • the optimal time constant a time constant that satisfies the allowable jerk
  • control device 1 according to a second embodiment of the present disclosure will be described below.
  • the control device 1 according to this embodiment has the same hardware configuration as the control device 1 according to the first embodiment.
  • control device 1 of this embodiment includes a program analysis unit 100, an interpolation unit 120, an acceleration/deceleration unit 130, and a servo control unit 150. Furthermore, the RAM 13 through non-volatile memory 14 of the control device 1 store in advance a control program 200, such as a numerical control program containing commands for controlling the industrial machine 3.
  • a control program 200 such as a numerical control program containing commands for controlling the industrial machine 3.
  • the program analysis unit 100, interpolation unit 120, and servo control unit 150 in this embodiment have the same functions as those in the first embodiment.
  • the acceleration/deceleration unit 130 performs acceleration/deceleration processing on the interpolated data created by the interpolation unit 120, adjusting the movement amount in each interpolation cycle to prevent sudden acceleration or deceleration.
  • the acceleration/deceleration unit 130 requires that the distance d1 before the time constant switching and the distance d2 after the time constant switching required for switching the time constant satisfy the following equation (3).
  • the command speed must be equal to or less than vk shown in equation (2), so the command speed is changed to vk .
  • T1 is the time constant for the second acceleration/deceleration processing before the switching
  • T2 is the time constant for the second acceleration/deceleration processing after the switching
  • a1 is the acceleration before the switching
  • a2 is the acceleration after the switching
  • v is the command speed before and after the switching, which allows the following equation (2) to be obtained.
  • the time constant T'1 for the first acceleration/deceleration processing before the switching can also be expressed as v/ a1
  • the time constant T'2 for the first acceleration/deceleration processing after the switching can also be expressed as v/ a2 .
  • the control device 1 which is configured as described above, always uses the optimal time constant (a time constant that satisfies the allowable jerk) even when the speed changes before and after switching the time constant, and is able to change the time constant depending on the direction of travel of the controlled object. It also becomes clear how many pulses of a certain interpolation cycle are output at what time.
  • a control device (1) includes an acceleration/deceleration unit (130) that performs acceleration/deceleration processing using a moving average filter to adjust the amount of movement in each control cycle for interpolation data that commands the amount of movement for each control cycle that controls a servo motor (50), and a servo control unit (150) that controls the servo motor based on the interpolation data that has been accelerated/decelerated, and when the acceleration/deceleration unit (130) performs acceleration/deceleration processing on the interpolation data before and after switching of the time constant, it inserts a dummy pulse into the moving average filter and performs acceleration/deceleration processing that takes the dummy pulse into consideration.
  • the acceleration/deceleration unit (130) provided in the control device (1) according to another aspect of the present disclosure inserts the dummy pulse into the moving average filter as if the movement amount per interpolation period before and after the time constant is switched is the command speed according to the command before the time constant is switched.
  • the acceleration/deceleration unit (130) inserts the dummy pulses into the moving average filter as if the movement amount per interpolation period before and after the time constant is switched is a velocity vk calculated by Formula 2.
  • d1 is a distance before the time constant is switched that is required for switching the time constant
  • d2 is a distance after the time constant is switched that is required for switching the time constant
  • T1 is a time constant for the second acceleration/deceleration process before the switching
  • T2 is a time constant for the second acceleration/deceleration process after the switching
  • a1 is the acceleration before the switching
  • a2 is the acceleration after the switching
  • d1 and d2 are calculated as values that satisfy Formula 3
  • v is a command velocity before and after the time constant is switched.
  • Control device 3 Industrial machine 4
  • Control device 5 Network 6
  • Network 6 Fog computer 7
  • Cloud server 11 CPU 12 ROM 13 RAM 14
  • PLC 17 I/O unit 22
  • Bus 30 Axis control circuit 40
  • Servo amplifier 50 Servo motor 60
  • Spindle control circuit 61 Spindle amplifier 62
  • Position coder 70 Display device 71
  • Input device 72 External device 100
  • Program analysis unit 120 Interpolation unit 130 Acceleration/deceleration unit 140
  • Control unit 150 Servo control unit 200 Control program

Landscapes

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

Abstract

本開示による制御装置は、サーボモータを制御する制御周期毎の移動量を指令する補間データに対して、移動平均フィルタを用いてそれぞれの制御周期における移動量を調整する加減速処理を実行する加減速部と、加減速処理された補間データに基づいてサーボモータを制御するサーボ制御部と、を備え、加減速部は、時定数が切り替わる前後の補間データに対して加減速処理を実行する際に、移動平均フィルタに対してダミーパルスを挿入し、ダミーパルスを考慮した加減速処理を実行する。

Description

制御装置
 本開示は、制御装置に関する。
 工作機械などの産業機械に備え付けられた複数のモータを制御する際、現在は該モータに係る軸の移動方向に依らず、加速度変化時間(時定数)は同じ値を設定して速度制御を行っている(例えば、特許文献1など)。複数軸で動作させる駆動系では、軸ごとに剛性が異なり、許容加加速度と許容加速度の比が異なる場合がある。その場合、進行方向に依らない一定の時定数を使用すると、必要最低限の時定数より大きい時定数で制御することになり、サイクルタイムの増大に繋がる。
特開平8-076827号公報
 時定数を軸の移動中に切り替える仕組みがあれば、サイクルタイムの低減に繋がる。しかしながら、現在の制御方式において、減速停止せずに等速で時定数を切り替えると、速度段差が生じ加工面品位が悪化するという課題がある。
 生産現場では、速度段差が生じないように軸の移動中に時定数を切り替える仕組みが望まれている。
 本開示による制御装置は、時定数を切り替える際にサーボに対して出力されないダミーデータを用いて速度の平滑化を行い、速度段差の発生を防ぐことで、上記課題を解決する。
 そして本開示の一態様は、サーボモータを制御する制御周期毎の移動量を指令する補間データに対して、移動平均フィルタを用いてそれぞれの制御周期における移動量を調整する加減速処理を実行する加減速部と、前記加減速処理された補間データに基づいて前記サーボモータを制御するサーボ制御部と、を備え、前記加減速部は、時定数が切り替わる前後の補間データに対して加減速処理を実行する際に、前記移動平均フィルタに対してダミーパルスを挿入し、該ダミーパルスを考慮した加減速処理を実行する、制御装置である。
第1実施形態による制御装置の概略的なハードウェア構成図である。 第1実施形態による制御装置の概略的な機能を示すブロック図である。 補間データの例を示す模式図である。 補間データに対して加減速処理を施した例を示す模式図である。 加減速処理後の補間データに対して更に加減速処理を施した例を示す模式図である。 時定数が切り替わる前後の補間データの例を示す模式図である。 速度段差ができる場合の例を示す模式図である。 従来技術による加減速処理を実行した補間データの例を示す模式図である。 加減速処理における移動平均フィルタの計算について説明する模式図である。 加減速処理における移動平均フィルタの計算について説明する模式図である。 加減速処理をした場合の出力移動量の推移を示す模式図である。 加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。 加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。 加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。 加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。 2重の加減速処理をした場合の出力移動量の推移を示す模式図である。
 以下、本開示の実施形態を図面と共に説明する。なお、以下の説明では、同一または類似の機能を有する構成に同一の符号を付す。そして、それら構成の重複する説明は、省略する場合がある。
 本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
[第1実施形態]
 図1は本開示の一実施形態による制御装置の要部を示す概略的なハードウェア構成図である。本開示の制御装置1は、工作機械やロボットなどの産業機械を駆動するモータを制御するモータ制御装置として実装することができる。また、本開示の制御装置1は、モータが駆動することで移動する移動対象を備えた産業機械を数値制御プログラムなどに基づいて制御する数値制御装置として実装することができる。以下では、数値制御プログラムなどに基づいて制御する数値制御装置として実装した例を説明する。
 本開示の制御装置1が備えるCPU11は、制御装置1を全体的に制御するプロセッサである。CPU11は、バス22を介してROM12に格納されたシステム・プログラムを読み出し、該システム・プログラムに従って制御装置1全体を制御する。RAM13には一時的な計算データや表示データ、及び外部から入力された各種データ等が一時的に格納される。
 不揮発性メモリ14は、例えば図示しないバッテリでバックアップされたメモリやSSD(Solid State Drive)等で構成され、制御装置1の電源がオフされても記憶状態が保持される。不揮発性メモリ14には、インタフェース15を介して外部機器72から読み込まれた動作プログラムやデータ、入力装置71を介して入力されたデータや動作プログラム、産業機械3から取得される各データ等が記憶される。不揮発性メモリ14に記憶された動作プログラムやデータは、実行時/利用時にはRAM13に展開されても良い。また、ROM12には、公知の解析プログラムなどの各種システム・プログラムが予め書き込まれている。
 インタフェース15は、制御装置1のCPU11とUSBメモリ、コンパクトフラッシュ(登録商標)、SDカード等の外部機器72と接続するためのインタフェースである。外部機器72側からは、例えば産業機械3の制御に用いられる動作プログラムや各種データ等を読み込むことができる。また、制御装置1内で編集した動作プログラムや各種データ等は、外部機器72に対して記憶させることができる。PLC(プログラマブル・ロジック・コントローラ)16は、制御装置1に内蔵されたシーケンス・プログラムによって、産業機械3及び該産業機械3の周辺装置(例えば、工具交換装置や、ロボット等のアクチュエータ、産業機械3に取付けられているセンサ等)にI/Oユニット17を介して信号を出力し制御する。また、PLC16は、産業機械3の本体に配備された操作盤の各種スイッチや周辺装置等からの信号を受け、必要な信号処理をした後、CPU11に渡す。
 表示装置70には、メモリ上に読み込まれた各データ、動作プログラムやシステム・プログラム等が実行された結果として得られたデータ等が、インタフェース18を介して出力されて表示される。また、キーボードやポインティングデバイス等から構成される入力装置71は、インタフェース19を介して作業者による操作に基づく指令、データ等をCPU11に渡す。
 インタフェース20は、制御装置1のCPU11と有線乃至無線のネットワーク5とを接続するためのインタフェースである。ネットワーク5は、例えばRS-485等のシリアル通信、Ethernet(登録商標)通信、光通信、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)等の技術を用いて通信をするものであってよい。ネットワーク5には、他の制御装置4、フォグコンピュータ6、クラウドサーバ7等が接続され、制御装置1との間で相互にデータのやり取りを行っている。
 産業機械3の駆動軸を制御するための軸制御回路30は、CPU11からの駆動軸に係る位置指令を受けて、該駆動軸に対する指令をサーボアンプ40に出力する。サーボアンプ40はこの指令を受けて駆動軸に係るサーボモータ50を駆動し、産業機械3が備える各部をそれぞれの軸に沿って移動させる。それぞれのサーボモータ50は位置検出器を内蔵し、この位置検出器からの位置フィードバック信号を軸制御回路30にフィードバックする。軸制御回路30は、この位置フィードバック信号に基づいてサーボモータ50のフィードバック制御を行う。なお、図1のハードウェア構成図では、軸制御回路30、サーボアンプ40、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる産業機械3に備えられた駆動軸の数だけ用意される。例えば、一般的な直線3軸及び回転2軸を備えた工作機械を制御する場合には、工具が取り付けられた主軸とワークとを直線3軸、回転2軸(X軸,Y軸,Z軸,A軸,C軸)方向に相対的に移動させる5組の軸制御回路30、サーボアンプ40、サーボモータ50が用意される。
 スピンドル制御回路60は、主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61はこのスピンドル速度信号を受けて、産業機械3のスピンドルモータ62を指令された回転速度で回転させ、主軸を駆動する。スピンドルモータ62にはポジションコーダ63が結合されている。ポジションコーダ63が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはCPU11によって読み取られる。
 制御装置1は、産業機械3とは別体として構成されていてもよい。この場合、制御装置1と産業機械3とは信号線などで接続されるようにしてもよいし、ネットワークを介して接続されていてもよい。また、制御装置1は、産業機械3に組み込まれる形で、該産業機械3と接続されていてもよい。
 図2は、本開示の第1実施形態による制御装置1が備える機能を概略的なブロック図として示したものである。本実施形態による制御装置1が備える各機能は、図1に示した制御装置1が備えるCPU11がシステム・プログラムを実行し、制御装置1の各部の動作を制御することにより実現される。
 本実施形態の制御装置1は、プログラム解析部100、補間部120、加減速部130、サーボ制御部150を備える。また、制御装置1が備えるRAM13乃至不揮発性メモリ14には、産業機械3を制御するための指令を含む数値制御プログラムなどの制御用プログラム200が予め記憶されている。
 プログラム解析部100は、制御用プログラム200に含まれるブロックを逐次読み込み、該ブロックによる産業機械3の動作に係る指令を解析する。そして、その解析結果に基づいて、産業機械3の動作を指令する指令データを作成する。プログラム解析部100による解析は、制御装置1に設定されているパラメータや産業機械3の設定に基づく。プログラム解析部100が作成する指令データは、例えば制御用プログラム200から読み込んだブロックが産業機械3の移動対象を移動させる指令である場合、該移動に係る少なくとも1つの軸に係る移動量、回転量もしくは、複数の駆動軸の合成移動量、回転量であり、これらを補間部120へと出力する。また、例えば制御用プログラム200から読み込んだブロックがスピンドルモータ62の動作を指令するものであれば、該スピンドルモータ62の回転量を指令するデータを作成し、これを制御部140へと出力する。プログラム解析部100は、サーボモータ50の回転動作を指令するデータを補間部120へと出力する。また、それ以外の産業機械3の動作を制御する指令データを制御部140へと出力する。
 補間部120は、プログラム解析部100で出力した指令データに基づく、少なくとも1つの軸に係る移動量、回転量もしくは、複数の駆動軸の合成移動量、回転量に対して所定の補間周期(制御周期)毎の移動量を示す補間データを作成する。補間部120が作成する補間データにおいて、例えば補間周期毎の移動量はパルス量で示される。補間部120は、作成した補間データを加減速部130へと出力する。
 加減速部130は、補間部120が作成した補間データに対して、急な加速や急な減速が行われないようにそれぞれの補間周期における移動量を調整する加減速処理を行う。加減速部130は、例えば移動平均フィルタを用いた加減速処理を行う。加減速部130は、例えば2重にフィルタを掛けることで加減速処理を行うようにしてもよい。そして、加減速処理を行った補間データをサーボ制御部150へと出力する。
 制御部140は、プログラム解析部100が作成した指令データに基づいて、産業機械3の各部を制御する。制御部140は、例えばプログラム解析部100が作成した指令データに基づいて、産業機械3が備えるスピンドルモータ62の制御指令や、周辺装置を制御するための信号などを作成して産業機械3へと出力する。また、制御部140は、産業機械3の各部の状態をフィードバック値として取得して各制御処理に使用する。制御部140は、産業機械3が備えるサーボモータ50を制御するサーボ制御部150を備える。サーボ制御部150は、加減速部130により加減速処理が行われた補間データに基づいて、補間周期毎のサーボモータ50の移動量を制御する。
 移動平均フィルタを用いて加減速処理をする場合、所定の補間周期における出力移動量を、該補間周期の近傍の所定幅の補間周期における入力移動量を平均化した値とする。この所定幅が移動平均フィルタのサイズである。移動平均フィルタのサイズは、時定数により定義される。すなわち、移動平均フィルタのサイズは、時定数と同じ値となる。所定の補間周期Ptにおける出力移動量y(t)は、所定の補間周期Ptにおける入力移動量をx(t)、移動平均フィルタのサイズをkとしたとき、以下の数1式で計算することができる。
 以下では図3~8を用いて、従来技術による加減速部130の加減速処理について説明する。
 図3は、補間部120が作成する補間データの例を示す模式図である。図3では、補間データにおける補間周期毎の移動量をパルス量で示している。図3で例示する補間データは、時刻t1以降において補間周期Pごとに10パルス(10単位移動量)だけサーボモータ50を移動させることを指令するものである。この10単位移動量は、補間周期毎の移動量であるから、指令速度Fを示す。このような補間データに基づいてサーボモータ50を制御すると、時刻t1の時点でサーボモータ50が急加速してしまい産業機械3にショックが発生する。このショックは、産業機械に振動が生じ、機械の動作や制御対象に悪影響を及ぼす。そのため、加減速部130がこのような補間データに対して加減速処理を行い、急な加速および急な減速が発生しないようにする。
 図4は、図3に例示した補間データに対して加減速部130が加減速処理を施した例を示す模式図である。図4の例では、移動平均フィルタのサイズを5として、図3に例示した補間データに対して加減速処理をした場合をしめしている。このように、補間データに対して加減速処理を施すことで、サーボモータ50が加速する場合に、急激な加速が行われないように補間周期毎の移動量が調整される。
 図5は、図4に例示した加減速処理後の補間データに対して更に加減速処理を施した例を示す模式図である。図5の例では、図4の例と同様に移動平均フィルタのサイズを5として加減速処理をしている。このように、補間データに対して複数回加減速処理を施すことで、速度変化や加速度変化も滑らかな加速及び減速がされるように補間周期毎の移動量が調整される。
 加減速部130が加減速処理を行った場合、指令速度へと到達するまでの時間に遅延が生じる。例えば、図3に例示するように加減速処理を行わない場合、補間データに基づいてサーボモータ50を制御すると、サーボモータ50の速度は時刻t1の時点で指令速度Fに到達する。しかしながら、図4に例示するようにサイズ5の移動平均フィルタを用いて1回加減速処理を実行した場合、指令速度Fに到達するのは時刻t5の時点となり、図5に例示するように2回加減速処理を実行すると、指令速度Fに到達するのは時刻t9の時点となる。そして、この段階では移動平均フィルタ内で処理するべきパルスが残っている状態である。
 このように移動平均フィルタでの加減速処理が行われている最中に時定数の切り替えが行われることがある。例えば、切削送り指令では移動平均フィルタのサイズが5、早送り指令では移動平均フィルタのサイズが3となるように設定されていたとする。なお、時定数の切り替えは例のような切削送り、早送りの切り替え時だけでなく、切削送りの指令中、早送りの指令中でもよい。そして、図6に例示するように、時刻t5までは切削送り指令に基づいて作成された補間データ、時刻t6以降は早送り指令に基づいて作成された補間データが作成されている場合を考える。このような場合に前記加減速部130で行う加減速処理が行われると、時刻t5の時点では、まだ切削送り指令に基づいて作成された補間データが出力され切っていない状態であり、具体的には20パルスほど出力されずに残っている。その後、時定数が切り替わる前の残パルスと、時定数が切り替わった後の指令に基づくパルスとが積算されて移動量として出力される。そのため、図7に例示するように速度段差が生じる。従来の加減速部130では、このような速度段差が生じないようにするために、図8に例示するように先の指令によるパルスの出力が終了してから時定数を切り替えて、次の指令のパルスの出力を行っていた。
 本実施形態による加減速部130は、時定数が切り替わる前の移動平均フィルタによる加減速処理において、時定数が切り替わる前の出力されていない残パルスを補うようにダミーパルスを移動平均フィルタの後方に挿入する。また、加減速部130は、時定数が切り替わった後の移動平均フィルタによる加減速処理において、時定数が切り替わった前からの移動が継続するようにダミーパルスを移動平均フィルタの前方に挿入する。このダミーパルスは、移動平均フィルタにおける計算には用いるが、移動量としては出力しないパルスである。
 以下では、図9~11を用いて、本実施形態による加減速部130による加減速処理について説明する。
 図9は、本実施形態による加減速部130による加減速処理における移動平均フィルタの計算について説明する模式図である。図9は、図6に例示した切削指令に基づく補間データに対して本実施形態による加減速部130が加減速処理を行う例を示している。図9において、複数の連結した四角い枠で移動平均フィルタを表現している。なお、切削送り指令における時定数は5補間周期分としている。移動平均フィルタのそれぞれの枠には、それぞれの時刻において出力移動量の計算に用いられるパルス数を数値で示している。移動平均フィルタの枠は、右の方に新しい時刻における補間周期のパルス数が、左の方に古い時刻における補間周期のパルス数が、それぞれ数値で示されている。また、枠の中の丸で囲われた数値はダミーパルスの数を示している。図9の例では、時刻t1の時点で補間データとして10パルスが入力された時点で、図9に例示するように時刻t1のパルス数と、その4つ前の補間周期までのパルス数とに基づいて、出力移動量が計算される。図6の例では、時刻t1の時点では10パルスが入力され、時刻t1より前には補間データとしてパルスの入力が無かったため、移動平均フィルタの一番右の枠は10、それ以外は0となる。そのため、時刻t1の時点での出力移動量は、(0+0+0+0+10)/5=2(余り0)となる。また、時刻t2の時点で更に補間データとして10パルスが入力されると、一番右の枠に時刻t2において入力されたパルス数10、右から2番目の枠に時刻t1において入力されたパルス数10がそれぞれ入り、他の枠は0となる。そのため、時刻t2の時点での出力移動量は、(0+0+0+10+10)/5=4(余り0)となる。このようにして、時刻が進んでいくにつれて移動平均フィルタによる出力移動量の計算が行われていく。時刻t6の時点で、切削送り指令に基づく補間データが減少して0となるが、本実施形態による加減速部130は、そのような場合においてもダミーパルスが入力されたものとして加減速処理を行う。図9の例では、ダミーパルスが10入力されたものとして扱っている。入力されるダミーパルスは、指令されている速度を維持するために必要となるパルス数であってよい。このようにして移動平均フィルタによる出力移動量の計算を継続し、出力移動量の積算値が入力された補間データと同数となった時点で、当該指令に基づく補間データに対する加減速処理を終了する。なお、最終的に計算された出力移動量に指令速度に満たない余りが出た場合は、適宜他の補間周期における出力移動量との間で調整を行い、最後まで指令速度が維持できるように調整する。図9の例では、時刻t7の時点で、出力移動量の積算値が50となり、切削指令に基づく補間データの入力パルスの量と一致するので、この段階で切削指令に基づく補間データに対する加減速処理を終了し、続く早送り指令に基づく補間データに対する加減速処理を始める。
 図10は、本実施形態による加減速部130による加減速処理における移動平均フィルタの計算について説明する模式図である。図10は、図9に続いて図6に例示した早送り指令に基づく補間データに対して本実施形態による加減速部130が加減速処理を行う例を示している。なお、早送り指令における時定数は3補間周期分としている。時定数が切り替わった後の指令の補間データに対する加減速処理は、時定数が切り替わる前の指令の補間データに対する加減速処理による出力移動量の計算が終わった補間周期の次の補間周期から始める。図10の例では、前の指令の加減速処理に基づく出力移動量の計算が終わった時刻t7の次の補間周期である時刻t8の時点から、早送り指令に基づく補間データに基づく出力移動量の計算が始まる。加減速部130は、移動平均フィルタの中央枠(サイズが偶数である場合には、中央の1つ左の枠)に最初の補間データが入るように時間順に順次補間データを挿入した上で、指定されている速度を維持するために必要なダミーパルスを追加して指令速度となるようにした状態で処理を開始する。図10の例では、移動平均フィルタが、指令速度に相当する10個のダミーパルスで埋められている。また、移動平均フィルタの真ん中には時刻t6における早送り指令に基づく補間データとして入力された10パルスと、時刻t7における早送り指令に基づく補間データとして入力された10パルスとが入る。そして、これらのパルス数に基づいて出力移動量が計算される。このようにして移動平均フィルタによる出力移動量の計算を継続する。
 図11は、本実施形態による加減速部130による加減速処理をした場合の出力移動量の推移を示す模式図である。本実施形態による加減速部130による加減速処理をした場合、時定数を切り替える前後で速度段差はほぼ発生しない。また、時定数を切り替える前の指令による移動を、時定数を切り替えた後の指令による移動へと自然につなげることができるため、無駄な加減速が無くなり、サイクルタイムを縮めることができる。従来技術では、図8に例示するように早送り指令による移動は時刻t10の時点で開始され、その指令速度へと到達するのは時刻t12の時点であった。しかしながら、本実施形態による加減速部130による加減速処理を行うことで、早送り指令による移動は時刻t8の時点で開始され、移動が開始された時点でその指令速度での移動が行われる。
 次に、図12~図16を用いて、2重に移動平均フィルタを掛ける加減速処理の例について説明する。2重にフィルタを掛ける加減速処理の場合、1度目にフィルタを掛ける際に前述したダミーパルスを用いた処理を行い、更に、2度目にフィルタを掛ける際にも、ダミーパルスを用いた処理を行うようにすればよい。ここでは、図6に例示される補間データが入力された際に、2重に移動平均フィルタを掛けた場合の例を示す。1度目のフィルタを掛けた時点では、出力移動量は図11のようになっている。これに対して2度目の移動平均フィルタを掛ける際にも、ダミーパルスを用いる。
 図12は、本実施形態による加減速部130による加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。図12は、ダミーパルスを用いて加減速処理をした切削送りの補間データに対して、切削送り指令における2回目の移動平均フィルタの時定数は3補間周期分として、更に本実施形態による加減速部130が加減速処理を行う例を示している。なお、ダミーパルスを用いた1回目の加減速処理をした切削送りの補間データは図11のようになっている。図11に例示されるように、1回目の加減速処理で計算された時刻t1の出力移動量は2パルスであり、時刻t1より前の出力移動量は0となっている。そのため、図12では、時刻t1において移動平均フィルタの一番右の枠は2、それ以外は0となる。そのため、出力移動量は、(0+0+2)/3=0(余り2)となる。また、1回目の加減速処理で計算された時刻t2の出力移動量は4パルスであるから、時刻t2において移動平均フィルタの一番右の枠は4、その左は2、他の枠は0となる。そのため、時刻t2の時点での出力移動量は、(0+2+4)/3=2(余り0)となる。このようにして、時刻が進んでいくにつれて移動平均フィルタによる出力移動量の計算が行われていく。時刻t8の時点で切削送り指令に基づく補間データは0となるが、本実施形態による加減速部130はダミーパルスが入力されたものとして加減速処理を行う。図12の例ではダミーパルスが10入力されたものとして扱っている。入力されるダミーパルスは、指令されている速度を維持するために必要となるパルス数であってよい。このようにして移動平均フィルタによる出力移動量の計算を継続し、出力移動量の積算値が入力された補間データと同数となった時点で、当該指令に基づく補間データに対する加減速処理を終了する。
 なお、図13に例示するように、最終的に計算された出力移動量に指令速度に満たない余りが出た場合は、適宜他の補間周期における出力移動量との間で調整を行い、最後まで指令速度が維持できるように調整する。図12の例では、時刻t8の時点で、出力移動量の積算値が50となり、切削指令に基づく補間データの入力パルスの量と一致するので、この段階で切削指令に基づく補間データに対する加減速処理を終了し、続く早送り指令に基づく補間データに対する加減速処理を始める。それに対し図13では、時刻t8の次の時刻で指令速度分の10パルスを出力すると、入力された補間データを超えてしまうので、入力された補間データに対する不足分の5パルスを他の補間周期で補うことで、切削指令に基づく補間データに対する加減速処理を終了する。不足分のパルスを他の補間周期で補う際には、次の補間周期において出力されるパルスとの間で大きな速度段差が生じないようにパルスを分配すればよい。
 図14は、本実施形態による加減速部130による加減速処理における2回目の移動平均フィルタの計算について説明する模式図である。図14は、図12に続いてダミーパルスを用いた加減速処理をした早送りの補間データに対して、早送り指令における2回目の移動平均フィルタの時定数も3補間周期分として、更に本実施形態による加減速部130が加減速処理を行う例を示している。なお、ダミーパルスを用いた1回目の加減速処理をした早送りの補間データは図11のようになっている。時定数が切り替わった後の指令の補間データに対する加減速処理は、時定数が切り替わる前の指令の補間データに対する加減速処理による出力移動量の計算が終わった補間周期の次の補間周期から始める。図14の例では、前の指令の加減速処理に基づく出力移動量の計算が終わった時刻t8の次の補間周期である時刻t9の時点から、早送り指令に基づく補間データに基づく出力移動量の計算が始まる。加減速部130は、移動平均フィルタの中央に最初の補間データが入るように時間順に順次補間データを挿入した上で、指令されている速度を維持するために必要なダミーパルスを追加して指令速度となるようにした状態で処理を開始する。また、移動平均フィルタの真ん中には時刻t8における早送り指令に基づく補間データとして入力された10パルスが、フィルタの右端には時刻t9における早送り指令に基づく補間データとして入力された10パルスが、それぞれ入る。そして、これらのパルス数に基づいて出力移動量が計算される。このようにして移動平均フィルタによる出力移動量の計算を継続する。
 図15は図14と同様に、加減速部130における早送り指令に対する2回目の移動平均フィルタの計算を行う例を示す模式図であり、フィルタ時定数を4補間周期分としている。加減速部130は、サイズが偶数である場合には、中央の1つ左の枠に最初の補間データが入るように時間順に順次補間データを挿入した上で、指令されている速度を維持するために必要なダミーパルスを追加して指令速度となるようにした状態で処理を開始する。また、移動平均フィルタの中央の1つ左の枠 以降には時刻t8~時刻t10における早送り指令に基づく補間データとして入力された10パルスが入る。以降、これらのパルス数に基づいて出力移動量が計算されるが、このままだと入力パルスの補間データに対して、出力パルスが5パルス分不足することになるので、以降の補間周期における出力移動量に適宜加算する形で、指令された入力パルスが全て出力されるように調整する。
 図16は、本実施形態による加減速部130による2重の加減速処理をした場合の出力移動量の推移を示す模式図である。本実施形態による加減速部130による加減速処理をした場合、時定数を切り替える前後で速度段差はほぼ発生しない。また、時定数を切り替える前の指令による移動を、時定数を切り替えた後の指令による移動へと自然につなげることができるため、無駄な加減速が無くなり、サイクルタイムを縮めることができる。
 なお、1回目の加減速に用いる時定数T1は2回目の加減速に用いる時定数T2より大きい時定数を設定するのが一般的である。仮にT2の方がT1より大きい値が設定されていた場合、先にT1の加減速計算を行い、そのあとT2による加減速計算を行うことで、2重で行われる加減速の結果を変えることなく、等速での時定数の切り替えを実現できる。
 上記構成を備えた本実施形態による制御装置1は、常に最適な時定数(許容のジャークを満たす時定数)を使用し、制御対象の進行方向や制御方法に応じて時定数を変更することができるようになる。また、ある補間周期のパルスが、どの時間でどれだけ出力されるかが明白になる。
[第2実施形態]
 以下では本開示の第2実施形態による制御装置について説明する。本実施形態による制御装置1は、第1実施形態による制御装置1と同様のハードウェア構成を備える。
 本実施形態による制御装置1は、第1実施形態による制御装置1と同様に、プログラム解析部100、補間部120、加減速部130、サーボ制御部150を備える。また、制御装置1が備えるRAM13乃至不揮発性メモリ14には、産業機械3を制御するための指令を含む数値制御プログラムなどの制御用プログラム200が予め記憶されている。
 本実施形態によるプログラム解析部100、補間部120、サーボ制御部150は、第1実施形態による各機能と同様の機能を備える。
 加減速部130は、補間部120が作成した補間データに対して、急な加速や急な減速が行われないようにそれぞれの補間周期における移動量を調整する加減速処理を行う。本実施形態による加減速部130は、時定数の切換前後の加減速処理を行う場合に、時定数の切り替えに必要な時定数切り替え前の距離d1及び時定数切り替え後の距離d2が以下の数3式を満たす必要がある。数3式を満たすには、指令速度を数2式で示すv以下とする必要があるため、指令速度をvに変更する。なお、数2式において、T1は切り替え前の2回目の加減速処理の時定数、T2は切り替え後の2回目の加減速処理の時定数、a1は切り替え前の加速度、a2は切り替え後の加速度vは切り替え前後の指令速度であり、以下の数2式を求めることができる。なお、切り替え前の1回目の加減速処理の時定数T’1はv/a1、切り替え後の1回目の加減速処理の時定数T’2はv/a2とも表すことができる。
 上記構成を備えた本実施形態による制御装置1は、時定数の切換前後において速度が変化する場合においても、常に最適な時定数(許容のジャークを満たす時定数)を使用し、制御対象の進行方向に応じて時定数を変更することができるようになる。また、ある補間周期のパルスが、どの時間でどれだけ出力されるかが明白になる。
 以上、本開示の実施形態について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、発明の要旨を逸脱しない範囲で、または、請求の範囲に記載された内容とその均等物から導き出される本開示の思想および趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値又は数式が用いられている場合も同様である。
 以下に、本開示の実施形態に係る付記を示す。
(付記1)
 本開示の一態様による制御装置(1)は、サーボモータ(50)を制御する制御周期毎の移動量を指令する補間データに対して、移動平均フィルタを用いてそれぞれの制御周期における移動量を調整する加減速処理を実行する加減速部(130)と、前記加減速処理された補間データに基づいて前記サーボモータを制御するサーボ制御部(150)と、を備え、前記加減速部(130)は、時定数が切り替わる前後の補間データに対して加減速処理を実行する際に、前記移動平均フィルタに対してダミーパルスを挿入し、該ダミーパルスを考慮した加減速処理を実行する。
(付記2)
 本開示の他の態様による制御装置(1)が備える前記加減速部(130)は、時定数が切り替わる前後において補間周期毎の移動量が時定数の切り替え前の指令による指令速度であるかのように前記ダミーパルスを前記移動平均フィルタに挿入する。
(付記3)
 本開示の他の態様による制御装置(1)が前記加減速部(130)は、時定数が切り替わる前後において補間周期毎の移動量が数2式で算出される速度vkであるかのように前記ダミーパルスを前記移動平均フィルタに挿入する。但し、数2式において、d1は時定数の切り替えに必要な時定数切り替え前の距離、d2は時定数の切り替えに必要な時定数切り替え後の距離、T1は切り替え前の2回目の加減速処理の時定数、T2は切り替え後の2回目の加減速処理の時定数、a1は切り替え前の加速度、a2は切り替え後の加速度であり、d1及びd2は数3式を満足する値として計算され、数3式において、vは時定数切り替え前後の指令速度である。
   1 制御装置
   3 産業機械
   4 制御装置
   5 ネットワーク
   6 フォグコンピュータ
   7 クラウドサーバ
  11 CPU
  12 ROM
  13 RAM
  14 不揮発性メモリ
  15,18,19,20 インタフェース
  16 PLC
  17 I/Oユニット
  22 バス
  30 軸制御回路
  40 サーボアンプ
  50 サーボモータ
  60 スピンドル制御回路
  61 スピンドルアンプ
  62 スピンドルモータ
  63 ポジションコーダ
  70 表示装置
  71 入力装置
  72 外部機器
 100 プログラム解析部
 120 補間部
 130 加減速部
 140 制御部
 150 サーボ制御部
 200 制御用プログラム

Claims (3)

  1.  サーボモータを制御する制御周期毎の移動量を指令する補間データに対して、移動平均フィルタを用いてそれぞれの制御周期における移動量を調整する加減速処理を実行する加減速部と、
     前記加減速処理された補間データに基づいて前記サーボモータを制御するサーボ制御部と、
    を備え、
     前記加減速部は、時定数が切り替わる前後の補間データに対して加減速処理を実行する際に、前記移動平均フィルタに対してダミーパルスを挿入し、該ダミーパルスを考慮した加減速処理を実行する、
    制御装置。
  2.  前記加減速部は、時定数が切り替わる前後において補間周期毎の移動量が時定数の切り替え前の指令による指令速度であるかのように前記ダミーパルスを前記移動平均フィルタに挿入する、
    請求項1に記載の制御装置。
  3.  前記加減速部は、時定数が切り替わる前後において補間周期毎の移動量が以下の数2式で算出される速度vkであるかのように前記ダミーパルスを前記移動平均フィルタに挿入する、
    請求項1に記載の制御装置。但し、数2式において、d1は時定数の切り替えに必要な時定数切り替え前の距離、d2は時定数の切り替えに必要な時定数切り替え後の距離、T1は切り替え前の2回目の加減速処理の時定数、T2は切り替え後の2回目の加減速処理の時定数、a1は切り替え前の加速度、a2は切り替え後の加速度であり、d1及びd2は以下の数3式を満足する値として計算され、数3式において、vは時定数切り替え前後の指令速度である。
PCT/JP2024/026020 2024-07-19 2024-07-19 制御装置 Pending WO2026018441A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2024/026020 WO2026018441A1 (ja) 2024-07-19 2024-07-19 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2024/026020 WO2026018441A1 (ja) 2024-07-19 2024-07-19 制御装置

Publications (1)

Publication Number Publication Date
WO2026018441A1 true WO2026018441A1 (ja) 2026-01-22

Family

ID=98437379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/026020 Pending WO2026018441A1 (ja) 2024-07-19 2024-07-19 制御装置

Country Status (1)

Country Link
WO (1) WO2026018441A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01292405A (ja) * 1988-05-19 1989-11-24 Hitachi Ltd ディジタル位置サーボ装置
JPH07121227A (ja) * 1993-10-20 1995-05-12 Fanuc Ltd 非対称型加減速フィルタ
JPH09305211A (ja) * 1996-05-13 1997-11-28 Matsushita Electric Ind Co Ltd 数値制御装置
JP2000163113A (ja) * 1998-11-27 2000-06-16 Yaskawa Electric Corp 移動平均時間変更方法
JP2009226520A (ja) * 2008-03-21 2009-10-08 Fuji Electric Systems Co Ltd 位置決め制御装置
JP2011134169A (ja) * 2009-12-25 2011-07-07 Mitsubishi Heavy Ind Ltd 制御パラメータ調整方法及び調整装置
JP2018124996A (ja) * 2017-01-31 2018-08-09 ブラザー工業株式会社 数値制御装置と制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01292405A (ja) * 1988-05-19 1989-11-24 Hitachi Ltd ディジタル位置サーボ装置
JPH07121227A (ja) * 1993-10-20 1995-05-12 Fanuc Ltd 非対称型加減速フィルタ
JPH09305211A (ja) * 1996-05-13 1997-11-28 Matsushita Electric Ind Co Ltd 数値制御装置
JP2000163113A (ja) * 1998-11-27 2000-06-16 Yaskawa Electric Corp 移動平均時間変更方法
JP2009226520A (ja) * 2008-03-21 2009-10-08 Fuji Electric Systems Co Ltd 位置決め制御装置
JP2011134169A (ja) * 2009-12-25 2011-07-07 Mitsubishi Heavy Ind Ltd 制御パラメータ調整方法及び調整装置
JP2018124996A (ja) * 2017-01-31 2018-08-09 ブラザー工業株式会社 数値制御装置と制御方法

Similar Documents

Publication Publication Date Title
JP4174543B2 (ja) サーボモータの制御装置
US9678500B2 (en) Machining program creating device numerical control device, machining system, machining program creating method, numerical control method, and machining program
US10095223B2 (en) Numerical controller having function of speeding up fixed cycle
JPH11305839A (ja) 複数のサーボモータの制御方法
JP6404863B2 (ja) 加減速フィルタの時定数を動的に切り替える数値制御装置
WO2024232063A9 (ja) 制御装置及びコンピュータ読み取り可能な記録媒体
WO1997008599A1 (en) Method for switching a control mode of a servo control system
EP0357778A1 (en) Method of speed control for servomotor
US11126163B2 (en) Numerical controller
CN108693838B (zh) 数值控制装置和控制方法
EP0343257B1 (en) Numerical controller
WO2026018441A1 (ja) 制御装置
US20200133237A1 (en) Numerical controller
WO2014013550A1 (ja) 数値制御装置および数値制御システム
JP2008269483A (ja) 数値制御装置
JP2004202594A (ja) 数値制御装置
WO2026018437A1 (ja) 制御装置
EP1403747A2 (en) Numerical controller
JP2020003958A (ja) 数値制御装置
JP2007245247A (ja) プログラム確認機能を有する機械
WO2026013802A1 (ja) 制御装置
JP2007304714A (ja) 数値制御装置
JPH10301614A (ja) 数値制御装置
JP2850276B2 (ja) 2つの主軸を有する工作機械の制御装置
WO2025041213A9 (ja) 経路変更装置、及びコンピュータ読み取り可能な記録媒体

Legal Events

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

Ref document number: 24947884

Country of ref document: EP

Kind code of ref document: A1