Motor control device

The motor control device accurately estimates rotor position by analyzing periodic motor current fluctuations, improving torque control and voltage management in systems with periodic load torque variations.

JP7818151B2Active Publication Date: 2026-02-20GENERAL CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024051419
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-03-27
Publication Date
2026-02-20
Estimated Expiration
2044-03-27

AI Technical Summary

Technical Problem

Existing motor control systems face challenges in accurately estimating rotor position when motor current fluctuates periodically due to periodic load torque fluctuations, leading to reduced accuracy in torque control and voltage amplitude management.

Method used

A motor control device that includes a current detection unit, a current fluctuation extraction unit, and a position estimation unit to estimate rotor position based on periodic fluctuation components of the motor current, using inductance voltage calculations to improve accuracy.

Benefits of technology

Enables precise rotor position estimation even with periodic motor current fluctuations, enhancing torque control and voltage management in voltage saturation regions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007818151000059
    Figure 0007818151000059
  • Figure 0007818151000060
    Figure 0007818151000060
  • Figure 0007818151000061
    Figure 0007818151000061
Patent Text Reader

Abstract

To provide a motor control device capable of highly accurately estimating a rotor position even when motor current periodically fluctuates.SOLUTION: A motor control device according to an embodiment of the present invention includes a current detection unit, a current fluctuation extraction unit, and a position estimation unit. The current detection unit detects motor current flowing through a motor. The current fluctuation extraction unit extracts a current fluctuation component which is a periodic fluctuation component of the motor current. The position estimation unit estimates a rotor position of the motor based on the current fluctuation component.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a motor control device that controls a motor. [Background technology]

[0002] Conventionally, there is known a method for controlling a motor by estimating rotor position without using a position sensor to detect the rotor position of the motor. For example, Patent Document 1 describes a motor control device for a permanent magnet synchronous motor that drives a compressor, which performs torque control by position sensorless vector control to make the motor torque follow the compressor load torque. In this motor control device, an axis error is calculated based on the motor current, an estimated motor speed is calculated based on the axis error, and the rotor position is estimated based on the estimated motor speed. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2021-125898 Summary of the Invention [Problem to be solved by the invention]

[0004] When a motor is used to drive a compressor or other device, the load torque fluctuates periodically during one rotation of the rotor. When torque control or other such control is performed on a motor connected to a load with such periodic load torque fluctuations, the motor current is likely to fluctuate periodically as well. If the periodic fluctuations in the motor current are not taken into account when estimating the rotor position, the accuracy of the rotor position estimation may decrease.

[0005] For example, in a voltage saturation region where the motor output voltage is limited by the DC voltage supplied to the inverter that drives the motor, it is necessary to suppress not only the periodic fluctuations in the load torque as described above, but also fluctuations in the amplitude of the voltage command value (output voltage amplitude). One possible way to suppress such fluctuations in both the load torque and voltage amplitude is to adjust the motor current, but in this case, the periodic fluctuations in the motor current also become more pronounced, which tends to reduce the accuracy of rotor position estimation.

[0006] In view of the above circumstances, an object of the present invention is to provide a motor control device that can estimate rotor position with high accuracy even when the motor current fluctuates periodically. [Means for solving the problem]

[0007] In order to achieve the above object, a motor control device according to one aspect of the present invention includes a current detection unit, a current fluctuation extraction unit, and a position estimation unit. The current detection unit detects a motor current flowing through a motor. The current fluctuation extraction unit extracts a current fluctuation component that is a periodic fluctuation component of the motor current. The position estimator estimates a rotor position of the motor based on the current fluctuation component.

[0008] This motor control device estimates the rotor position of the motor based on the current fluctuation component, which is a periodic fluctuation component contained in the motor current, making it possible to estimate the rotor position with high accuracy even when the motor current fluctuates periodically.

[0009] The motor control device may further include an inductance voltage calculation unit that calculates an inductance voltage, which is an induced voltage caused by the current fluctuation component, based on the inductance of the motor and a differential value of the current fluctuation component. In this case, the position estimator may estimate the rotor position based on the inductance voltage.

[0010] This makes it possible to estimate the rotor position by taking into account the inductance voltage, which is an induced voltage generated by the current fluctuation component, and thus improves the accuracy of estimating the rotor position.

[0011] The current fluctuation extraction unit may extract two or more current fluctuation components having different periods. In this case, the inductance voltage calculation unit may calculate the inductance voltage for each of the two or more current fluctuation components based on a differential value of the current fluctuation component, and calculate a total inductance voltage by summing the inductance voltages for the two or more current fluctuation components. Furthermore, the position estimation unit may estimate the rotor position based on the total inductance voltage.

[0012] This makes it possible to estimate the rotor position by taking into account the inductance voltage generated for each current fluctuation component with a different period, thereby further improving the accuracy of estimating the rotor position.

[0013] The current fluctuation extraction unit may extract the current fluctuation component by expanding the motor current into a Fourier series.

[0014] By using Fourier series expansion, it is possible to extract the current fluctuation component in which the influence of noise in the motor current is suppressed, and it becomes possible to estimate the rotor position with high accuracy.

[0015] The current fluctuation extraction unit may extract a first-order current fluctuation component and a second-order current fluctuation component of the motor current by expanding the motor current into a Fourier series.

[0016] For example, the more types of current fluctuation components used to estimate the rotor position, the more accurate the rotor position estimation becomes, but the longer the processing time becomes. Therefore, by using only the first and second order current fluctuation components, it is possible to achieve both high accuracy in position estimation and reduced processing time.

[0017] The position estimator may estimate the rotor position based on the current fluctuation component when performing torque control on the motor.

[0018] This makes it possible to estimate the rotor position with high accuracy when performing torque control.

[0019] The position estimator may estimate the rotor position based on the current fluctuation component when a control region of the motor is a voltage saturation region.

[0020] This makes it possible to estimate the rotor position with high accuracy in the voltage saturation region. [Effects of the Invention]

[0021] As described above, according to the present invention, it is possible to estimate the rotor position with high accuracy even when the motor current fluctuates periodically. Note that the effects described here are not necessarily limited to those described herein, and any of the effects described in this disclosure may be employed. [Brief explanation of the drawings]

[0022] [Figure 1A] 10A to 10C are diagrams illustrating an example of the operation of the motor control device of the present disclosure. [Figure 1B] 10A to 10C are diagrams illustrating an example of the operation of the motor control device of the present disclosure. [Figure 2] 1 is a diagram illustrating an example of the configuration of a motor control device according to an embodiment of the present invention; [Figure 3] FIG. 4 is a diagram illustrating an example of the configuration of a control switch determination unit according to the present embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of the configuration of a correction torque generator according to the present embodiment. [Figure 5] FIG. 2 is a diagram illustrating an example of the configuration of a voltage saturation region voltage command value generator according to the present embodiment. [Figure 6] FIG. 4 is a diagram illustrating an example of the configuration of an output voltage limit command value generator according to the present embodiment. [Figure 7A]5A and 5B are diagrams illustrating an example of the operation of a current command value calculator according to the present embodiment. [Figure 7B] 5A and 5B are diagrams illustrating an example of the operation of a current command value calculator according to the present embodiment. [Figure 8] 10A and 10B are diagrams illustrating an example of the operation of the voltage vector angle calculator according to the present embodiment. [Figure 9] 10A and 10B are diagrams illustrating an example of the operation of the MTPI voltage amplitude limiting processor according to the present embodiment. [Figure 10] FIG. 4 is a diagram illustrating an example of an output voltage waveform. [Figure 11] 10 is a graph showing measurement data during motor control using a steady-state model given as a comparative example and a transient model according to the present embodiment. [Figure 12] 10 is a graph showing measurement data during motor control using a steady-state model as a comparative example. [Figure 13] 6 is a graph showing measurement data during motor control using a transient model according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0023] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0024] This disclosure will explain an example of a motor control device that performs torque control of a permanent magnet synchronous motor (PMSM) that drives a compressor with periodic load torque fluctuations using position sensorless vector control, such as a motor control device used in an air conditioner or cryogenic storage device. However, the disclosed technology is widely applicable to motor control devices that perform torque control of a motor that drives a load with periodic load torque fluctuations.

[0025] <Motor control device operation> 1A and 1B are diagrams illustrating an example of the operation of the motor control device of the present disclosure.

[0026] The constant induced voltage ellipse shown in FIGS. 1A and 1B (only a portion of the ellipse is shown in FIGS. 1A and 1B) is a current vector locus where the induced voltage Vo of the motor is constant, and the diameter of the constant induced voltage ellipse becomes smaller as the electrical angle estimated angular velocity ωe increases. The constant induced voltage ellipse shown in FIG. 1A represents the current vector locus when the electrical angle estimated angular velocity ωe is constant. The constant induced voltage ellipse shown in FIG. 1B represents the current vector locus when the electrical angle estimated angular velocity ωe fluctuates due to load torque fluctuations. FIG. 1B shows the constant induced voltage ellipse at the maximum value of the electrical angle estimated angular velocity ωe, the constant induced voltage ellipse at the minimum value of the electrical angle estimated angular velocity ωe, and the constant induced voltage ellipse at the average value of the electrical angle estimated angular velocity ωe.

[0027] When performing torque control in a voltage saturation region where flux-weakening control of a motor is performed, the motor control device of the present disclosure calculates the q-axis current command value Iq* and the d-axis current command value Id* based on the intersection of a constant torque curve T* (= To*±ΔT), which fluctuates by ±ΔT due to torque control, with a fluctuating constant induced voltage ellipse, as shown in FIG. 1B . For example, the motor control device of the present disclosure calculates the d-axis current command value Id* and the q-axis current command value Iq* based on the intersection of a constant torque curve, which is a current locus at which a total torque command value T*, obtained by adding a fluctuating torque command value ΔT, which is a correction torque, to an average torque command value To*, is constant, with a constant induced voltage ellipse, which is a current locus at which an induced voltage command value V0* and an estimated electrical angle angular velocity ωe are constant, so that the output voltage amplitude Va (the amplitude of the voltage command value) has a desired amplitude. Note that the constant induced voltage ellipse and the constant torque curve are not uniquely determined based on motor parameters such as reactance, but change from moment to moment depending on the operating state of the motor.

[0028] Furthermore, since the motor to be controlled in this disclosure drives a compressor whose load torque fluctuates periodically, it is expected that the motor's rotation speed in terms of mechanical angle (estimated mechanical angle angular velocity ωm) will contain a first-order fluctuation component that fluctuates with the load torque fluctuation period, as well as higher-order fluctuation components whose periods are integer multiples of the load torque fluctuation period. As a result, the mechanical angle phase θm and motor current (d-axis current Id and q-axis current Iq) also contain a first-order fluctuation component and higher-order fluctuation components due to the periodic load torque fluctuation. The motor control device will perform the above-mentioned torque control in a state in which the mechanical angle phase θm and motor current also contain periodic fluctuation components.

[0029] <Motor control device configuration> Fig. 2 is a diagram showing an example of the configuration of a motor control device according to this embodiment. In Fig. 2, motor control device 100 includes subtractors 11 and 38, a speed controller 12, an adder 13, a voltage command value generator 14, a control switch determination unit 15, a dq / u, v, w converter 23, a PWM (Pulse Width Modulation) modulator 24, and an IPM (Intelligent Power Module) 25. IPM 25 is connected to motor M. One example of motor M is a PMSM.

[0030] Motor control device 100 also has shunt resistor 26, current sensors 27a and 27b, and 3φ current calculator 28. Note that motor control device 100 may have either shunt resistor 26 or current sensors 27a and 27b.

