Servo motor

The servo motor design addresses voltage saturation and torque loss by using virtual voltage command calculations to quickly stabilize d-axis current, enhancing torque and motor performance.

WO2026121246A1PCT designated stage Publication Date: 2026-06-11SHIBAURA MASCH CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SHIBAURA MASCH CO LTD
Filing Date
2025-12-03
Publication Date
2026-06-11

AI Technical Summary

Technical Problem

Existing servo motors face issues with voltage saturation during high acceleration, leading to torque loss due to delayed responsiveness in current control loops, which can destabilize the system if gain is increased to improve responsiveness.

Method used

A servo motor design that includes a converter unit, inverter unit, and current control unit with a d-axis current command generation unit that calculates virtual voltage commands using integral compensation or PI compensation, along with a detection unit for motor speed, to quickly and stably control d-axis current, reducing feedback loop delays and voltage saturation.

Benefits of technology

The design allows for stable torque enhancement by promptly controlling d-axis current, reducing delays and instability, enabling higher motor speeds and output without voltage saturation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025042109_11062026_PF_FP_ABST
    Figure JP2025042109_11062026_PF_FP_ABST
Patent Text Reader

Abstract

[Problem] To provide a servo motor that is capable of stably improving the torque of a motor, the acceleration and deceleration of which are harsh, by quickly and appropriately controlling a d-axis current command. [Solution] A servo motor according to the present embodiment comprises a converter unit that converts AC power to DC power, an inverter unit that generates drive power for the motor from the DC power, and a current control unit that controls the drive power by outputting a control signal which drives the inverter unit, wherein the current control unit comprises: a d-axis current command generation unit that calculates, on the basis of a q-axis current command and a d-axis current command which are used to generate the control signal, a next d-axis current command; a compensation unit that uses the next d-axis current command to generate a q-axis voltage command and a d-axis voltage command; and a voltage conversion unit that converts the q-axis voltage command and the d-axis voltage command to the control signal.
Need to check novelty before this filing date? Find Prior Art

Description

Servo motor

[0001] This embodiment relates to a servo motor.

[0002] A motor is driven by applying a voltage across the motor's wires, which causes current to flow through the armature. Conversely, when a motor rotates, a back electromotive force (EMF) is generated. If the applied voltage is higher than the back EMF, current flows, driving the motor. As the motor's rotational speed increases, the back EMF also increases. Since there is an upper limit to the applied voltage, voltage saturation eventually occurs in the motor's armature, preventing any further current from flowing. This results in the motor losing its torque.

[0003] One method to avoid voltage saturation in the motor armature is to flow a d-axis current through the armature so that the d-axis direction is the field direction, thereby reducing the back electromotive force generated when the motor rotates. This allows more q-axis current, which generates torque, to flow, enabling the motor to rotate at higher speeds and produce greater output.

[0004] Japanese Patent Publication No. 2015-89318, Japanese Patent Publication No. 2020-43631, Japanese Patent Publication No. Hei 8-182397, Japanese Patent Publication No. 2011-66946 (Patent No. 5634693)

[0005] However, due to the responsiveness of the current control, it takes time from the time the d-axis current command is input to the current control loop until the d-axis current actually flows and the voltage saturation is resolved. This responsiveness of the current control loop can lead to a problem where, when the motor acceleration is high, the voltage saturation persists, and the required q-axis current cannot be obtained.

[0006] Another approach to improve the responsiveness of the current control loop is to increase the gain. However, the responsiveness of the current control loop has a lag element. If the lag element of the current control loop is large, increasing the gain will destabilize the control.

[0007] Therefore, this embodiment provides a servo motor that can stably improve the torque of the motor by quickly and appropriately controlling the d-axis current command.

[0008] The servo motor according to this embodiment comprises a converter unit that converts AC power to DC power, an inverter unit that generates motor drive power from DC power, and a current control unit that outputs a control signal to drive the inverter unit and controls the drive power. The current control unit comprises a d-axis current command generation unit that calculates the next d-axis current command based on a q-axis current command and a d-axis current command used to generate the control signal, a compensation unit that generates a q-axis voltage command and a d-axis voltage command using the next d-axis current command, and a voltage conversion unit that converts the q-axis voltage command and the d-axis voltage command into a control signal.

[0009] The d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command and the d-axis current command, and generates the next d-axis current command using the virtual q-axis voltage command and virtual d-axis voltage command by integral compensation or PI (Proportional Integral) compensation.

[0010] The servo motor further includes a detection unit for detecting the motor speed, and the d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command, the d-axis current command, and the motor's electrical angular velocity from the detection unit.

[0011] The d-axis current command generation unit calculates the virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv using the following equations 2 and 3: Vdv = r × Idrd + ω × L × Iqrl (Equation 2) Vqv = r × Iqrl - ω × L × Idrd + Kv × ω (Equation 3) Here, r is the winding resistance of the motor, L is the winding inductance of the motor, Kv is the induced voltage constant of the motor, and ω is the electrical angular velocity of the motor.

[0012] The current control unit further includes a holding unit that holds the d-axis current command output from the d-axis current command generation unit and feeds the d-axis current command back to the d-axis current command generation unit. The d-axis current command generation unit uses the d-axis current command fed back from the holding unit to calculate a virtual q-axis voltage command and a virtual d-axis voltage command.

