Motor control device

JPWO2024195023A5Active Publication Date: 2025-05-14MITSUBISHI ELECTRIC MOBILITY CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025507992
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-03-22
Filing Date
2023-03-22
Publication Date
2025-05-14
Estimated Expiration
2043-03-22

AI Technical Summary

Technical Problem

Existing motor control systems for synchronous motors with permanent magnets struggle to effectively reduce torque ripple and disturbances, particularly at high speeds, due to pulsations in magnetic flux and inductance, which are not adequately addressed by existing feedforward control methods.

Method used

A motor control device that includes an inverter and a controller with a current command calculator, a voltage command calculator, and a cancellation calculator, which generates a cancellation voltage command to suppress torque pulsations and disturbances by adding it to the fundamental wave command, effectively reducing the influence of these issues at high speeds.

Benefits of technology

The solution significantly reduces torque pulsations and disturbances in synchronous motors at high speeds, improving motor performance and reducing noise and vibration, especially in applications like electric power steering and steer-by-wire systems.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

The present invention comprises an inverter that supplies power to a motor and a controller that controls the motor and outputs a command signal to the inverter, wherein the controller includes: a current command value calculator that calculates a current command value in the rotating frame of the motor; a voltage command value calculator that calculates a fundamental wave command value, which is a voltage command value in the rotating frame of the motor, by means of feedback control over the current command value; a cancellation calculator that calculates a cancellation voltage command value for suppressing torque pulsation in the motor and for suppressing the influence of disturbances on the motor, on the basis of an objective current, which is either the current command value or the motor current flowing through the motor, and the rotor position of the motor; and a PWM signal generator that generates the command signal to be output to the inverter by using an added fundamental wave command value in which the cancellation voltage command value is added to the fundamental wave command value.
Need to check novelty before this filing date? Find Prior Art

Description

Motor control device

[0001] The present disclosure relates to a motor control device.

[0002] Synchronous motors with permanent magnets in the rotor are widely used as variable-speed AC motors. These synchronous motors are also called brushless motors. When controlling synchronous motors, reducing torque ripple generated by the synchronous motor is an important issue. For example, Patent Document 1 discloses a technique for setting a feedforward term to cancel torque ripple using a magnetic flux / reluctance term that depends on the magnetic flux / reluctance of the motor. Patent Document 2 discloses a technique for superimposing (adding) a q-axis oscillating voltage command value, which has the same frequency as the torque ripple generated in the rotor output torque and is used to cancel the torque ripple component, on a q-axis basic voltage command value.

[0003] Patent No. 6760197 Patent No. 7090812

[0004] In paragraphs 0047-0048, FIG. 5, and FIG. 12 of Patent Document 1, coefficients Kvdff_Lφ and Kvqff_Lφ used to calculate the magnetic flux / inductance terms are set based on the torque command Tm* and the predicted electrical angle θees, and the magnetic flux / reluctance terms Vdff_Lφ and Vqff_Lφ are calculated as feedforward voltages by multiplying the coefficients by the rotational speed Nm. Paragraph 0048 describes how the coefficients Kvdff_Lφ and Kvqff_Lφ are determined in advance through experiments and analysis in accordance with the predicted electrical angle θees and the torque command Tm*. Even if the torque command Tm* is given, field-weakening control may be performed depending on the motor rotational speed, for example, in a region where the motor rotates at high speed. In such cases, even if the torque command Tm* is the same, a d-axis current, which is a flux-weakening current, must be passed depending on the motor rotational speed to avoid voltage saturation. Therefore, for a given torque command Tm*, the d-axis current, which is a flux-weakening current, varies depending on the motor rotation speed. Here, the pulsation of the inductance L and / or the magnetic flux φ may vary depending on the amount of d-axis current flowing. The technology of Patent Document 1 determines the inductance L and / or the magnetic flux φ in accordance with the predicted electrical angle θees and the torque command Tm* based on advance experiments and analyses, and therefore cannot handle motors in which the pulsation of the inductance L and / or the magnetic flux φ varies due to fluctuations in the d-axis current caused by field-weakening control being performed in accordance with the motor rotation speed.

[0005] In Patent Document 2, feedforward control is performed on the rotor output torque T shown in Equation (1) to reduce the torque ripple component ΔT, which is a pulsating component of the output torque T shown in Equation (2). Specifically, oscillating voltage command values ​​shown in Equation (8) and Equation (9) in Patent Document 2 are calculated. These oscillating voltage command values ​​are for suppressing torque ripple caused by changes in the rotor output torque T, and do not address changes in impedance in the motor's voltage equation, i.e., disturbances. One of the causes of torque ripple is pulsation in magnetic flux and / or inductance. This pulsation depends not only on the output torque T but also on changes in impedance in the motor's voltage equation. The technology in Patent Document 2 does not address fluctuations in impedance in the voltage equation, i.e., disturbances.

[0006] The present disclosure has been made to solve the above problems, and its purpose is to provide a motor control device that can reduce the effects on a motor of torque pulsations and disturbances in the range in which the motor rotates at high speeds.

[0007] In order to solve the above problems, one aspect of the present disclosure is a motor control device including an inverter that supplies power to a motor, and a controller that controls the motor and outputs a command signal to the inverter, wherein the controller has a current command value calculator that calculates current command values ​​for two rotational axes of the motor, a voltage command value calculator that calculates a fundamental wave command value that is a voltage command value for the two rotational axes of the motor by feedback control of the current command value, a cancellation calculator that calculates a cancellation voltage command value that suppresses torque pulsation in the motor and suppresses the effects of disturbances generated in the motor, based on a rotor position of the motor, which is a target current that is either the current command value or a motor current flowing through the motor, and a PWM signal generator that generates the command signal to be output to the inverter using a post-addition fundamental wave command value in which the cancellation voltage command value is added to the fundamental wave command value.

[0008] According to the present disclosure, it is possible to reduce the influence of torque pulsation and disturbances on a motor in a region where the motor rotates at high speed.

[0009] 18 is a block diagram showing a configuration of a motor control device according to a first embodiment. FIG. 19 is a diagram for explaining a generation principle of a switching signal according to the first embodiment. FIG. 19 is a diagram showing an example of a torque pulsation waveform according to the first embodiment. FIG. 19 is a diagram showing an example of a torque pulsation waveform according to the first embodiment. FIG. 19 is a diagram showing an example of an amplitude table for suppressing torque pulsation according to the first embodiment. FIG. 19 is a diagram showing an example of a phase table for suppressing torque pulsation according to the first embodiment. FIG. 19 is a diagram showing an example of a waveform affected by a disturbance according to the first embodiment. FIG. 19 is a diagram showing an example of a waveform affected by a disturbance according to the first embodiment. FIG. 19 is a diagram showing an example of an amplitude table for suppressing the influence of a disturbance according to the first embodiment. FIG. 19 is a diagram showing an example of a phase table for suppressing the influence of a disturbance according to the first embodiment. FIG. 20 is a block diagram showing a configuration of a motor control device according to a second embodiment. FIG. 21 is a block diagram showing a configuration of a current command value calculator according to the second embodiment. FIG. 22 is a block diagram showing a configuration of a q-axis current limiter according to the second embodiment. FIG. 22 is a diagram for explaining processing performed by the q-axis current limiter according to the second embodiment. FIG. 23 is a diagram for explaining processing performed by a q-axis current limiter according to a modification of the second embodiment. FIG. 23 is a block diagram showing a configuration of a motor control device according to a third embodiment. FIG. 24 is a diagram showing an example of an amplitude table according to the third embodiment. FIG. 24 is a diagram showing an example of a phase table according to the third embodiment. FIG. 25 is a diagram for explaining the phase table of FIG. 25. FIG. 26 is a block diagram showing a configuration of a motor control device according to a fourth embodiment.

[0010] [Embodiment 1] Figure 1 is a block diagram showing the configuration of a motor control device according to embodiment 1. As shown in Figure 1, motor control device 100 includes a rotational position detector 2, a current detector 3, an inverter 5, and a controller 6. A DC power supply 4 and a motor 1 are connected to motor control device 100. Motor control device 100 controls motor 1 based on a torque command T_ref, which serves as a control command input from outside motor control device 100.

[0011] The motor 1 is a three-phase AC rotating machine having three-phase windings U, V, and W. The motor 1 is also an AC rotating machine that can be controlled based on two rotating axes. In this specification, the "two rotating axes" refer to two axes that rotate synchronously with the rotor of the motor 1 and are perpendicular to each other in a cross section. A "cross section" refers to a cross section perpendicular to the central axis of the rotor. For example, the two rotating axes may be d-q axes. The d-axis is an axis connecting the central axis of the rotor and the magnetic poles. The q-axis is an axis perpendicular to both the d-axis and the central axis. The two rotating axes may also be γ-δ axes. The γ-axis is an axis shifted in the rotational direction from the d-axis. The δ-axis is an axis perpendicular to both the γ-axis and the central axis. One of the two rotating axes is referred to as the first axis, and the other is referred to as the second axis. For example, if the d-axis is referred to as the first axis, the q-axis is referred to as the second axis. Note that the q-axis may be the first axis and the d-axis may be the second axis. Similarly, when the γ axis is referred to as the first axis, the δ axis is referred to as the second axis.

[0012] In the following description, the motor 1 is a permanent magnet synchronous motor, and the two rotating axes are the d- and q-axes. However, the motor 1 may also be, for example, a wound-field synchronous motor, an induction motor, or a synchronous reluctance motor. The d-axis and q-axis in the following disclosure may be replaced with the δ-axis and γ-axis.

[0013] The rotational position detector 2 includes a resolver, an encoder, an MR (magnetoresistive) sensor, etc., and uses these to detect the rotor position θ. The rotor position θ is the position of the rotor of the motor 1 in the direction of rotation. In this embodiment, the rotational position detector 2 is used to detect the rotor position θ of the motor 1. However, it is also possible to employ a configuration in which the rotor position θ of the motor 1 is estimated without using the rotational position detector 2. In other words, in the present disclosure, the motor control device 100 does not necessarily have to include the rotational position detector 2.

[0014] The DC power supply 4 is, for example, a battery, a DC-DC converter, a diode rectifier, or a PWM (Pulse Width Modulation) rectifier, and outputs a DC bus voltage Vdc to an inverter 5 (described later). The DC power supply 4 includes all devices that output a DC voltage.

[0015] The inverter 5 is a power converter that applies a voltage to the motor 1. The inverter 5 applies an AC voltage to the three-phase windings U, V, and W of the motor 1 based on the DC bus voltage Vdc output from the DC power supply 4 and the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn output from the controller 6.

[0016] The inverter 5 includes switching elements Sup, Svp, Swp, Sun, Svn, and Swn. Each of the switching elements is a semiconductor switch, such as an insulated gate bipolar transistor (IGBT), a bipolar transistor, or a metal oxide semiconductor (MOS) power transistor. Each of the switching elements has a diode or a body diode connected in antiparallel.

[0017] The switching elements Sup, Svp, and Swp on the high potential side of the upper arm are connected to the positive electrode of the DC power supply 4. The switching elements Sun, Svn, and Swn on the low potential side of the lower arm are connected to the switching elements Sup, Svp, and Swp of the upper arm, respectively.

[0018] The upper-arm switching elements Sup, Svp, and Swp receive switching signals Gup, Gvp, and Gwp output from the controller 13, respectively. The lower-arm switching elements Sun, Svn, and Swn receive switching signals Gun, Gvn, and Gwn output from the controller 13, respectively. The upper-arm switching elements Sup, Svp, and Swp and the lower-arm switching elements Sun, Svn, and Swn are turned on or off by the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn output from the controller 13. Here, the on state is a conductive state. The off state is a non-conductive state. In this specification and drawings, the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn may be collectively referred to as "switching signals Gup to Gwn."

[0019] For example, when the switching signal Gup outputs a signal indicating, for example, "1" as an ON command, the switching element Sup is turned on. When the switching signal Gup outputs a signal indicating, for example, "0 (zero)" as an OFF command, the switching element Sup is turned off. The same applies to the other switching elements Svp, Swp, Sun, Svn, and Swn.