[0031] The motor control device 100 also has a u, v, w / dq converter 29, a current fluctuation extractor 35, an inductance voltage calculator 36, an axis error calculator 30, a PLL (Phase Locked Loop) controller 31, a position estimator 32, a 1 / Pn processor 33, and a correction torque generator 34.

[0032] The voltage command value generator 14 includes a normal control region voltage command value generator 14a, a voltage saturation region voltage command value generator 14b, a switch SW1, and a switch SW2. The switch SW1 includes contacts 14c-1, 14c-2, and 14c-3. The switch SW2 includes contacts 14c-4, 14c-5, and 14c-6.

[0033] The subtractor 11 calculates the angular velocity error Δω by subtracting the mechanical angle estimated angular velocity ωm, which is the current estimated angular velocity output from the 1 / Pn processor 33, from the mechanical angular velocity command value ωm* input to the motor control device 100 from outside the motor control device 100 (for example, from a higher-level controller), and outputs the calculated angular velocity error Δω to the speed controller 12.

[0034] The speed controller 12 generates an average torque command value To* such that the angular velocity error Δω input from the subtractor 11 approaches zero, and outputs the generated average torque command value To* to the adder 13 .

[0035] The adder 13 calculates a total torque command value T* by adding the average torque command value To* output from the speed controller 12 and the fluctuation torque command value ΔT output from the correction torque generator 34, and outputs the calculated total torque command value T* to the voltage command value generator 14.

[0036] The voltage command value generator 14 generates a d-axis voltage command value Vd* and a q-axis voltage command value Vq* based on the total torque command value T* output from the adder 13 in each of the normal control region and the voltage saturation region, and outputs the generated d-axis voltage command value Vd* and q-axis voltage command value Vq*. The voltage saturation region is a region in which the output voltage amplitude Va saturates in the high rotation region of the motor M, and flux-weakening control is performed. The normal control region is a region other than the voltage saturation region, in which the motor M is controlled by varying the output voltage, and in the normal control region, maximum torque / current control and the like are performed.

[0037] When the control switch determination unit 15 outputs a control signal CONTROL_TYPE: A (normal control), the voltage command value generator 14 connects the contact 14c-1 and the contact 14c-3 of the switch SW1 and also connects the contact 14c-4 and the contact 14c-6 of the switch SW2, and outputs the d-axis voltage command value Vd* and the q-axis voltage command value Vq* generated by the normal control region voltage command value generator 14a to the dq / u, v, w converter 23. On the other hand, when the control switch determination unit 15 outputs a control signal CONTROL_TYPE: B (voltage saturation control), the voltage command value generator 14 connects the contact 14c-2 and the contact 14c-3 of the switch SW1 and also connects the contact 14c-5 and the contact 14c-6 of the switch SW2, and outputs the d-axis voltage command value Vd* and the q-axis voltage command value Vq* generated by the voltage saturation region voltage command value generator 14b to the dq / u, v, w converter 23. , v, w converter 23.

[0038] The control switching determination unit 15 determines whether the current control region of the motor M is the normal control region or the voltage saturation region, based on the output voltage limit value Vdq_limit, the d-axis voltage command value Vd*, and the q-axis voltage command value Vq*. If the control switching determination unit 15 determines that the current control region of the motor M is the normal control region, it outputs a control signal CONTROL_TYPE:A (normal control) to the voltage command value generator 14, and if it determines that the current control region of the motor M is the voltage saturation region, it outputs a control signal CONTROL_TYPE:B (voltage saturation control) to the voltage command value generator 14. The output voltage limit value Vdq_limit is obtained by converting a DC voltage Vdc supplied to the IPM 25 from outside the IPM 25 (for example, a power supply converter not shown) into a voltage value in a dq rotating coordinate system, which is the control system.

[0039] The dq / u,v,w converter 23 converts the two-phase d-axis voltage command value Vd* and q-axis voltage command value Vq* output from the voltage command value generator 14 into a three-phase U-phase output voltage command value Vu*, a V-phase output voltage command value Vv*, and a W-phase output voltage command value Vw*, based on the electrical angle phase (dq-axis phase) θe, which is the current rotor position output from the position estimator 32. Then, the dq / u,v,w converter 23 outputs the U-phase output voltage command value Vu*, the V-phase output voltage command value Vv*, and the W-phase output voltage command value Vw* to the PWM modulator 24.

[0040] The PWM modulator 24 generates six-phase PWM signals based on the U-phase output voltage command value Vu*, the V-phase output voltage command value Vv*, the W-phase output voltage command value Vw*, and the PWM carrier signal, and outputs the generated six-phase PWM signals to the IPM 25.

[0041] Based on the six-phase PWM signal output from the PWM modulator 24, the IPM 25 converts the DC voltage Vdc supplied from outside the IPM 25 to generate AC voltages to be applied to the U phase, V phase, and W phase of the motor M, and applies each of the AC voltages to the U phase, V phase, and W phase of the motor M.

[0042] When the bus current is detected by a single shunt method using shunt resistor 26, 3φ current calculator 28 calculates a U-phase current value Iu, a V-phase current value Iv, and a W-phase current value Iw of motor M from the six-phase PWM switching information output from PWM modulator 24 and the detected bus current. Alternatively, when U-phase current and V-phase current are detected by current sensors 27a and 27b, 3φ current calculator 28 calculates the remaining W-phase current value Iw based on Kirchhoff's law of "Iu + Iv + Iw = 0." 3φ current calculator 28 outputs the calculated phase current values ​​Iu, Iv, and Iw of each phase to u, v, w / dq converter 29.

[0043] The u,v,w / dq converter 29 converts the three-phase U-phase current value Iu, V-phase current value Iv, and W-phase current value Iw output from the 3φ current calculator 28 into two-phase d-axis current Id and q-axis current Iq, based on the electrical angle phase θe indicating the current rotor position output from the position estimator 32. The u,v,w / dq converter 29 then outputs the d-axis current Id and q-axis current Iq to the voltage command value generator 14, the current fluctuation extractor 35, and the axis error calculator 30.

[0044] The U-phase current value Iu, V-phase current value Iv, and W-phase current value Iw of motor M are detected values ​​obtained by detecting the current values ​​of each phase of motor M. Therefore, the d-axis current Id and q-axis current Iq obtained by converting the U-phase current value Iu, V-phase current value Iv, and W-phase current value Iw can also be considered detected values. In vector control of motor M, the d-axis current Id and q-axis current Iq are used as detected values ​​of the motor current flowing through motor M. In this embodiment, a current detection unit that detects the motor current flowing through the motor is configured by a 3φ current calculator 28 and a u, v, w / dq converter 29.

[0045] The current fluctuation extractor 35 calculates a d-axis current fluctuation component ΔId, which is a periodic fluctuation component of the d-axis current Id, using the d-axis current Id output from the u,v,w / dq converter 29 and the mechanical angle phase θmn output from the position estimator 32. Furthermore, it calculates a q-axis current fluctuation component ΔIq, which is a periodic fluctuation component of the q-axis current Iq, using the q-axis current Iq output from the u,v,w / dq converter 29 and the mechanical angle phase θmn output from the position estimator 32.

[0046] Here, the mechanical angle phase θmn is the n-th order mechanical angle phase. In this embodiment, a first-order mechanical angle phase θm1 and a second-order mechanical angle phase θm2 are used. In this embodiment, the current fluctuation extractor 35 calculates the d-axis current fluctuation component ΔId and the q-axis current fluctuation component ΔIq for each order n of the n-th order current fluctuation component. The current fluctuation extractor 35 then outputs the d-axis current fluctuation component ΔId and the q-axis current fluctuation component ΔIq to the inductance voltage calculator 36. The operation of the current fluctuation extractor 35 will be described in detail later. In this embodiment, the current fluctuation extractor 35 corresponds to a current fluctuation extraction unit.

[0047] The inductance voltage calculator 36 calculates an inductance voltage pLdId (hereinafter may be referred to as an inductance voltage pLdId generated by a d-axis current fluctuation), which is an induced voltage generated by the d-axis current fluctuation component ΔId, using the d-axis current fluctuation component ΔId output by the current fluctuation extractor 35, the d-axis inductance Ld of the motor M, and the mechanical angle phase θmn output by the position estimator 32. Furthermore, the inductance voltage calculator 36 calculates an inductance voltage pLdIq (hereinafter may be referred to as an inductance voltage pLdIq generated by a q-axis current fluctuation), which is an induced voltage generated by the q-axis current fluctuation component ΔIq, using the q-axis current fluctuation component ΔIq output by the current fluctuation extractor 35, the d-axis inductance Ld of the motor M, and the mechanical angle phase θmn output by the position estimator 32. Here, the "p" in the inductance voltage pLdId generated by the d-axis current fluctuation and the inductance voltage pLdIq generated by the q-axis current fluctuation represents a differential operator. The d-axis inductance Ld of the motor M is stored in the motor control device 100.

[0048] In this embodiment, the inductance voltage calculator 36 calculates the inductance voltage pLdId generated by the d-axis current fluctuation and the inductance voltage pLdIq generated by the q-axis current fluctuation for each order n of the n-th order current fluctuation component. The inductance voltage calculator 36 then outputs the inductance voltage pLdId generated by the d-axis current fluctuation and the inductance voltage pLdIq generated by the q-axis current fluctuation to the axis error calculator 30. The operation of the inductance voltage calculator 36 will be described in detail later. In this embodiment, the inductance voltage calculator 36 corresponds to an inductance voltage calculation unit.

[0049] The axis error calculator 30 calculates an axis error Δθ (a difference between the estimated rotation axis and the actual rotation axis) using the d-axis voltage command value Vd* and q-axis voltage command value Vq* output from the voltage command value generator 14, the d-axis current Id and q-axis current Iq output from the u,v,w / dq converter 29, the inductance voltage pLdId generated by the d-axis current fluctuation and the inductance voltage pLdIq generated by the q-axis current fluctuation output from the inductance voltage calculator 36, and the electrical angle estimated angular velocity ωe output from the PLL controller 31. The axis error calculator 30 then outputs the calculated axis error Δθ to the PLL controller 31. In this way, the motor control device 100 calculates the axis error Δθ using the inductance voltages (the inductance voltage pLdId generated by the d-axis current fluctuation and the inductance voltage pLdIq generated by the q-axis current fluctuation) corresponding to the current fluctuation components (the d-axis current fluctuation component ΔId and the q-axis current fluctuation component ΔIq). The specific operation of the axis error calculator 30 will be explained in detail later.

[0050] The PLL controller 31 calculates the electrical angle estimated angular velocity ωe, which is the current estimated angular velocity, based on the axis error Δθ output from the axis error calculator 30, and outputs the calculated electrical angle estimated angular velocity ωe to the position estimator 32, the 1 / Pn processor 33, the voltage command value generator 14, and the axis error calculator 30.

[0051] The position estimator 32 estimates an electrical angle phase θe and a mechanical angle phase θm based on the electrical angle estimated angular velocity ωe output from the PLL controller 31. Then, the position estimator 32 outputs the estimated electrical angle phase θe to the dq / u,v,w converter 23 and the u,v,w / dq converter 29, and outputs the estimated mechanical angle phase θm to the voltage command value generator 14 and the correction torque generator 34. Note that the mechanical angle phase θm output to the voltage command value generator 14 and the correction torque generator 34 is a first-order mechanical angle phase θm1. Hereinafter, when the mechanical angle phase "θm" is simply referred to, it refers to the first-order mechanical angle phase "θm1".

[0052] The position estimator 32 also estimates a second-order mechanical angle phase θm2 based on the electrical angle estimated angular velocity ωe. The position estimator 32 then outputs the first-order mechanical angle phase θm1(θm) and the second-order mechanical angle phase θm2 as the n-th order mechanical angle phase θmn to the current fluctuation extractor 35 and the inductance voltage calculator 36.