[0013] The d-axis current command generation unit limits the virtual d-axis voltage command and virtual q-axis voltage command to the first voltage limit value if they are greater than the first voltage limit value, and uses the virtual d-axis voltage command and virtual q-axis voltage command as they are to generate the next d-axis current command if they are less than or equal to the first voltage limit value.

[0014] The current control unit further includes a voltage limit generation unit that calculates a first voltage limit value VlimitA using Equation 6, where Vdc is the DC voltage of the DC power, Vacp is the peak value of the AC voltage of the AC power, and Vlimit is the voltage limit value which is the calculated limit voltage of the AC power.

[0015] Another embodiment of the servo motor includes a converter unit that converts AC power to DC power, an inverter unit that generates motor drive power from DC power, and a current control unit that outputs a control signal to drive the inverter unit and controls the drive power, wherein the current control unit includes a d-axis current command generation unit that calculates the next d-axis current command based on a q-axis current command and a d-axis current command used to generate the control signal, a current conversion unit that converts the current value output from a current detection unit that detects the current flowing through the motor into a q-axis current and a d-axis current, and a q-axis voltage command that takes a first difference between the q-axis current and the q-axis current command as input and sets the first difference to zero The system further includes a q-axis compensation unit that outputs a command, a d-axis compensation unit that receives a second difference between the d-axis current and the next d-axis current command and outputs a d-axis voltage command that makes the second difference zero, a q-axis voltage limit processing unit that limits the q-axis voltage command to a preset q-axis voltage limit value and outputs a q-axis voltage limit command, a d-axis voltage limit processing unit that limits the d-axis voltage command to a preset d-axis voltage limit value and outputs a d-axis voltage limit command, a voltage conversion unit that converts the q-axis voltage limit command and the d-axis current limit command into a three-phase voltage, and a PWM conversion unit that converts the three-phase voltage into a pulse signal.

[0016] The d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command and the d-axis current command, and generates the next d-axis current command by integral compensation or PI compensation using the virtual q-axis voltage command and virtual d-axis voltage command.

[0017] The servo motor further includes a detection unit for detecting the motor speed, and the d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command, the d-axis current command, and the motor's electrical angular velocity from the detection unit.

[0018] The d-axis current command generation unit calculates the virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv using the following equations 2 and 3: Vdv = r × Idrd + ω × L × Iqrl (Equation 2) Vqv = r × Iqrl - ω × L × Idrd + Kv × ω (Equation 3) Here, r is the winding resistance of the motor, L is the winding inductance of the motor, Kv is the induced voltage constant of the motor, and ω is the electrical angular velocity of the motor.

[0019] The current control unit further includes a holding unit that holds the d-axis current command output from the d-axis current command generation unit and feeds the d-axis current command back to the d-axis current command generation unit. The d-axis current command generation unit uses the d-axis current command fed back from the holding unit to calculate a virtual q-axis voltage command and a virtual d-axis voltage command.

[0020] The d-axis current command generation unit limits the virtual d-axis voltage command and virtual q-axis voltage command to the first voltage limit value if they are greater than the first voltage limit value, and uses the virtual d-axis voltage command and virtual q-axis voltage command as they are to generate the next d-axis current command if they are less than or equal to the first voltage limit value.

[0021] If Vdc is the DC voltage of DC power, Vacp is the peak value of the AC voltage of AC power, and Vlimit is the voltage limit value which is the calculated limit voltage of AC power, then the system further includes a voltage limit generation unit that calculates a first voltage limit value VlimitA using Equation 6: VlimitA = Vlimit × Vdc ÷ Vacp (Equation 6)

[0022] A block diagram showing an example of the configuration of a servo motor according to the first embodiment. A flowchart showing the function of the limit processing unit. A flowchart showing the function of the PI compensation unit. A flowchart showing the function of the d-axis current command generation unit. A flowchart showing the function of the d-axis current command generation unit. A flowchart showing the function of the d-axis current command generation unit. A diagram showing the voltage limit value generation unit used in the d-axis current command generation unit. A graph showing the motor detection position, electrical angular velocity, q-axis current, and d-axis current. A graph showing the motor detection position, electrical angular velocity, q-axis current, and d-axis current.

[0023] Embodiments of the present invention will be described below with reference to the drawings. These embodiments are not limiting to the present invention. The drawings are schematic or conceptual, and the proportions of each part may not necessarily be the same as those of actual objects. In the specification and drawings, elements similar to those described above with respect to previously shown drawings are denoted by the same reference numerals, and detailed explanations are omitted as appropriate.

[0024] (First Embodiment) Figure 1 is a block diagram showing an example of the configuration of a servo motor according to the first embodiment. The power supply is an AC power supply. The converter unit 1 rectifies and smooths the AC power from the power supply and converts it into DC power. The inverter unit 2 receives the DC power from the converter unit 1 and switches the DC power based on a control signal from the current control unit 3 to generate three-phase AC power as the driving power for the motor 5. The three-phase AC power from the inverter unit 2 is supplied to the motor 5 and drives the motor 5. An arbitrary load is connected to the motor 5. The position detector 6 is attached to the motor 5 and detects the rotational position of the rotor of the motor 5. The position information from the position detector 6 is output to the position detection unit 309 of the current control unit 3 and converted into the electrical angular velocity ω of the motor 5, etc.

[0025] The current control unit 3 includes a limit processing unit 301, PI compensation units 302a and 302b, Vq limit processing unit 303a and Vd limit processing unit 303b, a voltage conversion unit 304, a PWM control unit 305, a d-axis current command generation unit 306, a current detection unit 307, a current conversion unit 308, a position detection unit 309, and a holding unit 310. The current control unit 3 outputs a control signal to drive the inverter unit 2 and controls the drive power of the motor 5.

[0026] Figure 2 is a flowchart showing the function of the limit processing unit 301. The limit processing unit 301 receives a q-axis current command Iqr from an external source and a d-axis current command Idr from the d-axis current command generation unit 306. The limit processing unit 301 calculates the maximum value Imax of the combined current of the q-axis current and the d-axis current, and uses the maximum value Imax of the combined current and the d-axis current command Idr to calculate the q-axis current limit value Iqlimit (S201). The q-axis current limit value Iqlimit is calculated by Equation 1.

[0027] Iqlimit=(Imax 2 - Idr 2 ) 1/2 (Equation 1) The limit processing unit 301 limits the q-axis current command Iqr by the q-axis current limit value Iqlimit and outputs it as a q-axis current limit command Iqrl. If the q-axis current command Iqr is 0 or greater and greater than the q-axis current limit value Iqlimit (Yes in S202, Yes in S203), the limit processing unit 301 limits the q-axis current command Iqr to the q-axis current limit value Iqlimit and outputs it as a q-axis current limit command Iqrl. That is, the limit processing unit 301 outputs the q-axis current limit value Iqlimit as a q-axis current limit command Iqrl. At this time, the limit processing unit 301 activates by raising the limit flag to ON (S205).

[0028] If the q-axis current command Iqr is 0 or greater and less than or equal to the q-axis current limit value Iqlimit (Yes in S202, No in S203), the limit processing unit 301 outputs the q-axis current command Iqr as the q-axis current limit command Iqrl. At this time, the limit processing unit 301 turns down the limit flag to OFF to deactivate it (S206).

[0029] The limit processing unit 301 outputs the q-axis current command Iqr as a q-axis current limit command Iqrl if the q-axis current command Iqr is less than 0 and is greater than or equal to the negative q-axis current limit value -Iqlimit (No. in S202, No. in S204). At this time, the limit processing unit 301 turns down the limit flag to OFF to deactivate it (S206).

[0030] The limit processing unit 301 limits the q-axis current command Iqr to the negative q-axis current limit value -Iqlimit and outputs it as a q-axis current limit command Iqrl if the q-axis current command Iqr is less than 0 and less than the negative q-axis current limit value -Iqlimit (No in S202, Yes in S204). That is, the limit processing unit 301 outputs the negative q-axis current limit value -Iqlimit as a q-axis current limit command Iqrl. At this time, the limit processing unit 301 activates by raising the limit flag to ON (S207).

[0031] In other words, if the absolute value of the q-axis current command Iqr is greater than the absolute value of the q-axis current limit value Iqlimit, the limit processing unit 301 outputs the q-axis current limit value ± Iqlimit as the q-axis current limit command Iqrl. At this time, the limit processing unit 301 activates by turning on the limit flag. On the other hand, if the absolute value of the q-axis current command Iqr is less than or equal to the absolute value of the q-axis current limit value Iqlimit, the limit processing unit 301 outputs the q-axis current command Iqr as is as the q-axis current limit command Iqrl. At this time, the limit processing unit 301 deactivates by turning off the limit flag.

[0032] The limit flag output from the limit processing unit 301 is a flag that informs the higher-level control unit, which performs speed control, etc., that the q-axis current limit command Iqrl has been limited by the q-axis current limit value Iqlimit, and only one bit of data is required. The limit flag is used to prevent overshoot of the motor 5's speed, etc.

[0033] The q-axis current limit command Iqrl from the limit processing unit 301 is output to the PI compensation unit 302a and the d-axis current command generation unit 306.

[0034] Figure 3 is a flowchart showing the functions of the PI compensation units 302a and 302b. The PI compensation unit 302a receives the difference (Iqrl - Iq) between the q-axis current limiting command Iqrl and the actual q-axis current Iq. The q-axis current Iq is the value of the q-axis current actually flowing through the motor 5, and is obtained by measuring it with the current detection unit 307 and converting it from three-phase current to two-phase current with the current conversion unit 308. The PI compensation unit 302a calculates the difference (Iqrl - Iq) between the q-axis current limiting command Iqrl and the q-axis current Iq, and outputs a q-axis voltage command Vq that makes the difference (Iqrl - Iq) zero. For example, the PI compensation unit 302a calculates the voltage command Vq by multiplying the difference (Iqrl - Iq) by a proportional gain Ki, passing it through a low-pass filter (ωp / s), multiplying the result by an integral constant ωd, integrating the result, and then adding the results together.

