Learning device and inference device

By introducing a program analysis unit and a position instruction generation unit into the controller, generating position instructions using a mechanical model and updating the model when the input is controlled saturated, the control performance deterioration and system instability of the motor control device when the input is controlled is controlled, and higher operation accuracy and system stability are achieved.

CN119766063APending Publication Date: 2025-04-04MITSUBISHI ELECTRIC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411970148.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2021-12-13
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

When the control input is saturated, the existing motor control device leads to deterioration in control performance and system instability, and it is difficult to accurately predict the action path, resulting in the actual action being deviated from the expected action.

Method used

A controller is designed, which has a program analysis unit and a position instruction generation unit. The program analysis unit analyzes the action program to generate analytical data, and the position instruction generation unit generates position instructions based on the analytical data and mechanical model, and updates the mechanical model when the input is controlled to be saturated to avoid saturation.

Benefits of technology

The control performance deterioration caused by the control input saturation is effectively suppressed, and the accuracy of the motor operation and the stability of the system are improved by updating the mechanical model.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119766063A_ABST
    Figure CN119766063A_ABST
Patent Text Reader

Abstract

A controller (10) for outputting a position command to a motor control device (20) for controlling an action by supplying current to a motor (31) comprises: a program analysis unit (11) for analyzing an action program that specifies a path of a drive object driven by the action of the motor (31) and outputting analysis data; and a position command generation unit (15) having a mechanical model for calculating the acceleration that the motor (31) can output, generating a position command based on the analysis data and the mechanical model, and updating the mechanical model when a control input to the motor (31) exceeds a preset control input limit and is saturated.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application based on the Chinese national application No. 202180098399X (PCT / JP2021 / 045769) application (controller, control system, learning device and inference device) filed on November 17, 2023, and its contents are cited below. Technical Field

[0002] The present invention relates to a controller, a control system, a learning device, and an inference device connected to a motor control device for controlling the operation of a motor. Background Art

[0003] In the past, there are known control devices for servo motors that perform follow-up control. In general servo motor control, there are known control devices that perform PID (Proportional Integral Differential) control in a manner that follows the position command value and the speed command value input from the outside. In the control device as described above, restrictions are set on the control input for the purpose of protecting the servo motor. Therefore, if a control device with restrictions on the control input is given a movement command that exceeds the limit of the control input, when saturation of the control input occurs, the saturation phenomenon in which overshoot occurs in the output response makes it impossible to follow the position command, speed command, etc., sometimes causing degradation of control performance such as overshoot, instability of the control system, etc. As a countermeasure to prevent the above-mentioned performance degradation, the following technology is disclosed in Patent Document 1, that is, as a saturation countermeasure for the restriction of the control input, for a control object with restrictions on the control input to the motor, the control input is predicted to be restricted and the position deviation is corrected, thereby preventing the saturation of the control input.

[0004] Patent Document 1: Japanese Patent Application Publication No. 2010-178509

[0005] Generally speaking, in a working machine, a controller as a superior control device connected to a motor control device generates a position command based on a program, such as a G-code program, that determines the path of the drive object of the motor. However, according to the above-mentioned prior art, the motor control device performs correction on the difference between the position command input from the controller and the detected motor position, i.e., the position deviation, for the purpose of preventing saturation. Therefore, when the motor control device performs the correction as described above, there is a problem that the drive object of the motor moves through a path different from the path envisioned by the controller. In addition, according to the above-mentioned prior art, it is not possible to prevent the output from generating a command that saturates the control input, so there is a problem that the expected action based on the position command and the actual action deviate. In the above-mentioned situation, even if the action time, path, etc. are predicted in advance based on the position command, good results cannot be obtained. Summary of the invention

[0006] The present invention has been made in view of the above circumstances, and an object of the present invention is to obtain a controller that can suppress the degradation of control performance caused by saturation of control input and update a mechanical model used when generating a position command for a motor control device based on the saturation condition.

[0007] In order to solve the above-mentioned problems and achieve the purpose, the present invention is a controller for outputting a position command to a motor control device for controlling the operation of a motor by supplying current to the motor. The controller is characterized by comprising: a program analysis unit that analyzes an operation program that specifies a path of a drive object driven by the operation of the motor and outputs analysis data; and a position command generation unit that has a mechanical model that calculates the acceleration that the motor can output, generates a position command based on the analysis data and the mechanical model, and updates the mechanical model when the control input to the motor exceeds a preset control input limit and is saturated.

[0008] Effects of the Invention

[0009] The controller of the present invention has the effect of suppressing the degradation of control performance due to saturation of control input and updating a mechanical model used when generating a position command for a motor control device based on the saturation state. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 This is a diagram showing a configuration example of a control system according to the first embodiment.

[0011] Figure 2 It is a diagram showing a configuration example of a pre-correction position command calculation unit included in the controller according to the first embodiment.

[0012] Figure 3 This is a diagram showing an example of the movement amount before the acceleration / deceleration processing performed by the acceleration / deceleration processing unit included in the pre-correction position command calculation unit of the controller according to the first embodiment.

[0013] Figure 4 This is a diagram showing an example of the movement amount after the acceleration / deceleration processing performed by the acceleration / deceleration processing unit included in the pre-correction position command calculation unit of the controller according to the first embodiment.

[0014] Figure 5 This is a diagram showing an example of a motor characteristic model held in an acceleration / deceleration processing unit included in a pre-correction position command calculation unit of the controller according to the first embodiment.

[0015] Figure 6 This is a diagram showing a configuration example of an acceleration correction calculation unit included in the controller according to the first embodiment.

[0016] Figure 7 This is a diagram showing an example of a difference in movement amount when the acceleration correction calculation unit of the controller according to the first embodiment corrects the acceleration.

[0017] Figure 8 This is a flowchart showing an operation of suppressing degradation of control performance due to saturation of control input in the controller according to the first embodiment.

[0018] Fig. 9 This is a diagram showing an image in which the motor torque calculated from the state quantity when the control saturation signal is ON in the acceleration / deceleration processing unit included in the pre-correction position command calculation unit of the controller according to the first embodiment is plotted as the motor characteristic.

[0019] Fig.10 This is a flowchart showing an operation of updating the mechanical model in the controller according to the first embodiment based on the saturation state.

[0020] Fig.11 This is a diagram showing a configuration example of hardware for realizing the controller according to the first embodiment.

[0021] Fig.12 This is a diagram showing a configuration example of a control system according to the second embodiment.

[0022] Fig.13 This is a diagram showing a configuration example of an acceleration correction calculation unit included in a controller according to the second embodiment.

[0023] Fig.14 This is a diagram showing a configuration example of a control system according to the third embodiment.

[0024] Fig.15 This is a diagram showing a configuration example of an acceleration correction calculation unit included in a controller according to a third embodiment.

[0025] Fig.16 This is a diagram showing a configuration example of a learning device applied to a controller according to a fourth embodiment.

[0026] Fig.17 This is a diagram schematically showing an example of a neural network used by a model generation unit of a learning device according to a fourth embodiment.

[0027] Fig.18 This is a flowchart showing the learning process of the learning device involved in the fourth embodiment.

[0028] Fig.19 This is a diagram showing a configuration example of an estimation device applied to a controller according to a fourth embodiment.

[0029] Fig. 20 This is a flowchart showing the inference processing of the inference device involved in the fourth embodiment.

[0030] Fig.21 This is a diagram showing an example in which the learning device and the estimation device are provided outside the controller in the fourth embodiment.

[0031] Fig. 22 This is a diagram showing an example in which the learning device and the estimation device are provided inside the controller in the fourth embodiment. DETAILED DESCRIPTION

[0032] Hereinafter, a controller, a control system, a learning device, and an inference device according to embodiments of the present invention will be described in detail with reference to the drawings.

[0033] Implementation method 1.

[0034] Figure 1 1 is a diagram showing a configuration example of a control system 40 according to Embodiment 1. The control system 40 includes a controller 10 and a motor control device 20. In the present embodiment, the controller 10 is characterized in that the degradation of the control performance caused by the saturation of the control input is suppressed, and the mechanical model used when generating the position command for the motor control device 20 is updated based on the saturation condition. The respective characteristics are described below. First, the degradation of the control performance caused by the saturation of the control input is suppressed. Here, the saturation of the control input refers to exceeding a preset control input limit.

[0035] like Figure 1 As shown, the controller 10 is a superior control device connected to the motor control device 20. The controller 10 outputs a position command to the motor control device 20. The motor control device 20 controls the movement of the motor 31 by supplying current to the motor 31 based on the position command. The motor 31 is connected to an encoder 33 for detecting the motor position of the motor 31, and a load 32 as a driving object driven by the movement of the motor 31. The motor 31 and the load 32 are collectively labeled as a mechanical system 30. The mechanical system 30 has a driving shaft that drives the load 32 constituting a working machine or the like. In the following description, the driving shaft is simply referred to as a shaft. For example, in a case where the controller 10 controls the movement of multiple shafts in a working machine or the like, a motor 31 and a motor control device 20 are prepared for each shaft. In Embodiment 1, a case where the controller 10 takes one motor control device 20 and one mechanical system 30 as objects is described. In addition, as Figure 1 As shown, an encoder 33 may also be included in the mechanical system 30 .

[0036] The motor control device 20 drives (operates) the motor 31 based on the corrected position command obtained from the controller 10. Figure 1 As shown, the motor control device 20 includes a position deviation calculation unit 21 , a position control unit 22 , a speed calculation unit 23 , a speed deviation calculation unit 24 , a speed control unit 25 , a current limiting unit 26 , and a current control unit 27 .

[0037] The position deviation calculation unit 21 calculates the position deviation between the corrected position command obtained from the controller 10 and the motor position of the motor 31 detected by the encoder 33. The position control unit 22 generates a speed command for the motor 31 based on the position deviation calculated by the position deviation calculation unit 21. The speed calculation unit 23 calculates the speed of the motor 31 by differentiating the motor position of the motor 31 detected by the encoder 33. The speed deviation calculation unit 24 calculates the speed deviation between the speed command generated by the position control unit 22 and the speed of the motor 31 calculated by the speed calculation unit 23. The speed control unit 25 generates a current command for the motor 31 based on the speed deviation calculated by the speed deviation calculation unit 24. The current limiting unit 26 limits the current command generated by the speed control unit 25 so that it is less than or equal to the maximum motor current Imax specified for protecting the motor 31, and outputs the limited current command. The current limiting unit 26 performs current limiting on the current command when the current command is greater than or equal to the maximum motor current Imax, and outputs the current command directly without performing current limiting on the current command when the current command is less than the maximum motor current Imax. The current control unit 27 generates a motor current I for the motor 31 based on the limited current command and the fed-back motor current I, and outputs the motor current I.

[0038] The structure and operation of the controller 10 are described in detail. Figure 1 As shown, the controller 10 includes a program analyzing unit 11, a pre-correction position command calculating unit 12, an acceleration correction calculating unit 13, and a position command calculating unit 14. The pre-correction position command calculating unit 12, the acceleration correction calculating unit 13, and the position command calculating unit 14 constitute a position command generating unit 15.

[0039] The program analysis unit 11 analyzes the action program input from the outside and outputs the analysis result as analysis data. The action program is composed of a plurality of instruction blocks. The action program is, for example, a program that specifies the path of the action of the load 32, which is a driven object driven by the action of the motor 31. The path of the action of the load 32 specified by the action program is marked as the instruction path. The analysis data is the information required for the movement of each axis, such as the movement amount of each axis, the instruction feed speed, and the instruction information for each instruction block. The instruction information is, for example, a G code.

[0040] The position command generation unit 15 has a mechanical model for calculating the acceleration that the motor 31 can output, and generates a position command based on the analytical data and the mechanical model. In addition, when the control input to the motor 31 exceeds the preset control input limit and is saturated, the position command generation unit 15 updates the mechanical model. The operation of the position command generation unit 15 will be described in detail below as the operation of the pre-correction position command calculation unit 12, the acceleration correction calculation unit 13, and the position command calculation unit 14.

[0041] The pre-correction position command calculation unit 12 has a mechanical model for calculating the acceleration that the motor 31 can output, and calculates the pre-correction position command based on the analysis data and the mechanical model. Specifically, the pre-correction position command calculation unit 12 generates interpolation data based on the analysis data obtained from the program analysis unit 11, and generates the pre-correction position command for accelerating and decelerating the motor 31 based on the interpolation data. Figure 2 1 is a diagram showing a configuration example of the pre-correction position command calculation unit 12 included in the controller 10 according to Embodiment 1. The pre-correction position command calculation unit 12 includes an interpolation data generation unit 121 and an acceleration / deceleration processing unit 122 .

[0042] The interpolation data generating unit 121 generates interpolation data based on the analysis data acquired from the program analyzing unit 11. The interpolation data includes information used for generating speed calculation values ​​such as target speed in addition to data indicating the movement amount for one control cycle.

[0043] The acceleration / deceleration processing unit 122 uses the interpolation data obtained from the interpolation data generating unit 121 and the state quantity described later as input, performs acceleration / deceleration processing using the mechanical model 123, and calculates the pre-correction position command obtained by accumulating the movement amount of one control cycle for each axis for acceleration / deceleration driving within the torque range that the motor 31 can output. The mechanical model 123 includes a motor characteristic model 124 that represents the torque-speed characteristics that the motor 31 can output, and a load model 125 composed of information on the load 32 that is the driving object.

[0044] Figure 3This is a diagram showing an example of the movement amount before the acceleration / deceleration processing performed by the acceleration / deceleration processing unit 122 included in the pre-correction position command calculation unit 12 of the controller 10 according to the first embodiment. Figure 4 1 is a diagram showing an example of the movement amount after the acceleration / deceleration processing performed by the acceleration / deceleration processing unit 122 included in the pre-correction position command calculation unit 12 of the controller 10 according to the first embodiment. Figure 3 and Figure 4 In the figure, the horizontal axis represents time and the vertical axis represents movement amount. Movement amount is the change in position command per control cycle, which is equivalent to speed command. Figure 3 This is equivalent to interpolating data. Figure 4 Equivalent to the position command before correction. Figure 4 As shown, in the movement amount after the acceleration and deceleration processing by the acceleration and deceleration processing unit 122, Figure 3 Compared with the movement amount before the acceleration / deceleration process shown in FIG. 1 , the movement amount per one control cycle becomes smaller in the acceleration section and the deceleration section, so the time required to move the required movement amount becomes longer.

[0045] The motor characteristic model 124 of the mechanical model 123 held by the acceleration / deceleration processing unit 122 of the pre-correction position command calculation unit 12 is as follows: Figure 5 , a change in the rotation speed relative to the maximum torque that the electric motor 31 can output is shown. Figure 5 1 is a diagram showing an example of a motor characteristic model 124 held by an acceleration / deceleration processing unit 122 of a pre-correction position command calculation unit 12 of a controller 10 according to Embodiment 1. Generally speaking, in the motor characteristic model 124, the maximum torque Tmax0 determined by the maximum motor current Imax flowing through the motor 31 and the reduction torque Tr determined by the motor back electromotive force that increases in proportion to the motor speed and the maximum voltage that can be applied to the motor 31 are small, and the torque that the motor 31 can output, that is, the output maximum torque Tmax, is small. Figure 5 The bold line shown is the maximum output torque Tmax. Generally speaking, in the condition where the saturation of the control input occurs in the motor control, when the control input, i.e., the current command, is limited, the maximum torque Tmax0 becomes the maximum output torque Tmax, and when the voltage command applied to the control input, i.e., the motor 31, is limited, the reduced torque Tr becomes the maximum output torque Tmax. In the following description, the situation where the control input, i.e., the current command, is limited due to exceeding the control input limit is referred to as torque saturation, and the situation where the voltage command applied to the control input, i.e., the motor 31, is limited due to exceeding the control input limit is referred to as voltage saturation. These are examples of the saturation of the control input.

[0046] Back to Figure 2 Description. Figure 2As shown, the load model 125 included in the mechanical model 123 maintained by the acceleration / deceleration processing unit 122 includes information such as load inertia J, workpiece information, friction torque T1, and eccentric load torque T2. The workpiece information includes, for example, information such as the weight of the workpiece and the shape of the workpiece. The workpiece is a processing object of the machine tool when the controller 10 controls the operation of the machine tool.

[0047] Next, the method of calculating the pre-correction position command by the acceleration / deceleration processing unit 122 is described. Here, as a premise in the motor control, in order to drive the motor 31 without causing saturation of the control input, it is necessary to set the motor torque Tm to be less than or equal to the output maximum torque Tmax. The motor torque Tm can be calculated by the formula (1) based on the output torque Tout acting on the load 32 and the disturbance torque Td acting as a disturbance.

[0048] Tm=Tout+Td…(1)

[0049] In the formula (1), Tm is the motor torque [Nm], Tout is the output torque [Nm], and Td is the disturbance torque [Nm]. The disturbance torque Td here can be calculated from the friction torque T1 and the eccentric load torque T2 by the formula (2).

[0050] Td=T1+T2…(2)

[0051] In the formula (2), T1 is the friction torque [Nm], and T2 is the eccentric load torque [Nm]. Next, the angular acceleration α can be calculated from the output torque Tout and the load inertia J by the formula (3).

[0052] α=Tout / J…(3)

[0053] In formula (3), J is the moment of inertia, i.e. load inertia [kg / m 2 ]. That is, under the premise that the information of the mechanical model 123 is consistent with the driven object, if the acceleration / deceleration processing unit 122 determines the angular acceleration α based on the motor characteristic model 124 and the load model 125 in such a way that the motor torque Tm is less than or equal to the output maximum torque Tmax, it is possible to calculate the pre-correction position instruction that does not cause saturation of the control input. For example, the acceleration / deceleration processing unit 122 determines the angular acceleration α in such a way that the maximum torque Tmax0 is obtained in the range of the output maximum torque Tmax = the maximum torque Tmax0, and determines the angular acceleration α in such a way that the reduction torque Tr is obtained in the range of the output maximum torque Tmax = the reduction torque Tr, thereby achieving acceleration / deceleration of the output maximum torque Tmax.

[0054] Next, the acceleration correction operation unit 13 determines whether the control input to the motor 31 is saturated. If it is determined that the control input is saturated, the control saturation signal is set to ON and outputted. If it is determined that the control input is not saturated, the control saturation signal is set to OFF and outputted. In addition, the acceleration correction operation unit 13 calculates the position instruction correction value for correcting the pre-correction position instruction based on the control saturation signal. Specifically, the acceleration correction operation unit 13 uses the pre-correction position instruction obtained from the pre-correction position instruction operation unit 12 and the motor position obtained from the encoder 33 to calculate the position instruction correction value for correcting the pre-correction position instruction. Figure 6 1 is a diagram showing a configuration example of the acceleration correction calculation unit 13 included in the controller 10 according to Embodiment 1. The acceleration correction calculation unit 13 includes a model output unit 131 , a model position deviation calculation unit 133 , a comparison unit 134 , and a position command correction value calculation unit 135 .

[0055] The model output unit 131 uses the pre-correction position command calculated by the pre-correction position command calculation unit 12 as input, and uses the motor control model 132 including the position control unit, the speed control unit, the current control unit, etc. to calculate the model position of the motor 31. Here, the motor control model 132 simulates the motor control device 20 and outputs the motor position when the motor 31 is controlled without saturation of the control input as the model position. Figure 6 In the motor control model 132 shown, the portion corresponding to the mechanical system represented by the motor, load, and encoder is the same as Figure 2The motor characteristic model 124 is a model equivalent to the mechanical model 123 shown in FIG. Therefore, if the motor control model 132 is an ideal one under the condition that the saturation of the control input does not occur, the model position deviation between the model position and the motor position calculated by the model position deviation calculation unit 133 described later becomes 0. On the other hand, when the saturation of the control input occurs, the model position and the motor position deviate, so the deviation between the position command and the motor position before correction, that is, the position droop, increases, and the model position deviation also increases. Therefore, the acceleration correction calculation unit 13 can determine the saturation of the control input by monitoring the model position deviation. In addition, as mentioned above, the saturation of the control input is mainly caused by torque saturation or voltage saturation, so by reducing the motor acceleration, the motor torque Tm can be reduced, and the saturation of the control input can be eliminated. In addition, the model output unit 131 can obtain information about the model equivalent to the motor characteristic model 124 from the pre-correction position instruction operation unit 12, or, as described later, when the pre-correction position instruction operation unit 12 updates the motor characteristic model 124, obtain information about the updated motor characteristic model 124.

[0056] The model position deviation calculation unit 133 calculates the deviation between the model position calculated by the model output unit 131 and the motor position of the motor 31 detected by the encoder 33 , and outputs the deviation as a model position deviation.

[0057] The comparison unit 134 compares the model position deviation calculated by the model position deviation calculation unit 133 with a predetermined threshold value. When the model position deviation is greater than or equal to the threshold value, it is determined that saturation of the control input has occurred, and a control saturation signal is set to ON and output. On the other hand, when the model position deviation is less than the threshold value, the comparison unit 134 determines that saturation of the control input has not occurred, and the control saturation signal is set to OFF and output. In addition, the threshold value used by the comparison unit 134 can be a fixed value or a variable value. In the case of a fixed value, it is pre-set by the manufacturer or user of the controller 10. In the case of a variable value, for example, the comparison unit 134 can be set to the fixed value. Figure 6 A value obtained by multiplying a position deviation between the pre-correction position command and the model position calculated in the motor control model 132 by a predetermined coefficient is used as the threshold value. The threshold value used by the comparison unit 134 is an example of a control input limit.

[0058] The position command correction value calculation unit 135 calculates the position command correction value based on the control saturation signal obtained from the comparison unit 134, the motor position obtained from the encoder 33, and the pre-correction position command obtained from the pre-correction position command calculation unit 12. Specifically, if the control saturation signal becomes ON, the position command correction value calculation unit 135 calculates and outputs the position command correction value for correcting the pre-correction position command in such a manner that the corrected command acceleration, i.e., the change amount of one control cycle of the corrected position command, which is the corrected acceleration, is reduced. At this time, the position command correction value calculation unit 135 can perform correction in such a manner that the corrected command acceleration is set to 0, or can perform correction in such a manner that it has a time constant and is reduced in stages. In either case, the above-mentioned model position deviation is reduced without being enlarged. When the control saturation signal becomes ON, and the model position deviation is reduced and becomes less than or equal to the threshold value by the control of the position command correction value calculation unit 135, the comparison unit 134 determines that the saturation of the control input is eliminated, and sets the control saturation signal to OFF and outputs it. In this case, when the control saturation signal is turned off, the position command correction value calculation unit 135 calculates and outputs a position command correction value for increasing the corrected command acceleration, compared with the case where the control saturation signal is turned on.

[0059] As an example, the position instruction correction value operation unit 135 controls the position instruction correction value in such a manner that the corrected instruction acceleration becomes 0 when the control saturation signal is ON, and controls the position instruction correction value in such a manner that the corrected instruction acceleration is equivalent to the acceleration before correction, that is, the pre-correction instruction acceleration, when the control saturation signal is OFF. Figure 7 1 is a diagram showing an example of a difference in movement amount when the acceleration correction calculation unit 13 of the controller 10 according to the first embodiment corrects the acceleration. Figure 7 In FIG. 1 , the horizontal axis represents time and the vertical axis represents the amount of movement. In addition, the horizontal axis shows the timing of ON / OFF of the control saturation signal.

[0060] In the acceleration correction operation unit 13, if the pre-correction position instruction which becomes the acceleration of the motor 31 exceeding the output maximum torque Tmax is input, the motor torque Tm is too small relative to the torque obtained, that is, the acceleration, so the saturation of the control input occurs. At this time, the output maximum torque Tmax is output when the control input is saturated. If the control input is saturated, the model position deviation increases, so the acceleration correction operation unit 13 sets the control saturation signal to ON. The acceleration correction operation unit 13 corrects the position instruction correction value in such a way that the corrected acceleration, that is, the corrected instruction acceleration, becomes 0. Therefore, the saturation of the control input is immediately eliminated and the model position deviation is reduced. If the model position deviation is less than or equal to the threshold value, the acceleration correction operation unit 13 sets the control saturation signal to OFF, and controls the position instruction correction value in such a way that it becomes equivalent to the original acceleration again. Under the control as described above, in the acceleration correction operation unit 13, while the model position deviation is controlled to be around the threshold value during acceleration and deceleration, the control saturation signal is repeatedly turned on / off to operate. Therefore, the controller 10 can suppress the degradation of control performance such as overshoot due to the saturation phenomenon caused by excessive control saturation, and can perform acceleration and deceleration to output the maximum torque Tmax.

[0061] As described above, the acceleration correction operation unit 13 generates a model position when the motor 31 is controlled by the motor control device 20 based on the pre-correction position command, and when the deviation between the model position and the detected motor position of the motor 31, i.e., the model position deviation, is greater than or equal to a predetermined threshold, the acceleration correction operation unit 13 determines that the control input is saturated and outputs a control saturation signal set to ON. When the model position deviation is less than the threshold, the acceleration correction operation unit 13 determines that the control input is not saturated and outputs a control saturation signal set to OFF.

[0062] The acceleration correction calculation unit 13 outputs a position command correction value for correcting the pre-correction position command in a manner that the corrected command acceleration decreases when the control saturation signal is turned on and output. Then, when the control saturation signal is turned off and output, the acceleration correction calculation unit 13 changes the position command correction value in a manner that the corrected command acceleration increases from when the control saturation signal is turned on and output.

[0063] The position command calculation unit 14 uses the pre-correction position command obtained from the pre-correction position command calculation unit 12 and the position command correction value obtained from the acceleration correction calculation unit 13 to calculate the corrected position command as a position command for the motor control device 20, and outputs it to the motor control device 20. The position command calculation unit 14 calculates the corrected position command by correcting the pre-correction position command using the position command correction value.

[0064] As described above, the controller 10 can suppress the degradation of the control performance due to the saturation of the control input while maintaining the path of the drive target of the electric motor 31 without adding any special processing to the electric motor control device 20 .

[0065] The operations up to this point will be described using a flowchart. Figure 8 1 is a flowchart showing an action for suppressing the degradation of control performance caused by saturation of control input in the controller 10 according to the first embodiment. In the controller 10, the program analysis unit 11 analyzes the action program (step S1) and outputs the analysis data. The interpolation data generation unit 121 of the pre-correction position instruction calculation unit 12 generates interpolation data based on the analysis data (step S2). The acceleration / deceleration processing unit 122 of the pre-correction position instruction calculation unit 12 takes the interpolation data and the state quantity as input, performs acceleration / deceleration processing using the mechanical model 123, and calculates the pre-correction position instruction (step S3). The comparison unit 134 of the acceleration correction calculation unit 13 compares the model position deviation calculated by the model position deviation calculation unit 133 with a predetermined threshold value, and determines whether the control input is saturated (step S4). The comparison unit 134 sets the control saturation signal to ON or OFF according to the determination result and outputs it (step S5). The position command correction value calculation unit 135 of the acceleration correction calculation unit 13 calculates the position command correction value based on the control saturation signal, the motor position and the pre-correction position command (step S6). The position command calculation unit 14 calculates the post-correction position command using the pre-correction position command and the position command correction value (step S7). The position command calculation unit 14 outputs the post-correction position command as a position command to the motor control device 20.

[0066] Next, the updating of the mechanical model 123 based on the saturation condition, that is, the updating of the mechanical model 123 based on the saturation result of the control input will be described.

[0067] First, the state quantity as the input of the mechanical model 123 includes at least one of the motor position, the mechanical end position, the motor speed, the mechanical end speed, the motor acceleration, the mechanical end acceleration, the motor current I, the torque information, the model position, the load inertia estimation value, and the supply voltage. Sometimes the motor position and the mechanical end position are collectively referred to as position information, the motor speed and the mechanical end speed are collectively referred to as speed information, and the motor acceleration and the mechanical end acceleration are collectively referred to as acceleration information. The mechanical end is a predetermined part in the mechanical system 30, which is the driven object of the motor control device 20, when the motor 31 rotates and all or part of the load 32 moves. If the method of estimating the load inertia estimation value is estimated during the execution of the action program, any method can be used. For example, a method of calculating based on the ratio of torque and acceleration during acceleration and deceleration, a method using a recursive least squares method, etc. can be used. These state quantities can be data calculated by the motor control device 20 or the acceleration correction calculation unit 13, or data obtained by measuring by an external sensor not shown in the figure, etc., which the motor control device 20 has.

[0068] The acceleration / deceleration processing unit 122 updates the mechanical model 123 composed of the motor characteristic model 124 and the load model 125 in accordance with the control saturation signal obtained from the acceleration correction operation unit 13 and the state quantity obtained from at least one of the motor control device 20 and the acceleration correction operation unit 13. The acceleration / deceleration processing unit 122 calculates the pre-correction position command by the above-mentioned method, so when the control saturation signal is ON, there is a difference between the information of the mechanical model 123 and the actual state of the mechanical system 30. Similarly, since the control input is saturated, the motor 31 outputs the maximum output torque Tmax. The torque output by the motor 31 can be calculated according to the motor current I as the state quantity and the torque constant pre-set according to the motor 31 according to the formula (4).

[0069] Tm=Kt×I…(4)

[0070] In equation (4), Tm is the motor torque [Nm], I is the motor current [A], and Kt is the torque constant [Nm / A]. Fig. 9This is a diagram showing an image plotted as a motor characteristic of the motor torque Tm calculated based on the state quantity when the control saturation signal is ON in the acceleration / deceleration processing unit 122 of the pre-correction position command calculation unit 12 of the controller 10 involved in the first embodiment. The saturation of the control input is mainly explained as torque saturation or voltage saturation, but it can be determined as follows based on the state quantity. In the determination, as a threshold, a slightly smaller motor current threshold Ith is used in consideration of fluctuations for the maximum motor current Imax corresponding to the maximum torque Tmax output from the formula (4). The acceleration / deceleration processing unit 122 determines that the torque is saturated when the motor current I≥ the motor current threshold Ith when the control saturation signal is ON, and can determine that the voltage is saturated when the motor current I<the motor current threshold Ith when the control saturation signal is ON. Torque saturation can be considered as the motor torque Tm based on the instruction≥the maximum torque Tmax0. On the other hand, voltage saturation becomes the case where the motor torque Tm based on the instruction<the maximum torque Tmax0 under the condition of control input saturation.

[0071] Therefore, when the acceleration / deceleration processing unit 122 determines that the torque is saturated, it is considered that a difference has occurred in the load inertia J or the friction torque T1 or the eccentric load torque T2 according to the above-mentioned formulas (1) to (3). Therefore, the acceleration / deceleration processing unit 122 can update the load inertia J or the friction torque T1 or the eccentric load torque T2 of the load model 125 based on the state quantity. Here, the acceleration / deceleration processing unit 122 can determine the information of the load model 125 to be updated in accordance with the workpiece information. In addition, the acceleration / deceleration processing unit 122 can be updated based on the load inertia estimated value as the state quantity. On the other hand, when the acceleration / deceleration processing unit 122 determines that the voltage is saturated, it is considered that a difference has occurred in the reduction torque Tr. The reduction torque Tr changes according to the voltage that can be applied to the motor 31, that is, the supply voltage, so the acceleration / deceleration processing unit 122 can update the reduction torque Tr in the motor characteristic model 124 as data associated with the motor speed and supply voltage of the state quantity.

[0072] As described above, when the acquired control saturation signal is ON, the pre-correction position command calculation unit 12 updates the mechanical model 123 based on the state quantity indicating the operation state of at least one of the controller 10, the motor control device 20, and the motor 31 when the control saturation signal is ON. In addition, the pre-correction position command calculation unit 12 has the motor characteristic model 124 and the load model 125 as the mechanical model 123. When the acquired control saturation signal is ON, the motor current I is greater than or equal to the predetermined value, that is, the motor current threshold value Ith, the pre-correction position command calculation unit 12 updates the load model 125 based on the state quantity when the control saturation signal is ON. When the acquired control saturation signal is ON, the motor current I is less than the predetermined value, that is, the motor current threshold value Ith, the pre-correction position command calculation unit 12 updates the motor characteristic model 124 based on the state quantity when the control saturation signal is ON. That is, the position command generating unit 15 has a mechanical model 123 for calculating the acceleration that the motor 31 can output, generates a position command based on the analytical data and the mechanical model 123, and operates in a manner of updating the mechanical model 123 when the control input to the motor 31 exceeds a preset control input limit and is saturated. In addition, the position command generating unit 15 determines whether the control input to the motor 31 is saturated (step S4), and when it is determined that the control input is saturated, the mechanical model 123 is updated based on a state quantity indicating the operating state of at least one of the controller 10, the motor control device 20, and the motor 31 when saturated.

[0073] In addition, the acceleration / deceleration processing unit 122 can also update the mechanical model 123 when the control saturation signal is OFF. For example, the acceleration / deceleration processing unit 122 can determine that there is an error in the load model 125 when the torque deviation obtained by comparing the motor torque Tm as a model associated with the movement instruction calculated according to the mechanical model 123 and the motor torque Tm calculated according to the motor current I is greater than or equal to a specified value. In this case, as in the case of torque saturation, it is considered that there is a difference in the load inertia J or the friction torque T1 or the eccentric load torque T2. Therefore, the acceleration / deceleration processing unit 122 can update the load inertia J or the friction torque T1 or the eccentric load torque T2 of the load model 125 based on the state quantity. Here, the acceleration / deceleration processing unit 122 can determine the information of the load model 125 to be updated in accordance with the workpiece information. In addition, the acceleration / deceleration processing unit 122 can be updated based on the load inertia estimated value as a state quantity. As described above, the pre-correction position command calculation unit 12 updates the mechanical model 123 based on the state quantity when the acquired control saturation signal is OFF and the deviation between the motor torque Tm calculated based on the mechanical model 123 and the motor torque Tm calculated based on the motor current I, i.e., the torque deviation, is greater than or equal to a predetermined value. Specifically, the pre-correction position command calculation unit 12 has the motor characteristic model 124 and the load model 125 as the mechanical model 123, and updates the load model 125 as the mechanical model 123.

[0074] As described above, the controller 10 updates the mechanical model 123 based on the state quantity at the saturation of the control input, so that the mechanical model 123 can always be set to the optimal mechanical model according to the actual state of the mechanical system 30. Here, the controller 10 is not limited to the generation of position instructions regarding the updated mechanical model 123, and can also be used for other applications using the mechanical model 123, such as action time prediction, path prediction, and processing prediction based on the program.

[0075] The operations up to this point will be described using a flowchart. Fig.101 is a flowchart showing an operation of updating the mechanical model 123 in the controller 10 according to the first embodiment based on the saturation condition. In the controller 10, the acceleration / deceleration processing unit 122 of the pre-correction position command calculation unit 12 obtains the control saturation signal and the state quantity (step S11). The acceleration / deceleration processing unit 122 determines whether the control saturation signal is ON (step S12). When the control saturation signal is ON (step S12: Yes), the acceleration / deceleration processing unit 122 updates the mechanical model 123 (step S13). When the control saturation signal is OFF (step S12: No), the acceleration / deceleration processing unit 122 determines whether the torque deviation is greater than or equal to a prescribed value (step S14). When the torque deviation is greater than or equal to a prescribed value (step S14: Yes), the acceleration / deceleration processing unit 122 updates the mechanical model 123 (step S13). When the torque deviation is less than the prescribed value (step S14: No), the acceleration / deceleration processing unit 122 ends the operation.

[0076] Next, a hardware configuration for realizing the controller 10 according to the first embodiment will be described. Fig.11 FIG. 1 is a diagram showing a configuration example of hardware for realizing the controller 10 according to the first embodiment. Fig.11 The following is a configuration example in which the program analyzing unit 11 , the pre-correction position command calculating unit 12 , the acceleration correction calculating unit 13 , and the position command calculating unit 14 of the controller 10 are realized by a processing circuit 61 having a processor 63 and a memory 64 .

[0077] The processor 63 is a CPU (Central Processing Unit). The processor 63 may be a computing device, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor). The memory 64 is a volatile or non-volatile semiconductor memory such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable Read Only Memory), or an EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory).

[0078] The memory 64 stores programs for operating as the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14. The program is read and executed by the processor 63, so that the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 can be realized. In addition, the program for operating as the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 stored in the memory 64 can be provided to the user in a state of being written to a storage medium such as a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disc)-ROM, etc., or can be provided via a network. In addition, the processor 63 outputs data such as the calculation result to the volatile memory of the memory 64. Alternatively, the processor 63 saves the data by outputting the data such as the calculation result to the auxiliary storage device via the volatile memory of the memory 64.

[0079] The input unit 62 is a circuit that receives input signals from the outside to the controller 10. The input unit 62 receives, for example, an operation program, a motor position, a state quantity, etc. The output unit 65 is a circuit that outputs a signal generated by the controller 10 to the outside. The output unit 65 outputs, for example, a corrected position command.

[0080] Fig.11 This is an example of hardware in which the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 are implemented by a general-purpose processor 63 and a memory 64, but the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 can also be implemented by a dedicated processing circuit instead of the processor 63 and the memory 64. That is, the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 can be implemented by a dedicated processing circuit. Here, the dedicated processing circuit is a single circuit, a composite circuit, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a circuit combining them. In addition, part of the program analysis unit 11, the pre-correction position instruction calculation unit 12, the acceleration correction calculation unit 13, and the position instruction calculation unit 14 can also be implemented by the processor 63 and the memory 64, and the remaining part can be implemented by a dedicated processing circuit.