[0020] The switching signals Gup to Gwn are generated by a PWM signal generator 11 based on three-phase voltage command values ​​vu, vv, and vw output from a coordinate converter 10 of the controller 6. In this embodiment, the voltage command values ​​vu, vv, and vw used to generate the switching signals Gup to Gwn are command values ​​to which a cancellation voltage command value vq_cancel has been added. The cancellation voltage command value vq_cancel is a correction command value generated by a cancellation calculator 20 that is superimposed on the voltage command value vq in order to suppress the effects of torque pulsation and disturbances. Specifically, the cancellation voltage command value vq_cancel is superimposed on the voltage command value vq of the two-phase voltage command values ​​vd and vq before being converted from two phases to three phases in the coordinate converter 10 of the controller 6. The two-phase voltage command values ​​vd, vq and the three-phase voltage command values ​​vu, vv, vw are equivalent to each other, with only two-phase to three-phase coordinate conversion being performed. Therefore, the three-phase voltage command values ​​vu, vv, vw are command values ​​to which the cancellation voltage command value vq_cancel has been added. A specific method by which the cancellation calculator 20 generates the cancellation voltage command values ​​will be described in detail later. Also, a specific method by which the PWM signal generator 11 generates the switching signals Gup to Gwn based on the three-phase voltage command values ​​vu, vv, vw will be described in detail later.

[0021] The current detector 3 detects motor currents iu, iv, and iw flowing through the three-phase windings U, V, and W of the motor 1. The current detector 3 outputs information indicating the detected motor currents iu, iv, and iw to the controller 6. Any method for detecting phase currents may be adopted for the current detector 3. Alternatively, the current detector 3 may detect the motor currents iu, iv, and iw using voltages across shunt resistors (not shown) connected in series with the lower-potential side switching elements Sun, Svn, and Swn, which are the lower arms of the inverter 5, and switching signals Gun, Gvn, and Gwn. Alternatively, the motor currents iu, iv, and iw may be detected using a known "lower-arm two-shunt method" or a known "bus-bar one-shunt detection method."

[0022] The controller 6 uses a torque command T_ref, motor currents iu, iv, iw, and rotor position θ as input values, and generates switching signals Gup to Gwn for driving the inverter 5 based on these values. The controller 6 outputs the generated switching signals Gup to Gwn to the inverter 5. The controller 6 is a PWM controller that outputs the switching signals Gup to Gwn using a discrete time calculator such as a microcomputer or a DSP (Digital Signal Processor). The controller 6 includes a current command value calculator 7, a detection coordinate converter 8, a current controller 9, a control coordinate converter 10, a PWM signal generator 11, a speed calculator 12, adders 14 and 15, amplifiers 16 and 17, and a cancellation calculator 20.

[0023] The current command value calculator 7 calculates current command values ​​id_ref and iq_ref, which are current command values ​​in the dq coordinate system, based on the torque command T_ref. For example, the current command value calculator 7 calculates the current command value id_ref using equation (1-1). The current command value calculator 7 also calculates the current command value iq_ref using equation (1-2). T_ref is the torque command, and Kt is the torque constant [Nm / A].

[0024] id_ref=0...Equation (1-1) iq_ref=T_ref / Kt...Equation (1-2)

[0025] The current command value calculator 7 sets the current command value id_ref on the d-axis to 0 (zero) as shown in equation (1-1). The current command value calculator 7 also sets the current command value iq_ref on the q-axis to a value obtained by multiplying the torque command T_ref by 1 / Kt as shown in equation (1-2). id_ref is also called a "field-weakening current command value," and iq_ref is also called a "torque current command value." The current command value calculator 7 may use known techniques such as MTPA (Max Torque per Ampere) control, MTPV (Max Torque per Voltage) control, or flux-weakening control, or a combination thereof. A method for calculating the current command values ​​id_ref and iq_ref with limited voltage utilization rates will be described in a second embodiment, which will be described later.

[0026] The coordinate converter 8 performs coordinate conversion based on the three-phase motor currents iu, iv, iw detected by the current detector 3 and the rotor position θ detected by the rotational position detector 2. As a result, the coordinate converter 8 calculates motor currents id, iq on the two rotational axes (d-axis, q-axis), and outputs the motor currents id, iq after coordinate conversion, which are the calculation results, to the current controller 9.

[0027] The adder 15 adds the torque pulsation suppression command value i_cancel2 calculated by the cancellation calculator 20 to the current command value iq_ref calculated by the current command value calculator 7, and outputs the current command value iq_ref2 after the addition to the current controller 9.

[0028] The current controller 9 calculates fundamental wave command values ​​vd, vq, which are voltage command values ​​for the two rotational axes (d and q axes) to the motor 1, by feedback control of the current command value id_ref output from the current command value calculator 7 for the d axis and the current command value iq_ref2 after addition output from the adder 15 for the q axis. The current controller 9 calculates fundamental wave command values ​​vd, vq for the two rotational axes (d and q axes) based on the current command value id_ref, the current command value iq_ref2, and the motor currents id, iq for the two rotational axes (d and q axes) output from the coordinate converter 8.

[0029] The current controller 9 includes a subtractor 90 , a d-axis current controller 91 , a subtractor 92 , and a q-axis current controller 93 .

[0030] The subtractor 90 calculates a d-axis current deviation ed, which is the deviation between the d-axis current command value id_ref and the d-axis motor current id, and outputs the calculated d-axis current deviation ed to a d-axis current controller 91. The d-axis current controller 91 uses a control method such as P control or PI control to calculate a fundamental wave command value vd so that the d-axis current deviation ed becomes 0 (zero). The d-axis current controller 91 outputs the calculated fundamental wave command value vd to the coordinate converter 10.

[0031] The subtractor 92 calculates a q-axis current deviation eq, which is the deviation between the current command value iq_ref2 on the q-axis and the motor current iq on the q-axis, and outputs the calculated q-axis current deviation eq to a q-axis current controller 93. The q-axis current controller 93 uses a control method such as P control or PI control to calculate a fundamental wave command value vq so that the q-axis current deviation eq becomes 0 (zero). The q-axis current controller 93 outputs the calculated fundamental wave command value vq to the adder 14.

[0032] The adder 14 adds the cancellation voltage command value vq_cancel calculated by the cancellation calculator 20 to the fundamental wave command value vq calculated by the q-axis current controller 93, and outputs the fundamental wave command value vq′ after the addition to the coordinate converter 10.

[0033] The coordinate converter 10 performs coordinate conversion based on the fundamental wave command values ​​vd, vq' and the rotor position θ detected by the rotational position detector 2, and calculates fundamental wave command values ​​vu, vv, vw, which are three-phase voltage command values. The fundamental wave command values ​​vu, vv, vw calculated by the coordinate converter 10 are calculated using the fundamental wave command value vd and the fundamental wave command value vq' obtained by adding the cancellation voltage command value vq_cancel, and therefore are fundamental wave command values ​​vu, vv, vw that reflect the cancellation voltage command value vq_cancel. The coordinate converter 10 outputs the calculated fundamental wave command values ​​vu, vv, vw to the PWM signal generator 11.

[0034] The PWM signal generator 11 outputs PWM (Pulse Width Modulation) modulated switching signals Gup to Gwn based on the fundamental wave command values ​​vu, vv, and vw output from the coordinate converter 10 .

[0035] Here, a method by which the PWM signal generator 11 generates the switching signals Gup to Gwn will be described using FIG. 2. FIG. 2 is a diagram for explaining the principle of generating the switching signals in the first embodiment. FIG. 2 shows time-series changes in the fundamental wave command values ​​vu, vv, and vw, the carrier wave C which is a carrier triangular wave with a period Tc (frequency fc), and the switching signals Gup to Gwn. The horizontal axis of FIG. 2 represents time, and the vertical axis represents signal level. The PWM signal generator 11 generates the switching signals Gup to Gwn by comparing the fundamental wave command values ​​vu, vv, and vw with the carrier wave C.

[0036] Specifically, if the fundamental wave command value vu is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gup to, for example, "1" as an ON command and sets the switching signal Gun to "0 (zero)" as an OFF command. On the other hand, if the fundamental wave command value vu is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gup to "0 (zero)" as an OFF command and sets the switching signal Gun to "1" as an ON command.

[0037] Furthermore, if the fundamental wave command value vv is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gvp as an ON command, for example, to "1," and sets the switching signal Gvn as an OFF command, for example, to "0 (zero)." On the other hand, if the fundamental wave command value vv is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gvp as an OFF command, for example, to "0 (zero)," and sets the switching signal Gvn as an ON command, for example, to "1."

[0038] Furthermore, if the fundamental wave command value vw is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gwp as an ON command, for example, to "1," and sets the switching signal Gwn as an OFF command, for example, to "0 (zero)." On the other hand, if the fundamental wave command value vw is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gwp as an OFF command, for example, to "0 (zero)," and sets the switching signal Gwn as an ON command, for example, to "1."

[0039] In addition, a short circuit prevention time, i.e., a dead time, may be provided for the switching signals Gup to Gwn so that the upper arm switching elements Sup, Svp, Swp and the lower arm switching elements Sun, Svn, Swn in the inverter 5 are not turned on simultaneously.

[0040] Returning to the explanation of Figure 1, the speed calculator 12 detects the rotational angular velocity ω of the motor 1 based on the rotor position θ of the motor 1 detected by the rotational position detector 2. The speed calculator 12 calculates the rotational angular velocity ω of the motor 1 by performing a differential operation or difference operation on the rotor position θ, and outputs the calculated rotational angular velocity ω. The rotational angular velocity ω of the motor 1 that is output here is the rotational angular velocity of the electrical angle of the motor 1, and is equal to the rotational angular velocity of the mechanical angle multiplied by the number of pole pairs of the motor 1.

[0041] Amplifier 16 calculates (Nω) by multiplying the rotational angular velocity ω output from velocity calculator 12 by a constant N, and outputs the calculated value (Nω) to amplifier 17. Here, constant N is the order of the torque pulsation generated by motor 1 that is to be suppressed. For example, if a frequency component corresponding to six times the fundamental frequency (the frequency at the aforementioned fundamental wave command values ​​vu, vv, vw) of the torque pulsation generated by motor 1 is to be suppressed, constant N is set to "6." Hereinafter, the frequency component corresponding to N times the fundamental frequency may be referred to as the "frequency component of the Nth electrical angle order."

[0042] The amplifier 17 calculates a value (NωL) by multiplying the rotational angular velocity ω output from the amplifier 16 by a constant N, and then multiplying the result by a constant L, and outputs the calculated value (NωL) to the cancellation calculator 20. The constant L here is the inductance of the motor 1.

[0043] The cancellation calculator 20 calculates a cancellation voltage command value vq_cancel and a torque pulsation suppression command value i_cancel2 based on the current command values ​​id_ref, iq_ref output from the current command value calculator 7, the rotor position θ output from the rotational position detector 2, and the value (NωL) output from the amplifier 17.

[0044] The cancellation calculator 20 includes a torque suppression command value calculator 21, a disturbance suppression command value calculator 22, an adder 23, a multiplier 24, an adder 25, a limiter 26, an amplifier 27, and an amplifier 28.

[0045] The torque suppression command value calculator 21 calculates torque pulsation suppression command values ​​i_cancel and i_cancel2 based on the current command values ​​id_ref and iq_ref and the rotor position θ. The torque pulsation suppression command values ​​i_cancel and i_cancel2 are both current command values ​​for suppressing torque pulsation. The torque pulsation suppression command values ​​i_cancel and i_cancel2 are sinusoidal waves with the same amplitude but different phases.

[0046] The torque suppression command value calculator 21 includes a torque suppression command amplitude calculator 210 , a torque suppression command phase calculator 211 , an adder 212 , a cosine calculator 213 , a multiplier 214 , a subtractor 215 , a cosine calculator 216 , and a multiplier 217 .

[0047] The torque suppression command amplitude calculator 210 calculates an amplitude i_ca_amp, which is the amplitude value of the torque pulsation suppression command values ​​i_cancel and i_cancel2, based on the current command values ​​id_ref and iq_ref. The method by which the torque suppression command amplitude calculator 210 calculates the amplitude i_ca_amp will be described with reference to FIGS. 3 to 6. FIGS. 3 and 4 are diagrams showing examples of torque pulsation waveforms according to the first embodiment. FIG. 5 is a diagram showing an example of an amplitude table for suppressing torque pulsation according to the first embodiment. FIG. 6 is a diagram showing an example of a phase table for suppressing torque pulsation according to the first embodiment.

[0048] 3 shows an example of a torque pulsation waveform including a sixth electrical frequency component extracted from the torque measured when a sinusoidal current is passed through the motor 1 and the motor is driven under specific current conditions. The current conditions for the motor 1 here are such that the motor current Id on the d-axis of the motor 1 is a constant value Id1, the motor current Iq on the q-axis is a constant value Iq1, and the rotational angular velocity of the motor 1 is constant.