[0035] The Vqlimit processing unit 303a limits the q-axis voltage command Vq from the PI compensation unit 302a to a predetermined q-axis voltage limit value VqLimit. The q-axis voltage limit value VqLimit is a predetermined limit voltage value of the q-axis voltage determined by the components used in the servo motor. For example, the q-axis voltage limit value VqLimit may be set to half of the power supply voltage. In this case, the q-axis voltage limit value VqLimit can be increased to half of the power supply voltage × 1.15 by using a method that increases the line voltage by moving the neutral point and thus increasing the torque. If the voltage command Vq is greater than the q-axis voltage limit value VqLimit, the Vqlimit processing unit 303a clamps the q-axis voltage command Vq to the q-axis voltage limit value VqLimit. In this case, the Vqlimit processing unit 303a outputs the q-axis voltage command Vq, which has been clamped to the q-axis voltage limit value Vqlimit, to the voltage conversion unit 304 as a q-axis voltage limit command Vql.

[0036] Next, the d-axis command will be explained. The d-axis current command generation unit 306 generates a d-axis current command Idr and outputs it to the limit processing unit 301 and the PI compensation unit 302b. When a d-axis current command Idr is generated, the holding unit 310 holds its value and feeds it back to the d-axis current command generation unit 306 as the previous d-axis current command Idrrd. The holding unit 310 can be any memory capable of holding the d-axis current command Idrrd. The d-axis current command Idr is held in the holding unit 310 and fed back to the d-axis current command generation unit 306 until the next d-axis current command Idr is generated. As a result, the d-axis current command generation unit 306 calculates and outputs the next d-axis current command Idr based on the current q-axis current limit command Iqrl, the previous d-axis current command Idrrd, and the electrical angular velocity ω. The current q-axis current limit command Iqrl is the q-axis current command Iqrl currently output from the limit processing unit 301. The previous (past) d-axis current command Idrd is the past d-axis current command Idr obtained in the previous sampling.

[0037] When the next d-axis current command Idr is output, the holding unit 310 holds the d-axis current command Idr and feeds it back to the d-axis current command generation unit 306 as the d-axis current command Idrrd. The functions of the d-axis current command generation unit 306 will be described later.

[0038] As described above, the d-axis current command Idr is used in the limit processing unit 301 to calculate the q-axis current limit value Iqlimit, for example, by formula 1.

[0039] Also, the PI compensation unit 302b receives the difference (Idr - Id) between the d-axis current command Idr and the actual d-axis current Id. The d-axis current Id is the value of the d-axis current actually flowing through the motor 5, which is measured by the current detection unit 307 and obtained as a d-axis current value after being converted from three-phase current to two-phase current by the current conversion unit 308. The PI compensation unit 302b calculates the difference (Idr - Id) between the d-axis current command Idr and the d-axis current Id, and outputs a d-axis voltage command Vd that makes the difference (Idr - Id) zero. For example, the PI compensation unit 302b multiplies the difference (Idr - Id) by the proportional gain Ki, adds the result of passing through a low-pass filter (ωp / s) and multiplying by the integral constant ωd of integration, and calculates the voltage command Vd.

[0040] The Vdlimit processing unit 303b limits the d-axis voltage command Vd from the PI compensation unit 302b to a predetermined d-axis voltage limit value Vdlimit. The d-axis voltage limit value Vdlimit is the limit voltage value of the d-axis voltage predefined by the components used in the servo motor. For example, the d-axis voltage limit value Vdlimit may be set to 1 / 2 of the power supply voltage. When the d-axis voltage command Vd is greater than the d-axis voltage limit value Vdlimit, the Vdlimit processing unit 303b clamps the d-axis voltage command Vd to the d-axis voltage limit value Vdlimit. In this case, the Vdlimit processing unit 303b outputs the voltage command Vd clamped to the d-axis voltage limit value Vdlimit to the voltage conversion unit 304 as the d-axis voltage limit command Vdl.

[0041] The voltage conversion unit 304 receives the two-phase q-axis voltage limit command Vql and d-axis voltage limit command Vdl output from the Vqlimit processing unit 303a and the Vdlimit processing unit 303b. The voltage conversion unit 304 converts the two-phase voltage commands Vql and Vdl into a three-phase voltage command (control signal) for actually driving the motor.

[0042] The PWM control unit 305 switches the inverter unit 2 based on the three-phase voltage command and converts the three-phase voltage into a pulse signal. The inverter unit 2 supplies three-phase AC power to the motor 5 under the control of the PWM control unit 305. The motor 5 is driven by receiving the three-phase AC power from the inverter unit 2.

[0043] The current detector 4 detects the actual current supplied to the motor 5. The current detection unit 307 converts the signal from the current detector 4 into data (for example, each current value of the three-phase alternating current Iu, Iv, Iw) that can be processed by the current control unit 3. The current detection unit 307 may detect each of the three-phase alternating currents Iu, Iv, Iw. Alternatively, the current detection unit 307 may calculate the remaining third-phase current from the two-phase currents.

[0044] The current conversion unit 308 converts the three-phase alternating currents Iu, Iv, Iw from the current detection unit 307 into two-phase currents Iq and Id. The q-axis current Iq and the d-axis current Id are respectively the measured values of the actual current supplied to the motor 5. The q-axis current Iq is fed back to calculate the difference (Iqr1 - Iq) from the q-axis current limit command Iqr1. The d-axis current Id is fed back to calculate the difference (Idr - Id) from the d-axis current command Idr. Through such feedback control, the current control unit 3 controls the motor 5 via the inverter unit 2.

