CN117378139A - Controller, control system, learning device, and estimation device - Google Patents

Controller, control system, learning device, and estimation device Download PDF

Info

Publication number
CN117378139A
CN117378139A CN202180098399.XA CN202180098399A CN117378139A CN 117378139 A CN117378139 A CN 117378139A CN 202180098399 A CN202180098399 A CN 202180098399A CN 117378139 A CN117378139 A CN 117378139A
Authority
CN
China
Prior art keywords
motor
model
control
position command
correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180098399.XA
Other languages
Chinese (zh)
Inventor
辻川孝辅
池田良一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN117378139A publication Critical patent/CN117378139A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • H02P29/02Providing protection against overload without automatic interruption of supply
    • H02P29/024Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load
    • H02P29/028Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load the motor continuing operation despite the fault condition, e.g. eliminating, compensating for or remedying the fault
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P23/00Arrangements or methods for the control of AC motors characterised by a control method other than vector control
    • H02P23/20Controlling the acceleration or deceleration
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P6/00Arrangements for controlling synchronous motors or other dynamo-electric motors using electronic commutation dependent on the rotor position; Electronic commutators therefor
    • H02P6/34Modelling or simulation for control purposes
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • H02P29/02Providing protection against overload without automatic interruption of supply
    • H02P29/024Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load
    • H02P29/0241Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load the fault being an overvoltage
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • H02P29/02Providing protection against overload without automatic interruption of supply
    • H02P29/024Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load
    • H02P29/027Detecting a fault condition, e.g. short circuit, locked rotor, open circuit or loss of load the fault being an over-current
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • H02P29/10Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors for preventing overspeed or under speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Electric Motors In General (AREA)

Abstract

A controller (10) for outputting a position command to a motor control device (20) that supplies current to a motor (31) and controls operation thereof, comprises: a program analysis unit (11) that analyzes an operation program defining a path of a driving object driven by the operation of the motor (31) and outputs analysis data; and a position command generation unit (15) that has a mechanical model that calculates the acceleration that can be output by the motor (31), 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 (31) is saturated beyond a preset control input limit.

Description