[0053] The 1 / Pn processor 33 calculates a mechanical angle estimated angular velocity ωm by dividing the electrical angle estimated angular velocity ωe output from the PLL controller 31 by the number Pn of pole pairs of the motor M, and outputs the calculated mechanical angle estimated angular velocity ωm to the subtractors 11 and 38.

[0054] The electrical angle estimated angular velocity ωe output from the PLL controller 31 and the mechanical angle estimated angular velocity ωm output from the 1 / Pn processor 33 are parameters that estimate the rotational speed of the rotor of the motor M. Furthermore, the electrical angle phase θe and mechanical angle phase θm output from the position estimator 32 are parameters that estimate the rotor position of the motor M. In this embodiment, the axis error calculator 30, the PLL controller 31, the position estimator 32, and the 1 / Pn processor 33 form a position estimator that estimates the rotor position of the motor based on the current fluctuation component.

[0055] The subtractor 38 calculates a mechanical angle estimated angular velocity fluctuation Δωm by subtracting the mechanical angular velocity command value ωm* from the mechanical angle estimated angular velocity ωm output from the 1 / Pn processor 33, and outputs the calculated mechanical angle estimated angular velocity fluctuation Δωm to the correction torque generator 34.

[0056] The correction torque generator 34 generates a fluctuating torque command value ΔT for suppressing the mechanical angle estimated angular velocity fluctuation Δωm, which is a periodic speed fluctuation, to the speed fluctuation tolerance value |Δωm|* or less, based on the speed fluctuation tolerance value |Δωm|*, which is a speed fluctuation range within which vibration of the motor M is tolerable, the mechanical angle estimated angular velocity fluctuation Δωm output from the subtractor 38, and the mechanical angle phase θm output from the position estimator 32, and outputs the generated fluctuating torque command value ΔT to the adder 13. The speed fluctuation tolerance value |Δωm|* is stored in the motor control device 100. The mechanical angle estimated angular velocity fluctuation (speed fluctuation) Δωm differs from the value of the angular velocity error Δω only in sign, positive or negative.

[0057] <Configuration of control switching determination unit> Fig. 3 is a diagram showing an example of the configuration of a control switching determination unit according to this embodiment. In Fig. 3, control switching determination unit 15 has a voltage amplitude calculator 15a and a control switching determiner 15b, and determines whether the current control region of motor M is the normal control region or the voltage saturation region as follows.

[0058] The voltage amplitude calculator 15a calculates the output voltage amplitude Va based on the d-axis voltage command value Vd* and the q-axis voltage command value Vq* output from the voltage command value generator 14, according to equation (1).

number

[0059] The control switching determiner 15b compares the peak value of the output voltage amplitude Va calculated by the voltage amplitude calculator 15a with the output voltage limit value Vdq_limit.

[0060] If the peak value of the output voltage amplitude Va is less than the output voltage limit value Vdq_limit, the control switching determiner 15b determines that the current control region of the motor M is the normal control region, and outputs the control signal CONTROL_TYPE:A to the voltage command value generator 14.

[0061] On the other hand, if the peak value of the output voltage amplitude Va is greater than or equal to the output voltage limit value Vdq_limit, the control switching determiner 15b determines that the current control region of the motor M is the voltage saturation region and outputs the control signal CONTROL_TYPE:B to the voltage command value generator 14.

[0062] <Configuration of correction torque generator> Fig. 4 is a diagram showing an example of the configuration of a correction torque generator according to this embodiment. In Fig. 4, the correction torque generator 34 includes a speed fluctuation component separator 34a, a speed fluctuation amplitude calculator 34b, a subtractor 34c, a correction torque amplitude calculator 34d, a speed fluctuation phase corrector 34e, an orthogonal component separator 34f, and a correction torque demodulator 34g.

[0063] The correction torque generator 34 adjusts the amplitude (correction torque amplitude |ΔT|) and phase of the fluctuation torque command value (correction torque) ΔT for each mechanical angle period so that the speed fluctuation amplitude |Δωm| is within the speed fluctuation tolerance value |Δωm|* within a range in which vibration of the motor M does not cause problems in actual use.

[0064] The speed fluctuation component separator 34a separates the mechanical angle estimated angular velocity fluctuation Δωm into two Fourier coefficients ωsin (sin component) and ωcos (cos component), which are the fundamental wave components of Δωm, according to equations (2.1) and (2.2). By calculating the Fourier coefficient of the fundamental wave component of the mechanical angle estimated angular velocity fluctuation Δωm for each mechanical angle cycle, it is possible to eliminate harmonic components of the mechanical angle estimated angular velocity fluctuation Δωm and accurately extract the fundamental wave component of the mechanical angle estimated angular velocity fluctuation Δωm. ωsin and ωcos are values ​​that are updated for each mechanical angle cycle.

number

[0065] The speed fluctuation amplitude calculator 34b calculates the speed fluctuation amplitude |Δωm| based on the Fourier coefficients ωsin and ωcos in accordance with equation (3). Because ωsin and ωcos are values ​​that are updated every mechanical angle cycle, the speed fluctuation amplitude |Δωm| is also updated every mechanical angle cycle.

number

[0066] The subtractor 34c calculates the speed fluctuation error |Δωm|err by subtracting the speed fluctuation tolerance |Δωm|* from the speed fluctuation amplitude |Δωm| output from the speed fluctuation amplitude calculator 34b. The speed fluctuation tolerance |Δωm|* specifies the speed fluctuation amplitude |Δωm| within the allowable range of vibration of the motor M.

[0067] The corrected torque amplitude calculator 34d adjusts the corrected torque amplitude |ΔT| for each mechanical angle cycle in accordance with the error between the speed fluctuation amplitude |Δωm| and the speed fluctuation allowable value |Δωm|*. For example, the corrected torque amplitude calculator 34d multiplies the speed fluctuation error |Δωm|err, which is the error between the speed fluctuation amplitude |Δωm| and the speed fluctuation allowable value |Δωm|*, by a correction gain k according to equation (4), and adds the multiplication result to |ΔT|_old to calculate the corrected torque amplitude |ΔT|. |ΔT|_old in equation (4) is the corrected torque amplitude |ΔT| for the previous mechanical angle cycle. By appropriately setting the correction gain k, it is possible to prevent hunting of the speed fluctuation |Δω| at the boundary of the speed fluctuation allowable value |Δωm|* and vibrations that occur when the speed fluctuation |Δω| becomes larger than the speed fluctuation allowable value |Δωm|* due to a sudden change in load torque.

number

[0068] The speed fluctuation phase corrector 34e corrects the phase of the mechanical angle estimated angular velocity fluctuation Δωm acquired for each mechanical angle cycle. For example, the speed fluctuation phase corrector 34e multiplies each of the Fourier coefficients ωsin and ωcos by a correction gain k according to equations (5.1) and (5.2), and adds ωsin_i_old and ωcos_i_old to the respective multiplication results. ωsin_i_old in equation (5.1) is ωsin_i in the previous mechanical angle cycle, and ωcos_i_old in equation (5.2) is ωcos_i in the previous mechanical angle cycle. Then, the speed fluctuation phase corrector 34e calculates the arctangent of ωsin_i and ωcos_i as the speed fluctuation corrected phase φωi according to equation (5.3). This speed fluctuation correction phase φωi becomes the phase reference when performing torque control, and the phase delayed by π / 2 from this reference becomes the phase of the fluctuation torque command value ΔT (correction torque phase).

number

[0069] The orthogonal component separator 34f calculates the sine component (ωsin_i) and cosine component (ωcos_i) of the speed fluctuation correction phase φωi according to equations (6.1) and (6.2) based on the correction torque amplitude |ΔT| and the speed fluctuation correction phase φωi. This process also serves to prevent divergence during phase correction by the calculation of equations (5.1) and (5.2).

number

[0070] The correction torque demodulator 34g calculates the fluctuation torque command value ΔT according to the equations (7.1) and (7.2) based on the sine component (ωsin_i) and cosine component (ωcos_i) of the speed fluctuation correction phase φωi. This process converts the speed fluctuation correction phase φωi into a correction torque phase that is delayed by π / 2, and generates an instantaneous value of the fluctuation torque command value ΔT at the mechanical angle phase θm.

number

[0071] The correction torque demodulator 34g may calculate the instantaneous value of the fluctuating torque command value ΔT according to the equation (8) instead of the equations (7.1) and (7.2).

number

[0072] Then, the adder 13 calculates the total torque command value T* by adding the fluctuating torque command value ΔT to the average torque command value To* output from the speed controller 12 according to equation (9).

number

[0073] <Configuration of voltage saturation region voltage command value generator> 5 is a diagram showing an example of the configuration of a voltage saturation region voltage command value generator according to this embodiment. In FIG. 5, voltage saturation region voltage command value generator 14b includes output voltage limit command value generator 14b1, induced voltage command value calculator 14b2, current command value calculator 14b3, temporary voltage command value calculator 14b4, voltage vector angle calculator 14b5, and voltage command value calculator 14b6.

[0074] Fig. 6 is a diagram showing an example of the configuration of an output voltage limit command value generator according to this embodiment. In Fig. 6, output voltage limit command value generator 14b1 includes MTPI current command value calculator 14b1-1, MTPI voltage command value calculator 14b1-2, MTPI voltage amplitude calculator 14b1-3, average output voltage generator 14b1-4, MTPI voltage fluctuation component extractor 14b1-5, adders 14b1-6 and 14b1-8, and MTPI voltage amplitude limit processor 14b1-7.

[0075] The output voltage limit command value generator 14b1 generates an output voltage limit command value Va* based on the total torque command value T*, the estimated electrical angle angular velocity ωe, the output voltage limit value Vdq_limit, the d-axis current Id, the q-axis current Iq, and the mechanical angle phase θm. This output voltage limit command value Va* is a voltage for adjusting the fluctuation amplitude of the output voltage within a range up to the output voltage limit value Vdq_limit and for matching the fluctuation phase of the output voltage with the fluctuation phase of the output voltage in the normal control region (MTPI control region).

[0076] 6, an MTPI current command value calculator 14b1-1 calculates an MTPI assumed d-axis current command value Id_mtpi* and an MTPI assumed q-axis current command value Iq_mtpi*, which are the intersections of a constant torque curve, which is a current locus at which the total torque command value T* is constant, and an MTPI curve (maximum torque / current control curve). The intersections of the constant torque curve and the MTPI curve are calculated using, for example, the motor torque equation of equation (10) and equation (11), which is the d-axis current equation on the MTPI curve when the q-axis current is known.

number

number

[0077] When the d-axis current Id is eliminated from equations (10) and (11), a quartic equation relating to the q-axis current Iq can be obtained as shown in equation (12).

number

[0078] As a solution to the quartic equation shown in equation (12), by using, for example, Newton's method or the like on the quartic equation shown in equation (12), it is possible to derive a solution corresponding to the MTPI assumed q-axis current command value Iq_mtpi* at the intersection of the constant torque curve of the total torque command value T* and the MTPI curve.

[0079] The MTPI current command value calculator 14b1-1 calculates the MTPI assumed d-axis current command value Id_mtpi* based on the MTPI assumed q-axis current command value Iq_mtpi*, which is the solution of equation (12), in accordance with the d-axis current equation of equation (11).

[0080] The MTPI voltage command value calculator 14b1-2 calculates the MTPI assumed d-axis voltage Vd_mtpi* and the MTPI assumed q-axis voltage Vq_mtpi* based on the MTPI assumed d-axis current command value Id_mtpi*, the MTPI assumed q-axis current command value Iq_mtpi*, and the estimated electrical angle angular velocity ωe in accordance with the PMSM voltage equations shown in Equations (13.1) and (13.2). Note that "p" in Equations (13.1) and (13.2) is a differential operator.