[0049] In this specification and drawings, the current condition when the motor 1 is driven with motor currents Id=Id# and Iq=Iq# may be referred to as the current condition (Id#, Iq#). # is a number for identifying the current value. For example, the current condition when the motor 1 is driven with currents Id=Id1 and Iq=Iq1 is referred to as the current condition (Id1, Iq1).

[0050] The motor current Id may be a d-axis current command value id_ref, and the motor current Iq may be a q-axis current command value iq_ref.

[0051] The middle part of FIG. 3 shows a motor current waveform for suppressing torque pulsation, which is the torque pulsation waveform shown in the upper part multiplied by "-1 / Kt".

[0052] The lower part of Figure 3 shows an example in which the waveform of the motor current shown in the middle part is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing torque pulsation under current conditions (Id1, Iq1) is amplitude i_ca_amp(Id1, Iq1). The initial phase of the motor current for suppressing torque pulsation under current conditions (Id1, Iq1) is phase i_ca_ph(Id1, Iq1).

[0053] The upper part of Figure 4 shows an example of a torque pulsation waveform, which is a sixth electrical frequency component, extracted from the torque of motor 1 driven under current conditions different from those in Figure 3. The current conditions for motor 1 here are current conditions (Id2, Iq1), in which motor current Id on the d-axis of motor 1 is a constant value Id2, Iq on the q-axis is a constant value Iq1, and the rotational angular velocity of motor 1 is constant.

[0054] The middle part of FIG. 4 shows the waveform of the motor current for suppressing torque pulsation, which is the torque pulsation waveform shown in the upper part multiplied by "-1 / Kt".

[0055] The bottom part of Figure 4 shows an example in which the waveform of the motor current shown in the middle part is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current that suppresses torque pulsation under current conditions (Id2, Iq1) is amplitude i_ca_amp(Id2, Iq1). The initial phase of the motor current that suppresses torque pulsation under current conditions (Id2, Iq1) is phase i_ca_ph(Id2, Iq1).

[0056] An example of the torque suppression amplitude table 210Tbl is shown in Figure 5. The torque suppression amplitude table 210Tbl is a table showing the correspondence between current conditions and amplitude values ​​of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to Figures 3 and 4, amplitude values ​​of the motor current that suppress torque pulsation under various current conditions that are expected to be applied to the motor 1 are calculated in advance, and the calculated amplitude values ​​are stored in the torque suppression amplitude table 210Tbl.

[0057] When the motor 1 is rotating, the current command values ​​id_ref, iq_ref are input to the torque suppression command amplitude calculator 210. The torque suppression command amplitude calculator 210 references a torque suppression amplitude table 210Tbl based on the input current command values ​​id_ref, iq_ref, and acquires an amplitude i_ca_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The torque suppression command amplitude calculator 210 outputs the acquired amplitude i_ca_amp(id_ref, iq_ref) as the amplitude i_ca_amp of the current command value for suppressing torque pulsation in the motor 1.

[0058] Here, the torque suppression command amplitude calculator 210 may calculate the amplitude i_ca_amp by linear interpolation. For example, when the current command value iq_ref under the current condition for which the amplitude is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the torque suppression amplitude table 210Tbl, the torque suppression command amplitude calculator 210 calculates the amplitude i_ca_amp by linear interpolation. For example, the torque suppression command amplitude calculator 210 may calculate the amplitude value under a current condition (IdM, Iq1) between the current condition (Id1, Iq1) in FIG. 3 and the current condition (Id2, Iq1) in FIG. 4 by linear interpolation. Here, IdM is, for example, (Id1 + Id2) / 2. In this case, the torque suppression command amplitude calculator 210 calculates, as the amplitude i_ca_amp(IdM, Iq1), a value obtained by adding the amplitude i_ca_amp(Id1, Iq1) and the amplitude i_ca_amp(Id2, Iq1) and multiplying the sum by 1 / 2.

[0059] An example of the torque suppression phase table 211Tbl is shown in Figure 6. The torque suppression phase table 211Tbl is a table showing the correspondence between current conditions and amplitude values ​​of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to Figures 3 and 4, the initial phase of the motor current that suppresses torque pulsation under various current conditions that are expected to be applied to the motor 1 is calculated in advance, and a phase that is 90 degrees ahead of the calculated initial phase is stored in the torque suppression phase table 211Tbl.

[0060] For example, if the initial phase under the current condition (Id1, Iq1) is phase i_ca_ph(Id1, Iq1), the torque suppression phase table 211Tbl stores phase {i_ca_ph(Id1, Iq1)+90}, which is obtained by adding 90 to phase i_ca_ph(Id1, Iq1) and advancing it by 90 degrees. Also, if the initial phase under the current condition (Id2, Iq1) is phase i_ca_ph(Id2, Iq1), the torque suppression phase table 211Tbl stores phase {i_ca_ph(Id2, Iq1)+90}.

[0061] When the motor 1 is rotating, the current command values ​​id_ref and iq_ref are input to the torque suppression command phase calculator 211. The torque suppression command phase calculator 211 references a torque suppression phase table 211Tbl based on the current command values ​​id_ref and iq_ref, and acquires the initial phase {i_ca_ph(id_ref, iq_ref)+90} corresponding to the current condition (id_ref, iq_ref).

[0062] The torque suppression command phase calculator 211 outputs the acquired phase {i_ca_ph(id_ref, iq_ref)+90} as the initial phase i_ca_phase of the current command value for suppressing torque pulsation in the motor 1 under the current condition (id_ref, iq_ref). That is, there is a relationship i_ca_phase=i_ca_ph+90.

[0063] Here, the torque suppression phase table 211Tbl stores a phase that is 90 degrees ahead of the phase i_ca_ph. This is to supply a motor current corresponding to the torque pulsation suppression command value i_cancel2 to the motor 1. More specifically, a cancel voltage command value vq_cancel, which includes a component of the torque pulsation suppression command value i_cancel2, is added to the fundamental wave command value vq. For this reason, the phase of the torque pulsation suppression command value i_cancel2 is advanced by 90 degrees. Here, 90 degrees is a phase that corresponds to a quarter cycle, assuming that one cycle in the waveform of the frequency component of the Nth electrical angle to be suppressed is 360 degrees.

[0064] The torque suppression command value calculator 21 calculates torque pulsation suppression command values ​​i_cancel and i_cancel2 shown in equations (1-3) and (1-4). The constant N is the order to be suppressed. θ is the rotor position θ detected by the rotational position detector 2.

[0065] i_cancel=i_ca_amp×cos(Nθ+i_ca_phase)…Formula (1-3) i_cancel2=i_ca_amp×cos(Nθ+i_ca_phase−90)…Formula (1-4)

[0066] Here, the process of deriving the torque pulsation suppression command value i_cancel shown in equation (1-3) will be specifically described.

[0067] The adder 212 adds the phase i_ca_phase calculated by the torque suppression command phase calculator 211 to a value (Nθ) obtained by multiplying the rotor position θ by a constant N. The value (Nθ) obtained by multiplying the rotor position θ by a constant N is calculated by an amplifier 28, which will be described later, and output to the adder 212. The adder 212 outputs the phase after the addition (Nθ+i_ca_phase) to the cosine calculator 213.

[0068] The cosine calculator 213 calculates the sine wave cos(Nθ+i_ca_phase) having the phase (Nθ+i_ca_phase) output from the adder 212 , and outputs the calculated sine wave cos(Nθ+i_ca_phase) to the multiplier 214 .

[0069] The multiplier 214 multiplies the sine wave cos(Nθ+i_ca_phase) output from the cosine calculator 213 by the amplitude i_ca_amp. The multiplier 214 outputs the sine wave {i_ca_amp×cos(Nθ+i_ca_phase)} after the multiplication as the cancel voltage command value i_cancel.

[0070] Here, the process of deriving the torque pulsation suppression command value i_cancel2 shown in equation (1-4) will be specifically described.

[0071] The subtractor 215 subtracts 90 from the phase (Nθ+i_ca_phase) output from the adder 212 to obtain a phase (Nθ+i_ca_phase−90), and outputs the phase to the cosine calculator 216 .

[0072] The cosine calculator 216 calculates the sine wave cos(Nθ+i_ca_phase−90) having the phase (Nθ+i_ca_phase−90) output from the adder 212 , and outputs the calculated sine wave cos(Nθ+i_ca_phase−90) to the multiplier 217 .

[0073] The multiplier 217 multiplies the sine wave cos(Nθ+i_ca_phase−90) output from the cosine calculator 216 by the amplitude i_ca_amp. The multiplier 217 outputs the sine wave {i_ca_amp×cos(Nθ+i_ca_phase−90)} after the multiplication as the cancel voltage command value i_cancel2.

[0074] Here, as described above, the phase i_ca_phase is the phase i_ca_ph advanced by 90 degrees, and there is a relationship i_ca_phase=i_ca_ph+90, so equation (1-4) is equivalent to equation (1-5).

[0075] i_cancel2=i_ca_amp×cos(Nθ+i_ca_ph)...Formula (1-5)

[0076] The torque pulsation suppression command value i_cancel2 calculated by the cancellation calculator 20 corresponds to the motor current shown in the middle and bottom rows of Fig. 3 and the middle and bottom rows of Fig. 4. In other words, the torque pulsation suppression command value i_cancel2 is a current command value that is in opposite phase to the torque pulsation in the motor 1 and corresponds to a sine wave whose amplitude is 1 / Kt times the amplitude. The torque pulsation suppression command value i_cancel is also a current command value that corresponds to a sine wave whose phase is 90 degrees ahead of the torque pulsation suppression command value i_cancel2.

[0077] The cancellation calculator 20 outputs the torque pulsation suppression command value i_cancel out of the torque pulsation suppression command values ​​i_cancel and i_cancel2 to the adder 15. The adder 15 adds the torque pulsation suppression command value i_cancel to the current command value iq_ref, and outputs the current command value iq_ref2 after the addition to the current controller 9. Here, it is assumed that the set response frequency in the q-axis current controller 93 is frequency fq.

[0078] In this case, if the frequency of the Nth electrical angle is equal to or lower than frequency fq, the frequency component of the Nth electrical angle in motor current Iq coincides with torque pulsation suppression command value i_cancel2. Torque pulsation suppression command value i_cancel2 is a sine wave that is in opposite phase to the torque pulsation in motor 1 and has an amplitude 1 / Kt times that of the torque pulsation shown in the middle and bottom rows of Fig. 3 or the middle and bottom rows of Fig. 4. Therefore, the torque pulsation shown in the upper row of Fig. 3 or the upper row of Fig. 4 is canceled out, making it possible to suppress torque pulsation in motor 1.

[0079] On the other hand, when the frequency of the Nth electrical angle exceeds frequency fq, it exceeds the range of performance of the q-axis current controller 93. In a band where the frequency of the Nth electrical angle exceeds frequency fq, the cancel voltage command value vq_cancel is used to control the frequency component of the Nth electrical angle included in the motor current Iq so that it coincides with the torque pulsation suppression command value i_cancel2.

[0080] The disturbance reduction command value calculator 22 calculates a disturbance reduction command value i_gairan based on the current command values ​​id_ref, iq_ref and the rotor position θ. The disturbance reduction command value i_gairan is a current command value for reducing disturbances.

[0081] The disturbance suppression command value calculator 22 includes a disturbance suppression command amplitude calculator 220 , a disturbance suppression command phase calculator 221 , an adder 222 , a cosine calculator 223 , and a multiplier 224 .

[0082] The disturbance reduction command amplitude calculator 220 calculates an amplitude i_ga_amp, which is the amplitude value of the disturbance reduction command value i_gairan, based on the current command values ​​id_ref and iq_ref. The method by which the disturbance reduction command amplitude calculator 220 calculates the amplitude i_ga_amp will be described with reference to FIGS. 7 to 10. FIGS. 7 and 8 are diagrams showing examples of waveforms affected by disturbances according to the first embodiment. FIG. 9 is a diagram showing an example of an amplitude table for suppressing the effects of disturbances according to the first embodiment. FIG. 10 is a diagram showing an example of a phase table for suppressing the effects of disturbances according to the first embodiment.