[0045] Incidentally, the current control unit 3 may be composed of one or more CPUs (Central Processing Unit) and / or one or more PLCs (Programable Logic Controller), etc.

[0046] Next, the function of the d-axis current command generation unit 306 will be described.

[0047] FIGS. 4 to 6 are flowcharts showing the function of the d-axis current command generation unit 306. Incidentally, the d-axis current command generation unit 306 may be composed of, for example, one or more CPUs and software, or may be composed of a PLC.

[0048] The d-axis current command generation unit 306 receives a q-axis current limit command Iqrl from the limit processing unit 301 and an electrical angular velocity ω from the position detection unit 309. The d-axis current command generation unit 306 also receives the previously calculated d-axis current command Idrd from the holding unit 310. Based on the q-axis current limit command Iqrl, the previous d-axis current command Idrd, and the electrical angular velocity ω, the d-axis current command generation unit 306 calculates a virtual d-axis voltage command (hereinafter referred to as the virtual d-axis voltage command) Vdv and a q-axis voltage command (hereinafter referred to as the virtual q-axis voltage command) Vqv. The calculation of the virtual d-axis voltage command Vdv and the virtual q-axis voltage command Vqv is performed using the q-axis current limit command Iqrl, the d-axis current command Idrd, and the electrical angular velocity ω according to the following equations 2 and 3 (S10).

[0049] Vdv = r × Idrd + ω × L × Iqrl (Equation 2) Vqv = r × Iqrl - ω × L × Idrd + Kv × ω (Equation 3) Here, r is the winding resistance of motor 5. L is the winding inductance of motor 5. Kv is the induced voltage constant of motor 5. r, L, and Kv are eigenvalues ​​of motor 5 and are known constants. These constants can be stored in advance in memory (not shown) within the current control unit 3.

[0050] Unlike the actual q-axis voltage command Vql and d-axis voltage command Vdl output from the Vqlimit processing unit 303a and Vdlimit processing unit 303b, the virtual q-axis voltage command Vqv and virtual d-axis voltage command Vdv do not require actual measurement and are calculated using current commands Iqrl and Idrd. The current commands Iqrl and Idrd are command values ​​and, unlike the current values ​​Iq and Id supplied to the motor 5 and measured, can be acquired with almost no delay. Therefore, the d-axis current command generation unit 306 according to this embodiment can acquire the virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv in a short time.

[0051] On the other hand, the q-axis voltage command Vql and the d-axis voltage command Vdl are obtained by feeding back the q-axis current Iq and d-axis current Id obtained by actual measurement. Therefore, if the d-axis current command generation unit 306 receives the q-axis voltage command Vql and the d-axis voltage command Vdl from the Vq limit processing unit 303a and the Vd limit processing unit 303b, a delay occurs due to the feedback loop of the q-axis current Iq and d-axis current Id, and it takes a relatively long time to generate the d-axis current command Idr. In this case, as described above, when the acceleration of the motor 5 is large, the appropriate d-axis current Id cannot be obtained in a timely manner, and the necessary q-axis current Iq cannot be obtained in a timely manner.

[0052] For example, by generating a d-axis current command, a d-axis current Id can be supplied to the motor 5, thereby avoiding voltage saturation and supplying the necessary q-axis current Iq, and increasing the torque of the motor 5. However, if the acceleration of the motor 5 is large and the feedback loop delay between the q-axis current Iq and the d-axis current Id is large, a delay time occurs before the appropriate d-axis current Id is supplied, and the supply of d-axis current Id cannot keep up. In this case, the voltage saturation state will persist for a long period of time, and it will become impossible to increase the q-axis current and the torque of the motor 5 any further. In other words, it becomes difficult to avoid voltage saturation in a timely manner and to increase the torque of the motor 5 when needed.

[0053] Furthermore, even if the gains of the PI compensation units 302a and 302b are increased, the current control may become unstable due to the delay in the feedback loop.

[0054] In contrast, the d-axis current command generation unit 306 in this embodiment calculates the virtual d-axis voltage command Vdv and the virtual q-axis voltage command Vqv by calculation using current commands Iqrl and Idrd with almost no delay. In other words, in this embodiment, it can be said that the d-axis current command generation unit 306 calculates the virtual d-axis voltage command Vdv and the virtual q-axis voltage command Vqv without delay through simulation. As a result, the d-axis current command generation unit 306 can obtain the virtual d-axis voltage command Vdv and the virtual q-axis voltage command Vqv in a short time without the delay of the feedback loop. As a result, the appropriate d-axis current command Idr can be obtained in a timely manner, and the necessary q-axis current Iq can be obtained in a timely manner. As a result, the torque of the motor 5 can be increased when needed.

[0055] Furthermore, even if the gains of the PI compensation units 302a and 302b are increased, the current control is less likely to become unstable.

[0056] In step S10 of Figure 4, the virtually calculated virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv are calculated as follows and output as the d-axis voltage limit command Vdvl and q-axis voltage limit command Vqvl, respectively.