number

[0081] Note that equations (13.1) and (13.2) take into account the voltage drops "p·Ld·Id" and "p·Lq·Iq" (p-term voltages) across the inductance due to current changes caused by torque control. "Ld" represents the d-axis inductance of motor M, and "Lq" represents the q-axis inductance of motor M.

[0082] Here, the p-term voltage is expressed using the time derivative of the current change. However, if the change in the detected current is used as the derivative, the MTPI assumed d-axis voltage Vd_mtpi* and the MTPI assumed q-axis voltage Vq_mtpi* will be sensitive to current noise. Therefore, the derivative is generated based on the current fundamental wave fluctuation, for example, as follows:

[0083] To explain the generation of the p-term voltage, first, the fluctuation components ΔIda and ΔIqa of the d-axis current Id and the q-axis current Iq are defined as in equations (14.1) and (14.2).

number

[0084] Here, when one periodic fluctuation occurs per mechanical angle rotation, "Ida" and "φd" in equation (14.1) indicate the fluctuation amplitude and initial phase of ΔIda, respectively, "Iqa" and "φq" in equation (14.2) indicate the fluctuation amplitude and initial phase of ΔIqa, respectively, and "θm" in equations (14.1) and (14.2) indicates the instantaneous value of the mechanical angle phase.

[0085] Therefore, the p-term voltage generated by the current fundamental wave fluctuation is expressed as in equations (15.1) and (15.2). That is, the phase of the d-axis current fluctuation and the q-axis current fluctuation are advanced by π / 2, and the d-axis current fluctuation and the q-axis current fluctuation whose phase is advanced by π / 2 are multiplied by the estimated mechanical angle angular velocity ωm, thereby generating a differential value (p-term voltage).

number

[0086] The MTPI voltage amplitude calculator 14b1-3 calculates the MTPI assumed output voltage Va_mtpi* based on the MTPI assumed d-axis voltage Vd_mtpi* and the MTPI assumed q-axis voltage Vq_mtpi* according to equation (16).

number

[0087] The average output voltage generator 14b1-4 outputs an average output voltage command value Va0* adjusted so that the average values ​​of the d-axis current Id and the q-axis current Iq, which fluctuate with each rotation of the rotor of the motor M, trace the MTPI curve (maximum torque / current control curve). For example, the average output voltage generator 14b1-4 calculates the d-axis current Idt on the MTPI curve from the current q-axis current Iq, and adjusts the average output voltage command value Va0* using PI control or the like so that there is no error between the calculated d-axis current Idt and the current d-axis current Id. The average output voltage generator 14b1-4 calculates the average output voltage command value Va0* according to, for example, equations (17.1) and (17.2). Furthermore, if the average output voltage command value Va0* exceeds the output voltage limit value Vdq_limit, the average output voltage generator 14b1-4 limits the average output voltage command value Va0* to the output voltage limit value Vdq_limit according to equation (18). The average output voltage command value Va0* is limited to the output voltage limit value Vdq_limit, thereby performing flux-weakening control. "Ψa" indicates the flux linkage of the motor M.

number

number

[0088] The MTPI voltage fluctuation component extractor 14b1-5 calculates the fluctuation amplitude |ΔVa_mtpi| and the instantaneous value ΔVa_mtpi of the MTPI assumed output voltage Va_mtpi*, for example, as follows.

[0089] The MTPI voltage fluctuation component extractor 14b1-5 first separates the fundamental component of the MTPI assumed output voltage Va_mtpi* into a Fourier coefficient Va_mtpi_sin, which is a sine component, and a cosine component Va_mtpi_cos, according to equations (19.1) and (19.2). The MTPI voltage fluctuation component extractor 14b1-5 calculates the Fourier coefficient of the fundamental component of the MTPI assumed output voltage Va_mtpi* for each mechanical angle period, thereby extracting the fundamental component of the MTPI assumed output voltage Va_mtpi* from which harmonic components have been removed.

number

[0090] Next, the MTPI voltage fluctuation component extractor 14b1-5 calculates the amplitude |ΔVa_mtpi| of the fundamental component of the MTPI assumed output voltage Va_mtpi* according to equation (20) based on the Fourier coefficients Va_mtpi_sin and Va_mtpi_cos calculated according to equations (19.1) and (19.2). Note that because the Fourier coefficients Va_mtpi_sin and Va_mtpi_cos are values ​​that are updated every mechanical angle cycle, the amplitude |ΔVa_mtpi| is also updated every mechanical angle cycle.

number

[0091] Then, the MTPI voltage fluctuation component extractor 14b1-5 calculates the instantaneous value ΔVa_mtpi of the fundamental component of the MTPI assumed output voltage Va_mtpi* according to equation (21).

number

[0092] The adder 14b1-6 calculates the MTPI assumed output voltage fluctuation peak value Va_mtpi_peak by adding the average output voltage command value Va0* and the amplitude |ΔVa_mtpi| of the fundamental wave component of the MTPI assumed output voltage Va_mtpi* according to equation (22).

number

[0093] The MTPI voltage amplitude limit processor 14b1-7 generates a variable output voltage limit command value ΔVa_limit_mtpi adjusted so that the MTPI expected output voltage fluctuation peak value Va_mtpi_peak, which is the addition result in the adder 14b1-6, is equal to or less than the output voltage limit value Vdq_limit, and outputs the generated variable output voltage limit command value ΔVa_limit_mtpi.

[0094] For example, the MTPI voltage amplitude limit processor 14b1-7 calculates the amplitude ratio "scale" of the output voltage fluctuation component by comparing the average output voltage command value Va0*, the MTPI assumed output voltage fluctuation peak value Va_mtpi_peak, and the output voltage limit value Vdq_limit, and generates the variable output voltage limit command value ΔVa_limit_mtpi by multiplying the MTPI assumed output voltage fluctuation component ΔVa_mtpi by the amplitude ratio "scale." In this way, it is possible to generate the variable output voltage limit command value ΔVa_limit_mtpi that is in phase with the MTPI assumed output voltage fluctuation component ΔVa_mtpi.

[0095] For example, the MTPI voltage amplitude limit processor 14b1-7 calculates the amplitude ratio scale of the output voltage fluctuation component according to equations (23.1) to (23.3), and generates the variable output voltage limit command value ΔVa_limit_mtpi based on the calculated amplitude ratio scale according to equation (23.4).

number

[0096] The adder 14b1-8 calculates the output voltage limit command value Va* by adding the average output voltage command value Va0* and the variable output voltage limit command value ΔVa_limit_mtpi in accordance with the equation (24). The adder 14b1-8 outputs the calculated output voltage limit command value Va* to the induced voltage command value calculator 14b2 and the voltage command value calculator 14b6.

number

[0097] 5, the induced voltage command value calculator 14b2 calculates an induced voltage command value Vo* based on the output voltage limit command value Va* in accordance with the motor model equations shown in Equations (25.1) and (25.2) based on the current d-axis current Id, q-axis current Iq, and electrical angle estimated angular velocity ωe. Details of the calculation of the induced voltage command value Vo* are described below.

[0098] The voltage equations (d-axis voltage Vd, q-axis voltage Vq) of the PMSM, the theoretical formula for the output voltage amplitude Va, and the theoretical formula for the induced voltage Vo of the motor M are shown in equations (25.1) to (27).

number

number

number

[0099] Furthermore, from equations (25.1) to (27), the equation relating the output voltage limit command value Va* and the induced voltage command value Vo* is given by equation (28).The induced voltage command value calculator 14b2 calculates the induced voltage command value Vo* according to equation (28) and outputs the calculated induced voltage command value Vo* to the current command value calculator 14b3.

number

[0100] The current command value calculator 14b3 calculates the q-axis current command value Iq* and the d-axis current command value Id* based on the intersection of a constant torque curve, which is a current locus at which the total torque command value T* is constant, and a constant induced voltage ellipse, which is a current locus at which the induced voltage command value Vo* and the electrical angle estimated angular velocity ωe are constant (see FIG. 1B). The current command value calculator 14b3 outputs the calculated q-axis current command value Iq* and d-axis current command value Id* to the temporary voltage command value calculator 14b4.

[0101] The intersection of the constant torque curve and the constant induced voltage ellipse can be calculated using, for example, the motor torque equation shown in equation (29) and the induced voltage equation shown in equation (30).

number

number

[0102] By eliminating the d-axis current Id from equations (29) and (30), a quartic equation related to the q-axis current Iq can be obtained as shown in equation (31). Note that in equation (31), ΔL=Ld−Lq.

number

[0103] As a solution to the fourth-order equation shown in equation (31), by using, for example, Newton's method or the like for the fourth-order equation shown in equation (31), it is possible to derive a solution corresponding to the q-axis current command value Iq* at the point where a constant torque curve, which is the locus of current at which the total torque command value T* is constant, intersects with a constant induced voltage ellipse, which is the locus of current at which the induced voltage Vo and the estimated electrical angle angular velocity ωe are constant (see FIG. 1B).

[0104] After calculating the q-axis current command value Iq*, the current command value calculator 14b3 calculates the d-axis current command value Id* based on the q-axis current command value Iq* in accordance with equation (32), which is obtained by transforming the induced voltage equation shown in equation (30) into a d-axis current equation.

number

[0105] Here, whether to use a positive or negative sign for √ in equation (32) can be determined by calculating the torque (hereinafter sometimes referred to as the "M-point boundary line") at the point where the constant induced voltage ellipse intersects with a straight line that is parallel to the Iq axis and passes through point M (-Ψa / Ld,0), which is the center of the constant induced voltage ellipse, and comparing the M-point boundary torque T_M with the total torque command value T*.

[0106] The calculation procedure for the d-axis current command value Id* and the q-axis current command value Iq* is shown below. Figures 7A and 7B are diagrams illustrating an example of the operation of the current command value calculator according to this embodiment.

[0107] The current command value calculator 14b3 first calculates the d-axis current Id_M on point M according to equation (33).

number

[0108] Next, the current command value calculator 14b3 calculates the q-axis current Iq_M at the point where the boundary line at point M intersects with the constant induced voltage ellipse. The q-axis current Iq_M can be calculated by substituting the d-axis current Id_M at point M into equation (30), and is therefore calculated according to equation (34).

number

[0109] Therefore, the current command value calculator 14b3 calculates the M-point boundary torque T_M according to the equation (35).

number

[0110] Then, the current command value calculator 14b3 determines the d-axis current command value Id* in accordance with equations (36.1) and (36.2) based on the magnitude relationship between the total torque command value T* and the torque on the boundary at point M. The equation (36.1) shows the d-axis current command value Id* (see FIG. 7A) when "the total torque command value T*≦the torque on the boundary at point M T_M", and the equation (36.2) shows the d-axis current command value Id* (see FIG. 7B) when "the total torque command value T*>the torque on the boundary at point M T_M".

number

[0111] The current command value calculator 14b3 outputs the d-axis current command value Id* and the q-axis current command value Iq* calculated as described above to the temporary voltage command value calculator 14b4.

[0112] 5, temporary voltage command value calculator 14b4 calculates a temporary d-axis voltage command value Vd_m and a temporary q-axis voltage command value Vq_m in a feedforward manner based on the electrical angle estimated angular velocity ωe, the d-axis current command value Id*, and the q-axis current command value Iq* in accordance with the motor model equations shown in Equations (37.1) and (37.2). Temporary voltage command value calculator 14b4 outputs the calculated temporary d-axis voltage command value Vd_m and temporary q-axis voltage command value Vq_m to voltage vector angle calculator 14b5. Note that calculating the temporary voltage command values ​​in a feedforward manner can prevent windup (saturation phenomenon) that occurs in an integrator in PI control or the like due to input saturation.

