Motor control device and motor control method
The motor control device and method address voltage saturation and regenerative operation challenges by calculating current command values and adjusting limits based on motor states, ensuring efficient high-speed, high-load operation in robots.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-22
- Publication Date
- 2026-03-30
AI Technical Summary
Existing motor control technologies face challenges in achieving high-speed, high-load operation due to voltage saturation and regenerative operation issues, particularly in robots equipped with multiple motors, leading to difficulties in maintaining torque and preventing electrolytic capacitor breakdown.
A motor control device and method that calculates q-axis and d-axis current command values based on speed commands, determines powering or regenerative states, and adjusts current limits using a current limit value storage unit to manage motor loads efficiently, incorporating a regenerative determination unit to handle varying motor states.
Enables efficient high-speed, high-load operation of multiple motors in robots by preventing voltage saturation and managing regenerative states, thereby enhancing motor performance and safety.
Smart Images

Figure 0007836983000001 
Figure 0007836983000002 
Figure 0007836983000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a motor control device and a motor control method using current vector control.
Background Art
[0002] Patent Document 1 discloses a motor control device including a voltage command value calculation unit that calculates a voltage command value of a voltage applied to a motor based on a q-axis current command value and a d-axis current command value, a drive circuit that outputs drive power to the motor based on the voltage command value, a d-axis current command value calculation unit that calculates a d-axis current command value for limiting the voltage command value to be less than or equal to the maximum voltage that can be applied to the drive circuit by field weakening control, a d-axis current command value limiting unit that limits the d-axis current command value calculated by the d-axis current command value calculation unit, and a q-axis current command value limiting unit that limits the q-axis current command value so that the voltage command value does not exceed the maximum voltage due to the limitation of the d-axis current command value by the d-axis current command value limiting unit.
[0003] Patent Document 2 discloses a control method for a synchronous motor that determines the current to be passed through the synchronous motor based on the value obtained by dq-axis conversion of the current flowing through the synchronous motor and controls the synchronous motor. This control method determines a q-axis current command value indicating the q-axis current of the synchronous motor according to a torque command value indicating the output torque of the synchronous motor until the terminal voltage of the synchronous motor reaches a predetermined maximum allowable voltage, and sets the d-axis current command value indicating the d-axis current of the synchronous motor to zero. Further, this control method determines the q-axis current value according to the torque command value when the terminal voltage of the synchronous motor reaches the predetermined maximum allowable voltage, and determines the d-axis current command value based on the rotational speed of the synchronous motor and the torque command value.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
[0005] The purpose of this disclosure is to provide a motor control device and a motor control method that efficiently realize high-speed, high-load operation of each motor in a robot equipped with multiple motors. [Means for solving the problem]
[0006] This disclosure includes: an axis current calculation unit that calculates a q-axis current command value and a d-axis current command value based on a speed command value notified from an external source; a voltage command value calculation unit that calculates a plurality of voltage command values, which are the voltage values to be applied to a plurality of motors, based on the q-axis current command value and the d-axis current command value; a drive circuit that outputs a plurality of drive power to the plurality of motors, based on the plurality of voltage command values; an acceleration command value calculation unit that calculates an acceleration command value based on the speed command value; and a regenerative determination unit that determines whether it is a powering state or a regenerative state based on the speed command value and the acceleration command value. The motor control device includes a current limit value storage unit that stores a first current limit value which is a current limit value for the d-axis current command value in the powering state and a second current limit value which is a current limit value for the d-axis current command value in the regenerative state, and a d-axis current command value limiting unit that outputs a d-axis current command value that is less than or equal to the first current limit value in the powering state and outputs a d-axis current command value that is less than or equal to the second current limit value in the regenerative state, and the regenerative determination unit determines either the powering state or the regenerative state based on the state of the motor with the highest load among the plurality of motors.
[0007] Furthermore, this disclosure provides a motor control method comprising the steps of: calculating a q-axis current command value and a d-axis current command value based on a speed command value notified from an external source; calculating an acceleration command value based on the speed command value; determining whether to be in a powering state or a regenerative state based on the speed command value and the acceleration command value; outputting a d-axis current command value that is less than or equal to a first current limit value, which is a current limit value of the d-axis current command value, in the powering state, and outputting a d-axis current command value that is less than or equal to a second current limit value, which is a current limit value of the d-axis current command value, in the regenerative state; calculating a plurality of voltage command values, which are voltage values to be applied to each of the plurality of motors, based on the q-axis current command value and the d-axis current command value; and outputting a plurality of drive powers to each of the plurality of motors based on the plurality of voltage command values, wherein the determination of whether to be in a powering state or a regenerative state is performed based on the state of the motor with the highest load among the plurality of motors. [Effects of the Invention]
[0008] According to this disclosure, it is possible to efficiently achieve high-speed, high-load operation of each motor in a robot equipped with multiple motors. [Brief explanation of the drawing]
[0009] [Figure 1] Schematic diagram showing an example of the system configuration of the welding robot system according to this embodiment. [Figure 2] Block diagram showing an example configuration for one axis of a robot control system corresponding to one motor. [Figure 3] Block diagram showing a detailed configuration example of a PWM inverter circuit. [Figure 4] Block diagram showing a detailed configuration example of the current vector control unit. [Figure 5] Block diagram showing a detailed configuration example of a single-axis control unit. [Figure 6] A schematic diagram showing the time change of motor speed in the powering and regenerative states. [Figure 7]A diagram showing an example of the time variation of velocity and acceleration commands. [Figure 8] Flowchart showing the operation procedure for determining the current limit value of the d-axis current command value of the robot control device according to this embodiment. [Modes for carrying out the invention]
[0010] (Background leading to this disclosure) Generally, vector control is used to control the current flowing through a permanent magnet synchronous electric motor. This method separates the motor current into a q-axis current that contributes to torque and a d-axis component (d-axis current) perpendicular to the q-axis. The vector control unit, which performs vector control, receives an external command and calculates the command voltage to the motor drive unit that supplies power to the motor. In such vector control, if the value of the external command becomes large, this command voltage may exceed the supplyable voltage of the motor drive unit. This phenomenon is called voltage saturation. Voltage saturation is more likely to occur at higher motor rotation speeds. This is because the induced voltage generated during motor rotation increases proportionally to the rotation speed, and the voltage across the motor terminals also increases to compensate for this increase with the supply voltage. Voltage saturation is also more likely to occur when the load is large or the power supply voltage is low, as the margin of the supply voltage decreases.
[0011] When voltage saturation occurs, the q-axis current cannot be increased during powering, resulting in a decrease in torque or saturation (wind-up) of the integral term in the current controller, leading to deterioration of static or dynamic characteristics. During regenerative operation, the motor load is lighter than during powering, allowing it to be driven with less current. During regenerative operation, energy flows back to the power supply voltage side, causing the voltage value of the electrolytic capacitors in the power supply circuit to be higher than under normal conditions. Since electrolytic capacitors will break if their voltage value exceeds a predetermined tolerance, during regenerative operation, the discharge of power stored in the electrolytic capacitors or the utilization of that energy for other purposes (e.g., power supply to other circuit components, heat dissipation in resistors) is used to prevent the breakdown of the electrolytic capacitors (in other words, the power supply circuit). For this reason, field weakening control is used as a means of suppressing voltage saturation by demagnetizing the magnetic flux from the permanent magnets by flowing a negative d-axis current, thereby suppressing the increase in induced voltage.
[0012] Patent Document 1 describes a configuration in which the q-axis current command value is limited by the d-axis current command value, which is used to limit the voltage command value of the voltage applied to the motor by field weakening control to a value below the maximum voltage that can be applied to the drive circuit. As a result, there was a problem in that it was difficult to operate the motor at high speed and high load.
[0013] Furthermore, in Patent Document 2, when a speed command value is given in which the terminal voltage of a synchronous motor reaches the maximum allowable voltage and the motor's rotational speed exceeds a specified rotational speed, the d-axis current command value for the d-axis current flowing through the synchronous motor is determined based on the rotational speed and the torque command value. Therefore, by setting the d-axis current command value to zero during acceleration until the terminal voltage of the synchronous motor reaches the maximum allowable voltage, the desired output torque can be obtained regardless of the increase in induced voltage. However, during the period from the end of acceleration to constant speed operation and deceleration, the d-axis current command value is calculated to be proportional to the torque command value, which reduces the amount of compensation by flowing the d-axis current, making it difficult to operate the motor at high speed and under high load.
[0014] Therefore, the following embodiments describe examples of motor control devices and motor control methods that efficiently realize high-speed, high-load operation of each motor in a robot equipped with multiple motors.
[0015] Hereinafter, embodiments specifically disclosing the motor control device and motor control method according to this disclosure will be described in detail with reference to the drawings as appropriate. However, unnecessarily detailed explanations may be omitted. For example, detailed explanations of already well-known matters and redundant explanations of substantially identical configurations may be omitted. This is to avoid the following explanation becoming unnecessarily verbose and to facilitate understanding by those skilled in the art. The accompanying drawings and the following explanation are provided to enable those skilled in the art to fully understand this disclosure and are not intended to limit the subject matter described in the claims.
[0016] First, with reference to Figure 1, an example of the configuration of the welding robot system 1000 according to this embodiment will be described. Figure 1 is a schematic diagram showing an example of the system configuration of the welding robot system 1000 according to this embodiment. As shown in Figure 1, the welding robot system 1000 includes a manipulator MC1 and a robot control device 100.
[0017] In Figure 1, the XYZ axes are defined as the axes shown in Figure 1. More specifically, two axes (i.e., the X and Y axes) are defined that are parallel to and perpendicular to the floor surface (horizontal plane) on which the manipulator MC1 is placed, and the Z axis is defined in a direction perpendicular to the XY plane (for example, the height direction of the manipulator MC1). The X axis is defined in the longitudinal direction of the base portion 110, which has a rectangular cross-section, and the Y axis is defined in a direction perpendicular to both the X and Z axes.
[0018] The manipulator MC1 is connected to the robot control device 100 so that data or signals can be sent and received. In this embodiment, the manipulator MC1 is, as an example, an arc welding robot having six articulated axes. Note that the welding performed by the manipulator MC1 is not limited to arc welding. The manipulator MC1 comprises at least a base portion 110, a base portion 120, a first arm 130, a second arm 140, a wrist 150, a torch bracket 160, six motors MT1 (see Figure 2) that control the position and angle of each of these components, and a welding torch TCH1.
[0019] The base portion 110 is fixed to the floor surface. The base portion 120 is attached to the base portion 110 so as to be able to pivot around a pivot axis J1 extending in the vertical direction (Z-axis). The first arm 130 is fixed to the base portion 120 so as to be able to swing around a pivot axis J2 extending in a substantially horizontal direction perpendicular to the pivot axis J1. The second arm 140 is fixed to the first arm 130 so as to be able to swing around a pivot axis J3 extending in a direction parallel to the pivot axis J2. The wristband 150 is attached to the second arm 140 so as to be able to pivot around a pivot axis J4 extending in a direction parallel to the longitudinal direction of the second arm 140. The torch bracket 160 is fixed to the wrist 150 so as to be able to rotate around a pivot axis J5 that extends in a direction perpendicular to the pivot axis J4, and also so as to be able to rotate around a pivot axis J6 that extends in a direction perpendicular to the pivot axis J5. A welding torch TCH1 is provided at the distal end of the torch bracket 160, and a welding wire (not shown) is inserted into the welding torch TCH1 and fed from the tip of the welding torch TCH1. The robot control device 100 positions the welding torch TCH1, which holds the welding wire (not shown), at the welding start position (starting point), and controls the motor MT1 for the base section 110, the motor MT1 for the base section 120, the motor MT1 for the first arm 130, the motor MT1 for the second arm 140, the motor MT1 for the wrist 150, and the motor MT1 for the torch bracket 160 so as to move the welding wire (not shown) extending from the welding torch TCH1 along an arbitrary trajectory (welding line).
[0020] The robot control device 100 is connected to the manipulator MC1 so that data or signals can be sent and received. The robot control device 100 controls the driving of the manipulator MC1 during welding according to the welding teaching program for the manipulator MC1, which is generated based on various information input by the teach pendant (not shown). The welding teaching program for the manipulator MC1 is generated by including information about each welding section to be welded using the welding torch TCH1 (e.g., start point, end point of the welding section, etc.), information such as the position, distance, angle (attitude), and operating speed of the welding torch TCH1 for performing various operations to execute welding (e.g., idle, approach, retract, avoidance, etc.), and information such as welding conditions.
[0021] Furthermore, the robot control device 100, as an example of a motor control device, performs operations to control the driving of multiple motors MT1 (see Figure 2) mounted on the manipulator MC1. Here, the multiple motors MT1 are a motor MT1 for the base portion 110, a motor MT1 for the base portion 120, a motor MT1 for the first arm 130, a motor MT1 for the second arm 140, a motor MT1 for the wrist 150, and a motor MT1 for the torch bracket 160. In this embodiment, the robot control device 100 uses current vector control based on a dq-axis coordinate system consisting of a d-axis corresponding to the magnetic pole position direction of the permanent magnet held by the rotor of the motor MT1, and a q-axis orthogonal to this d-axis, in order to control the rotation of the motors MT1. More specifically, first, in the d-axis, current control is performed based on current vector control that generates a d-axis voltage command with the input being the d-axis current value. On the other hand, in the q-axis, voltage control is performed based on speed control that generates a q-axis voltage command with the input being the rotational speed.
[0022] The detailed configuration of the robot control device 100, which utilizes current vector control, will be described below with reference to the drawings from Figure 2 onward.
[0023] Next, the internal configuration of the robot control device 100 will be described with reference to Figure 2. Figure 2 is a block diagram showing an example of a single-axis configuration of the robot control device 100 corresponding to one motor MT1. In other words, Figure 2 illustrates only the configuration of the robot control device 100-1 corresponding to one axis (i.e., one motor MT1) for controlling each of the six motors MT1 mounted on the manipulator MC1. Therefore, when the robot control device 100 controls each of the six motors MT1 shown in Figure 1, it comprises six configurations of the robot control device 100-1 shown in Figure 2.
[0024] The robot control device 100-1 includes at least a PWM (Pulse Width Modulation) inverter circuit 10, current detection units DT1 and DT2, a current vector control unit 20, a control unit 30, and a rotational speed calculation unit 40. The robot control device 100-1 drives the motor MT1 according to an external speed command and speed FB (Feedback), and therefore uses vector control to separate and control the current of the motor MT1 into a d-axis component which is the rotor magnetic flux direction and a q-axis component which is orthogonal to the d-axis. Note that the motor MT1 and the encoder EN1 that the motor MT1 has are not included in the robot control device 100-1.
[0025] Motor MT1 is a brushless motor, such as a permanent magnet synchronous motor (PMSM), and has a rotor that is rotatable around a shaft and holds permanent magnets (not shown), and a stator that includes three-phase coils with three phase windings wound around a stator core. The rotor is rotatably positioned to face the stator. In motor MT1, AC power with a phase difference of 120 degrees from each other is applied to the windings (coils) of the U-phase, V-phase, and W-phase from the robot control device 100-1, causing the rotor of motor MT1 to rotate around the shaft. Figure 2 shows an example configuration in which motor MT1 is driven by three-phase AC power, namely U-phase, V-phase, and W-phase.
[0026] The encoder EN1 is attached to the motor MT1. The encoder EN1 outputs a signal to the current vector control unit 20 corresponding to the rotational position of the rotor (not shown) of the motor MT1. In this way, the encoder EN1 detects the rotational position of the rotor of the motor MT1 as an electrical angle. Note that if the rotational position or rotational speed of the rotor can be detected by estimation, the encoder EN1 configuration may be omitted. Alternatively, instead of the encoder EN1, a Hall element capable of detecting the rotational position of the motor MT1 may be placed near the rotor. In this case, a signal indicating the position information detected by the Hall element is input as a feedback signal to the control unit 30 and the current vector control unit 20, respectively.
[0027] The PWM inverter circuit 10 performs power conversion processing to convert the DC voltage from the power supply voltage Vdc into AC voltages that are actually applied to each phase (U, V, and W) of the motor MT1, according to the PWM command, which is a three-phase voltage command given to the U, V, and W phases of the motor MT1 from the current vector control unit 20. An example of the configuration of the PWM inverter circuit 10 will be described later with reference to Figure 3.
[0028] The current detection unit DT1 detects the phase current i flowing through the U-phase winding of the motor MT1. u (Armature current) is detected, and the detected phase current i u The current value is input to the current vector control unit 20 as the U-phase current FB (Feedback).
[0029] The current detection unit DT2 detects the phase current i flowing through the V-phase winding of the motor MT1. v (Armature current) is detected, and the detected phase current i v The current value is input to the current vector control unit 20 as the V-phase current FB (Feedback).
[0030] The current vector control unit 20 issues voltage commands to the d-axis, which is the field direction of the motor MT1, and to the q-axis, which is perpendicular to the d-axis (q-axis voltage command v, described later). q * d-axis voltage command v d *Perform a two-phase to three-phase conversion process that converts d * into three-phase voltage commands (PWM commands) applied to the U-phase, V-phase, and W-phase of the motor MT1. Also, the current vector control unit 20 makes the error between the value of the d-axis current command i d * from the control unit 30 and the d-axis current value zero, and generates a d-axis voltage command v q * . Similarly, it makes the error between the value of the q-axis current command i q * from the control unit 30 and the q-axis current value zero, and generates a q-axis voltage command v
[0031] . Further, the current vector control unit 20 performs a process of calculating the d-axis current value and the q-axis current value based on the actual current value of the U-phase detected by the current detection unit DT1, the actual current value of the V-phase detected by the current detection unit DT2, and the electrical angle (in other words, the rotational position of the rotor) detected by the encoder EN1. For the configuration example of the current vector control unit 20, refer to FIG. 4 and it will be described later. q * and generates a q-axis current command i d * and a d-axis current command i d * . In particular, for the d-axis current command i d * , based on the external speed command, the speed FB from the rotational speed calculation unit 40, and the state of the motor MT1 (for example, either the power running state or the regeneration state), it generates a d-axis current command i
[0032] . Although the details will be described later, the state of the motor MT1 is determined based on the state of the motor MT1 corresponding to each axis of the manipulator MC1, which is an arc welding robot having six-axis multi-joints. For the configuration example of the control unit 30, refer to FIG. 5 and it will be described later.The rotational speed calculation unit 40 calculates the rotational speed of the motor MT1 rotor from the amount of change per unit time of the electrical angle (in other words, the rotational position of the rotor) detected by the encoder EN1, and outputs it to the control unit 30 as speed FB (Feedback).
[0033] Next, the internal configuration of the PWM inverter circuit 10 will be described with reference to Figure 3. Figure 3 is a block diagram showing a detailed configuration example of the PWM inverter circuit 10. The PWM inverter circuit 10 includes six switching elements 111, 121, 131, 141, 151, and 161.
[0034] A freewheeling diode 112 is provided in parallel with switching element 111, a freewheeling diode 122 is provided in parallel with switching element 121, a freewheeling diode 132 is provided in parallel with switching element 131, a freewheeling diode 142 is provided in parallel with switching element 141, a freewheeling diode 152 is provided in parallel with switching element 151, and a freewheeling diode 162 is provided in parallel with switching element 161. Each of the switching elements 111 to 161 is, for example, an IGBT (Insulated Gate Bipolar Transistor), but is not limited to IGBTs. In the PWM inverter circuit 10, the interconnection point between the emitter of switching element 111 and the collector of switching element 141 is connected to one of the three phases (e.g., U phase) windings of the motor MT1, the interconnection point between the emitter of switching element 121 and the collector of switching element 151 is connected to one of the three phases (e.g., V phase) windings of the motor MT1, and the interconnection point between the emitter of switching element 131 and the collector of switching element 161 is connected to one of the three phases (e.g., W phase) windings of the motor MT1.
[0035] The PWM inverter circuit 10 is a switching circuit that provides three phases, U-phase, V-phase, and W-phase, by pairing switching elements on the positive and negative sides of the power supply, and outputs AC voltages for each of the U-phase, V-phase, and W-phase. The PWM inverter circuit 10 controls the torque and rotational speed of the motor MT1 by inputting drive signals (i.e., PWM commands) from the current vector control unit 20 to the gates of each of the switching elements 111 to 161 and sequentially turning each of the switching elements 111 to 161 on and off, thereby converting the applied DC power supply (power supply voltage Vdc) into three-phase AC voltages (U-phase output, V-phase output, W-phase output). For example, the current detected from the U-phase output by the current detection unit DT1 (U-phase current FB) is input (feedback) to the current vector control unit 20, and similarly, the current detected from the V-phase output by the current detection unit DT2 (V-phase current FB) is input (feedback) to the current vector control unit 20.
[0036] Next, the internal configuration of the current vector control unit 20 will be described with reference to Figure 4. Figure 4 is a block diagram showing a detailed configuration example of the current vector control unit 20. The current vector control unit 20 includes at least a dq conversion unit 21, a q-axis current control unit 22, a d-axis current control unit 23, and an inverse dq conversion unit 24.
[0037] The dq conversion unit 21 processes the phase current i detected by the current detection units DT1 and DT2. u i v (U-phase current FB, V-phase current FB) and the electrical angle of the rotor (not shown) detected by encoder EN1 are used to determine the d-axis current i, which is the detected current for the d-axis and q-axis. d and q-axis current i q Calculate the q-axis current i. q This is input to the q-axis current control unit 22 as the q-axis current FB. d-axis current i d This is input to the d-axis current control unit 23 as the d-axis current FB.
[0038] The q-axis current control unit 22 receives the q-axis current command i from the control unit 30, which is the target value of the q-axis current. q *The value of the q-axis current i from the dq conversion unit 21 q The q-axis voltage command v should be set so that the error, which is the difference from the above, becomes zero. q * It generates the q-axis current control unit 22, for example, the q-axis current command i q * Value and q-axis current i q A proportional-integral operation is performed on the difference with the value, and the result of this proportional-integral operation is the q-axis voltage command v q * Let's assume that.
[0039] The d-axis current control unit 23 receives the d-axis current command i from the control unit 30, which is the target value of the d-axis current. d * The value of the d-axis current i from the dq conversion unit 21 d The d-axis voltage command v should be set so that the error, which is the difference from the given value, becomes zero. d * It generates the d-axis current control unit 23, for example, the d-axis current command i d * The value of the d-axis current i d A proportional-integral operation is performed on the difference with the value, and the result of this proportional-integral operation is the d-axis voltage command v d * Let's assume that.
[0040] The inverse dq conversion unit 24 receives the q-axis voltage command v from the q-axis current control unit 22. q * and the d-axis voltage command v from the d-axis current control unit 23 d * Based on the electrical angle of the rotor (not shown) detected by the encoder EN1, a voltage command v, which is a PWM command corresponding to the drive voltage applied to each phase of the motor MT1, is generated. u * , v v * , v w * The result is calculated and output to the PWM inverter circuit 10.
[0041] Next, with reference to Figure 5, the internal configuration of the control unit 30 for one axis will be described. Figure 5 is a block diagram showing a detailed configuration example of the control unit 30 for one axis. The control unit 30 includes a PI (Proportional Integral) control unit 31, a q-axis current command limiter 32, an acceleration command calculation unit 33, a regenerative determination unit 34, an all-axis regenerative determination unit 35, a field weakening control unit 36, and a d-axis current command limiter 37.
[0042] The PI control unit 31 performs PI control based on the difference (deviation) between the value of the motor MT1 speed command from an external source and the feedback value of the motor MT1 rotor rotation speed calculated by the rotation speed calculation unit 40. For example, as part of the PI control, the PI control unit 31 performs an addition operation between a proportional term which is a term obtained by multiplying the difference by a constant and an integral term which is a value obtained by multiplying the integrated value of the difference by a constant. By performing this PI control, the PI control unit 31 controls the q-axis current command i q * It generates and outputs to the q-axis current command limiter 32.
[0043] The q-axis current command limiter 32 holds a predetermined q-axis current limit value corresponding to the rotational speed limit value of the motor MT1. The q-axis current command limiter 32 receives the q-axis current command i generated by the PI control unit 31. q * If it is determined that the value exceeds this q-axis current limit, the q-axis current command i q * The value of the q-axis current command i is set to be the q-axis current limit value. q * This generates and outputs to the current vector control unit 20. This q-axis current command i q * This is input to the q-axis current control unit 22 of the current vector control unit 20.
[0044] The acceleration command calculation unit 33 calculates an acceleration command by applying a time derivative to the value of the speed command of the motor MT1 from an external source and outputs it to the regenerative determination unit 34. In addition, to suppress noise components due to the influence of quantization errors of high-frequency components during the time derivative process, the acceleration command calculation unit 33 may be equipped with a filter FL1 for suppression.
[0045] The regenerative determination unit 34 determines the state of motor MT1 based on the acceleration command from the acceleration command calculation unit 33 and the speed command of motor MT1 from an external source, and outputs the determination result as regenerative information to the all-axis regenerative determination unit 35 of the self-axis control unit 30 and the all-axis regenerative determination unit 35 of one or more other-axis control units 30. Specifically, regarding the determination of the state of motor MT1, the regenerative determination unit 34 determines that motor MT1 is in a powered state if it determines that the signs of the acceleration command and speed command are the same for a certain period of time (see Figure 7). On the other hand, the regenerative determination unit 34 determines that motor MT1 is in a regenerative state if it determines that the signs of the acceleration command and speed command are different for a certain period of time (see Figure 7). The signs of the acceleration command and speed command for a certain period of time (see Figure 7) will be described later with reference to Figure 7.
[0046] The all-axis regenerative determination unit 35 uses regenerative information from the regenerative determination unit 34 of the control unit 30 for its own axis and regenerative information from one or more other axis regenerative determination units 34 to determine whether the entire manipulator MC1 is in a regenerative state or a powered state, based on the state of the motor MT1 with the highest load among the multiple motors MT1. For example, if the manipulator MC1 is a 6-axis articulated robot as shown in Figure 1, the all-axis regenerative determination unit 35 acquires regenerative information from a total of 6 axes (i.e., 6) of regenerative determination units 34, applies a predetermined weight to the regenerative information for each axis, and determines that the entire manipulator MC1 is in a regenerative state if the weighted regenerative information (regenerative determination value) is greater than a predetermined threshold. The all-axis regenerative determination unit 35 generates a signal corresponding to the determination result and outputs it to the d-axis current command limiter 37.
[0047] Here, we will briefly explain the regeneration criterion and weighting.
[0048] The regenerative information from the regenerative determination unit 34 corresponding to one axis is either 1 or 0. For example, if the regenerative information is 1, it indicates that the motor is in a regenerative state, and if the regenerative information is 0, it indicates that the motor is in a powered state. The all-axis regenerative determination unit 35 calculates the regenerative determination value according to the following (Equation 1). The weighting coefficients for each axis are predetermined in order, for example, in light of the structure of the manipulator MC1. For example, in the case of the manipulator MC1 shown in Figure 1, the load is applied in the order of 2nd axis > 3rd axis > 1st axis > 4th axis > 5th axis > 6th axis, so the weighting coefficients are (2nd axis weighting coefficient) > (3rd axis weighting coefficient) > (1st axis weighting coefficient) > (4th axis weighting coefficient) > (5th axis weighting coefficient) > (6th axis weighting coefficient). The weighting coefficient corresponding to the motor with the highest load will have the largest value, and the weighting coefficient corresponding to the motor with the lowest load will have the smallest value.
[0049] Regeneration judgment value = (Weighting coefficient for the first axis) × (Regeneration information for the first axis) + (Weighting coefficient for the second axis) × (Regenerative information for the second axis) + (Weighting coefficient for the 3rd axis) × (Regenerative information for the 3rd axis) + (Weighting coefficient for the 4th axis) × (Regenerative information for the 4th axis) + (Weighting coefficient for the 5th axis) × (Regenerative information for the 5th axis) + (Weighting coefficient for the 6th axis) × (Regenerative information for the 6th axis) ... (Equation 1)
[0050] The all-axis regeneration determination unit 35 determines that the entire manipulator MC1 is in a regenerative state if it determines that the regeneration determination value obtained by the above-described formula (Equation 1) is greater than a predetermined threshold. On the other hand, the all-axis regeneration determination unit 35 determines that the entire manipulator MC1 is in a powered state if it determines that the regeneration determination value obtained by the above-described calculation formula is less than or equal to a predetermined threshold.
[0051] The field weakening control unit 36 performs PI control based on the difference (deviation) between the feedback value of the rotational speed of the motor MT1 rotor calculated by the rotational speed calculation unit 40 and a predetermined value held in advance by the field weakening control unit 36. For example, as PI control, the field weakening control unit 36 performs an addition operation between a term obtained by multiplying the difference by a constant as a proportional term and a value obtained by multiplying the integrated value of the difference by a constant as an integral term. By performing this PI control, the field weakening control unit 36 controls the d-axis current command i d * It generates and outputs to the d-axis current command limiter 37.
[0052] The d-axis current command limiter 37 holds the current limit value storage unit M1. The current limit value storage unit M1 is a memory element (for example, a ROM (Read Only Memory)) that holds the regenerative d-axis current limit 371 and the powered d-axis current limit 372. Based on the signal from the all-axis regeneration determination unit 35, the d-axis current command limiter 37 selects the d-axis current limit corresponding to the state of the entire manipulator MX1 (i.e., regenerative state or powered state). The d-axis current command limiter 37 uses the regenerative d-axis current limit 371 or powered d-axis current limit 372 selected based on the signal from the all-axis regeneration determination unit 35, and the d-axis current command i from the field weakening control unit 36. d * This is compared with the d-axis current command limiter 37, which receives the d-axis current command i from the field weakening control unit 36. d * If it is determined that the d-axis current limit 371 during regeneration or the d-axis current limit 372 during powering is exceeded, the d-axis current command i d * The d-axis current command i is limited to the d-axis current limit 371 during regeneration or the d-axis current limit 372 during powering. d * This generates and outputs to the current vector control unit 20. This d-axis current command i d * This is input to the d-axis current control unit 23 of the current vector control unit 20.
[0053] Next, with reference to Figures 6 and 7, the time evolution of the state of motor MT1 (i.e., the powering state or the regenerative state) will be explained. Figure 6 is a schematic diagram of the time evolution of motor speed in the powering state and the regenerative state. Figure 7 is a diagram showing an example of the time evolution of speed command and acceleration command. In the upper graph of Figure 6, the horizontal axis represents time, and the vertical axis represents motor speed (i.e., the rotational speed of motor MT1).
[0054] As shown in Figure 6, while the rotational speed of motor MT1 increases over time, the PWM inverter circuit 10 uses the power supply voltage Vdc and supplies (applies) the U-phase, V-phase, and W-phase AC voltages to motor MT1 based on this power supply voltage Vdc, resulting in a decrease in voltage. Therefore, while the rotational speed of motor MT1 increases over time, motor MT1 is in a powered state.
[0055] On the other hand, while the rotational speed of motor MT1 decreases over time, the voltages converted to DC from the U, V, and W phases of motor MT1 via the PWM inverter circuit 10 are returned to the power supply voltage Vdc side, causing the voltage to increase. Therefore, while the rotational speed of motor MT1 decreases over time, motor MT1 is in a regenerative state.
[0056] In Figure 7, the horizontal axis represents time, one side of the vertical axis (left side of the paper) represents the value of the external velocity command, and the other side of the vertical axis (right side of the paper) represents the value of the acceleration command calculated by the acceleration command calculation unit 33. As shown in Figure 7, the signs of the velocity command characteristic Y1 and the acceleration command characteristic Y2 differ for a certain period of time or longer during period PR1. For example, during period PR1, the acceleration command remains almost stable at a negative steady value, while the velocity command decreases over time from a positive value to zero.
[0057] Similarly, the characteristics Y1 of the velocity command and Y2 of the acceleration command in period PR2 have different signs for a certain period of time or longer. For example, in period PR2, the acceleration command remains almost stable at a positive steady value, while the velocity command decreases over time, from a negative value to zero.
[0058] Thus, the regenerative determination unit 34 determines that a period of time exists in which the signs of the speed command characteristic Y1 and the acceleration command characteristic Y2 differ for a certain period of time or longer, and determines that that period is a regenerative state. In other words, in the example of Figure 7, the regenerative determination unit 34 determines that the state of the motor MT1 is a regenerative state in each of the periods PR1 and PR2.
[0059] Next, with reference to Figure 8, the procedure for determining the current limit value of the d-axis current command value of the robot control device 100 according to this embodiment will be described. Figure 8 is a flowchart showing the operation procedure for determining the current limit value of the d-axis current command value of the robot control device according to this embodiment. The current limit values of the d-axis current command value referred to here are the regenerative d-axis current limit 371 and the motorized d-axis current limit 372. The flowchart shown in Figure 8 is executed by each of the six control units 30, which are provided corresponding to each axis of a 6-axis articulated robot, for example.
[0060] In Figure 8, the control unit 30 for the first axis acquires acceleration commands from the acceleration command calculation unit 33 and speed commands from the external motor MT1 for a certain period of time, and determines the sign of each for that period (step St11). If the control unit 30 for the first axis determines in step St11 that the acceleration command and speed command have the same sign for that period of time (step St11, same sign), it generates information indicating that the state of the motor MT1 for the first axis is in a powering state (i.e., regenerative information = 0) (step St21). On the other hand, if the control unit 30 for the first axis determines in step St11 that the acceleration command and speed command have different signs for that period of time (step St11, different signs), it generates information indicating that the state of the motor MT1 for the first axis is in a regenerative state (i.e., regenerative information = 1) (step St31). Furthermore, the control unit 30 for the first axis selects a predetermined weighting coefficient α1 corresponding to the first axis (step St41).
[0061] Similarly, the control unit 30 for the sixth axis acquires acceleration commands from the acceleration command calculation unit 33 and speed commands from the external motor MT1 for a certain period of time, and determines the sign of each for that period (step St16). If the control unit 30 for the first axis determines in step St16 that the acceleration command and speed command have the same sign for that period of time (step St16, same sign), it generates information indicating that the state of the motor MT1 for the sixth axis is in a powered state (i.e., regenerative information = 0) (step St26). On the other hand, if the control unit 30 for the sixth axis determines in step St16 that the acceleration command and speed command have different signs for that period of time (step St16, different signs), it generates information indicating that the state of the motor MT1 for the sixth axis is in a regenerative state (i.e., regenerative information = 1) (step St36). Furthermore, the control unit 30 for the sixth axis selects a predetermined weighting coefficient α6 corresponding to the sixth axis (step St46).
[0062] The processing from step St5 onward is executed in parallel in each of the control units 30 for the first through sixth axes. For the sake of explanation, the process performed by the control unit 30 for the first axis will be used as an example here, but the control units 30 for the second through sixth axes also perform the processing from step St5 onward in the same manner.
[0063] The control unit 30 of the first axis acquires the weighting coefficient α1 and regenerative information selected by its own axis control unit 30 in step St41, and the weighting coefficient and regenerative information selected by each of the control units 30 of the other axes (i.e., from the second to the sixth axis). The control unit 30 of the first axis calculates a regenerative judgment value by adding the result of the integration of the weighting coefficient α1 and regenerative information selected by its own axis control unit 30 in step St41, and the result of the integration of the weighting coefficient and regenerative information selected by each of the control units 30 of the other axes (i.e., from the second to the sixth axis) (see step St5, (Equation 1)).
[0064] The control unit 30 for the first axis determines that the entire manipulator MC1 is in a regenerative state if it determines that the regenerative determination value calculated in step St5 is greater than a predetermined threshold (step St6, greater than threshold). In this case, the control unit 30 for the first axis selects the regenerative d-axis current limit 371 (step St7). The control unit 30 for the first axis selects the regenerative d-axis current limit 371 and the d-axis current command i from the field weakening control unit 36. d * d-axis current command i according to the comparison result d * It generates and outputs it to the current vector control unit 20.
[0065] On the other hand, the control unit 30 of the first axis determines that the entire manipulator MC1 is in a powered state if it determines that the regenerative judgment value calculated in step St5 is below a predetermined threshold (step St6, below threshold). In this case, the control unit 30 of the first axis selects the powered d-axis current limit 372 (step St8). The control unit 30 of the first axis selects the powered d-axis current limit 372 and the d-axis current command i from the field weakening control unit 36. d * d-axis current command i according to the comparison result d* Generate it and output it to the current vector control unit 20.
[0066] As described above, the robot control device 100 according to the present embodiment includes an axis current calculation unit (for example, the control unit 30) that calculates a q-axis current command value and a d-axis current command value based on a speed command value of the motor MT1 notified from the outside, and based on the q-axis current command value and the d-axis current command value, a voltage command value calculation unit (for example, the q-axis current control unit 22, the d-axis current control unit 23) that calculates a plurality of voltage command values that are values of voltages applied to the plurality of motors MT1 respectively, a drive circuit (for example, the PWM inverter circuit 10) that outputs a plurality of drive powers to the plurality of motors based on the plurality of voltage command values, an acceleration command value calculation unit (for example, the acceleration command calculation unit 33) that calculates an acceleration command value based on the speed command value, a regeneration determination unit 34 that determines either a power running state or a regeneration state based on the speed command value and the speed command value, a first current limit value (for example, the d-axis current limit 372 during power running) that is the current limit value of the d-axis current command value in the power running state, a second current limit value (for example, the d-axis current limit 371 during regeneration) that is the current limit value of the d-axis current command value in the regeneration state, and a current limit value storage unit M1 that stores them, and a d-axis current command value limiter (for example, the d-axis current command limiter 37) that outputs a d-axis current command value that is less than or equal to the first current limit value in the power running state and outputs a d-axis current command value that is less than or equal to the second current limit value in the regeneration state. The regeneration determination unit (for example, the all-axis regeneration determination unit 35) determines either the power running state or the regeneration state based on the state of the motor with the highest load among the plurality of motors.
[0067] Furthermore, the motor control method by the robot control device 100 according to this embodiment includes the steps of: calculating a q-axis current command value and a d-axis current command value based on a speed command value notified from an external source; calculating an acceleration command value based on the speed command value; determining whether it is a powering state or a regenerative state based on the speed command value and the acceleration command value; outputting a d-axis current command value that is less than or equal to a first current limit value (e.g., powering d-axis current limit 372), which is the current limit value of the d-axis current command value, in the powering state, and outputting a d-axis current command value that is less than or equal to a second current limit value (e.g., regenerative d-axis current limit 371), which is the current limit value of the d-axis current command value, in the regenerative state; calculating multiple voltage command values, which are the voltage values to be applied to each of the multiple motors, based on the q-axis current command value and the d-axis current command value; and outputting multiple drive powers to each of the multiple motors based on the multiple voltage command values. The determination of whether it is a powering state or a regenerative state is performed based on the state of the motor with the highest load among the multiple motors MT1.
[0068] To operate motor MT1 at high speed and high load (in other words, high torque), it is necessary to reduce the influence of induced voltage components generated in motor MT1 during high-speed operation. Conventional technology achieves this by ensuring the q-axis current component, which is the motor drive component, by flowing d-axis current (in other words, reactive current). However, when the d-axis current increases, the current flowing through motor MT1 also increases, resulting in the motor MT1 itself overheating. Furthermore, since servo motors such as motor MT1 are equipped with encoder EN1, they are affected by motor heat generation, so it is desirable to suppress heat generation as much as possible. For these reasons, it is necessary to suppress the heat generation of motor MT1 while effectively ensuring the d-axis current component.
[0069] Situations requiring a large d-axis current at high speed and high load (in other words, high torque) occur during powering (i.e., when the rotation direction of motor MT1 and the current direction are the same). In regenerative mode (i.e., when the rotation direction of motor MT1 and the current direction are different), operation is possible without requiring such a large d-axis current. However, in the case of operation with multiple axes (e.g., 6 axes) like the manipulator MC1, the magnitude of the load on motor MT1 differs for each axis, so the required d-axis current component also differs.
[0070] Therefore, according to this embodiment, the robot control device 100 determines whether the motor MT1 corresponding to the axis with the highest load among the multiple motors MT1 is in a powering state or a regenerative state. If it is considered to be in a regenerative state as a manipulator MC1, it limits the d-axis current command value to reduce heat generation of the motor MT1. As a result, in a robot equipped with multiple motors MT1, such as a manipulator MC1, the robot control device 100 can select a current limit value for the d-axis current command value according to the state of powering and regenerative, and can efficiently realize high-speed, high-load operation of each motor in either state.
[0071] Furthermore, the regenerative determination unit (for example, the all-axis regenerative determination unit 35) determines whether the system is in a powered state or a regenerative state based on multiple regenerative determination values corresponding to each of the multiple motors MT1. As a result, the robot control device 100 can accurately determine whether the system is in a powered state or a regenerative state by using regenerative determination values calculated not only for the motor MT1 corresponding to a single axis, but also for each of the multiple motors MT1 mounted on the manipulator MC1.
[0072] Furthermore, the regenerative determination unit (for example, the all-axis regenerative determination unit 35) assigns weights to each of the multiple regenerative determination values and determines whether it is in a powered state or a regenerative state based on the weighted multiple regenerative determination values. As a result, the robot control device 100 can accurately determine whether the manipulator MC1 as a whole is in a powered state or a regenerative state by appropriately assigning weights to each of the multiple motors MT1 mounted on the manipulator MC1, taking into account the effect of the load on each motor MT, such as motors with high loads and motors with low loads, and matching the state to the motor with the highest load.
[0073] Although various embodiments have been described above with reference to the drawings, it goes without saying that this disclosure is not limited to such examples. It is clear to those skilled in the art that various modifications, alterations, substitutions, additions, deletions, and equivalents can be conceived within the scope of the claims, and these are also understood to fall within the technical scope of this disclosure. Furthermore, the components of the various embodiments described above can be combined arbitrarily without departing from the spirit of the invention. [Industrial applicability]
[0074] This disclosure is useful as a motor control device and motor control method for efficiently realizing high-speed, high-load operation of each motor in a robot equipped with multiple motors. [Explanation of symbols]
[0075] 10 PWM Inverter Circuit 20 Current Vector Control Unit 21 dq conversion section 22 q-axis current control unit 23 d-axis current control unit 24 Inverse DQ Transform Unit 30 Control Unit 31 PI Control Unit 32 q-axis current command limiter 33 Acceleration command calculation section 34 Regeneration judgment section 35 All-axis regeneration judgment section 36 Field weakening control unit 37 d-axis current command limiter 40. Rotational speed calculation unit 100 Robot Control Devices 371 Regenerative D-axis Current Limit 372 Powering d-axis current limit 1000 Welding Robot System DT1, DT2 Current detection unit EN1 encoder M1 Current limit value storage unit MC1 Manipulator MT1 Motor
Claims
1. Each axis current calculation unit calculates the q-axis current command value and the d-axis current command value based on the speed command value notified from an external source, A voltage command value calculation unit calculates multiple voltage command values, which are the voltage values to be applied to each of the multiple motors, based on the q-axis current command value and the d-axis current command value. A drive circuit that outputs multiple drive powers to the multiple motors based on the multiple voltage command values, An acceleration command value calculation unit calculates an acceleration command value based on the aforementioned velocity command value, A regenerative determination unit that determines either a powered state or a regenerative state based on the speed command value and the acceleration command value, A current limit value storage unit that stores a first current limit value which is the current limit value of the d-axis current command value in the powering state, and a second current limit value which is the current limit value of the d-axis current command value in the regenerative state, The system includes a d-axis current command value limiting unit that outputs a d-axis current command value that is less than or equal to the first current limit value in the powering state and outputs a d-axis current command value that is less than or equal to the second current limit value in the regenerative state, The regenerative determination unit determines either the powering state or the regenerative state based on the state of the motor with the highest load among the plurality of motors. Motor control device.
2. The regenerative determination unit determines either the powering state or the regenerative state based on a plurality of regenerative determination values corresponding to each of the plurality of motors. The motor control device according to claim 1.
3. The regenerative determination unit assigns weights to each of the plurality of regenerative determination values and determines either the powering state or the regenerative state based on the weighted plurality of regenerative determination values. The motor control device according to claim 2.
4. The steps include: calculating the q-axis current command value and the d-axis current command value based on the speed command value notified from an external source; The steps include: calculating an acceleration command value based on the aforementioned velocity command value; The steps include determining whether the state is powered or regenerative based on the speed command value and the acceleration command value, The steps include outputting a d-axis current command value that is less than or equal to a first current limit value, which is the current limit value of the d-axis current command value, in the powering state, and outputting a d-axis current command value that is less than or equal to a second current limit value, which is the current limit value of the d-axis current command value, in the regenerative state, The steps include: calculating multiple voltage command values, which are the voltage values to be applied to each of the multiple motors, based on the q-axis current command value and the d-axis current command value; The step of outputting a plurality of drive powers to the plurality of motors based on the plurality of voltage command values, The determination of either the powering state or the regenerative state is performed based on the state of the motor with the highest load among the multiple motors. Motor control method.
Citation Information
Patent Citations
Control method and controller for synchronous motor
JP2006158000A
Robot system
JP2012061563A
Control device of electric motor
JP2019134612A
Field-Weakening Control Method and Apparatus for Controlling Torque of 3-Phase Motor
KR1020120055870A
Torque capability optimization under active limiting of regenerative current in synchronous motor drives
US20220109386A1