[0057] For example, the d-axis current command generation unit 306 compares the virtual d-axis voltage command Vdv with the voltage limit value VlimitA (S20). The voltage limit value VlimitA is a voltage limit value that reflects the DC voltage from the converter unit 1, and will be explained later with reference to Figure 7. If the virtual d-axis voltage command Vdv is greater than the voltage limit value VlimitA (Yes in S20), the d-axis current command generation unit 306 limits the virtual d-axis voltage command Vdv to the voltage limit value VlimitA and outputs the voltage limit value VlimitA as the d-axis voltage limit command Vdvl (S30). On the other hand, if the virtual d-axis voltage command Vdv is less than or equal to the voltage limit value VlimitA (No in S20), the d-axis current command generation unit 306 outputs the virtual d-axis voltage command Vdv as is as the d-axis voltage limit command Vdvl (S40).

[0058] Also, the d-axis current command generation unit 306 compares the virtual q-axis voltage command Vqv with the voltage limit value VlimitA (S50). When the virtual q-axis voltage command Vqv is greater than the voltage limit value VlimitA (Yes in S50), the d-axis current command generation unit 306 limits the q-axis voltage command Vqv to the voltage limit value VlimitA and outputs the voltage limit value VlimitA as the q-axis voltage limit command Vqvl (S60). On the other hand, when the virtual q-axis voltage command Vqv is less than or equal to the voltage limit value VlimitA (No in S50), the d-axis current command generation unit 306 outputs the virtual q-axis voltage command Vqv as the q-axis voltage limit command Vqvl as it is (S70).

[0059] In FIG. 5, the d-axis current command Idr is generated using the q-axis voltage limit command Vqvl and the d-axis voltage limit command Vdl obtained in the process of FIG. 4.

[0060] For example, when the q-axis voltage limit command Vqvl is 0 or more and the electrical angular velocity ω is less than 0 (Yes in S401, Yes in S402), the d-axis current command generation unit 306 obtains the difference VdVqerr using Equation 4 (S404).

[0061] VdVqerr = Vdl 2 - Vql 2 - VlimitA 2 (Equation 4) When the q-axis voltage limit command Vqvl is less than 0 and the electrical angular velocity ω is 0 or more (No in S401, Yes in S403), the d-axis current command generation unit 306 also obtains the difference VdVqerr using Equation 4 (S404).

[0062] When the q-axis voltage limit command Vqvl is 0 or more and the electrical angular velocity ω is 0 or more (Yes in S401, No in S402), the d-axis current command generation unit 306 obtains the difference VdVqerr using Equation 5 (S405).

[0063] VdVqerr = Vdl 2 + Vql 2 - VlimitA 2 (Equation 5) When the q-axis voltage limit command Vqvl is less than 0 and the electrical angular velocity ω is less than 0 (No in S401, No in S403), the d-axis current command generation unit 306 also obtains the difference VdVqerr using Equation 5 (S405).

[0064] Next, the d-axis current command generation unit 306 performs the calculation shown in Figure 6 (S406). The d-axis current command generation unit 306 integrally compensates or PI compensates the difference VdVqerr with an integrator of integration constant ωi to generate the d-axis current command Idri. s is the Laplace operator. The switch SW is connected in parallel to the integrator and is in the off state when integral compensation is performed, and in the on state when PI (Proportional Integral) compensation is performed. Switching the SW on / off can be done by switching parameters based on controllability, or by switching in real time using a program.

[0065] Next, as shown in Figure 5, if the d-axis current command Idri is less than 0 (Yes in S407), the d-axis current command generation unit 306 sets the d-axis current command Idr to 0 (S408).

[0066] If the d-axis current command Idri is greater than or equal to 0 and greater than the maximum d-axis current Idmax (No in S407, Yes in S409), the d-axis current command generation unit 306 sets the d-axis current command Idr to the maximum d-axis current Idmax (S410). The maximum d-axis current Idmax is the maximum value of the d-axis current determined in advance based on the characteristics of the motor 5, and is an intrinsic value of the motor 5. The maximum d-axis current Idmax is usually the same as the maximum value Imax of the combined current, but it may differ depending on the motor.

[0067] If the d-axis current command Idri is 0 or greater and less than or equal to the maximum d-axis current Idmax (No. in S407, No. in S409), the d-axis current command generation unit 306 changes the d-axis current command Idr to the d-axis current command Idri (S411).

[0068] As shown in Figure 1, the d-axis current command generation unit 306 outputs the generated d-axis current command Idr to the limit processing unit 301 and the PI compensation unit 302b. This allows the current control unit 3 to control the inverter unit 2 to supply the d-axis current Id to the motor 5 based on the d-axis current command Idr. The d-axis current command Idr is also held in the holding unit 310 and fed back to the d-axis current command generation unit 306 as a current command Idrrd.

[0069] In this manner, the d-axis current command generation unit 306 calculates a virtual d-axis voltage command Vdv and a virtual q-axis voltage command Vqv using the d-axis current command Idrd, the q-axis current command Iqrl, and the electrical angular velocity ω, and further calculates the d-axis current command Idr using the virtual d-axis voltage command Vdv and the virtual q-axis voltage command Vqv.