[0083] The upper part of Figure 7 shows an example of a waveform affected by a disturbance, including a sixth electrical frequency component extracted from the q-axis motor current Iq when the motor 1 is driven under specific current conditions. The current conditions for the motor 1 here are conditions in which the motor current Id on the d-axis of the motor 1 is a constant value Id1, the motor current Iq on the q-axis is a constant value Iq1, the rotational angular velocity of the motor 1 is constant, and the fundamental wave command values ​​vd and vq are constant. The effects of the disturbance here include the sixth electrical frequency component of the magnetic flux φm of the magnet in the motor 1 and the sixth electrical frequency component of the inductance in the motor 1. These are sixth electrical frequency components caused by fluctuations and distortions in the impedance of the motor 1, i.e., by the disturbance.

[0084] The lower part of Fig. 7 shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of Fig. 7. The lower part of Fig. 7 also shows an example in which the waveform is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing the influence of disturbances under the current condition (Id1, Iq1) is the amplitude i_ga_amp(Id1, Iq1). The initial phase of the motor current for suppressing the influence of disturbances under the current condition (Id1, Iq1) is the phase i_ga_ph(Id1, Iq1).

[0085] The upper part of Figure 8 shows an example of a waveform affected by a disturbance, including a sixth-order electrical frequency component extracted from the q-axis motor current Iq when the motor 1 is driven under current conditions (Id2, Iq1) different from those in Figure 7.

[0086] The lower part of Fig. 8 shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of Fig. 8. The lower part of Fig. 8 also shows an example in which the waveform is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing the influence of disturbances under the current condition (Id2, Iq1) is the amplitude i_ga_amp(Id2, Iq1). The initial phase of the motor current for suppressing the influence of disturbances under the current condition (Id2, Iq1) is the phase i_ga_ph(Id2, Iq1).

[0087] 9 shows an example of the disturbance suppression amplitude table 220Tbl. The disturbance suppression amplitude table 220Tbl is a table showing the correspondence between current conditions and amplitude values ​​of the motor current that suppress the effects of disturbances. For example, using a method similar to that described with reference to FIGS. 7 and 8, amplitude values ​​of the motor current that suppress disturbance pulsation under various current conditions that are expected to be applied to the motor 1 are calculated in advance, and the calculated amplitude values ​​are stored in the disturbance suppression amplitude table 220Tbl.

[0088] When the motor 1 is rotating, the current command values ​​id_ref, iq_ref are input to the disturbance reduction command amplitude calculator 220. The disturbance reduction command amplitude calculator 220 references a disturbance reduction amplitude table 220Tbl based on the input current command values ​​id_ref, iq_ref, and acquires an amplitude i_ga_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The disturbance reduction command amplitude calculator 220 outputs the acquired amplitude i_ga_amp(id_ref, iq_ref) as the amplitude i_ga_amp of a current command value for suppressing the influence of disturbances on the motor 1.

[0089] Here, the disturbance reduction command amplitude calculator 220 may calculate the amplitude i_ga_amp by linear interpolation. For example, when the current command value iq_ref under the current condition for which the amplitude is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the disturbance reduction amplitude table 220Tbl, the disturbance reduction command amplitude calculator 220 calculates the amplitude i_ga_amp by linear interpolation. For example, the disturbance reduction command amplitude calculator 220 may calculate the amplitude value under a current condition (IdM, Iq1) between the current condition (Id1, Iq1) in FIG. 7 and the current condition (Id2, Iq1) in FIG. 8 by linear interpolation. Here, IdM is, for example, (Id1 + Id2) / 2. In this case, the disturbance suppression command amplitude calculator 220 calculates, as the amplitude i_ga_amp(IdM, Iq1), a value obtained by adding the amplitude i_ga_amp(Id1, Iq1) and the amplitude i_ga_amp(Id2, Iq1) and multiplying the sum by 1 / 2.

[0090] 10 shows an example of the disturbance reduction phase table 221Tbl. The disturbance reduction phase table 221Tbl is a table showing the correspondence between current conditions and amplitude values ​​of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to FIGS. 7 and 8, the initial phase of the motor current that suppresses the effects of disturbances under various current conditions that are expected to be applied to the motor 1 is calculated in advance, and the phase that is advanced by 90 degrees from the calculated initial phase is stored in the disturbance reduction phase table 221Tbl.

[0091] For example, when the initial phase under the current condition (Id1, Iq1) is phase i_ga_ph(Id1, Iq1), the disturbance suppression phase table 221Tbl stores phase {i_ga_ph(Id1, Iq1)+90}. When the initial phase under the current condition (Id2, Iq1) is phase i_ga_ph(Id2, Iq1), the disturbance suppression phase table 221Tbl stores phase {i_ga_ph(Id2, Iq1)+90}.

[0092] When the motor 1 is rotating, the current command values ​​id_ref and iq_ref are input to the disturbance suppression command phase calculator 221. The disturbance suppression command phase calculator 221 refers to the disturbance suppression phase table 221Tbl based on the current command values ​​id_ref and iq_ref, and acquires the initial phase {i_ga_ph(id_ref, iq_ref)+90} corresponding to the current condition (id_ref, iq_ref).

[0093] The disturbance suppression command phase calculator 221 outputs the acquired phase {i_ga_ph(id_ref, iq_ref)+90} as the initial phase i_ga_phase of the current command value for suppressing the influence of disturbances on the motor 1 under the current condition (id_ref, iq_ref). That is, there is a relationship i_ga_phase=i_ga_ph+90.

[0094] Here, the disturbance reduction phase table 221Tbl stores a phase that is 90 degrees ahead of the phase i_ga_ph. This is to pass a motor current corresponding to the disturbance reduction command value i_gairan through the motor 1. More specifically, a cancel voltage command value vq_cancel that includes a component of the disturbance reduction command value i_gairan is added to the fundamental wave command value vq. For this reason, the phase of the disturbance reduction command value i_gairan is advanced by 90 degrees.

[0095] The disturbance suppression command value calculator 22 calculates the disturbance suppression command value i_gairan shown in equation (1-6). The constant N is the order to be suppressed. θ is the rotor position θ detected by the rotational position detector 2.

[0096] i_gairan=i_ga_amp×cos(Nθ+i_ga_phase) ...Formula (1-6)

[0097] Here, the process of deriving the disturbance suppression command value i_gairan shown in equation (1-6) will be specifically described.

[0098] The adder 222 adds the phase i_ga_phase calculated by the disturbance suppression command phase calculator 221 to a value (Nθ) obtained by multiplying the rotor position θ by a constant N. The adder 2212 outputs the phase (Nθ+i_ga_phase) after the addition to the cosine calculator 223.

[0099] The cosine calculator 223 calculates the sine wave cos(Nθ+i_ga_phase) having the phase (Nθ+i_ga_phase) output from the adder 222 , and outputs the calculated sine wave cos(Nθ+i_ga_phase) to the multiplier 224 .

[0100] The multiplier 224 multiplies the sine wave cos(Nθ+i_ga_phase) output from the cosine calculator 223 by the amplitude i_ga_amp. The multiplier 224 outputs the multiplied sine wave {i_ga_amp×cos(Nθ+i_ga_phase)} as the disturbance suppression command value i_gairan.

[0101] The cancellation calculator 20 calculates the composite values ​​i_sum and v_sum shown in equations (1-7), (1-8), and (1-9). The constant N is the order to be suppressed. ω is the rotational angular velocity ω detected by the speed calculator 12. The constant L is the inductance of the motor 1. The constant R is the resistance value of the winding resistance of the motor 1.

[0102] i_sum=i_cancel+i_gairan...Formula (1-7) v_sum=N・ω・L・i_sum=N・ω・L・(i_cancel+i_gairan)...Formula (1-8) v_sum2=v_sum+R・i_cancel2 =R・i_cancel2+N・ω・L・(i_cancel+i_gairan) ...Formula (1-9)

[0103] The process of deriving the combined value i_sum shown in equation (1-7) will be specifically described. The adder 23 adds the disturbance suppression command value i_gairan to the torque pulsation suppression command value i_cancel, and outputs the combined value i_sum (=i_cancel+i_gairan) after the addition to the multiplier 24.

[0104] The process of deriving the composite value v_sum shown in equation (1-8) will be specifically described. The multiplier 24 multiplies the composite value i_sum output from the adder 23 by the value (NωL) output from the amplifier 17, and outputs the multiplied composite value v_sum (=NωLi_sum) to the adder 25.

[0105] The process of deriving the composite value v_sum2 shown in equation (1-9) will be specifically described. The amplifier 27 outputs a value obtained by multiplying the torque pulsation suppression command value i_cancel by R to the adder 25. The adder 25 adds the value (R·i_cancel) output from the amplifier 27 to the composite value v_sum, and outputs the resulting composite value v_sum2 to the limiter 26.

[0106] The limiter 26 compares the composite value v_sum2 output from the adder 25 with an upper limit value (+vq_clip) and a lower limit value (-vq_clip), and limits the composite value v_sum2 to a value between the lower limit value and the upper limit value based on the comparison result, and outputs the limited value as the cancellation voltage command value vq_cancel. Specifically, the limiter 26 uses equation (1-10) to limit the composite value v_sum2 to a value between the lower limit value and the upper limit value.

[0107] If (v_sum2<-vq_clip), then →vq_cancel=-vq_clip If (-vq_clip<v_sum2<vq_clip), then →vq_cancel=v_sum2 If (vq_clip<v_sum2), then →vq_cancel=vq_clip ...Equation (1-10)

[0108] Here, the limit value vq_clip set as the upper and lower limits will be described. The limit value vq_clip is calculated as shown in equation (1-11) using the order N of the electrical angle to be suppressed, the maximum rotational angular velocity ωmax at the rotational angular velocity ω used for calculation in the cancellation calculator 20, the inductance L of the motor 1, and the maximum composite value i_sum_max at the composite value i_sum.

[0109] vq_clip=N・ωmax・L・i_sum_max…Formula (1-11)

[0110] Alternatively, the rotational angular velocity ω of the motor 1 may be input to the limiter 26, and the limit value vq_clip may be calculated using an equation in which the maximum rotational angular velocity ωmax in equation (1-11) is replaced with the rotational angular velocity ω.

[0111] Furthermore, when equation (1-9) is taken into consideration in equation (1-10), the following equation (1-12) is obtained.

[0112] If (v_sum2<-vq_clip), →vq_cancel=-vq_clip If (-vq_clip<v_sum2<vq_clip), →vq_cancel=R·i_cancel2+N·ω·L·(i_cancel+i_gairan) If (vq_clip<v_sum2), →vq_cancel=vq_clip ...Equation (1-12)

[0113] As shown in equation (1-12), the limiter 26 limits a composite value v_sum2, which includes a value obtained by multiplying the sum of the disturbance suppression command value i_gairan and the torque pulsation suppression command value i_cancel by a coefficient including the rotational angular velocity ω of the motor, by a limit value vq_clip. Here, the limit value vq_clip is a value calculated based on the rotational angular velocity ω of the motor 1 and the inductance L, which is an electrical constant. In other words, the cancel voltage command value vq_clip is calculated based on the sum of the "disturbance suppression command value and torque pulsation suppression command value" after the limit.

[0114] The coordinate converter 10 outputs the cancel voltage command value vq_cancel to the adder 14. The adder 14 adds the cancel voltage command value vq_cancel to the fundamental wave command value vq, and outputs the fundamental wave command value vq′ after the addition to the coordinate converter 10.

[0115] Here, the effects of the motor control device 100 according to the first embodiment will be described. The voltage equation for the q-axis in the motor 1 is expressed by the following equation (1-13). R is the resistance value of the winding resistance in the motor 1. L is the inductance in the motor 1. φ is the flux linkage in the motor 1. s is the Laplace operator. Vq is the q-axis motor voltage. iq is the q-axis motor current. id is the d-axis motor current.

[0116] Vq=R・iq+sL・iq+ω(L・id+φ) …Formula (1-13)

[0117] Here, in equation (1-13), it is assumed that the motor current id = 0 (zero) and that there is no pulsating component in the interlinkage magnetic flux φ. At this time, it is assumed that the inductance L includes, in addition to the DC component L_dc, a sixth-order electrical frequency component L_6f in the inductance L. In this case, L can be expressed as L = L_dc + L_6f, and equation (1-13) can be expressed as the following equation (1-14).

[0118] Vq=R・iq+s(L_dc+L_6f)・iq+ωφ...Formula (1-14)