Controller, control system, learning device, and estimation device
Technical Field
The present invention relates to a controller, a control system, a learning device, and an estimating device connected to a motor control device that controls the operation of a motor.
Background
Conventionally, a control device for a servo motor that performs follow-up control is known. In general control of a servo motor, a control device is known that performs PID (Proportional Integral Differential) control so as to follow a position command value and a speed command value input from the outside. In the control device described above, a control input is restricted for the purpose of protecting the servo motor. Therefore, if a movement command exceeding the control input limit is given to the control device having the control input limit, the control device cannot follow the position command, the speed command, or the like due to a saturation phenomenon in which an overshoot occurs in the output response when the control input is saturated, and deterioration of control performance such as an overshoot, instability of the control system, or the like may occur. As a countermeasure against the performance degradation described above, patent document 1 discloses a technique for preventing saturation of a control input by predicting that the control input is limited to a control target having a limit to the control input of a motor and correcting a positional deviation as a countermeasure against saturation of the control input.
Patent document 1: japanese patent application laid-open No. 2010-178509
Disclosure of Invention
In general, in a machine tool, a controller as a higher-level control device connected to a motor control device generates a position command based on a program, such as a G-code program, that determines a path to be driven by a motor. However, according to the above-described conventional technique, the motor control device performs correction for the purpose of preventing saturation phenomenon with respect to a position deviation, which is a difference between a position command input from the controller and a detected motor position. Therefore, when the motor control device performs the correction as described above, there is a problem in that the driving target of the motor is operated through a path different from the path assumed by the controller. Further, according to the above-described conventional technique, since the output of a command that generates saturation of the control input is not prevented, there is a problem in that the expected operation and the actual operation based on the position command deviate. In the case described above, even if the operation time, the route, and the like are predicted in advance based on the position command, good results cannot be obtained.
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a controller capable of updating a mechanical model used when generating a position command for a motor control device based on a saturation condition while suppressing degradation of control performance due to saturation of a control input.
In order to solve the above problems and achieve the object, the present invention provides a controller for outputting a position command to a motor control device that controls operation by supplying current to a motor. The controller is characterized by comprising: a program analysis unit that analyzes an operation program defining a path of a driving object driven by an operation of the motor and outputs analysis data; and a position command generation unit that has a mechanical model for calculating acceleration that can be output by the motor, 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 is saturated beyond a control input limit set in advance.
ADVANTAGEOUS EFFECTS OF INVENTION
The controller of the present invention has an effect that deterioration of control performance due to saturation of a control input can be suppressed, and a mechanical model used when generating a position command for a motor control device is updated based on a saturation condition.
Drawings
Fig. 1 is a diagram showing a configuration example of a control system according to embodiment 1.
Fig. 2 is a diagram showing a configuration example of a pre-correction position command calculation unit included in the controller according to embodiment 1.
Fig. 3 is a diagram showing an example of the amount of movement before acceleration/deceleration processing by the acceleration/deceleration processing unit included in the pre-correction position command calculation unit of the controller according to embodiment 1.
Fig. 4 is a diagram showing an example of the amount of movement after the acceleration/deceleration process performed by the acceleration/deceleration processing unit included in the pre-correction position command calculation unit of the controller according to embodiment 1.
Fig. 5 is a diagram showing an example of a motor characteristic model held by an acceleration/deceleration processing unit included in a pre-correction position command calculation unit of the controller according to embodiment 1.
Fig. 6 is a diagram showing a configuration example of an acceleration correction calculation unit included in the controller according to embodiment 1.
Fig. 7 is a diagram showing an example of a difference in the amount of movement in the case where the acceleration correction calculation unit of the controller according to embodiment 1 corrects the acceleration.
Fig. 8 is a flowchart showing an operation of suppressing degradation of control performance caused by saturation of a control input in the controller according to embodiment 1.
Fig. 9 is a diagram showing an image drawn as motor characteristics for the motor torque calculated from the state 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 embodiment 1.
Fig. 10 is a flowchart showing an operation of updating the mechanical model in the controller according to embodiment 1 based on the saturation condition.
Fig. 11 is a diagram showing a configuration example of hardware for implementing the controller according to embodiment 1.
Fig. 12 is a diagram showing a configuration example of a control system according to embodiment 2.
Fig. 13 is a diagram showing a configuration example of an acceleration correction calculation unit included in the controller according to embodiment 2.
Fig. 14 is a diagram showing a configuration example of a control system according to embodiment 3.
Fig. 15 is a diagram showing a configuration example of an acceleration correction calculation unit included in the controller according to embodiment 3.
Fig. 16 is a diagram showing a configuration example of a learning device applied to the controller according to embodiment 4.
Fig. 17 is a diagram schematically showing an example of a neural network used in the model generation unit of the learning device according to embodiment 4.
Fig. 18 is a flowchart showing learning processing of the learning device according to embodiment 4.
Fig. 19 is a diagram showing a configuration example of an estimation device applied to the controller according to embodiment 4.
Fig. 20 is a flowchart showing an estimation process of the estimation device according to embodiment 4.
Fig. 21 is a diagram showing an example in which the learning device and the estimating device are provided outside the controller in embodiment 4.
Fig. 22 is a diagram showing an example in which the learning device and the estimating device are provided in the controller in embodiment 4.
Detailed Description
The controller, the control system, the learning device, and the estimation device according to the embodiment of the present invention will be described in detail below with reference to the drawings.
Embodiment 1
Fig. 1 is a diagram showing a configuration example of a control system 40 according to embodiment 1. The control system 40 has a controller 10 and a motor control device 20. In the present embodiment, the controller 10 is characterized in that deterioration of control performance due to saturation of a control input is suppressed, and a mechanical model used when generating a position command for the motor control device 20 is updated based on a saturation condition. The respective features will be described below. First, suppression of degradation of control performance caused by saturation of a control input will be described. Here, saturation of the control input means exceeding a preset control input limit.
As shown in fig. 1, the controller 10 is a higher-level 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 supplies a current to the motor 31 based on the position command, thereby controlling the operation of the motor 31. An encoder 33 for detecting a motor position of the motor 31 and a load 32 to be driven by an operation of the motor 31 are connected to the motor 31. The motor 31 and the load 32 are collectively denoted as a mechanical system 30. The machine system 30 has a drive shaft that drives a load 32 constituting a work machine or the like. In the following description, the drive shaft is simply referred to as a shaft. For example, when the controller 10 controls the operations of a plurality of axes in a machine tool or the like, the motor 31 and the motor control device 20 are prepared for each axis. In embodiment 1, a case will be described in which the controller 10 targets 1 motor control device 20 and 1 machine system 30. As shown in fig. 1, the encoder 33 may be included in the mechanical system 30.
The motor control device 20 drives (operates) the motor 31 based on the corrected position command obtained from the controller 10. As shown in fig. 1, the motor control device 20 includes a positional deviation calculating unit 21, a positional control unit 22, a speed calculating unit 23, a speed deviation calculating unit 24, a speed control unit 25, a current limiting unit 26, and a current control unit 27.
The positional deviation calculating unit 21 calculates a positional deviation between the corrected positional 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 calculating unit 24 calculates a speed deviation between the speed command generated by the position control unit 22 and the speed of the motor 31 calculated by the speed calculating 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 limiter 26 limits the current command generated by the speed controller 25 so as to be less than or equal to the motor maximum current Imax defined for protecting the motor 31, and outputs the limited current command. The current limiter 26 performs current limiting on the current command when the current command is equal to or greater than the motor maximum current Imax, and directly outputs the current command without performing current limiting when the current command is less than the motor maximum current Imax. The current control unit 27 generates and outputs a motor current I for the motor 31 based on the post-restriction current command and the fed-back motor current I.
The structure and operation of the controller 10 will be described in detail. As shown in fig. 1, the controller 10 includes a program analysis unit 11, a pre-correction position command calculation unit 12, an acceleration correction calculation unit 13, and a position command calculation unit 14. The position command generating unit 15 is constituted by the position command calculating unit before correction 12, the acceleration correction calculating unit 13, and the position command calculating unit 14.
The program analysis unit 11 analyzes an operation program input from the outside, and outputs the analysis result as analysis data. The operation program is constituted by a plurality of instruction blocks. The operation program is, for example, a program for defining a path of the operation of the load 32, which is a driving object driven by the operation of the motor 31. The path along which the predetermined load 32 operates by the operation program is denoted as the command path. The analysis data is information required for movement of each axis such as movement amount, command feed speed, and command information for each command block. The instruction information is, for example, a G code.
The position command generating unit 15 has a mechanical model for calculating acceleration that can be output by the motor 31, and generates a position command based on the analysis data and the mechanical model. The position command generation unit 15 updates the mechanical model when the control input to the motor 31 is saturated beyond a control input limit set in advance. Next, the operation of the position command generating unit 15 will be described in detail as the operation of the position command before correction calculating unit 12, the acceleration correction calculating unit 13, and the position command calculating unit 14.
The pre-correction position command calculation unit 12 has a mechanical model for calculating the acceleration that can be output by the motor 31, and calculates a 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 acquired from the program analysis unit 11, and generates a pre-correction position command for accelerating and decelerating the motor 31 based on the interpolation data. Fig. 2 is a diagram showing a configuration example of the pre-correction position instruction arithmetic 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.
The interpolation data generation unit 121 generates interpolation data based on the analysis data acquired from the program analysis unit 11. The interpolation data includes information used for generating a calculated value of a target speed or the like, in addition to data indicating a movement amount of 1 control cycle amount.
The acceleration/deceleration processing unit 122 performs acceleration/deceleration processing using the machine model 123, taking as input the interpolation data acquired from the interpolation data generating unit 121 and a state quantity described later, and calculates a pre-correction position command obtained by integrating the amounts of movement of 1 control cycle quantity for each axis, which are used in the range of the torque that can be output by the motor 31 for acceleration/deceleration driving. The machine model 123 includes a motor characteristic model 124 indicating torque-speed characteristics that can be output from the motor 31, and a load model 125 configured from information of the load 32 that is a driving target.
Fig. 3 is a diagram showing an example of the amount of movement before the acceleration/deceleration process performed by the acceleration/deceleration processing unit 122 included in the pre-correction position command calculation unit 12 of the controller 10 according to embodiment 1. Fig. 4 is a diagram showing an example of the amount of movement after the acceleration/deceleration process performed by the acceleration/deceleration processing unit 122 included in the pre-correction position command calculation unit 12 of the controller 10 according to embodiment 1. In fig. 3 and 4, the horizontal axis represents time and the vertical axis represents movement. The movement amount is a change amount of 1 control cycle amount of the position command, and corresponds to the speed command. Fig. 3 corresponds to interpolation data, and fig. 4 corresponds to a position command before correction. As shown in fig. 4, the amount of movement after the acceleration/deceleration process by the acceleration/deceleration processing unit 122 is smaller for each 1 control cycle in the acceleration section and the deceleration section than for the amount of movement before the acceleration/deceleration process shown in fig. 3, and therefore the time required for moving the required amount of movement is longer.
As shown in fig. 5, the motor characteristic model 124 of the mechanical model 123 held by the acceleration/deceleration processing unit 122 of the position-before-correction instruction calculating unit 12 shows a change in the rotational speed with respect to the maximum torque that can be output by the motor 31. Fig. 5 is a diagram showing an example of the motor characteristic model 124 held by the acceleration/deceleration processing unit 122 of the pre-correction position command calculation unit 12 of the controller 10 according to embodiment 1. In general, in the motor characteristic model 124, the maximum torque Tmax0 determined based on the maximum motor current Imax flowing through the motor 31 and the reduced torque Tr determined based on the motor back electromotive force that increases in proportion to the motor rotational speed and the maximum voltage that can be applied to the motor 31 are small, and the maximum output torque Tmax is the torque that can be output by the motor 31. The thick line shown in fig. 5 becomes the output maximum torque Tmax. In general, in a condition where saturation of the control input occurs during motor control, the maximum torque Tmax0 becomes the output maximum torque Tmax when the current command as the control input is limited, and the reduced torque Tr becomes the output maximum torque Tmax when the voltage command applied to the motor 31 as the control input is limited. In the following description, a case where the control input, i.e., the current command, is limited by exceeding the control input limit is referred to as torque saturation, and a case where the voltage command applied to the control input, i.e., the motor 31, is limited by exceeding the control input limit is referred to as voltage saturation. These are one example of saturation of the control input.
Returning to the description of fig. 2. As shown in fig. 2, the load model 125 included in the machine model 123 held by the acceleration/deceleration processing unit 122 includes information such as the load inertia J, the workpiece information, the friction torque T1, and the unbalanced 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 machining object of the machine tool when the operation of the machine tool is controlled by the controller 10.
Next, a method of calculating the pre-correction position command by the acceleration/deceleration processing unit 122 will be described. Here, as a precondition in motor control, in order to drive the motor 31 without causing saturation of the control input, the motor torque Tm needs to be set to be equal to or smaller than the output maximum torque Tmax. The motor torque Tm can be calculated by equation (1) from the output torque Tout acting on the load 32 and the disturbance torque Td acting as a disturbance.
Tm=Tout+Td…(1)
In the formula (1), tm is motor torque [ Nm ], tout is output torque [ Nm ], and Td is disturbance torque [ Nm ]. The disturbance torque Td can be calculated from the friction torque T1 and the unbalanced torque T2 by the equation (2).
Td=T1+T2…(2)
In the formula (2), T1 is friction torque [ Nm ], and T2 is unbalanced load torque [ Nm ]. Next, the angular acceleration α can be calculated by equation (3) based on the output torque Tout and the load inertia J.
α=Tout/J…(3)
In formula (3), J is the moment of inertia, i.e., the load inertia [ kg/m ] 2 ]. That is, if the acceleration/deceleration processing unit 122 determines the angular acceleration α based on the motor characteristic model 124 and the load model 125 so that the motor torque Tm is equal to or smaller than the output maximum torque Tmax on the premise that the information included in the mechanical model 123 matches the driving target, it is possible to calculate the pre-correction position command that does not cause saturation of the control input. For example, the acceleration/deceleration processing unit 122 can realize acceleration/deceleration of the output maximum torque Tmax by determining the angular acceleration α so as to be the maximum torque Tmax0 in the range of the output maximum torque tmax=maximum torque Tmax0 and determining the angular acceleration α so as to be the reduced torque Tr in the range of the output maximum torque tmax=reduced torque Tr.
Next, the acceleration correction computing unit 13 determines whether or not the control input to the motor 31 is saturated, and when it is determined that the control input is saturated, the control saturation signal is turned ON and output, and when it is determined that the control input is unsaturated, the control saturation signal is turned OFF and output. The acceleration correction calculation unit 13 calculates a position command correction value for correcting the position command before correction based on the control saturation signal. Specifically, the acceleration correction calculation unit 13 calculates a position command correction value for correcting the position command before correction using the position command before correction obtained from the position command before correction calculation unit 12 and the motor position obtained from the encoder 33. Fig. 6 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 computing unit 13 includes a model output unit 131, a model positional deviation computing unit 133, a comparing unit 134, and a position command correction value computing unit 135.
The model output unit 131 receives as input the pre-correction position command calculated by the pre-correction position command calculation unit 12, and calculates the model position of the motor 31 using a motor control model 132 including a position control unit, a speed control unit, a current control unit, and the like. 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. In the motor control model 132 shown in fig. 6, a part corresponding to the mechanical system represented by the motor, the load, and the encoder is a model corresponding to the motor characteristic model 124 of the mechanical model 123 shown in fig. 2. Therefore, if the ideal motor control model 132 is a condition that does not generate saturation of the control input, the model position deviation between the model position calculated by the model position deviation calculating unit 133 described later and the motor position becomes 0. On the other hand, when saturation of the control input occurs, the model position and the motor position deviate from each other, and therefore, the positional sag, which is the deviation between the position command before correction and the motor position, increases, and similarly, the model position deviation also increases. Therefore, the acceleration correction computing unit 13 can determine saturation of the control input by monitoring the model positional deviation. Further, since the saturation of the control input is mainly caused by torque saturation or voltage saturation as described above, the motor acceleration is reduced, so that the motor torque Tm can be reduced, and the saturation of the control input can be eliminated. The model output unit 131 may acquire information of the motor characteristic model 124 from the pre-correction position command calculation unit 12 regarding the model corresponding to the motor characteristic model 124, or may acquire information of the motor characteristic model 124 after update when the pre-correction position command calculation unit 12 updates the motor characteristic model 124, as will be described later.
The model position deviation calculation unit 133 calculates a 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 calculated deviation as a model position deviation.
The comparison unit 134 compares the model positional deviation calculated by the model positional deviation calculation unit 133 with a predetermined threshold value, determines that saturation of the control input has occurred when the model positional deviation is equal to or greater than the threshold value, and outputs a control saturation signal with the control saturation signal turned ON. On the other hand, when the model position deviation is smaller than the threshold value, the comparison unit 134 determines that saturation of the control input is not generated, and outputs the control saturation signal while turning OFF the control saturation signal. The threshold value used by the comparison unit 134 may be a fixed value or a variable value. In the case of a fixed value, the fixed value is set in advance by a producer, a user, or the like of the controller 10. In the case of the variable value, for example, a value obtained by multiplying the position deviation between the model position and the pre-correction position command calculated in the motor control model 132 shown in fig. 6 by a predetermined coefficient may be used as the threshold value. The threshold value used by the comparison section 134 is an example of a control input limit.
The position command correction value calculation unit 135 calculates a position command correction value based on the control saturation signal acquired from the comparison unit 134, the motor position acquired from the encoder 33, and the pre-correction position command acquired from the pre-correction position command calculation unit 12. Specifically, if the control saturation signal is ON, the position command correction value calculation unit 135 calculates and outputs a position command correction value for correcting the position command before correction so that the amount of change in the 1-control period amount of the corrected position command, which is the corrected command acceleration, is reduced. At this time, the position command correction value calculation unit 135 may perform correction so that the corrected command acceleration is set to 0, or may perform correction so that the time constant is reduced stepwise. In any case, the above-described model positional deviation is reduced without being enlarged. When the control saturation signal is ON and the model position deviation is reduced by the control of the position command correction value calculation unit 135 and becomes equal to or smaller than the threshold value, the comparison unit 134 determines that the saturation of the control input is eliminated, and outputs the control saturation signal while turning OFF. In this case, if the control saturation signal is 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 ON.
As an example, the position command correction value calculation unit 135 controls the position command correction value so that the post-correction command acceleration becomes 0 when the control saturation signal is ON, and controls the position command correction value so that the post-correction command acceleration accelerates corresponding to the pre-correction command acceleration, which is the pre-correction acceleration, when the control saturation signal is OFF. Fig. 7 is a diagram showing an example of a difference in the amount of movement in the case where the acceleration correction calculation unit 13 of the controller 10 according to embodiment 1 corrects the acceleration. In fig. 7, the horizontal axis represents time and the vertical axis represents movement. In addition, the horizontal axis shows the timing of ON/OFF of the control saturation signal.
If a pre-correction position command is input to the acceleration correction computing unit 13, which is an acceleration of the motor 31 exceeding the output maximum torque Tmax, the motor torque Tm is too small with respect to the acceleration, which is the torque obtained, and saturation of the control input occurs. At this time, the output maximum torque Tmax is output at the time of saturation of the control input. If the control input is saturated, the model positional deviation expands, and therefore the acceleration correction computing unit 13 turns ON the control saturation signal. The acceleration correction calculation unit 13 corrects the position command correction value so that the corrected acceleration, that is, the corrected command acceleration becomes 0. Therefore, saturation of the control input is immediately eliminated and the model position deviation is reduced. If the model positional deviation is less than or equal to the threshold value, the acceleration correction calculation unit 13 turns OFF the control saturation signal, and controls the position command correction value so as to correspond to the original acceleration again. Under the control described above, the acceleration correction calculation unit 13 controls the saturation signal to repeat ON/OFF operation while controlling the model position deviation before and after the threshold value during acceleration and deceleration. Therefore, the controller 10 can suppress degradation of control performance such as overshoot due to a saturation phenomenon caused by excessive control saturation, and perform acceleration and deceleration of the output maximum torque Tmax.
As described above, the acceleration correction computing unit 13 generates the model position when the motor control device 20 controls the motor 31 based ON the pre-correction position command, and determines that the control input is saturated and sets the control saturation signal to ON and outputs the control saturation signal when the model position deviation, which is the deviation between the model position and the detected motor position of the motor 31, is equal to or greater than the predetermined threshold value. When the model positional deviation is smaller than the threshold value, the acceleration correction calculation unit 13 determines that the control input is not saturated, and turns OFF the control saturation signal and outputs the control saturation signal.
The acceleration correction operation unit 13 outputs a position command correction value for correcting the pre-correction position command so that the post-correction command acceleration decreases when the control saturation signal is turned ON and is output. Then, when the control saturation signal is turned OFF and outputted, the acceleration correction calculation unit 13 changes the position command correction value so that the corrected command acceleration increases from the time when the control saturation signal is turned ON and outputted.
The position command calculation unit 14 calculates a corrected position command as a position command for the motor control device 20 using the position command before correction obtained from the position command before correction calculation unit 12 and the position command correction value obtained from the acceleration correction calculation unit 13, and outputs the calculated position command to the motor control device 20. The position command calculation unit 14 calculates a post-correction position command by correcting the pre-correction position command using the position command correction value.
As described above, the controller 10 can suppress degradation of control performance due to saturation of the control input while maintaining the path of the driving target of the motor 31 without adding a special process to the motor control device 20.
The operation up to this point will be described with reference to flowcharts. Fig. 8 is a flowchart showing an operation of suppressing degradation of control performance caused by saturation of a control input in the controller 10 according to embodiment 1. In the controller 10, the program analysis unit 11 analyzes the operation program (step S1) and outputs analysis data. The interpolation data generation unit 121 of the pre-correction position instruction arithmetic unit 12 generates interpolation data from the analysis data (step S2). The acceleration/deceleration processing unit 122 of the pre-correction position command calculation unit 12 receives the interpolation data and the state quantity as inputs, performs acceleration/deceleration processing using the machine model 123, and calculates a pre-correction position command (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 or not the control input is saturated (step S4). The comparison unit 134 outputs a control saturation signal ON or OFF in accordance with the determination result (step S5). The position command correction value calculation unit 135 of the acceleration correction calculation unit 13 calculates a position command correction value based on the control saturation signal, the motor position, and the position command before correction (step S6). The position command calculation unit 14 calculates a 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 corrected position command as a position command to the motor control device 20.
Next, the update of the mechanical model 123 based on the saturation condition, that is, the update of the mechanical model 123 based on the saturation result of the control input is explained.
First, the state quantity as an input of the mechanical model 123 includes at least 1 of a motor position, a machine end position, a motor speed, a machine end speed, a motor acceleration, a machine end acceleration, a motor current I, torque information, a model position, a load inertia estimated value, and a supply voltage. The motor position and the machine end position may be collectively referred to as position information, the motor speed and the machine end speed may be collectively referred to as speed information, and the motor acceleration and the machine end acceleration may be collectively referred to as acceleration information. The machine end is a predetermined portion in the case where all or a part of the load 32 is operated by the rotation of the motor 31 in the machine system 30, which is a driving target of the motor control device 20. The load inertia estimation value estimation method may be any method if it is estimated during execution of the operation program. For example, a method of calculating from a ratio of torque to acceleration during acceleration and deceleration, a method of using a recursive least square method, or the like can be used. These state amounts may be data calculated by the motor control device 20 or the acceleration correction calculation unit 13, or may be data obtained by measurement by an external sensor or the like, not shown, provided in the motor control device 20.
The acceleration/deceleration processing unit 122 updates the machine model 123 including the motor characteristic model 124 and the load model 125 in accordance with the control saturation signal acquired from the acceleration correction computing unit 13 and the state quantity acquired from at least one of the motor control device 20 and the acceleration correction computing unit 13. Since the acceleration/deceleration processing unit 122 calculates the pre-correction position command by the above-described method, when the control saturation signal is ON, there is a difference between the information of the machine model 123 and the actual state of the machine system 30. Similarly, since saturation occurs in the control input, the motor 31 outputs the output maximum torque Tmax. The torque output by the motor 31 can be calculated according to equation (4) based on the motor current I as a state quantity and a torque constant preset in accordance with the motor 31.
Tm=Kt×I…(4)
In the formula (4), tm is a motor torque [ Nm ], I is a motor current [ A ], and Kt is a torque constant [ Nm/A ]. Fig. 9 is a diagram showing an image in which motor torque Tm calculated from the state when the control saturation signal is ON in acceleration/deceleration processing unit 122 included in pre-correction position command calculating unit 12 of controller 10 according to embodiment 1 is plotted as motor characteristics. The saturation of the control input is mainly torque saturation or voltage saturation, but can be determined as follows from the state quantity. In the determination, as the threshold value, a slightly smaller motor current threshold value Ith is used in consideration of the fluctuation of the motor maximum current Imax corresponding to the maximum torque Tmax output from the expression (4). The acceleration/deceleration processing unit 122 can determine that the torque is saturated when the motor current I is equal to or greater than 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 is less than the motor current threshold Ith when the control saturation signal is ON. The torque saturation can be considered as command-based motor torque Tm ≡maximum torque Tmax0. On the other hand, the voltage saturation is a case where the motor torque Tm based on the command is less than the maximum torque Tmax0 under the condition of the control input saturation.
Therefore, when the acceleration/deceleration processing unit 122 determines that the torque is saturated, it is considered that a difference occurs in the load inertia J, the friction torque T1, or the unbalanced load torque T2 according to the above-described formulas (1) to (3). Therefore, the acceleration/deceleration processing unit 122 can update the load inertia J, the friction torque T1, or the unbalanced load torque T2 of the load model 125 based on the state quantity. Here, the information on the load model 125 to be updated by the acceleration/deceleration processing unit 122 may be determined in accordance with the workpiece information. The acceleration/deceleration processing unit 122 may update the estimated value based on the load inertia 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 occurs in the reduction torque Tr. Since the reduction torque Tr varies according to the supply voltage, which is the voltage that can be applied to the motor 31, the acceleration/deceleration processing unit 122 can update the reduction torque Tr in the motor characteristic model 124 as data related to the motor speed and the supply voltage of the state quantity.
As described above, when the obtained control saturation signal is ON, the pre-correction position command calculation unit 12 updates the machine model 123 based ON the state quantity indicating the operation state of at least 1 of the controller 10, the motor control device 20, and the motor 31 when the control saturation signal is ON. The pre-correction position command calculation unit 12 has a motor characteristic model 124 and a load model 125 as a machine model 123. When the obtained control saturation signal is ON, 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 motor current I is equal to or greater than a motor current threshold value Ith, which is a predetermined value. When the obtained control saturation signal is ON, 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 when the motor current I is smaller than the motor current threshold Ith, which is a predetermined value. That is, the position command generating unit 15 includes a machine model 123 for calculating acceleration that can be output by the motor 31, generates a position command based on the analysis data and the machine model 123, and operates to update the machine model 123 when the control input to the motor 31 is saturated beyond a control input limit set in advance. The position command generating unit 15 determines whether or not the control input to the motor 31 is saturated (step S4), and if it is determined that the control input is saturated, it operates to update the machine model 123 based on a state quantity indicating an operation state of at least 1 of the controller 10, the motor control device 20, and the motor 31 at the time of saturation.
The acceleration/deceleration processing unit 122 may update the mechanical model 123 even when the control saturation signal is OFF. For example, the acceleration/deceleration processing unit 122 can determine that an error exists in the load model 125 when a torque deviation obtained by comparing the motor torque Tm as a model associated with the movement command calculated from the machine model 123 and the motor torque Tm calculated from the motor current I is equal to or greater than a predetermined value. In this case, as in the case of torque saturation, it is considered that a difference occurs in the load inertia J, the friction torque T1, or the unbalanced load torque T2. Therefore, the acceleration/deceleration processing unit 122 can update the load inertia J, the friction torque T1, or the unbalanced load torque T2 of the load model 125 based on the state quantity. Here, the acceleration/deceleration processing unit 122 may determine information on the load model 125 to be updated in accordance with the workpiece information. The acceleration/deceleration processing unit 122 may update the estimated value based on the load inertia as the state quantity. As described above, when the obtained control saturation signal is OFF and the torque deviation, which is the deviation between the motor torque Tm calculated from the machine model 123 and the motor torque Tm calculated from the motor current I, is equal to or greater than the predetermined value, the pre-correction position command calculation unit 12 updates the machine model 123 based on the state quantity. Specifically, the pre-correction position command calculation unit 12 includes a motor characteristic model 124 and a load model 125 as the machine model 123, and updates the load model 125 as the machine model 123.
As described above, the controller 10 can always set the machine model 123 to the optimal machine model according to the actual state of the machine system 30 by updating the machine model 123 based on the state quantity at the time of saturation of the control input. Here, the updated machine model 123 is not limited to the generation of the position command, and the controller 10 may be used for other applications using the machine model 123, such as operation time prediction, path prediction, and machining prediction, based on a program.
The operation up to this point will be described with reference to flowcharts. Fig. 10 is a flowchart showing an operation of updating the mechanical model 123 in the controller 10 according to embodiment 1 based on the saturation condition. In the controller 10, the acceleration/deceleration processing unit 122 of the pre-correction position command calculation unit 12 acquires a control saturation signal and a state quantity (step S11). The acceleration/deceleration processing unit 122 determines whether or not the control saturation signal is ON (step S12). When the control saturation signal is ON (Yes in step S12), 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 or not the torque deviation is equal to or larger than a predetermined value (step S14). When the torque deviation is equal to or greater than the predetermined value (Yes in step S14), the acceleration/deceleration processing unit 122 updates the mechanical model 123 (step S13). When the torque deviation is smaller than the predetermined value (step S14: no), the acceleration/deceleration processing unit 122 ends the operation.
Next, a hardware configuration of the controller 10 according to embodiment 1 will be described. Fig. 11 is a diagram showing a configuration example of hardware for implementing the controller 10 according to embodiment 1. Fig. 11 shows a configuration example 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 of the controller 10 are implemented by a processing circuit 61 having a processor 63 and a memory 64.
Processor 63 is CPU (Central Processing Unit). The processor 63 may be an arithmetic device, a microprocessor, a microcomputer, or DSP (Digital Signal Processor). The memory 64 is, for example, a volatile or nonvolatile semiconductor memory such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), and EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory).
The memory 64 stores programs for operating 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 by the processor 63 and executed, whereby the program analysis unit 11, the pre-correction position command calculation unit 12, the acceleration correction calculation unit 13, and the position command calculation unit 14 can be realized. The programs stored in the memory 64 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 may be provided to the user in a state written in a storage medium such as CD (Compact Disc) -ROM or DVD (Digital Versatile Disc) -ROM, for example, or may be provided via a network. The processor 63 outputs data such as the operation result to the volatile memory of the memory 64. Alternatively, the processor 63 stores the data such as the operation result by outputting the data to the auxiliary storage device via the volatile memory of the memory 64.
The input unit 62 is a circuit that receives an input signal to the controller 10 from the outside. The input unit 62 receives, for example, an operation program, a motor position, a state quantity, and the like. 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 instruction.
Fig. 11 shows an example of hardware in the case where 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 may be implemented by dedicated processing circuits instead of the processor 63 and the memory 64. That is, the program analysis unit 11, the pre-correction position command calculation unit 12, the acceleration correction calculation unit 13, and the position command calculation unit 14 may be realized by dedicated processing circuits. Here, the dedicated processing circuit is a single circuit, a composite circuit, ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), or a circuit combining them. The program analysis unit 11, the pre-correction position command calculation unit 12, the acceleration correction calculation unit 13, and the position command calculation unit 14 may be partially implemented by the processor 63 and the memory 64, and the remaining may be implemented by a dedicated processing circuit.
As described above, according to the present embodiment, the controller 10 can update the optimal machine model 123 according to the state of the actual machine system 30 while suppressing degradation of the control performance while maintaining the path of the driving target of the motor 31. Further, the controller 10 determines the position command based on the mechanical model 123, so that the motor 31 can be operated with an optimal acceleration or time constant, and the acceleration/deceleration operation can be performed with the maximum torque that the motor 31 can output all the time without an extra torque margin, so that the cycle time can be shortened. In addition, when the controller 10 performs operation prediction in advance based on the operation program, a good result with little error can be obtained by using the updated machine model 123.
Embodiment 2
In embodiment 1, a case where there are 1 motor control devices 20 connected to the controller 10 is described. Here, the controller as the upper control device can control a plurality of motors at the same time. However, in the case where the controller performs interpolation control for a plurality of motors at the same time, if correction is performed individually, interpolation between the motors cannot be performed. In embodiment 2, a case where a plurality of motor control devices are connected to a controller and the controller simultaneously controls a plurality of motors will be described.
Fig. 12 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 higher-level control device connected to the motor control devices 20a and 20b. A mechanical system 30a is connected to the motor control device 20a, and a mechanical system 30b is connected to the motor control device 20b. As shown in fig. 12, the motor control device 20a includes a positional deviation calculating unit 21a, a positional control unit 22a, a speed calculating unit 23a, a speed deviation calculating unit 24a, a speed controlling unit 25a, a current limiting unit 26a, and a current controlling unit 27a. The motor control device 20b includes a positional deviation calculating unit 21b, a position control unit 22b, a speed calculating unit 23b, a speed deviation calculating 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. 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 configuration as the motor control device 20 of embodiment 1, and therefore, detailed description thereof is omitted. The mechanical systems 30a and 30b have the same configuration as the mechanical system 30 of embodiment 1, and therefore, detailed description thereof is omitted.
The structure and operation of the controller 10a will be described in detail. As shown in fig. 12, 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 position command generating unit 15a is constituted by the position command calculating unit before correction 12a, the acceleration correction calculating unit 13a, and the position command calculating units 14a and 14b.
The program analysis unit 11 performs the same operation as the program analysis unit 11 according to embodiment 1 shown in fig. 1.
The pre-correction position command calculation unit 12a generates interpolation data based on the analysis data acquired from the program analysis unit 11, and calculates pre-correction position commands a and b for driving the motors 31a and 31b to be accelerated and decelerated based on the interpolation data. The pre-correction position command calculation unit 12a calculates the pre-correction position commands a and b for the 2 motors 31a and 31b, but the respective operations for calculating the pre-correction position command a and the pre-correction position command b are the same as those of the pre-correction position command calculation unit 12 of embodiment 1 shown in fig. 1 and 2. Therefore, a detailed operation of the pre-correction position command calculation unit 12a will be omitted.
The acceleration correction calculation unit 13a calculates a position command correction value a for correcting the position command a before correction and calculates a position command correction value b for correcting the position command b before correction, using the position commands a and b before correction obtained from the position command calculation unit 12a before correction, the motor position a obtained from the encoder 33a, and the motor position b obtained from the encoder 33 b. Fig. 13 is a diagram showing a configuration example of the acceleration correction calculation unit 13a included in the controller 10a according to embodiment 2. The acceleration correction computing unit 13a includes model output units 131a and 131b, model positional deviation computing units 133a and 133b, comparison units 134a and 134b, and a position command correction value computing unit 135a. The model output unit 131a holds the motor control model 132 a. The model output unit 131b holds the motor control model 132 b. The operations of the model output units 131a and 131b, the model positional deviation calculation units 133a and 133b, and the comparison units 134a and 134b are the same as those of the model output unit 131, the model positional deviation calculation unit 133, and the comparison unit 134 in embodiment 1 shown in fig. 6, and therefore, detailed description thereof is omitted.
The position command correction value calculation unit 135a calculates position command correction values a and b for the position commands a and b before correction. At this time, the position command correction value calculation unit 135a obtains the OR, i.e., the logical OR, of the control saturation signals a, b output from the comparison units 134a, 134b, and calculates the position command correction values a, b. When there is saturation of the control input in at least 1 of the plurality of motors 31a, 31b, the position command correction value calculation unit 135a calculates and outputs the position command correction values a, b for correcting the position commands a, b before correction so that the amount of change in the 1-control cycle amount of the position commands a, b after correction is reduced.
In the present embodiment, the case where 2 motor control devices are connected to the controller has been described, but the same control can be performed even if the number of motor control devices connected to the controller is 3 or more. Specifically, the same control as in the present embodiment can be achieved by obtaining a logical or of 3 or more control saturation signals corresponding to the configuration of the position command correction value calculation unit 135 a.
As described above, in the control system 40a, the controller 10a is connected to the plurality of motor control devices 20a and 20b that control the operations by supplying currents to the different motors 31a and 31b, respectively, and performs interpolation control on the plurality of motors 31a and 31 b. When the control saturation signal for any motor 31a or 31b is turned ON and output, the acceleration correction calculation unit 13a outputs the position command correction values for the plurality of motors 31a or 31b performing the interpolation operation so that the interpolation operation of the motors 31a or 31b is maintained and the corrected acceleration, that is, the corrected command acceleration is reduced. Then, when the control saturation signal for the plurality of motors 31a and 31b performing the interpolation operation is turned OFF and outputted, the acceleration correction calculation unit 13a changes the position command correction value for the plurality of motors 31a and 31b performing the interpolation operation so that the interpolation operation of the motors 31a and 31b is maintained and the command acceleration increases from the corrected command acceleration when the control saturation signal is turned ON and outputted.
The hardware configuration of the controller 10a of embodiment 2 is the same as that of the controller 10 of embodiment 1 shown in fig. 11.
As described above, according to the present embodiment, when the plurality of motors 31a and 31b are set as targets and the interpolation operation is performed, the controller 10a is connected to the plurality of motor control devices 20a and 20b, and the paths of the driving targets of the motors 31a and 31b are maintained, so that deterioration of the control performance due to saturation of the control input can be suppressed, and the same effects as those in embodiment 1 can be obtained.
Embodiment 3
In embodiment 3, a case will be described in which when a current command is in a current limit, the motor control device outputs a current limit signal indicating that the current is being limited.
Fig. 14 is a diagram showing a configuration example of a control system 40c according to embodiment 3. The control system 40c has a controller 10c and a motor control device 20c. The controller 10c is a higher-level control device connected to the motor control device 20c. A mechanical system 30 is connected to the motor control device 20c. As shown in fig. 14, the motor control device 20c includes a positional deviation calculating unit 21, a positional control unit 22, a speed calculating unit 23, a speed deviation calculating unit 24, a speed control unit 25, a current limiting unit 26c, and a current control unit 27.
The current limiter 26c has the same function as the current limiter 26 of embodiment 1 shown in fig. 1, and has a function of outputting a current limit signal indicating that current limitation is performed to the controller 10c when current limitation is performed. The current limit can be regarded as controlling saturation. For example, the current limiting unit 26c outputs a current limiting signal by turning ON when current limiting is performed, and outputs a current limiting signal by turning OFF when current limiting is not performed.
As shown in fig. 14, the controller 10c includes a program analysis unit 11, a pre-correction position command calculation unit 12c, an acceleration correction calculation unit 13c, and a position command calculation unit 14. The position command generating unit 15c is constituted by the position command calculating unit before correction 12c, the acceleration correction calculating unit 13c, and the position command calculating unit 14. Fig. 15 is a diagram showing a configuration example of the acceleration correction calculation unit 13c included in the controller 10c according to embodiment 3. The acceleration correction computing unit 13c includes a model output unit 131, a model positional deviation computing unit 133, a comparing unit 134, a position command correction value computing unit 135c, and a logical or computing unit 136.
The logical or operation unit 136 performs 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 20 c. The logical or operation unit 136 outputs the control saturation signal c by turning ON when at least 1 of the control saturation signal and the current limit signal is ON, and outputs the control saturation signal c by turning OFF when both the control saturation signal and the current limit signal are OFF.
The signal acquired by the position command correction value calculation unit 135c is different from the position command correction value calculation unit 135 of embodiment 1, but the operation when the control saturation signal c is ON or OFF is the same as the operation of the position command correction value calculation unit 135 of embodiment 1.
As described above, the acceleration correction computing unit 13c acquires the current limit signal indicating whether or not the current command, which is the control input from the motor control device 20c to the motor 31, is equal to or greater than a predetermined value, and when acquiring the current limit signal indicating that the current command is equal to or greater than the predetermined value, it turns ON the control saturation signal c and outputs the control saturation signal. The acceleration correction computing unit 13c outputs the control saturation signal c while turning OFF when the current limit signal indicating that the current command is smaller than the predetermined value is acquired and when the model positional deviation is smaller than the predetermined threshold value.
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 of embodiment 1, 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 of embodiment 1.
The hardware configuration of the controller 10c of embodiment 3 is the same as that of the controller 10 of embodiment 1 shown in fig. 11.
As described above, according to the present embodiment, the controller 10c uses the current limit signal in the determination of the control saturation. The controller 10c can detect saturation of the control input in advance of the control saturation signal being ON due to the expansion of the model positional deviation in the torque saturation condition.
Embodiment 4
In embodiment 4, a learning device and an estimation device that perform machine learning on a machine model 123 will be described. The mechanical model 123 is composed of a motor characteristic model 124 and a load model 125, and is mainly included in the acceleration/deceleration processing unit 122 shown in fig. 2, and is used for calculation of a pre-correction position command for acceleration/deceleration driving in a range of torque that can be output by the motor 31 based on interpolation data. The motor characteristic model 124 is mainly a torque-speed characteristic, and can be used for calculating an output torque in accordance with a supply voltage, an operation speed, and the like. The load model 125 is used for calculating the load inertia J of the motor 31 based mainly on the workpiece information, the friction torque T1, the unbalanced load torque T2, and the like.
< learning phase >)
Fig. 16 is a diagram showing a configuration example of a learning device 70 applied to 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 a mechanical model 123 used for calculation of a pre-correction position command for acceleration/deceleration driving in a range of torque that can be output by the motor 31, which is present in the acceleration/deceleration processing unit 122 shown in fig. 2. In fig. 16, the trained model storage unit 73 is located outside the learning device 70, but the trained model storage unit 73 may be included inside the learning device 70.
The data acquisition unit 71 acquires acquisition information and a machine state as learning data from the controller 10. The acquired information includes a control saturation signal inputted by a control, a state quantity indicating an operation state of at least 1 of the controller 10, the motor control device 20, and the motor 31, program information, and workpiece information. The mechanical state includes motor characteristics, load inertia J, friction torque T1, and unbalanced load torque T2.
The model generating unit 72 learns the acquired information using learning data created based on a combination of the acquired information output from the data acquiring unit 71 and the mechanical state as teacher data. That is, the model generation unit 72 generates a trained model for estimating 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 correlates the acquired information and the machine state with each other.
The learning algorithm used by the model generating unit 72 may be a known algorithm such as teacher learning, non-teacher learning, or reinforcement learning. As an example, a case where a neural network is applied will be described. The model generating unit 72 learns the mechanical model 123 by so-called teacher learning, for example, in accordance with a neural network model. Here, teacher learning refers to a method of learning features present in learning data by giving a set of input and result (tag) data to the learning device 70, and estimating a result from the input.
The neural network is composed of an input layer composed of a plurality of neurons, an intermediate layer (hidden layer) composed of a plurality of neurons, and an output layer composed of a plurality of neurons. The intermediate layer may be 1 layer or greater than or equal to 2 layers.
For example, consider the 3-layer neural network shown in fig. 17. Fig. 17 is a diagram schematically showing a neural network used by the model generation unit 72 of the learning device 70 according to embodiment 4.
In the case of the 3-layer neural network shown in fig. 17, after a plurality of inputs are input to the input layers (X1 to X3), the values are multiplied by weights W1 (W11 to W16) and input to the intermediate layers (Y1 to Y2), and the result is further multiplied by weights W2 (W21 to W26) and output from the output layers (Z1 to Z3). The output results vary according to the values of the weights W1 and W2.
In the present embodiment, the neural network learns the machine model 123 by so-called teacher learning according to learning data created based on a combination of the acquired information acquired by the data acquisition unit 71 and the teacher data.
That is, the neural network learns by adjusting the weights W1 and W2 so that the result of inputting and acquiring information to and outputting from the input layer approaches the teacher data.
The model generation unit 72 performs the above learning to generate a trained model and outputs the model.
The trained model storage unit 73 stores the trained model output from the model generation unit 72.
Next, a process of learning by the learning device 70 will be described with reference to fig. 18. Fig. 18 is a flowchart showing learning processing by the learning device 70 according to embodiment 4.
The data acquisition unit 71 acquires the acquired information and the machine state as data (step S101). The data acquisition unit 71 is configured to acquire the acquired information and the mechanical state simultaneously, but the present invention is not limited to this. The data acquisition unit 71 may be able to input the acquired information and the machine state by associating them, and thus may acquire the acquired information and the machine state at different timings.
The model generation unit 72 performs learning processing (step S102). Specifically, the model generating unit 72 learns the machine model 123 by so-called teacher learning according to learning data created based on the combination of the acquired information acquired by the data acquiring unit 71 and the machine state, and generates a trained model.
The trained model storage unit 73 stores the trained model generated by the model generation unit 72 (step S103).
< valid use phase >
Fig. 19 is a diagram showing a configuration example of an estimation device 80 applied to the controller 10 according to embodiment 4. The estimation device 80 includes a data acquisition unit 81 and an estimation unit 82. The estimating unit 82 corresponds to the acceleration/deceleration processing unit 122 shown in fig. 2, and outputs a pre-correction position command based on the trained machine model 123.
The data acquisition unit 81 acquires acquisition information. The acquired information includes a control saturation signal inputted by a control, a state quantity indicating an operation state of at least 1 of the controller 10, the motor control device 20, and the motor 31, program information, and workpiece information.
The estimating unit 82 estimates the load model 125 included in the machine model 123 from the acquired information acquired by the data acquiring unit 81, using the trained model stored in the trained model storage unit 73. That is, the estimating unit 82 inputs the acquired information acquired by the data acquiring unit 81 to the trained model, and thereby estimates and outputs the load model 125 included in the machine model 123 estimated from the acquired information.
In the present embodiment, the machine model 123 is described as being output using the trained model learned by the model generating unit 72 of the learning device 70 applied to the controller 10, but the trained model may be acquired from the learning device 70 applied to another controller 10, and the machine model 123 may be output based on the trained model.
Next, a process of estimating the mechanical model 123 by the estimating device 80 will be described with reference to fig. 20. Fig. 20 is a flowchart showing an estimation process by the estimation device 80 according to embodiment 4.
The data acquisition unit 81 acquires acquisition information as data (step S111).
The estimating unit 82 inputs the acquired information to the trained model stored in the trained model storage unit 73 (step S112). The estimating unit 82 obtains the mechanical model 123 by inputting acquisition information to the trained model.
The estimating unit 82 outputs the mechanical model 123 obtained by training the model to the controller 10 as data (step S113).
The controller 10 outputs a pre-correction position command based on the acquired machine model 123 (step S114).
In this way, the learning device 70 and the estimating device 80 can output the cause of the change in the program information and the workpiece state as the machine model 123 based on the information acquired from the control system 40, and can easily predict the operation.
In the present embodiment, the case where teacher learning is applied to the learning algorithm used by the model generating unit 72 has been described, but the present invention is not limited to this. As for the learning algorithm, reinforcement learning, non-teacher learning, half-teacher learning, or the like can be applied in addition to teacher learning.
The model generating unit 72 may learn the machine model 123 according to the learning data created for the plurality of controllers 10. The model generating unit 72 may acquire learning data from a plurality of controllers 10 used in the same area, or may learn the machine model 123 using learning data collected from a plurality of controllers 10 independently operating in different areas. The model generation unit 72 may add the controller 10 of the subject that collects the learning data to the subject in the middle, or may remove the controller from the subject in the middle. The learning device 70 that learns the machine model 123 with respect to the certain controller 10 may be applied to another controller 10, and the machine model 123 may be relearned and updated with respect to the other controller 10.
As a Learning algorithm used in the model generating unit 72, deep Learning (Deep Learning) for Learning the extraction of the feature quantity itself may be used, and machine Learning may be performed according to other known methods, such as genetic programming, functional logic programming, and support vector machine.
The learning device 70 and the estimating device 80 are used for learning the mechanical model 123 of the controller 10, but may be connected to the controller 10 via a network, for example, and are devices separate from the controller 10. The learning device 70 and the estimating device 80 may be incorporated in the controller 10. The learning device 70 and the estimating device 80 may exist on the cloud server. Fig. 21 is a diagram showing an example in which the learning device 70 and the estimating device 80 are provided outside the controller 10 in embodiment 4. Fig. 22 is a diagram showing an example in which the learning device 70 and the estimating device 80 are provided in the controller 10 in embodiment 4. In the example of fig. 21, a network may exist between the controller 10 and the learning device 70 and the inference device 80. In the example of fig. 21, the learning device 70 and the estimating device 80 may be present on a cloud server. In the example of fig. 21 and 22, the learning device 70 includes a trained model storage unit 73.
As described above, the controller 10 may update the machine model 123 by the method of embodiment 1, or may update the machine model 123 by using the learning device 70 and the estimation device 80 as in embodiment 4. The case where the learning device 70 and the estimating 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 estimating device 80 may be applied to the controllers 10a and 10c.
The configuration shown in the above embodiment is an example, and other known techniques may be combined, or the embodiments may be combined with each other, and a part of the configuration may be omitted or changed without departing from the scope of the present invention.
Description of the reference numerals
10. A 10a, 10c controller, a program analysis unit, a 12, 12a, 12c correction pre-position command calculation unit, a 13, 13a, 13c acceleration correction calculation unit, a 14, 14a, 14b position command generation unit, a 20, 20a, 20b, 20c motor control device, a 21, 21a, 21b position deviation calculation unit, a 22, 22b position control unit, a 23, 23a, 23b speed calculation unit, a 24, 24a, 24b speed deviation calculation unit, a 25, 25b speed control unit, a 26, 26a, 26b, 26c current limitation unit, a 27, 27a, 27b current control unit, a 30, 30a, 30b mechanical system, 31, 31a, 31b motors, 32a, 32b loads, 33a, 33b encoders, 40a, 40c control systems, 70 learning means, 71, 81 data acquisition means, 72 model generation means, 73 trained model storage means, 80 estimation means, 82 estimation means, 121 interpolation data generation means, 122 acceleration/deceleration processing means, 123 mechanical model, 124 motor characteristic model, 125 load model, 131a, 131b model output unit, 132a, 132b motor control model, 133a, 133b model position deviation calculation unit, 134a, 134b comparison unit, 135a, 135c position command correction value calculation unit, 136 logical OR calculation unit.