[0081] As described above, according to the present embodiment, the controller 10 can suppress the degradation of the control performance while maintaining the path of the driven object of the motor 31, and update the optimal mechanical model 123 according to the actual state of the mechanical system 30. In addition, the controller 10 determines the position command based on the mechanical model 123, so that the motor 31 can be operated at the optimal acceleration or time constant, and the acceleration and deceleration operation is always performed at the maximum torque that the motor 31 can output without an additional torque margin, thereby shortening the cycle time. In addition, when the controller 10 performs action prediction in advance based on the action program, it is also possible to obtain a good result with less error by using the updated mechanical model 123.

[0082] Implementation method 2.

[0083] In the first embodiment, the case where there is one motor control device 20 connected to the controller 10 is described. Here, the controller as the upper control device can control multiple motors at the same time. However, when the controller performs interpolation control on multiple motors at the same time, if the correction is performed separately, it is impossible to interpolate between the motors. In the second embodiment, there are multiple motor control devices connected to the controller, and the case where the controller controls multiple motors at the same time is described.

[0084] Fig.12 1 is a diagram showing a configuration example of a control system 40a according to Embodiment 2. The control system 40a includes a controller 10a and motor control devices 20a and 20b. The controller 10a is a superior control device connected to the motor control devices 20a and 20b. The motor control device 20a is connected to a mechanical system 30a, and the motor control device 20b is connected to a mechanical system 30b. Fig.12 As shown, the motor control device 20a includes a position deviation calculation unit 21a, a position control unit 22a, a speed calculation unit 23a, a speed deviation calculation unit 24a, a speed control unit 25a, a current limiting unit 26a, and a current control unit 27a. In addition, the motor control device 20b includes a position deviation calculation unit 21b, a position control unit 22b, a speed calculation unit 23b, a speed deviation calculation unit 24b, a speed control unit 25b, a current limiting unit 26b, and a current control unit 27b. The mechanical system 30a includes a motor 31a, a load 32a, and an encoder 33a. In addition, the mechanical system 30b includes a motor 31b, a load 32b, and an encoder 33b. The motor control devices 20a and 20b have the same structure as the motor control device 20 of the first embodiment, so detailed description is omitted. The mechanical systems 30a and 30b have the same structure as the mechanical system 30 of the first embodiment, so detailed description is omitted.

[0085] The structure and operation of the controller 10a are described in detail. Fig.12 As shown, the controller 10a includes a program analysis unit 11, a pre-correction position command calculation unit 12a, an acceleration correction calculation unit 13a, and position command calculation units 14a and 14b. The pre-correction position command calculation unit 12a, the acceleration correction calculation unit 13a, and the position command calculation units 14a and 14b constitute a position command generation unit 15a.

[0086] The program analysis unit 11 performs Figure 1 The program analyzing unit 11 in the first embodiment shown in the figure operates in the same manner.

[0087] The pre-correction position command calculation unit 12a generates interpolation data based on the analysis data obtained from the program analysis unit 11, and calculates the pre-correction position commands a and b for accelerating and decelerating the motors 31a and 31b based on the interpolation data. The pre-correction position command calculation unit 12a calculates the pre-correction position commands a and b for the two motors 31a and 31b, but the operations of calculating the pre-correction position commands a and b are different from those of the pre-correction position commands 31a and 31b. Figure 1 and Figure 2 The operation of the pre-correction position command calculation unit 12a in the first embodiment shown is the same. Therefore, the detailed description of the operation of the pre-correction position command calculation unit 12a is omitted.

[0088] The acceleration correction calculation unit 13a uses the pre-correction position instructions a and b obtained from the pre-correction position instruction calculation unit 12a, the motor position a obtained from the encoder 33a, and the motor position b obtained from the encoder 33b to calculate the position instruction correction value a for correcting the pre-correction position instruction a and calculate the position instruction correction value b for correcting the pre-correction position instruction b. Fig.13 1 is a diagram showing a configuration example of an acceleration correction operation unit 13a included in a controller 10a according to Embodiment 2. The acceleration correction operation unit 13a includes model output units 131a and 131b, model position deviation operation units 133a and 133b, comparison units 134a and 134b, and a position instruction correction value operation unit 135a. The model output unit 131a stores a motor control model 132a. The model output unit 131b stores a motor control model 132b. The operations of the model output units 131a and 131b, the model position deviation operation units 133a and 133b, and the comparison units 134a and 134b are similar to those of the embodiment 2. Figure 6 The operations of the model output unit 131 , the model position difference calculation unit 133 , and the comparison unit 134 in the first embodiment shown are the same, and therefore detailed descriptions thereof are omitted.

[0089] The position instruction correction value calculation unit 135a calculates the position instruction correction values ​​a and b for the pre-correction position instructions a and b. At this time, the position instruction correction value calculation unit 135a obtains the OR, i.e., the logical OR, of the control saturation signals a and b output from the comparison units 134a and 134b to calculate the position instruction correction values ​​a and b. When there is saturation of the control input in at least one of the plurality of motors 31a and 31b, the position instruction correction value calculation unit 135a targets all the motors 31a and 31b, calculates and outputs the position instruction correction values ​​a and b for correcting the pre-correction position instructions a and b in a manner that the change amount per one control cycle of the post-correction position instructions a and b is reduced.

[0090] In addition, in the present embodiment, the case where two motor control devices are connected to the controller is described, but even if the number of motor control devices connected to the controller is greater than or equal to three, the same control can be performed. Specifically, the structure equivalent to the position command correction value calculation unit 135a obtains the logical OR of greater than or equal to three control saturation signals, thereby achieving the same control as in the present embodiment.

[0091] As described above, in the control system 40a, the controller 10a is connected to a plurality of motor control devices 20a and 20b that control the operation by supplying current to different motors 31a and 31b, and interpolation control is performed on the plurality of motors 31a and 31b. When the control saturation signal related to any motor 31a and 31b is turned on and output, the acceleration correction calculation unit 13a outputs the position instruction correction value for the plurality of motors 31a and 31b that perform the interpolation operation in such a manner that the interpolation operation between the motors 31a and 31b is maintained and the corrected acceleration, i.e., the corrected instruction acceleration, is reduced. Then, when the control saturation signal related to the plurality of motors 31a and 31b that perform the interpolation operation is turned off and output, the acceleration correction calculation unit 13a changes the position instruction correction value for the plurality of motors 31a and 31b that perform the interpolation operation in such a manner that the interpolation operation between the motors 31a and 31b is maintained and the corrected instruction acceleration is increased from the corrected instruction acceleration when the control saturation signal is turned on and output.

[0092] The hardware configuration of the controller 10a of the second embodiment is similar to Fig.11 The hardware configuration of the controller 10 in the illustrated first embodiment is the same.

[0093] As described above, according to this embodiment, the controller 10a is connected to multiple motor control devices 20a, 20b. When multiple motors 31a, 31b are set as objects and interpolation actions are performed, the paths of the drive objects of the motors 31a, 31b are still maintained, and the degradation of the control performance caused by the saturation of the control input can be suppressed, and the same effect as in embodiment 1 can be obtained.

[0094] Implementation method 3.

[0095] In the third embodiment, a case will be described in which, when the current command is in the process of current limiting, the motor control device outputs a current limiting signal indicating that the current is being limited.

[0096] Fig.14 1 is a diagram showing a configuration example of a control system 40c according to Embodiment 3. The control system 40c includes a controller 10c and a motor control device 20c. The controller 10c is a superior control device connected to the motor control device 20c. The motor control device 20c is connected to a mechanical system 30. Fig.14 As shown, the motor control device 20 c includes a position deviation calculation unit 21 , a position control unit 22 , a speed calculation unit 23 , a speed deviation calculation unit 24 , a speed control unit 25 , a current limiting unit 26 c , and a current control unit 27 .