[0119] Consider the situation in which motor 1 is rotating at high speed in equation (1-14). In this case, the first term on the right-hand side of equation (1-14) is relatively small compared to the second term on the right-hand side and can therefore be ignored. Furthermore, when motor 1 is rotating at high speed and the corresponding sixth-order frequency component is greater than the response frequency of q-axis current controller 93, and the manipulated variable of q-axis current controller 93 corresponds to d-axis motor voltage Vq, the sixth-order frequency component Vq_6f contained in d-axis motor voltage Vq is sufficiently small and can be considered to be 0 (zero). Taking the above into consideration, equation (1-14) can be expressed as equation (1-15) below. iq_dc is the DC component contained in q-axis motor current iq. iq_6f is the sixth-order frequency component contained in q-axis motor current iq. In other words, iq = iq_dc + iq_6f.

[0120] Vq_6f≒0 ≒s(L_dc+L_6f)・(iq_dc+iq_6f) ...Formula (1-15)

[0121] When equation (1-15) is solved for the sixth electrical frequency component iq_6f contained in the q-axis motor current iq, equation (1-16) is obtained.

[0122] iq_6f=-L_6f / L_dc・iq_dc...Formula (1-16)

[0123] In equation (1-16), the presence of L_6f causes a sixth electrical frequency component iq_6f to be contained in the q-axis motor current iq. If the sixth electrical frequency component is smaller than the response frequency of the q-axis current controller 93, feedback control is performed to set the frequency component iq_6f to 0 (zero), causing the frequency component iq_6f to approach 0 (zero). In other words, a sixth electrical frequency component Vq_6f is generated in the d-axis motor voltage Vq so that the frequency component iq_6f is suppressed.

[0124] On the other hand, if this magnitude relationship is reversed and the sixth electrical angle frequency component becomes larger than the response frequency in the q-axis current controller 93, it will be impossible to suppress the frequency component iq_6f in the feedback control by the q-axis current controller 93. As a result, the frequency component iq_6f according to equation (1-16) will be supplied to the motor 1.

[0125] In this way, if the frequency of frequency component iq_6f exceeds the control band of current controller 9 due to fluctuations in impedance in motor 1, frequency component iq_6f shown in equation (1-16) will be reflected in the rotation of motor 1. In this embodiment, the q-axis motor current including such frequency component iq_6f is defined as a disturbance current due to impedance distortion. The q-axis motor current including frequency component iq_6f may be referred to as disturbance current iq_6f. Measurement results for disturbance current iq_6f are shown in the upper part of each of Figures 7 and 8.

[0126] Based on this concept, in this embodiment, the disturbance reduction command value calculator 22 generates a disturbance reduction amplitude table 220Tbl and a disturbance reduction phase table 221Tbl in advance. The disturbance reduction command value calculator 22 calculates the amplitude and phase of a waveform obtained by inverting the disturbance current, as shown in the lower part of each of Figs. 7 and 8. As for the amplitude, the disturbance reduction command value calculator 22 creates a table in which the amplitude values ​​themselves are mapped as the disturbance reduction amplitude table 220Tbl, as shown in Fig. 9. As for the phase, the disturbance reduction command value calculator 22 creates a table in which a phase advanced by 90 degrees from the initial phase is mapped as the disturbance reduction phase table 221Tbl, as shown in Fig. 10. The disturbance reduction command value calculator 22 calculates the disturbance reduction command value i_gairan by referring to a disturbance reduction amplitude table 220Tbl and a disturbance reduction phase table 221Tbl based on the current command values ​​id_ref and iq_ref. The cancellation calculator 20 multiplies the amplitude of the composite value i_sum including the disturbance reduction command value i_gairan by NωL. Of the cancellation voltage command value vq_cancel, the term vq_cancel_d resulting from the disturbance reduction command value i_gairan is expressed by the following equation (1-17).

[0127] vq_cancel_d=N・ω・L・i_gairan...Formula (1-17)

[0128] On the other hand, the voltage Vgairan required to cancel out the disturbance current iq_6f expressed by equation (1-16) will be explained. The impedance Z(N) of the motor 1 with respect to the frequency component of the Nth electrical angle is expressed by the following equation (1-18). j is a pure imaginary number, and has the relationship j×j=-1. The constant N is the order to be suppressed. The constant L is the inductance of the motor 1. ω is the rotational angular velocity of the motor 1. R is the resistance value of the winding resistance of the motor 1.

[0129] Z(N)=R+j・NωL...Formula (1-18)

[0130] Furthermore, the voltage Vgairan required to cancel out the disturbance current iq_6f is expressed by the following equation (1-19): Z(N) is the impedance shown in equation (1-18), and iq_6f is the disturbance current.

[0131] Vgairan=Z(N)・(−iq_6f) =(R+j・NωL)・iq_6f ≒j・NωL・(−iq_6f) …Formula (1-19)

[0132] In equation (1-19), the term for resistance R is omitted in the equation after "≒". This is because in the region where the sixth electrical frequency component contained in the q-axis motor current iq is sufficiently higher than the response frequency of the q-axis current controller 93, the effect of the resistance R of the winding resistance in the motor 1 is sufficiently smaller than NωL and can be ignored.

[0133] In equation (1-19), the voltage required to suppress the disturbance current iq_6f is obtained by advancing the phase by 90 degrees and multiplying the amplitude by NωL with respect to the current (-iq_6f) obtained by inverting the sign of the disturbance current iq_6f. Here, the phase is advanced by 90 degrees because the pure imaginary number j is considered to be a shift operator that shifts the phase by 90 degrees. Based on this, comparing equation (1-17) and equation (1-19), the disturbance reduction command value i_gairan is obtained by advancing the phase by 90 degrees with respect to the value obtained by inverting the sign of the disturbance current iq_6f. Therefore, the disturbance reduction command value i_gairan corresponds to the term "j·(-iq_6f)" in equation (1-19). Therefore, it can be said that equation (1-17) and equation (1-19) are equivalent.

[0134] Therefore, in this embodiment, by including equation (1-17), which has a term including the disturbance suppression command value i_gairan calculated by the disturbance suppression command value calculator 22, in equation (1-12) for the cancellation voltage command value vq_cancel, it is possible to suppress the influence of the disturbance current iq_6f.

[0135] Next, we will explain the effects of the torque pulsation suppression command values ​​i_cancel and i_cancel2 output from the torque suppression command value calculator 21. The torque equation for the motor 1 is expressed by the following equation (1-20). Kt is the torque constant. T is the torque. iq is the q-axis motor current.

[0136] T = Kt iq ... Equation (1-20)

[0137] However, in equation (1-20), an approximate torque T is shown assuming that the magnet torque is larger than the reluctance torque in motor 1. In the case of a motor with a large proportion of reluctance torque, a torque equation that also includes the d-axis motor current id can be applied.

[0138] In equation (1-20), it is assumed that the torque constant Kt includes a sixth-order electrical frequency component Kt_6f in addition to the DC component Kt_dc. In this case, Kt can be expressed as Kt = Kt_dc + Kt_6f, and equation (1-20) can be expressed as the following equation (1-21).

