Servo motor
The servo motor design addresses voltage saturation issues by using a converter, inverter, and current control unit with d-axis current command generation to enhance torque stability and responsiveness.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SHIBAURA MASCH CO LTD
- Filing Date
- 2024-12-04
- Publication Date
- 2026-06-16
AI Technical Summary
Existing servo motors face issues with voltage saturation during high acceleration, leading to instability and inability to maintain torque due to delays in the responsiveness of the current control loop.
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.
The design allows for stable torque enhancement by promptly controlling d-axis current, reducing delays and instability, enabling higher motor speeds and torque output.
Smart Images

Figure 2026097640000001_ABST
Abstract
Description
[Technical Field]
[0001] This embodiment relates to a servo motor. [Background technology]
[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. [Prior art documents] [Patent Documents]
[0004] [Patent Document 1] Japanese Patent Publication No. 2015-89318 [Patent Document 2] Japanese Patent Publication No. 2020-43631 [Patent Document 3] Japanese Patent Application Publication No. 8-182397 [Patent Document 4] Japanese Patent Publication No. 2011-66946 (Patent No. 5634693) [Overview of the Initiative] [Problems that the invention aims to solve]
[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. [Means for solving the problem]
[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 the q-axis current command and 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 the virtual q-axis voltage command Vqv using the following equations 2 and 3. Vdv=r×Idrd+ω×L×Iqrl (Formula 2) Vqv=r×Iqrl-ω×L×Idrd+Kv×ω (Formula 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 electric 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 them 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] A servo motor according to another embodiment includes a converter section that converts AC power into DC power, an inverter section that generates driving power for the motor from the DC power, and a current control section that outputs a control signal for driving the inverter section and controls the driving power. The current control section includes a d-axis current command generation section that calculates the next d-axis current command based on the q-axis current command and the d-axis current command used for generating the control signal, a current conversion section that converts the current value output from a current detection section that detects the current flowing through the motor into q-axis current and d-axis current, a q-axis compensation section that inputs the 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 section that inputs the 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 section 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 section 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 section that converts the q-axis voltage limit command and the d-axis voltage limit command into three-phase voltages, and a PWM conversion section that converts the three-phase voltages into pulse signals.
[0016] The d-axis current command generation section calculates virtual q-axis voltage command and 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.
[0017] The servo motor further includes a detection section that detects the speed of the motor, and the d-axis current command generation section calculates virtual q-axis voltage command and 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 section.
[0018] The d-axis current command generation section calculates the virtual d-axis voltage command Vdv and the 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 back the d-axis current command to the d-axis current command generation unit. The d-axis current command generation unit calculates a virtual q-axis voltage command and a virtual d-axis voltage command using the d-axis current command fed back from the holding unit.
[0020] When the virtual d-axis voltage command and the virtual q-axis voltage command are greater than the first voltage limit value, 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. When the virtual d-axis voltage command and the virtual q-axis voltage command are less than or equal to the first voltage limit value, the d-axis current command generation unit uses the virtual d-axis voltage command and the virtual q-axis voltage command as they are for generating the next d-axis current command.
[0021] Assuming that the DC voltage of the DC power is Vdc, the peak value of the AC voltage of the AC power is Vacp, and the voltage limit value, which is the calculated limit voltage of the AC power, is Vlimit, it further includes a voltage limit generation unit that calculates the first voltage limit value VlimitA using Equation 6. VlimitA = Vlimit × Vdc ÷ Vacp (Equation 6)
Brief Description of the Drawings
[0022] [Figure 1] Block diagram showing a configuration example of a servo motor according to the first embodiment. [Figure 2] Flow diagram showing the function of the limit processing unit. [Figure 3] Flow diagram showing the function of the PI compensation unit. [Figure 4] Flow diagram showing the function of the d-axis current command generation unit. [Figure 5] Flow diagram showing the function of the d-axis current command generation unit. [Figure 6] Flow diagram showing the function of the d-axis current command generation unit. [Figure 7]This figure shows the voltage limit value generation unit used in the d-axis current command generation unit. [Figure 8] A graph showing the motor's detection position, electrical angular velocity, q-axis current, and d-axis current. [Figure 9] A graph showing the motor's detection position, electrical angular velocity, q-axis current, and d-axis current. [Modes for carrying out the invention]
[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 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 comprises 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 calculates the q-axis current limit value Iqlimit using the maximum value Imax of the combined current and the d-axis current command Idr (S201). The q-axis current limit value Iqlimit is calculated by Equation 1.
[0027] Iqlimit=(Imax 2 -Idr 2 ) 1 / 2 (Formula 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 limiting 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 by the q-axis current limit value Iqlimit and outputs it as a q-axis current limiting command Iqrl. That is, the limit processing unit 301 outputs the q-axis current limit value Iqlimit as a q-axis current limiting command Iqrl. At this time, the limit processing unit 301 activates by raising the limit flag to ON (S205).
[0028] The limit processing unit 301 outputs the q-axis current command Iqr as the q-axis current limit command Iqrl 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). At this time, the limit processing unit 301 turns the limit flag OFF to deactivate it (S206).
[0029] The limit processing unit 301 outputs the q-axis current command Iqr as the 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 the limit flag 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 the 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, measured by the current detection unit 307, and converted from three-phase current to two-phase current by the current conversion unit 308 to obtain the q-axis current value. 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 it by an integral constant of ωd, integrating the results, and adding them 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 Idrd. The holding unit 310 can be any memory capable of holding the d-axis current command Idrd. 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 Idrd, 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 that d-axis current command Idr and feeds it back to the d-axis current command generation unit 306 as a d-axis current command Idrd. 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, using equation 1.
[0039] Furthermore, 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, measured by the current detection unit 307 and converted from three-phase current to two-phase current by the current conversion unit 308 to obtain the d-axis current value. 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 calculates the voltage command Vd by multiplying the difference (Idr-Id) by a proportional gain Ki, passing it through a low-pass filter (ωp / s), multiplying the result by an integral constant of ωd, integrating the results, and adding them together.
[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 a predetermined limit voltage value of the d-axis voltage determined by the components used in the servo motor. For example, the d-axis voltage limit value Vdlimit may be set to half of the power supply voltage. If 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 as a d-axis voltage limit command Vdl to the voltage conversion unit 304.
[0041] The voltage conversion unit 304 receives two-phase q-axis voltage limit command Vql and d-axis voltage limit command Vdl output from the Vqlimit processing unit 303a and Vdlimit processing unit 303b. The voltage conversion unit 304 converts the two-phase voltage commands Vql and Vdl into three-phase voltage commands (control signals) for actually driving the motor.
[0042] The PWM control unit 305 switches the inverter unit 2 based on a three-phase voltage command and converts the three-phase voltage into a pulse signal. The inverter unit 2, under the control of the PWM control unit 305, supplies three-phase AC power to the motor 5. The motor 5 is driven by the three-phase AC power received 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 that can be processed by the current control unit 3 (for example, the current values of the three-phase AC currents Iu, Iv, and Iw). The current detection unit 307 may detect each of the three-phase AC currents Iu, Iv, and Iw individually. Alternatively, the current detection unit 307 may determine the current of the remaining third phase from the currents of the two phases.
[0044] The current conversion unit 308 converts the three-phase AC currents Iu, Iv, and Iw from the current detection unit 307 into two-phase currents Iq and Id. The q-axis current Iq and d-axis current Id are measured values of the actual current supplied to the motor 5, respectively. The q-axis current Iq is fed back to calculate the difference (Iqrl-Iq) with the q-axis current limit command Iqrl. The d-axis current Id is fed back to calculate the difference (Idr-Id) with the d-axis current command Idr. Through this feedback control, the current control unit 3 controls the motor 5 via the inverter unit 2.
[0045] The current control unit 3 may consist of one or more CPUs (Central Processing Units) and / or one or more PLCs (Programmable Logic Controllers), etc.
[0046] Next, the function of the d-axis current command generation unit 306 will be explained.
[0047] Figures 4 to 6 are flowcharts showing the functions of the d-axis current command generation unit 306. The d-axis current command generation unit 306 may consist of, for example, one or more CPUs and software, or it may consist of a PLC.
[0048] The d-axis current command generation unit 306 receives the q-axis current limit command Iqrl from the limit processing unit 301 and the 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 (Formula 2) Vqv=r×Iqrl-ω×L×Idrd+Kv×ω (Formula 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 the 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 Vqlimit processing unit 303a and the Vdlimit 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 will occur before the appropriate d-axis current Id can be supplied, and the supply of the d-axis current Id may not be able to keep up. In this case, the voltage saturation 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 will be impossible to avoid voltage saturation in a timely manner, and it will be difficult 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 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 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 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 required 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 gain of the PI compensation units 302a and 302b is 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] Furthermore, the d-axis current command generation unit 306 compares the virtual q-axis voltage command Vqv with the voltage limit value VlimitA (S50). If 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, if 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 is as the q-axis voltage limit command Vqvl (S70).
[0059] In Figure 5, the d-axis current command Idr is generated using the q-axis voltage limit command Vqvl and the d-axis voltage limit command Vdvl obtained in the process shown in Figure 4.
[0060] For example, the d-axis current command generation unit 306 calculates the difference VdVqerr using equation 4 (S404) when the q-axis voltage limit command Vqvl is 0 or greater and the electrical angular velocity ω is less than 0 (Yes in S401 and S402).
[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 by 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 by 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 by Equation 5 (S405).
[0064] Next, the d-axis current command generation unit 306 executes the operation shown in FIG. 6 (S406). The d-axis current command generation unit 306 integrally compensates or PI compensates the difference VdVqerr with an integrator having an integration constant ωi to generate a d-axis current command Idri. s is a Laplace operator. The switch SW is connected in parallel to the integrator and is in an off state when performing integral compensation, and is in an on state when performing PI (Proportional Integral) compensation. The on / off switching of the switch SW can be switched by parameters or the like in view of controllability, or can be switched in real time by a program or the like.
[0065] Next, as shown in FIG. 5, when 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 eigenvalue of the motor 5. The maximum d-axis current Idmax is usually the same as the maximum value Imax of the combined current, but 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 sets 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 Idrd.
[0069] Thus, 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 a 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. Current commands Iqrl and Idrd are command values and, unlike the actual measured current values Iq and Id supplied to the motor 5, can be obtained with almost no delay. Therefore, the d-axis current command generation unit 306 according to this embodiment can obtain 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 the motor 5 can be increased appropriately with almost 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 an 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 (Formula 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 will be a more appropriate voltage limit value than Vlimit.
[0076] 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, as shown in Figures 4 and 5.
[0077] Figures 8 and 9 are graphs showing the detection position, electrical angular velocity ω, q-axis current Iq, and d-axis current Id of motor 5. The horizontal axis represents time. The vertical axis shows the values of 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. [Explanation of symbols]
[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 converter unit that converts AC power to DC power, An inverter unit that generates motor drive power from the aforementioned DC power, A servo motor comprising a current control unit that outputs a control signal to drive the inverter unit and controls the drive power, The current control unit, A d-axis current command generation unit calculates the next d-axis current command based on the q-axis current command and d-axis current command used to generate the aforementioned control signal, A compensation unit that generates a q-axis voltage command and a d-axis voltage command using the aforementioned d-axis current command, A servo motor comprising a voltage conversion unit that converts 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 includes a detection unit for detecting the speed of the motor, The servo motor according to claim 2, 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.
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 (Formula 2) Vqv=r×Iqrl−ω×L×Idrd+Kv×ω (Formula 3) The servo motor according to claim 3, wherein 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.
5. 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 servo motor according to claim 2, wherein 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 system further includes 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 (Formula 6) The servo motor according to claim 6.
8. A converter unit that converts AC power to DC power, An inverter unit that generates motor drive power from the aforementioned DC power, A servo motor comprising a current control unit that outputs a control signal to drive the inverter unit and controls the drive power, The current control unit, A d-axis current command generation unit calculates the next d-axis current command based on the q-axis current command and d-axis current command used to generate the aforementioned control signal, A current conversion unit 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. A q-axis compensation unit receives 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 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 limiting processing unit outputs a q-axis voltage limiting command by limiting the q-axis voltage command to a preset q-axis voltage limit value, A d-axis voltage limiting processing unit outputs a d-axis voltage limiting command by limiting the d-axis voltage command to a preset d-axis voltage limit value, A voltage conversion unit that converts the q-axis voltage limit command and the d-axis voltage limit command into a three-phase voltage, A servo motor further comprising 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 further includes a detection unit for detecting the speed of the motor, The servo motor according to claim 9, 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 (Formula 2) Vqv=r×Iqrl−ω×L×Idrd+Kv×ω (Formula 3) The servo motor according to claim 10, wherein 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.
12. 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 servo motor according to claim 9, wherein 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 system further includes 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 (Formula 6) The servo motor according to claim 13.