[0097] The current limiting unit 26c has Figure 1 The current limiting unit 26c has the same function as the current limiting unit 26 of the first embodiment shown in the figure, and has a function of outputting a current limiting signal indicating that current limiting is performed to the controller 10c when current limiting is performed. The current limiting can be regarded as control saturation. For example, the current limiting unit 26c sets the current limiting signal to ON and outputs it when current limiting is performed, and sets the current limiting signal to OFF and outputs it when current limiting is not performed.

[0098] like Fig.14 As shown, the controller 10c includes a program analyzing unit 11, a pre-correction position command calculating unit 12c, an acceleration correction calculating unit 13c, and a position command calculating unit 14. The pre-correction position command calculating unit 12c, the acceleration correction calculating unit 13c, and the position command calculating unit 14 constitute a position command generating unit 15c. Fig.15 The diagram shows a configuration example of an acceleration correction calculation unit 13 c included in a controller 10 c according to Embodiment 3. The acceleration correction calculation unit 13 c includes a model output unit 131 , a model position deviation calculation unit 133 , a comparison unit 134 , a position command correction value calculation unit 135 c , and a logical OR calculation unit 136 .

[0099] The logical OR operation unit 136 performs a logical OR operation on the control saturation signal obtained from the comparison unit 134 and the current limit signal obtained from the current limit unit 26c of the motor control device 20c. The logical OR operation unit 136 turns on the control saturation signal c and outputs it when at least one of the control saturation signal and the current limit signal is on, and turns off the control saturation signal c and outputs it when both the control saturation signal and the current limit signal are off.

[0100] The signal acquired by the position command correction value calculation unit 135c is different from that of the position command correction value calculation unit 135 in the first embodiment, but the operation when the control saturation signal c is ON or OFF is the same as that of the position command correction value calculation unit 135 in the first embodiment.

[0101] As described above, the acceleration correction operation unit 13c obtains a current limit signal indicating whether the current command, which is a control input from the motor control device 20c to the motor 31, is greater than or equal to a predetermined value, and when the current limit signal indicating that the current command is greater than or equal to the predetermined value is obtained, the control saturation signal c is set to ON and output. When the acceleration correction operation unit 13c obtains a current limit signal indicating that the current command is less than a predetermined value and when the model position deviation is less than a predetermined threshold value, the control saturation signal c is set to OFF and output.

[0102] The signal obtained by the pre-correction position command calculation unit 12c is different from that of the pre-correction position command calculation unit 12 in the first embodiment, but the operation when the control saturation signal c is ON or OFF is the same as that of the pre-correction position command calculation unit 12 in the first embodiment.

[0103] The hardware structure of the controller 10c of the third embodiment is similar to Fig.11 The hardware configuration of the controller 10 in the illustrated first embodiment is the same.

[0104] As described above, according to the present embodiment, the controller 10c uses the current limit signal when determining control saturation. In the torque saturation condition, the controller 10c can detect saturation of the control input earlier than the control saturation signal turns on due to an increase in the model position deviation.

[0105] Implementation method 4.

[0106] In the fourth embodiment, a learning device and an inference device for machine learning the mechanical model 123 are described. The mechanical model 123 here is composed of a motor characteristic model 124 and a load model 125. Figure 2The acceleration / deceleration processing unit 122 shown is used in the calculation of the pre-correction position command for accelerating / decelerating the motor 31 within the torque range that can be output based on the interpolation data. The motor characteristic model 124 is mainly a torque-speed characteristic, and can be used to calculate the torque that can be output according to the supply voltage, the operating speed, etc. The load model 125 is mainly used to calculate the load inertia J for the motor 31 based on information such as workpiece information, friction torque T1, and eccentric load torque T2.

[0107] <Learning Stage>

[0108] Fig.16 1 is a diagram showing a configuration example of a learning device 70 used in the controller 10 according to Embodiment 4. The learning device 70 includes a data acquisition unit 71, a model generation unit 72, and a trained model storage unit 73. The model here is mainly Figure 2 The mechanical model 123 used in the calculation of the pre-correction position command for performing acceleration and deceleration driving within the range of torque that the motor 31 can output exists in the acceleration and deceleration processing unit 122 shown in FIG. Fig.16 In the embodiment, the trained model storage unit 73 is outside the learning device 70 , but the trained model storage unit 73 may also be included inside the learning device 70 .

[0109] The data acquisition unit 71 acquires acquisition information and machine status as learning data from the controller 10. The acquisition information includes a control saturation signal of a control input, a state quantity indicating an operation state of at least one of the controller 10, the motor control device 20, and the motor 31, program information, and workpiece information. The machine status includes motor characteristics, load inertia J, friction torque T1, and eccentric load torque T2.

[0110] The model generation unit 72 learns the acquired information using learning data created based on a combination of the acquired information output from the data acquisition unit 71 and the machine state as the teacher data. That is, the model generation unit 72 generates a trained model for inferring the optimal load model 125 included in the machine model 123 based on the acquired information and the machine state of the controller 10. Here, the learning data is data that associates the acquired information and the machine state with each other.

[0111] The learning algorithm used by the model generation unit 72 can use a well-known algorithm such as tutor learning, untutored learning, and reinforcement learning. As an example, the case where a neural network is applied is described. The model generation unit 72 learns the mechanical model 123 by so-called tutor learning according to the neural network model, for example. Here, tutor learning refers to the following method, that is, by giving a set of input and result (label) data to the learning device 70, the features existing in these learning data are learned, and the result is inferred based on the input.

[0112] A neural network is composed of an input layer composed of multiple neurons, an intermediate layer (hidden layer) composed of multiple neurons, and an output layer composed of multiple neurons. The intermediate layer can be 1 layer or more than or equal to 2 layers.

[0113] For example, imagine Fig.17 The 3-layer neural network shown. Fig.17 Schematically shows a neural network used by the model generation unit 72 of the learning device 70 according to the fourth embodiment.

[0114] in the case of Fig.17 In the three-layer neural network shown, after multiple inputs are input to the input layer (X1-X3), the values ​​are multiplied by weights W1 (w11-w16) and input to the intermediate layer (Y1-Y2), and the result is further multiplied by weights W2 (w21-w26) and output from the output layer (Z1-Z3). The output result changes according to the values ​​of weights W1 and W2.

[0115] In the present embodiment, the neural network learns the mechanical model 123 by so-called supervised learning according to the learning data created based on the combination of the acquired information acquired by the data acquisition unit 71 and the tutor data.

[0116] That is, the neural network learns by adjusting the weights W1 and W2 so that information is input to the input layer and the result output from the output layer approaches the teacher data.

[0117] The model generation unit 72 generates a trained model by executing the above-mentioned learning and outputs the model.

[0118] The trained model storage unit 73 stores the trained model output from the model generation unit 72 .

[0119] Next, use Fig.18 , the processing learned by the learning device 70 is explained. Fig.18 This is a flowchart showing the learning process of the learning device 70 according to the fourth embodiment.

[0120] The data acquisition unit 71 acquires the acquired information and the machine state as data (step S101). In addition, the data acquisition unit 71 acquires the acquired information and the machine state at the same time, but is not limited to this. The data acquisition unit 71 only needs to associate the acquired information and the machine state and input them, so it is also possible to acquire the acquired information and the machine state at different timings.

[0121] The model generation unit 72 performs a learning process (step S102 ). Specifically, the model generation unit 72 learns the machine model 123 by so-called supervised learning according to the learning data created based on the combination of the acquired information acquired by the data acquisition unit 71 and the machine state, and generates a trained model.

[0122] The trained model storage unit 73 stores the trained model generated by the model generation unit 72 (step S103 ).

[0123] <Effective use stage>

[0124] Fig.19 1 is a diagram showing a configuration example of an estimation device 80 applied to the controller 10 according to the fourth embodiment. The estimation device 80 includes a data acquisition unit 81 and an estimation unit 82. The estimation unit 82 in this case corresponds to Figure 2 The acceleration / deceleration processing unit 122 shown outputs a pre-correction position command based on the trained mechanical model 123 .

[0125] The data acquisition unit 81 acquires acquisition information. The acquisition information includes a control saturation signal of a control input, a state quantity indicating an operating state of at least one of the controller 10, the motor control device 20, and the motor 31, program information, and workpiece information.

[0126] The inference unit 82 uses the trained model stored in the trained model storage unit 73 to infer the load model 125 included in the machine model 123 based on the acquired information acquired by the data acquisition unit 81. That is, the inference unit 82 inputs the acquired information acquired by the data acquisition unit 81 to the trained model, thereby inferring and outputting the load model 125 included in the machine model 123 inferred based on the acquired information.

[0127] In addition, in the present embodiment, the mechanical model 123 is outputted using a trained model learned by the model generation unit 72 of the learning device 70 applied in the controller 10, but the trained model can also be obtained from the learning device 70 applied in other controllers 10, and the mechanical model 123 can be outputted based on the trained model.

[0128] Next, use Fig. 20, the process of inferring the mechanical model 123 by the inference device 80 is described. Fig. 20 This is a flowchart showing the estimation process of the estimation device 80 according to the fourth embodiment.

[0129] The data acquisition unit 81 acquires acquisition information as data (step S111 ).

[0130] The inference unit 82 inputs the acquired information to the trained model stored in the trained model storage unit 73 (step S112). The inference unit 82 obtains the mechanical model 123 by inputting the acquired information to the trained model.

[0131] The inference unit 82 outputs the mechanical model 123 obtained by the trained model to the controller 10 as data (step S113 ).

[0132] The controller 10 outputs a pre-correction position command based on the acquired mechanical model 123 (step S114 ).

[0133] Thus, the learning device 70 and the estimation device 80 can output factors causing changes in program information and workpiece states as the mechanical model 123 based on information acquired from the control system 40, thereby making it possible to perform easy motion prediction.

[0134] In addition, in this embodiment, the case where the supervised learning is applied to the learning algorithm used by the model generation unit 72 is described, but the present invention is not limited to this. Regarding the learning algorithm, in addition to the supervised learning, reinforcement learning, unsupervised learning, semi-supervised learning, etc. can also be applied.

[0135] In addition, the model generation unit 72 can learn the mechanical model 123 according to the learning data created for multiple controllers 10. In addition, the model generation unit 72 can obtain learning data from multiple controllers 10 used in the same area, and can also learn the mechanical model 123 using learning data collected from multiple controllers 10 operating independently in different areas. In addition, the model generation unit 72 can add the controller 10 of the object for collecting learning data to the object in the middle, and can also remove it from the object in the middle. In addition, the learning device 70 after learning the mechanical model 123 for a certain controller 10 can be applied to other controllers 10, and the mechanical model 123 for the other controllers 10 can be re-learned and updated.

[0136] In addition, as a learning algorithm used in the model generation unit 72, deep learning that learns the extraction of feature quantities themselves can also be used, and machine learning can be performed according to other well-known methods such as genetic programming, functional logic programming, support vector machines, etc.

[0137] In addition, the learning device 70 and the inference device 80 are used to learn the mechanical model 123 of the controller 10, but can be connected to the controller 10 via a network, for example, and are separate devices from the controller 10. In addition, the learning device 70 and the inference device 80 can be built in the controller 10. In addition, the learning device 70 and the inference device 80 can exist on a cloud server. Fig.21 This is a diagram showing an example in which the learning device 70 and the estimation device 80 are provided outside the controller 10 in the fourth embodiment. Fig. 22 1 is a diagram showing an example in which the learning device 70 and the estimation device 80 are provided inside the controller 10 in the fourth embodiment. Fig.21 In the example of , a network may exist between the controller 10 and the learning device 70 and the inference device 80. Fig.21 In the example of , the learning device 70 and the inference device 80 may be present on the cloud server. Fig.21 and Fig. 22 In the example of , it is assumed that the learning device 70 includes a trained model storage unit 73.

[0138] As described above, the controller 10 may update the mechanical model 123 by the method of Embodiment 1, or may update the mechanical model 123 by using the learning device 70 and the inference device 80 as in Embodiment 4. In addition, the case where the learning device 70 and the inference device 80 are applied to the controller 10 has been described, but the present invention is not limited thereto. The learning device 70 and the inference device 80 may also be applied to the controllers 10a and 10c.

[0139] The configuration described in the above embodiment is merely an example, and may be combined with other known technologies, the embodiments may be combined with each other, and part of the configuration may be omitted or changed without departing from the gist.

[0140] Description of the label

[0141] 10, 10a, 10c controller, 11 program analysis unit, 12, 12a, 12c pre-correction position command calculation unit, 13, 13a, 13c acceleration correction calculation unit, 14, 14a, 14b position command calculation unit, 15, 15a, 15c position command generation unit, 20, 20a, 20b, 20c motor control device, 21, 21a, 21b position deviation calculation unit, 22, 22a, 22b position control unit, 23, 23a, 23b speed calculation unit, 24, 24a, 24b speed deviation calculation unit, 25, 25a, 25b speed control unit, 26, 26a, 26b, 26c current limiting unit, 27, 27a, 27b current control unit, 30, 30a, 30b mechanical system, 31, 31a, 31b motor, 32, 32a, 32b load, 33, 33a, 33b encoder, 40, 40a, 40c control system, 70 learning device, 71, 81 data acquisition unit, 72 model generation unit, 73 trained model storage unit, 80 inference device, 82 inference unit, 121 interpolation data generation unit, 122 acceleration and deceleration processing unit, 123 mechanical model, 124 motor characteristic model, 125 load model, 131, 131a, 131b model output unit, 132, 132a, 132b motor control model, 133, 133a, 133b model position deviation calculation unit, 134, 134a, 134b comparison unit, 135, 135a, 135c position instruction correction value calculation unit, 136 logical OR calculation unit.

Claims

1. A learning device, characterized in that: have: a data acquisition unit that acquires, from a controller that outputs a position command to a motor control device that controls the operation by supplying current to the motor, acquisition information including a control saturation signal indicating whether a control input to the motor exceeds a preset control input limit and is saturated, a state quantity indicating an operation state of at least one of the controller, the motor control device, and the motor, program information of an operation program input to the controller, and workpiece information, and teacher data including motor characteristics, load inertia, friction torque, and eccentric load torque as learning data; A model generation unit generates a trained model for estimating a load model included in a machine model of the controller based on the acquired information, using the learning data.

2. An inference device, characterized in that: have: a data acquisition unit that acquires, from a controller that outputs a position command to a motor control device that controls the operation by supplying current to the motor, a control saturation signal indicating whether a control input to the motor exceeds a preset control input limit and is saturated, a state quantity indicating an operation state of at least one of the controller, the motor control device, and the motor, program information of an operation program input to the controller, and workpiece information as acquired information; as well as An inference unit estimates the load model based on the acquired information acquired by the data acquisition unit, using a trained model for estimating the load model included in the machine model of the controller.

Citation Information

Patent Citations

  • Motor drive control device

    JP2010178509A