[0070] Unlike the actual q-axis voltage command Vql and d-axis voltage command Vdl output from the Vqlimit processing unit 303a and Vdlimit processing unit 303b, the virtual q-axis voltage command Vqv and virtual d-axis voltage command Vdv do not require actual measurement and are calculated using current commands Iqrl and Idrd. The current commands Iqrl and Idrd are command values ​​and, unlike the current values ​​Iq and Id supplied to the motor 5 and measured, can be acquired with almost no delay. Therefore, the d-axis current command generation unit 306 according to this embodiment can acquire the virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv in a short time. As a result, the d-axis current command generation unit 306 can calculate the virtual d-axis voltage command Vdv and virtual q-axis voltage command Vqv in a short time without feedback loop delay. As a result, an appropriate d-axis current command Idr can be obtained with no delay, and the required q-axis current Iq can be obtained with almost no delay. Therefore, the torque of motor 5 can be increased appropriately with virtually no delay.

[0071] Furthermore, since the delay in the current control loop is reduced, the current control is less likely to become unstable even when the integration constant ωi in Figure 6 is increased. Therefore, according to this embodiment, the range of increase in the gain ωi / s can be increased.

[0072] Figure 7 shows the voltage limit value VlimitA generation unit (hereinafter referred to as the VlimitA generation unit) 311 used in the d-axis current command generation unit 306. The VlimitA generation unit 311 may be provided within the d-axis current command generation unit 306.

[0073] In this embodiment, the d-axis current command generation unit 306 calculates the d-axis current command Idr using the virtual q-axis voltage command Vqv and the virtual d-axis voltage command Vdv. Therefore, if the voltage limit value differs from the actual DC voltage, the d-axis current command generation unit 306 may not be able to calculate an appropriate d-axis current command Idr in the voltage saturation state.

[0074] Therefore, in this embodiment, the voltage limit value used is VlimitA, which is calculated according to the measured DC voltage. The calculated voltage limit value Vlimit when the AC power supply voltage Vac is input is calculated as a constant × Vac. For example, if the AC power supply voltage Vac is 200V, the calculated upper limit voltage limit value Vlimit is 2 1/2 It is possible to set it to approximately 280V by multiplying by 200. However, in this embodiment, VlimitA calculated according to the measured DC voltage Vdc is used. The voltage limit value VlimitA can be calculated as shown in Equation 6. Note that Vacp is the peak voltage of the AC power supply voltage. For example, if Vac is 200V, Vacp can be 280V. If Vac is 100V, Vacp can be 140V.

[0075] VlimitA = Vlimit × Vdc ÷ Vacp (Equation 6) The voltage limit value VlimitA can be corrected by the ratio of the DC voltage Vdc to the peak voltage Vac after rectification of the AC power supply. Since VlimitA obtained from Equation 6 is calculated based on the measured DC voltage Vdc, it is a more appropriate voltage limit value than Vlimit.

[0076] As shown in Figures 4 and 5, the voltage limit value VlimitA is used in the calculation of the d-axis current command Idr in the d-axis current command generation unit 306.

[0077] Figures 8 and 9 are graphs showing the detection position, electrical angular velocity ω, q-axis current Iq, and d-axis current Id of the motor 5. The horizontal axis represents time. The vertical axis shows the values ​​of the detection position P, electrical angular velocity ω, q-axis current Iq, and d-axis current Id.

[0078] Figure 8 shows the results of a comparative example in which the d-axis current command Idr was calculated using the voltage commands Vdl and Vql obtained in the feedback loop. Figure 9 shows the results of an embodiment in which the d-axis current command Idr was calculated using the virtual q-axis voltage command Vqv and the virtual d-axis voltage command Vdv.

[0079] In the comparative example in Figure 8, it can be seen that the d-axis current Id oscillates significantly during the periods when the electrical angular velocity ω changes rapidly (periods when the angular acceleration of motor 5 is large), t1-t2 and t3-t4, indicating unstable control.

[0080] In contrast, according to this embodiment shown in Figure 9, even during periods when the electrical angular velocity ω is changing rapidly (periods when the angular acceleration of the motor 5 is large), the d-axis current Id is controlled stably with almost no vibration. This demonstrates that this embodiment can smoothly control the electrical angular velocity ω of the motor 5.

[0081] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims and their equivalents.

[0082] 1 Converter unit, 2 Inverter unit, 3 Current control unit, 5 Motor, 4 Current detector, 301 Limit processing unit, 302a, 302b PI compensation unit, 303a, 303b Vq limit processing unit, 304 Voltage conversion unit, 305 PWM control unit, 306 d-axis current command generation unit, 307 Current detection unit, 308 Current conversion unit, 309 Position detection unit, 310 Holding unit

Claims

1. A servo motor comprising: a converter unit for converting AC power to DC power; an inverter unit for generating motor drive power from the DC power; and a current control unit for outputting a control signal to drive the inverter unit and controlling the drive power, wherein the current control unit comprises: a d-axis current command generation unit for calculating the next d-axis current command based on a q-axis current command and a d-axis current command used to generate the control signal; a compensation unit for generating a q-axis voltage command and a d-axis voltage command using the next d-axis current command; and a voltage conversion unit for converting the q-axis voltage command and the d-axis voltage command into the control signal.

2. The servo motor according to claim 1, wherein the d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command and the d-axis current command, and generates the next d-axis current command by integral compensation or PI (Proportional Integral) compensation using the virtual q-axis voltage command and the virtual d-axis voltage command.

3. The servo motor further comprises a detection unit for detecting the speed of the motor, and the d-axis current command generation unit calculates the virtual q-axis voltage command and the virtual d-axis voltage command using the q-axis current command, the d-axis current command and the electrical angular velocity of the motor from the detection unit, according to claim 2.