Claims (16)

1. A controller outputs a position command to a motor control device that controls operation by supplying current to a motor,
the controller is characterized by comprising:
a program analysis unit that analyzes an operation program defining a path of a driving target driven by the operation of the motor and outputs analysis data; and
and a position command generating unit that has a mechanical model for calculating acceleration that can be output by the motor, generates the position command based on the analysis data and the mechanical model, and updates the mechanical model when a control input to the motor is saturated beyond a control input limit set in advance.
2. The controller according to claim 1, wherein,
the position command generating unit determines whether or not the saturation is generated in the control input to the motor, and updates the mechanical model based on a state quantity indicating an operation state of at least 1 of the controller, the motor control device, and the motor when the saturation is generated when the control input is determined to be saturated.
3. A controller according to claim 1 or 2, wherein,
the position command generating unit includes:
a pre-correction position command calculation unit having a mechanical model for calculating an acceleration that can be output by the motor, and calculating a pre-correction position command based on the analysis data and the mechanical model;
an acceleration correction operation unit that determines whether or not the saturation is generated in a control input to the motor, that outputs a control saturation signal when it is determined that the saturation is generated in the control input, that outputs the control saturation signal when it is determined that the saturation is not generated in the control input, and that calculates a position command correction value for correcting the position command before correction based ON the control saturation signal; and
a position command calculation unit that calculates the position command using the position command before correction and the position command correction value,
the pre-correction position command calculation unit updates the machine model based ON a state quantity indicating an operation state of at least 1 of the controller, the motor control device, and the motor when the obtained control saturation signal is ON.
4. The controller according to claim 3, wherein,
the acceleration correction calculation unit generates a model position when the motor control device controls the motor based ON the pre-correction position command, determines that the control input is saturated and the control saturation signal is turned ON and output when a model position deviation, which is a deviation between the model position and the detected motor position of the motor, is greater than or equal to a predetermined threshold value, and determines that the control input is not saturated and the control saturation signal is turned OFF and output when the model position deviation is smaller than the threshold value.
5. The controller according to claim 4, wherein,
the acceleration correction calculation unit obtains a current limit signal indicating whether or not a current command, which is a control input to the motor, is greater than or equal to a predetermined value from the motor control device, and outputs the control saturation signal by turning ON when the current limit signal indicating that the current command is greater than or equal to the predetermined value is obtained, and outputs the control saturation signal by turning OFF when the current limit signal indicating that the current command is less than the predetermined value is obtained and when the model position deviation is less than a predetermined threshold value.
6. The controller according to any one of claims 3 to 5, wherein,
the acceleration correction calculation unit outputs the position command correction value for correcting the pre-correction position command so that the post-correction command acceleration, which is the corrected acceleration, decreases when the control saturation signal is turned ON and outputs the control saturation signal, and then changes the position command correction value so that the post-correction command acceleration increases when the control saturation signal is turned ON and outputs the control saturation signal.
7. The controller according to any one of claims 3 to 6, wherein,
the pre-correction position command calculation unit updates the machine model based on the state quantity when the obtained control saturation signal is OFF and a torque deviation, which is a deviation between the motor torque calculated from the machine model and the motor torque calculated from the motor current, is greater than or equal to a predetermined value.
8. The controller according to claim 7, wherein,
the pre-correction position command calculation unit includes a motor characteristic model and a load model as the machine model, and updates the load model as the machine model.
9. The controller according to any one of claims 3 to 7, wherein,
the pre-correction position command calculation unit includes a motor characteristic model and a load model as the machine model, updates the load model based ON the state quantity when the control saturation signal is ON when the motor current is equal to or greater than a predetermined value when the obtained control saturation signal is ON, and updates the motor characteristic model based ON the state quantity when the control saturation signal is ON when the motor current is less than a predetermined value when the obtained control saturation signal is ON.
10. The controller according to any one of claims 3 to 8, wherein,
the state quantity includes at least 1 of a motor position, a mechanical end position of a mechanical system, which is a driving object of the motor control device, a motor speed, a mechanical end speed of the mechanical system, a motor acceleration, a mechanical end acceleration of the mechanical system, a motor current, torque information, a model position calculated by the acceleration correction calculation unit, a load inertia estimated value, and a supply voltage to the motor.
11. The controller according to any one of claims 3 to 10, wherein,
a plurality of motor control devices connected to the plurality of motor control devices for controlling operations by supplying currents to the respective motors, the plurality of motors being subjected to interpolation control,
the acceleration correction calculation unit outputs a position command correction value for a plurality of motors performing an interpolation operation so as to maintain the interpolation operation of the motors and reduce a corrected command acceleration, which is a corrected acceleration, when the control saturation signal for any of the motors is turned ON and outputted, and changes the position command correction value for the plurality of motors performing the interpolation operation so as to maintain the interpolation operation of the motors and increase the corrected command acceleration when the control saturation signal is turned ON and outputted when the control saturation signal is turned OFF and outputted.
12. The controller according to any one of claims 3 to 11, wherein,
the learning device is provided with:
A data acquisition unit that acquires, as learning data, acquired information including the control saturation signal, the state quantity, program information of the operation program, and workpiece information, and teacher data including motor characteristics, load inertia, friction torque, and unbalanced load torque; and
and a model generation unit that generates a trained model for estimating a load model included in the machine model from the acquired information, using the learning data.
13. The controller according to any one of claims 3 to 12, wherein,
the estimation device is provided with:
a data acquisition unit that acquires, as acquisition information, the control saturation signal, the state quantity, program information of the operation program, and workpiece information; and
and an estimating unit that estimates a load model from the acquired information acquired by the data acquiring unit, using a trained model for estimating the load model included in the mechanical model.
14. A control system, characterized by comprising:
the controller according to any one of claims 1 to 13; and
And a motor control device for controlling the position of the motor based on the position command obtained from the controller.
15. A learning device, comprising:
a data acquisition unit that acquires, as learning data, acquisition information including program information and workpiece information of an operation program input to a controller, and teacher data including motor characteristics, load inertia, friction torque, and unbalanced torque, and acquisition information including a control saturation signal indicating whether or not a control input to the motor is saturated beyond a control input limit set in advance, a state quantity indicating an operation state of at least 1 of the controller, the motor control device, and the motor, and teacher data including program information and workpiece information, from the controller that supplies current to the motor to control operation;
and a model generation unit that generates a trained model for estimating a load model included in the mechanical model of the controller based on the acquired information, using the learning data.
16. An estimation device is characterized by comprising:
a data acquisition unit that acquires, as acquisition information, a control saturation signal indicating whether or not a control input to the motor is saturated beyond a control input limit set in advance, a state quantity indicating an operation state of at least 1 of the controller, the motor control device, and the motor, program information of an operation program input to the controller, and workpiece information, from a controller that outputs a position command to a motor control device that supplies current to the motor and controls operation; and
And an estimating unit that estimates a load model from the acquired information acquired by the data acquiring unit, using a trained model for estimating the load model included in the mechanical model of the controller.
CN202180098399.XA 2021-12-13 2021-12-13 Controller, control system, learning device, and estimation device Pending CN117378139A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/045769 WO2023112082A1 (en) 2021-12-13 2021-12-13 Controller, control system, learning device, and inference device

