Motor control device
The motor control device composed of an inverter and a controller calculates and generates an offset voltage command value to suppress torque pulsation and interference, solves the problem of torque pulsation and interference in high-speed rotation of the synchronous motor, and improves the stability and performance of the motor.
Patent Information
- Application Number
- CN202380093335.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-22
- Publication Date
- 2025-10-24
AI Technical Summary
The existing technology cannot effectively reduce torque ripple and interference in high-speed rotating synchronous motors, especially interference caused by impedance changes in the voltage equation.
The motor control device consists of an inverter and a controller. The inverter provides power, the controller calculates current and voltage command values, and generates offset voltage command values to suppress torque pulsation and interference, and uses a PWM signal generator to generate switching signals to control the motor.
It effectively reduces torque pulsation and interference effects in high-speed rotation areas, and improves the stability and performance of the motor.
Smart Images

Figure CN120836136A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to a motor control device. BACKGROUND
[0002] As an alternating-current motor for variable-speed drive, a synchronous motor using permanent magnets in a rotor is adopted. Such a synchronous motor is sometimes referred to as a brushless motor. In controlling a synchronous motor, how to reduce torque ripple generated by the synchronous motor is an important concern. For example, in Patent Literature 1, a technique of setting a feedforward term in a manner to cancel torque ripple using a flux / reluctance term depending on the flux / reluctance of the motor is disclosed. In Patent Literature 2, a technique of overlapping (adding) a q-axis vibration voltage command value for canceling a torque ripple component with a basic q-axis voltage command value with the same frequency as the torque ripple generated in the output torque of the rotor is disclosed. PRIOR ART DOCUMENTS PATENT LITERATURE
[0003] Patent Literature 1: Japanese Patent No. 6760197 Patent Literature 2: Japanese Patent No. 7090812 SUMMARY PROBLEMS TO BE SOLVED BY THE INVENTION
[0004] In Patent Literature 1, in paragraphs 0047-0048, Figure 5 and Figure 12 , according to a torque command Tm* and a predicted electrical angle θees, coefficients Kvdff_Lφ, Kvqff_Lφ used in flux / inductance term operation are set, and a product of the coefficients and a rotational speed Nm is calculated as a flux / reluctance term Vdff_Lφ, Vqff_Lφ as a feedforward voltage. As a solution method of the coefficients Kvdff_Lφ, Kvqff_Lφ, paragraph 0048 states that they are determined in advance according to the predicted electrical angle θees and the torque command Tm* by experiment or analysis. Here, even if the torque command Tm* is given, field weakening control can be performed in a region where the motor is rotated at high speed, for example. In this case, even if the torque command Tm* is set to be the same, in order to avoid voltage saturation, a d-axis current as a field weakening current needs to be energized according to the rotational speed of the motor. Therefore, for a certain torque command Tm*, the d-axis current as a field weakening current varies according to the rotational speed of the motor. Here, according to the amount of energization of the d-axis current, the pulsation of the inductance L and / or the flux φ sometimes varies. In the technique of Patent Literature 1, since the coefficients Kvdff_Lφ, Kvqff_Lφ are determined in advance according to the predicted electrical angle θees and the torque command Tm* by experiment or analysis, it cannot cope with a motor in which the pulsation of the inductance L and / or the flux φ varies due to the variation of the d-axis current caused by the execution of field weakening control or the like according to the rotational speed of the motor.
[0005] In Patent Literature 2, regarding the output torque T of the rotor shown in Expression (1), feedforward control is performed to reduce the pulsation component of the output torque T shown in Expression (2), that is, the torque pulsation component ΔT. Specifically, the oscillation voltage command value indicated by Expressions (8) and (9) of Patent Literature 2 is calculated. This is an oscillation voltage command value for suppressing the torque pulsation caused by the change in the output torque T of the rotor, and does not cope with the change in the impedance in the voltage equation of the motor, that is, the disturbance. One of the causes of the torque pulsation is the pulsation of the magnetic flux and / or the inductance. This pulsation depends not only on the output torque T but also on the change in the impedance in the voltage equation of the motor. The technology of Patent Literature 2 does not cope with the change in the impedance in the voltage equation, that is, the disturbance.
[0006] The present disclosure was completed in order to solve the above problem, and an object thereof is to provide a motor control device capable of reducing the influence on a motor due to torque pulsation and a disturbance in a region in which the motor is caused to rotate at high speed. Technical Solution to Solve the Technical Problem
[0007] In order to solve the above problem, one embodiment of the present disclosure includes an inverter that supplies power to a motor, and a controller that controls the motor, outputs an instruction signal to the inverter, and has a current command value calculator that calculates a current command value in a rotational two-axis of the motor, a voltage command value calculator that calculates a voltage command value in the rotational two-axis of the motor, that is, a fundamental command value, by feedback control on 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 a disturbance generated by the motor, on the basis of either one of the current command value or a motor current flowing through the motor, that is, an object current, and a rotor position of the motor, and a PWM signal generator that generates the instruction signal output to the inverter using a post-addition fundamental command value obtained by adding the cancellation voltage command value to the fundamental command value. Effect of the Invention
[0008] According to the present disclosure, it is possible to reduce the influence on a motor due to torque pulsation and a disturbance in a region in which the motor is caused to rotate at high speed. BRIEF DESCRIPTION OF DRAWINGS
[0009] Figure 1 is a block diagram showing the structure of the motor control device according to Embodiment 1. Figure 2 is a diagram for explaining the generation principle of the switching signal according to Embodiment 1. Figure 3FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 4 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 5 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 6 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 7 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 8 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 9 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 10 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 11 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 12 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 13 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 14 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 15 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 16 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 17 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 18 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 19 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 18 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1. Figure 20 FIG. 1 is a graph showing an example of a pulsation waveform of torque involved in Embodiment 1.
[0010] [Embodiment 1] Figure 1 is a block diagram showing the structure of the motor control device according to Embodiment 1. As shown in Figure 1 the motor control device 100 includes a rotation position detector 2, a current detector 3, an inverter 5, and a controller 6. A direct current power supply 4 and a motor 1 are connected to the motor control device 100. The motor control device 100 controls the motor 1 based on a torque command T_ref as a control command input from the outside of the motor control device 100.
[0011] The motor 1 is a three-phase alternating-current rotary electric machine having three-phase windings U, V, W. Further, the motor 1 is an alternating-current rotary electric machine controllable based on a rotation two-axis. In the present specification, the "rotation two-axis" refers to two axes that rotate in synchronization with a rotor of the motor 1 and that are orthogonal to each other in a cross section. The "cross section" refers to a section perpendicular to a central axis of the rotor. For example, the rotation two-axis can be a d-q axis. The d-axis is an axis connecting the central axis of the rotor and a magnetic pole. The q-axis is an axis orthogonal to both the d-axis and the above-mentioned central axis. Further, the rotation two-axis can be a γ-δ axis. The γ-axis is an axis shifted in a rotation direction with respect to the d-axis. The δ-axis is an axis orthogonal to both the γ-axis and the above-mentioned central axis. One of the rotation two-axes is referred to as a first axis, and the other is referred to as a second axis. For example, when the d-axis is referred to as the first axis, the q-axis is referred to as the second axis. Alternatively, the q-axis can be the first axis, and the d-axis can be the second axis. Likewise, when the γ-axis is referred to as the first axis, the δ-axis is referred to as the second axis.
[0012] The following describes a case where the motor 1 is a permanent magnet synchronous rotary electric machine and the rotation two-axis is a d-q axis. Here, the motor 1 can be, for example, a wound-field synchronous rotary electric machine, an induction rotary electric machine, a synchronous reluctance motor, or the like. Further, the d-axis and the q-axis in the following disclosure can be replaced with the δ-axis and the γ-axis.
[0013] The rotation position detector 2 includes a resolver, an encoder, an MR (magnetic resistance) sensor, or the like, and detects a rotor position θ using them. The rotor position θ is a position of a rotor possessed by the motor 1 in a rotation direction. In the present embodiment, the rotor position θ of the motor 1 is detected using the rotation position detector 2. Here, a structure that estimates the rotor position θ of the motor 1 can be adopted without using the rotation position detector 2. In other words, in the present disclosure, the motor control device 100 can not include the rotation position detector 2.
[0014] The direct current power supply 4 is, for example, a battery, a DC-DC converter, a diode rectifier, a PWM (Pulse Width Modulation) rectifier, or the like, and outputs a direct current bus voltage Vdc to the inverter 5 described later. Alternatively, for the direct current power supply 4, all devices that output a direct current voltage are included.
[0015] The inverter 5 is a power converter that applies a voltage to the motor 1. The inverter 5 applies an alternating voltage to three-phase windings U, V, W possessed by the motor 1, based on a direct-current bus voltage Vdc output from the direct-current power supply 4, and switching signals Gup, Gvp, Gwp, Gun, Gvn, Gwn output from the controller 6.
[0016] The inverter 5 includes switching elements Sup, Svp, Swp, Sun, Svn, Swn. Each of the switching elements is, for example, a semiconductor switch such as an IGBT (Insulated Gate Bipolar Transistor), a bipolar transistor, and a MOS (Metal Oxide Semiconductor) power transistor. In addition, each of the switching elements is connected in reverse-parallel with a diode or a body diode.
[0017] The switching elements Sup, Svp, Swp on the high-potential side of the upper arm are connected to the positive electrode of the direct-current power supply 4. The switching elements Sun, Svn, Swn on the low-potential side of the lower arm are connected to the switching elements Sup, Svp, Swp of the upper arm, respectively.
[0018] The switching signals Gup, Gvp, Gwp output from the controller 13 are input to the switching elements Sup, Svp, Swp of the upper arm, respectively. The switching signals Gun, Gvn, Gwn output from the controller 13 are input to the switching elements Sun, Svn, Swn of the lower arm, respectively. The switching elements Sup, Svp, Swp of the upper arm and the switching elements Sun, Svn, Swn of the lower arm are in an on state or an off state by the switching signals Gup, Gvp, Gwp, Gun, Gvn, Gwn output from the controller 13. Here, the on state is an on state. The off state is an off state. In the present specification and the drawings, the switching signals Gup, Gvp, Gwp, Gun, Gvn, Gwn are sometimes collectively referred to and labeled as "switching signals Gup to Gwn".
[0019] For example, when the switching signal Gup outputs a signal indicating "1", for example, as an on instruction, the switching element Sup becomes the on state. For example, when the switching signal Gup outputs a signal indicating "0 (zero)", for example, as an off instruction, the switching element Sup becomes the off state. The same applies to the other switching elements Svp, Swp, Sun, Svn, Swn.
[0020] The switching signals Gup to Gwn are generated by the PWM signal generator 11 based on the three-phase voltage command values vu, vv, vw output from the coordinate converter 10 of the controller 6. In the present embodiment, the voltage command values vu, vv, vw used to generate the switching signals Gup to Gwn are command values to which the cancel voltage command value vq_cancel is added. The cancel voltage command value vq_cancel is a correction command value that is generated by the cancel operator 20 to superimpose a voltage command value on vq in order to suppress the effects of torque pulsation and disturbance. Specifically, the cancel voltage command value vq_cancel is superimposed on the voltage command value vq in the two-phase voltage command values vd, vq before conversion from two-phase to three-phase in the coordinate converter 10 of the controller 6. Since the two-phase voltage command values vd, vq and the three-phase voltage command values vu, vv, vw only undergo coordinate conversion from two-phase to three-phase, and both are equivalent, the three-phase voltage command values vu, vv, vw are command values to which the cancel voltage command value vq_cancel is added. The specific method by which the cancel operator 20 generates the cancel voltage command value will be described later in detail. Furthermore, the 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 later in detail.
[0021] The current detector 3 detects motor currents iu, iv, iw flowing through the three-phase windings U, V, W of the motor 1. The current detector 3 outputs information indicating the detected motor currents iu, iv, iw to the controller 6. As the current detector 3, any method of detecting phase currents can be employed. Furthermore, the current detector 3 can detect the motor currents iu, iv, iw using the voltages across shunt resistors (not shown) connected in series with each of the switching elements Sun, Svn, Swn on the low-potential side of the lower arms of the inverter 5 and the switching signals Gun, Gvn, Gwn. Furthermore, the motor currents iu, iv, iw can be detected using the known "lower arm 2 shunt method" or the known "bus 1 shunt detection method".
[0022] The controller 6 uses the torque command T_ref, the motor currents iu, iv, iw, and the 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, for example, a PWM controller that outputs the switching signals Gup to Gwn by a microcomputer, a DSP (Digital Signal Processor), or the like discrete-time operator. The controller 6 includes the current command value operator 7, the coordinate converter 8 for detection, the current controller 9, the coordinate converter 10 for control, the PWM signal generator 11, the speed operator 12, the adder 14, the adder 15, the amplifier 16, the amplifier 17, and the cancel operator 20.
[0023] The current command value calculator 7 calculates current command values in the dq coordinate system, i.e., current command values id_ref, iq_ref, 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). Also, the current command value calculator 7 calculates the current command value iq_ref using Equation (1-2). T_ref is the torque command, and Kt is a torque constant [Nm / A].
[0024] id_ref = 0... Equation (1-1) iq_ref = T_ref / Kt... Equation (1-2)
[0025] As shown in Equation (1-1), the current command value calculator 7 sets the current command value id_ref on the d-axis to 0 (zero). Also, as shown in Equation (1-2), the current command value calculator 7 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. The id_ref is also referred to as a "field weakening current command value", and the iq_ref is also referred to as a "torque current command value". As a method of calculating the current command values by the current command value calculator 7, MTPA (Maximum Torque per Ampere) control, MTPV (Maximum Torque per Voltage) control, or field weakening control, and the like, and combinations thereof, and the like, which are known techniques, can be employed. In addition, a method of calculating the current command values id_ref, iq_ref, which limits the voltage utilization rate, will be described in Embodiment 2 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. Thereby, the coordinate converter 8 calculates the motor currents id, iq on the rotating two-axes (d and q axes), and outputs the coordinate-converted motor currents id, iq as a calculation result to the current controller 9.
[0027] The adder 15 adds the torque ripple 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 added current command value iq_ref2 to the current controller 9.
[0028] The current controller 9 performs feedback control on the current command value id_ref output from the current command value calculator 7 with respect to the d-axis, and the added current command value iq_ref2 output from the adder 15 with respect to the q-axis, and calculates voltage command values, i.e., fundamental command values vd, vq with respect to the rotational two-axes (d, q-axes) of the motor 1. The current controller 9 calculates the fundamental command values vd, vq with respect to the rotational two-axes (d, q-axes) on the basis of the current command value id_ref, the current command value iq_ref2, and the motor currents id, iq with respect to the rotational two-axes (d, 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 between the current command value id_ref with respect to the d-axis and the motor current id with respect to the d-axis, and outputs the calculated d-axis current deviation ed to the d-axis current controller 91. The d-axis current controller 91 calculates the fundamental command value vd so that the d-axis current deviation ed becomes 0 (zero) by using a control method such as P control or PI control. The d-axis current controller 91 outputs the calculated fundamental command value vd to the coordinate converter 10.
[0031] The subtractor 92 calculates a q-axis current deviation eq between the current command value iq_ref2 with respect to the q-axis and the motor current iq with respect to the q-axis, and outputs the calculated q-axis current deviation eq to the q-axis current controller 93. The q-axis current controller 93 calculates the fundamental command value vq so that the q-axis current deviation eq becomes 0 (zero) by using a control method such as P control or PI control. The q-axis current controller 93 outputs the calculated fundamental command value vq to the adder 14.
[0032] The adder 14 adds the cancel command value vq_cancel calculated by the cancel calculator 20 to the fundamental command value vq calculated by the q-axis current controller 93, and outputs the added fundamental command value vq' to the coordinate converter 10.
[0033] The coordinate converter 10 performs coordinate conversion based on the fundamental command values vd, vq' and the rotor position θ detected by the rotational position detector 2, and calculates the fundamental command values vu, vv, vw as three-phase voltage command values. The fundamental command values vu, vv, vw calculated by the coordinate converter 10 are calculated using the fundamental command value vq' obtained by adding the fundamental command value vd and the cancel voltage command value vq_cancel, and thus are the fundamental command values vu, vv, vw that reflect the cancel voltage command value vq_cancel. The coordinate converter 10 outputs the calculated fundamental 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 command values vu, vv, vw output from the coordinate converter 10.
[0035] Here, the operation of the PWM signal generator 11 will be described with reference to FIG. 6. Figure 2 The method by which the PWM signal generator 11 generates the switching signals Gup to Gwn will be described. Figure 2 is a diagram for explaining the principle of generation of the switching signals in Embodiment 1. Figure 2 The time-series changes of the fundamental command values vu, vv, vw, a carrier triangle wave C that is a carrier wave of a period Tc (frequency fc), and the switching signals Gup to Gwn are shown. Figure 2 The horizontal axis represents time, and the vertical axis represents signal levels. The PWM signal generator 11 generates the switching signals Gup to Gwn by comparing the fundamental command values vu, vv, vw with the carrier C.
[0036] Specifically, if the fundamental command value vu is greater than the carrier triangle 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 command value vu is less than the carrier 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] Further, if the fundamental command value vv is greater than the carrier triangle wave C, the PWM signal generator 11 sets the switching signal Gvp to, for example, "1" as an on command, and sets the switching signal Gvn to "0 (zero)" as an off command. On the other hand, if the fundamental command value vv is less than the carrier C, the PWM signal generator 11 sets the switching signal Gvp to "0 (zero)" as an off command, and sets the switching signal Gvn to "1" as an on command.
[0038] Further, if the fundamental command value vw is larger than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gwp to "1", for example, as an on command, and sets the switching signal Gwn to "0 (zero)" as an off command. On the other hand, if the fundamental command value vw is smaller than the carrier C, the PWM signal generator 11 sets the switching signal Gwp to "0 (zero)" as an off command, and sets the switching signal Gwn to "1" as an on command.
[0039] In addition, a short-circuit prevention time, i.e., a dead time, can be provided to the switching signals Gup to Gwn so that the switching elements Sup, Svp, Swp of the upper arm and the switching elements Sun, Svn, Swn of the lower arm in the inverter 5 do not become in an on state at the same time.
[0040] Returning to the description of Figure 1 The speed calculator 12 detects the rotational angular velocity ω of the motor 1 based on the rotor position θ detected by the rotational position detector 2. The speed calculator 12 calculates the rotational angular velocity ω of the motor 1 by differentiating or differentiating the rotor position θ, and outputs the calculated rotational angular velocity ω. Here, the rotational angular velocity ω of the motor 1 output here is the rotational angular velocity of the electrical angle in the motor 1, and coincides with a value obtained by multiplying the rotational angular velocity of the mechanical angle by the number of pole pairs of the motor 1.
[0041] The amplifier 16 calculates a value (Nω) obtained by multiplying the rotational angular velocity ω output from the speed calculator 12 by a constant N, and outputs the calculated value (Nω) to the amplifier 17. Here, the constant N is a frequency component in the torque ripple generated by the motor 1 that is an object of suppression. For example, in a case where a frequency component corresponding to 6 times the fundamental frequency (the frequency of the fundamental command values vu, vv, and vw described above) in the torque ripple generated by the motor 1 is an object of suppression, the constant N is set to "6". Hereinafter, the frequency component corresponding to N times the fundamental frequency will be sometimes referred to as an "electrical angle Nth frequency component".
[0042] The amplifier 17 calculates a value (NωL) obtained by multiplying the rotational angular velocity ω output from the amplifier 16 by a constant N and then multiplying the value 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 ripple 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 cancel operation 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 ripple suppression command values i_cancel, i_cancel2 based on the current command values id_ref, iq_ref and the rotor position θ. The torque ripple suppression command values i_cancel, i_cancel2 are both current command values for suppressing torque ripple. The torque ripple suppression command values i_cancel, i_cancel2 are sine waves having the same amplitude and 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 as an amplitude value of the torque ripple suppression command values i_cancel, i_cancel2 based on the current command values id_ref, iq_ref. The amplitude i_ca_amp is calculated using Figures 3-6 The method of calculating the amplitude i_ca_amp by the torque suppression command amplitude calculator 210 will be described. Figure 3 and Figure 4 is a graph showing an example of a torque ripple waveform relating to the embodiment 1. Figure 5 is a graph showing an example of an amplitude table for suppressing torque ripple relating to the embodiment 1. Figure 6 is a graph showing an example of a phase table for suppressing torque ripple relating to the embodiment 1.
[0048] Figure 3 The upper part of shows an example of a torque ripple waveform including an electrical angle six frequency component extracted from a torque measured when a motor current is applied to the motor 1 as a sine wave and the motor 1 is driven under a certain current condition. The current condition of the motor 1 here is a condition in which the motor current Id on the d-axis of the motor 1 is set to a constant value Id1, the motor current Iq on the q-axis is set to a constant value Iq1, and the rotational angular velocity of the motor 1 is set to be constant.
[0049] In this specification and the accompanying drawings, the current conditions for driving motor 1, where motor currents are set to Id = Id# and Iq = Iq#, are sometimes referred to as current conditions (Id# and Iq#). # represents a numerical value used to identify the current value. For example, the current conditions for driving motor 1, where currents are set to Id = Id1 and Iq = Iq1, are referred to as current conditions (Id1, Iq1).
[0050] In addition, the current command value id_ref on the d-axis can be used as the motor current Id. In addition, the current command value iq_ref on the q-axis can be used as the motor current Iq.
[0051] Figure 3 The middle portion shows a waveform of the motor current for suppressing the pulsation of the torque, the numerical value of which is a value obtained by multiplying the pulsation waveform of the torque shown in the upper portion by "-1 / Kt".
[0052] Figure 3 The lower portion of the diagram shows an example of converting the motor current waveform shown in the middle portion into a mathematical expression and extracting the waveform's amplitude and initial phase. The amplitude of the motor current used to suppress torque ripple under the current condition (Id1, Iq1) is amplitude i_ca_amp(Id1, Iq1). The initial phase of the motor current used to suppress torque ripple under the current condition (Id1, Iq1) is phase i_ca_ph(Id1, Iq1).
[0053] exist Figure 4 The upper part shows the Figure 3 This is an example of a torque pulsation waveform extracted from the torque of motor 1 driven under the current condition of the sixth electrical angle frequency component. The current condition of motor 1 here is the current condition (Id2, Iq1), which sets the motor current Id on the d-axis of motor 1 to a constant value Id2, the motor current Iq on the q-axis to a constant value Iq1, and the rotational angular velocity of motor 1 to a constant value.
[0054] Figure 4 The middle portion shows a waveform of the motor current for suppressing the pulsation of the torque, the numerical value of which is a value obtained by multiplying the pulsation waveform of the torque shown in the upper portion by "-1 / Kt".
[0055] Figure 4 The lower portion of the diagram shows an example of converting the motor current waveform shown in the middle portion into a mathematical expression and extracting the waveform's amplitude and initial phase. The amplitude of the motor current that suppresses torque ripple under the current condition (Id2, Iq1) is amplitude i_ca_amp(Id2, Iq1). The initial phase of the motor current that suppresses torque ripple under the current condition (Id2, Iq1) is phase i_ca_ph(Id2, Iq1).
[0056] Figure 5 An example of the torque suppression amplitude table 210Tbl is shown. The torque suppression amplitude table 210Tbl is a table showing a correspondence relation between a current condition and an amplitude value of a motor current that suppresses a torque ripple. For example, in the same manner as the method explained with Figure 3 and Figure 4 explained, the amplitude value of the motor current that suppresses the torque ripple is calculated in advance under various current conditions in which the motor 1 is energized, and the calculated amplitude value is stored in the torque suppression amplitude table 210Tbl.
[0057] When the motor 1 rotates, 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 refers to the torque suppression amplitude table 210Tbl on the basis of the input current command values id_ref, iq_ref, acquires the amplitude i_ca_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref), and outputs the acquired amplitude i_ca_amp(id_ref, iq_ref) as the amplitude i_ca_amp of the current command value for suppressing the torque ripple in the motor 1.
[0058] Here, the torque suppression command amplitude calculator 210 can calculate the amplitude i_ca_amp by performing linear interpolation. For example, when the current command value iq_ref under the current condition in which the amplitude is to be calculated is a current value that is located midway 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 using linear interpolation. For example, the amplitude value under the current condition (IdM, Iq1) between the current condition (Id1, Iq1) of Figure 3 and the current condition (Id2, Iq1) of Figure 4 may be calculated by linear interpolation. Here, IdM is, for example, (Id1 + Id2) / 2. In this case, the torque suppression command amplitude calculator 210 calculates, for example, a value obtained by adding the amplitude i_ca_amp(Id1, Iq1) and the amplitude i_ca_amp(Id2, Iq1) and multiplying by 1 / 2, as the amplitude i_ca_amp(IdM, Iq1).
[0059] Figure 6 An example of the torque suppression phase table 211Tbl is shown. The torque suppression phase table 211Tbl is a table showing a correspondence relation between a current condition and an amplitude value of a motor current that suppresses a torque ripple. For example, in the same manner as the method explained with Figure 3 and Figure 4The illustrated method is the same method as the method in which the initial phase of the motor current that suppresses the torque ripple under various current conditions in which the motor 1 is energized is calculated in advance, and the phase that advances the calculated initial phase by 90 degrees is stored in the torque suppression phase table 211 Tbl.
[0060] For example, in the case where the initial phase in the current condition (Idl, Iql) is the phase i ca ph (Idl, Iql), the phase that advances the phase i ca ph (Idl, Iql) by 90 degrees, i.e., the phase {i ca ph (Idl, Iql) + 90}, is stored in the torque suppression phase table 211 Tbl. Further, when the initial phase under the current condition (Id2, Iql) is the phase i ca ph (Id2, Iql), the phase {i ca ph (Id2, Iql) + 90} is stored in the torque suppression phase table 211 Tbl.
[0061] When the motor 1 rotates, the current command values id ref, iq ref are input to the torque suppression command phase calculator 211. The torque suppression command phase calculator 211 acquires the initial phase {i ca ph (id ref, iq ref) + 90} corresponding to the current condition (id ref, iq ref) with reference to the torque suppression phase table 211 Tbl on the basis of the current command values 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 the torque ripple in the motor 1 under the current condition (id ref, iq ref). That is, there is a relationship of i ca phase = i ca ph + 90.
[0063] Here, the phase that advances the phase i ca ph by 90 degrees is stored in the torque suppression phase table 211 Tbl. This is to energize the motor current corresponding to the torque ripple suppression command value i cancel 2 to the motor 1. More specifically, the cancel voltage command value vq cancel including the component of the torque ripple suppression command value i cancel 2 is added to the fundamental command value vq. Therefore, the phase of the torque ripple suppression command value i cancel 2 is advanced by 90 degrees. The 90 degrees here is a phase corresponding to ¼ period in the case where one period in the waveform of the electrical angle Nth frequency component that is the suppression object is set to 360 degrees.
[0064] The torque suppression command value calculator 21 calculates the torque ripple suppression command value i cancel, i cancel2 shown in the equations (1-3), (1-4). The constant N is the number of times intended as a suppression object. Θ is the rotor position Θ detected by the rotation position detector 2.
[0065] i cancel = i ca amp x cos(NΘ + i ca phase)... Equation (1-3) i cancel2 = i ca amp x cos(NΘ + i ca phase - 90)... Equation (1-4)
[0066] Here, the process of deriving the torque ripple suppression command value i cancel shown in the equation (1-3) will be explained specifically.
[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 the constant N. The value (NΘ) obtained by multiplying the rotor position Θ by the constant N here is calculated by the amplifier 28 described later and output to the adder 212. The adder 212 outputs the added phase (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 multiplied sine wave {i ca amp x cos(NΘ + i ca phase)} as the cancellation voltage command value i cancel.
[0070] Here, the process of deriving the torque ripple suppression command value i cancel2 shown in the equation (1-4) will be explained specifically.
[0071] The subtracter 215 outputs the phase (NΘ + i ca phase - 90) obtained by subtracting 90 from the phase (NΘ + i ca phase) output from the adder 212 to the cosine calculator 216.
[0072] The cosine operator 216 operates a sine wave cos(Nθ + i_ca_phase - 90) having the phase (Nθ + i_ca_phase - 90) output from the adder 212, and outputs the operated sine wave cos(Nθ + i_ca_phase - 90) to the multiplier 217.
[0073] The multiplier 217 multiplies the amplitude i_ca_amp by the sine wave cos(Nθ + i_ca_phase - 90) output from the cosine operator 216. The multiplier 217 outputs the multiplied sine wave {i_ca_amp x cos(Nθ + i_ca_phase - 90)} as the cancel voltage command value i_cancel2.
[0074] Here, as described above, the phase i_ca_phase is a phase that advances the phase i_ca_ph by 90 degrees, and there is a relationship of i_ca_phase = i_ca_ph + 90, and therefore equation (1-4) is equivalent to equation (1-5).
[0075] i_cancel2 = i_ca_amp x cos(Nθ + i_ca_ph)... (1-5)
[0076] The torque ripple suppression command value i_cancel2 calculated by the cancel operator 20 corresponds to a motor current shown in a middle and lower portion of Figure 3 , a middle and lower portion of Figure 4 . That is, the torque ripple suppression command value i_cancel2 is a current command value corresponding to a sine wave that is opposite in phase to the torque ripple in the motor 1 and has an amplitude of 1 / Kt times. Further, the torque ripple suppression command value i_cancel is a current command value corresponding to a sine wave whose phase is advanced by 90 degrees with respect to the torque ripple suppression command value i_cancel2.
[0077] The cancel operator 20 outputs the torque ripple suppression command value i_cancel of the torque ripple suppression command values i_cancel, i_cancel2 to the adder 15. The adder 15 adds the torque ripple suppression command value i_cancel to the current command value iq_ref, and outputs the added current command value iq_ref2 to the current controller 9. Here, it is assumed that the set response frequency in the q-axis current controller 93 is the frequency fq.
[0078] In this case, if the electrical angle Nth frequency is below the frequency fq, the electrical angle Nth frequency component of the motor current Iq coincides with the torque ripple suppression command value i_cancel2. Further, the torque ripple suppression command value i_cancel2 is Figure 3 a middle and lower portion of Figure 4the upper portion of the waveform shown in FIG. 6B. Therefore, the torque ripple in the motor 1 is suppressed due to cancellation of the torque ripple shown in the upper portion of the waveform shown in FIG. 6B. Figure 3 the upper portion of the waveform shown in FIG. 6B. Therefore, the torque ripple in the motor 1 is suppressed due to cancellation of the torque ripple shown in the upper portion of the waveform shown in FIG. 6B. Figure 4 the upper portion of the waveform shown in FIG. 6B. Therefore, the torque ripple in the motor 1 is suppressed due to cancellation of the torque ripple shown in the upper portion of the waveform shown in FIG. 6B.
[0079] On the other hand, when the electrical angle Nth frequency exceeds the frequency fq, the performance range of the q-axis current controller 93 is exceeded. In a frequency band in which the electrical angle Nth frequency exceeds the frequency fq, the command value for controlling so that the electrical angle Nth frequency component contained in the motor current Iq coincides with the torque ripple suppression command value i_cancel2 is the cancellation voltage command value vq_cancel.
[0080] The disturbance suppression command value calculator 22 calculates the disturbance suppression command value i_gairan on the basis of the current command values id_ref, iq_ref and the rotor position θ. The disturbance suppression command value i_gairan is a current command value for suppressing a disturbance.
[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 suppression command amplitude calculator 220 calculates an amplitude i_ga_amp which is an amplitude value of the disturbance suppression command value i_gairan on the basis of the current command values id_ref, iq_ref. The amplitude i_ga_amp is calculated by Figures 7-10 The method by which the disturbance suppression command amplitude calculator 220 calculates the amplitude i_ga_amp will be described. Figure 7 and Figure 8 is a graph showing an example of a waveform affected by a disturbance according to Embodiment 1. Figure 9 is a graph showing an example of an amplitude table for suppressing the effect of a disturbance according to Embodiment 1. Figure 10 is a graph showing an example of a phase table for suppressing the effect of a disturbance according to Embodiment 1.
[0083] Figure 7The upper part of FIG. 6A shows an example of a waveform of the electrical angle sixth frequency component affected by the disturbance extracted from the motor current Iq on the q-axis when the motor 1 is driven under the current condition in which the motor current Id on the d-axis of the motor 1 is set to a constant value Idl, the motor current Iq on the q-axis is set to a constant value Iql, the rotational angular velocity of the motor 1 is set to be constant, and the fundamental command values vd, vq are set to be constant. Here, the disturbance includes the electrical angle sixth frequency component of the magnet flux φm in the motor 1, the electrical angle sixth frequency component of the inductance in the motor 1, and the like. These are the electrical angle sixth frequency components generated by the impedance variation and distortion, that is, the disturbance in the motor 1.
[0084] Figure 7 The lower part of FIG. 6A shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of FIG. 6A. Further, in the lower part of FIG. 6A, an example of extracting the amplitude and initial phase of the waveform by converting the waveform into a mathematical expression is shown. The amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Idl, Iql) is amplitude i_ga_amp (Idl, Iql). The initial phase of the motor current for suppressing the influence of the disturbance under the current condition (Idl, Iql) is phase i_ga_ph (Idl, Iql). Figure 7 Figure 7 In the upper part of FIG. 6B, an example of a waveform of the electrical angle sixth frequency component affected by the disturbance extracted from the motor current Iq on the q-axis when the motor 1 is driven under a current condition different from that of FIG. 6A (Id2, Iql) is shown.
[0085] In the lower part of FIG. 6B, an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of FIG. 6B is shown. Further, in the lower part of FIG. 6B, an example of extracting the amplitude and initial phase of the waveform by converting the waveform into a mathematical expression is shown. The amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is amplitude i_ga_amp (Id2, Iql). The initial phase of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is phase i_ga_ph (Id2, Iql). Figure 8 Figure 7 The lower part of FIG. 6B shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of FIG. 6B. Further, in the lower part of FIG. 6B, an example of extracting the amplitude and initial phase of the waveform by converting the waveform into a mathematical expression is shown. The amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is amplitude i_ga_amp (Id2, Iql). The initial phase of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is phase i_ga_ph (Id2, Iql).
[0086] Figure 8 Figure 8 The lower part of FIG. 6B shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of FIG. 6B. Further, in the lower part of FIG. 6B, an example of extracting the amplitude and initial phase of the waveform by converting the waveform into a mathematical expression is shown. The amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is amplitude i_ga_amp (Id2, Iql). The initial phase of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is phase i_ga_ph (Id2, Iql). Figure 8
[0087] An example of the disturbance suppression amplitude table 220 Tbl is shown. The disturbance suppression amplitude table 220 Tbl is a table showing the correspondence between the current condition and the amplitude value of the motor current for suppressing the influence of the disturbance. For example, the amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Idl, Iql) is amplitude i_ga_amp (Idl, Iql). The amplitude value of the motor current for suppressing the influence of the disturbance under the current condition (Id2, Iql) is amplitude i_ga_amp (Id2, Iql). Figure 9 Figure 7 andFigure 8 The same method as explained above is used to pre-calculate the amplitude value of the motor current that suppresses the influence of the disturbance, under various current conditions assuming that the motor 1 is energized, and the calculated amplitude value is stored in the disturbance suppression amplitude table 220 Tbl.
[0088] When the motor 1 is rotating, the current command values id_ref, iq_ref are input to the disturbance suppression command amplitude calculator 220. The disturbance suppression command amplitude calculator 220, based on the input current command values id_ref, iq_ref, refers to the disturbance suppression amplitude table 220 Tbl to acquire the amplitude i_ga_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The disturbance suppression command amplitude calculator 220 outputs the acquired amplitude i_ga_amp(id_ref, iq_ref) as the amplitude i_ga_amp of the current command value for suppressing the influence of the disturbance in the motor 1.
[0089] Here, the disturbance suppression command amplitude calculator 220 can calculate the amplitude i_ga_amp by performing 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 that is located midway between the motor currents Iq1 and Iq2 in the disturbance suppression amplitude table 220 Tbl, the disturbance suppression command amplitude calculator 220 calculates the amplitude i_ga_amp using linear interpolation. For example, the amplitude value under the current condition (IdM, Iq1) that is located between the current condition (Id1, Iq1) and the current condition (Id2, Iq1) can be calculated 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 by 1 / 2, for example. Figure 7 Figure 8
[0090] Figure 10 An example of the disturbance suppression phase table 221 Tbl is shown. The disturbance suppression phase table 221 Tbl is a table showing the correspondence between the current condition and the amplitude value of the motor current that suppresses the torque ripple. For example, the initial phase of the motor current that suppresses the influence of the disturbance is pre-calculated under various current conditions assuming that the motor 1 is energized, in the same way as explained above with respect to the disturbance suppression amplitude table 220 Tbl, and a phase that is 90 degrees ahead of the calculated initial phase is stored in the disturbance suppression phase table 221 Tbl. Figure 7 Figure 8
[0091] For example, when the initial phase under the current condition (Idl, Iql) is the phase i_ga_ph (Idl, Iql), the phase {i_ga_ph (Idl, Iql) + 90} is stored in the disturbance suppression phase table 221Tbl. When the initial phase under the current condition (Id2, Iql) is the phase i_ga_ph (Id2, Iql), the phase {i_ga_ph (Id2, Iql) + 90} is stored in the disturbance suppression phase table 221Tbl.
[0092] When the motor 1 rotates, the current command values id_ref, 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, 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 the disturbance in the motor 1 under the current condition (id_ref, iq_ref). That is, there is a relationship of i_ga_phase = i_ga_ph + 90.
[0094] Here, the phase that advances the phase i_ga_ph by 90 degrees is stored in the disturbance suppression phase table 221Tbl. This is to energize the motor current corresponding to the disturbance suppression command value i_gairan to the motor 1. More specifically, the cancellation voltage command value vq_cancel including the component of the disturbance suppression command value i_gairan is added to the fundamental command value vq. Therefore, the phase of the disturbance suppression command value i_gairan is advanced by 90 degrees.
[0095] The disturbance suppression command value i_gairan shown in Expression (1-6) is calculated in the disturbance suppression command value calculator 22. The constant N is the number of times that are intended to be the suppression target. θ is the rotor position θ detected by the rotation position detector 2.
[0096] i_gairan = i_ga_amp x cos (Nθ + i_ga_phase) Expression (1-6)
[0097] Here, the process of deriving the disturbance suppression command value i_gairan represented by Expression (1-6) will be specifically explained.
[0098] The adder 222 adds the phase i_ga_phase calculated by the disturbance suppression instruction phase calculator 221 to a value (Nθ) obtained by multiplying the rotor position θ by a constant N. The adder 2212 outputs the added phase (Nθ + i_ga_phase) to the cosine calculator 223.
[0099] The cosine calculator 223 calculates a 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 x cos(Nθ + i_ga_phase)} as the disturbance suppression instruction value i_gairan.
[0101] The resultant value i_sum, v_sum represented by the equations (1-7), (1-8), (1-9) is calculated in the cancellation calculator 20. The constant N is the number of times desired to be the suppression target. ω 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... Equation (1-7) v_sum = N · ω · L · i_sum = N · ω · L · (i_cancel + i_gairan)... Equation (1-8) v_sum2 = v_sum + R · i_cancel2 = R · i_cancel2 + N · ω · L · (i_cancel + i_gairan)... Equation (1-9)
[0103] The process of deriving the resultant value i_sum represented by the equation (1-7) will be described in detail. The adder 23 adds the disturbance suppression instruction value i_gairan to the torque ripple suppression instruction value i_cancel, and outputs the added resultant value i_sum (= i_cancel + i_gairan) to the multiplier 24.
[0104] The process of deriving the resultant value v_sum shown in Expression (1-8) will be described in detail. The multiplier 24 multiplies the resultant value i_sum output from the adder 23 by the value (NωL) output from the amplifier 17, and outputs the resultant value v_sum (=NωLi_sum) to the adder 25.
[0105] The process of deriving the resultant value v_sum2 shown in Expression (1-9) will be described in detail. The amplifier 27 outputs the value after multiplying the torque ripple suppression instruction 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 resultant value v_sum, and outputs the added resultant value v_sum2 to the limiter 26.
[0106] The limiter 26 compares the resultant value v_sum2 output from the adder 25 with the upper limit value (+vq_clip) and the lower limit value (-vq_clip), limits based on the comparison result so that the resultant value v_sum2 becomes a value between the lower limit value and the upper limit value, and outputs the limited value as the cancellation voltage instruction value vq_cancel. Specifically, the limiter 26 limits using Expression (1-10) so that the resultant value v_sum2 becomes a value between the lower limit value and the upper limit value.
[0107] (v_sum2 < -vq_clip) → vq_cancel = -vq_clip (-vq_clip < v_sum2 < vq_clip) → vq_cancel = v_sum2 (vq_clip < v_sum2) → vq_cancel = vq_clip … Expression (1-10)
[0108] Here, the limit value vq_clip set as the upper limit value and the lower limit value will be described. As shown in Expression (1-11), the limit value vq_clip is calculated using the number of times N of the electrical angle that is the suppression target, the maximum value ωmax of the rotational angular velocity ω used for the calculation in the cancellation calculator 20, the inductance L of the motor 1, and the maximum value i_sum_max of the resultant value i_sum.
[0109] vq_clip = NωmaxLi_sum_max … Expression (1-11)
[0110] Alternatively, the limiter 26 can input the rotational angular velocity ω in the motor 1, and calculate the limit value vq_clip using an expression obtained by replacing the maximum value ωmax of the rotational angular velocity in Expression (1-11) with the rotational angular velocity ω.
[0111] Further, in formula (1-10), if formula (1-9) is considered, it becomes formula (1-12) shown below.
[0112] (v_sum2 < -vq_clip) in the case of → vq_cancel = -vq_clip (-vq_clip < v_sum2 < vq_clip) in the case of → vq_cancel = R · i_cancel2 + N · ω · L · (i_cancel + i_gairan) (vq_clip < v_sum2) in the case of → vq_cancel = vq_clip … formula (1-12)
[0113] As shown in formula (1-12), the limiter 26 limits the synthesized value v_sum2 by the limit value vq_clip, where the synthesized value v_sum2 includes a value obtained by multiplying the addition value of the disturbance suppression instruction value i_gairan and the torque ripple suppression instruction value i_cancel by a coefficient including the rotational angular velocity ω of the motor. Here, the limit value vq_clip is a value calculated on the basis of the rotational angular velocity ω in the motor 1 and the inductance L as an electrical constant. That is, the cancel voltage instruction value vq_cancel is operated on the basis of the sum of the "disturbance suppression instruction value and torque ripple suppression instruction value" after the limitation.
[0114] The coordinate converter 10 outputs the cancel voltage instruction value vq_cancel to the adder 14. The adder 14 adds the cancel voltage instruction value vq_cancel to the fundamental wave instruction value vq and outputs the added fundamental wave instruction value vq' to the coordinate converter 10.
[0115] Here, the effect of the motor control device 100 of Embodiment 1 will be described. The voltage equation of the q-axis in the motor 1 is represented by the following formula (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 linkage flux 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 formula (1-13), it is assumed that the motor current id = 0 (zero) and there is no ripple component in the linkage flux φ. At this time, it is assumed that the inductance L includes the electrical angle six frequency component L_6f in the inductance L in addition to L_dc as the DC component. In this case, it can be represented as L = L_dc + L_6f, and formula (1-13) can be represented by the following formula (1-14).
[0118] Vq = R • iq + s(L_dc + L_6f) • iq + ωφ... (1-14)
[0119] In Equation (1-14), a case where the motor 1 rotates at high speed is considered. At this time, the first term on the right side of Equation (1-14) is relatively small compared to the second term on the right side, and thus can be ignored. Further, in a case where the motor 1 rotates at high speed, and the electrical angle six times frequency component with respect to the rotation is larger than the response frequency of the q-axis current controller 93, and the operation amount of the q-axis current controller 93 corresponds to the d-axis motor voltage Vq, the electrical angle six times frequency component Vq_6f included in the d-axis motor voltage Vq is sufficiently small, and thus can be regarded as 0 (zero). If the above matters are taken into consideration, Equation (1-14) can be expressed by the following Equation (1-15). iq_dc is a DC component included in the q-axis motor current iq. iq_6f is an electrical angle six times frequency component included in the 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)... (1-15)
[0121] If Equation (1-15) is solved with respect to the electrical angle six times frequency component iq_6f included in the q-axis motor current iq, Equation (1-16) is obtained.
[0122] iq_6f = -L_6f / L_dc • iq_dc... (1-16)
[0123] In Equation (1-16), the electrical angle six times frequency component iq_6f included in the q-axis motor current iq is generated due to L_6f. Here, when the electrical angle six times frequency component is smaller than the response frequency in the q-axis current controller 93, feedback control is performed so that the frequency component iq_6f is 0 (zero), and the frequency component iq_6f approaches 0 (zero). That is, the electrical angle six times frequency component Vq_6f in the d-axis motor voltage Vq is generated to suppress the frequency component iq_6f.
[0124] On the other hand, when the size relationship is reversed and the electrical angle six times frequency component is larger than the response frequency of the q-axis current controller 93, the frequency component iq_6f cannot be suppressed in the feedback control of the q-axis current controller 93. Therefore, the frequency component iq_6f corresponding to Equation (1-16) is supplied to the motor 1.
[0125] Thus, when the frequency of the frequency component iq_6f exceeds the control band in the current controller 9 due to the impedance variation in the motor 1, the frequency component iq_6f shown in Expression (1-16) is reflected in the rotation of the motor 1. In the present embodiment, the q-axis motor current including such a frequency component iq_6f is defined as a disturbance current caused by impedance distortion. The q-axis motor current including the frequency component iq_6f is sometimes denoted as a disturbance current iq_6f. The measurement result of the disturbance current iq_6f is shown in the upper part of each of the graphs of Figure 7 and Figure 8 as shown in the lower part of each of the graphs of
[0126] Based on such an idea, in the present embodiment, the disturbance suppression command value calculator 22 generates a disturbance suppression amplitude table 220Tbl and a disturbance suppression phase table 221Tbl in advance. As shown in the upper part of each of the graphs of Figure 7 and Figure 8 the disturbance suppression command value calculator 22 calculates the amplitude and the phase of the waveform after reversing the disturbance current. As shown in the lower part of each of the graphs of Figure 9 , with respect to the amplitude, the disturbance suppression command value calculator 22 creates a table obtained by charting the amplitude values themselves as the disturbance suppression amplitude table 220Tbl. Further, as shown in the lower part of each of the graphs of Figure 10 , with respect to the phase, the disturbance suppression command value calculator 22 creates a table obtained by charting the phases advanced by 90 degrees from the initial phase as the disturbance suppression phase table 221Tbl. The disturbance suppression command value calculator 22 calculates the disturbance suppression command value i_gairan by referring to the disturbance suppression amplitude table 220Tbl and the disturbance suppression phase table 221Tbl on the basis of the current command values id_ref, iq_ref. In the cancellation calculator 20, the amplitude of the resultant value i_sum including the disturbance suppression command value i_gairan is multiplied by NωL. In the cancellation voltage command value vq_cancel, the term vq_cancel_d caused by the disturbance suppression command value i_gairan is expressed by the following Expression (1-17).
[0127] vq_cancel_d = NωL i_gairan … Expression (1-17)
[0128] On the other hand, the voltage Vgairan required to cancel the disturbance current iq_6f expressed by Expression (1-16) is described. The impedance Z(N) in the motor 1 with respect to the electrical angle Nth order frequency component is expressed by the following Expression (1-18). j is a pure imaginary number, and has a relationship of j x j = -1. The constant N is the order number of the suppression target. 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 in the motor 1.
[0129] Z(N) = R + jNωL … Expression (1-18)
[0130] Further, the voltage Vgairan required to cancel the disturbance current iq_6f is expressed by the following equation (1-19). Z(N) is the impedance expressed by equation (1-18). iq_6f is the disturbance current.
[0131] Vgairan = Z(N) · (-iq_6f) = (R + j · NωL) · iq_6f ≒ j · NωL · (-iq_6f)... Equation (1-19)
[0132] In equation (1-19), in the equation shown after "≒", the term of the resistance value R is omitted. This is because, in a region where the electrical angle sixth frequency component contained in the q-axis motor current iq is sufficiently high compared to the response frequency in the q-axis current controller 93, the influence of the resistance value R of the winding resistance in the motor 1 is sufficiently small compared to NωL and can be ignored.
[0133] In equation (1-19), the voltage required to suppress the disturbance current iq_6f is the voltage after the sign of the disturbance current iq_6f is reversed (-iq_6f), the phase is advanced by 90 degrees, and the amplitude is multiplied by NωL. Here, the phase is advanced by 90 degrees because the pure imaginary number j is considered as a shift operator that shifts the phase by 90 degrees. On this basis, when comparing equation (1-17) and equation (1-19), the disturbance suppression command value i_gairan is the value after the sign of the disturbance current iq_6f is reversed and the phase is advanced by 90 degrees. Therefore, the disturbance suppression command value i_gairan corresponds to the term "j · (-iq_6f)" in equation (1-19). Therefore, equation (1-17) and equation (1-19) can be equivalent.
[0134] Therefore, in the present embodiment, by including equation (1-17) in which the term including the disturbance suppression command value i_gairan calculated by the disturbance suppression command value calculator 22 is included in equation (1-12) of the cancellation voltage command value vq_cancel, the influence of the disturbance current iq_6f can be suppressed.
[0135] Next, the effects of the torque ripple suppression command values i_cancel, i_cancel2 output from the torque suppression command value calculator 21 will be described. The torque equation of 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] where, in formula (1-20), the approximate torque T is shown as a torque in which the magnet torque is larger than the reluctance torque in the motor 1. In the case of a motor in which the proportion of the reluctance torque is large, a torque equation that also includes the d-axis motor current id can be applied.
[0138] In formula (1-20), the torque constant Kt includes, in addition to Kt_dc that is a DC component, a six-order frequency component in electrical angle Kt_6f. In this case, Kt = Kt_dc + Kt_6f can be expressed, and formula (1-20) can be expressed by the following formula (1-21).
[0139] T = Kt • iq = (Kt_dc + Kt_6f) • iq = (Kt_dc • iq + Kt_6f • iq... formula (1-21)
[0140] In formula (1-21), when the q-axis motor current iq is constant, the first term on the right side of formula (1-21) is a DC torque T_dc, and the second term is a pulsation torque T_6f that pulsates at six orders in electrical angle. If the DC component of the q-axis motor current iq is set to iq_dc, then in the case where the q-axis motor current iq is constant, it can be expressed by iq_dc = iq. In this case, the pulsation torque T_6f of the second term on the right side of formula (1-21) can be expressed by the following formula (1-22).
[0141] T_6f = Kt_6f • iq_dc... formula (1-22)
[0142] On the other hand, when a current pulsation component iq_t6f that pulsates at six orders in electrical angle is added to the DC component iq_dc as the q-axis motor current iq, formula (1-21) is expressed by the following formula (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 formula (1-23), in the formula shown after "≈", the term Kt_6f • iq_t6f is omitted. This is because the product of the six-order frequency component in electrical angle Kt_6f in the torque constant Kt and the current pulsation component iq_t6f is sufficiently small and can be ignored.
[0145] Here, consider the case where the second term on the right side of Equation (1-23), i.e., the pulsation torque T_6f in Equation (1-22), is canceled by adding the current pulsation component iq_t6f so that the torque T is constant. In this case, it suffices that the second term + the third term on the right side in Equation (1-23) = 0. In other words, it suffices that T_6f + Kt_dc · iq_t6f = 0. If this equation is solved with respect to 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] As shown in Equation (1-24), if the electrical angle six frequency component in the q-axis motor current iq, i.e., the torque canceling current iq_t6f, can be set, the electrical angle six frequency component included in the torque T can be set to 0 (zero), so that the torque pulsation can be suppressed.
[0148] Based on such an idea, in the present embodiment, the torque suppression command value calculator 21 generates in advance a torque suppression amplitude table 210Tbl and a torque suppression phase table 211Tbl. As shown in the lower part of each of Figure 3 and Figure 4 As shown in the lower part of each of Figure 5 As shown in the lower part of each of Figure 6 As shown in the lower part of each of The amplitude of the resultant value i_sum including the torque pulsation suppression command value i_cancel in the canceling calculator 20 is multiplied by NωL. In the canceling voltage command value vq_cancel, the term vq_cancel_T caused by the torque pulsation suppression command value i_cancel, i_cancel2 is expressed by the following Equation (1-25).
[0149]
[0149] vq_cancel_T = R · i_cancel2 + N · ω · L · i_cancel... Equation (1-25)
[0150] On the other hand, a voltage Vtorque required to energize the torque cancellation current iq_t6f represented by formula (1-24) is described. In formula (1-26), the impedance Z(N) in the motor 1 for the electrical angle Nth frequency component is represented by the above formula (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 in 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, in a case where the amplitude of the torque cancellation current iq_t6f is not changed, if a signal after the phase is advanced by 90 degrees is set as the current iq_t6f_90, formula (1-26) can be represented by the following formula (1-27).
[0153] Vtorque = R · iq_t6f + j · NωL · iq_t6f = R · iq_t6f + NωL · iq_t6f_90... formula (1-27)
[0154] If formula (1-25) and formula (1-27) are compared, the torque cancellation current iq_t6 is equal to the torque ripple suppression command value i_cancel2. Further, the current iq_t6f_90 which advances the phase of the torque cancellation current iq_t6 by 90 degrees is equal to the torque ripple suppression command value i_cancel. Thus, formula (1-25) and formula (1-27) can be equivalent.
[0155] Thus, in the present embodiment, by including formula (1-25) in which there is a term including the torque ripple suppression command value i_cancel, i_cancel2 calculated by the torque suppression command value calculator 21 in formula (1-12) of the cancellation voltage command value vq_cancel, the electrical angle sixth frequency component included in the motor current can be made to coincide with the cancellation current. Therefore, there is an effect of reducing the ripple component of the torque caused by the ripple of the torque constant Kt in the motor 1.
[0156] Here, in Figure 1In the above-described embodiment 1, the adder 15 adds the torque ripple suppression instruction value i_cancel2 to the current instruction value iq_ref. Thus, in a region in which the frequency of the current instruction value iq_ref2 is smaller than the control band of the q-axis current controller 93, the q-axis motor current iq is made to coincide with iq_ref2 = iq_ref + i_cancel2 by the q-axis current controller 93. On the other hand, in a region in which the frequency of the current instruction value iq_ref2 is larger than the control band of the q-axis current controller 93, the q-axis current controller 93 is unable to make the q-axis motor current iq coincide with iq_ref2 = iq_ref + i_cancel2. In this case, the adder 14 also adds the cancellation voltage instruction value vq_cancel to the fundamental wave instruction value vq. Thus, it is possible to make the fundamental wave instruction value vq include the term of Expression (1-25). Therefore, the feedforward control acts, as a result of which the q-axis motor current iq coincides with iq_ref2 = iq_ref + i_cancel2. Thus, the pulsating component of the torque is reduced.
[0157] Further, in a region in which the electrical angle sixth frequency component is larger than the response frequency of the q-axis current controller 93 and it is desired to produce an effect by the cancellation voltage instruction value vq_cancel, the effect does not differ greatly even if the term of "R · i_cancel2" in Expression (1-12) representing the cancellation voltage instruction value vq_cancel is omitted when R « NωL is satisfied.
[0158] As described above, in the embodiment 1, the motor control device 100 includes the cancellation calculator 20. The cancellation calculator 20 calculates the cancellation voltage instruction value vq_cancel. The cancellation voltage instruction value suppresses the disturbance current caused by the impedance distortion in the motor 1 and suppresses the torque ripple caused by the pulsation of the torque constant Kt in the motor 1. Thus, the motor control device 100 of the embodiment 1 is able to reduce the torque ripple in the motor 1, particularly in the high-speed rotation region.
[0159] [Modified example of embodiment 1] Here, a modified example of the embodiment 1 will be described. In the embodiment 1, the case in which the torque suppression instruction value calculator 21 and the disturbance suppression instruction value calculator 22 in the cancellation calculator 20 perform the calculation based on the current instruction values id_ref, iq_ref is exemplarily described. However, it is not limited thereto. In the calculation of the torque suppression instruction value calculator 21 and the disturbance suppression instruction value calculator 22 in the cancellation calculator 20, the d-axis motor current id can be used instead of the current instruction value id_ref. In addition, the cancellation calculator 20 can use the q-axis motor current iq instead of the current instruction value iq_ref.
[0160] In addition, if the motor currents id, iq are transformed into fixed two-axis currents iα, iβ, they are expressed by the following equations (1-28) and (1-29).
[0161] iα= cos(θ) • id - sin(θ) • iq... Equation (1-28) iβ= -sin(θ) • id - cos(θ) • iq... Equation (1-29)
[0162] As shown in the equations (1-28) and (1-29), in the operations of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, the structure in which the fixed two-axis currents iα, iβ or the command values iα_ref, iβ_ref of the fixed two-axis currents are input instead of the structure in which the current command values id_ref, iq_ref are input can be provided.
[0163] In addition, if the fixed two-axis currents iα, iβ of the motor currents are transformed into fixed three-phase currents iu, iv, iw, they are expressed by the following equations (1-30) to (1-32).
[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β)... Equation (1-32)
[0165] As shown in the equations (1-30) to (1-31), in the operations of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, the structure in which the fixed three-phase currents iu, iv, iw or the command values iu_ref, iv_ref, iw_ref of the fixed three-axis currents are input instead of the structure in which the current command values id_ref, iq_ref are input can be provided.
[0166] In addition, if the current command values id_ref, iq_ref are expressed as a vector, by a vector size Iamp_ref and a phase β_ref indicating the direction of the vector, they become the following equations (1-33) and (1-34). The phase β_ref here is the phase (angle) of the -d axis direction with the q axis as a reference.
[0167] Iamp_ref = (id_ref2 + iq_ref2) 0.5 ... Equation (1-33) β_ref = atan(-id_ref / iq_ref)... (1-34)
[0168] As shown in Equation (1-33) and Equation (1-34), in the operation of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22, instead of the structure in which the current command values id_ref, iq_ref are input, a structure in which a command value Iamp_ref representing the magnitude (absolute value) of the vector and a command value β_ref representing the phase of the direction of the vector are input can be provided. Further, instead of the structure in which the motor currents id, iq are input, a structure in which a vector magnitude (absolute value) Iamp and a command value β representing the phase of the direction of the vector can be provided.
[0169] Equation (1-28) to Equation (1-34) are different representations of the motor currents or the motor current command values (current command values), respectively, and finally, the "current command values id_ref, iq_ref" or the "motor currents id, iq" are reflected in the operation results of the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22 by changing the representations. Therefore, in Embodiment 1, as shown in Equation (1-35) and Equation (1-36), the torque ripple suppression command value that can cope with the torque ripple that varies in the current condition in which the q-axis motor current iq is set to be the same (Iq = Iq1) and the d-axis motor current is changed (Iq = Iq1, Id2) can be calculated. Figure 3 and Figure 4 Therefore, as shown in Equation (1-37) and Equation (1-38), the feedforward control for the disturbance suppression command value that can cope with the disturbance influence that varies in the current condition in which the q-axis motor current iq is set to be the same (Iq = Iq1) and the d-axis motor current is changed (Iq = Iq1, Id2) can be constructed. Therefore, as described in Patent Literature 1 (Patent No. 6760197), the torque ripple can be suppressed by the feedforward control that takes into account the region of high-speed rotation that is difficult to cope with in the mapping corresponding to the torque command Tm*. Figure 7 and Figure 8 Therefore, as shown in Equation (1-37) and Equation (1-38), the feedforward control for the disturbance suppression command value that can cope with the disturbance influence that varies in the current condition in which the q-axis motor current iq is set to be the same (Iq = Iq1) and the d-axis motor current is changed (Iq = Iq1, Id2) can be constructed. Therefore, as described in Patent Literature 1 (Patent No. 6760197), the torque ripple can be suppressed by the feedforward control that takes into account the region of high-speed rotation that is difficult to cope with in the mapping corresponding to the torque command Tm*.
[0170] In addition, in the operation region in which noise and vibration in the motor 1 become a problem, the addition of the torque ripple suppression command value i_cancel2 of the adder 15 is not necessary on the condition that the electrical angle sixth frequency component is greater than the response frequency in the q-axis current controller 93. That is, the adder 15 is not an essential component in Embodiment 1. Even in the structure in which the torque ripple suppression command value i_cancel2 is not added to the current command value iq_ref, by the effect of adding the cancellation voltage command value vq_cancel to the fundamental command value vq, it is possible to reduce the torque ripple in the motor 1 in the case where the electrical angle sixth frequency component is greater than the response frequency in the q-axis current controller 93. Therefore, it is possible to reduce noise and vibration.
[0171] The present disclosure is characterized in that, especially in the region in which the electrical angle sixth frequency component is greater than the response frequency of the q-axis current controller 93, by adding the cancellation voltage command value vq_cancel, it is possible to suppress the torque ripple in the motor 1, which contributes to the reduction of noise and vibration. It is very effective to apply the present disclosure to the motor control of a steering system such as an electric power steering device and a steer-by-wire. Due to the demand for product downsizing for the purpose of improving mountability, in the motor control of a steering system such as an electric power steering device and a steer-by-wire, there are many cases in which a known lower arm three-shunt current detection method or bus one-shunt current detection method is applied as the current detector 3 for detecting the current flowing through the motor 1. These current sensors are excellent in terms of downsizing, but are restricted by the switching pattern in the inverter 5 in terms of whether current detection is possible and precision. In particular, in the case where the voltage utilization rate of the inverter 5 is high, the precision of current detection is reduced in many cases. In the case where the voltage utilization rate is high, that is, the rotational angular velocity of the motor 1 is large, it is desirable to avoid the case in which the q-axis current controller 93 erroneously performs feedback control of the detection error due to the reduction in the precision of the detected current. Therefore, there is a problem in that the response frequency in the q-axis current controller 93 is limited, and as a result, torque ripple caused by the above-described disturbance current and variation in the torque constant is generated. In contrast, in the present disclosure, in the region in which the electrical angle sixth frequency component is greater than the response frequency of the q-axis current controller 93, by adding the cancellation voltage command value vq_cancel to the fundamental command value vq, it is possible to reduce the torque ripple, noise, and vibration in the motor 1. In addition, by using the lower arm three-shunt current detection method or bus one-shunt current detection method, it is possible to achieve downsizing and cost reduction. For the above reasons, by applying the present disclosure to the motor control of a steering system such as an electric power steering device and a steer-by-wire, it is possible to achieve a particularly excellent effect.
[0172] [Embodiment 2] Here, Embodiment 2 will be described. This embodiment differs from Embodiment 1 in that the motor control device 100 includes the current command value calculator 7b. Hereinafter, the structure different from Embodiment 1 will be mainly described, and the same structure will be denoted by the same symbol and the description thereof will be omitted.
[0173] Figure 11 is a block diagram showing the structure of the motor control device 100 according to Embodiment 2. In this embodiment, the motor control device 100 includes the current command value calculator 7b. The current command value calculator 7b calculates the current command values id_ref, iq_ref' based on the rotational angular velocity ω of the motor 1, the detected value Vdc_detect of the DC bus voltage Vdc output from the DC power supply 4, the previous operation values vd_z, vq_z of the fundamental command values vd, vq, and the torque command T_ref.
[0174] Figure 12 is a block diagram showing the structure of the current command value calculator 7b. The current command value calculator 7b includes an amplifier 70, a field-weakening current calculator 71, and a q-axis current limiter 72. The amplifier 70 outputs the current command value iq_ref obtained by multiplying the torque ripple suppression command value i_cancel by "1 / Kt". Kt is a torque constant.
[0175] The q-axis current limiter 72 limits the current command value iq_ref based on the previous operation values vd_z, vq_z, the current command value iq_ref, and the detected value Vdc_detect so that the voltage utilization in the inverter 5 becomes the desired value m_ideal. The q-axis current limiter 72 outputs the limited current command value iq_ref'.
[0176] Figure 13 is a block diagram showing the structure 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 value vd_z of the previous operation on the d-axis, and outputs the squared value (vd_z) · (vd_z) to the adder 722. The multiplier 721 squares the value vq_z of the previous operation on the q-axis, 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 to the squared value (vq_z) · (vq_z) output from the multiplier 721, and outputs the added value Vdq2 to the square root operator 723. Vdq2 = (vd_z) · (vd_z) + (vq_z) · (vq_z). The physical meaning of the added value Vdq2 is "the square of the line-to-line voltage effective value of the fundamental command values vd, vq". The square root operator 723 operates the square root of the added value Vdq2 0.5 , and outputs it to the subtracter 725.
[0178] The amplifier 724 operates the limit value Vlim obtained by multiplying the detection value Vdc_detect by the gain {m_ideal / Sqrt(2)}. m_ideal is the voltage utilization command value. By setting an appropriate value to m_ideal, in the adder 14 in the subsequent stage, it is possible to control so that the value obtained by adding the offset voltage command value vq_cancel to the fundamental command value vq does not exceed the upper limit value that the inverter 5 can output. The subtracter 725 outputs the deviation err obtained by subtracting the limit value Vlim from the line-to-line voltage effective value (Vdq2) 0.5 . err = (Vdq2) 0.5 -Vlim. If the sign of the deviation err is positive, it means that the voltage is exceeded, that is, the fundamental command values vd, vq are larger than the voltage utilization command value m_ideal. If the sign of the deviation err is negative, it means that the voltage is not exceeded, that is, the fundamental command values vd, vq are equal to or smaller than the voltage utilization command value m_ideal.
[0179] The integrator 726 outputs the integrated value err_sekibun obtained by integrating the deviation err and multiplying it by the gain (K / S) to the subtracter 728. The gain (K / S) is set to have a response required to improve the voltage exceedance. The subtracter 728 outputs the threshold Iq_clip obtained by subtracting the sign of the integrated value err_sekibun from the q-axis rated current Iq_teikaku to the limiter 727. Iq_clip = Iq_teikaku - err_sekibun. The limiter 727 performs the limitation so that the absolute value of the q-axis current command value iq_ref does not exceed the threshold Iq_clip. The limiter 727 outputs the limited q-axis current command value iq_ref'. The limiter 727 performs the limitation according to the following cases.
[0180] in the case where (iq_ref < -iq_clip), → iq_ref' = -iq_clip in the case where (-iq_clip < iq_ref < iq_clip), → iq_ref' = iq_ref in the case where (iq_clip < iq_ref), → iq_ref' = iq_clip
[0181] Here, the operation of the q-axis current limiter 72 is explained. In the case where the sign of the deviation err is positive and the fundamental command value is larger than the voltage utilization command value m_ideal, the deviation err_sekibun increases. In this case, the threshold Iq_clip decreases, and the q-axis current command value iq_ref is limited to a smaller value. Thereby, an action is exerted in the direction to eliminate the excess portion of the voltage utilization command value m_ideal in the fundamental command value. When the deviation err output from the integrator 726 coincides with 0 (zero), the deviation err_sekibun is constant, as a result of which the threshold Iq_clip stabilizes to a constant value. At this time, since the deviation err is 0 (zero), the voltage utilization of the fundamental command value coincides with the voltage utilization command value m_ideal. Therefore, even in the case where driving is performed with a large rotational speed of the motor 1 and a large q-axis fundamental command value vq, it is possible to add the cancel voltage command value vq_cancel to the fundamental command value.
[0182] Returning to Figure 12 , the field-weakening current calculator 71 performs field-weakening control. As to the specific method of performing the field-weakening control, since the field-weakening control is a well-known technique, the explanation thereof is omitted. The field-weakening current calculator 71 outputs the d-axis current command value id_ref in accordance with the q-axis current command value iq_ref, the detected value Vdc_detect, and the rotational speed ω of the motor 1. The field-weakening current calculator 71 calculates the d-axis current command value id_ref so that the voltage utilization in the inverter 5 is limited to the voltage utilization command value m_ideal. Here, in order to avoid permanent demagnetization in the motor 1, the field-weakening current calculator 71 performs the field-weakening control so that the d-axis current command value id_ref does not exceed the upper limit value id_max.
[0183] Here, the operation and effects of the current command calculator 7b are explained using the attached Figure 14 . Figure 14 is a diagram for explaining the processing performed by the q-axis current limiter 72 according to Embodiment 2. In the upper portion of Figure 14 , the time-series changes of the motor currents id, iq [A] are shown. In the lower portion ofFigure 14 The middle part of FIG shows the time series change of the rotation speed N [rpm] of the motor 1. Figure 14 The lower part shows the time series change of the voltage utilization rate [%).
[0184] like Figure 14 As shown in the upper part of , it is assumed that at time t=0 (zero), iq_ref=Iq1, id_ref=0 is set as the current command value. In this case, as Figure 14 As shown in the middle of , during the time period from t = 0 (zero) to t1, the rotational angular velocity ω of the motor 1 increases. As the rotational angular velocity ω increases, as shown in Figure 14 As shown in the lower part of , the induced voltage in the motor 1 rises and the voltage utilization factor m increases.
[0185] like Figure 14 As shown in the lower part of , when the voltage utilization rate m reaches the voltage utilization rate command value m_ideal at time t=t1, the flux-weakening control of the flux-weakening current operator 71 is activated, causing the d-axis current command value id_ref to increase to the negative side, as shown in FIG. Figure 14 As shown in the upper part of , the d-axis current command value id_ref becomes a negative value, and the absolute value of the d-axis current command value id_ref increases. Figure 14 As shown in the lower part of , the voltage utilization rate m is maintained at the voltage utilization rate command value m_ideal. However, at time t=t2, as shown in Figure 14 As shown in the upper part of , the current command value id_ref reaches id_max, and it is difficult to further increase i and the absolute value of the current command value id_ref.
[0186] Here, if Figure 14 As shown in the dotted line portion of the upper portion of the control OFF, when the limitation of the q-axis current limiter 72 is not executed, the current command value iq_ref is maintained at a constant value iq1. Figure 14 As shown by the dotted line portion at the bottom of the control, i.e., "Control Off," the voltage utilization factor m increases, reaching 100%. In this case, since the upper limit voltage that can be output from the inverter 5 and the motor voltage corresponding to the fundamental wave command value are equal, the cancel voltage command value vq_cancel cannot be added.
[0187] On the other hand, Figure 14 As shown by the dotted line portion at the top of the , that is, "control on", when the q-axis current limiter 72 is limited, the current command value iq_ref is reduced so that the voltage utilization rate in the fundamental wave command value is limited to the voltage utilization rate command value m_ideal. In this case, as Figure 14The dotted line portion at the bottom of the is "Control On," indicating that the voltage utilization factor m does not need to be increased and is maintained at m_ideal. In this case, since the motor voltage corresponding to the fundamental wave command value is lower than the upper limit voltage that can be output from inverter 5, a canceling voltage command value vq_cancel can be added.
[0188] In the present disclosure, the voltage utilization factor m in the fundamental wave command value is limited to a predetermined value or less. This allows the motor 1 to be driven at an operating point below the set voltage utilization factor m_ideal, within the voltage limit circle based on the DC bus voltage Vdc that can be output from the inverter 5. Consequently, a cancel voltage command value vq_cancel can be added, particularly in regions with high motor speeds. This reduces torque ripple, vibration, and noise in the motor 1.
[0189] [Variation of Embodiment 2] Here, use Figure 15 A modification example of the second embodiment will be described. Figure 15 This diagram illustrates the processing performed by the q-axis current limiter according to a modified example of the second embodiment. In the second embodiment, the voltage utilization rate in the fundamental wave command value is limited to not exceed a predetermined voltage utilization rate command value m_ideal. This is not limiting. Alternatively, the fundamental wave command value may be controlled to achieve an operating point obtained by subtracting a predetermined "voltage value" from the DC bus voltage Vdc of the inverter 5.
[0190] like Figure 15 As shown, in the q-axis current limiter 72 according to this modification, an amplifier 724a and a subtractor 724b are provided instead of Figure 13 The amplifier 724 of the q-axis current limiter 72 in FIG. Amplifier 724a outputs the value obtained by multiplying the detection value Vdc_detect by the gain {11 / Sqrt(2)} to subtractor 274b. That is, amplifier 724a outputs Vdc_detect / sqrt(2)} to subtractor 274b. Subtractor 274 outputs the value obtained by subtracting the prescribed voltage value ΔV from the value output by amplifier 724a as the limit value Vlim to subtractor 725. That is, in this modification, Vlim = Vdc_detect / sqrt(2)-ΔV. As described above, the current command value iq_ref is controlled so that the square root of Vdq2 coincides with Vlim. Therefore, in this modification, the fundamental wave command value vq operates at an operating point with a voltage value margin of the prescribed voltage value ΔV. Therefore, similarly to the second embodiment, even when the motor 1 is rotated at a high speed, the cancellation voltage command value vq_cancel can be added to the fundamental wave command value.
[0191] [Implementation Method 3] Here, Embodiment 3 will be described. This embodiment differs from Embodiments 1 and 2 in that the cancel operation calculator 30 is included in place of the cancel operation calculator 20. Hereinafter, the structure different from Embodiments 1 and 2 will be mainly described, and the same reference numerals are given to the same structures and the description thereof is omitted.
[0192] Figure 16 is a block diagram showing the structure of the motor control device 100 according to Embodiment 3. In this embodiment, the motor control device 100 includes the cancel operation calculator 30. The cancel operation calculator 30 includes the torque suppression command value calculator 31, the torque and disturbance suppression command value calculator 32, the multiplier 34, the adder 35, the limiter 36, the amplifier 37, and the amplifier 38.
[0193] The torque suppression command value calculator 31 calculates the torque ripple suppression command value i_cancel2 on the basis of 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 the torque ripple suppression command value i_cancel is not calculated. The method of calculating the torque ripple suppression command value i_cancel2 by the torque suppression command value calculator 31 is the same as that by the torque suppression command value calculator 21, and thus the description thereof is omitted.
[0194] The torque and disturbance suppression command value calculator 32 calculates the torque and disturbance suppression command value i_cancel_gairan on the basis of the current command values id_ref, iq_ref, and the rotor position θ. The torque and disturbance suppression command value i_cancel_gairan corresponds to the resultant value i_sum output from the adder 23 of the cancel operation calculator 20. The torque and disturbance suppression command value i_cancel_gairan is represented by the following equation (3-1).
[0195] i_cancel_gairan = i_cancel + i_gairan... Equation (3-1)
[0196] The torque and disturbance suppression command value calculator 32 includes the torque and disturbance suppression command amplitude calculator 320 and the torque and disturbance suppression command phase calculator 321. The torque and disturbance suppression command amplitude calculator 320 calculates the amplitude i_ca_ga_amp. The amplitude i_ca_ga_amp is an amplitude value of the torque and disturbance suppression command value i_cancel_gairan according to the current condition. Hereinafter, the method for calculating the amplitude i_ca_ga_amp will be described.
[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 210 Tbl, and acquires the amplitude i_ca_amp (Id(i), Iq(j)) of the current command value for suppressing torque pulsation corresponding to the current condition (Id(i), Iq(j)). The torque and disturbance suppression command amplitude calculator 320 refers to the torque suppression phase table 211 Tbl, and acquires the phase i_ca_ph (Id(i), Iq(j)) of the current command value for suppressing torque pulsation corresponding to the current condition (Id(i), Iq(j)).
[0199] In addition, the torque and disturbance suppression command amplitude calculator 320 refers to the disturbance suppression amplitude table 220 Tbl, and acquires the amplitude i_ga_amp (Id(i), Iq(j)) of the current command value for suppressing the influence of disturbance corresponding to the current condition (Id(i), Iq(j)). The torque and disturbance suppression command amplitude calculator 320 refers to the disturbance suppression phase table 221 Tbl, and acquires the phase i_ga_ph (Id(i), Iq(j)) of the current command value for suppressing the influence of disturbance corresponding 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) where, 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 suppression command amplitude calculator 320 calculates in advance amplitudes i ca ga amp under various current conditions assuming energization to the motor 1, and stores the calculated amplitudes i ca ga amp in the torque and disturbance suppression amplitude table 320Tbl.
[0203] Figure 17 FIG. 6 is a diagram showing an example of the amplitude table related to Embodiment 3. Figure 17 An example of the torque and disturbance suppression amplitude table 320Tbl is shown. In the torque and disturbance suppression amplitude table 320Tbl, amplitudes i ca ga amp corresponding to current conditions are stored.
[0204] The torque and disturbance suppression command phase calculator 321 calculates a phase i ca ga ph in accordance with a current condition. The phase i ca ga ph is an initial phase of the torque and disturbance suppression command value i cancel gairan. Hereinafter, a method of calculating the phase i ca ga ph will be described.
[0205] The torque and disturbance suppression command phase calculator 321 calculates a phase i ca ga ph (Id(i), Iq(j)) under a current condition (Id(i), Iq(j)). i is an arbitrary integer from 1 to M. j is an arbitrary integer from 1 to N.
[0206] The torque and disturbance suppression command phase calculator 321 refers to the torque suppression amplitude table 210Tbl, and acquires an amplitude i ca amp (Id(i), Iq(j)) of a current command value for suppressing torque pulsation corresponding 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, and acquires a phase i ca ph (Id(i), Iq(j)) of a current command value for suppressing torque pulsation corresponding to the current condition (Id(i), Iq(j)).
[0207] In addition, the torque and disturbance suppression command phase calculator 321 refers to the disturbance suppression amplitude table 220Tbl, and acquires an amplitude i ga amp (Id(i), Iq(j)) of a current command value for suppressing disturbance influence corresponding 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, and acquires a phase i ga ph (Id(i), Iq(j)) of a current command value for suppressing disturbance influence corresponding 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... (3-3) where, 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 assuming energization to the motor 1, and stores the calculated phase i_ca_ga_ph in the torque and disturbance suppression phase table 321Tbl.
[0211] Figure 18 is a diagram showing an example of the phase table related to Embodiment 3. Figure 18 An example of the torque and disturbance suppression phase table 321Tbl is shown. In the torque and disturbance suppression phase table 321Tbl, the phase i_ca_ga_ph corresponding to the current condition is stored.
[0212] Figure 19 is a diagram for explaining the processing performed by the torque and disturbance suppression command phase calculator 321 related to Embodiment 3. Figure 19 The coordinates for explaining the operation of ATAN2 are shown in FIG. 12. As shown in FIG. 12, θ [deg] = ATAN2 (X, Y). Figure 19
[0213] When the motor 1 rotates, the current command values id_ref, iq_ref are input to the torque and disturbance suppression command amplitude calculator 320. The torque and disturbance suppression command amplitude calculator 320 acquires the amplitude i ca ga amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref) with reference to the torque and disturbance suppression amplitude table 320Tbl on the basis of the input current command values 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 the current command value for suppressing the torque in the motor 1 and suppressing the influence of the disturbance.
[0214] The torque and disturbance suppression command amplitude calculator 320 can calculate the amplitude i ca ga amp by performing linear interpolation. For example, when the current command value iq_ref at the current condition for which the amplitude is to be calculated is a current value located midway between the motor currents Iq1 and Iq2 in the torque and disturbance suppression amplitude table 320Tbl, the torque and disturbance suppression command amplitude calculator 320 calculates the amplitude i ca ga amp using linear interpolation.
[0215] When the motor 1 rotates, the current command values id_ref, iq_ref are input to the torque and disturbance suppression command phase calculator 321. The torque and disturbance suppression command phase calculator 321 acquires the phase i ca ga ph(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref) with reference to the torque and disturbance suppression phase table 321Tbl on the basis of the input current command values 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 the torque in the motor 1 and suppressing the influence of the disturbance.
[0216] The torque and disturbance suppression command phase calculator 321 can calculate the phase i ca ga ph by performing linear interpolation. For example, when the current command value iq_ref at the current condition for which the phase is to be calculated is a current value located midway between the motor currents Iq1 and Iq2 in the torque and disturbance suppression phase table 321Tbl, the torque and disturbance suppression command phase calculator 321 calculates the phase i ca ga ph using linear interpolation.
[0217] The amplitude i ca_ga_amp represented by formula (3-2) and the phase i ca_ga_ph represented by formula (3-3) are complicated, but as long as the phase and amplitude are calculated in advance and stored in a table. At the time of calculation of the cancel voltage command value vq_cancel by the cancel calculator 20 each time, the amplitude i ca_ga_amp and the phase i ca_ga_ph do not need to be calculated. Therefore, it is not necessary to calculate the amplitude and phase of the resultant value i sum (= torque and disturbance suppression command value i cancel_gairan) each time the calculation of the cancel voltage command value vq_cancel is performed as in Embodiment 1.
[0218] In addition, as described in Embodiment 1, in the operation region in which noise and vibration in the motor 1 become a problem, the addition of the torque ripple suppression current i cancel2 of the adder 15 is not necessary on the condition that the electrical angle sixth frequency component is greater than the response frequency in the q-axis current controller 93. Even in the structure in which the torque ripple suppression command value i cancel2 is not added to the current command value iq_ref, in the case where the electrical angle sixth frequency component is greater than the response frequency in the q-axis current controller 93, the torque ripple in the motor 1 can be reduced by the effect of adding the cancel voltage command value vq_cancel to the fundamental command value vq. Therefore, noise and vibration can be reduced. In addition, in the present embodiment, since the cancel calculator 30 performs only the calculation using the torque and disturbance suppression command value i cancel_gairan output from the torque and disturbance suppression command value calculator 32, the calculation can be further simplified compared to Embodiment 1.
[0219] [Embodiment 4] Here, Embodiment 4 will be described. In the present embodiment, the d-axis fundamental command value vd is added to the d-axis cancel voltage command value vd cancel, unlike the above-described Embodiments 1 to 3. Hereinafter, the structure different from Embodiments 1 and 2 will be mainly described, and the same structure will be denoted by the same reference numeral and the description thereof will be omitted.
[0220] Figure 20 is a block diagram showing the structure of the motor control device 100 according to Embodiment 4. In the present embodiment, the controller 6 of the motor control device 100 includes a multiplier 18a, an amplifier 18b, and an adder 18c.
[0221] The adder 18c adds the d-axis cancel voltage command value vd_cancel described later to the d-axis fundamental wave command value vd output from the current controller 9, and outputs the added fundamental wave command value vd'. The d-axis cancel voltage command value vd_cancel is represented by the following expression (4-1). ω is the rotational angular velocity ω of the motor 1. L is the inductance in the motor 1.
[0222] vd_cancel = - ω - L - i_cancel2... Expression (4-1)
[0223] The process of deriving the d-axis cancel voltage command value vd_cancel represented by expression (4-1) is specifically described. The amplifier 17 outputs a value (ωL) obtained by multiplying the rotational angular velocity ω output from the speed calculator 12 by a constant L to the multiplier 18a. The multiplier 18a outputs a value obtained by multiplying the torque ripple suppression command value i_cancel2 output from the cancel calculator 30 by ωL to the amplifier 18b. The amplifier 18b multiplies the value output from the multiplier 18a by -1 and outputs it to the adder 18c.
[0224] The coordinate converter 10 performs coordinate conversion on the fundamental wave command values vd', vq' to which the cancel voltage command values are added, and outputs the fundamental wave command values vu, vv, and vw of three phases.
[0225] The effect of adding the d-axis cancel voltage command value vd_cancel to the d-axis fundamental wave command value vd is described below. The fundamental wave command value vd' to which the cancel voltage command value is added is represented by the following expression (4-2).
[0226] vd' = vd + vd_cancel = vd - ω - L - i_cancel2... Expression (4-2)
[0227] Here, if the electrical angle six times frequency component is greater than the response frequency in the d-axis current controller 91, the electrical angle six times frequency component is not included in the fundamental wave command value vd. Therefore, in the present embodiment, the cancel voltage command value vd_cancel is added to the d-axis fundamental wave command value vd. Thereby, the d-axis fundamental wave command value vibrates at the electrical angle six times frequency, and as a result, becomes a waveform coinciding with i_cancel2. Therefore, it is possible to reduce the torque ripple in the motor 1, and reduce vibration and noise.
[0228] In addition, the present disclosure is not limited to the above-described embodiments, and can be changed within the scope of the gist of the present disclosure. The above-described embodiments can be implemented individually, or a part or all of them can be combined and implemented. Furthermore, the embodiments can be freely combined, or each of the embodiments can be appropriately modified or omitted.
[0229] For example, in the case of a synchronous motor of the interior permanent magnet type and a wound-field synchronous rotating electric machine in which the ratio of the reluctance torque is large, as the torque ripple suppression command value, not only the torque ripple suppression command value i_cancel, i_cancel2 of the q-axis but also the torque ripple suppression command value id_cancel, id_cancel2 of the d-axis can be used. Also, as the disturbance ripple suppression command value, not only the disturbance suppression command value i_gairan of the q-axis but also the disturbance suppression command value id_gairan of the d-axis can be used. By using them, the cancellation voltage command value of the d-axis can be added to the d-axis fundamental command value vd, and the added command value can be used as the voltage applied to the motor 1. The same effect is obtained in this structure as well.
[0230] In addition, the motor control device 100 described above has a computer system in its interior. Also, the processing procedure of the above-described processing is stored in a computer-readable recording medium in the form of a program, and the above-described processing is performed by a computer reading and executing the program. Here, the computer-readable recording medium refers to a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, and the like. In addition, the computer program can be distributed to a computer through a communication line, and the computer that receives the distribution can execute the program. Explanation of Reference Numerals
[0231] 100 motor control device 1 motor 2 rotation position detector 3 current detector 4 direct current 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 electric motor control device characterized by comprising: Comprise: an inverter that supplies power to a motor; and a controller that controls the motor, outputs an instruction signal to the inverter, the controller has: a current instruction value calculator that calculates a current instruction value in a rotational two-axis of the motor; a voltage instruction value calculator that calculates a voltage instruction value in a rotational two-axis of the motor, i.e., a fundamental instruction value, by feedback control of the current instruction value; a cancellation calculator that calculates a cancellation voltage instruction value for suppressing torque pulsation in the motor and suppressing the influence of disturbance generated by the motor, based on either of the current instruction value or a motor current flowing through the motor, i.e., an object current, and a rotor position of the motor; and a PWM signal generator that generates the instruction signal output to the inverter using a summed fundamental instruction value obtained by adding the cancellation voltage instruction value to the fundamental instruction value.
2. The motor control device according to claim 1, wherein the controller has: a torque suppression instruction value calculator that calculates an instruction value of a current for suppressing torque pulsation in the motor, i.e., a torque pulsation suppression instruction value, from the object current and the rotor position; and a disturbance suppression instruction value calculator that calculates an instruction value of a current for suppressing the influence of the disturbance, i.e., a disturbance suppression instruction value, from the object current and the rotor position, the cancellation calculator calculates the cancellation voltage instruction value from the torque pulsation suppression instruction value and the disturbance suppression instruction value.
3. The motor control device according to claim 2, wherein the controller calculates the torque pulsation suppression instruction value and the disturbance suppression instruction value from the object current with respect to a d-axis and a q-axis.
4. The motor control device according to claim 2 or 3, wherein the controller adds the disturbance suppression instruction value multiplied by a value obtained by multiplying a coefficient including a rotational angular velocity of the motor to the cancellation voltage instruction value and the fundamental instruction value.
5. The motor control device according to claim 2 or 3, wherein the controller adds the torque pulsation suppression instruction value multiplied by a value obtained by multiplying a coefficient including a rotational angular velocity of the motor to the cancellation voltage instruction value and the fundamental instruction value.
6. The motor control device according to claim 2 or 3, wherein the controller adds a synthesized value obtained by adding the torque pulsation suppression instruction value and the disturbance suppression instruction to the cancellation voltage instruction value and the fundamental instruction value, and adds a value obtained by multiplying a coefficient including a rotational angular velocity of the motor to the synthesized value.
7. The motor control device according to claim 5 or 6, wherein the controller adds the torque pulsation suppression instruction value to the current instruction value.
8. The motor control device according to any one of claims 2 to 6, wherein The current command value calculator limits the current command value so that the output voltage of the inverter becomes an operation point below a voltage utilization ratio set for a voltage limit circle based on a DC bus voltage of the inverter, or becomes an operation point obtained by subtracting a prescribed voltage value from the DC bus voltage of the inverter, The controller calculates the torque ripple suppression command value and the disturbance suppression command value in accordance with the current command value limited by the current command value calculator.
9. The motor control device according to any one of claims 2 to 7, wherein The controller calculates the disturbance suppression command value so as to suppress a current corresponding to a component desired to be suppressed among distortion components included in the motor current flowing when a sinusoidal wave voltage is applied to the motor due to distortion of an impedance of the motor.
10. The motor control device according to any one of claims 2 to 9, wherein The controller calculates the torque ripple suppression command value so as to suppress torque ripples generated in the motor when the sinusoidal wave current is applied to the motor.
11. The motor control device according to any one of claims 1 to 10, wherein The controller limits the cancellation voltage command value in accordance with a limit value based on an angular velocity of rotation of the motor and an electrical constant, and adds the limited cancellation voltage command value to the fundamental command value.