4. The d-axis current command generation unit calculates a virtual d-axis voltage command Vdv and a virtual q-axis voltage command Vqv using the following equations 2 and 3: Vdv = r × Idrd + ω × L × Iqrl (Equation 2) Vqv = r × Iqrl - ω × L × Idrd + Kv × ω (Equation 3) where r is the winding resistance of the motor, L is the winding inductance of the motor, Kv is the induced voltage constant of the motor, and ω is the electrical angular velocity of the motor, the servo motor according to claim 3.

5. The servo motor according to claim 2, wherein the current control unit further comprises a holding unit that holds the d-axis current command output from the d-axis current command generation unit and feeds the d-axis current command back to the d-axis current command generation unit, and the d-axis current command generation unit calculates the virtual q-axis voltage command and the virtual d-axis voltage command using the d-axis current command fed back from the holding unit.

6. The servo motor according to claim 2, wherein the d-axis current command generation unit limits the virtual d-axis voltage command and the virtual q-axis voltage command to the first voltage limit value if the virtual d-axis voltage command and the virtual q-axis voltage command are greater than the first voltage limit value, and uses the virtual d-axis voltage command and the virtual q-axis voltage command as they are to generate the next d-axis current command if the virtual d-axis voltage command and the virtual q-axis voltage command are less than or equal to the first voltage limit value.

7. The servo motor according to claim 6, further comprising a voltage limit generation unit that calculates the first voltage limit value VlimitA using equation 6, where Vdc is the DC voltage of the DC power, Vacp is the peak value of the AC voltage of the AC power, and Vlimit is the voltage limit value which is the calculated limit voltage of the AC power: VlimitA = Vlimit × Vdc ÷ Vacp (Equation 6) 8. A servo motor comprising: a converter unit for converting AC power to DC power; an inverter unit for generating motor drive power from the DC power; and a current control unit for outputting a control signal to drive the inverter unit and controlling the drive power, wherein the current control unit comprises: a d-axis current command generation unit for calculating the next d-axis current command based on a q-axis current command and a d-axis current command used to generate the control signal; a current conversion unit for converting a current value output from a current detection unit for detecting the current flowing through the motor into a q-axis current and a d-axis current; a q-axis compensation unit that inputs a first difference between the q-axis current and the q-axis current command and outputs a q-axis voltage command that makes the first difference zero; a d-axis compensation unit that inputs a second difference between the d-axis current and the next d-axis current command and outputs a d-axis voltage command that makes the second difference zero; and a q-axis voltage limit processing unit that limits the q-axis voltage command to a preset q-axis voltage limit value and outputs a q-axis voltage limit command. A servo motor further comprising: a d-axis voltage limit processing unit that limits the d-axis voltage command to a preset d-axis voltage limit value and outputs a d-axis voltage limit command; a voltage conversion unit that converts the q-axis voltage limit command and the d-axis voltage limit command into a three-phase voltage; and a PWM conversion unit that converts the three-phase voltage into a pulse signal.

9. The servo motor according to claim 8, wherein the d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the q-axis current command and the d-axis current command, and generates the next d-axis current command by integral compensation or PI compensation using the virtual q-axis voltage command and the virtual d-axis voltage command.

10. The servo motor according to claim 9, further comprising a detection unit for detecting the speed of the motor, wherein the d-axis current command generation unit calculates the virtual q-axis voltage command and the virtual d-axis voltage command using the q-axis current command, the d-axis current command and the electrical angular velocity of the motor from the detection unit.

11. The d-axis current command generation unit calculates a virtual d-axis voltage command Vdv and a virtual q-axis voltage command Vqv using the following equations 2 and 3: Vdv = r × Idrd + ω × L × Iqrl (Equation 2) Vqv = r × Iqrl - ω × L × Idrd + Kv × ω (Equation 3) where r is the winding resistance of the motor, L is the winding inductance of the motor, Kv is the induced voltage constant of the motor, and ω is the electrical angular velocity of the motor, the servo motor according to claim 10.

12. The servo motor according to claim 9, wherein the current control unit further comprises a holding unit that holds the d-axis current command output from the d-axis current command generation unit and feeds the d-axis current command back to the d-axis current command generation unit, and the d-axis current command generation unit calculates the virtual q-axis voltage command and the virtual d-axis voltage command using the d-axis current command fed back from the holding unit.

13. The servo motor according to claim 9, wherein the d-axis current command generation unit limits the virtual d-axis voltage command and the virtual q-axis voltage command to the first voltage limit value if the virtual d-axis voltage command and the virtual q-axis voltage command are greater than the first voltage limit value, and uses the virtual d-axis voltage command and the virtual q-axis voltage command as they are to generate the next d-axis current command if the virtual d-axis voltage command and the virtual q-axis voltage command are less than or equal to the first voltage limit value.

14. The servo motor according to claim 13, further comprising a voltage limit generation unit that calculates the first voltage limit value VlimitA using equation 6, where Vdc is the DC voltage of the DC power, Vacp is the peak value of the AC voltage of the AC power, and Vlimit is the voltage limit value which is the calculated limit voltage of the AC power: VlimitA = Vlimit × Vdc ÷ Vacp (Equation 6)