Publications (1)

Publication Number Publication Date
CN117378139A true CN117378139A (en) 2024-01-09

Family

ID=82556746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180098399.XA Pending CN117378139A (en) 2021-12-13 2021-12-13 Controller, control system, learning device, and estimation device

Country Status (4)

Country Link
JP (1) JP7106038B1 (en)
CN (1) CN117378139A (en)
DE (1) DE112021007575T5 (en)
WO (1) WO2023112082A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10138186A (en) * 1996-11-01 1998-05-26 Toyota Motor Corp Method and device for controlling physical system
JP2010178509A (en) * 2009-01-29 2010-08-12 Mitsubishi Electric Corp Motor drive control device
CN110083080A (en) * 2018-01-25 2019-08-02 发那科株式会社 Machine learning device and method, servo motor control unit and system
JP2019181635A (en) * 2018-04-12 2019-10-24 ファナック株式会社 Information processor and information processing method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6490131B2 (en) * 2017-03-31 2019-03-27 ファナック株式会社 Machine learning device, servo control device, servo control system, and machine learning method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10138186A (en) * 1996-11-01 1998-05-26 Toyota Motor Corp Method and device for controlling physical system
JP2010178509A (en) * 2009-01-29 2010-08-12 Mitsubishi Electric Corp Motor drive control device
CN110083080A (en) * 2018-01-25 2019-08-02 发那科株式会社 Machine learning device and method, servo motor control unit and system
JP2019181635A (en) * 2018-04-12 2019-10-24 ファナック株式会社 Information processor and information processing method