number

[0113] In addition, equations (37.1) and (37.2) take into account the voltage drops "p·Ld·Id" and "p·Lq·Iq" (p-term voltages) across the inductance due to current changes caused by torque control.

[0114] Voltage vector angle calculator 14b5 calculates a voltage vector angle δ based on the tentative d-axis voltage command value Vd_m and the tentative q-axis voltage command value Vq_m according to equation (38). Voltage vector angle calculator 14b5 outputs the calculated voltage vector angle δ to voltage command value calculator 14b6. That is, as shown in FIG. 8, voltage vector angle calculator 14b5 calculates the angle between the q-axis and the output voltage vector having amplitude Va calculated using equation (1). This allows calculation to generate a voltage vector angle δ corresponding to the total torque command value T* in a voltage saturation region where the output voltage amplitude is limited to or below the direct current (DC) voltage that the inverter can output. Therefore, vibration suppression control can be performed without tuning the voltage vector angle fluctuation, thereby improving the vibration suppression effect of motor M without tuning the voltage vector angle fluctuation. FIG. 8 is a diagram for explaining an example of the operation of the voltage vector angle calculator according to this embodiment.

number

[0115] The voltage command value calculator 14b6 calculates the d-axis voltage command value Vd* and the q-axis voltage command value Vq* by performing coordinate conversion from polar coordinates to rectangular coordinates according to equations (39.1) and (39.2) based on the voltage vector angle δ and the output voltage limit command value Va*.

Equation

[0116] <Operation of the MTPI Voltage Amplitude Limiter> FIG. 9 is a diagram for explaining an operation example of the MTPI voltage amplitude limiter according to the present embodiment.

[0117] For example, as shown in case (a) of FIG. 9, when the peak value Va_mtpi_peak of the MTPI assumed output voltage fluctuation component ΔVa_mtpi that fluctuates around the average output voltage command value Va0* is less than or equal to the output voltage limit value Vdq_limit, since it meets the condition of equation (23.2), the MTPI voltage amplitude limiter 14b1-7 sets the amplitude ratio scale of the output voltage fluctuation component to "1". Then, the MTPI voltage amplitude limiter 14b1-7 sets "scale = 1" in equation (23.4) and outputs the MTPI assumed output voltage fluctuation component ΔVa_mtpi as it is as the variable output voltage limit command value ΔVa_limit_mtpi. As a result, the output voltage limit command value Va* coincides with the MTPI assumed output voltage fluctuation component ΔVa_mtpi.

[0118] 9, if the peak value Va_mtpi_peak of the MTPI assumed output voltage fluctuation component ΔVa_mtpi, which fluctuates around the average output voltage command value Va0*, exceeds the output voltage limit value Vdq_limit, and the average output voltage command value Va0* does not exceed the output voltage limit value Vdq_limit, the condition of equation (23.3) is met, and therefore MTPI voltage amplitude limit processor 14b1-7 sets the amplitude ratio scale of the output voltage fluctuation component to "(Vdq_limit-Va0*) / |ΔVa_mtpi|". Then, MTPI voltage amplitude limit processor 14b1-7 outputs a fluctuating output voltage limit command value ΔVa_limit_mtpi, where "scale=(Vdq_limit-Va0*) / |ΔVa_mtpi|" in equation (23.4). As a result, an output voltage limit command value Va* is generated that is in phase with the MTPI assumed output voltage fluctuation component ΔVa_mtpi and whose peak value due to the fluctuation amplitude is equal to or less than the output voltage limit value Vdq_limit.

[0119] 9, when the average output voltage command value Va0* of the MTPI assumed output voltage fluctuation component ΔVa_mtpi is equal to or greater than the output voltage limit value Vdq_limit, the condition of equation (23.1) is met, and therefore the MTPI voltage amplitude limit processor 14b1-7 sets the amplitude ratio scale of the output voltage fluctuation component to "0." Then, the MTPI voltage amplitude limit processor 14b1-7 sets "scale=0" in equation (23.4) and outputs the variable output voltage limit command value ΔVa_limit_mtpi as "0." As a result, the output voltage limit command value Va* coincides with the output voltage limit value Vdq_limit.

[0120] By controlling the output voltage limit command value Va* in this manner, as shown in the example of the output voltage waveform in Figure 10, the output voltage amplitude Va can be kept equal to or less than the output voltage limit value Vdq_limit, even immediately after the control region of the motor M transitions from the normal control region to the voltage saturation region, and the output voltage amplitude Va can be made consistent between the normal control region and the voltage saturation region. This reduces switching shock when transitioning from the normal control region to the voltage saturation region. Furthermore, by including the voltage saturation region voltage command value generator 14b, the motor control device 100 can also handle cases where the average output voltage command value Va0*, which is the center of fluctuation of the output voltage limit command value Va*, is limited by the output voltage limit value Vdq_limit in the voltage saturation region.

[0121] <Operation of normal control region voltage command value generator> When the control switching determination unit 15 determines that the current control region of the motor M is the normal control region, the normal restriction region voltage command value generator 14a calculates the d-axis voltage command value Vd* and the q-axis voltage command value Vq* based on the total torque command value T*, the electrical angle estimated angular velocity ωe, the d-axis current Id, the q-axis current Iq, and the mechanical angle phase θm.

[0122] The normal restricted region voltage command value generator 14a performs, for example, MTPI control (maximum torque / current control) to perform torque control. In this method, a d-axis current command value Id* and a q-axis current command value Iq* are calculated based on the intersection of a constant torque curve, which is a current locus where the total torque command value T* is constant, and an MTPI curve. In addition, a q-axis voltage command value Vq* is calculated by performing PI control on the difference (q-axis current error) between the q-axis current command value Iq* and the q-axis current Iq. In addition, a d-axis voltage command value Vd* is calculated by performing PI control on the difference (d-axis current error) between the d-axis current command value Id* and the d-axis current Id.

[0123] The d-axis current command value Id* and the q-axis current command value Iq* may be corrected for phase errors and amplitude errors that occur due to response delays when calculating the intersection of the constant torque curve and the MTPI curve, or due to interference between the d and q axes. The d-axis voltage command value Vd* and the q-axis voltage command value Vq* may be output as final voltage command values ​​after undergoing non-interference control. There are no particular restrictions on the method for calculating the d-axis voltage command value Vd* and the q-axis voltage command value Vq*, and a torque control method other than MTPI control may also be used.

[0124] <Issues in rotor position estimation using steady-state models> So far, we have explained the method for calculating the control command values ​​(d-axis voltage command value Vd* and q-axis voltage command value Vq*) of the motor M in the normal control region and the voltage saturation region. Below, we will explain the method for estimating the rotor position of the motor M.

[0125] As a method for estimating the rotor position from the d-axis current Id and the q-axis current Iq, the equation for calculating the axis error in a steady state using the extended induced voltage model shown in equation (40) has been widely used.

number