[0139] T=Kt・iq=(Kt_dc+Kt_6f)・iq=(Kt_dc・iq+Kt_6f・iq...Formula (1-21)

[0140] In equation (1-21), if the q-axis motor current iq is constant, the first term on the right-hand side of equation (1-21) is DC torque T_dc, and the second term on the right-hand side is pulsating torque T_6f that pulsates with sixth electrical angle. If the DC component of the q-axis motor current iq is iq_dc, then when the q-axis motor current iq is constant, it can be expressed as iq_dc = iq. In this case, the pulsating torque T_6f, the second term on the right-hand side of equation (1-21), can be expressed by the following equation (1-22).

[0141] T_6f=Kt_6f·iq_dc ...Equation (1-22)

[0142] On the other hand, when a current pulsation component iq_t6f that pulsates at the sixth electrical angle is added to the DC component iq_dc as the q-axis motor current iq, equation (1-21) is expressed by the following equation (1-23).

[0143] T=Kt・iq=(Kt_dc+Kt_6f)・(iq_dc+iq_t6f) ≒Kt_dc・iq_dc+Kt_6f・iq_dc+Kt_dc・iq_t6f ≒Kt_dc・iq+T_6f+Kt_dc・iq_t6f…Formula (1-23)

[0144] However, in equation (1-23), the term Kt_6f·iq_t6f is omitted in the equation after "≒" because the product of the sixth-order electrical frequency component Kt_6f in the torque constant Kt and the current ripple component iq_t6f is sufficiently small and can be ignored.

[0145] Here, consider the case where the torque T is made constant by adding the current pulsation component iq_t6f to cancel out the second term on the right side of equation (1-23), i.e., the pulsating torque T_6f in equation (1-22). In this case, it is sufficient to satisfy the following: second term on the right side + third term on the right side = 0 in equation (1-23). ​​In other words, it is sufficient if T_6f + Kt_dc · iq_t6f = 0. When this is solved for the current pulsation component iq_t6f, the current pulsation component iq_t6f is expressed by the following equation (1-24).

[0146] iq_t6f=-T_6f / Kt_dc ...Equation (1-24)

[0147] If the torque cancellation current iq_t6f, which is the sixth electrical frequency component in the q-axis motor current iq, can be set as in equation (1-24), the sixth electrical frequency component contained in the torque T can be set to 0 (zero), making it possible to suppress torque pulsation.

[0148] Based on this concept, in this embodiment, the torque suppression command value calculator 21 generates a torque suppression amplitude table 210Tbl and a torque suppression phase table 211Tbl in advance. As shown in the lower parts of each of FIGS. 3 and 4 , the torque suppression command value calculator 21 calculates the amplitude and phase of a waveform obtained by inverting the torque pulsation waveform and multiplying it by 1 / Kt. As shown in FIG. 5 , the torque suppression command value calculator 21 creates a table in which the amplitude values ​​themselves are mapped as the torque suppression amplitude table 210Tbl. As shown in FIG. 6 , the torque suppression command value calculator 21 creates a table in which the phase advanced by 90 degrees from the initial phase is mapped as the torque suppression phase table 211Tbl. The torque suppression command value calculator 21 calculates the disturbance suppression command value i_gairan by referring to a torque suppression amplitude table 210Tbl and a torque suppression phase table 211Tbl based on the current command values ​​id_ref and iq_ref. The cancellation calculator 20 multiplies the amplitude of the composite value i_sum including the torque pulsation suppression command value i_cancel by NωL. Of the cancellation voltage command value vq_cancel, the term vq_cancel_T resulting from the torque pulsation suppression command values ​​i_cancel and i_cancel2 is expressed by the following equation (1-25).

[0149] vq_cancel_T=R・i_cancel2+N・ω・L・i_cancel...Formula (1-25)

[0150] On the other hand, the voltage Vtorque required to pass the torque cancellation current iq_t6f expressed by equation (1-24) will be described. The impedance Z(N) of the motor 1 with respect to the frequency component of the Nth electrical angle is expressed by equation (1-26) using the above equation (1-18). j is a pure imaginary number. The constant N is the order to be suppressed. The constant L is the inductance of the motor 1. ω is the rotational angular velocity of the motor 1. R is the resistance value of the winding resistance of the motor 1.

[0151] Vtorque=Z(N)・iq_t6f=(R+j・NωL)・iq_t6f=R・iq_t6f+j・NωL・iq_t6f... Formula (1-26)

[0152] Here, if a signal with a phase advanced by 90 degrees without changing the amplitude of the torque canceling current iq_t6f is taken as current iq_t6f_90, then equation (1-26) can be expressed by the following equation (1-27).

[0153] Vtorque = R・iq_t6f+j・NωL・iq_t6f =R・iq_t6f+NωL・iq_t6f_90... Formula (1-27)

[0154] Comparing equation (1-25) and equation (1-27), it is found that the torque cancellation current iq_t6 is equal to the torque pulsation suppression command value i_cancel2. Also, the current iq_t6f_90, which is obtained by advancing the phase of the torque cancellation current iq_t6 by 90 degrees, is equal to the torque pulsation suppression command value i_cancel. Therefore, it can be said that equation (1-25) and equation (1-27) are equivalent.

[0155] Therefore, in this embodiment, by including equation (1-25), which has a term including the torque pulsation suppression command values ​​i_cancel and i_cancel2 calculated by the torque suppression command value calculator 21, in equation (1-12) for the cancel voltage command value vq_cancel, the sixth electrical frequency component included in the motor current can be made to match the cancel current, thereby achieving the effect of reducing the torque ripple component caused by the pulsation of the torque constant Kt in the motor 1.

[0156] Here, in FIG. 1 , the adder 15 adds the torque pulsation suppression command value i_cancel2 to the current command value iq_ref. As a result, in a region where the frequency of the current command value iq_ref2 is smaller than the control band of the q-axis current controller 93, the q-axis current controller 93 makes the q-axis motor current iq equal to iq_ref2 = iq_ref + i_cancel2. On the other hand, in a region where the frequency of the current command value iq_ref2 is larger than the control band of the q-axis current controller 93, it is difficult for the q-axis current controller 93 to make the q-axis motor current iq equal to iq_ref2 = iq_ref + i_cancel2. Even in this case, the adder 14 adds the cancellation voltage command value vq_cancel to the fundamental wave command value vq. This allows the term of equation (1-25) to be included in the fundamental wave command value vq. Therefore, feedforward control works, and as a result, the q-axis motor current iq coincides with iq_ref2=iq_ref+iq_cancel2, thereby reducing the torque pulsation component.

[0157] Furthermore, in the region where the sixth electrical angle frequency component becomes larger than the response frequency of the q-axis current controller 93 and the effect of the cancellation voltage command value vq_cancel is expected, if R<<NωL holds, it can be said that there is no significant difference in the effect even if the term “R·i_cancel2” in equation (1-12) representing the cancellation voltage command value vq_cancel is omitted.

[0158] As described above, in the first embodiment, motor control device 100 includes cancellation calculator 20. Cancellation calculator 20 calculates a cancellation voltage command value vq_cancel. The cancellation voltage command value suppresses disturbance currents caused by impedance distortion in motor 1, and also suppresses torque pulsation caused by pulsation in torque constant Kt in motor 1. Therefore, motor control device 100 according to the first embodiment can reduce torque pulsation in motor 1, particularly in the high-speed rotation range.

[0159] [Modification of First Embodiment] Here, a modification of the first embodiment will be described. In the first embodiment, the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22 in the cancellation calculator 20 perform calculations based on the current command values ​​id_ref and iq_ref. However, this is not limiting. In the calculations of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22 in the cancellation calculator 20, the d-axis motor current id may be used instead of the current command value id_ref. Furthermore, the cancellation calculator 20 may use the q-axis motor current iq instead of the current command value iq_ref.

[0160] Furthermore, when the motor currents id and iq are transformed into fixed two-axis currents iα and iβ, they are expressed by the following equations (1-28) and (1-29).

[0161] iα=cos(θ)・id-sin(θ)・iq...Formula (1-28) iβ=-sin(θ)・id-cos(θ)・iq...Formula (1-29)

[0162] As shown in equations (1-28) and (1-29), in the calculations of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, instead of inputting the current command values ​​id_ref and iq_ref, the fixed biaxial currents iα and iβ, or the command values ​​iα_ref and iβ_ref for the fixed biaxial currents, may be input.

[0163] Furthermore, when the expressions of the fixed two-axis currents iα and iβ in the motor current are transformed into fixed three-phase currents iu, iv, and iw, the following equations (1-30) to (1-32) are obtained.

[0164] iu = (2 / 3) 0.5 iα ... Equation (1-30) iv = (2 / 3) 0.5 ・(-0.5・iα+3 0.5 / 2·iβ)...Equation (1-31) iw=(2 / 3) 0.5 ・(-0.5・iα-3 0.5 / 2・iβ)...Formula (1-32)

[0165] As shown in equations (1-30) to (1-31), in the calculations by the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, instead of inputting the current command values ​​id_ref and iq_ref, the fixed three-phase currents iu, iv, and iw or the command values ​​iu_ref, iv_ref, and iw_ref of the fixed three-axis currents may be input.

[0166] Furthermore, when the current command values ​​id_ref and iq_ref are expressed as vectors with the magnitude Iamp_ref and the phase β_ref indicating the direction of the vector, the following equations (1-33) and (1-34) are obtained. Here, the phase β_ref is the phase (angle) in the −d-axis direction with the q-axis as the reference.

[0167] Iamp_ref=(id_ref2+iq_ref2) 0.5 ...Equation (1-33) β_ref=atan(-id_ref / iq_ref) ...Equation (1-34)

[0168] As shown in equations (1-33) and (1-34), in the calculations by the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, instead of the configuration in which the current command values ​​id_ref and iq_ref are input, a configuration in which a command value Iamp_ref indicating the vector magnitude (absolute value) and a phase command value β_ref indicating the direction of the vector may be input. Also, instead of the motor currents id and iq, a configuration in which the vector magnitude (absolute value) Iamp and a phase command value β indicating the vector direction may be input.

[0169] Equations (1-28) to (1-34) each represent a different expression of the motor current or the motor current command value (current command value). Ultimately, the "current command values ​​id_ref, iq_ref" or "motor currents id, iq" are expressed differently and reflected in the results of calculations by the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22. Therefore, in the first embodiment, as shown in FIGS. 3 and 4, a torque pulsation suppression command value can be calculated that can accommodate fluctuating torque pulsations when the q-axis motor current iq is kept constant (Iq = Iq1) and the d-axis motor current is changed under current conditions (Iq = Iq1, Id2). Furthermore, as shown in FIGS. 7 and 8, a feedforward control can be established for the disturbance suppression command value that can accommodate the influence of fluctuating disturbances when the q-axis motor current iq is kept constant (Iq = Iq1) and the d-axis motor current is changed under current conditions (Iq = Iq1, Id2). Therefore, it is possible to suppress torque pulsation through feedforward control that takes into account even the high-speed rotation range, which is difficult to address using a map based on the torque command Tm*, as described in Patent Document 1 (Patent No. 6760197).

[0170] Furthermore, in an operating range in which noise and vibration in the motor 1 become an issue, the addition of the torque pulsation suppression command value i_cancel2 by the adder 15 is not essential under the condition that the sixth electrical order frequency component is greater than the response frequency of the q-axis current controller 93. In other words, the adder 15 is not an essential component in the first embodiment. Even in a configuration in which the torque pulsation suppression command value i_cancel2 is not added to the current command value iq_ref, when the sixth electrical order frequency component is greater than the response frequency of the q-axis current controller 93, torque pulsation in the motor 1 can be reduced by adding the cancel voltage command value vq_cancel to the fundamental wave command value vq. This makes it possible to reduce noise and vibration.

[0171] The present disclosure is characterized by suppressing torque pulsation in the motor 1 by adding a cancellation voltage command value vq_cance, particularly in a region where the sixth-order electrical frequency component is greater than the response frequency of the q-axis current controller 93, thereby contributing to noise and vibration reduction. The present disclosure is highly effective when applied to steering motor control, such as electric power steering and steer-by-wire. In steering motor control, such as electric power steering and steer-by-wire, there is a demand for compact products to improve mountability, and in this context, a well-known lower arm three-shunt current detection method or a bus one-shunt current detection method is often used as the current detector 3 used to detect the current flowing through the motor 1. While these current sensors are advantageous in terms of compactness, they are subject to constraints imposed by the switching pattern of the inverter 5 in terms of the feasibility and accuracy of current detection. In particular, when the voltage utilization rate of the inverter 5 is high, the accuracy of current detection often decreases. When the voltage utilization rate is high, i.e., when the rotational angular velocity of the motor 1 is high, it is desirable to avoid erroneous feedback control by the q-axis current controller 93 due to a detection error caused by a decrease in current detection accuracy. This limits the response frequency of the q-axis current controller 93, resulting in torque pulsation due to the disturbance current and fluctuations in the torque constant. In response to this issue, the present disclosure adds a cancellation voltage command value vq_cancel to the fundamental wave command value vq in a region where the sixth-order electrical frequency component is greater than the response frequency of the q-axis current controller 93, thereby reducing torque pulsation, noise, and vibration in the motor 1. Furthermore, by using a lower arm three-shunt current detection method or a bus bar one-shunt current detection method, both compactness and cost reduction can be achieved. For these reasons, applying the present disclosure to motor control of steering systems such as electric power steering and steer-by-wire systems offers significant advantages.

[0172] [Embodiment 2] Here, embodiment 2 will be described. This embodiment differs from embodiment 1 in that motor control device 100 includes current command value calculator 7b. The following mainly describes configurations that are different from embodiment 1, and similar configurations are assigned the same reference numerals and descriptions thereof will be omitted.

[0173] 11 is a block diagram showing the configuration of a motor control device 100 according to embodiment 2. In this embodiment, the motor control device 100 includes a current command value calculator 7b. The current command value calculator 7b calculates current command values ​​id_ref and iq_ref′ based on the rotational angular velocity ω of the motor 1, a detected value Vdc_detect of the DC bus voltage Vdc output from the DC power supply 4, previously calculated values ​​vd_z and vq_z of the fundamental wave command values ​​vd and vq, and a torque command T_ref.

[0174] 12 is a block diagram showing the configuration of the current command value calculator 7b. The current command value calculator 7b includes an amplifier 70, a flux-weakening current calculator 71, and a q-axis current limiter 72. The amplifier 70 outputs a current command value iq_ref obtained by multiplying the torque pulsation suppression command value i_cancel by 1 / Kt, where Kt is a torque constant.

[0175] The q-axis current limiter 72 limits the current command value iq_ref based on the previous calculation values ​​vd_z, vq_z, the current command value iq_ref, and the detected value Vdc_detect so that the voltage utilization rate in the inverter 5 becomes the desired value m_ideal. The q-axis current limiter 72 outputs the current command value iq_ref′ after limitation.

[0176] 13 is a block diagram showing the configuration of the q-axis current limiter 72. The q-axis current limiter 72 includes a multiplier 720, a multiplier 721, an adder 722, a square root calculator 723, an amplifier 724, a subtractor 725, an integrator 726, a limiter 727, and a subtractor 728.

[0177] The multiplier 720 squares the d-axis previous calculation value vd_z and outputs the squared value (vd_z)·(vd_z) to the adder 722. The multiplier 721 squares the q-axis previous calculation value vq_z and outputs the squared value (vq_z)·(vq_z) to the adder 722. The adder 722 adds the squared value (vd_z)·(vd_z) output from the multiplier 720 and the squared value (vq_z)·(vq_z) output from the multiplier 721, and outputs the sum Vdq2 to the square root calculator 723. Vdq2=(vd_z)·(vd_z)+(vq_z)·(vq_z). The physical meaning of the sum Vdq2 is "the square of the line voltage effective value of the fundamental wave command values ​​vd and vq." The square root calculator 723 calculates the line voltage effective value (Vdq2) which is the square root of the sum Vdq2. 0.5 and outputs the result to the subtractor 725.

[0178] The amplifier 724 calculates the limit value Vlim by multiplying the detected value Vdc_detect by a gain {m_ideal / Sqrt(2)}. m_ideal is a voltage utilization rate command value. By setting an appropriate value for m_ideal, it becomes possible to control the adder 14 in the subsequent stage so that the value obtained by adding the cancellation voltage command value vq_cancel to the fundamental wave command value vq does not exceed the upper limit value that the inverter 5 can output. The subtractor 725 calculates the line voltage effective value (Vdq2) 0.5 The deviation err obtained by subtracting the limit value Vlim from the deviation err is output to the integrator 726. err=(Vdq2) 0.5 -Vlim. If the sign of the deviation err is positive, it means that the voltage is excessive, that is, the fundamental wave command values ​​vd, vq are greater than the voltage utilization rate command value m_ideal. If the sign of the deviation err is negative, it means that the voltage is not excessive, that is, the fundamental wave command values ​​vd, vq are equal to or less than the voltage utilization rate command value m_ideal.

[0179] The integrator 726 integrates the deviation err and multiplies the result by a gain (K / S) to obtain an integrated value err_sekibun, which is output to the subtractor 728. The gain (K / S) is set so as to have the response required to improve the overvoltage condition. The subtractor 728 subtracts the sign of the integrated value err_sekibun from the q-axis rated current Iq_teikaku to obtain a threshold Iq_clip, which is output to the limiter 727. Iq_clip = Iq_teikaku - err_sekibun. The limiter 727 limits the absolute value of the q-axis current command value iq_ref so that it does not exceed the threshold Iq_clip. The limiter 727 outputs the limited q-axis current command value iq_ref'. The limiter 727 performs limiting according to the following cases:

[0180] If (iq_ref<-iq_clip), then →iq_ref'=-iq_clip If (-iq_clip<iq_ref<iq_clip), then →iq_ref'=iq_ref If (iq_clip<iq_ref), then →iq_ref'=iq_clip

[0181] The operation of the q-axis current limiter 72 will now be described. When the error err has a positive sign and the fundamental wave command value is greater than the voltage utilization rate command value m_ideal, the error err_sekibun increases. In this case, the threshold Iq_clip decreases, limiting the q-axis current command value iq_ref to a smaller value. This acts to eliminate the excess of the fundamental wave command value relative to the voltage utilization rate command value m_ideal. When the error err output from the integrator 726 matches 0 (zero), the error err_sekibun becomes constant, and as a result, the threshold Iq_clip settles to a constant value. At this time, since the error err is 0 (zero), the voltage utilization rate of the fundamental wave command value matches the voltage utilization rate command value m_ideal. Therefore, even when the motor 1 is driven at a high rotational angular velocity and with a large q-axis fundamental wave command value vq, the cancel voltage command value vq_cancel can be added to the fundamental wave command value.

[0182] Returning to FIG. 12 , the flux-weakening current calculator 71 executes flux-weakening control. A specific method for executing flux-weakening control will not be described here, as flux-weakening control is a well-known technique. The flux-weakening current calculator 71 outputs a d-axis current command value id_ref based on the q-axis current command value iq_ref, the detected value Vdc_detect, and the rotational angular velocity ω of the motor 1. The flux-weakening current calculator 71 calculates the d-axis current command value id_ref such that the voltage utilization rate in the inverter 5 is limited to the voltage utilization rate command value m_ideal. However, to avoid permanent demagnetization in the motor 1, the flux-weakening current calculator 71 executes flux-weakening control so that the d-axis current command value id_ref does not exceed an upper limit value id_max.

[0183] The operation and effect of the current command value calculator 7b will now be described with reference to Fig. 14. Fig. 14 is a diagram for explaining the processing performed by the q-axis current limiter 72 according to the second embodiment. The upper part of Fig. 14 shows the time series changes in the motor currents id and iq [A]. The middle part of Fig. 14 shows the time series changes in the rotation speed N [rpm] of the motor 1. The lower part of Fig. 14 shows the time series changes in the voltage utilization rate [%].

[0184] As shown in the upper part of Fig. 14, assume that at time t = 0 (zero), the current command values ​​iq_ref = Iq1 and id_ref = 0 are set. In this case, as shown in the middle part of Fig. 14, the rotational angular velocity ω of motor 1 increases from time t = 0 (zero) to t1. As the rotational angular velocity ω increases, the induced voltage in motor 1 rises and the voltage utilization rate m increases, as shown in the lower part of Fig. 14.

[0185] As shown in the lower part of Fig. 14, when the voltage utilization rate m reaches the voltage utilization rate command value m_ideal at time t=t1, the flux-weakening control by the flux-weakening current calculator 71 is activated, increasing the d-axis current command value id_ref to the negative side, and as shown in the upper part of Fig. 14, the d-axis current command value id_ref becomes negative, increasing the absolute value of the d-axis current command value id_ref. As a result, as shown in the lower part of Fig. 14, the voltage utilization rate m is maintained at the voltage utilization rate command value m_ideal. However, at time t=t2, as shown in the upper part of Fig. 14, the current command value id_ref reaches id_max, making it difficult to further increase the absolute value of i, the current command value id_ref.

[0186] Here, as shown by the "control OFF" dotted line in the upper part of Fig. 14, when limitation by the q-axis current limiter 72 is not performed, the current command value iq_ref is maintained at a constant value iq1. In this case, as shown by the "control OFF" dotted line in the lower part of Fig. 14, the voltage utilization rate m increases and reaches 100%, as shown by the "control OFF" dotted line in the lower part of Fig. 14. In this case, the upper limit voltage that can be output from the inverter 5 and the motor voltage corresponding to the fundamental wave command value become the same voltage, so the cancellation voltage command value vq_cancel cannot be added.

[0187] On the other hand, as shown by the dashed-dotted line "control ON" in the upper part of Fig. 14, when limitation by the q-axis current limiter 72 is executed, the current command value iq_ref decreases so that the voltage utilization rate at the fundamental wave command value is limited to the voltage utilization rate command value m_ideal. In this case, as shown by the dashed-dotted line "control ON" in the lower part of Fig. 14, the voltage utilization rate m does not increase, and the voltage utilization rate is maintained at m_ideal. In this case, because the motor voltage corresponding to the fundamental wave command value is smaller than the upper limit voltage that can be output from the inverter 5, it is possible to add the cancellation voltage command value vq_cancel.

[0188] In the present disclosure, the voltage utilization rate m in the fundamental wave command value is limited so as not to exceed a predetermined value. This makes it possible to drive the motor 1 at an operating point that is equal to or less than the set voltage utilization rate m_ideal within a voltage limit circle based on the DC bus voltage Vdc that can be output from the inverter 5. This makes it possible to add the cancellation voltage command value vq_cancel, particularly in the region where the motor rotation speed is high. This makes it possible to reduce problems with the motor 1, such as torque ripple, vibration, and noise.

[0189] [Modification of Second Embodiment] Here, a modification of the second embodiment will be described with reference to Fig. 15 . Fig. 15 is a diagram for explaining the processing performed by a q-axis current limiter according to a modification of the second embodiment. In the second embodiment, the voltage utilization rate at the fundamental wave command value is limited so as not to exceed a predetermined voltage utilization rate command value m_ideal. However, this is not limiting. The configuration may be such that the fundamental wave command value is controlled so as to achieve an operating point obtained by subtracting a predetermined "voltage value" from the DC bus voltage Vdc of the inverter 5.

[0190] As shown in FIG. 15 , the q-axis current limiter 72 according to this modification is provided with an amplifier 724 a and a subtractor 724 b instead of the amplifier 724 of the q-axis current limiter 72 in FIG. 13 . The amplifier 724 a multiplies the detected value Vdc_detect by a gain {1 / Sqrt(2)} and outputs the result to the subtractor 274 b. That is, the amplifier 724 a outputs {Vdc_detect / sqrt(2)} to the subtractor 274 b. The subtractor 274 outputs a value obtained by subtracting a predetermined voltage value ΔV from the value output from the amplifier 724 a as the limit value Vlim to the subtractor 725. That is, in this modification, Vlim = Vdc_detect / sqrt(2) - ΔV. As already explained, the current command value iq_ref is controlled so that the square root of Vdq2 coincides with Vlim. Therefore, in this modified example, the fundamental wave command value vq operates at an operating point having a voltage value margin of a predetermined voltage value ΔV. This makes it possible to add the cancellation voltage command value vq_cancel to the fundamental wave command value even when the motor 1 is rotated at high speed, as in the second embodiment.

[0191] [Embodiment 3] Here, embodiment 3 will be described. This embodiment differs from embodiments 1 and 2 in that a cancellation calculator 30 is provided instead of the cancellation calculator 20. The following mainly describes configurations that are different from embodiments 1 and 2, and similar configurations are assigned the same reference numerals and descriptions thereof will be omitted.

[0192] 16 is a block diagram showing the configuration of a motor control device 100 according to embodiment 3. In this embodiment, motor control device 100 includes a cancellation calculator 30. Cancellation calculator 30 includes a torque suppression command value calculator 31, a torque and disturbance suppression command value calculator 32, a multiplier 34, an adder 35, a limiter 36, an amplifier 37, and an amplifier 38.

[0193] The torque suppression command value calculator 31 calculates a torque pulsation suppression command value i_cancel2 based on the current command values ​​id_ref, iq_ref and the rotor position θ. The torque suppression command value calculator 31 differs from the torque suppression command value calculator 21 in that it does not calculate the torque pulsation suppression command value i_cancel. The method by which the torque suppression command value calculator 31 calculates the torque pulsation suppression command value i_cancel2 is similar to the method by which the torque suppression command value calculator 21 calculates the torque pulsation suppression command value i_cancel2, and therefore a description thereof will be omitted.

[0194] The torque and disturbance reduction command value calculator 32 calculates a torque and disturbance reduction command value i_cancel_gairan based on the current command values ​​id_ref, iq_ref and the rotor position θ. The torque and disturbance reduction command value i_cancel_gairan corresponds to the sum value i_sum output from the adder 23 of the cancellation calculator 20. The torque and disturbance reduction command value i_cancel_gairan is expressed by the following equation (3-1).

[0195] i_cancel_gairan=i_cancel+i_gairan...Formula (3-1)

[0196] The torque and disturbance reduction command value calculator 32 includes a torque and disturbance reduction command amplitude calculator 320 and a torque and disturbance reduction command phase calculator 321. The torque and disturbance reduction command amplitude calculator 320 calculates an amplitude i_ca_ga_amp. The amplitude i_ca_ga_amp is the amplitude value of the torque and disturbance reduction command value i_cancel_gairan according to the current conditions. A method for calculating the amplitude i_ca_ga_amp will be described below.

[0197] The torque and disturbance suppression command amplitude calculator 320 calculates the amplitude i_ca_ga_amp(Id(i), Iq(j)) under the current condition (Id(i), Iq(j). i is an arbitrary integer from 1 to M. j is an arbitrary integer from 1 to N.

[0198] The torque and disturbance suppression command amplitude calculator 320 refers to the torque suppression amplitude table 210Tbl to obtain the amplitude i_ca_amp(Id(i), Iq(j)) of the current command value for suppressing torque pulsation, which corresponds to the current condition (Id(i), Iq(j). The torque and disturbance suppression command amplitude calculator 320 refers to the torque suppression phase table 211Tbl to obtain the phase i_ca_ph(Id(i), Iq(j)) of the current command value for suppressing torque pulsation, which corresponds to the current condition (Id(i), Iq(j).

[0199] Furthermore, the torque and disturbance suppression command amplitude calculator 320 refers to the disturbance suppression amplitude table 220Tbl to acquire the amplitude i_ga_amp(Id(i), Iq(j)) of the current command value for suppressing the influence of the disturbance, which corresponds to the current condition (Id(i), Iq(j). The torque and disturbance suppression command amplitude calculator 320 refers to the disturbance suppression phase table 221Tbl to acquire the phase i_ga_ph(Id(i), Iq(j)) of the current command value for suppressing the influence of the disturbance, which corresponds to the current condition (Id(i), Iq(j).

[0200] Using these, the torque and disturbance suppression command amplitude calculator 320 calculates the amplitude i_ca_ga_amp using the following equation (3-2).

[0201] i_ca_ga_amp(Id(i), Iq(j)) = {(A+B) 2 +(C+D) 2} 0.5 ...Equation (3-2) However, A=A1・cos(A2) B=B1・cos(B2) C=A1・sin(A2) D=B1・sin(B2) A1=i_ca_amp(Id(i), Iq(j)) A2=i_ca_ph(Id(i), Iq(j)) B1=i_ga_amp(Id(i), Iq(j)) B2=i_ga_ph(Id(i), Iq(j))

[0202] The torque and disturbance reduction command amplitude calculator 320 calculates in advance the amplitude i_ca_ga_amp under various current conditions that are expected to be applied to the motor 1, and stores the calculated amplitude i_ca_ga_amp in the torque and disturbance reduction amplitude table 320Tbl.

[0203] Fig. 17 is a diagram showing an example of an amplitude table according to embodiment 3. Fig. 17 shows an example of a torque and disturbance suppression amplitude table 320Tbl. The torque and disturbance suppression amplitude table 320Tbl stores an amplitude i_ca_ga_amp according to a current condition.

[0204] The torque and disturbance suppression command phase calculator 321 calculates a phase i_ca_ga_ph according to the current conditions. The phase i_ca_ga_ph is the initial phase of the torque and disturbance suppression command value i_cancel_gairan. A method for calculating the phase i_ca_ga_ph will be described below.

[0205] The torque and disturbance suppression command phase calculator 321 calculates the phase i_ca_ga_ph(Id(i), Iq(j)) under the current condition (Id(i), Iq(j)). i is any integer from 1 to M. j is any integer from 1 to N.

[0206] The torque and disturbance suppression command phase calculator 321 references the torque suppression amplitude table 210Tbl to obtain the amplitude i_ca_amp(Id(i), Iq(j)) of the current command value for suppressing torque pulsation, which corresponds to the current condition (Id(i), Iq(j)). The torque and disturbance suppression command amplitude calculator 320 references the torque suppression phase table 211Tbl to obtain the phase i_ca_ph(Id(i), Iq(j)) of the current command value for suppressing torque pulsation, which corresponds to the current condition (Id(i), Iq(j)).

[0207] Furthermore, the torque and disturbance suppression command phase calculator 321 refers to the disturbance suppression amplitude table 220Tbl to acquire the amplitude i_ga_amp(Id(i), Iq(j)) of the current command value for suppressing the influence of the disturbance, which corresponds to the current condition (Id(i), Iq(j). The torque and disturbance suppression command amplitude calculator 320 refers to the disturbance suppression phase table 221Tbl to acquire the phase i_ga_ph(Id(i), Iq(j)) of the current command value for suppressing the influence of the disturbance, which corresponds to the current condition (Id(i), Iq(j).

[0208] Using these, the torque and disturbance suppression command phase calculator 321 calculates the phase i_ca_ga_ph using the following equation (3-3).

[0209] i_ca_ga_ph(Id(i), Iq(j)) = ATAN2{(A+B), (C+D)}+90 ...Formula (3-3) However, A=A1・cos(A2) B=B1・cos(B2) C=A1・sin(A2) D=B1・sin(B2) A1=i_ca_amp(Id(i), Iq(j)) A2=i_ca_ph(Id(i), Iq(j)) B1=i_ga_amp(Id(i), Iq(j)) B2=i_ga_ph(Id(i), Iq(j))

[0210] The torque and disturbance suppression command phase calculator 321 calculates in advance the phase i_ca_ga_ph under various current conditions that are expected to be applied to the motor 1, and stores the calculated phase i_ca_ga_ph in the torque and disturbance suppression phase table 321Tbl.

[0211] Fig. 18 is a diagram showing an example of a phase table according to embodiment 3. Fig. 18 shows an example of a torque and disturbance suppression phase table 321Tbl. The torque and disturbance suppression phase table 321Tbl stores a phase i_ca_ga_ph according to a current condition.

[0212] Fig. 19 is a diagram for explaining the processing performed by the torque and disturbance suppression command phase calculator 321 according to the third embodiment. Coordinates are shown in Fig. 19 for explaining the calculation of ATAN2. As shown in Fig. 19, θ [deg] = ATAN2 (X, Y).

[0213] When the motor 1 is rotating, the current command values ​​id_ref and iq_ref are input to the torque and disturbance suppression command amplitude calculator 320. The torque and disturbance suppression command amplitude calculator 320 references a torque and disturbance suppression amplitude table 320Tbl based on the input current command values ​​id_ref and iq_ref, and acquires an amplitude i_ca_ga_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The torque and disturbance suppression command amplitude calculator 320 outputs the acquired amplitude i_ca_ga_amp(id_ref, iq_ref) as the amplitude i_ca_ga_amp of a current command value for suppressing the torque of the motor 1 and suppressing the effects of disturbances.

[0214] The torque and disturbance reduction command amplitude calculator 320 may calculate the amplitude i_ca_ga_amp by performing linear interpolation. For example, when the current command value iq_ref under the current conditions for which the amplitude is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the torque and disturbance reduction amplitude table 320Tbl, the torque and disturbance reduction command amplitude calculator 320 calculates the amplitude i_ca_ga_amp by using linear interpolation.

[0215] During rotation of the motor 1, the current command values ​​id_ref and iq_ref are input to the torque and disturbance suppression command phase calculator 321. The torque and disturbance suppression command phase calculator 321 references a torque and disturbance suppression phase table 321Tbl based on the input current command values ​​id_ref and iq_ref, and acquires a phase i_ca_ga_ph (id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The torque and disturbance suppression command phase calculator 321 outputs the acquired phase i_ca_ga_ph (id_ref, iq_ref) as the phase i_ca_ga_ph of the current command value for suppressing torque and the effects of disturbances in the motor 1.

[0216] The torque and disturbance reduction command phase calculator 321 may calculate the phase i_ca_ga_ph by linear interpolation. For example, when the current command value iq_ref under the current condition for which the phase is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the torque and disturbance reduction phase table 321Tbl, the torque and disturbance reduction command phase calculator 321 calculates the phase i_ca_ga_ph using linear interpolation.

[0217] Although the amplitude i_ca_ga_amp expressed by equation (3-2) and the phase i_ca_ga_ph expressed by equation (3-3) are complex, it is sufficient to calculate the phase and amplitude in advance and store them in a table. There is no need to calculate the amplitude i_ca_ga_amp and the phase i_ca_ga_ph every time the cancellation calculator 20 calculates the cancel voltage command value vq_cancel. Therefore, unlike the first embodiment, there is no need to calculate the amplitude and phase of the combined value i_sum (=torque and disturbance suppression command value i_cancel_gairan) every time the cancellation voltage command value vq_cancel is calculated.

[0218] Furthermore, as described in the first embodiment, in an operating range where noise and vibration in the motor 1 become a problem, the adder 15 does not necessarily add the torque pulsation suppression current iq_cancel2 under the condition that the sixth electrical order frequency component is greater than the response frequency of the q-axis current controller 93. Even in a configuration in which the torque pulsation suppression command value i_cancel2 is not added to the current command value iq_ref, torque pulsation in the motor 1 can be reduced by adding the cancel voltage command value vq_cancel to the fundamental wave command value vq when the sixth electrical order frequency component is greater than the response frequency of the q-axis current controller 93. This makes it possible to reduce noise and vibration. Furthermore, in this embodiment, the cancellation calculator 30 only performs calculations using the torque and disturbance suppression command value i_cancel_gairan output from the torque and disturbance suppression command value calculator 32, thereby enabling further reduction in calculation effort compared to the first embodiment.

[0219] [Fourth Embodiment] Here, a fourth embodiment will be described. This embodiment differs from the first to third embodiments described above in that a d-axis cancellation voltage command value vd_cancel is added to the d-axis fundamental wave command value vd. The following mainly describes configurations that differ from the first and second embodiments, and similar configurations are denoted by the same reference numerals and descriptions thereof will be omitted.

[0220] 20 is a block diagram showing the configuration of a motor control device 100 according to embodiment 4. In this embodiment, a controller 6 of the motor control device 100 includes a multiplier 18a, an amplifier 18b, and an adder 18c.

[0221] The adder 18c adds a d-axis cancellation voltage command value vd_cancel, which will be described later, to the d-axis fundamental wave command value vd output from the current controller 9, and outputs the result as a fundamental wave command value vd' after the addition. The d-axis cancellation voltage command value vd_cancel is expressed by the following equation (4-1). ω is the rotational angular velocity ω of the motor 1. L is the inductance of the motor 1.

[0222] vd_cancel=-ω・L・i_cancel2… Formula (4-1)

[0223] The process of deriving the d-axis cancellation voltage command value vd_cancel shown in equation (4-1) will be specifically described. The amplifier 17 multiplies the rotational angular velocity ω output from the velocity calculator 12 by a constant L to obtain a value (ωL), and outputs the result to the multiplier 18a. The multiplier 18a multiplies the torque pulsation suppression command value i_cancel2 output from the cancellation calculator 30 by ωL, and outputs the result to the amplifier 18b. The amplifier 18b multiplies the value output from the multiplier 18a by −1, and outputs the result to the adder 18c.

[0224] The coordinate converter 10 performs coordinate conversion on the fundamental wave command values ​​vd', vq' after adding the cancellation voltage command value, and outputs three-phase fundamental wave command values ​​vu, vv, vw.

[0225] The effect of adding the d-axis cancellation voltage command value vd_cancel to the d-axis fundamental wave command value vd will be described below. The fundamental wave command value vd′ after adding the cancellation voltage command value is expressed by the following equation (4-2).

[0226] vd'=vd+vd_cancel =vd-ω・L・i_cancel2... Formula (4-2)

[0227] Here, if the sixth electrical order frequency component becomes larger than the response frequency of the d-axis current controller 91, the fundamental wave command value vd will not include the sixth electrical order frequency component. Therefore, in this embodiment, the cancellation voltage command value vd_cancel is added to the d-axis fundamental wave command value vd. This causes the d-axis fundamental wave command value to oscillate at the sixth electrical order frequency, resulting in a waveform that matches i_cancel2. This reduces torque ripple in the motor 1, making it possible to reduce vibration and noise.

[0228] The present disclosure is not limited to the above-described embodiments, and can be modified within the scope of the present disclosure. The above-described embodiments can be implemented independently, or can be implemented in combination with some or all of the embodiments. The embodiments can be freely combined, and each embodiment can be modified or omitted as appropriate.

[0229] For example, in the case of an interior permanent magnet synchronous motor or a synchronous reluctance motor in which the proportion of reluctance torque is large, not only the q-axis torque pulsation suppression command values ​​i_cancel and i_cancel2 but also the d-axis torque pulsation suppression command values ​​id_cancel and id_cancel2 may be used as the torque pulsation suppression command value. Furthermore, not only the q-axis disturbance suppression command value i_gairan but also the d-axis disturbance suppression command value id_gairan may be used as the disturbance pulsation suppression command value. Using these, the d-axis cancellation voltage command value may be added to the d-axis fundamental wave command value vd, and the command value after the addition may be used as the voltage to be applied to the motor 1. Such a configuration also produces the same effect.

[0230] The motor control device 100 described above has an internal computer system. The processing steps described above are stored in the form of a program on a computer-readable recording medium, and the computer reads and executes this program to perform the above processing. Here, a computer-readable recording medium refers to a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like. Alternatively, the computer program may be distributed to a computer via a communication line, and the computer that receives the program may execute the program.

[0231] 100...motor control device, 1...motor, 2...rotational position detector, 3...current detector, 4...DC power supply, 5...inverter, 6...controller, 7...current command value calculator, 8...coordinate converter, 9...current controller, 10...coordinate converter, 11...PWM signal generator, 12...speed calculator 12, 20...cancellation calculator, 21...torque suppression command value calculator, 22...disturbance suppression command value calculator

Claims

1. An inverter that supplies power to the motor; a controller that controls the motor and outputs a command signal to the inverter; Equipped with The controller includes: a current command value calculator that calculates current command values ​​for two rotation axes of the motor; a voltage command value calculator that calculates fundamental wave command values, which are voltage command values ​​for two rotational axes of the motor, by feedback control of the current command value; a cancellation calculator that calculates a cancellation voltage command value for suppressing torque pulsation in the motor and suppressing the influence of disturbances generated in the motor, based on a target current which is either the current command value or a motor current flowing through the motor, and a rotor position of the motor; a PWM signal generator that generates the command signal to be output to the inverter using a post-addition fundamental wave command value obtained by adding the cancellation voltage command value to the fundamental wave command value; having Motor control device.

2. The controller includes: a torque suppression command value calculator that calculates a torque pulsation suppression command value, which is a current command value for suppressing torque pulsation in the motor, based on the target current and the rotor position; a disturbance suppression command value calculator that calculates a disturbance suppression command value, which is a command value of a current for suppressing an effect of the disturbance, based on the target current and the rotor position; having The cancellation calculator calculates the cancellation voltage command value based on the torque pulsation suppression command value and the disturbance suppression command value. The motor control device according to claim 1 .

3. The controller includes: Calculating the torque pulsation suppression command value and the disturbance suppression command value based on the target currents related to the d-axis and the q-axis. The motor control device according to claim 2 .

4. the controller multiplies the disturbance suppression command value by a coefficient including a rotational angular velocity of the motor and adds the resultant value to the fundamental wave command value as the cancellation voltage command value. The motor control device according to claim 2 .

5. The controller multiplies the torque pulsation suppression command value by a coefficient including a rotational angular velocity of the motor and adds the resultant value to the fundamental wave command value as the cancellation voltage command value. The motor control device according to claim 2 .

6. the controller multiplies a combined value of the torque pulsation suppression command value and the disturbance suppression command value by a coefficient including a rotational angular velocity of the motor, and adds the resulting value to the fundamental wave command value as the cancellation voltage command value. The motor control device according to claim 2 .

7. The controller adds the torque pulsation suppression command value to the current command value. The motor control device according to claim 5.

8. the current command value calculator limits the current command value so that the output voltage of the inverter becomes an operating point equal to or lower than a voltage utilization rate set for a voltage limit circle based on a DC bus voltage of the inverter, or becomes an operating point obtained by subtracting a predetermined voltage value from the DC bus voltage of the inverter; The controller calculates the torque pulsation suppression command value and the disturbance suppression command value based on the current command value limited by the current command value calculator. The motor control device according to claim 2 .

9. the controller calculates the disturbance suppression command value so as to suppress a current corresponding to a component to be suppressed among distortion components contained in the motor current that is passed when a sinusoidal wave voltage is applied to the motor due to impedance distortion of the motor; The motor control device according to claim 2 .

10. the controller calculates the torque pulsation suppression command value so as to suppress torque pulsation occurring in the motor when a sinusoidal current is applied to the motor. The motor control device according to claim 2 .

11. The controller limits the cancellation voltage command value based on a limit value based on a rotational angular velocity of the motor and an electrical constant, and adds the limited cancellation voltage command value to the fundamental wave command value. The motor control device according to any one of claims 1 to 10.