Also Published As

Publication number Publication date
DE112021007575T5 (en) 2024-02-22
JP7106038B1 (en) 2022-07-25
WO2023112082A1 (en) 2023-06-22
JPWO2023112082A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
TWI471708B (en) Servo control apparatus
CN110832422B (en) Machine learning device, correction parameter adjustment device, and machine learning method
JP6140225B2 (en) Motor control device having magnetic flux controller, machine learning device and method thereof
JPWO2006011519A1 (en) Servo control device
KR101813615B1 (en) Apparatus and method for control of actuator
US20190317472A1 (en) Controller and control method
JP4453526B2 (en) Servo control device
JPH08249067A (en) Position controller for motor
JP6469320B1 (en) Servo control device
JP5924290B2 (en) Motor control device
CN117378139A (en) Controller, control system, learning device, and estimation device
CN115336167B (en) Friction compensation device, collision detection device, torque feedforward calculation device, robot control device, and friction compensation method
US20030173928A1 (en) Servo control method
JPH08211943A (en) Backlash correcting method using disturbance observer
JP2009081985A (en) Method of identifying characteristic controlling inertial resonance system and motor controller
CN114977928A (en) Parameter self-tuning method for speed ring and position ring of permanent magnet synchronous servo system
JP2003169488A (en) Controller of servo motor and control method
JP3582541B2 (en) Positioning control method by sliding mode control
Schwab et al. Sliding mode and model predictive control for inverse pendulum
KR100222763B1 (en) Linear output apparatus for controlling position of robot and method thereof
JP3171860B2 (en) Servo control system
JPH0623932B2 (en) Servo control method
JP2019133537A (en) Actuator controller and actuator control method
JP2881873B2 (en) Digital adaptive controller
JP2006331013A (en) Servo controller and control method

Legal Events

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