Motor control table generation method, method for manufacturing motor control device, and motor control table generation device
Patent Information
- Application Number
- JP2025507987
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-14
- Publication Date
- 2025-04-30
- Estimated Expiration
- 2043-03-22
AI Technical Summary
Synchronous motors with permanent magnets face challenges in accurately predicting and reducing torque ripple due to variations in magnetic properties and assembly deviations, leading to increased manufacturing costs and heat generation during motor control calculations.
A motor control table generation method and device that calculates a correction command value using a correction table associating current conditions with correction indicators, adjusting torque based on measured torque ripple frequency components and pulsation amounts to suppress torque ripple.
Effectively suppresses torque ripple even with manufacturing variations, reducing heat generation and costs by accurately accounting for real-time motor conditions and characteristics.
Abstract
Description
Motor control table generation method, motor control device manufacturing method, and motor control table generation device
[0001] The present disclosure relates to a motor control table generation method, a motor control device manufacturing method, and a motor control table generation device.
[0002] Synchronous motors using permanent magnets in the rotor are used as AC motors for variable speed drives. Such synchronous motors are sometimes called brushless motors. When controlling a synchronous motor, how to reduce torque ripple generated by the synchronous motor is an important issue. For example, Patent Document 1 discloses a technique for correcting a command current using a correction current to reduce torque ripple. Using the correction current, torque that is opposite in phase to the torque ripple that may occur is used to effectively reduce torque ripple.
[0003] JP 2016-111788 A
[0004] However, various variations exist in actual products. In order to accurately calculate the correction current value that reduces the torque ripple, it is necessary to accurately predict the torque ripple that may occur, but because various variations exist in actual products, it is difficult to accurately predict the torque ripple.
[0005] For example, variations in the magnetic properties of the electromagnetic steel sheets in a motor's stator core cause changes in inductance. This results in differences between the calculated torque ripple value based on an assumed inductance and the actual measured value. Similarly, variations in the magnetomotive force of the magnet and the magnetic properties of the rotor core cause similar variations.
[0006] Such variations in magnetic properties can be caused not only by variations in materials such as electromagnetic steel sheets, but also by the structure. For example, when a stator core is fixed to a housing by compressing it radially using shrink fitting or the like, the magnetic properties deteriorate due to compressive stress generated inside the stator core as a result of the fixation. Since variations in the compressive stress occur due to variations in the difference between the outer diameter of the stator core and the inner diameter of the housing, it is practically difficult to keep this compressive stress constant.
[0007] Next, torque ripple is significantly affected by variations in shape, such as the roundness of the stator inner diameter. It is practically difficult to stabilize variations in stator shape, and even if motor constants such as torque ripple and inductance are derived using electromagnetic field analysis or the like based on an ideal shape, they will deviate from the measured values in the products actually manufactured. Even if torque ripple and inductance were determined through experiments rather than electromagnetic field analysis, it would be practically difficult to continue manufacturing products that are exactly the same as those obtained through experiments. This leads to discrepancies between the experimentally measured results and the characteristics of the products actually manufactured.
[0008] Furthermore, torque ripple is significantly affected by variations in assembly, such as the concentricity between the stator inner diameter and the rotor outer diameter. While it is desirable for the stator inner diameter and the rotor outer diameter to be perfectly aligned on the same axis, it is known that deviation from this alignment can cause torque ripple with a period that is an integer multiple of the fundamental period corresponding to the electrical angle. Even if the stator shape and other factors are measured in advance, it is difficult to predict the degree of deviation in concentricity during assembly. This results in a discrepancy between the characteristics predicted from the stator shape and the characteristics of the actual product.
[0009] One possible solution to this problem is to provide the motor control device with a function to correct for these manufacturing variations. However, correcting for manufacturing variations requires a large amount of calculation, which increases the amount of heat generated during the calculation, and this may require the motor to be larger, resulting in higher costs.
[0010] The present disclosure has been made to solve the above problems, and its purpose is to provide a motor control table generation device, a method for manufacturing a motor control device, and a method for generating a motor control table that are capable of suppressing torque ripple even when variations in characteristics occur due to manufacturing or other reasons.
[0011] In order to solve the above problems, one aspect of the present disclosure is a motor control table generation method for generating a correction table in a motor control device including a correction command value calculation unit that calculates a correction command value for suppressing torque ripple in a motor using a correction table in which current conditions are associated with correction indexes, in which the motor control table generation method comprises: a torque generation unit that rotates the motor; a torque detection unit that performs torque detection to measure torque ripple including a frequency component equivalent to N times (N is an integer of 1 or greater) a fundamental frequency corresponding to the electrical angle of the rotated motor, or a pulsation amount that is a physical quantity correlated with the torque ripple; a correction command value modification unit that calculates, for each current condition, a modified correction index that is a correction index for suppressing the pulsation amount measured by the torque detection, based on the measurement results of the torque detection by the torque detection unit; and the correction command value modification unit that writes the modified correction index into the correction table.
[0012] In order to solve the above problems, one aspect of the present disclosure is a method for manufacturing a motor control device using the above motor control table generation method.
[0013] In order to solve the above problems, one aspect of the present disclosure is a motor control table generation device that generates a correction table for a motor control device that includes a correction command value calculation unit that calculates a correction command value for suppressing torque ripple in a motor using a correction table in which current conditions are associated with correction indexes, the motor control table generation device including: a torque generation unit that rotates the motor; a torque detection unit that performs torque detection that measures torque ripple including a frequency component equivalent to N times (N is an integer of 1 or more) a fundamental frequency corresponding to the electrical angle of the rotated motor, or a pulsation amount that is a physical quantity correlated with the torque ripple; and a correction command value modification unit that calculates a modified correction index for each current condition, which is a correction index for suppressing the pulsation amount measured by the torque detection, based on the measurement results of the torque detection by the torque detection unit, and writes the modified correction index into the correction table.
[0014] According to the present disclosure, torque ripple can be suppressed even when variations in characteristics occur due to manufacturing.
[0015] 1 is a block diagram showing the configuration of a motor control device according to a first embodiment. FIG. 2 is a diagram for explaining the principle of generation of a switching signal according to the first embodiment. FIG. 3 is a diagram showing an example of a torque pulsation waveform according to the first embodiment. FIG. 4 is a diagram showing an example of a torque pulsation waveform according to the first embodiment. FIG. 5 is a diagram showing an example of an amplitude table for suppressing torque pulsation according to the first embodiment. FIG. 6 is a diagram showing an example of a phase table for suppressing torque pulsation according to the first embodiment. FIG. 7 is a diagram showing an example of a waveform affected by a disturbance according to the first embodiment. FIG. 8 is a diagram showing an example of a waveform affected by a disturbance according to the first embodiment. FIG. 9 is a diagram showing an example of an amplitude table for suppressing the influence of a disturbance according to the first embodiment. FIG. 10 is a diagram showing an example of a phase table for suppressing the influence of a disturbance according to the first embodiment. FIG. 11 is a schematic diagram showing a simplified configuration of a motor and a motor control device according to the first embodiment. FIG. 12 is a block diagram showing the configuration of a generating device according to the first embodiment. FIG. 13 is a diagram for explaining the generating device according to the first embodiment. FIG. 14 is a flowchart showing the flow of processing performed by the generating device according to the first embodiment. FIG. 15 is a diagram showing inputs and outputs of the motor control device according to the first embodiment. FIG. 16 is a flowchart showing the flow of processing performed by the generating device according to the first embodiment. FIG. 17 is a flowchart showing the flow of processing performed by the generating device according to the second embodiment. FIG. 18 is a diagram for explaining the processing performed by the generating device according to the second embodiment. Fig. 1 is a diagram for explaining processing performed by a generating device according to embodiment 2. Fig. 2 is a diagram for explaining processing performed by a generating device according to embodiment 2. Fig. 3 is a flowchart showing the flow of processing performed by a generating device according to embodiment 3. Fig. 4 is a flowchart showing the flow of processing performed by a generating device according to embodiment 4. Fig. 5 is a flowchart showing the flow of processing performed by a generating device according to embodiment 4.
[0016] [Embodiment 1] Figure 1 is a block diagram showing the configuration of a motor control device according to embodiment 1. As shown in Figure 1, motor control device 100 includes a rotational position detector 2, a current detector 3, an inverter 5, and a controller 6. A DC power supply 4 and a motor 1 are connected to motor control device 100. Motor control device 100 controls motor 1 based on a torque command T_ref, which serves as a control command input from outside motor control device 100.
[0017] The motor 1 is a three-phase AC rotating machine having three-phase windings U, V, and W. The motor 1 is also an AC rotating machine that can be controlled based on two rotating axes. In this specification, the "two rotating axes" refer to two axes that rotate synchronously with the rotor of the motor 1 and are perpendicular to each other in a cross section. A "cross section" refers to a cross section perpendicular to the central axis of the rotor. For example, the two rotating axes may be d-q axes. The d-axis is an axis connecting the central axis of the rotor and the magnetic poles. The q-axis is an axis perpendicular to both the d-axis and the central axis. The two rotating axes may also be γ-δ axes. The γ-axis is an axis shifted in the rotational direction from the d-axis. The δ-axis is an axis perpendicular to both the γ-axis and the central axis. One of the two rotating axes is referred to as the first axis, and the other is referred to as the second axis. For example, if the d-axis is referred to as the first axis, the q-axis is referred to as the second axis. Note that the q-axis may be the first axis and the d-axis may be the second axis. Similarly, when the γ axis is referred to as the first axis, the δ axis is referred to as the second axis.
[0018] In the following description, the motor 1 is a permanent magnet synchronous motor, and the two rotating axes are the d- and q-axes. However, the motor 1 may also be, for example, a wound-field synchronous motor, an induction motor, or a synchronous reluctance motor. The d-axis and q-axis in the following disclosure may be replaced with the δ-axis and γ-axis.
[0019] The rotational position detector 2 includes a resolver, an encoder, an MR (magnetoresistive) sensor, etc., and uses these to detect the rotor position θ. The rotor position θ is the position of the rotor of the motor 1 in the direction of rotation. In this embodiment, the rotational position detector 2 is used to detect the rotor position θ of the motor 1. However, it is also possible to employ a configuration in which the rotor position θ of the motor 1 is estimated without using the rotational position detector 2. In other words, in the present disclosure, the motor control device 100 does not necessarily have to include the rotational position detector 2.
[0020] The DC power supply 4 is, for example, a battery, a DC-DC converter, a diode rectifier, or a PWM (Pulse Width Modulation) rectifier, and outputs a DC bus voltage Vdc to an inverter 5 (described later). The DC power supply 4 includes all devices that output a DC voltage.
[0021] The inverter 5 is a power converter that applies a voltage to the motor 1. The inverter 5 applies an AC voltage to the three-phase windings U, V, and W of the motor 1 based on the DC bus voltage Vdc output from the DC power supply 4 and the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn output from the controller 6.
[0022] The inverter 5 includes switching elements Sup, Svp, Swp, Sun, Svn, and Swn. Each of the switching elements is a semiconductor switch, such as an insulated gate bipolar transistor (IGBT), a bipolar transistor, or a metal oxide semiconductor (MOS) power transistor. Each of the switching elements has a diode or a body diode connected in antiparallel.
[0023] The switching elements Sup, Svp, and Swp on the high potential side of the upper arm are connected to the positive electrode of the DC power supply 4. The switching elements Sun, Svn, and Swn on the low potential side of the lower arm are connected to the switching elements Sup, Svp, and Swp of the upper arm, respectively.
[0024] The upper-arm switching elements Sup, Svp, and Swp receive switching signals Gup, Gvp, and Gwp output from the controller 13, respectively. The lower-arm switching elements Sun, Svn, and Swn receive switching signals Gun, Gvn, and Gwn output from the controller 13, respectively. The upper-arm switching elements Sup, Svp, and Swp and the lower-arm switching elements Sun, Svn, and Swn are turned on or off by the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn output from the controller 13. Here, the on state is a conductive state. The off state is a non-conductive state. In this specification and drawings, the switching signals Gup, Gvp, Gwp, Gun, Gvn, and Gwn may be collectively referred to as "switching signals Gup to Gwn."
[0025] For example, when the switching signal Gup outputs a signal indicating, for example, "1" as an ON command, the switching element Sup is turned on. When the switching signal Gup outputs a signal indicating, for example, "0 (zero)" as an OFF command, the switching element Sup is turned off. The same applies to the other switching elements Svp, Swp, Sun, Svn, and Swn.
[0026] The switching signals Gup to Gwn are generated by a PWM signal generator 11 based on three-phase voltage command values vu, vv, and vw output from a coordinate converter 10 of the controller 6. In this embodiment, the voltage command values vu, vv, and vw used to generate the switching signals Gup to Gwn are command values to which a cancel voltage command value vq_cancel has been added. The cancel voltage command value vq_cancel is a correction command value generated by a cancellation calculator 20 that is superimposed on the voltage command value vq in order to suppress the effects of torque pulsation and disturbances. Specifically, the cancel voltage command value vq_cancel is superimposed on the voltage command value vq of the two-phase voltage command values (fundamental wave command values) vd and vq before being converted from two phases to three phases in the coordinate converter 10 of the controller 6. The two-phase voltage command values vd, vq and the three-phase voltage command values vu, vv, vw are equivalent to each other, with only two-phase to three-phase coordinate conversion being performed. Therefore, the three-phase voltage command values vu, vv, vw are command values to which the cancellation voltage command value vq_cancel has been added. A specific method by which the cancellation calculator 20 generates the cancellation voltage command values will be described in detail later. Also, a specific method by which the PWM signal generator 11 generates the switching signals Gup to Gwn based on the three-phase voltage command values vu, vv, vw will be described in detail later.
[0027] The current detector 3 detects motor currents iu, iv, and iw flowing through the three-phase windings U, V, and W of the motor 1. The current detector 3 outputs information indicating the detected motor currents iu, iv, and iw to the controller 6. Any method for detecting phase currents may be adopted for the current detector 3. Alternatively, the current detector 3 may detect the motor currents iu, iv, and iw using voltages across shunt resistors (not shown) connected in series with the lower-potential side switching elements Sun, Svn, and Swn, which are the lower arms of the inverter 5, and switching signals Gun, Gvn, and Gwn. Alternatively, the motor currents iu, iv, and iw may be detected using a known "lower-arm two-shunt method" or a known "bus-bar one-shunt detection method."
[0028] The controller 6 uses a torque command T_ref, motor currents iu, iv, iw, and rotor position θ as input values, and generates switching signals Gup to Gwn for driving the inverter 5 based on these values. The controller 6 outputs the generated switching signals Gup to Gwn to the inverter 5. The controller 6 is a PWM controller that outputs the switching signals Gup to Gwn using a discrete time calculator such as a microcomputer or a DSP (Digital Signal Processor). The controller 6 includes a current command value calculator 7, a detection coordinate converter 8, a current controller 9, a control coordinate converter 10, a PWM signal generator 11, a speed calculator 12, adders 14 and 15, amplifiers 16 and 17, and a cancellation calculator 20.
[0029] The current command value calculator 7 calculates current command values id_ref and iq_ref, which are current command values in the dq coordinate system, based on the torque command T_ref. For example, the current command value calculator 7 calculates the current command value id_ref using equation (1-1). The current command value calculator 7 also calculates the current command value iq_ref using equation (1-2). T_ref is the torque command, and Kt is the torque constant [Nm / A].
[0030] id_ref=0...Equation (1-1) iq_ref=T_ref / Kt...Equation (1-2)
[0031] The current command value calculator 7 sets the current command value id_ref on the d-axis to 0 (zero) as shown in equation (1-1). The current command value calculator 7 also sets the current command value iq_ref on the q-axis to a value obtained by multiplying the torque command T_ref by 1 / Kt as shown in equation (1-2). id_ref is also called a "field-weakening current command value," and iq_ref is also called a "torque current command value." The current command value calculator 7 may use known techniques such as MTPA (Max Torque per Ampere) control, MTPV (Max Torque per Voltage) control, or flux-weakening control, or a combination thereof. A method for calculating the current command values id_ref and iq_ref with limited voltage utilization rates will be described in a second embodiment, which will be described later.
[0032] The coordinate converter 8 performs coordinate conversion based on the three-phase motor currents iu, iv, iw detected by the current detector 3 and the rotor position θ detected by the rotational position detector 2. As a result, the coordinate converter 8 calculates motor currents id, iq on the two rotational axes (d-axis, q-axis), and outputs the motor currents id, iq after coordinate conversion, which are the calculation results, to the current controller 9.
[0033] The adder 15 adds the torque pulsation suppression command value i_cancel2 calculated by the cancellation calculator 20 to the current command value iq_ref calculated by the current command value calculator 7, and outputs the current command value iq_ref2 after the addition to the current controller 9.
[0034] The current controller 9 calculates fundamental wave command values vd, vq, which are voltage command values for the two rotational axes (d and q axes) to the motor 1, by feedback control of the current command value id_ref output from the current command value calculator 7 for the d axis and the current command value iq_ref2 after addition output from the adder 15 for the q axis. The current controller 9 calculates fundamental wave command values vd, vq for the two rotational axes (d and q axes) based on the current command value id_ref, the current command value iq_ref2, and the motor currents id, iq for the two rotational axes (d and q axes) output from the coordinate converter 8.
[0035] The current controller 9 includes a subtractor 90 , a d-axis current controller 91 , a subtractor 92 , and a q-axis current controller 93 .
[0036] The subtractor 90 calculates a d-axis current deviation ed, which is the deviation between the d-axis current command value id_ref and the d-axis motor current id, and outputs the calculated d-axis current deviation ed to a d-axis current controller 91. The d-axis current controller 91 uses a control method such as P control or PI control to calculate a fundamental wave command value vd so that the d-axis current deviation ed becomes 0 (zero). The d-axis current controller 91 outputs the calculated fundamental wave command value vd to the coordinate converter 10.
[0037] The subtractor 92 calculates a q-axis current deviation eq, which is the deviation between the current command value iq_ref2 on the q-axis and the motor current iq on the q-axis, and outputs the calculated q-axis current deviation eq to a q-axis current controller 93. The q-axis current controller 93 uses a control method such as P control or PI control to calculate a fundamental wave command value vq so that the q-axis current deviation eq becomes 0 (zero). The q-axis current controller 93 outputs the calculated fundamental wave command value vq to the adder 14.
[0038] The adder 14 adds the cancellation voltage command value vq_cancel calculated by the cancellation calculator 20 to the fundamental wave command value vq calculated by the q-axis current controller 93, and outputs the fundamental wave command value vq′ after the addition to the coordinate converter 10.
[0039] The coordinate converter 10 performs coordinate conversion based on the fundamental wave command values vd, vq' and the rotor position θ detected by the rotational position detector 2, and calculates fundamental wave command values vu, vv, vw, which are three-phase voltage command values. The fundamental wave command values vu, vv, vw calculated by the coordinate converter 10 are calculated using the fundamental wave command value vd and the fundamental wave command value vq' obtained by adding the cancellation voltage command value vq_cancel, and therefore are fundamental wave command values vu, vv, vw that reflect the cancellation voltage command value vq_cancel. The coordinate converter 10 outputs the calculated fundamental wave command values vu, vv, vw to the PWM signal generator 11.
[0040] The PWM signal generator 11 outputs PWM (Pulse Width Modulation) modulated switching signals Gup to Gwn based on the fundamental wave command values vu, vv, and vw output from the coordinate converter 10 .
[0041] Here, a method by which the PWM signal generator 11 generates the switching signals Gup to Gwn will be described using FIG. 2. FIG. 2 is a diagram for explaining the principle of generating the switching signals in the first embodiment. FIG. 2 shows time-series changes in the fundamental wave command values vu, vv, and vw, the carrier wave C which is a carrier triangular wave with a period Tc (frequency fc), and the switching signals Gup to Gwn. The horizontal axis of FIG. 2 represents time, and the vertical axis represents signal level. The PWM signal generator 11 generates the switching signals Gup to Gwn by comparing the fundamental wave command values vu, vv, and vw with the carrier wave C.
[0042] Specifically, if the fundamental wave command value vu is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gup to, for example, "1" as an ON command and sets the switching signal Gun to "0 (zero)" as an OFF command. On the other hand, if the fundamental wave command value vu is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gup to "0 (zero)" as an OFF command and sets the switching signal Gun to "1" as an ON command.
[0043] Furthermore, if the fundamental wave command value vv is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gvp as an ON command, for example, to "1," and sets the switching signal Gvn as an OFF command, for example, to "0 (zero)." On the other hand, if the fundamental wave command value vv is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gvp as an OFF command, for example, to "0 (zero)," and sets the switching signal Gvn as an ON command, for example, to "1."
[0044] Furthermore, if the fundamental wave command value vw is greater than the carrier triangular wave C, the PWM signal generator 11 sets the switching signal Gwp as an ON command, for example, to "1," and sets the switching signal Gwn as an OFF command, for example, to "0 (zero)." On the other hand, if the fundamental wave command value vw is smaller than the carrier wave C, the PWM signal generator 11 sets the switching signal Gwp as an OFF command, for example, to "0 (zero)," and sets the switching signal Gwn as an ON command, for example, to "1."
[0045] In addition, a short circuit prevention time, i.e., a dead time, may be provided for the switching signals Gup to Gwn so that the upper arm switching elements Sup, Svp, Swp and the lower arm switching elements Sun, Svn, Swn in the inverter 5 are not turned on simultaneously.
[0046] Returning to the explanation of Figure 1, the speed calculator 12 detects the rotational angular velocity ω of the motor 1 based on the rotor position θ of the motor 1 detected by the rotational position detector 2. The speed calculator 12 calculates the rotational angular velocity ω of the motor 1 by performing a differential operation or difference operation on the rotor position θ, and outputs the calculated rotational angular velocity ω. The rotational angular velocity ω of the motor 1 that is output here is the rotational angular velocity of the electrical angle of the motor 1, and is equal to the rotational angular velocity of the mechanical angle multiplied by the number of pole pairs of the motor 1.
[0047] Amplifier 16 calculates (Nω) by multiplying the rotational angular velocity ω output from velocity calculator 12 by a constant N, and outputs the calculated value (Nω) to amplifier 17. Here, constant N is the order of the torque pulsation generated by motor 1 that is to be suppressed. For example, if a frequency component corresponding to six times the fundamental frequency (the frequency at the aforementioned fundamental wave command values vu, vv, vw) of the torque pulsation generated by motor 1 is to be suppressed, constant N is set to "6." Hereinafter, the frequency component corresponding to N times the fundamental frequency may be referred to as the "frequency component of the Nth electrical angle order."
[0048] The amplifier 17 calculates a value (NωL) by multiplying the rotational angular velocity ω output from the amplifier 16 by a constant N, and then multiplying the result by a constant L, and outputs the calculated value (NωL) to the cancellation calculator 20. The constant L here is the inductance of the motor 1.
[0049] The cancellation calculator 20 calculates a cancellation voltage command value vq_cancel and a torque pulsation suppression command value i_cancel2 based on the current command values id_ref, iq_ref output from the current command value calculator 7, the rotor position θ output from the rotational position detector 2, and the value (NωL) output from the amplifier 17.
[0050] The cancellation calculator 20 includes a torque suppression command value calculator 21, a disturbance suppression command value calculator 22, an adder 23, a multiplier 24, an adder 25, a limiter 26, an amplifier 27, and an amplifier 28.
[0051] The torque suppression command value calculator 21 calculates torque pulsation suppression command values i_cancel and i_cancel2 based on the current command values id_ref and iq_ref and the rotor position θ. The torque pulsation suppression command values i_cancel and i_cancel2 are both current command values for suppressing torque pulsation. The torque pulsation suppression command values i_cancel and i_cancel2 are sinusoidal waves with the same amplitude but different phases.
[0052] 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 .
[0053] The torque suppression command amplitude calculator 210 calculates an amplitude i_ca_amp, which is the amplitude value of the torque pulsation suppression command values i_cancel and i_cancel2, based on the current command values id_ref and iq_ref. The method by which the torque suppression command amplitude calculator 210 calculates the amplitude i_ca_amp will be described with reference to FIGS. 3 to 6. FIGS. 3 and 4 are diagrams showing examples of torque pulsation waveforms according to the first embodiment. FIG. 5 is a diagram showing an example of an amplitude table for suppressing torque pulsation according to the first embodiment. FIG. 6 is a diagram showing an example of a phase table for suppressing torque pulsation according to the first embodiment.
[0054] 3 shows an example of a torque pulsation waveform including a sixth electrical frequency component extracted from the torque measured when a sinusoidal current is passed through the motor 1 and the motor is driven under specific current conditions. The current conditions for the motor 1 here are such that the motor current Id on the d-axis of the motor 1 is a constant value Id1, the motor current Iq on the q-axis is a constant value Iq1, and the rotational angular velocity of the motor 1 is constant.
[0055] In this specification and drawings, the current condition when the motor 1 is driven with motor currents Id=Id# and Iq=Iq# may be referred to as the current condition (Id#, Iq#). # is a number for identifying the current value. For example, the current condition when the motor 1 is driven with currents Id=Id1 and Iq=Iq1 is referred to as the current condition (Id1, Iq1).
[0056] The motor current Id may be a d-axis current command value id_ref, and the motor current Iq may be a q-axis current command value iq_ref.
[0057] The middle part of FIG. 3 shows a motor current waveform for suppressing torque pulsation, which is the torque pulsation waveform shown in the upper part multiplied by "-1 / Kt".
[0058] The lower part of Figure 3 shows an example in which the waveform of the motor current shown in the middle part is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing torque pulsation under current conditions (Id1, Iq1) is amplitude i_ca_amp(Id1, Iq1). The initial phase of the motor current for suppressing torque pulsation under current conditions (Id1, Iq1) is phase i_ca_ph(Id1, Iq1).
[0059] The upper part of Figure 4 shows an example of a torque pulsation waveform, which is a sixth electrical frequency component, extracted from the torque of motor 1 driven under current conditions different from those in Figure 3. The current conditions for motor 1 here are current conditions (Id2, Iq1), in which motor current Id on the d-axis of motor 1 is a constant value Id2, Iq on the q-axis is a constant value Iq1, and the rotational angular velocity of motor 1 is constant.
[0060] The middle part of FIG. 4 shows the waveform of the motor current for suppressing torque pulsation, which is the torque pulsation waveform shown in the upper part multiplied by "-1 / Kt".
[0061] The bottom part of Figure 4 shows an example in which the waveform of the motor current shown in the middle part is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current that suppresses torque pulsation under current conditions (Id2, Iq1) is amplitude i_ca_amp(Id2, Iq1). The initial phase of the motor current that suppresses torque pulsation under current conditions (Id2, Iq1) is phase i_ca_ph(Id2, Iq1).
[0062] An example of the torque amplitude table 210Tbl is shown in Figure 5. The torque amplitude table 210Tbl is a table showing the correspondence between current conditions and amplitude values of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to Figures 3 and 4, amplitude values of the motor current that suppress torque pulsation are calculated in advance under various current conditions that are expected to be applied to the motor 1, and the calculated amplitude values are stored in the torque amplitude table 210Tbl.
[0063] When the motor 1 is rotating, the current command values id_ref, iq_ref are input to the torque suppression command amplitude calculator 210. The torque suppression command amplitude calculator 210 references a torque amplitude table 210Tbl based on the input current command values id_ref, iq_ref, and acquires an amplitude i_ca_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The torque suppression command amplitude calculator 210 outputs the acquired amplitude i_ca_amp(id_ref, iq_ref) as the amplitude i_ca_amp of the current command value for suppressing torque pulsation in the motor 1.
[0064] Here, the torque suppression command amplitude calculator 210 may calculate the amplitude i_ca_amp by linear interpolation. For example, when the current command value iq_ref under the current condition for which the amplitude is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the torque amplitude table 210Tbl, the torque suppression command amplitude calculator 210 calculates the amplitude i_ca_amp by linear interpolation. For example, the torque suppression command amplitude calculator 210 may calculate the amplitude value under a current condition (IdM, Iq1) between the current condition (Id1, Iq1) in FIG. 3 and the current condition (Id2, Iq1) in FIG. 4 by linear interpolation. Here, IdM is, for example, (Id1 + Id2) / 2. In this case, the torque suppression command amplitude calculator 210 calculates, as the amplitude i_ca_amp(IdM, Iq1), a value obtained by adding the amplitude i_ca_amp(Id1, Iq1) and the amplitude i_ca_amp(Id2, Iq1) and multiplying the sum by 1 / 2.
[0065] An example of the torque phase table 211Tbl is shown in Figure 6. The torque phase table 211Tbl is a table showing the correspondence between current conditions and amplitude values of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to Figures 3 and 4, the initial phase of the motor current that suppresses torque pulsation under various current conditions that are expected to be applied to the motor 1 is calculated in advance, and the phase that is advanced by 90 degrees from the calculated initial phase is stored in the torque phase table 211Tbl.
[0066] For example, if the initial phase under the current condition (Id1, Iq1) is phase i_ca_ph(Id1, Iq1), the torque phase table 211Tbl stores the phase {i_ca_ph(Id1, Iq1)+90}, which is obtained by adding 90 to the phase i_ca_ph(Id1, Iq1) and advancing it by 90 degrees. Also, if the initial phase under the current condition (Id2, Iq1) is phase i_ca_ph(Id2, Iq1), the torque phase table 211Tbl stores the phase {i_ca_ph(Id2, Iq1)+90}.
[0067] When the motor 1 is rotating, the current command values id_ref and iq_ref are input to the torque suppression command phase calculator 211. The torque suppression command phase calculator 211 references a torque phase table 211Tbl based on the current command values id_ref and iq_ref, and acquires the initial phase {i_ca_ph(id_ref, iq_ref)+90} corresponding to the current condition (id_ref, iq_ref).
[0068] The torque suppression command phase calculator 211 outputs the acquired phase {i_ca_ph(id_ref, iq_ref)+90} as the initial phase i_ca_phase of the current command value for suppressing torque pulsation in the motor 1 under the current condition (id_ref, iq_ref). That is, there is a relationship i_ca_phase=i_ca_ph+90.
[0069] Here, the torque phase table 211Tbl stores a phase that is 90 degrees ahead of the phase i_ca_ph. This is to supply a motor current corresponding to the torque pulsation suppression command value i_cancel2 to the motor 1. More specifically, a cancel voltage command value vq_cancel, which includes a component of the torque pulsation suppression command value i_cancel2, is added to the fundamental wave command value vq. For this reason, the phase of the torque pulsation suppression command value i_cancel2 is advanced by 90 degrees. Here, 90 degrees is a phase that corresponds to a quarter cycle, assuming that one cycle in the waveform of the frequency component of the Nth electrical angle to be suppressed is 360 degrees.
[0070] The torque suppression command value calculator 21 calculates torque pulsation suppression command values i_cancel and i_cancel2 shown in equations (1-3) and (1-4). The constant N is the order to be suppressed. θ is the rotor position θ detected by the rotational position detector 2.
[0071] i_cancel=i_ca_amp×cos(Nθ+i_ca_phase)…Formula (1-3) i_cancel2=i_ca_amp×cos(Nθ+i_ca_phase−90)…Formula (1-4)
[0072] Here, the process of deriving the torque pulsation suppression command value i_cancel shown in equation (1-3) will be specifically described.
[0073] The adder 212 adds the phase i_ca_phase calculated by the torque suppression command phase calculator 211 to a value (Nθ) obtained by multiplying the rotor position θ by a constant N. The value (Nθ) obtained by multiplying the rotor position θ by a constant N is calculated by an amplifier 28, which will be described later, and output to the adder 212. The adder 212 outputs the phase after the addition (Nθ+i_ca_phase) to the cosine calculator 213.
[0074] 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 .
[0075] The multiplier 214 multiplies the sine wave cos(Nθ+i_ca_phase) output from the cosine calculator 213 by the amplitude i_ca_amp. The multiplier 214 outputs the sine wave {i_ca_amp×cos(Nθ+i_ca_phase)} after the multiplication as the cancel voltage command value i_cancel.
[0076] Here, the process of deriving the torque pulsation suppression command value i_cancel2 shown in equation (1-4) will be specifically described.
[0077] The subtractor 215 subtracts 90 from the phase (Nθ+i_ca_phase) output from the adder 212 to obtain a phase (Nθ+i_ca_phase−90), and outputs the phase to the cosine calculator 216 .
[0078] The cosine calculator 216 calculates the sine wave cos(Nθ+i_ca_phase−90) having the phase (Nθ+i_ca_phase−90) output from the adder 212 , and outputs the calculated sine wave cos(Nθ+i_ca_phase−90) to the multiplier 217 .
[0079] The multiplier 217 multiplies the sine wave cos(Nθ+i_ca_phase−90) output from the cosine calculator 216 by the amplitude i_ca_amp. The multiplier 217 outputs the sine wave {i_ca_amp×cos(Nθ+i_ca_phase−90)} after the multiplication as the cancel voltage command value i_cancel2.
[0080] Here, as described above, the phase i_ca_phase is the phase i_ca_ph advanced by 90 degrees, and there is a relationship i_ca_phase=i_ca_ph+90, so equation (1-4) is equivalent to equation (1-5).
[0081] i_cancel2=i_ca_amp×cos(Nθ+i_ca_ph)...Formula (1-5)
[0082] The torque pulsation suppression command value i_cancel2 calculated by the cancellation calculator 20 corresponds to the motor current shown in the middle and bottom rows of Fig. 3 and the middle and bottom rows of Fig. 4. In other words, the torque pulsation suppression command value i_cancel2 is a current command value that is in opposite phase to the torque pulsation in the motor 1 and corresponds to a sine wave whose amplitude is 1 / Kt times the amplitude. The torque pulsation suppression command value i_cancel is also a current command value that corresponds to a sine wave whose phase is 90 degrees ahead of the torque pulsation suppression command value i_cancel2.
[0083] The cancellation calculator 20 outputs the torque pulsation suppression command value i_cancel out of the torque pulsation suppression command values i_cancel and i_cancel2 to the adder 15. The adder 15 adds the torque pulsation suppression command value i_cancel to the current command value iq_ref, and outputs the current command value iq_ref2 after the addition to the current controller 9. Here, it is assumed that the set response frequency in the q-axis current controller 93 is frequency fq.
[0084] In this case, if the frequency of the Nth electrical angle is equal to or lower than frequency fq, the frequency component of the Nth electrical angle in motor current Iq coincides with torque pulsation suppression command value i_cancel2. Torque pulsation suppression command value i_cancel2 is a sine wave that is in opposite phase to the torque pulsation in motor 1 and has an amplitude 1 / Kt times that of the torque pulsation shown in the middle and bottom rows of Fig. 3 or the middle and bottom rows of Fig. 4. Therefore, the torque pulsation shown in the upper row of Fig. 3 or the upper row of Fig. 4 is canceled out, making it possible to suppress torque pulsation in motor 1.
[0085] On the other hand, when the frequency of the Nth electrical angle exceeds frequency fq, it exceeds the range of performance of the q-axis current controller 93. In a band where the frequency of the Nth electrical angle exceeds frequency fq, the cancel voltage command value vq_cancel is used to control the frequency component of the Nth electrical angle included in the motor current Iq so that it coincides with the torque pulsation suppression command value i_cancel2.
[0086] The disturbance reduction command value calculator 22 calculates a disturbance reduction command value i_gairan based on the current command values id_ref, iq_ref and the rotor position θ. The disturbance reduction command value i_gairan is a current command value for reducing disturbances.
[0087] 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 .
[0088] The disturbance reduction command amplitude calculator 220 calculates an amplitude i_ga_amp, which is the amplitude value of the disturbance reduction command value i_gairan, based on the current command values id_ref and iq_ref. The method by which the disturbance reduction command amplitude calculator 220 calculates the amplitude i_ga_amp will be described with reference to FIGS. 7 to 10. FIGS. 7 and 8 are diagrams showing examples of waveforms affected by disturbances according to the first embodiment. FIG. 9 is a diagram showing an example of an amplitude table for suppressing the effects of disturbances according to the first embodiment. FIG. 10 is a diagram showing an example of a phase table for suppressing the effects of disturbances according to the first embodiment.
[0089] The upper part of Figure 7 shows an example of a waveform affected by a disturbance, including a sixth electrical frequency component extracted from the q-axis motor current Iq when the motor 1 is driven under specific current conditions. The current conditions for the motor 1 here are conditions in which the motor current Id on the d-axis of the motor 1 is a constant value Id1, the motor current Iq on the q-axis is a constant value Iq1, the rotational angular velocity of the motor 1 is constant, and the fundamental wave command values vd and vq are constant. The effects of the disturbance here include the sixth electrical frequency component of the magnetic flux φm of the magnet in the motor 1 and the sixth electrical frequency component of the inductance in the motor 1. These are sixth electrical frequency components caused by fluctuations and distortions in the impedance of the motor 1, i.e., by the disturbance.
[0090] The lower part of Fig. 7 shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of Fig. 7. The lower part of Fig. 7 also shows an example in which the waveform is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing the influence of disturbances under the current condition (Id1, Iq1) is the amplitude i_ga_amp(Id1, Iq1). The initial phase of the motor current for suppressing the influence of disturbances under the current condition (Id1, Iq1) is the phase i_ga_ph(Id1, Iq1).
[0091] The upper part of Figure 8 shows an example of a waveform affected by a disturbance, including a sixth-order electrical frequency component extracted from the q-axis motor current Iq when the motor 1 is driven under current conditions (Id2, Iq1) different from those in Figure 7.
[0092] The lower part of Fig. 8 shows an example of a waveform obtained by inverting the sign of the waveform shown in the upper part of Fig. 8. The lower part of Fig. 8 also shows an example in which the waveform is expressed as a mathematical expression and the amplitude and initial phase of the waveform are extracted. The amplitude value of the motor current for suppressing the influence of disturbances under the current condition (Id2, Iq1) is the amplitude i_ga_amp(Id2, Iq1). The initial phase of the motor current for suppressing the influence of disturbances under the current condition (Id2, Iq1) is the phase i_ga_ph(Id2, Iq1).
[0093] 9 shows an example of the disturbance suppression amplitude table 220Tbl. The disturbance suppression amplitude table 220Tbl is a table showing the correspondence between current conditions and amplitude values of the motor current that suppress the effects of disturbances. For example, using a method similar to that described with reference to FIGS. 7 and 8, amplitude values of the motor current that suppress disturbance pulsation under various current conditions that are expected to be applied to the motor 1 are calculated in advance, and the calculated amplitude values are stored in the disturbance suppression amplitude table 220Tbl.
[0094] When the motor 1 is rotating, the current command values id_ref, iq_ref are input to the disturbance reduction command amplitude calculator 220. The disturbance reduction command amplitude calculator 220 references a disturbance reduction amplitude table 220Tbl based on the input current command values id_ref, iq_ref, and acquires an amplitude i_ga_amp(id_ref, iq_ref) corresponding to the current condition (id_ref, iq_ref). The disturbance reduction command amplitude calculator 220 outputs the acquired amplitude i_ga_amp(id_ref, iq_ref) as the amplitude i_ga_amp of a current command value for suppressing the influence of disturbances on the motor 1.
[0095] Here, the disturbance reduction command amplitude calculator 220 may calculate the amplitude i_ga_amp by linear interpolation. For example, when the current command value iq_ref under the current condition for which the amplitude is to be calculated is a current value intermediate between the motor currents Iq1 and Iq2 in the disturbance reduction amplitude table 220Tbl, the disturbance reduction command amplitude calculator 220 calculates the amplitude i_ga_amp by linear interpolation. For example, the disturbance reduction command amplitude calculator 220 may calculate the amplitude value under a current condition (IdM, Iq1) between the current condition (Id1, Iq1) in FIG. 7 and the current condition (Id2, Iq1) in FIG. 8 by linear interpolation. Here, IdM is, for example, (Id1 + Id2) / 2. In this case, the disturbance suppression command amplitude calculator 220 calculates, as the amplitude i_ga_amp(IdM, Iq1), a value obtained by adding the amplitude i_ga_amp(Id1, Iq1) and the amplitude i_ga_amp(Id2, Iq1) and multiplying the sum by 1 / 2.
[0096] 10 shows an example of the disturbance reduction phase table 221Tbl. The disturbance reduction phase table 221Tbl is a table showing the correspondence between current conditions and amplitude values of the motor current that suppress torque pulsation. For example, using a method similar to that described with reference to FIGS. 7 and 8, the initial phase of the motor current that suppresses the effects of disturbances under various current conditions that are expected to be applied to the motor 1 is calculated in advance, and the phase that is advanced by 90 degrees from the calculated initial phase is stored in the disturbance reduction phase table 221Tbl.
[0097] For example, when the initial phase under the current condition (Id1, Iq1) is phase i_ga_ph(Id1, Iq1), the disturbance suppression phase table 221Tbl stores phase {i_ga_ph(Id1, Iq1)+90}. When the initial phase under the current condition (Id2, Iq1) is phase i_ga_ph(Id2, Iq1), the disturbance suppression phase table 221Tbl stores phase {i_ga_ph(Id2, Iq1)+90}.
[0098] When the motor 1 is rotating, the current command values id_ref and iq_ref are input to the disturbance suppression command phase calculator 221. The disturbance suppression command phase calculator 221 refers to the disturbance suppression phase table 221Tbl based on the current command values id_ref and iq_ref, and acquires the initial phase {i_ga_ph(id_ref, iq_ref)+90} corresponding to the current condition (id_ref, iq_ref).
[0099] The disturbance suppression command phase calculator 221 outputs the acquired phase {i_ga_ph(id_ref, iq_ref)+90} as the initial phase i_ga_phase of the current command value for suppressing the influence of disturbances on the motor 1 under the current condition (id_ref, iq_ref). That is, there is a relationship i_ga_phase=i_ga_ph+90.
[0100] Here, the disturbance reduction phase table 221Tbl stores a phase that is 90 degrees ahead of the phase i_ga_ph. This is to pass a motor current corresponding to the disturbance reduction command value i_gairan through the motor 1. More specifically, a cancel voltage command value vq_cancel that includes a component of the disturbance reduction command value i_gairan is added to the fundamental wave command value vq. For this reason, the phase of the disturbance reduction command value i_gairan is advanced by 90 degrees.
[0101] The disturbance suppression command value calculator 22 calculates the disturbance suppression command value i_gairan shown in equation (1-6). The constant N is the order to be suppressed. θ is the rotor position θ detected by the rotational position detector 2.
[0102] i_gairan=i_ga_amp×cos(Nθ+i_ga_phase)...Formula (1-6)
[0103] Here, the process of deriving the disturbance suppression command value i_gairan shown in equation (1-6) will be specifically described.
[0104] The adder 222 adds the phase i_ga_phase calculated by the disturbance suppression command phase calculator 221 to a value (Nθ) obtained by multiplying the rotor position θ by a constant N. The adder 2212 outputs the phase (Nθ+i_ga_phase) after the addition to the cosine calculator 223.
[0105] The cosine calculator 223 calculates the sine wave cos(Nθ+i_ga_phase) having the phase (Nθ+i_ga_phase) output from the adder 222 , and outputs the calculated sine wave cos(Nθ+i_ga_phase) to the multiplier 224 .
[0106] The multiplier 224 multiplies the sine wave cos(Nθ+i_ga_phase) output from the cosine calculator 223 by the amplitude i_ga_amp. The multiplier 224 outputs the multiplied sine wave {i_ga_amp×cos(Nθ+i_ga_phase)} as the disturbance suppression command value i_gairan.
[0107] The cancellation calculator 20 calculates the composite values i_sum and v_sum shown in equations (1-7), (1-8), and (1-9). The constant N is the order to be suppressed. ω is the rotational angular velocity ω detected by the speed calculator 12. The constant L is the inductance of the motor 1. The constant R is the resistance value of the winding resistance of the motor 1.
[0108] i_sum=i_cancel+i_gairan...Formula (1-7) v_sum=N・ω・L・i_sum=N・ω・L・(i_cancel+i_gairan)...Formula (1-8) v_sum2=v_sum+R・i_cancel2 =R・i_cancel2+N・ω・L・(i_cancel+i_gairan) ...Formula (1-9)
[0109] The process of deriving the combined value i_sum shown in equation (1-7) will be specifically described. The adder 23 adds the disturbance suppression command value i_gairan to the torque pulsation suppression command value i_cancel, and outputs the combined value i_sum (=i_cancel+i_gairan) after the addition to the multiplier 24.
[0110] The process of deriving the composite value v_sum shown in equation (1-8) will be specifically described. The multiplier 24 multiplies the composite value i_sum output from the adder 23 by the value (NωL) output from the amplifier 17, and outputs the multiplied composite value v_sum (=NωLi_sum) to the adder 25.
[0111] The process of deriving the composite value v_sum2 shown in equation (1-9) will be specifically described. The amplifier 27 outputs a value obtained by multiplying the torque pulsation suppression command value i_cancel by R to the adder 25. The adder 25 adds the value (R·i_cancel) output from the amplifier 27 to the composite value v_sum, and outputs the resulting composite value v_sum2 to the limiter 26.
[0112] The limiter 26 compares the composite value v_sum2 output from the adder 25 with an upper limit value (+vq_clip) and a lower limit value (-vq_clip), and limits the composite value v_sum2 to a value between the lower limit value and the upper limit value based on the comparison result, and outputs the limited value as the cancellation voltage command value vq_cancel. Specifically, the limiter 26 uses equation (1-10) to limit the composite value v_sum2 to a value between the lower limit value and the upper limit value.
[0113] If (v_sum2<-vq_clip), then →vq_cancel=-vq_clip If (-vq_clip<v_sum2<vq_clip), then →vq_cancel=v_sum2 If (vq_clip<v_sum2), then →vq_cancel=vq_clip ...Equation (1-10)
[0114] Here, the limit value vq_clip set as the upper and lower limits will be described. The limit value vq_clip is calculated as shown in equation (1-11) using the order N of the electrical angle to be suppressed, the maximum rotational angular velocity ωmax at the rotational angular velocity ω used for calculation in the cancellation calculator 20, the inductance L of the motor 1, and the maximum composite value i_sum_max at the composite value i_sum.
[0115] vq_clip=N・ωmax・L・i_sum_max…Formula (1-11)
[0116] Alternatively, the rotational angular velocity ω of the motor 1 may be input to the limiter 26, and the limit value vq_clip may be calculated using an equation in which the maximum rotational angular velocity ωmax in equation (1-11) is replaced with the rotational angular velocity ω.
[0117] Furthermore, when equation (1-9) is taken into consideration in equation (1-10), the following equation (1-12) is obtained.
[0118] If (v_sum2<-vq_clip), →vq_cancel=-vq_clip If (-vq_clip<v_sum2<vq_clip), →vq_cancel=R·i_cancel2+N·ω·L·(i_cancel+i_gairan) If (vq_clip<v_sum2), →vq_cancel=vq_clip ...Equation (1-12)
[0119] As shown in equation (1-12), the limiter 26 limits a composite value v_sum2, which includes a value obtained by multiplying the sum of the disturbance suppression command value i_gairan and the torque pulsation suppression command value i_cancel by a coefficient including the rotational angular velocity ω of the motor, by a limit value vq_clip. Here, the limit value vq_clip is a value calculated based on the rotational angular velocity ω of the motor 1 and the inductance L, which is an electrical constant. In other words, the cancel voltage command value vq_clip is calculated based on the sum of the "disturbance suppression command value and torque pulsation suppression command value" after the limit.
[0120] The coordinate converter 10 outputs the cancel voltage command value vq_cancel to the adder 14. The adder 14 adds the cancel voltage command value vq_cancel to the fundamental wave command value vq, and outputs the fundamental wave command value vq′ after the addition to the coordinate converter 10.
[0121] Here, the effects of the motor control device 100 according to the first embodiment will be described. The voltage equation for the q-axis in the motor 1 is expressed by the following equation (1-13). R is the resistance value of the winding resistance in the motor 1. L is the inductance in the motor 1. φ is the flux linkage in the motor 1. s is the Laplace operator. Vq is the q-axis motor voltage. iq is the q-axis motor current. id is the d-axis motor current.
[0122] Vq=R・iq+sL・iq+ω(L・id+φ) …Formula (1-13)
[0123] Here, in equation (1-13), it is assumed that the motor current id = 0 (zero) and that there is no pulsating component in the interlinkage magnetic flux φ. At this time, it is assumed that the inductance L includes, in addition to the DC component L_dc, a sixth-order electrical frequency component L_6f in the inductance L. In this case, L can be expressed as L = L_dc + L_6f, and equation (1-13) can be expressed as the following equation (1-14).
[0124] Vq=R・iq+s(L_dc+L_6f)・iq+ωφ...Formula (1-14)
[0125] Consider the situation in which motor 1 is rotating at high speed in equation (1-14). In this case, the first term on the right-hand side of equation (1-14) is relatively small compared to the second term on the right-hand side and can therefore be ignored. Furthermore, when motor 1 is rotating at high speed and the corresponding sixth-order frequency component is greater than the response frequency of q-axis current controller 93, and the manipulated variable of q-axis current controller 93 corresponds to d-axis motor voltage Vq, the sixth-order frequency component Vq_6f contained in d-axis motor voltage Vq is sufficiently small and can be considered to be 0 (zero). Taking the above into consideration, equation (1-14) can be expressed as equation (1-15) below. iq_dc is the DC component contained in q-axis motor current iq. iq_6f is the sixth-order frequency component contained in q-axis motor current iq. In other words, iq = iq_dc + iq_6f.
[0126] Vq_6f≒0 ≒s(L_dc+L_6f)・(iq_dc+iq_6f) ...Formula (1-15)
[0127] When equation (1-15) is solved for the sixth electrical frequency component iq_6f contained in the q-axis motor current iq, equation (1-16) is obtained.
[0128] iq_6f=-L_6f / L_dc・iq_dc...Formula (1-16)
[0129] In equation (1-16), the presence of L_6f causes a sixth electrical frequency component iq_6f to be contained in the q-axis motor current iq. If the sixth electrical frequency component is smaller than the response frequency of the q-axis current controller 93, feedback control is performed to set the frequency component iq_6f to 0 (zero), causing the frequency component iq_6f to approach 0 (zero). In other words, a sixth electrical frequency component Vq_6f is generated in the d-axis motor voltage Vq so that the frequency component iq_6f is suppressed.
[0130] On the other hand, if this magnitude relationship is reversed and the sixth electrical angle frequency component becomes larger than the response frequency in the q-axis current controller 93, it will be impossible to suppress the frequency component iq_6f in the feedback control by the q-axis current controller 93. As a result, the frequency component iq_6f according to equation (1-16) will be supplied to the motor 1.
[0131] In this way, if the frequency of frequency component iq_6f exceeds the control band of current controller 9 due to fluctuations in impedance in motor 1, frequency component iq_6f shown in equation (1-16) will be reflected in the rotation of motor 1. In this embodiment, the q-axis motor current including such frequency component iq_6f is defined as a disturbance current due to impedance distortion. The q-axis motor current including frequency component iq_6f may be referred to as disturbance current iq_6f. Measurement results for disturbance current iq_6f are shown in the upper part of each of Figures 7 and 8.
[0132] Based on this concept, in this embodiment, the disturbance reduction command value calculator 22 generates a disturbance reduction amplitude table 220Tbl and a disturbance reduction phase table 221Tbl in advance. The disturbance reduction command value calculator 22 calculates the amplitude and phase of a waveform obtained by inverting the disturbance current, as shown in the lower part of each of Figs. 7 and 8. As for the amplitude, the disturbance reduction command value calculator 22 creates a table in which the amplitude values themselves are mapped as the disturbance reduction amplitude table 220Tbl, as shown in Fig. 9. As for the phase, the disturbance reduction command value calculator 22 creates a table in which a phase advanced by 90 degrees from the initial phase is mapped as the disturbance reduction phase table 221Tbl, as shown in Fig. 10. The disturbance reduction command value calculator 22 calculates the disturbance reduction command value i_gairan by referring to a disturbance reduction amplitude table 220Tbl and a disturbance reduction phase table 221Tbl based on the current command values id_ref and iq_ref. The cancellation calculator 20 multiplies the amplitude of the composite value i_sum including the disturbance reduction command value i_gairan by NωL. Of the cancellation voltage command value vq_cancel, the term vq_cancel_d resulting from the disturbance reduction command value i_gairan is expressed by the following equation (1-17).
[0133] vq_cancel_d=N・ω・L・i_gairan...Formula (1-17)
[0134] On the other hand, the voltage Vgairan required to cancel out the disturbance current iq_6f expressed by equation (1-16) will be explained. The impedance Z(N) of the motor 1 with respect to the frequency component of the Nth electrical angle is expressed by the following equation (1-18). j is a pure imaginary number, and has the relationship j×j=-1. The constant N is the order to be suppressed. The constant L is the inductance of the motor 1. ω is the rotational angular velocity of the motor 1. R is the resistance value of the winding resistance of the motor 1.
[0135] Z(N)=R+j・NωL...Formula (1-18)
[0136] Furthermore, the voltage Vgairan required to cancel out the disturbance current iq_6f is expressed by the following equation (1-19): Z(N) is the impedance shown in equation (1-18), and iq_6f is the disturbance current.
[0137] Vgairan=Z(N)・(−iq_6f) =(R+j・NωL)・iq_6f ≒j・NωL・(−iq_6f) …Formula (1-19)
[0138] In equation (1-19), the term for resistance R is omitted in the equation after "≒". This is because in the region where the sixth electrical frequency component contained in the q-axis motor current iq is sufficiently higher than the response frequency of the q-axis current controller 93, the effect of the resistance R of the winding resistance in the motor 1 is sufficiently smaller than NωL and can be ignored.
[0139] In equation (1-19), the voltage required to suppress the disturbance current iq_6f is obtained by advancing the phase by 90 degrees and multiplying the amplitude by NωL with respect to the current (-iq_6f) obtained by inverting the sign of the disturbance current iq_6f. Here, the phase is advanced by 90 degrees because the pure imaginary number j is considered to be a shift operator that shifts the phase by 90 degrees. Based on this, comparing equation (1-17) and equation (1-19), the disturbance reduction command value i_gairan is obtained by advancing the phase by 90 degrees with respect to the value obtained by inverting the sign of the disturbance current iq_6f. Therefore, the disturbance reduction command value i_gairan corresponds to the term "j·(-iq_6f)" in equation (1-19). Therefore, it can be said that equation (1-17) and equation (1-19) are equivalent.
[0140] Therefore, in this embodiment, by including equation (1-17), which has a term including the disturbance suppression command value i_gairan calculated by the disturbance suppression command value calculator 22, in equation (1-12) for the cancellation voltage command value vq_cancel, it is possible to suppress the influence of the disturbance current iq_6f.
[0141] Next, we will explain the effects of the torque pulsation suppression command values i_cancel and i_cancel2 output from the torque suppression command value calculator 21. The torque equation for the motor 1 is expressed by the following equation (1-20). Kt is the torque constant. T is the torque. iq is the q-axis motor current.
[0142] T = Kt iq ... Equation (1-20)
[0143] However, in equation (1-20), an approximate torque T is shown assuming that the magnet torque is larger than the reluctance torque in motor 1. In the case of a motor with a large proportion of reluctance torque, a torque equation that also includes the d-axis motor current id can be applied.
[0144] In equation (1-20), it is assumed that the torque constant Kt includes a sixth-order electrical frequency component Kt_6f in addition to the DC component Kt_dc. In this case, Kt can be expressed as Kt = Kt_dc + Kt_6f, and equation (1-20) can be expressed as the following equation (1-21).
[0145] T=Kt・iq=(Kt_dc+Kt_6f)・iq=(Kt_dc・iq+Kt_6f・iq...Formula (1-21)
[0146] In equation (1-21), if the q-axis motor current iq is constant, the first term on the right-hand side of equation (1-21) is DC torque T_dc, and the second term on the right-hand side is pulsating torque T_6f that pulsates with sixth electrical angle. If the DC component of the q-axis motor current iq is iq_dc, then when the q-axis motor current iq is constant, it can be expressed as iq_dc = iq. In this case, the pulsating torque T_6f, the second term on the right-hand side of equation (1-21), can be expressed by the following equation (1-22).
[0147] T_6f=Kt_6f·iq_dc ...Equation (1-22)
[0148] On the other hand, when a current pulsation component iq_t6f that pulsates at the sixth electrical angle is added to the DC component iq_dc as the q-axis motor current iq, equation (1-21) is expressed by the following equation (1-23).
[0149] 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)
[0150] However, in equation (1-23), the term Kt_6f·iq_t6f is omitted in the equation after "≒" because the product of the sixth-order electrical frequency component Kt_6f in the torque constant Kt and the current ripple component iq_t6f is sufficiently small and can be ignored.
[0151] Here, consider the case where the torque T is made constant by adding the current pulsation component iq_t6f to cancel out the second term on the right side of equation (1-23), i.e., the pulsating torque T_6f in equation (1-22). In this case, it is sufficient to satisfy the following: second term on the right side + third term on the right side = 0 in equation (1-23). In other words, it is sufficient if T_6f + Kt_dc · iq_t6f = 0. When this is solved for the current pulsation component iq_t6f, the current pulsation component iq_t6f is expressed by the following equation (1-24).
[0152] iq_t6f=-T_6f / Kt_dc ...Equation (1-24)
[0153] If the torque cancellation current iq_t6f, which is the sixth electrical frequency component in the q-axis motor current iq, can be set as in equation (1-24), the sixth electrical frequency component contained in the torque T can be set to 0 (zero), making it possible to suppress torque pulsation.
[0154] Based on this concept, in this embodiment, the torque suppression command value calculator 21 generates a torque amplitude table 210Tbl and a torque phase table 211Tbl in advance. As shown in the lower part of each of FIGS. 3 and 4 , the torque suppression command value calculator 21 calculates the amplitude and phase of a waveform obtained by inverting the torque pulsation waveform and multiplying it by 1 / Kt. As shown in FIG. 5 , the torque suppression command value calculator 21 creates a table in which the amplitude values themselves are mapped as the torque amplitude table 210Tbl. As shown in FIG. 6 , the torque suppression command value calculator 21 creates a table in which the phase advanced by 90 degrees from the initial phase is mapped as the torque phase table 211Tbl. The torque suppression command value calculator 21 calculates the disturbance suppression command value i_gairan by referring to the torque amplitude table 210Tbl and the torque phase table 211Tbl based on the current command values id_ref and iq_ref. In the cancellation calculator 20, the amplitude of the composite value i_sum including the torque pulsation suppression command value i_cancel is multiplied by NωL. Of the cancellation voltage command value vq_cancel, the term vq_cancel_T resulting from the torque pulsation suppression command values i_cancel and i_cancel2 is expressed by the following equation (1-25).
[0155] vq_cancel_T=R・i_cancel2+N・ω・L・i_cancel...Formula (1-25)
[0156] On the other hand, the voltage Vtorque required to pass the torque cancellation current iq_t6f expressed by equation (1-24) will be described. The impedance Z(N) of the motor 1 with respect to the frequency component of the Nth electrical angle is expressed by equation (1-26) using the above equation (1-18). j is a pure imaginary number. The constant N is the order to be suppressed. The constant L is the inductance of the motor 1. ω is the rotational angular velocity of the motor 1. R is the resistance value of the winding resistance of the motor 1.
[0157] Vtorque=Z(N)・iq_t6f=(R+j・NωL)・iq_t6f=R・iq_t6f+j・NωL・iq_t6f... Formula (1-26)
[0158] Here, if a signal with a phase advanced by 90 degrees without changing the amplitude of the torque canceling current iq_t6f is taken as current iq_t6f_90, then equation (1-26) can be expressed by the following equation (1-27).
[0159] Vtorque = R・iq_t6f+j・NωL・iq_t6f =R・iq_t6f+NωL・iq_t6f_90... Formula (1-27)
[0160] Comparing equation (1-25) and equation (1-27), it is found that the torque cancellation current iq_t6 is equal to the torque pulsation suppression command value i_cancel2. Also, the current iq_t6f_90, which is obtained by advancing the phase of the torque cancellation current iq_t6 by 90 degrees, is equal to the torque pulsation suppression command value i_cancel. Therefore, it can be said that equation (1-25) and equation (1-27) are equivalent.
[0161] Therefore, in this embodiment, by including equation (1-25), which has a term including the torque pulsation suppression command values i_cancel and i_cancel2 calculated by the torque suppression command value calculator 21, in equation (1-12) for the cancel voltage command value vq_cancel, the sixth electrical frequency component included in the motor current can be made to match the cancel current, thereby achieving the effect of reducing the torque ripple component caused by the pulsation of the torque constant Kt in the motor 1.
[0162] Here, in FIG. 1 , the adder 15 adds the torque pulsation suppression command value i_cancel2 to the current command value iq_ref. As a result, in a region where the frequency of the current command value iq_ref2 is smaller than the control band of the q-axis current controller 93, the q-axis current controller 93 makes the q-axis motor current iq equal to iq_ref2 = iq_ref + i_cancel2. On the other hand, in a region where the frequency of the current command value iq_ref2 is larger than the control band of the q-axis current controller 93, it is difficult for the q-axis current controller 93 to make the q-axis motor current iq equal to iq_ref2 = iq_ref + i_cancel2. Even in this case, the adder 14 adds the cancellation voltage command value vq_cancel to the fundamental wave command value vq. This allows the term of equation (1-25) to be included in the fundamental wave command value vq. Therefore, feedforward control works, and as a result, the q-axis motor current iq coincides with iq_ref2=iq_ref+iq_cancel2, thereby reducing the torque pulsation component.
[0163] Furthermore, in the region where the sixth electrical angle frequency component becomes larger than the response frequency of the q-axis current controller 93 and the effect of the cancellation voltage command value vq_cancel is expected, if R<<NωL holds, it can be said that there is no significant difference in the effect even if the term “R·i_cancel2” in equation (1-12) representing the cancellation voltage command value vq_cancel is omitted.
[0164] As described above, in the first embodiment, motor control device 100 includes cancellation calculator 20. Cancellation calculator 20 calculates a cancellation voltage command value vq_cancel. The cancellation voltage command value suppresses disturbance currents caused by impedance distortion in motor 1, and also suppresses torque pulsation caused by pulsation in torque constant Kt in motor 1. Therefore, motor control device 100 according to the first embodiment can reduce torque pulsation in motor 1, particularly in the high-speed rotation range.
[0165] This configuration has the effect of reducing torque pulsation in both low-speed and high-speed ranges. Meanwhile, in this embodiment, in order to suppress torque pulsation, the value obtained by dividing the torque pulsation generated in motor 1 by the torque constant Kt and the torque due to the cancellation voltage command value must have the same amplitude and opposite phase. In other words, it is important to appropriately set the amplitude i_ca_amp and phase i_ca_phase in equation (1-3).
[0166] Furthermore, for the disturbance reduction command value for reducing torque pulsation in the high-speed range, it is necessary to accurately predict current pulsation when the rotation speed of the motor 1 and the fundamental wave command values vd and vq are constant. In other words, it is important to appropriately set the amplitude i_ga_amp and initial phase i_ga_ph of the disturbance reduction command value.
[0167] However, as mentioned above, individual variations occur in the amplitude and phase of torque pulsation. As a result, the effect of suppressing torque pulsation decreases depending on the difference from the expected amplitude and phase. If the phase is significantly shifted, torque pulsation may increase. Similarly, the effect of suppressing the influence of disturbances with respect to the disturbance current command value decreases depending on the difference from the expected amplitude and phase. The following describes an example in which torque pulsation is suppressed using a cancellation voltage command value, but the same concept can also be applied to suppressing the influence of disturbances.
[0168] To address this issue, the present embodiment provides a generating device 200. The generating device 200 calculates a correction voltage or a correction current according to the characteristics of the motor 1. The correction voltage is, for example, a cancellation voltage command value vq_cancel, which is a command value for suppressing torque pulsation of the motor 1. The correction current is, for example, a torque pulsation suppression command value i_cancel, which is a command value for suppressing torque pulsation. The generating device 200 rewrites the table based on the calculated correction voltage or correction current. The tables here are, for example, a torque amplitude table 210Tbl and a torque phase table 211Tbl, which contain the amplitude and initial phase of a sine wave having a sixth-order frequency component in electrical angle for suppressing torque pulsation.
[0169] The generation method in which the generation device 200 generates the correction voltage or correction current includes the following steps: (Step 1) A rotation step of rotating the rotor of the motor 1; (Step 2) A measurement step of measuring torque pulsation having an Nth-order frequency component of electrical angle; (Step 3) A calculation step of calculating the correction voltage or correction current for each current condition; and (Step 4) A rewrite step of rewriting the values in the table.
[0170] The generating device 200 rotates the rotor of the motor 1 in step 1, and measures torque pulsation having a frequency component of the Nth electrical angle in step 2. In step 3, the generating device 200 calculates a correction voltage or correction current for each current condition based on the measurement results of step 2. In step 4, the values in the table are rewritten based on the calculation results of step 3.
[0171] The generating device 200 will now be described with reference to FIGS. 11 to 16. FIG. 11 is a simplified schematic diagram of the configuration of a motor and a motor control device according to embodiment 1. FIG. 12 is a block diagram showing the configuration of the generating device according to embodiment 1. FIG. 13 is a diagram for explaining the generating device according to embodiment 1. FIG. 14 is a flowchart showing the flow of processing performed by the generating device according to embodiment 1. FIG. 15 is a diagram showing inputs and outputs of the motor control device according to embodiment 1. FIG. 16 is a flowchart showing the flow of processing performed by the generating device according to embodiment 1.
[0172] 11, motor control device 100 applies motor currents Iu, Iv, and Iw to motor 1 via inverter 5. Motor control device 100 determines the current value to be passed through the motor based on information such as torque command T_ref input from torque command generator TG, motor currents iu, iv, and iw detected by inverter 5, and rotor position θ of motor 1, and generates switching signals Gup to Gwn to apply current from inverter 5 to motor 1, thereby generating torque.
[0173] 12 , the generation device 200 includes a torque detection unit 201, a torque generation unit 202, and a correction current correction unit 203. The torque generation unit 202 generates torque under the control of the correction current correction unit 203. The torque detection unit 201 detects the torque generated by the torque generation unit 202.
[0174] 13 is a schematic diagram showing how the motor 1 and the generating device 200 are connected. As shown in FIG. 13, the torque detection unit 201 is mechanically connected to the torque generation unit 202 via connecting means 204 such as a coupling. The torque detection unit 201 is also mechanically connected to the motor 1 via connecting means 205 such as a coupling. The motor 1 is fixed by a motor fixing unit 206 and is electrically connected to the motor control device 100. The correction current modification unit 203 is electrically connected to the torque generation unit 202, the torque detection unit 201, and the motor control device 100.
[0175] The correction current correction unit 203 outputs control information ωref for generating torque to the torque generation unit 202, thereby causing the torque generation unit 202 to generate torque and obtaining the rotor position θ2 of the motor 1. The correction current correction unit 203 obtains the torque Tmes detected by the torque detection unit 201.
[0176] The correction current modification unit 203 outputs a torque command T_ref to the controller 6 of the motor control device 100, causing the motor control device 100 to control the motor 1, and obtains control information used to control the motor 1 from the motor control device 100. The control information for the motor control device 100 is the motor voltages vu, vv, vw and motor currents iu, iv, iw detected by the inverter 5.
[0177] The correction current correction unit 203 calculates a correction voltage or a correction current based on the torque Tmes, the rotor position θ2, and control information from the motor control device 100 that controlled the motor 1 when the torque was generated. The correction current correction unit 203 rewrites the torque amplitude table 210Tbl and the torque phase table 211Tbl based on the calculated correction voltage or correction current.
[0178] FIG. 14 shows the flow of the process by which the generator 200 updates the tables for suppressing torque pulsation. The tables for suppressing torque pulsation are a torque amplitude table 210Tbl and a torque phase table 211Tbl. As shown in FIG. 14, first, the motor fixing unit 206 fixes the motor 1 to the generator 200 (step S10). Next, the motor 1 and the generator 200 are connected via the connecting means 204 and 205 (step S11). Next, the correction current correcting unit 203 rotates the rotor under certain current conditions (step S12). The correction current correcting unit 203 notifies the motor control device 100 of a torque command and drives the motor 1 under certain current conditions, for example, Id = Id1 and Iq = Iq1. The correction current correcting unit 203 also notifies the torque generating unit 202 of a constant speed command value ωref to generate torque at a constant speed. Here, the speed command value ωref is preferably low because it is not affected by impedance distortion. Next, the torque detection unit 201 measures the torque ripple and measures the amplitude and phase of a sine wave representing the torque pulsation waveform (step S13). The torque detection unit 201 calculates the amplitude and phase at a desired frequency, for example, by frequency analysis of the measured waveform. The correction current correction unit 203 calculates the amplitude and phase of the correction current based on the measurement results (step S14). The correction current correction unit 203 rewrites the amplitude in the torque amplitude table 210Tbl and the phase in the torque phase table 211Tbl based on the calculated correction current (step S15).
[0179] Instead of performing measurements under all current conditions in the torque amplitude table 210Tbl, measurements may be performed only under specific current conditions extracted from the torque amplitude table 210Tbl, and the amplitude and phase estimated under other current conditions may be calculated by linear interpolation using the measurement results. By performing linear interpolation, the number of current conditions under which measurements are actually performed can be reduced, thereby improving productivity.
[0180] The amplitude under unmeasured current conditions may be calculated by comparing the measurement results with a preset value. For example, assume that the size of the motor 1 in the direction of the rotational axis varies within the tolerance allowed for the product. In this case, a 1% increase in the size in the direction of the rotational axis increases the magnetic flux interlinking the coil, and therefore the torque is expected to increase by approximately 1%. Furthermore, torque ripple also increases in proportion to the size in the direction of the rotational axis. Based on this concept, for example, the reference value of the amplitude of the torque pulsation waveform under current conditions (Id1, Iq1) is defined as i_ca_amp_ref(Id1, Iq1). Then, the actual measured value of the amplitude corresponding to the characteristics of the individual product under current conditions (Id1, Iq1) is defined as i_ca_amp_mes(Id1, Iq1). The coefficient α_ca_amp for calculating the amplitude under unmeasured current conditions can be calculated using the following equation (1-28):
[0181] α_ca_amp=i_ca_amp_mes(Id1, Iq1) / i_ca_amp_ref(Id1, Iq1) ...Formula (1-28)
[0182] By multiplying the coefficient α_ca_amp calculated by equation (1-28) by the amplitude value in the torque amplitude table 210Tbl, it is possible to calculate the amplitude value under other unmeasured current conditions. This makes it possible to reduce the number of current conditions to be actually measured, which is expected to shorten manufacturing lead time and improve productivity. The amplitude reference value i_ca_amp_ref(Id, Iq) can be determined by electromagnetic field analysis or the like. Alternatively, it can be set by performing measurements using samples extracted from a product group and calculating the average value of the measurement results for multiple samples. Furthermore, if the reference value can be defined mathematically, it may be set using a mathematical formula.
[0183] A similar approach can be applied to the phase. That is, the phase under unmeasured current conditions can be calculated by comparing it with a preset value. For example, when assembling the rotational position detector 2 to the motor 1, it is assumed that the phase will shift within the tolerance allowed for the product. In this case, the rotational position (angle) detected when the motor 1 is driven and the phase of the torque ripple will basically shift uniformly. Based on this concept, for example, the reference value of the phase under current conditions (Id1, Iq1) is defined as i_ca_ph_ref(Id1, Iq1). Then, the actual measured value of the phase according to the characteristics of the individual product under current conditions (Id1, Iq1) is defined as i_ca_ph_mes(Id1, Iq1). The phase difference βIdi_ca_ph for calculating the phase under unmeasured current conditions can be calculated using the following equation (1-29).
[0184] β_Idi_ca_ph=i_ca_ph_mes(Id1, Iq1) -i_ca_ph_ref(Id1, Iq1)...Formula (1-29)
[0185] The phase difference βIdi_ca_ph calculated by equation (1-29) can be added to the phase in the torque phase table 211Tbl to calculate the phase under other unmeasured current conditions. This reduces the number of current conditions to be actually measured, which is expected to shorten manufacturing lead time and improve productivity. The phase reference value i_ca_ph_ref(Id, Iq) can be calculated using electromagnetic field analysis or the like. Alternatively, it can be set by performing measurements using samples extracted from a product group and averaging the measurement results of multiple samples. If the reference value can be defined mathematically, it may be set using a mathematical formula.
[0186] The flowchart shown in FIG. 14 illustrates an example in which writing is performed each time a measurement is performed, and measurement and writing are repeated. However, this is not a limitation. Measurements may be performed under multiple current conditions, and after the multiple measurements are completed, the amplitude and phase calculated based on each of the multiple measurements may be written to the table. For example, steps S12 and S13 shown in FIG. 14 may be repeated while changing the current condition, and then steps S14 and S15 may be executed. For example, when measuring a four-pole motor rotating at 600 rpm, the measurement can be performed in 0.1 seconds per mechanical revolution and 0.025 seconds per electrical revolution. Even if measurements are performed for 100 different current conditions, the measurement time is 2.5 seconds. After all measurements are completed, calculations are performed based on each measurement, and the amplitudes based on each calculation result are collectively reflected in the torque amplitude table 210Tbl. By performing writing once for multiple measurements, it is expected to shorten manufacturing lead time and improve productivity compared to writing for each measurement. In the above example, the correction current is defined using a table of amplitude and phase, i.e., a function of the rotation angle of a sine wave. However, this is not limiting. For example, the correction current may be defined using a table that associates the rotation angle with the current value corresponding to that rotation angle. In this case, the same effect can be obtained.
[0187] FIG. 15 schematically illustrates the hardware configuration of the controller 6. As illustrated in FIG. 15, the controller 6 includes an input circuit 60, a CPU 61, a ROM 62, a ROM 63, and an output circuit 64 as its hardware components. These components are connected via a bus. The input circuit 60 is connected to various sensors, switches, command values, and communication signals with the correction current correction unit 203. The input circuit 60 includes an A / D converter and the like that converts output signals from the sensors, switches, etc. into digital signals and inputs them to the CPU 61. The output circuit 64 is connected to electrical loads, such as a gate drive circuit that drives the switching elements in the inverter 5 on and off. The output circuit 64 includes a drive circuit and the like that outputs control signals generated by the CPU 61 to the electrical loads. The CPU 61 is an arithmetic processing unit. The RAM 62 is a storage medium configured to be able to read and write data from and to the CPU 61. The ROM 63 is a storage medium configured to be able to read and write data from the CPU 61. A program for implementing the functions of the controller 6 is stored in the ROM 63. The CPU 61 executes the software (program) and implements the functions of the controller 6 by cooperating with the RAM 62, the input circuit 60, the output circuit 64, and other hardware included in the motor control device 100. Various information used to implement the functions of the controller 6, such as inductance setting data, the resistance value R of the winding, the order N, the inductance L, the torque amplitude table 210Tbl, the torque phase table 211Tbl, the disturbance suppression amplitude table 220Tbl, and the disturbance suppression phase table 221Tbl, is stored in the ROM 63 or the like and is used when the software (program) is executed. Table data such as the torque amplitude table 210Tbl, the torque phase table 211Tbl, the disturbance suppression amplitude table 220Tbl, and the disturbance suppression phase table 221Tbl is stored in the RAM 62 or the like and is used when the software (program) is executed.
[0188] As shown in Fig. 12, the correction current modification unit 203 writes the amplitude and phase calculated using the measurement results and the like to the RAM 62. As a result, tables such as the torque amplitude table 210Tbl, the torque phase table 211Tbl, the disturbance suppression amplitude table 220Tbl, and the disturbance suppression phase table 221Tbl are updated, and tables corresponding to the characteristics of the motor 1 are generated. Thereafter, when the motor control device 100 controls the motor 1, the cancellation calculator 20 references the table data stored in the RAM 62, and the motor 1 is driven by control logic that adds the cancellation voltage command value to the fundamental wave command value, as shown in Fig. 1. This makes it possible to suppress torque ripple.
[0189] As described above, in the present disclosure, the values of amplitude, phase, and the like stored in the table can be rewritten using the calculation results calculated by the correction current correction unit 203 based on actual measurement results. This makes it possible to calculate a cancellation voltage command value according to the characteristics of the motor 1. Therefore, variations in product characteristics can be corrected, and torque ripple can be accurately suppressed. This eliminates the need to manage component variations more than necessary, thereby improving productivity. Furthermore, in the present disclosure, a generator 200 is provided as a separate device from the motor control device 100, and the correction current correction unit 203 of the generator 200 performs calculations and rewrites the table data in the RAM 62 of the motor control device 100. Therefore, the motor 1 (the product) or the CPU 61 of the motor control device 100 does not need to perform calculations such as calculations for correction currents according to the characteristics of the motor 1. This reduces the processing load of the motor control device 100, suppresses heat generation in the motor control device 100, and contributes to the miniaturization and cost reduction of the motor 1.
[0190] If the motor 1 or the motor control device 100 includes a torque detection function (hereinafter referred to as an internal torque detector), the torque detection unit 201 may be omitted from the generator 200. In this case, the generator 200 acquires a measurement value detected by the internal torque detector and calculates the amplitude and phase of the correction current using the acquired measurement value. This achieves a similar effect. Alternatively, the correction current correction unit 203 may calculate the correction current, etc., using both the torque measurement value detected by the internal torque detector and the torque measurement value detected by the torque detection unit 201 of the generator 200. In this case, for example, the correction current correction unit 203 compares the two measurements, obtains the difference between them as a coefficient, and changes the values of the detection parameters, etc., of the internal torque detector. Generally, sensors built into products are required to be inexpensive. For this reason, internal torque detectors with excellent resolution and responsiveness may not necessarily be used, and some may have significant individual variations. Calibrating such internal torque detectors one by one would result in reduced productivity and increased costs. On the other hand, even if a sensor with high resolution and responsiveness is selected for the torque generating unit 202 provided in a generating device 200 separate from the motor 1 or motor control device 100, the cost per product can be kept low. Periodic calibration is also possible. For this reason, the sensor provided in the torque detecting unit 201 is often more accurate than the built-in torque detector. By changing the values of the detection parameters and the like in the built-in torque detector based on the torque measurement value measured by the correction current correcting unit 203, it is possible to calibrate an inexpensive built-in torque detector.
[0191] The cycle at which the generation device 200 performs calculations may be shorter than that of the motor control device 100. By reducing the cycle at which the generation device 200 performs calculations, the amplitude and phase can be measured with higher accuracy. This makes it possible to improve the accuracy of estimating the torque ripple of the product. Because there is no need to change the cycle at which the motor control device 100 performs calculations, the motor control device 100 can be used as is.
[0192] Furthermore, after the correction current correction unit 203 rewrites the table, measurement may be performed again using the rewritten table. By performing measurement again, the accuracy of the information stored in the table can be improved, and defective products caused by calculation bugs or the like can be prevented from being released onto the market.
[0193] FIG. 16 shows the flow of the process by which the generator 200 updates the tables for suppressing the effects of disturbances. The tables for suppressing the effects of disturbances are a disturbance suppression amplitude table 220Tbl and a disturbance suppression phase table 221Tbl. As shown in FIG. 16, first, the motor fixing unit 206 fixes the motor 1 to the generator 200 (step S20). Next, the motor 1 and the generator 200 are connected via the connecting means 204 and 205 (step S21). Next, the correction current correcting unit 203 rotates the rotor under certain current conditions (step S22). The correction current correcting unit 203 notifies the motor control device 100 of a torque command and drives the motor 1 under certain current conditions, for example, Id = Id1 and Iq = Iq1. The correction current correcting unit 203 also notifies the torque generating unit 202 of a constant speed command value ωref to generate torque at a constant speed. The speed command value ωref here is preferably set in a high-speed range where current pulsation due to disturbances becomes large. Measuring the current pulsation due to disturbances in a high-speed range improves measurement accuracy for suppressing the effects of disturbances. However, this is not a required requirement in the present disclosure. In cases where productivity is prioritized, the current pulsation due to disturbances may be measured when measuring torque ripple. The torque detection unit 201 measures the current pulsation due to disturbances and measures the amplitude and phase of a sine wave representing the current pulsation waveform due to the disturbance (step S23). The torque detection unit 201 calculates the amplitude and phase at a desired frequency, for example, by frequency analysis of the measured waveform. The correction current correction unit 203 calculates the amplitude and phase of the correction current based on the measurement results (step S24). The correction current correction unit 203 rewrites the amplitude in the disturbance suppression amplitude table 220Tbl and the phase in the disturbance suppression phase table 221Tbl based on the calculated correction current (step S25).
[0194] As described above, the correction current correction unit 203 may calculate the amplitude and phase under unmeasured current conditions by comparing them with predetermined numerical values using equations (1-28) and (1-29), for example.
[0195] Furthermore, although the above example illustrates a case where torque is measured as the measurement object, the measurement object is not limited to this. The measurement object may be any physical quantity that is correlated with torque ripple as long as it can measure at least torque ripple. Examples of physical quantities that are correlated with torque ripple include inductance, induced voltage, vibration, and sound. Any physical quantity that is correlated with torque ripple may be measured.
[0196] 1 is an example of an embodiment of the present disclosure, and is not limited to this. For example, the cancellation calculator 20 does not have to include both the torque suppression command value calculator 21 and the disturbance suppression command value calculator 22. The motor control device 100 may be configured to include only the torque suppression command value calculator 21, or only the disturbance suppression command value calculator 22. Furthermore, the motor control device 100 may be configured to add the torque pulsation suppression command value i_cancel to the voltage (fundamental wave command value).
[0197] [Embodiment 2] Here, a description will be given of embodiment 2. This embodiment differs from embodiment 1 in that the generation device 200 measures the induced voltage and the cogging torque.
[0198] FIG. 17 is a flowchart showing the flow of processing performed by the generator according to the second embodiment. FIG. 17 illustrates the flow of processing performed by the generator 200 to update a table for suppressing torque pulsation. As shown in FIG. 17 , first, the motor fixing unit 206 fixes the motor 1 to the generator 200 (step S30). Next, the motor 1 and the generator 200 are connected via the connecting means 204 and 205 (step S31). Next, the correction current correcting unit 203 rotates the rotor in an unloaded state (step S32). The torque detecting unit 201 measures the pulsation of the induced voltage and measures the amplitude and phase of a sine wave representing the pulsation waveform (step S33). Based on the measurement results, the correction current correcting unit 203 calculates the amplitude and phase of the cogging torque (step S34). Based on the amplitude and phase of the cogging torque, the correction current correcting unit 203 calculates the amplitude and phase of the correction current (step S35). The correction current modifying unit 203 rewrites the amplitude in the torque amplitude table 210Tbl and the phase in the torque phase table 211Tbl (step S36).
[0199] Here, the torque equation is shown in equation (2-1). T is torque. Pm is a constant. Φ is the magnetic flux of motor 1. Ld is the d-axis inductance. Lq is the q-axis inductance. Id is the d-axis motor current. Iq is the q-axis motor current.
[0200] T=Pm・Φ・Iq+Pm・(Ld−Lq)・Id・Iq…Formula (2-1)
[0201] As shown in equation (2-1), excluding the current value, torque T is generated by magnetic flux Φ and the difference between d-axis inductance Ld and q-axis inductance Lq. Magnetic flux Φ can be calculated from the induced voltage, and the difference between d-axis inductance Ld and q-axis inductance Lq appears as cogging torque. Therefore, by measuring these two, the characteristics of motor 1 when no current is applied can be obtained.
[0202] When torque ripple is calculated mathematically using equation (2-1), it becomes difficult to accurately predict torque ripple if the estimated value and the actual measured value of the difference between magnetic flux Φ and the difference between d-axis inductance Ld and q-axis inductance Lq differ. In this case, the effect of the correction current for suppressing torque ripple is reduced. Furthermore, because equation (2-1) is also used when calculating the current command value from the torque command, this can cause deviations in the output torque even if the calculated current value is input.
[0203] Although this type of measurement method cannot directly measure the state when current is applied, it is possible to suppress variations when current is applied by at least correcting errors in the estimated value when there is no load.
[0204] This theory will be explained using Figures 18 to 21. Figures 18 to 22 are diagrams for explaining the processing performed by the generating device according to the second embodiment. Figure 18 schematically shows the relationship between the d-axis motor current Id and the magnetic flux Φ. When Id = 0, (1) "estimation error due to magnetic flux variation under no load" occurs. This variation is caused, for example, by variations in the average value of the air gap between the rotor and stator or variations in the magnetomotive force of the magnet. Next, in control known as field-weakening current, when a negative current value is applied to the d-axis motor current Id, the magnetic flux Φ decreases. Variations also occur in the slope of this decrease. This variation in the slope causes (2) "estimation error due to variations in the slope when current is applied." For example, variations in the characteristics of the B-H curve of the magnet cause variations in this slope, which is a factor in the estimation error. The estimation error when a field-weakening current is applied is (1) + (2).
[0205] FIG. 19 shows a schematic diagram of the relationship between the d-axis motor current Id, which is obtained by correcting the magnetic flux Φ under no-load conditions based on the measured value, and the magnetic flux Φ. The correction can cancel (1), the "estimation error due to variations in magnetic flux under no-load conditions." As a result, the estimation error when a current is applied is reduced to (2). Therefore, the estimation error can be reduced even when a current is applied.
[0206] FIG. 20 schematically illustrates the d-axis motor current Id and the difference Ld-Lq between the d-axis inductance Ld and the q-axis inductance Lq. Focusing on Id = 0, (1) "estimation error due to variations in inductance under no load" occurs. This variation is caused by variations in the permeability of the electromagnetic steel sheets used in the stator and variations in the deterioration of permeability due to stress applied to the electromagnetic steel sheets by shrink fitting, etc. Next, in control known as field-weakening current, when a negative current value is applied to the d-axis motor current Id, the inductance difference Ld-Lq changes. Unlike the magnetic flux Φ, the decrease does not necessarily occur uniformly, but here we will explain the case where the decrease occurs uniformly. The slope of this decrease also varies. This variation in slope results in (2) "estimation error due to variations in the slope when current is applied." For example, variations in the saturation magnetic flux density of the electromagnetic steel sheets in the stator cause variations in this slope, which becomes a factor in generating estimation errors. The estimation error when a field-weakening current is applied is (1) + (2).
[0207] FIG. 21 shows a schematic diagram of the relationship between the d-axis motor current Id, which is the inductance difference Ld-Lq corrected based on the measured value when no load is present, and the inductance difference Ld-Lq. The correction cancels out (1), the "estimation error due to variations in inductance when no load is present." This reduces the estimation error when current is applied to (2). Therefore, the estimation error can be reduced even when current is applied.
[0208] [Third Embodiment] Here, a third embodiment will be described. This embodiment differs from the first and second embodiments in that the generating device 200 measures a physical quantity that is correlated with torque ripple. Examples of physical quantities that are correlated with torque ripple include inductance, induced voltage, vibration, and sound. For example, taking vibration as an example, the larger the torque ripple, the larger the vibration. Therefore, by comparing a previously prepared reference value of vibration acceleration with the actually measured value of vibration, it is possible to indirectly estimate the magnitude of torque ripple. Below, an example will be described in which vibration is used as a physical quantity that is correlated with torque ripple.
[0209] For example, the reference value of the vibration acceleration of the motor 1 is set as a_ref, and the measured value of the vibration acceleration of the individual motor 1 is set as a_mes. The coefficient γ_a can be calculated as shown in the following equation (3-1).
[0210] γ_a=a_mes / a_ref... Formula (3-1)
[0211] For example, a reference amplitude value is stored in the torque amplitude table 210Tbl. The reference amplitude value is uniformly multiplied by a coefficient γ_a calculated based on the vibration acceleration value measured for the motor 1. For example, if the vibration acceleration is 1.1 times the reference value, the coefficient γ_a is 1.1. In this case, the acceleration in the torque amplitude table 210Tbl is uniformly multiplied by 1.1. The reference value for vibration acceleration can be set, for example, based on the vibration acceleration of a specific individual extracted from a certain product. For that individual, the amplitude value in the torque amplitude table 210Tbl is calculated and used as the reference amplitude value. Then, the coefficient γ_a is calculated for each individual motor 1 using equation (3-1). The torque amplitude table 210Tbl for the specific individual is uniformly multiplied by the coefficient γ_a for each individual motor 1 to generate a table that reflects the characteristics of that motor 1.
[0212] FIG. 22 is a flowchart showing the flow of processing performed by the generating device according to the third embodiment. FIG. 22 illustrates the flow of processing performed by the generating device 200 to update a table for suppressing torque pulsation by measuring a physical quantity correlated with torque ripple. As shown in FIG. 22 , first, the motor fixing unit 206 fixes the motor 1 to the generating device 200 (step S40). Next, the motor 1 and the generating device 200 are connected via the connecting means 204 and 205 (step S41). Next, the correction current correcting unit 203 rotates the rotor under certain current conditions (step S42). A physical quantity detecting unit (not shown) measures the pulsation of the physical quantity correlated with torque ripple and measures the amplitude and phase of a sine wave representing the pulsation waveform (step S43). Any measuring device, including a microphone or acceleration sensor, can be used as the physical quantity detecting unit. The correction current correcting unit 203 calculates the amplitude and phase of the correction current based on the measurement results (step S44). The correction current modifying unit 203 rewrites the amplitude in the torque amplitude table 210Tbl and the phase in the torque phase table 211Tbl, which are tables, using the amplitude and phase of the correction current (step S45).
[0213] In this way, when measuring vibration, the torque amplitude table 210Tbl can be generated without measuring the torque ripple according to the characteristics of the motor 1. Therefore, there is no need to provide a torque detection unit 201 in the generation device 200. Furthermore, if the vibration is measured when the rotation of the motor 1 is accelerated or decelerated, there is no need to physically connect the torque generation unit 202 and the motor 1. This has the effect of shortening the lead time during manufacturing and improving productivity.
[0214] [Fourth Embodiment] Here, a fourth embodiment will be described. This embodiment differs from the first to third embodiments in that the torque ripple or a physical quantity correlated with the torque ripple is measured in the generating device 200 under measurement conditions in which the rotor temperature is set to an arbitrary temperature different from room temperature.
[0215] It is known that the amount of magnetic flux of a permanent magnet changes with temperature. When the amount of magnetic flux changes, the effects of magnetic saturation and other factors change, resulting in changes in the amplitude and phase of the torque ripple even under the same current conditions. Because the motor 1 generates heat due to losses, it is operated under conditions where the rotor temperature is higher than room temperature on average. Therefore, it is desirable to perform the measurement and rewriting process using the generator 200 under average operating conditions. Meanwhile, in factories where products are manufactured, temperatures are generally maintained at around 20 to 25°C to ensure comfortable work for workers or stable operation of various manufacturing equipment. Therefore, if the measurement and rewriting process using the generator 200 is performed in a factory where products are manufactured, there is a possibility that the measured torque ripple amplitude and phase will differ from those under which the motor 1 is normally driven.
[0216] Therefore, in the fourth embodiment, torque ripple or a physical quantity correlated with torque ripple is measured under measurement conditions in which the rotor temperature is set to an arbitrary temperature different from room temperature.
[0217] FIG. 23 is a flowchart showing the flow of processing performed by the generating device according to the fourth embodiment. FIG. 23 illustrates the flow of processing for performing measurements by setting the rotor temperature to a temperature different from room temperature. As shown in FIG. 23 , first, the motor 1 is fixed to the generating device 200 by the motor fixing unit 206 (step S50). Next, the motor 1 and the generating device 200 are connected via the connecting means 204 and 205 (step S51). Next, the temperature control unit (not shown) changes the rotor temperature (step S52). As described above, since the motor 1 is often driven at a temperature higher than room temperature, an example of increasing the rotor temperature will be described. However, the temperature may be lowered if the motor is intended for use in a cold climate. The temperature control unit can change the rotor temperature by blowing hot air from the outside. Other methods that can be used include directly applying a current to the motor 1 to increase the temperature via heat from the coil, or applying an AC magnetic field to the rotor. When a temperature detection unit such as a radiation thermometer detects that the target temperature has been reached, the correction current correction unit 203 rotates the rotor under certain current conditions (step S53). The correction current correction unit 203 measures torque ripple or pulsation of a physical quantity correlated with torque ripple, and measures the amplitude and phase of a sine wave representing the pulsation waveform (step S54). The correction current correction unit 203 calculates the amplitude and phase of the correction current based on the measurement results (step S55). The correction current correction unit 203 rewrites the amplitude in a torque amplitude table 210Tbl and the phase in a torque phase table 211Tbl using the amplitude and phase of the correction current (step S56).
[0218] This allows the torque ripple to be measured in an environment close to the average environment in which the motor 1 is used, and the values of amplitude, phase, and the like in the table to be rewritten based on the measurement results. This makes it possible to practically minimize the effects of temperature changes, which has the effect of reducing torque ripple. Note that a sensor does not necessarily have to be used as the temperature detection means. For example, a means for indirectly estimating temperature, such as the rate of change of induced voltage, may also be used. Alternatively, a method may be adopted in which the relationship between heating time and rotor temperature is obtained offline and the rotor temperature is estimated based on the heating time.
[0219] The above describes a method for reducing torque ripple under conditions similar to an average operating environment. However, the present invention is not limited to this. Alternatively, the torque amplitude table 210Tbl, torque phase table 211Tbl, disturbance suppression amplitude table 220Tbl, and disturbance suppression phase table 221Tbl may be generated for each temperature condition. For example, using the torque amplitude table 210Tbl as an example, a torque amplitude table 210Tbl storing amplitude values at 20°C is generated, and a torque amplitude table 210Tbl storing amplitude values at 80°C is generated separately. The motor 1 shown in FIG. 1 may be provided with rotor temperature detection means, which feeds back the rotor temperature and selects a table to be referenced depending on the temperature condition. For example, when the rotor temperature is 50°C or less, the table for 20°C is referenced. On the other hand, when the rotor temperature is greater than 50°C, the table for 80°C is referenced. In this way, selecting the torque amplitude table 210Tbl according to the rotor temperature cancels out the effect of changes in torque ripple due to rotor temperature, thereby reducing torque ripple.
[0220] FIG. 24 is a flowchart showing the flow of processing performed by the generating device according to the fourth embodiment. FIG. 24 illustrates the flow of processing for generating multiple tables according to rotor temperature. As shown in FIG. 24 , first, the motor fixing unit 206 fixes the motor 1 to the generating device 200 (step S60). Next, the motor 1 and the generating device 200 are connected via the connecting means 204 and 205 (step S61). Next, the correction current correcting unit 203 rotates the rotor under certain current conditions (step S62). The correction current correcting unit 203 measures torque ripple or pulsation of a physical quantity correlated with torque ripple, and measures the amplitude and phase of a sine wave representing the pulsation waveform (step S63). Based on the measurement results, the correction current correcting unit 203 calculates the amplitude and phase of the correction current (step S64). Using the amplitude and phase of the correction current, the correction current correcting unit 203 rewrites the amplitude of the torque amplitude table 210Tbl and the phase of the torque phase table 211Tbl (step S65). Next, a temperature control unit (not shown) changes the rotor temperature (step S66). When a temperature detection means such as a radiation thermometer detects that the rotor temperature has reached the target temperature, steps S62 to S65 are carried out (step S67).
[0221] Furthermore, the generating device 200 according to each embodiment can be used as a manufacturing device that manufactures the motor control device 100. In this case, the manufacturing device manufactures the motor control device 100 using the table generation method by the generating device 200. By the manufacturing device manufacturing the motor control device 100 using the table generation method by the generating device 200, "product variation" can be suppressed. The method in which the manufacturing device manufactures the motor control device 100 using the table generation method by the generating device 200 is an example of a "manufacturing method."
[0222] The motor control device 100 described above has an internal computer system. The processing steps described above are stored in the form of a program on a computer-readable recording medium, and the computer reads and executes this program to perform the above processing. Here, a computer-readable recording medium refers to a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like. Alternatively, the computer program may be distributed to a computer via a communication line, and the computer that receives the program may execute the program.
[0223] 100...motor control device, 1...motor, 2...rotational position detector, 3...current detector, 4...DC power supply, 5...inverter, 6...controller, 7...current command value calculator, 8...coordinate converter, 9...current controller, 10...coordinate converter, 11...PWM signal generator, 12...speed calculator, 20...cancellation calculator, 21...torque suppression command value calculator, 22...disturbance suppression command value calculator, 200...generation device (motor control table generation device), 201...torque detection unit, 202...torque generation unit, 203...correction current correction unit (correction command value correction unit), 210Tbl...torque amplitude table (correction table), 211Tbl...torque phase table (correction table), 220Tbl...disturbance suppression amplitude table (correction table), 221Tbl...disturbance suppression phase table (correction table)
Claims
1. 1. A method for generating a correction table in a motor control device including a correction command value calculation unit that calculates a correction command value for suppressing torque ripple of a motor using a correction table in which current conditions are associated with correction indices, the method comprising: A torque generating unit rotates the motor, a torque detection unit performs torque detection to measure a torque ripple including a frequency component equivalent to N times (N is an integer equal to or greater than 1) a fundamental frequency corresponding to an electrical angle of the rotated motor, or a pulsation amount which is a physical quantity correlated with the torque ripple; a correction command value correction unit calculates, for each current condition, a correction index that suppresses the amount of pulsation measured by the torque detection based on a measurement result of the torque detection by the torque detection unit; the correction command value modifying unit writes the modified correction index into the correction table; How to generate motor control tables.
2. The torque detection unit and the correction command value modification unit are provided in a generating device different from the motor control device.
2. The motor control table generating method according to claim 1.
3. the torque detection unit is provided in both the motor control device and a generating device different from the motor control device, The correction command value correction unit calculates the corrected correction index based on the measurement results of the measurements by each of the torque detection units.
2. The motor control table generating method according to claim 1.
4. The torque detection unit detects the torque at a cycle shorter than a cycle at which the correction command value is calculated by the correction command value calculation unit.
4. The motor control table generating method according to claim 2 or 3.
5. Before rotating the motor by the torque generating unit, the motor is fixed to a generating device provided with the torque detecting unit.
2. The motor control table generating method according to claim 1.
6. In the correction table, at least one of the amplitude and the phase of the correction command value is indicated as a correction index, the correction command value correction unit sets a reference value for at least one of the amplitude and the phase as the correction index, and calculates the amplitude and the phase of a sine wave serving as the correction index corresponding to a current condition in the torque detection by comparing the reference value with the pulsation amount measured in the torque detection.
2. The motor control table generating method according to claim 1.
7. In the correction table, the amplitude and phase of the correction command value are shown as correction indexes, the correction command value correction unit sets a combination of currents in the respective axial directions of the two rotation shafts of the motor as current conditions, and calculates an amplitude and a phase as the correction index for each current condition using a matrix indicating the current conditions; 2. The motor control table generating method according to claim 1.
8. In the correction table, the amplitude and phase of the correction command value are shown as correction indexes, the correction command value correction unit sets a combination of currents in the respective axial directions of the two rotation shafts of the motor as current conditions, calculates amplitude and phase as the corrected correction index for each current condition using a matrix indicating the current conditions, and calculates amplitude and phase as the corrected correction index for the current condition not measured by the torque detection by linear interpolation; 2. The motor control table generating method according to claim 1.
9. After the correction command value correction unit writes the corrected correction index into the correction table, the pulsation amount is measured again.
2. The motor control table generating method according to claim 1.
10. The physical quantity is either one or both of an induced voltage and a cogging torque.
2. The motor control table generating method according to claim 1.
11. The physical quantity is sound pressure or vibration acceleration at the outer periphery of the motor.
2. The motor control table generating method according to claim 1.
12. the torque detection unit measures the pulsation amount while changing a rotor temperature of the motor to a temperature different from room temperature.
2. The motor control table generating method according to claim 1.
13. the torque detection unit measures the pulsation amount at at least two rotor temperatures different from each other, the correction command value correction unit generates the correction table into which the correction correction index corresponding to each of the rotor temperatures is written, 13. The motor control table generating method of claim 12.
14. A method for manufacturing a motor control device, using the motor control table generating method according to any one of claims 1 to 3 and claims 5 to 13.
15. A motor control table generating device for generating a correction table in a motor control device including a correction command value calculation unit that calculates a correction command value for suppressing torque ripple of a motor using a correction table in which current conditions and correction indexes are associated with each other, comprising: a torque generating unit that rotates the motor; a torque detection unit that performs torque detection by measuring a torque ripple including a frequency component equivalent to N times (N is an integer equal to or greater than 1) a fundamental frequency corresponding to an electrical angle of the rotated motor, or a pulsation amount that is a physical quantity correlated with the torque ripple; a correction command value correction unit that calculates a corrected correction index for suppressing the pulsation amount measured by the torque detection for each current condition based on a measurement result of the torque detection by the torque detection unit, and writes the corrected correction index into the correction table; A motor control table generating device comprising: