Control device, control system and processing method
The control device addresses jitter in motor position data by smoothing it when the motor is stopped, ensuring accurate motor control through a detection and averaging mechanism.
Patent Information
- Application Number
- JP2021183230
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-10
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-11-10
AI Technical Summary
Existing solutions do not adequately address jitter in position data when a motor mechanically coupled to an encoder is stopped, which can lead to inaccuracies in motor control.
A control device with an acquisition unit, smoothing unit, and output unit that detects the operating state of the motor and outputs raw position data when the motor is operating and smoothed data when it is stopped, using averaging to reduce jitter.
Reduces jitter in position data when the motor is stopped, maintaining control accuracy and precision by smoothing data when necessary.
Smart Images

Figure 0007786137000001 
Figure 0007786137000002 
Figure 0007786137000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a control device connected to an encoder, a control system including the control device, and a processing method in the control device. [Background technology]
[0002] When driving an object with a motor, a configuration is generally adopted in which information such as the position, speed, and acceleration of the motor or object is obtained based on signals from an encoder mechanically coupled to the motor's rotating shaft.In order to control an object more precisely, it is necessary to reduce errors that occur in the information based on the signals from the encoder.
[0003] For example, Patent Document 1 (JP 2013-078859 A) discloses a solution to the problem of encoder direct-coupled signals that fluctuate by 1 μs to 2 μs each time (fluctuating in units of 1 μs). Patent Document 2 (JP 2020-142442 A) discloses a solution to the problem of encoders whose scale period varies depending on component precision. Patent Document 3 (JP 2018-025391 A) discloses a solution to the problem of fluctuations in the generation time, known as jitter, in pulse signals generated by encoders. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2013-078859 [Patent Document 2] Japanese Patent Application Publication No. 2020-142442 [Patent Document 3] Japanese Patent Application Publication No. 2018-025391 Summary of the Invention [Problem to be solved by the invention]
[0005] The solutions disclosed in the above-mentioned prior art documents address error factors contained in signals output as the encoder operates.
[0006] In contrast to this, the present invention provides a solution to the new problem of reducing jitter in position data that can occur when a motor mechanically coupled to an encoder is stopped. [Means for solving the problem]
[0007] A control device according to one embodiment of the present invention includes an acquisition unit that acquires position data from an encoder, a smoothing unit that smooths the position data from the encoder, a state detection unit that detects the operating state of a motor mechanically coupled to the encoder, and an output unit that outputs the encoder position data for each control period. The output unit outputs the position data from the encoder as is when the motor is operating, and outputs smoothed position data when the motor is stopped. With this configuration, when the motor is operating, the position data from the encoder is output as is, which does not have any effect on motor control. On the other hand, when the motor is stopped, smoothed position data is output, which reduces jitter in the position data that can occur when the motor is stopped.
[0008] The state detection unit may determine whether the motor is operating based on the magnitude of temporal change in position data from the encoder. This configuration simplifies the configuration required for processing, as it can determine whether the motor is operating based on the position data from the encoder.
[0009] The smoothing unit may calculate average data by averaging a plurality of pieces of position data. With this configuration, the position data can be smoothed by a relatively simple process such as averaging a plurality of pieces of position data.
[0010] The number of pieces of position data used to calculate the average value data may be arbitrarily set. With this configuration, the number of pieces of position data can be arbitrarily adjusted depending on the magnitude of jitter in the position data obtained from the encoder.
[0011] The output unit may output the position data acquired immediately after the start of each control cycle while the motor is in operation. With this configuration, since the position data is output immediately after the start of the control cycle while the motor is in operation, the timing of the output position data can be fixed even if the control cycle changes, thereby maintaining control performance.
[0012] The encoder may be an absolute encoder. With this configuration, when the position data output by the absolute encoder contains jitter, the jitter can be reduced.
[0013] A control system according to another example of the present invention includes a control device and a motor controlled by the control device. The control device includes a control calculation unit that calculates a control command for controlling the motor, an acquisition unit that acquires position data from an encoder mechanically coupled to the motor, a smoothing unit that smooths the position data from the encoder, a state detection unit that detects the operating state of the motor, and an output unit that outputs the encoder position data to the control calculation unit for each control period. The output unit outputs the position data from the encoder as is when the motor is operating, and outputs smoothed position data when the motor is stopped.
[0014] The control system may further include a display unit that displays the status of the position data from the encoder and the status of the smoothed position data. With this configuration, the status of the position data from the encoder and the status of the smoothed position data can be confirmed.
[0015] The control system may further include a receiving unit that receives a setting for the degree of smoothing to be performed by the smoothing unit. With this configuration, the degree of smoothing can be adjusted appropriately in accordance with jitter occurring in the position data.
[0016] A processing method according to yet another example of the present invention includes the steps of acquiring position data from an encoder, detecting the operating state of a motor mechanically coupled to the encoder, and outputting the position data from the encoder as is if the motor is operating, and outputting position data that has been smoothed from the position data from the encoder if the motor is stopped. [Effects of the Invention]
[0017] According to the present invention, it is possible to provide a solution to the new problem of reducing jitter in position data that can occur when a motor mechanically coupled to an encoder is stopped. [Brief explanation of the drawings]
[0018] [Figure 1] FIG. 1 is a schematic diagram showing an example of the configuration of a control system according to the present embodiment. [Figure 2] FIG. 1 is a schematic diagram showing an example of a main hardware configuration of a control system according to an embodiment of the present invention. [Figure 3] FIG. 2 is a diagram for explaining an example of the detection principle of an encoder of the control system according to the present embodiment. [Figure 4] FIG. 10 is a schematic diagram showing an example of jitter that may occur in an encoder of the control system according to the present embodiment. [Figure 5] FIG. 2 is a schematic diagram illustrating an example of a functional configuration of a jitter reduction unit in the control system according to the present embodiment. [Figure 6] 10 is an example of a time chart for illustrating the processing of a jitter reduction unit of the control system according to the present embodiment. [Figure 7] 10 is a specific example of a time chart (while the servo motor is stopped) for illustrating the processing of the jitter reduction unit of the control system according to the present embodiment. [Figure 8] 10 is a specific example of a time chart (while a servo motor is operating) for illustrating the processing of the jitter reduction unit of the control system according to the present embodiment. [Figure 9]It is a flowchart showing the processing procedure of the stage control unit of the control system according to this embodiment. [Figure 10] It is a diagram showing an example of the effect of jitter reduction by the jitter reduction unit of the control system according to this embodiment. [Figure 11] It is an example of a time chart for explaining a modification of the processing of the jitter reduction unit of the control system according to this embodiment. [Figure 12] It is a schematic diagram showing an implementation example of the stage control unit of the control system according to this embodiment. [Figure 13] It is a schematic diagram showing an example of a screen displayed on the operation display device of the control system according to this embodiment. [Figure 14] It is an example of a time chart for explaining the analysis processing of the control system according to this embodiment. [Figure 15] It is an example of a time chart for explaining the jitter reduction processing of the control system according to this embodiment.
Embodiments for Carrying Out the Invention
[0019] Embodiments of the present invention will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and their descriptions will not be repeated.
[0020] <A. Application Example> First, an example of a scene to which the present invention is applied will be described. In this specification, as a typical example of a motor, a configuration using a servo motor will be exemplified, but the type of the motor is not limited and any type may be used.
[0021] FIG. 1 is a schematic diagram showing a configuration example of a control system 1 according to this embodiment. In FIG. 1, as a typical example, an example of a laser processing system is shown, but the application to which the present invention is applied is not limited in any way.
[0022] The control system 1 performs laser processing such as drilling, cutting, and marking on a workpiece 4 placed on an XY stage 20. More specifically, the control system 1 includes a control device 10, the XY stage 20, a laser 30, and a galvanometer mirror 40.
[0023] Laser processing of the workpiece 4 combines adjustment of the workpiece position using the XY stage 20 and adjustment of the irradiation position of the laser light generated by the laser 30 using the galvanometer mirror 40. Adjusting the position of the workpiece 4 using the XY stage 20 involves a relatively large displacement and a relatively long response time. In contrast, adjusting the irradiation position using the galvanometer mirror 40 involves a relatively small displacement and a relatively short response time.
[0024] The control device 10 includes a main control unit 100 , a stage control unit 200 , and a laser control unit 300 .
[0025] The main control unit 100 corresponds to a calculation unit that executes an application program 110 (see FIG. 2). The application program 110 is created arbitrarily depending on the mechanism to be controlled, the workpiece 4, etc. The execution results obtained by the main control unit 100 executing the application program 110 are used to generate control signals in the stage control unit 200 and the laser control unit 300. In this way, the main control unit 100 corresponds to a control calculation unit that calculates control commands for controlling the servo motor 24.
[0026] The control device 10 may be connected to an operation display device 400 that outputs commands to the control device 10 in response to user operations and outputs the results of calculations performed by the control device 10.
[0027] The XY stage 20 includes a plate 22 on which the workpiece 4 is placed, and servo motors 24-1 and 24-2 (hereinafter sometimes collectively referred to as "servo motor 24") for driving the plate 22. In the example shown in FIG. 1, the servo motor 24-1 displaces the plate 22 in the X-axis direction, and the servo motor 24-2 displaces the plate 22 in the Y-axis direction.
[0028] The servo motor 24 is controlled by the control device 10. More specifically, the stage control unit 200 outputs a servo command signal 510 to servo drivers 26-1 and 26-2 (see FIG. 2) (hereinafter sometimes collectively referred to as "servo driver 26") for driving the servo motors 24-1 and 24-2 via a control line 51. Further, the stage control unit 200 acquires encoder output information 520 from encoders 28-1 and 28-2 (hereinafter sometimes collectively referred to as "encoder 28") respectively connected to the servo drivers 26-1 and 26-2 via a control line 52.
[0029] The laser control unit 300 is connected to the laser 30 via a control line 53, and outputs a laser control signal 530 for instructing on / off to the laser 30. Further, the laser control unit 300 is connected to the galvanometer mirror 40 via a communication line 54, and outputs a mirror control signal 540 for instructing an optical path to the galvanometer mirror 40. The galvanometer mirror 40 includes an X-axis scanning mirror 43, a Y-axis scanning mirror 45, and a lens 47. The light irradiated from the laser 30 propagates in the order of the lens 47, the Y-axis scanning mirror 45, and the X-axis scanning mirror 43, and is projected onto the XY stage 20.
[0030] The angle of the reflecting surface of the X-axis scanning mirror 43 is adjusted by an X-axis scanning motor 42, and the angle of the reflecting surface of the Y-axis scanning mirror 45 is adjusted by a Y-axis scanning motor 44. The relative distance between the lens 47 and the laser 30 is adjusted by a Z-axis scanning motor 46.
[0031] <B. Hardware Configuration Example of Control System 1> Next, an example of a hardware configuration of control system 1 according to the present embodiment will be described.
[0032] 2 is a schematic diagram showing an example of the main hardware configuration of control system 1 according to the present embodiment. As described above, control device 10 includes main control unit 100, stage control unit 200, and laser control unit 300.
[0033] The main control unit 100 includes, as its main components, a processor 102, a main memory 104, a storage 106, and a bus controller 112.
[0034] The storage 106 is composed of an SSD (Solid State Disk) or flash memory, and stores, for example, a system program 108 for providing a basic program execution environment and an application program 110 that is arbitrarily created according to the work 4.
[0035] The processor 102 is typically composed of a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit), and realizes overall control of the control system 1 by reading the system program 108 and application program 110 stored in the storage 106, expanding them into the main memory 104, and executing them.
[0036] The main control unit 100 is electrically connected to the stage control unit 200 and the laser control unit 300 via an internal bus 114. The bus controller 112 mediates data communication via the internal bus 114.
[0037] Although the configuration example has been shown in which the necessary processing is provided by the processor 102 executing a program, some or all of the provided processing may be implemented using dedicated hardware circuits (e.g., an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)).
[0038] The stage control unit 200 generates and outputs a servo command signal 510 to be given to the servo drivers 26-1 and 26-2. More specifically, the stage control unit 200 includes a stage control calculation section 210 and an encoder interface circuit 220.
[0039] The stage control calculation unit 210 generates commands to be given to the servo drivers 26-1, 26-2 in accordance with calculation values (command values) calculated by the main control unit 100 executing the application program 110. The stage control calculation unit 210 is realized by a calculation circuit configured using, for example, a processor, an ASIC, an FPGA, etc.
[0040] The encoder interface circuit 220 outputs a servo command signal 510 in accordance with a command from the main control unit 100. The servo command signal 510 includes information such as the displacement amount, speed, and angular velocity in a control period for the servo driver 26.
[0041] The encoder interface circuit 220 also corresponds to an acquisition unit that acquires position data from the encoders 28 that are mechanically coupled to the target servo motors 24. More specifically, the encoder interface circuit 220 acquires encoder output information 520 from each of the encoders 28. The encoder output information 520 includes position data indicated by the encoders 28. The encoder output information 520 may be transmitted in frames that are transmitted periodically.
[0042] The stage control calculation section 210 calculates the state values (position, speed, acceleration, etc.) of the servo driver 26 based on the encoder output information 520, and outputs them to the main control unit 100. The stage control calculation section 210 includes a jitter reduction section 230 for reducing jitter included in the encoder output information 520. Details of the processing by the jitter reduction section 230 will be described later.
[0043] The stage control calculation unit 210 and the encoder interface circuit 220 may be realized by a single ASIC or FPGA.
[0044] The laser control unit 300 generates and outputs a laser control signal 530 to be given to the laser 30 and a laser control signal 530 to be given to the galvanometer mirror 40. More specifically, the laser control unit 300 includes a laser control calculation section 310, an output interface circuit 314, and a communication interface circuit 316.
[0045] The laser control calculation unit 310 generates commands to be given to the laser 30 and the galvanometer mirror 40 in accordance with calculation values (command values) calculated by the main control unit 100 executing the application program 110. The laser control calculation unit 310 is realized by a calculation circuit configured using, for example, a processor, an ASIC, an FPGA, etc.
[0046] The laser control calculation unit 310 generates a laser control signal 530 and a mirror control signal 540 .
[0047] The output interface circuit 314 outputs a laser control signal 530 to be given to the laser 30 in accordance with the command generated by the laser control calculation unit 310 .
[0048] The communication interface circuit 316 outputs a mirror control signal 540 to be given to the galvanometer mirror 40 in accordance with the command generated by the laser control calculation unit 310 .
[0049] Note that the laser control arithmetic unit 310, the output interface circuit 314, and the communication interface circuit 316 may be realized by a single ASIC or FPGA.
[0050] <C. Problem> Next, a new problem that the control system 1 according to the present embodiment attempts to solve will be described.
[0051] FIG. 3 is a diagram for explaining an example of the detection principle of the encoder 28 of the control system 1 according to the present embodiment. Referring to FIG. 3, it is assumed that the encoder 28 is an optical absolute encoder that outputs an absolute position. More specifically, the encoder 28 includes an image sensor 282, a processing circuit 284, and a scale 286.
[0052] On the surface of the scale 286, shading information encoding information indicating an absolute position is printed. The relative relationship between the image sensor 282 and the scale 286 changes according to the displacement of the detection target. That is, the area of the scale 286 included in the visual field range of the image sensor 282 sequentially changes according to the displacement of the detection target.
[0053] In the case of a linear encoder, the scale 286 is arranged linearly, and in the case of a rotary encoder, the scale 286 is arranged on a circumferential surface.
[0054] An image (a part of the scale 286) captured by the image sensor 282 is output to the processing circuit 284. The processing circuit 284 decodes the input image to specify the position. The specified position may be the absolute position or the relative position of the scale 286. The position data indicating the position specified by the processing circuit 284 is transmitted to the stage control unit 200 as at least a part of the encoder output information 520.
[0055] When the image sensor 282 images the scale 286, noise (such as shot noise, Johnson noise, 1 / f noise, etc.) may be introduced into the captured image due to the influence of random noise. By decoding the image with noise, an incorrect position may be identified. As a result, even when the detection target is stationary (a state where the relative relationship between the image sensor 282 and the scale 286 does not change), jitter may occur at the identified position.
[0056] FIG. 4 is a schematic diagram showing an example of jitter that may occur in the encoder 28 of the control system 1 according to the present embodiment.
[0057] In a state where the detection target is stationary (a state where the relative relationship between the image sensor 282 and the scale 286 does not change), as shown in FIG. 4(A), the same position should continue to be output regardless of the passage of time. However, in reality, as shown in FIG. 4(B), the identified position may change randomly over time. As described above, this is due to the influence of random noise, so the change in position is random and not regular.
[0058] <D. Jitter Reduction Unit 230> The control system 1 according to the present embodiment has a jitter reduction unit 230 (stage control unit 200) in order to solve the above-described problems. Considering the mechanism by which jitter as described above may occur, the jitter reduction unit 230 enables a process of reducing the jitter included in the position output from the encoder 28 only when the servo driver 26 is not driving the servo motor 24. Conversely, the jitter reduction unit 230 outputs the position output from the encoder 28 as an effective result as it is when the servo driver 26 is driving the servo motor 24.
[0059] 5 is a schematic diagram showing an example of the functional configuration of jitter reduction section 230 of control system 1 according to the present embodiment. Referring to Fig. 5, jitter reduction section 230 includes, as its functional configuration, input buffer 231, position data register 232, accumulator 233, averaging section 234, average value register 235, state detection section 236, selector 237, and output register 238.
[0060] The input buffer 231 holds the latest value of the position data included in the encoder output information 520 .
[0061] The position data register 232 reads and stores the position data obtained immediately after the start of the control period in accordance with a clock signal 239 (also referred to as "CLK" in the figure) and a control synchronization signal 240 (also referred to as "Servo" in the figure).
[0062] The clock signal 239 is a pulse signal for controlling the timing of acquiring the encoder output information 520. For example, the encoder output information 520 is acquired at the rising edge of the clock signal 239. The control synchronization signal 240 is a pulse signal for controlling the cycle for updating the servo command signal 510. For example, while the servo command signal 510 is on, a calculation process required to generate the servo command signal 510 is executed, and while the servo command signal 510 is off, a calculation process for generating and outputting the servo command signal 510 is executed.
[0063] For example, immediately after the control synchronization signal 240 rises from off to on, the position data register 232 reads out the position data held by the input buffer 231 when the first falling edge of the clock signal 239 occurs.
[0064] The integrating section 233 and the averaging section 234 correspond to a smoothing section that smoothes the position data from the encoder 28 .
[0065] Accumulation unit 233 accumulates a predetermined number of pieces of position data acquired immediately after the start of a control cycle in accordance with clock signal 239 and control synchronization signal 240. More specifically, accumulation unit 233 resets the stored accumulated value when control synchronization signal 240 rises from off to on. Then, when clock signal 239 falls, accumulation unit 233 reads out the position data held by input buffer 231 and sequentially adds it to the stored accumulated value. Accumulation unit 233 repeats reading and adding the position data a predetermined number of times for averaging (for example, three times).
[0066] The averaging unit 234 calculates average value data by dividing the integrated value stored in the integrating unit 233 by the number of averaging times. The average value register 235 stores the average value data calculated by the averaging unit 234.
[0067] In this way, the accumulating section 233 and the averaging section 234 (smoothing section) average a plurality of pieces of position data to calculate average value data.
[0068] The state detection unit 236 detects the operating state of the servo motor 24 mechanically coupled to the target encoder 28. Typically, the state detection unit 236 determines whether the servo motor 24 is operating based on the magnitude of temporal change in position data from the encoder 28. More specifically, the state detection unit 236 detects the state of the servo motor 24 based on whether the maximum value among the differences (absolute values) of adjacent position data acquired during the period in which the control synchronization signal 240 is maintained in the on state after the control synchronization signal 240 rises from off to on exceeds a predetermined threshold value (determined according to the magnitude of jitter generated when the servo motor 24 is stopped).
[0069] The selection unit 237 and the output register 238 correspond to an output unit that outputs the position data of the encoder 28 every control period.
[0070] The selection unit 237 connects one of the position data register 232 and the average value register 235 to the output register 238. More specifically, if the servo motor 24 mechanically coupled to the target encoder 28 is in operation based on the detection result of the state detection unit 236, the selection unit 237 outputs the position data stored in the position data register 232 to the output register 238. On the other hand, if the servo motor 24 mechanically coupled to the target encoder 28 is not in operation, the selection unit 237 outputs the average value data stored in the average value register 235 to the output register 238.
[0071] The output register 238 outputs the stored position data to the main control unit 100 .
[0072] In this way, the selection unit 237 and the output register 238 (output unit) output the position data from the encoder 28 as is when the servo motor 24 is operating, and output smoothed position data (for example, average value data) when the servo motor 24 is stopped. Note that when the servo motor 24 is operating, position data acquired immediately after the start of each control cycle may be output.
[0073] By employing the functional configuration shown in FIG. 5, it is possible to prevent the position data from fluctuating when the servo motor 24 is stopped.
[0074] Fig. 6 is an example of a time chart for explaining the processing of jitter reduction section 230 of control system 1 according to the present embodiment. Fig. 6 shows two cases, that is, when servo motor 24 is stopped and when servo motor 24 is operating.
[0075] Referring to Figure 6, when the servo motor 24 is stopped (period P1), immediately after the control synchronization signal 240 (Servo) rises from off to on, when the first falling edge of the clock signal 239 occurs (step S1), the stage control unit 200 (jitter reduction section 230) stores the position data contained in the acquired encoder output information 520 in the position data register 232 (step S2).
[0076] Furthermore, the stage control unit 200 adds the position data included in the acquired encoder output information 520 to the accumulator 233 every time the first falling edge of the clock signal 239 occurs (steps S3 to S5). In the example shown in Fig. 6, the number of averaging times is specified as three, but a greater or lesser number of averaging times may be used. Once the accumulation for the specified number of averaging times is completed, the stage control unit 200 divides the accumulated value of the position data by the number of averaging times to calculate the average value (average value data) and stores it in the average value register 235 (step S6).
[0077] The stage control unit 200 detects the state of the servo motor 24 based on whether the maximum value of the differences (absolute values) between adjacent position data acquired during the period in which the control synchronization signal 240 (Servo) is maintained in the ON state exceeds a predetermined threshold value. During this period, the maximum value of the differences between the position data does not exceed the predetermined threshold value, so the stage control unit 200 determines that the servo motor 24 is stopped. Then, the stage control unit 200 outputs the average value data stored in the average value register 235 to the output register 238 (step S7).
[0078] Finally, the average value data stored in the output register 238 is output to the main control unit 100 as position data (step S8).
[0079] On the other hand, while the servo motor 24 is in operation (period P2), processing similar to steps S1 to S6 is executed. Subsequently, the stage control unit 200 detects the state of the servo motor 24 based on whether the maximum value of the differences (absolute values) between adjacent position data acquired during the period in which the control synchronization signal 240 (Servo) is maintained in the ON state exceeds a predetermined threshold value. During this period, the maximum value of the differences between the position data exceeds the predetermined threshold value, so the stage control unit 200 determines that the servo motor 24 is in operation. Then, the stage control unit 200 outputs the position data stored in the position data register 232 to the output register 238 (step S9).
[0080] Finally, the position data stored in the output register 238 is output to the main control unit 100 (step S10).
[0081] 7 is a specific example of a time chart (while servo motor 24 is stopped) for explaining the processing of jitter reduction unit 230 of control system 1 according to the present embodiment. Referring to Fig. 7, encoder output information 520 includes a frame storing position data (a numerical value indicating a position).
[0082] The accumulator 233 sequentially adds up the position data included in the frames. In the first period shown in Fig. 7, for example, the values of the three pieces of position data are "10,004", "9,995", and "10,007", respectively, so the average value data is "10,002".
[0083] Furthermore, the maximum value of the differences (absolute values) between adjacent position data is "12," which does not exceed the predetermined threshold value of "40," so it is determined that the servo motor 24 is stopped. As a result, the average data of "10,002" is output as the position data.
[0084] Similarly, in the second period shown in FIG. 7, for example, the values of the three pieces of position data are "9,996", "10,018", and "9,987", respectively, so the average value data is "10,000".
[0085] Furthermore, the maximum value of the differences (absolute values) between adjacent position data is "31," which does not exceed the predetermined threshold value of "40," so it is determined that the servo motor 24 is stopped. As a result, the average data of "10,000" is output as the position data.
[0086] FIG. 8 is a specific example of a time chart (servo motor in operation) for explaining the processing of jitter reduction unit 230 of control system 1 according to the present embodiment. In the first period shown in FIG. 8, for example, the values of three pieces of position data are "10,200", "10,400", and "10,800", respectively, so the maximum value of the differences (absolute values) between adjacent position data is "400". Since this difference exceeds the predetermined threshold value of "40", it is determined that servo motor 24 is in operation. As a result, "10,200", which is the position data acquired at the beginning of the period, is output.
[0087] Similarly, in the second cycle shown in Figure 8, for example, the values of the three pieces of position data are "11,600," "13,200," and "16,400," respectively, so the maximum value of the differences (absolute values) between adjacent position data is "3,200." Since this difference exceeds the predetermined threshold value of "40," it is determined that the servo motor 24 is operating. As a result, "11,600," which is the position data acquired at the beginning of the cycle, is output.
[0088] 9 is a flowchart showing a processing procedure of the stage control unit 200 of the control system 1 according to the present embodiment. Referring to FIG. 9, the stage control unit 200 (jitter reduction section 230) monitors the rising edge of the control synchronization signal 240 to determine whether or not a control cycle has started (step S100). If the control cycle has not started (NO in step S100), the processing of step S100 is repeated.
[0089] When the control cycle starts (YES in step S100), the stage control unit 200 resets the position data register 232 and the integrator 233 (step S102).
[0090] Then, the stage control unit 200 monitors the falling edge of the clock signal 239 to determine whether new encoder output information 520 has been acquired (step S104). If new encoder output information 520 has not been acquired (NO in step S104), the processing of step S104 is repeated.
[0091] When new encoder output information 520 is acquired (YES in step S104), the stage control unit 200 stores the position data included in the acquired encoder output information 520 in the position data register 232 (step S106) and also stores the position data in the accumulator 233 (step S108).
[0092] Next, the stage control unit 200 monitors the falling edge of the clock signal 239 to determine whether new encoder output information 520 has been acquired (step S110). If new encoder output information 520 has not been acquired (NO in step S110), the process of step S110 is repeated.
[0093] When new encoder output information 520 is acquired (YES in step S110), the stage control unit 200 adds the position data included in the acquired encoder output information 520 to the integrated value stored in the position data register 232, and stores the result as a new integrated value in the position data register 232 (step S112). In addition, the stage control unit 200 calculates and stores the absolute value of the difference between the position data included in the previous encoder output information 520 and the position data included in the current encoder output information 520 (step S114).
[0094] The stage control unit 200 determines whether the number of times the encoder output information 520 has been acquired has reached the specified averaging number in the current control cycle (step S116). If the number of times the encoder output information 520 has been acquired has not reached the specified averaging number (NO in step S116), the processing from step S110 onwards is repeated.
[0095] In this way, the stage control unit 200 executes the process of acquiring the position data from the encoder 28 (steps S104, S110).
[0096] When the number of times that encoder output information 520 has been acquired reaches the designated number of times for averaging (YES in step S116), the integrated value stored in step S112 is divided by the number of times for averaging to calculate average value data (step S118).
[0097] The stage control unit 200 determines whether the maximum value of the differences in the position data stored in step S114 exceeds a predetermined threshold value (step S120). That is, the stage control unit 200 executes a process of detecting the operating state of the servo motor 24 mechanically coupled to the encoder 28.
[0098] If the maximum value of the differences in the position data exceeds a predetermined threshold value (YES in step S120), the stage control unit 200 outputs the position data stored in step S106 and acquired immediately after the start of the control cycle (step S122).
[0099] On the other hand, if the maximum value of the differences in the position data does not exceed the predetermined threshold value (NO in step S120), the stage control unit 200 outputs the average value data calculated in step S118 (step S124). Then, the processing from step S100 onwards is repeated.
[0100] In this way, when the servo motor 24 is operating, the stage control unit 200 outputs the position data from the encoder 28 as is, and when the servo motor 24 is stopped, it outputs the position data that has been smoothed from the position data from the encoder 28 (steps S120 to S124).
[0101] 10A and 10B are diagrams showing an example of the effect of jitter reduction by the jitter reduction section 230 of the control system 1 according to the present embodiment. Fig. 10A shows an example of the change over time in the position data output from the encoder 28. Fig. 10B shows the result of jitter reduction by the jitter reduction section 230 with respect to the change over time in such position data.
[0102] As can be seen from a comparison between FIG. 10(A) and FIG. 10(B), it is clear that the jitter generated in the position data has been reduced.
[0103] As described above, the jitter reduction unit 230 of the control system 1 according to this embodiment selects whether to output the position data acquired from the encoder 28 as is or to output a value obtained by smoothing a plurality of pieces of position data, depending on whether the servo motor 24 is operating or stopped. By employing such a configuration, it is possible to reduce jitter in the position data that occurs when the servo motor 24 is stopped.
[0104] The determination of whether the servo motor 24 is operating or stopped is made based on whether the amount of jitter occurring in the position data acquired from the encoder 28 exceeds a predetermined threshold value. By employing such a configuration, it is possible to easily determine whether the encoder 28 is operating or stopped.
[0105] <E.インクリメンタルエンコーダ> In the above description, an example of an absolute encoder that outputs an absolute position is shown, but the present invention may also be applied to an incremental encoder that outputs a relative position (position change).
[0106] An incremental encoder typically outputs an A-phase pulse and a B-phase pulse, which is offset by 90° from the A-phase pulse, according to the amount of change. The amount of change is calculated based on the number of A-phase pulses and B-phase pulses, and the direction of rotation (increment / decrement) is determined based on the angular difference between the A-phase pulse and the B-phase pulse. In other words, the position data is updated sequentially each time an A-phase pulse and a B-phase pulse are received.
[0107] Therefore, a mechanism is introduced to periodically acquire sequentially updated position data and calculate the average value (average value data).
[0108] Fig. 11 is an example of a time chart for explaining a modified example of the processing of jitter reduction section 230 of control system 1 according to the present embodiment. Fig. 11 shows two cases, when servo motor 24 is stopped and when servo motor 24 is operating.
[0109] 11, it is assumed that an A-phase pulse 242 and a B-phase pulse 243 are input from an incremental encoder to the encoder interface circuit 220 of the stage control unit 200. The encoder interface circuit 220 updates the position data based on the A-phase pulse 242 and the B-phase pulse 243, and has a position data register 244 for storing the latest position data.
[0110] The stage control unit 200 generates a latch signal 246 that periodically reads the position data stored in the position data register 244. Triggered by the latch signal 246, the latest position data stored in the position data register 244 is transferred to the input buffer 231 and input to the position data register 232, the integration unit 233, and the like.
[0111] That is, when an incremental encoder is adopted, compared with the case of adopting an absolute encoder, a configuration for updating position data according to the A-phase pulse and the B-phase pulse, and a latch signal 246 for periodically reading the position data are added, which is different.
[0112] For the rest, since they are the same, detailed descriptions will not be repeated.
[0113] <F. Implementation Example of Stage Control Unit 200> Next, an implementation example of the stage control unit 200 will be described.
[0114] FIG. 12 is a schematic diagram showing an implementation example of the stage control unit 200 of the control system 1 according to the present embodiment. The stage control unit 200 may be configured to be compatible with both an absolute encoder and an incremental encoder.
[0115] Referring to FIG. 12, more specifically, as a configuration related to the first channel (first axis) that outputs position data 1, the stage control unit 200 includes a communication circuit 222-1, a processing circuit 223-1, a receiving circuit 225-1, a processing circuit 226-1, and a jitter reduction unit 230-1.
[0116] The communication circuit 222-1 receives frames containing position data from the absolute encoder. The processing circuit 223-1 controls the exchange of frames between the absolute encoder and the communication circuit 222-1. The processing circuit 223-1 may support multiple communication protocols 224-1, 224-2, .... In this case, the processing circuit 223-1 performs communication using a communication protocol selected by presetting.
[0117] The receiving circuit 225-1 receives a pulse signal from the incremental encoder. The processing circuit 226-1 may support multiple algorithms 227-1, 227-2, ... for incrementing / decrementing position data depending on the type of pulse signal received by the receiving circuit 225-1. In this case, the processing circuit 226-1 updates the position data according to a preset selected algorithm.
[0118] The jitter reduction section 230-1 performs processing to reduce jitter on the position data output from the processing circuit 223-1 or the processing circuit 226-1.
[0119] Similarly, the stage control unit 200 includes a communication circuit 222-2, a processing circuit 223-2, a receiving circuit 225-2, a processing circuit 226-2, and a jitter reduction unit 230-2 as components related to the second channel (second axis) that outputs position data 2. These components are similar to the components related to the first channel (first axis) that outputs position data 1 described above, and therefore detailed description thereof will not be repeated.
[0120] In this way, by disposing a jitter reduction unit 230 for each encoder 28, it is possible to execute processing in parallel to reduce jitter occurring in position data for each channel (axis). Also, by supporting both a configuration in which frames are received from an absolute encoder and a configuration in which pulse signals are received from an incremental encoder, it is possible to increase the degree of freedom in selecting the encoder 28. Also, by supporting multiple types of communication protocols and processing algorithms, it is possible to increase the degree of freedom in selecting the encoder 28.
[0121] <G.ユーザインターフェイス> Next, an example of a user interface of the control system 1 according to the present embodiment will be described. Typically, a user checks necessary information and inputs desired settings via an operation and display device 400 connected to the control device 10.
[0122] 13 is a schematic diagram showing an example of a screen 410 displayed on operation and display device 400 of control system 1 according to the present embodiment. Referring to Fig. 13, screen 410 accepts settings related to jitter reduction and outputs the effect of jitter reduction.
[0123] More specifically, screen 410 includes a graph area 412 showing the change in position data over time, a selection section 420 for selecting the number of averaging times, an analysis start button 422 for executing the analysis process, a pre-correction state display 424 showing the state before jitter reduction is applied, and a post-correction state display 426 showing the state after jitter reduction is applied.
[0124] Graph area 412 displays temporal changes 414 of position data acquired before jitter reduction is applied, and temporal changes 416 of position data acquired after jitter reduction is applied. In this way, operation and display device 400 displays the state of the position data from encoder 28 and the state of the smoothed position data.
[0125] When the analysis start button 422 is selected, an analysis process for analyzing the state of the position data acquired from the encoder 28 is executed.
[0126] The analysis process may be performed by the operation and display device 400, but the stage control unit 200 mainly performs the process.
[0127] 14 is an example of a time chart for illustrating the analysis process of control system 1 according to the present embodiment. Referring to Fig. 14, when the analysis process is started, encoder output information 520 is sequentially acquired from encoder 28, and position information included in the acquired encoder output information 520 is stored.
[0128] A plurality of pieces of encoder output information 520 are acquired for each control cycle. The analysis process continues for one or more control cycles (until the control count reaches a predetermined number). Therefore, one or more pieces of position data are acquired for each control cycle.
[0129] When position data is acquired at a predetermined control period, the maximum and minimum values are extracted from the acquired position data, and the difference between the extracted maximum and minimum values (maximum absolute value) is calculated as the position jitter.
[0130] 14, the maximum value of the position data is "10,007" and the minimum value of the position data is "9,993", so the position jitter is "14". As shown in Fig. 14, the stage control unit 200 may have a register for storing the maximum value of the position data and a register for storing the minimum value of the position data.
[0131] The maximum value of the position data, the minimum value of the position data, and the position jitter calculated by the analysis process shown in FIG. 14 are output as a pre-correction state display 424 on the screen 410 shown in FIG.
[0132] The user refers to the result of the analysis process and selects an arbitrary number of averaging times in the selection section 420 of the screen 410. In this way, the operation display device 400 accepts the setting of the degree of smoothing (for example, the number of averaging times). When the number of averaging times is selected, the process for reducing jitter is enabled. The number of averaging times, which is the number of position data used for calculating the average value data, may be arbitrarily set.
[0133] FIG. 15 is an example of a time chart for explaining the jitter reduction process of the control system 1 according to the present embodiment. Referring to FIG. 15, when the jitter reduction process is started, the position data is averaged according to the selected number of averaging times, and the average value data is calculated. It is assumed that the servo motor 24 associated with the target encoder 28 is in a stopped state.
[0134] From the average value data sequentially calculated according to the number of averaging times, the maximum value and the minimum value are extracted, and the difference (maximum absolute value) between the extracted maximum value and the minimum value is calculated as the position jitter.
[0135] The maximum value of the position data, the minimum value of the position data, and the position jitter calculated by the analysis process shown in FIG. 15 are output as the corrected state display 426 of the screen 410 shown in FIG. 13.
[0136] The user can determine an appropriate number of averaging times while referring to the screen 410 displayed on the operation display device 400, and can also confirm the effect of reducing the position jitter.
[0137] <H. Modified Example> In the above description, the N-term moving average is adopted as the process for reducing jitter, but it is not limited to this, and any smoothing process can be adopted. For example, by inputting the time-series data of the position data into a low-pass filter, the smoothed average value data may be calculated.
[0138] In the above description, as an example of the process of determining whether the servo motor 24 is operating based on the magnitude of the temporal change in the position data, the process of comparing the maximum value among the differences (absolute values) of adjacent position data with a predetermined threshold value has been described. However, the present invention is not limited to this, and any method can be adopted. For example, a method of determining based on the magnitude of the change occurring in three or more position data can also be adopted.
[0139] In the above description, an example of determining whether the servo motor 24 mechanically coupled to the target encoder 28 is operating based on the change width of the position data has been described. However, the present invention is not limited to this, and it may be determined whether the servo motor 24 is operating based on the state of the servo command signal 510 to the target servo motor 24. Alternatively, it may be determined whether the servo motor 24 is operating based on the operating state of the servo driver.
[0140] In the above description, when the servo motor 24 is operating, the position data acquired immediately after the start of the control cycle is output. However, it is not necessarily immediately after the start of the control cycle, and the position data acquired at a timing after a predetermined time has elapsed from the start of the control cycle may be output.
[0141] <I. Supplementary Note> The present embodiment as described above includes the following technical ideas.
[0142] [Configuration 1] An acquisition unit (220) that acquires position data from an encoder (28), A smoothing unit (233, 234) that smooths the position data from the encoder, A state detection unit (236) that detects the operating state of a motor (24) mechanically coupled to the encoder, An output unit (237, 238) that outputs the position data of the encoder for each control cycle, and The control device wherein the output unit outputs the position data from the encoder as is when the motor is operating, and outputs smoothed position data when the motor is stopped.
[0143] [Configuration 2] 2. The control device according to configuration 1, wherein the state detection unit determines whether the motor is operating based on the magnitude of a change over time in the position data from the encoder.
[0144] [Configuration 3] 3. The control device according to configuration 1 or 2, wherein the smoothing unit calculates average data by averaging a plurality of position data.
[0145] [Configuration 4] 4. The control device according to configuration 3, wherein the number of position data used to calculate the average data can be set arbitrarily.
[0146] [Configuration 5] 5. The control device according to any one of configurations 1 to 4, wherein the output unit outputs the position data acquired immediately after the start of each control cycle if the motor is in operation.
[0147] [Configuration 6] 6. The control device according to any one of configurations 1 to 5, wherein the encoder is an absolute encoder.
[0148] [Configuration 7] A control device (10); a motor (24) controlled by the control device; The control device a control calculation unit (100) that calculates a control command for controlling the motor; an acquisition unit (200) that acquires position data from an encoder mechanically coupled to the motor; a smoothing unit (233, 234) that smooths the position data from the encoder; a state detection unit (236) that detects the operating state of the motor; An output unit (237, 238) that outputs the position data of the encoder to the control calculation unit for each control cycle. The output unit outputs the position data from the encoder as it is if the motor is operating, and outputs smoothed position data if the motor is stopped. A control system.
[0149] [Configuration 8] The control system according to Configuration 7, further comprising a display unit (400) that displays the state of the position data from the encoder and the state of the smoothed position data.
[0150] [Configuration 9] The control system according to Configuration 7 or 8, further comprising a reception unit (400) that receives a setting of the degree of smoothing by the smoothing unit.
[0151] [Configuration 10] Steps of obtaining position data from an encoder (28) (S104, S110), Steps of detecting the operating state of a motor (S120) mechanically coupled to the encoder, If the motor is operating, output the position data from the encoder as it is, and if the motor is stopped, output the position data obtained by smoothing the position data from the encoder (S120 - S124). A processing method.
[0152] <J.Advantages> According to the control system 1 according to the present embodiment, it is possible to provide a solution to a new problem of reducing the jitter of position data that may occur when the servo motor 24 mechanically coupled to the encoder 28 is stopped.
[0153] [[ID=�4]]The embodiments disclosed this time should be considered as illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims. [Explanation of symbols]
[0154] 1 Control system, 4 Work, 10 Control device, 20 XY stage, 22 Plate, 24 Servo motor, 26 Servo driver, 28 Encoder, 30 Laser, 40 Galvanometer mirror, 42 X-axis scanning motor, 43 Axis scanning mirror, 44 Y-axis scanning motor, 45 Y-axis scanning mirror, 46 Z-axis scanning motor, 47 Lens, 51, 52, 53 Control line, 54 Communication line, 100 Main control unit, 102 Processor, 104 Main memory, 106 Storage, 108 System program, 110 Application program, 112 Bus controller, 114 Internal bus, 200 Stage control unit, 210 Stage control calculation unit, 220 Encoder interface circuit, 222 Communication circuit, 223, 226, 284 Processing circuit, 224 Communication protocol, 225 Receiving circuit, 227 Algorithm, 230 Jitter reduction unit, 231 Input buffer, 232, 244 position data register, 233 accumulator, 234 averaging unit, 235 average value register, 236 status detection unit, 237, 420 selection unit, 238 output register, 239 clock signal, 240 control synchronization signal, 242, 243 pulse, 246 latch signal, 282 image sensor, 286 scale, 300 laser control unit, 310 laser control calculation unit, 314 output interface circuit, 316 communication interface circuit, 400 operation display device, 410 screen, 412 graph area, 414, 416 time change, 422 analysis start button, 424 previous status display, 426 corrected status display, 510 servo command signal, 520 encoder output information, 530 laser control signal, 540 mirror control signal, P1, P2 period.
Claims
1. an acquisition unit that acquires position data from the encoder; a smoothing unit that smoothes the position data from the encoder; a state detection unit that detects an operating state of a motor mechanically coupled to the encoder; an output unit that outputs position data of the encoder for each control period; The control device wherein the output unit outputs the position data from the encoder as is when the motor is operating, and outputs smoothed position data when the motor is stopped.
2. 2. The control device according to claim 1, wherein the state detection unit determines whether the motor is operating based on the magnitude of a change over time in the position data from the encoder.
3. The control device according to claim 1 , wherein the smoothing unit calculates average data by averaging a plurality of position data.
4. The control device according to claim 3 , wherein the number of position data used to calculate the average data can be set arbitrarily.
5. 5. The control device according to claim 1, wherein the output unit outputs the position data acquired immediately after the start of each control cycle if the motor is in operation.
6. 6. The control device according to claim 1, wherein the encoder is an absolute encoder.
7. a control device; a motor controlled by the control device, The control device a control calculation unit that calculates a control command for controlling the motor; an acquisition unit that acquires position data from an encoder mechanically coupled to the motor; a smoothing unit that smoothes the position data from the encoder; a state detection unit that detects an operating state of the motor; an output unit that outputs position data of the encoder to the control calculation unit for each control period; The output unit outputs the position data from the encoder as is when the motor is operating, and outputs smoothed position data when the motor is stopped.
8. The control system according to claim 7 , further comprising a display unit that displays a status of the position data from the encoder and a status of the smoothed position data.
9. The control system according to claim 7 , further comprising a reception unit that receives a setting for a degree of smoothing to be performed by said smoothing unit.
10. obtaining position data from an encoder; detecting an operating state of a motor mechanically coupled to the encoder; If the motor is operating, outputting the position data from the encoder as is, and if the motor is stopped, outputting position data that has been smoothed from the position data from the encoder.
Citation Information
Patent Citations
Speed control apparatus for motor
JP2001178166A
Inkjet recorder and recording method
JP2013078859A
Encoder device and method of generating position data
JP2013205144A
Speed detector and speed control system
JP2018025391A
Liquid discharge device, and image forming device
JP2020142442A