[0126] In equation (40), R is the resistance value of motor M, and Lq is the q-axis inductance of motor M. Vd and Vq are the d-axis voltage and q-axis voltage applied to motor M. Id and Iq are the d-axis current and q-axis current flowing through motor M. Note that the arctangent function (tan -1 The numerator in (1) is the γ-axis induced voltage, and the denominator is the δ-axis induced voltage. Here, the γ-axis and δ-axis are estimated rotating coordinate systems for control.

[0127] When estimating the rotor position, the axis error Δθ is calculated from equation (40), the axis error Δθ is used to estimate the electrical angle estimated angular velocity ωe, and the electrical angle phase (dq-axis phase) θe and the mechanical angle phase θm, which represent the rotor position, are estimated using the electrical angle estimated angular velocity ωe. In addition, in calculating the axis error Δθ, the d-axis voltage command value Vd* and the q-axis voltage command value Vq* are used as Vd and Vq in equation (40), and the d-axis current Id and q-axis current Iq, which are detected values ​​of the motor currents, are used as Id and Iq.

[0128] Here, the relationship between the above-mentioned torque control and the motor current (d-axis current Id and q-axis current Iq) will be explained. When the load torque acting on the motor M fluctuates periodically, such as in the operation of a single rotary compressor, unless the torque of the motor M is adjusted, the rotational speed of the motor M (estimated electrical angle angular velocity ωe) may also fluctuate periodically due to the periodic fluctuation of the load torque. In this case, there is a possibility that vibrations and noise may be generated, and stable control of the motor M may become difficult. The above-mentioned torque control is a control that adjusts the torque of the motor M in accordance with the fluctuation of the load torque in order to suppress such speed fluctuations.

[0129] In torque control, the d-axis current command value Id* and the q-axis current command value Iq* are adjusted so as to generate a target torque, and the d-axis voltage command value Vd* and the q-axis voltage command value Vq* are generated based on the adjusted d-axis current command value Id* and q-axis current command value Iq*. In this case, it is assumed that the d-axis current Id and the q-axis current Iq flowing through the motor M also fluctuate periodically in accordance with the periodic fluctuation of the load torque.

[0130] The inventors have noticed that, under such circumstances where the d-axis current Id and the q-axis current Iq fluctuate periodically, torque control using the above equation (40) can cause oscillations near the peak points of the periodically fluctuating currents (hereinafter sometimes referred to as current peaks), resulting in increased power consumption. In particular, in the voltage saturation region where the output voltage amplitude Va of the motor M is limited by the DC voltage, it has been found that significant oscillations near the current peaks occur during torque control (torque control performed by the voltage saturation region voltage command value generator 14b) that simultaneously suppresses voltage fluctuations and speed fluctuations (see FIG. 12, etc.). This can lead to unstable control of the motor M and increased power consumption.

[0131] The reason for the current oscillation will be discussed below with reference to FIG. 10. For example, FIG. 10 shows the periodic fluctuation of the output voltage amplitude Va in the normal control region. This periodic fluctuation of the output voltage amplitude Va is the result of controlling the torque of the motor M in accordance with the periodic fluctuation of the load torque. In the normal control region, the output voltage amplitude Va is equal to or less than the output voltage limit value Vdq_limit. Therefore, there is no need to limit the output voltage amplitude Va. In this situation where the output voltage amplitude Va is not limited, for example, control is performed to periodically vary the q-axis current command value Iq*, which mainly generates torque in the motor M, out of the d-axis current command value Id* and the q-axis current command value Iq*. In this case, the amount of fluctuation of the d-axis current command value Id* is smaller than the q-axis current command value Iq*.

[0132] On the other hand, in the voltage saturation region, the output voltage amplitude Va is limited to an upper limit of the output voltage limit value Vdq_limit. The voltage saturation region voltage command value generator 14b adjusts the d-axis current command value Id* and the q-axis current command value Iq* so that the output voltage amplitude Va does not exceed the output voltage limit value Vdq_limit and so that speed fluctuations are suppressed. In this case, not only the fluctuation amount of the q-axis current command value Iq* but also the fluctuation amount of the d-axis current command value Id* increases. As a result, both the d-axis current Id and the q-axis current Iq flowing through the motor M fluctuate periodically by relatively large fluctuation amounts. In this way, it can be said that torque control in the voltage saturation region achieves both suppression of voltage fluctuations and suppression of speed fluctuations by varying the d-axis current Id.

[0133] The extended induced voltage model expressed by equation (40) is a steady-state model that assumes a steady state. In the steady state, the d-axis and q-axis currents (and the γδ-axis currents) are considered to be direct currents. Therefore, equation (40) does not take into account fluctuations in the d-axis current Id and the q-axis current Iq (i.e., time changes in the d-axis current Id and the q-axis current Iq), and does not reflect the transient response of the current when estimating the position error Δθ. For this reason, the fluctuation components of the d-axis current Id and the q-axis current Iq increase, which is thought to reduce the accuracy of estimating the position error Δθ. As a result, position deviation occurs during torque control, and oscillations occur near the current peak.

[0134] <Rotor position estimation using a transient model that takes current fluctuations into account> The inventors focused on this point and constructed a transient model that takes into account fluctuations in the d-axis current Id and the q-axis current Iq. Equation (41) is the axis error calculation formula for the transient model. In equation (41), "p" is a differential operator, and Ld is the d-axis inductance of the motor M.

number

[0135] Equation (41) includes the inductance voltages "p·Ld·Id" and "p·Ld·Iq" (p-term voltage) that accompany current changes due to torque control. In other words, the transient model that takes into account current fluctuations shown in equation (41) takes into account the inductance voltage (p-term voltage), which is the differential value of the current. This makes it possible to reflect the effect of current fluctuations in torque control, etc. (effects due to transient changes in current).

[0136] For example, the extended back EMF model, which is based on the steady state and is expressed in equation (40), does not take into account the inductance voltage that accompanies current changes, resulting in a model error. In particular, the accuracy of the model of the γ-axis back EMF, which is the numerator in the arctangent function, is important for the axis error Δθ to be zero, but the numerator in the arctangent function of equation (40) does not include the inductance voltage (p Ld Id) that occurs due to current changes in the d-axis current Id (d-axis current fluctuations). For this reason, the model error in equation (40) becomes large, especially during torque control in the voltage saturation region where the d-axis current Id fluctuates greatly, and it is thought that this is causing significant oscillation near the current peak.

[0137] In contrast, in the model shown in equation (41), the inductance voltage (p·Ld·Id) generated by changes in the d-axis current Id is reflected when calculating the position error Δθ. This makes it possible to calculate the position error Δθ with high accuracy even when the d-axis current Id is varied during torque control in the voltage saturation region. Below, we will specifically explain the operation of each part of the current fluctuation extractor 35, inductance voltage calculator 36, and position error calculator 30 shown in Figure 2 as part of the process of calculating the position error Δθ using the model shown in equation (41).

[0138] <Operation of the current fluctuation extractor> The current fluctuation extractor 35 extracts current fluctuation components, which are periodic fluctuation components of the motor current. The current fluctuation components are periodic fluctuation components of the d-axis current Id and the q-axis current Iq that occur due to torque control. The current fluctuation extractor 35 extracts a d-axis current fluctuation component ΔId from the d-axis current Id and a q-axis current fluctuation component ΔIq from the q-axis current Iq.

[0139] In this embodiment, the current fluctuation extractor 35 extracts the current fluctuation components by expanding the motor currents (d-axis current Id and q-axis current Iq) into Fourier series. Specifically, a calculation device such as a microcomputer constituting the motor control device 100 executes a process of calculating Fourier coefficients of the Fourier series expansion for each of the d-axis current Id and the q-axis current Iq. This process is equivalent to, for example, a process of extracting periodic fluctuation components by Fourier transforming the d-axis current Id and the q-axis current Iq.

[0140] As will be described later, the inductance voltage (p-term voltage) is calculated using a current differential value obtained by differentiating the current fluctuation component. The current differential value is a parameter whose value is easily affected by noise, etc. In contrast, by using Fourier series expansion, it is possible to extract the current fluctuation component in which the influence of noise on the d-axis current Id and the q-axis current Iq is suppressed. This stabilizes the value of the current differential value, making it possible to improve the calculation accuracy of the inductance voltage.

[0141] In this embodiment, the current fluctuation extractor 35 extracts two or more current fluctuation components with different periods. For example, when a single rotary compressor is operated, the load torque oscillates with the same period as the mechanical angle phase θm of the motor M. In this case, when torque control is performed, higher-order current fluctuation components are generated in the d-axis current Id and the q-axis current Iq, such as a first-order current fluctuation component that fluctuates with the same period as the mechanical angle phase θm and a second-order current fluctuation component that fluctuates with a period twice that of the mechanical angle phase θm. The current fluctuation extractor 35 extracts the first-order current fluctuation component and the higher-order current fluctuation component from each of the d-axis current Id and the q-axis current Iq. Using these current fluctuation components makes it possible to improve the accuracy of calculating the inductance voltage.

[0142] In this embodiment, the current fluctuation extractor 35 extracts the first-order current fluctuation components and the second-order current fluctuation components of the motor currents (d-axis current Id and q-axis current Iq) by expanding the motor currents (d-axis current Id and q-axis current Iq) into a Fourier series. For example, the more types of current fluctuation components used to estimate the rotor position, the more accurate the rotor position estimation becomes, but the longer the processing time becomes. Therefore, by using only the first-order and second-order current fluctuation components, it is possible to achieve both high accuracy in position estimation and short processing time.

[0143] Hereinafter, the order of the current fluctuation component will be referred to as n (n=1 or 2). The nth-order d-axis current fluctuation component will be referred to as ΔIdn, and the nth-order q-axis current fluctuation component will be referred to as ΔIqn.

[0144] First, a method for calculating the nth-order d-axis current fluctuation component ΔIdn will be described. The current fluctuation extractor 35 separates the nth-order d-axis current fluctuation component ΔIdn into a sine component and a cosine component and calculates them. Specifically, the current fluctuation extractor 35 calculates the sine component Idn_sin of the nth-order d-axis current fluctuation component ΔIdn according to equation (42.1), and calculates the cosine component Idn_cos of the nth-order d-axis current fluctuation component ΔIdn according to equation (42.2).

number

[0145] Equations (42.1) and (42.2) represent the nth-order Fourier coefficients. The nth-order mechanical angle phase θmn is the first-order mechanical angle phase θm1 when n = 1, and is the second-order mechanical angle phase θm2 when n = 2. The nth-order mechanical angle phase θmn (θm1 or θm2) is an instantaneous value calculated by the position estimator 32 described with reference to FIG. 2. The sine component Idn_sin and cosine component Idn_cos of the nth-order d-axis current fluctuation component ΔIdn are calculated for each mechanical angle period. This makes it possible to remove noise and other harmonic components.

[0146] The current fluctuation extractor 35 calculates the amplitude |ΔIdn| of the nth-order d-axis current fluctuation component ΔIdn according to equation (43.1) using the sine component Idn_sin and cosine component Idn_cos of the nth-order d-axis current fluctuation component ΔIdn, and calculates the reference phase φdn of the nth-order d-axis current fluctuation component ΔIdn according to equation (43.2).

number

[0147] The n-th order d-axis current fluctuation component ΔIdn is expressed as in equation (44) using the amplitude |ΔIdn| of equation (43.1) and the reference phase φdn of equation (43.2).

number

[0148] The nth-order mechanical angle phase θmn described in equation (44) is a variable that changes with the rotation of the motor M. Therefore, the waveform of the nth-order d-axis current fluctuation component ΔIdn is a sine waveform that oscillates with an amplitude |ΔIdn|, with the reference phase φdn as the initial phase. In this way, the process of extracting the nth-order d-axis current fluctuation component ΔIdn is a process of calculating parameters (amplitude |ΔIdn| and reference phase φdn) that can represent that waveform.

[0149] Next, a method for calculating the nth-order q-axis current fluctuation component ΔIqn will be described. The method for calculating the nth-order q-axis current fluctuation component ΔIqn is basically the same as the method for calculating the nth-order d-axis current fluctuation component ΔIdn. Specifically, the current fluctuation extractor 35 calculates the sine component Iqn_sin of the nth-order q-axis current fluctuation component ΔIqn according to equation (45.1), and calculates the cosine component Iqn_cos of the nth-order q-axis current fluctuation component ΔIqn according to equation (45.2).

number

[0150] In addition, the current fluctuation extractor 35 calculates the amplitude |ΔIqn| of the nth-order q-axis current fluctuation component ΔIqn according to equation (46.1) using the sine component Iqn_sin and cosine component Iqn_cos of the nth-order q-axis current fluctuation component ΔIqn, and calculates the reference phase φqn of the nth-order q-axis current fluctuation component ΔIqn according to equation (46.2).

number

[0151] The n-th order q-axis current fluctuation component ΔIqn is expressed as in equation (47) using the amplitude |ΔIqn| of equation (46.1) and the reference phase φqn of equation (46.2).

number

[0152] As shown in equation (47), the waveform of the n-th order q-axis current fluctuation component ΔIqn is a sine waveform that oscillates with an amplitude |ΔIqn|, with the reference phase φqn as the initial phase. In this way, the process of extracting the n-th order q-axis current fluctuation component ΔIqn is a process of calculating parameters (amplitude |ΔIqn| and reference phase φqn) that can represent the waveform.

[0153] The current fluctuation components calculated by Fourier series expansion in current fluctuation extractor 35 are shown in equations (48.1) to (48.4). Equation (48.1) is the first-order d-axis current fluctuation component ΔId1, and equation (48.2) is the second-order d-axis current fluctuation component ΔId2. Equation (48.3) is the first-order q-axis current fluctuation component ΔIq1, and equation (48.4) is the second-order q-axis current fluctuation component ΔIq2.

number

[0154] The current fluctuation extractor 35 calculates the amplitudes (|ΔId1|, |ΔId2|, |ΔIq1|, |ΔIq2|) and reference phases (φd1, φd2, φq1, φq2) in each of equations (48.1) to (48.4) as the current fluctuation components. These parameters are output to the inductance voltage calculator 36.

[0155] <Operation of the inductance voltage calculator> The inductance voltage calculator 36 calculates the inductance voltage, which is an induced voltage generated by the current fluctuation component, based on the inductance of the motor M and the differential value of the current fluctuation component. Here, the inductance voltage is the p-term voltage (p·Ld·Id and p·Ld·Iq) shown in equation (41). Therefore, the d-axis inductance Ld is used as the inductance of the motor M.

[0156] Moreover, the differential operator "p" acts only on the fluctuation component of the parameter to be calculated (the differential value for the DC component is 0). Therefore, the current fluctuation components (ΔId1, ΔId2, ΔIq1, ΔIq2) calculated by the current fluctuation extractor 35 can be used as the d-axis current Id and the q-axis current Iq in the p-term voltage.

[0157] Here, the current component of the d-axis current Id that is correlated with the first-order mechanical angle phase θm1 is referred to as the current correlation value Id1, and the current component that is correlated with the second-order mechanical angle phase θm2 is referred to as the current correlation value Id2. The current correlation value Id1 is the first-order d-axis current fluctuation component ΔId1, and the current correlation value Id2 is the second-order d-axis current fluctuation component ΔId2. Similarly, the current component of the q-axis current Iq that is correlated with the first-order mechanical angle phase θm1 is referred to as the current correlation value Iq1, and the current component that is correlated with the second-order mechanical angle phase θm2 is referred to as the current correlation value Iq2. The current correlation value Iq1 is the first-order q-axis current fluctuation component ΔIq1, and the current correlation value Iq2 is the second-order q-axis current fluctuation component ΔIq2.

[0158] For example, in the d-axis current Id, the inductance voltage due to current fluctuations with the same period as the first-order mechanical angle phase θm1 is calculated according to equations (49.1) to (49.4) using the current correlation value Id1.

[0159]

number

[0160] In this case, as shown in equation (49.1), the current correlation value Id1 is used as the d-axis current Id of the p-term voltage, and the current correlation value Id1 is time-differentiated. In equation (49.2), the time differentiation of the current correlation value Id1 is converted into a differentiation with respect to the first-order mechanical angle phase θm1. As a result, a term (dθm1 / dt) that differentiates the first-order mechanical angle phase θ1 with respect to time is generated, and as shown in equation (49.3), this term is expressed by the estimated mechanical angle angular velocity ωm. Furthermore, in equation (49.3), the current correlation value Id1 is replaced with the first-order d-axis current fluctuation component ΔId1.

[0161] Applying the above equation (48.1) to equation (49.3) and differentiating the first-order d-axis current fluctuation component ΔId1 with respect to the first-order mechanical angle phase θm1 yields equation (49.4). In this way, the inductance voltage (p·Ld·Id1) corresponding to the first-order component of the d-axis current Id can be calculated using the estimated mechanical angle angular velocity ωm, the d-axis inductance Ld, the amplitude |ΔId1|, and the reference phase φd1. Note that the first-order mechanical angle phase θm1 written in equation (49.4) is a variable that changes with the rotation of motor M. Therefore, by inputting the instantaneous value of the first-order mechanical angle phase θm1 into equation (49.4), the value of the inductance voltage (p·Ld·Id1) at any timing can be calculated.

[0162] The inductance voltage (p·Ld·Iq1) corresponding to the primary component of the q-axis current Iq can also be calculated in the same way as above. p·Ld·Iq1 is shown in equation (50).

number

[0163] The inductance voltage (p·Ld·Id2) corresponding to the second-order component of the d-axis current Id and the inductance voltage (p·Ld·Iq2) corresponding to the second-order component of the q-axis current Iq can also be calculated in a similar manner. Equation (51) shows p·Ld·Id2, and equation (52) shows p·Ld·Iq2.

number

number

[0164] In the process of deriving the second-order component of the inductance voltage, the time derivative (dθm2 / dt) of the second-order mechanical angle phase θm2 is obtained. The value of dθm2 / dt is twice the time derivative of the first-order mechanical angle phase θm1, or 2ωm, as shown in equation (53).

number

[0165] In this way, the inductance voltage calculator 36 calculates the inductance voltage for each of two or more current fluctuation components having different frequencies based on the differential value of the current fluctuation component. In this embodiment, for example, a primary inductance voltage and a secondary inductance voltage are calculated for the d-axis current Id (or the q-axis current Iq), and both are induced voltages that occur in response to current fluctuations in the d-axis current Id (or the q-axis current Iq).

[0166] The induced voltage generated in response to current fluctuations in the d-axis current Id (or q-axis current Iq) can be calculated as the sum of the primary inductance voltage and the secondary inductance voltage. Equation (54) is the inductance voltage p·Ld·Id due to the fluctuation component of the d-axis current Id, and equation (55) is the inductance voltage p·Ld·Iq due to the fluctuation component of the q-axis current Iq.

number

number

[0167] In this way, the inductance voltage calculator 36 calculates the total inductance voltage (p·Ld·Id and p·Ld·Iq) by adding up the inductance voltages of two or more current fluctuation components with different frequencies. This makes it possible to reflect induced voltages due to not only primary current fluctuations but also higher-order current fluctuations, improving the accuracy of inductance voltage calculation. This inductance voltage is used to calculate the axis error Δθ.

[0168] For example, the inductance voltage p·Ld·Id generated by d-axis current fluctuations is calculated by inputting the instantaneous values ​​of the first and second mechanical angle phases (θm1 and θm2) into equations (49.4) and (51) and adding these values ​​according to equation (54). Similarly, the inductance voltage p·Ld·Iq generated by q-axis current fluctuations is calculated by inputting the instantaneous values ​​of the first and second mechanical angle phases (θm1 and θm2) into equations (50) and (52) and adding these values ​​according to equation (54). Each calculated inductance voltage is output to the axis error calculator 30.

[0169] <Axis error calculator operation> The axis error calculator 30 calculates the axis error Δθ according to the axis error calculation formula in the transient model shown in formula (41). This makes it possible to accurately calculate the axis error Δθ by taking into account the inductance voltage (p-term voltage) that accompanies periodic current fluctuations in the d-axis current Id and q-axis current Iq that occur during torque control, etc.

[0170] For example, for terms other than the inductance voltage (p-term voltage), the d-axis voltage command value Vd* and the q-axis voltage command value Vq* are used as Vd and Vq, and the d-axis current Id and the q-axis current Iq, which are detected values ​​of the motor current, are used as Id and Iq. Furthermore, the inductance voltage (p-term voltage) uses the inductance voltage p·Ld·Id generated by d-axis current fluctuations and the inductance voltage p·Ld·Iq generated by q-axis current fluctuations output from inductance voltage calculator 36.

[0171] As a result, the effect of the induced voltage (inductance voltage) caused by the current fluctuation component is reflected in the axis error Δθ. The axis error Δθ is also used in the process of estimating the rotor position (mechanical angle phase θm and electrical angle phase θe). In this way, the motor control device 100 estimates the rotor position of the motor M based on the inductance voltage. This makes it possible to estimate the rotor position by taking into account the inductance voltage, which is the induced voltage caused by the current fluctuation component, and makes it possible to improve the accuracy of estimating the rotor position.

[0172] In this embodiment, the total inductance voltage shown in the above equations (54) and (55) is used as the inductance voltage. That is, the rotor position is estimated based on the total inductance voltage. This makes it possible to reflect the influence of induced voltage due to frequency components other than the frequency of the load torque, for example, and further improves the accuracy of rotor position estimation.

[0173] <Operation results for steady-state and transient models> In the following, motor control using the steady-state model shown in equation (40) will be compared as a comparative example with the operation results of motor control using the transient model according to this embodiment shown in equation (41).

[0174] Fig. 11 is a graph showing measurement data during motor control using a steady-state model as a comparative example and the transient model according to this embodiment. The horizontal axis of each graph shown in Fig. 11 represents time t [msec]. This graph shows data obtained when motor control using the steady-state model is switched to motor control using the transient model during control of the motor M that operates the single rotary compressor.

[0175] The timing for switching from the steady-state model to the transient model was t = 8000 msec. The data was measured during torque control (torque control performed by the voltage saturation region voltage command value generator 14b) that suppresses voltage fluctuations in the voltage saturation region. The measurements were also performed under an overload condition where a load greater than the rated load was applied to the motor M in order to clearly show oscillations that occur near current peaks observed when the motor is controlled using the steady-state model. Even in normal operating conditions that are not overloaded, oscillations near current peaks occur when the steady-state model is used.

[0176] The graph on the top left of Fig. 11 is a graph showing the mechanical angular velocity, plotting the estimated mechanical angular velocity ωm and the mechanical angular velocity command value ωm* of the motor M. The vertical axis of the graph represents the rotation speed [rps (rotations per second)]. The mechanical angular velocity command value ωm* during measurement was unchanged at 35 rps before and after the switching timing.

[0177] The graph on the left side of the middle row in Fig. 11 is a graph for the d-axis current and the q-axis current, in which the current command values ​​(d-axis current command value Id* and q-axis current command value Iq*) and the detected current values ​​(d-axis current Id and q-axis current Iq) are plotted. The vertical axis of the graph represents the current value [A].

[0178] The graph on the lower left of Figure 11 is a graph of the d-axis voltage and the q-axis voltage, and the detected voltage values ​​(d-axis voltage Vd and q-axis voltage Vq) are plotted. The vertical axis of the graph represents the voltage value [V].

[0179] The graph on the upper right of FIG. 11 is a graph of the output voltage amplitude Va and the DC voltage Vdc. The vertical axis of the graph is the voltage value [V]. Data in the dq dimension is used for the output voltage amplitude Va and the DC voltage Vdc. The output voltage amplitude Va in the dq dimension is expressed by the following equation (56) using the d-axis voltage Vd and the q-axis voltage Vq.

number

number

[0180] The graph in the middle right of Figure 11 shows the position error Δθ. The vertical axis of the graph is the angle [deg]. In the first half of the graph (t<8000msec), the position error Δθ was calculated according to equation (40). In the second half of the graph (t≧8000msec), the position error Δθ was calculated according to equation (41). Here, the data for the position error Δθ is plotted after smoothing the values ​​calculated from each equation using an LPF (low pass filter) with a time constant of 1msec.

[0181] The graph on the lower right side of Fig. 11 shows the power consumption Pinv of the inverter (IPM 25). The vertical axis of the graph represents power [W]. The power consumption Pinv is expressed by the following equation (58) using the d-axis voltage Vd, the q-axis voltage Vq, the d-axis current Id, and the q-axis current Iq.

number

[0182] Fig. 12 is a graph showing measurement data during motor control using a steady-state model, which is given as a comparative example. Fig. 12 shows measurement data from the period before the switching timing t=8000 msec (0 msec≦t≦100 msec) out of the data shown in Fig. 11. The layout of each graph is the same as in Fig. 11.

[0183] As described above, the load torque of a single rotary compressor fluctuates periodically with a mechanical angle period. In this measurement, torque control was performed to suppress fluctuations in rotation speed caused by such fluctuations in load torque. This makes it possible to suppress the amplitude (fluctuation range) of the estimated mechanical angle angular velocity ωm compared to when torque control is not performed.

[0184] For example, in the graph on the top left of the top row of Figure 12, the estimated mechanical angle angular velocity ωm fluctuates periodically. The period of this fluctuation is the same as the mechanical angle period, and it is thought that the periodic fluctuation of the estimated mechanical angle angular velocity ωm occurs due to the periodic fluctuation of the load torque of the single rotary compressor. In this measurement, by performing torque control, the fluctuation range of the estimated mechanical angle angular velocity ωm, excluding harmonic components, is suppressed to about ±4 rps with respect to the mechanical angular velocity command value ωm*. Note that if torque control is not performed, the fluctuation range of the estimated mechanical angle angular velocity ωm becomes even larger.

[0185] In torque control, the d-axis current command value Id* and the q-axis current command value Iq* are adjusted to suppress fluctuations in the rotation speed (mechanical angle estimated angular velocity ωm) of the motor M. As a result, as shown in the graph on the left side of the middle row in FIG. 12, both the d-axis current command value Id* and the q-axis current command value Iq* (dotted line graph) fluctuate in a mechanical angle cycle.

[0186] This measurement was performed in the voltage saturation region. In this case, the voltage saturation region voltage command value generator 14b described above operates to adjust the d-axis current command value Id* and the q-axis current command value Iq* so that the output voltage amplitude Va is equal to or less than the DC voltage Vdc. For example, under the conditions of this measurement, as shown in the graph, the d-axis current command value Id* was adjusted to fluctuate within a range similar to that of the q-axis current command Iq* that generates torque in the motor M. Accordingly, as shown in the graph on the left side of the lower part of FIG. 12, the d-axis voltage Vd also fluctuated relatively greatly.

[0187] In this torque control that suppresses fluctuations in the output voltage amplitude Va by varying the d-axis voltage Vd (d-axis current command value Id*), oscillations are observed near the current peak when the axial error Δθ is estimated using the steady-state model shown in equation (40). For example, the graph on the left side of the middle row of Figure 12 shows that the detected q-axis current Iq oscillates near the current peak compared to the q-axis current command value Iq*. Similarly, oscillations occur in the d-axis current Id, and a deviation from the waveform of the d-axis current command value Id* is also observed.

[0188] Fig. 13 is a graph showing measurement data during motor control using the transient model according to this embodiment. Fig. 13 shows measurement data from the period after the switching timing t=8000 msec (15000 msec≦t≦15100 msec) of the data shown in Fig. 11. The layout of each graph is the same as in Fig. 11.

[0189] As shown in the graph in the middle left of Fig. 13, when motor control is performed using the transient model, oscillations near the current peak of the q-axis current Iq are reduced compared to when the steady-state model is used (graph in the middle left of Fig. 12). In addition, the distortion of the waveform that accompanies oscillations in the d-axis current is eliminated, and the deviation of the waveform from the d-axis current command value Id* is reduced.

[0190] Furthermore, as shown in the graph on the lower left of Fig. 13, the reduction in oscillations near the current peak of the q-axis current Iq also suppresses small vibrations in the q-axis voltage Vq near the current peak. Furthermore, the d-axis voltage Vd fluctuates in the same way as when the steady-state model is used, and it can be seen that torque control in the voltage saturation region is maintained appropriately.

[0191] The reason why oscillations near the current peak are suppressed in this way is thought to be because the use of the transient model of equation (41) improves the accuracy of estimating the position error Δθ. For example, looking at the graph on the middle right of Figure 13, we can see that the position error Δθ calculated using the transient model has a smaller range of change in value compared to when the steady-state model is used (graph on the middle right of Figure 12). For example, the depth of the valley-shaped peaks that occur during the mechanical angle cycle and the range of fluctuations in the higher-frequency components than the mechanical angle cycle are both suppressed. In this way, using the transient model makes it possible to stably estimate the position error Δθ.

[0192] Furthermore, as shown in the graph on the top left of Fig. 13, when the transient model is used, the periodic fluctuations in the estimated mechanical angle speed ωm are suppressed to the same level as when the steady-state model is used (graph on the top left of Fig. 12). It can also be seen that fluctuation components with frequencies higher than the mechanical angle period are suppressed, enabling stable control of the rotation speed.

[0193] Furthermore, by suppressing oscillation near the current peak, it is possible to reduce power consumption. For example, looking at the graph on the bottom right of Figure 11, the power consumption Pinv decreases around the switching timing, and finally stabilizes at a certain level. In this way, the behavior of the power consumption Pinv also shows that the motor M is being controlled stably.

[0194] As described above, in the motor control device 100 according to this embodiment, the rotor position of the motor M is estimated based on the current fluctuation components (d-axis current fluctuation component ΔId and q-axis current fluctuation component ΔIq), which are periodic fluctuation components contained in the motor currents (d-axis current Id and q-axis current Iq). This makes it possible to estimate the rotor position with high accuracy even when the motor currents (d-axis current Id and q-axis current Iq) fluctuate periodically.

[0195] In this embodiment, the axis error calculation equation for the transient model shown in equation (41) is used in the process of estimating the axis error Δθ. Equation (41) is an equation that calculates the axis error Δθ by taking into account the inductance voltage generated by the periodic current fluctuation component. By introducing the inductance voltage, when the motor current fluctuates periodically, it becomes possible to reduce the model error of the extended induced voltage model constructed as a steady-state model shown in equation (40). This makes it possible to improve the estimation accuracy of the rotor position.

[0196] This action makes it possible to suppress oscillations occurring near current peaks, for example, under torque control where the motor current fluctuates periodically. This makes it possible to reduce the power consumption of the motor M. Furthermore, suppressing oscillations stabilizes the estimated value of the axis error Δθ, enabling stable estimation of the rotor position. As a result, stable motor control can be achieved.

[0197] Furthermore, in this embodiment, focusing on the periodicity of current fluctuations under torque control, the motor current is expanded into a Fourier series (calculating the Fourier coefficients of the motor current) to extract the current fluctuation component. The current differential value, which becomes the inductance voltage (p-term voltage), is calculated by differentiating this current fluctuation component. For example, in a method that generates the current differential value from current changes detected every control cycle without using Fourier coefficients, the current differential value may become unstable due to current noise, which may cause control instability. In contrast, in this embodiment, the use of Fourier coefficients enables stable calculation of the current differential value, making it possible to appropriately suppress model errors corresponding to the inductance voltage.

[0198] Furthermore, in this embodiment, in addition to the first-order current fluctuation component that fluctuates with the same cycle as the load torque, a second-order current fluctuation component that fluctuates with twice the cycle of the load torque is extracted as the current fluctuation component. This makes it possible to accurately estimate the position error Δθ by taking into account not only the first-order inductance voltage but also the second-order inductance voltage. Furthermore, by limiting the order of the extracted current fluctuation component to two, it is possible to improve the estimation accuracy of the position error Δθ without unnecessarily increasing the calculation load.

[0199] <Other embodiments> The present invention is not limited to the above-described embodiment, and various other embodiments can be realized.

[0200] <Switching the axis error calculation method> The following describes a configuration for switching the method for calculating the axis error Δθ.

[0201] In the above embodiment, the method of calculating the position error Δθ from the position error calculation formula of the transient model shown in equation (41) has been described, regardless of whether the motor control region is the normal control region or the voltage saturation region. However, the present invention is not limited to this, and the method of calculating the position error Δθ may be switched between the normal control region and the voltage saturation region.

[0202] For example, in the motor control device 100 shown in FIG. 1, the control switching determination unit 15 determines whether the current control region is the normal control region or the voltage saturation region. This determination result may be used to switch the formula used to calculate the position error Δθ in the position error calculator 30. In this configuration, if it is determined that the current region is the normal control region, the position error Δθ is calculated using equation (40). In the normal control region, unlike the voltage saturation region, there is no need to limit the output voltage amplitude. Therefore, for example, the amount of fluctuation in the d-axis current command value Id* is small, and the periodic fluctuation component of the d-axis current Id is also small. For this reason, even when equation (40) is used, the position error Δθ can be estimated with sufficient accuracy.

[0203] On the other hand, if it is determined that the motor is in the voltage saturation region, the axis error Δθ is calculated using equation (41). That is, when the motor's control region is in the voltage saturation region, the rotor position may be estimated based on the current fluctuation component. For example, in the voltage saturation region, the operation of the voltage saturation region voltage command value generator 14b described above increases the fluctuations in the d-axis current command value Id* as well as the q-axis current command value Iq*, and the fluctuations in the d-axis current Id as well as the q-axis voltage Iq become large. Therefore, the effect of the inductance voltage due to periodic current fluctuations cannot be ignored. In such a case, for example, by using the transient model of equation (41), the rotor position can be estimated more accurately than when using the steady-state model of equation (40).

[0204] In the above-described embodiment, torque control is performed to suppress fluctuations in rotation speed due to the load torque applied to the motor. In motor control device 100 shown in Fig. 1, torque control is performed when the torque fluctuation command value ΔT output from correction torque generator 34 is not 0 (ΔT ≠ 0). Note that when torque fluctuation command value ΔT = 0, speed control is performed to control the rotation speed so as to achieve mechanical angular velocity command value ωm*.

[0205] For example, when fluctuations in rotation speed are permitted (for example, when fluctuations in rotation speed are sufficiently small during high-speed rotation), torque control is not necessarily required. In this case, speed control is performed, for example, with a fluctuating torque command value ΔT=0. In this way, the motor control device may be configured to be able to switch torque control ON and OFF. In such a configuration, when torque control is set to OFF, the axis error Δθ is calculated using equation (40). When torque control is not performed, the fluctuation amounts of the q-axis current command value Iq* and the d-axis current command value Id* are smaller than when torque control is performed, for example. For this reason, even when equation (40) is used, the axis error Δθ can be estimated with sufficient accuracy.

[0206] On the other hand, when torque control is set to ON, the axis error Δθ is calculated using equation (41). That is, when torque control is performed on the motor, the rotor position may be estimated based on the current fluctuation component. For example, during torque control, the q-axis current command value Iq* and the d-axis current command value Id* are also periodically varied in accordance with the periodic fluctuation of the load torque, resulting in periodic fluctuations in the q-axis voltage Iq and the d-axis current Id. In other words, periodic fluctuation components are likely to occur in the motor current. In such cases, for example, by using the transient model of equation (41), the rotor position can be estimated more accurately than when using the steady-state model of equation (40).

[0207] In the above embodiment, the operation of a single rotary compressor has been mainly described as an example. In this case, the load torque varies with a period similar to the mechanical angle period, so a first-order current fluctuation component that varies with a period similar to the mechanical angle period and a second-order current fluctuation component that has a period twice as long are used for motor control. However, there are no limitations on the type of compressor to which the present invention can be applied.

[0208] For example, a twin rotary compressor or the like may be used. In this case, the load torque will fluctuate with a period twice the mechanical angle period. Therefore, as the current fluctuation component, a second-order current fluctuation component that fluctuates with a period twice the mechanical angle period, or a fourth-order current fluctuation component that fluctuates with a period four times the mechanical angle period, etc. may be extracted. In this way, by extracting a current fluctuation component according to the order of torque control executed by the motor control device and using the current differential value, it is possible to reliably improve the estimation accuracy of the position error Δθ.

[0209] The above describes a method of calculating the inductance voltage from the current fluctuation component of the motor current and then calculating the position error Δθ from equation (41) using the inductance voltage. However, a method of adjusting the position error Δθ using the current fluctuation component without calculating the inductance voltage may also be used. For example, an adjustment amount corresponding to the amplitude and phase of the current fluctuation component may be determined in advance through experiments or the like and used for motor control. In this case, the amplitude and phase of the current fluctuation component are calculated, and the position error Δθ is successively adjusted using an adjustment amount according to the calculation result. Alternatively, for example, an adjustment amount according to the differential value of the current fluctuation component may be used. There are no particular limitations on the method of estimating the rotor position based on the current fluctuation component.

[0210] It is also possible to combine at least two of the features of the present technology described above. That is, the various features described in each embodiment may be arbitrarily combined without distinction between the embodiments. Furthermore, the various effects described above are merely examples and are not limiting, and other effects may also be achieved. [Explanation of symbols]

[0211] M...Motor 25...IPM 28…3φ current calculator 29...u,v,w / dq converter 35...Current fluctuation extractor 36...Inductance voltage calculator 30…Axis error calculator 31...PLL controller 32...Position estimator 33...1 / Pn processor 100...Motor control device

Claims

1. a current detection unit that detects a motor current flowing through the motor; a current fluctuation extraction unit that extracts a current fluctuation component that is a periodic fluctuation component of the motor current by expanding the motor current into a Fourier series; a position estimation unit that estimates a rotor position of the motor based on the current fluctuation component; A motor control device comprising:

2. A motor control device according to claim 1, The current fluctuation extraction unit extracts the current fluctuation component having the same period as the fluctuation period of the load torque acting on the motor and the current fluctuation component having a period that is an integer multiple of the fluctuation period of the load torque by expanding the motor current into a Fourier series. Motor control device.

3. 2. The motor control device according to claim 1, further comprising: an inductance voltage calculation unit that calculates an inductance voltage, which is an induced voltage generated by the current fluctuation component, based on the inductance of the motor and a differential value of the current fluctuation component; The position estimation unit estimates the rotor position based on the inductance voltage. Motor control device.

4. 4. The motor control device according to claim 3, the current fluctuation extraction unit extracts two or more current fluctuation components having different periods; the inductance voltage calculation unit calculates the inductance voltage for each of the two or more current fluctuation components based on a differential value of the current fluctuation component, and calculates a total inductance voltage by summing the inductance voltages for each of the two or more current fluctuation components; The position estimation unit estimates the rotor position based on the total inductance voltage. Motor control device.

5. 5. The motor control device according to claim 4, The current fluctuation extraction unit extracts a first-order current fluctuation component and a second-order current fluctuation component of the motor current by expanding the motor current into a Fourier series. Motor control device.

6. 2. The motor control device according to claim 1, The position estimator estimates the rotor position based on the current fluctuation component when performing torque control on the motor. Motor control device.

7. 2. The motor control device according to claim 1, The position estimation unit When a control region of the motor is a voltage saturation region, the rotor position is estimated based on the current fluctuation component; When the control region of the motor is a normal control region in which the output voltage amplitude of the motor is smaller than that of the voltage saturation region, the rotor position is estimated based on the motor current without extracting the current fluctuation component. Motor control device.

Citation Information

Patent Citations

  • Motor controller

    JP2014180148A

  • Motor control device

    JP2014212584A

  • Motor control device

    JP2021125898A

  • Motor drive device, refrigeration cycle device equipped with same, and motor drive method

    WO2019073599A1