Patent ID: 12244251

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Hereinafter, (some) embodiment(s) of the present invention will be described. The embodiment(s) do(es) not limit the invention according to the claims. In addition, not all of the combinations of features described in the embodiments are essential to the solution of the invention.

FIG.1illustrates a configuration of a drive system10according to the present embodiment. The drive system10according to the present embodiment detects the sum of currents flowing through a plurality of motors at a specific phase by a common current sensor. As a result, the drive system10can reduce the number of current sensors as compared with a case where current sensors are individually provided for all phases of each motor.

The drive system10includes a plurality of motors M1and M2, a plurality of current sensors S1to S5(also referred to as a “plurality of sensors S1to S5”), a plurality of rotation angle sensors R1and R2, and a motor drive device100. Each of the plurality of motors M1and M2may be a synchronous motor or a permanent magnet (PM) motor. In the example of this figure, the drive system10includes two motors M1and M2. The motor M1is an example of a “first motor” and has a plurality of phases (also referred to as “first motor phases”). The motor M2is an example of a “second motor” and has a plurality of phases (also referred to as “second motor phases”). In the present embodiment, the plurality of first motor phases are three first motor phases, and the plurality of second motor phases are three second motor phases.

Alternatively, the drive system10may include different numbers of motors and may include different numbers of phases. Each of the motors M1and M2has coils for respective phases connected to each other at a midpoint, and rotates according to an alternating current input to each phase.

Each of the plurality of sensors S1to S5detects a current flowing through each phase of the plurality of motors M1and M2. The plurality of sensors S1to S5include a common sensor S5that detects a total current flowing through a phase pair obtained by selecting one phase from the plurality of first motor phases and one phase from the plurality of second motor phases. In the present embodiment, the number of common sensors is one. The current sensor S5detects a total current iw12flowing through a phase pair (a pair of the W phase of the motor M1and the W phase of the motor M2) obtained by selecting one phase (W phase) from three first motor phases (the U, V, and W phases of the motor M1) and one phase from three second motor phases (the U, V, and W phases of the motor M2).

In addition, the plurality of current sensors include at least one first motor phase sensor that detects each current flowing through each phase not included in the phase pair among the plurality of first motor phases. In the example of this figure, the at least one first motor phase sensor is two first motor phase sensors, and at least one second motor phase sensor is two second motor phase sensors. The drive system10includes the current sensors S1and S2that detect currents iu1and iv1flowing through the U and V phases not included in the phase pair (a pair of W phases of the motors M1and M2) among three phases of the motor M1, respectively. In addition, the drive system10includes the current sensors S3and S4that detect currents iu2and iv2flowing through the U and V phases not included in the phase pair among the three phases of the motor M2, respectively.

In this manner, in the example of this figure, the common current sensor S5is provided for the pair of the W phase of the motors M1and M2, and no current sensor is individually provided. Therefore, the number of current sensors can be reduced as compared with a case where current sensors are individually provided in the W phase of the motor M1and the W phase of the motor M2.

The plurality of rotation angle sensors R1and R2are provided corresponding to the plurality of motors M1and M2, respectively. In the example of this figure, the rotation angle sensor R1detects a rotation angle θ1of the motor M1. The rotation angle sensor R2detects a rotation angle θ2of the motor M2. The rotation angle sensors R1and R2may detect the mechanical angles of the motors M1and M2and output the mechanical angles as the rotation angles θ1and θ2.

The motor drive device100is connected to the plurality of motors M1and M2, the plurality of current sensors S1to S5, and the plurality of rotation angle sensors R1and R2. The motor drive device100drives each phase of each motor according to command values τ1and τ2such as a torque command to each motor input from an external device or the like. The motor drive device100includes a plurality of drive units110-1and110-2(also referred to as a “drive unit110”) and a drive control unit120.

The plurality of drive units110-1and110-2are provided corresponding to the plurality of motors M1and M2, respectively and drive each phase of the corresponding motors. The drive unit110-1is an example of a “first drive unit”, and drives the plurality of first motor phases (U, V, and W phases) included in the first motor M1. The drive unit110-2is an example of a “second drive unit”, and drives the plurality of second motor phases (U, V, and W phases) included in the second motor M2.

The drive control unit120inputs the command values τ1and τ2, the detection values of the currents iu1, iv1, iu2, iv2, and iw12detected by the respective current sensors S1to S5, and the detection values of the rotation angles θ1and θ2detected by the rotation angle sensors R1and R2.

The drive control unit120uses these inputs to control the drive amounts of the drive unit110-1and the drive unit110-2for the U, V, and W phases of the motor M1and the U, V, and W phases of the motor M2. The drive control unit120supplies, to the drive unit110-1, control signals Gu1to Gz1for controlling the upper and lower arms of the U, V, and W phases of the motor M1to control the drive amounts of respective phases of the motor M1. In addition, the drive control unit120supplies, to the drive unit110-2, control signals Gu2to Gz2for controlling the upper and lower arms of the U, V, and W phases of the motor M2to control the drive amounts of respective phases of the motor M2.

In addition, the drive control unit120outputs a control signal SH1to the drive unit110-1, and outputs a control signal SH2to the drive unit110-2. By using the control signals SH1and SH2, the drive control unit120can instruct the corresponding motors M1and M2to perform the winding short-circuit or the winding opening.

FIG.2illustrates configurations of the drive units110-1and110-2and a connection form with the motors M1and M2in the drive system10according to the present embodiment. The drive units110-1and110-2convert a DC voltage supplied from the power supply Vdc provided between the positive and negative DC bus lines into an AC voltage (a three-phase AC voltage in the present embodiment) for driving the motors M1and M2and supply the AC voltage to the motors M1and M2.

The drive unit110-1includes each of the plurality of upper arm-side switching elements u1, v1, and w1and each of the plurality of lower arm-side switching elements x1, y1, and z1corresponding to each phase of the motor M1. Each upper arm-side switching element and each lower arm-side switching element may be a power semiconductor element, and is, as an example, an insulated gate bipolar transistor (IGBT) having a collector and an emitter as main terminals and a gate as a control terminal. Alternatively, each upper arm-side switching element and each lower arm-side switching element may be a MOSFET having a drain and a source as main terminals and a gate as a control terminal.

The main terminals of the upper arm-side switching element u1and the lower arm-side switching element x1are connected in this order in parallel with the power supply Vdc to the DC bus line on the positive side and the DC bus line on the negative side, and a first phase terminal (U-phase terminal) of the motor M1is connected between the upper arm-side switching element u1and the lower arm-side switching element x1. Similarly to the upper arm-side switching element u1and the lower arm-side switching element x1, the main terminals of the upper arm-side switching element v1and the lower arm-side switching element y1are connected to the DC bus lines, the main terminals of the upper arm-side switching element w1and the lower arm-side switching element z1are connected to the DC bus lines, a second phase terminal (V-phase terminal) of the motor M1is connected between the upper arm-side switching element v1and the lower arm-side switching element y1, and a third phase terminal (W-phase terminal) of the motor M1is connected between the upper arm-side switching element w1and the lower arm-side switching element z1.

Each upper arm-side switching element and each lower arm-side switching element may have a freewheel diode reversely connected to a switching element body. Herein, when each upper arm-side switching element and each lower arm-side switching element are MOSFETs, the freewheel diode may be a parasitic diode.

The drive unit110-1includes a short-circuit control unit200-1and a gate driver210-1.

The short-circuit control unit200-1outputs control signals Gu1ato Gz1aobtained by applying, to the control signals Gu1to Gz1supplied from the drive control unit120, the control of the winding short-circuit or the winding opening of the motor M1according to the control signal SH1. When the control signal SH1instructs the winding short-circuit, the gate driver210-1sets the control signals Gu1ato Gw1ato a logic L (low level) and sets the control signals Gx1ato Gz1ato a logic H (high level). As a result, the short-circuit control unit200-1forcibly turns off the upper arm-side switching elements u1to w1and forcibly turns on the lower arm-side switching elements x1to z1to short-circuit all phases of the motor M1via the lower arm-side switching elements x1to z1. Alternatively, during the winding short-circuit, the short-circuit control unit200-1may forcibly turn on the upper arm-side switching elements u1to w1and forcibly turn off the lower arm-side switching elements x1to z1.

When the control signal SH1instructs the winding opening, the short-circuit control unit200-1sets the control signals Gu1ato Gz1ato the logic L. As a result, the gate driver210-1forcibly turns off all the switching elements u1to z1and opens all the phases of the motor M1.

The gate driver210-1outputs control signals Gu1bto Gz1bobtained by amplifying the control signals Gu1ato Gz1a. The control signals Gu1b, Gv1b, and Gw1bare supplied to the control terminals of the upper arm-side switching elements u1, v1, and w1. The control signals Gx1b, Gy1b, and Gz1bare supplied to the control terminals of the lower arm-side switching elements x1, y1, and z1.

The drive unit110-2includes each of the plurality of upper arm-side switching elements u2, v2, and w2and each of the plurality of lower arm-side switching elements x2, y2, and z2corresponding to each phase of the motor M2. Since the switching elements u2to z2are similar to the switching elements u1to z1except that the switching elements u2to z2are used for driving the motor M2, the description thereof will be omitted.

The drive unit110-2includes a short-circuit control unit200-2and a gate driver210-2. Similarly to the short-circuit control unit200-1, the short-circuit control unit200-2outputs control signals Gu2ato Gz2aobtained by applying, to the control signals Gu2to Gz2supplied from the drive control unit120, the control of the winding short-circuit or the winding opening of the motor M2according to the control signal SH2. Similarly to gate driver210-1, the gate driver210-2outputs control signals Gu2bto Gz2bobtained by amplifying the control signals Gu2ato Gz2a. The control signals Gu2b, Gv2b, and Gw2bare supplied to the control terminals of the upper arm-side switching elements u2, v2, and w2. The control signals Gx2b, Gy2b, and Gz2bare supplied to the control terminals of the lower arm-side switching elements x2, y2, and z2.

FIG.3illustrates an example of a structure of the sensor S1according to the present embodiment. The sensor S1is provided on a conductor300that is a wiring connecting the midpoint of the upper arm-side switching element u1and the lower arm-side switching element x1of the drive unit110-1and the U-phase of the motor M1. The sensor S1includes a magnetic core310and a magnetic sensor320.

The magnetic core310is an annular soft magnetic material that surrounds the outer circumference of the conductor300at a specific place of the conductor300. The magnetic core310focuses a spiral magnetic field generated around the conductor300according to the current flowing through the conductor300. The magnetic sensor320is disposed in a gap provided at a specific place on the circumference of the magnetic core310, and outputs, as a current detection value, a detection value corresponding to the magnitude of the magnetic field focused by the magnetic core310. The sensors S2to S4may have functions and configurations similar to those of the sensor S1.

FIG.4illustrates an example of a structure of the sensor S5according to the present embodiment. In the figure, a first conductor400is a wiring that connects the midpoint of the upper arm-side switching element w1and the lower arm-side switching element z1of the drive unit110-1and the W-phase of the motor M1. A second conductor405is a wiring that connects the midpoint of the upper arm-side switching element w2and the lower arm-side switching element z2of the drive unit110-2and the W-phase of the motor M2. The first conductor400and the second conductor405travel substantially in parallel in close proximity at a place where the sensor S5is provided.

The sensor S5includes a magnetic core410and a magnetic sensor420. The magnetic core410is an annular soft magnetic material that surrounds the outer circumference of a set of the first conductor400and the second conductor405. The magnetic core410focuses a spiral magnetic field generated around the first conductor400and the second conductor405according to the sum of currents flowing through the first conductor400and the second conductor405. The magnetic sensor420is disposed in a gap provided at a specific place on the circumference of the magnetic core410, and outputs, as a current detection value, a detection value corresponding to the magnitude of the magnetic field focused by the magnetic core410. As a result, the sensor S5can detect the current iw12(=iw1+iw2), which is the sum of the current iw1flowing into the W phase of the motor M1and the current iw2flowing into the W phase of the motor M2, by using one magnetic core and one magnetic sensor.

FIG.5illustrates a configuration of the drive control unit120according to the present embodiment. The drive control unit120may be realized by causing a CPU such as a microcontroller or a processor for motor control, a computer including the CPU, or the like to execute a motor drive program. Alternatively, the drive control unit120may be realized by a hardware circuit.

In the present embodiment, the drive control unit120identifies a failed sensor for a single failure of the plurality of sensors S1to S5(that is, a failure of any one of the sensors), and enables continuous driving of each of the motors M1and M2by using a current detection value other than the failed sensor. The drive control unit120includes a failure detection unit500, a current vector calculation unit510, a common sensor failure identification unit520, a first sensor group failure diagnosis unit530, a first sensor failure identification unit540, a second sensor failure identification unit550, a plurality of current command calculation units570-1and570-2(also referred to as “current command calculation unit(s)570”), and a plurality of current control units580-1and580-2(also referred to as “current control unit(s)580”).

The failure detection unit500inputs current detection values iu1, iv1, iu2, iv2, and iw12of the plurality of sensors S1to S5. By using these current detection values, the failure detection unit500detects whether any of the plurality of sensors S1to S5has failed. A specific operation of the failure detection unit500will be described below with reference toFIG.6.

The current vector calculation unit510inputs the current detection values iu1, iv1, iu2, iv2, and iw12of the plurality of sensors S1to S5and the rotation angle detection values θ1and θ2of the rotation angle sensors R1and R2. By using these detection values, the current vector calculation unit510calculates a plurality of current vectors used for failure diagnosis of the plurality of sensors S1to S5and a plurality of current vectors used for drive control of the plurality of motors M1and M2.

The common sensor failure identification unit520is connected to the failure detection unit500and the current vector calculation unit510. In response to the detection of the failure in any of the sensors by the failure detection unit500, the common sensor failure identification unit520uses the current vector for failure diagnosis input from the current vector calculation unit510to identify whether the common sensor S5has failed. A specific operation of the common sensor failure identification unit520will be described below with reference toFIG.7.

The first sensor group failure diagnosis unit530is connected to the common sensor failure identification unit520. The first sensor group failure diagnosis unit530inputs the current detection values of the plurality of sensors S1to S5. By using these current detection values, the first sensor group failure diagnosis unit530diagnoses whether any sensor of the first motor phase sensors S1and S2(the sensors of the first sensor group) has failed or whether any sensor of the second motor phase sensors S3and S4(the sensors of the second sensor group) has failed. A specific operation of the first sensor group failure diagnosis unit530will be described below with reference toFIG.9.

The first sensor failure identification unit540is connected to the current vector calculation unit510and the first sensor group failure diagnosis unit530. In response to the diagnosis of the first sensor group failure diagnosis unit530that any of the first motor phase sensors S1and S2has failed, the first sensor failure identification unit540identifies the failed sensor in the first motor phase sensors S1and S2by using the current vector for failure diagnosis input from the current vector calculation unit510. A specific operation of the first sensor failure identification unit540will be described below with reference toFIG.10.

The second sensor failure identification unit550is connected to the current vector calculation unit510and the first sensor group failure diagnosis unit530. In response to the diagnosis of the first sensor group failure diagnosis unit530that any of the second motor phase sensors S3and S4has failed, the second sensor failure identification unit550identifies the failed sensor in the second motor phase sensors S3and S4by using the current vector for failure diagnosis input from the current vector calculation unit510. The specific operation of the second sensor failure identification unit550is similar to the operation of the first sensor failure identification unit540described below with reference toFIG.10.

The plurality of current command calculation units570are provided corresponding to the plurality of motors M1and M2, respectively. The current command calculation unit570-1inputs the rotation angle detection value θ1of the motor M1and the torque command value τ1that specifies the torque for driving the motor M1, and generates a current command value I1t(=(I1td, I1tq)) in a vector form from the rotation angle detection value θ1and the torque command value τ1. The current command calculation unit570-2inputs the rotation angle detection value θ2of the motor M2and the torque command value τ2that specifies the torque for driving the motor M2, and generates a current command value I2t(=(I2td, I2tq)) in a vector form from the rotation angle detection value θ2and the torque command value τ2.

The plurality of current control units580are provided corresponding to the plurality of motors M1and M2, respectively. The current control unit580-1inputs the rotation angle detection value θ1of the motor M1, the current command value I1t(=(I1td, I1tq)) from the current command calculation unit570-1, and a current vector I1(=(I1d, I1q)) which is calculated by the current vector calculation unit510and is a current detection value obtained by converting the phase current detection value of the motor M1into a rotating coordinate system, and generates the drive signals Gu1to Gz1to bring the current vector I1close to (or match) the current command value I1t. The current control unit580-1supplies the generated drive signals Gu1to Gz1to the drive unit110-1.

The current control unit580-2inputs the rotation angle detection value θ2of the motor M2, the current command value I2t(=(I2td, I2tq)) from the current command calculation unit570-2, and a current vector I2(=(I2d, I2q)) which is calculated by the current vector calculation unit510and is a current detection value obtained by converting the phase current detection value of the motor M2into the rotating coordinate system, and generates the drive signals Gu2to Gz2to bring the current vector I2close to (or match) the current command value I2t. The current control unit580-2supplies the generated drive signals Gu2to Gz2to the drive unit110-2.

FIG.6illustrates an operation flow of the failure detection unit500according to the present embodiment. In S600, the failure detection unit500determines whether a total current amount Itotalof flowing into the first motor M1and the second motor M2is about 0, the total current amount being calculated by using the respective current detection values (iw12, iu1, iv1, iu2, and iv2) of the common sensor S5, the first motor phase sensors S1and S2, and the second motor phase sensors S3and S4.

Herein, since each of the motors M1and M2does not have a path for inputting and outputting a current to a terminal other than the terminal of each phase, the sum of the current amounts (negative current amounts in the case of outflow) of flowing into each motor from the terminals of all phases is theoretically 0. Therefore, the total current amount Itotal=iu1+iv1+iu2+iv2+iw12, which are detected by the plurality of sensors S1to S5, of flowing into the plurality of motors M1and M2is theoretically 0. However, since the plurality of sensors S1to S5actually have a measurement error, the total current amount Itotaldoes not necessarily match 0 and has a certain degree of error. In this regard, the failure detection unit500determines whether the total current amount Itotalis within a range (within a range of 0±tolerance Δtotal) of a predetermined error (tolerance) from 0.

In S610, in response to the total current amount Itotalbeing outside the range of the predetermined tolerance from 0 (“Y” in S600), the failure detection unit500detects that any of the sensors has failed. When any sensor of the plurality of sensors S1to S5has failed, the current detection value of the failed sensor is different from the original value, and thus the total current amount Itotaldeviates from 0. Therefore, in response to the total current amount Itotaldeviating from 0 (falling outside the range of the tolerance Δtotalfrom 0), the failure detection unit500can detect that any of the sensors has failed. When the total current amount Itotalis within the range of the tolerance from 0 (“N” in S600), the failure detection unit500advances the processing to S600to continue the failure occurrence monitoring.

According to the failure detection unit500described above, even when current sensors are not provided in all the phases of all the motors, the failure of any of the sensors can be detected by using the current detection value from the common sensor that detects the total current flowing through the phase pair obtained by selecting one phase from each motor. Note that the failure detection unit500may sense the failure in response to the total current amount Itotalinstantaneously deviating from 0. Alternatively, the failure detection unit500may sense the failure in response to the total current amount Itotaldeviating from 0 continuously for a predetermined period (for example, a period less than ½ of the minimum cycle corresponding to the maximum frequency of the phase current). Note that, even when there are two or more common sensors, by using the operation flow illustrated inFIG.6, the failure detection unit500may detect that any of the sensors has failed.

FIG.7illustrates an operation flow of the common sensor failure identification unit520according to the present embodiment. In the operation flow ofFIG.7, the common sensor failure identification unit520identifies the failure of the common sensor S5on the assumption that the plurality of motors M1and M2of the drive system10allow phase currents of substantially the same magnitude (amplitude) to flow (note that the phases may be shifted). Examples of such a drive system10include a system in which the motors M1and M2are the same type of products and are used for rotation of the same shaft (the rotation of left and right wheels of a vehicle or the like), and a system in which the motors M1and M2are the same type of products and are used for rotation of different shafts of the same vehicle or the like.

In S700, by using the control signals SH1and SH2, the common sensor failure identification unit520instructs the drive units110-1and110-2to bring the plurality of motors M1and M2into a winding short-circuit state. In the winding short-circuit state, the motor M1and the motor M2allow phase currents with a difference falling within a predetermined error range to flow, the difference being a difference in magnitude between a first current vector and a second current vector obtained by converting the respective phase currents.

In S710, the common sensor failure identification unit520stands by for a predetermined period. As a result, the common sensor failure identification unit520waits until the phase currents of the motor M1and the motor M2reach a steady state in the winding short-circuit.

In S720, the current vector calculation unit510calculates a magnitude |I1(u1, v1)| of the first current vector by using current detection values iu1and iv1of the first motor phase sensors S1and S2in the winding short-circuit state of the motor M1. In other words, the current vector calculation unit510calculates the first current vector by using the current detection value of each phase, other than the phase in which the common sensor S5is provided, among the plurality of phases of the motor M1, and calculates the magnitude of the first current vector. Note that the notation of I1(u1, v1) means a current vector obtained by converting the phase current of the motor M1into the rotating coordinate system, the phase current being calculated by using the current detection value iu1of the current sensor S1provided in the U phase (u1) of the motor M1and the current detection value iv1of the current sensor S2provided in the V phase (v1) of the motor M1.

The current vector calculation unit510calculates a first current vector I1(u1, v1) by d-q converting a set of iu1, iv1, and iw1of the phase currents of the motor M1. Since a total current flowing into the motor M1is 0, the current vector calculation unit510does not use the W-phase current detection value as iw1=−iu1−iv1in the calculation of the first current vector I1(u1, v1).

Expression (1) is a calculation expression of the first current vector I1(u1, v1) in a case where the motor M1has three phases.

[Mathematical⁢Formula⁢1][I1⁢dI1⁢q]=23[cos⁢θcos⁢(θ-23⁢π)cos⁢(θ+23⁢π)-sin⁢θ-s⁢in⁢(θ-23⁢π)-sin⁡(θ+23⁢π)][iu⁢1iv⁢1iw⁢1](1)(where⁢iw⁢1=-iu⁢1-iv⁢1)

Herein, I1dand I1qare a d-axis component and a q-axis component of the first current vector I1(u1, v1), and θ is a value obtained by converting the rotation angle detection value θ1of the motor M1into an electrical angle.

The current vector calculation unit510calculates the magnitude |I1(u1, v1)| of the first current vector by Expression (2).
[Mathematical Formula 2]
|I1(u1,v1)|=√{square root over (I1d2+I1q2)}  (2)

In S730, similarly to the calculation of the magnitude |I1(u1, v1)| of the first current vector, the current vector calculation unit510calculates a magnitude |I2(u2, v2)| of the second current vector by using the current detection values iu2and iv2of the second motor phase sensors S3and S4in the winding short-circuit state of the motor M2. Expression (3) is a calculation expression of the second current vector I2(u2, v2) in a case where the motor M2has three phases.

[Mathematical⁢Formula⁢3][I2⁢dI2⁢q]=23[cos⁢θcos⁢(θ-23⁢π)cos⁢(θ+23⁢π)-sin⁢θ-s⁢in⁢(θ-23⁢π)-sin⁡(θ+23⁢π)][iu⁢2iv⁢2iw⁢2](3)(where⁢iw⁢2=-iu⁢2-iv⁢2)

Herein, I2dand I2qare a d-axis component and a q-axis component of the second current vector I2(u2, v2), and 0 is a value obtained by converting the rotation angle detection value θ2of the motor M2into an electrical angle.

The current vector calculation unit510calculates the magnitude |I2(u2, v2)| of the second current vector by Expression (4).
[Mathematical Formula 4]
|I2(u2,v2)|=√{square root over (I2d2+I2q2)}  (4)

In S740, the common sensor failure identification unit520determines whether the magnitude (|I1(u1, v1)|) of the first current vector and the magnitude (|I2(u2, v2)|) of the second current vector are substantially equal.

Herein, the current detection values of the sensors S1to S4may include an error. In this regard, the common sensor failure identification unit520may determine whether a difference between the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector is within a predetermined error range (±Δuv). When the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector are substantially equal, the common sensor failure identification unit520advances the processing to S750.

In S750, in response to the difference between the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector being within the predetermined error range (±Δuv), the common sensor failure identification unit520identifies that the common sensor S5has failed. In the operation flow of this figure, it is assumed that the motor M1and the motor M2allow the phase currents of substantially the same magnitude (amplitude) to flow. Assuming a single failure, there is a possibility that only any one of the sensors S1to S4has failed, and thus at least one of the first current vector I1(u1, v1) calculated by using the current detection values of the sensors S1and S2and the second current vector I2(u2, v2) calculated by using the current detection values of the sensors S3and S4is correct. Therefore, when the magnitude of the first current vector I1(u1, v1) and the magnitude of the second current vector I2(u2, v2) are substantially equal, both the first current vector I1(u1, v1) and the second current vector I2(u2, v2) can be regarded as correct that the sensors S1to S4are normal.

In this regard, when the failure detection unit500detects that any sensor of the common sensor S5, at least one of the first motor phase sensors S1and S2, and at least one of the second motor phase sensors S3and S4has failed, the common sensor failure identification unit520identifies that the common sensor S5has failed in S750, releases the winding short-circuit state of each motor, and ends the operation flow ofFIG.7.

When the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector are not substantially equal in S740, the common sensor failure identification unit520advances the processing to S760. In S760, the common sensor failure identification unit520diagnoses that any one of the first motor phase sensors S1and S2and the second motor phase sensors S3and S4has failed.

According to the common sensor failure identification unit520described above, it is possible to identify such a failure of the common current sensor even in the case of providing the common current sensor in a phase pair obtained by selecting one phase from each motor instead of providing individual current sensors for some phases of each motor.

The common sensor failure identification unit520may make the determination in S740by using the first current vector I1(u1, v1) and the second current vector I2(u2, v2) at one time point or at a plurality of time points. In addition, the common sensor failure identification unit520may make the determination in S740by using an average value of the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector in a predetermined period.

In this operation flow, the common sensor failure identification unit520determines the presence or absence of a failure in the common sensor S5by using a comparison result between the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector. Thus, the directions of the first current vector I1(u1, v1) and the second current vector I2(u2, v2) do not affect the determination. Therefore, the current vector calculation unit510may set θ in Expressions (1) and (3) to a predetermined fixed value (for example, 0°) instead of the value based on the rotation angle detection values θ1and θ2by the rotation angle sensors R1and R2.

FIG.8illustrates an example of the waveform of the phase current flowing through the motors M1and M2. During the normal operation, each drive unit110supplies a phase current to each phase of each motor to drive each motor. When the state is switched to the winding short-circuit state in S700ofFIG.7, each drive unit110stops driving each motor. The phase current of each motor changes transiently for a while after the winding short-circuit state. In S710, the common sensor failure identification unit520stands by for a period sufficient for the phase current to be in a steady state after the transient change in the phase current ends. As a result, in S740, the common sensor failure identification unit520can accurately compare the magnitude |I1(u1, v1)| of the first current vector and the magnitude |I2(u2, v2)| of the second current vector.

FIG.9illustrates an operation flow of the first sensor group failure diagnosis unit530according to the present embodiment. The first sensor group failure diagnosis unit530may execute the operation flow of this figure in response to the diagnosis in the operation flow ofFIG.7that any one of the first motor phase sensors S1and S2and the second motor phase sensors S3and S4has failed.

In S900, the first sensor group failure diagnosis unit530brings the plurality of motors M1and M2into the winding short-circuit state by using the control signals SH1and SH2, and stands by until the inductive voltage of the first motor M1becomes equal to or lower than an upper limit value. The first sensor group failure diagnosis unit530may determine that the inductive voltage of the motor M1has become equal to or lower than the upper limit value in response to the rotation speed (the number of rotations per unit time) of the motor M1becoming equal to or lower than a predetermined reference value. Alternatively, the first sensor group failure diagnosis unit530may once switch the motor M1to the winding open state at predetermined intervals, and return the motor M1to the winding short-circuit state when the voltage between any of the phases is equal to or higher than the upper limit value, thereby standing by until the inductive voltage of the motor M1becomes equal to or lower than the upper limit value. The first sensor group failure diagnosis unit530may use a power supply voltage Vdc as the upper limit value.

In S910, the first sensor group failure diagnosis unit530brings the motor M1into the winding open state in the winding short-circuit state of the motor M2. When the motor M1is in the winding open state, no current flows through the plurality of phases of the motor M1. Therefore, in the winding open state of the motor M1, the common sensor S5can detect the current iw2flowing through the W phase of the motor M2.

In S920, in a state where the plurality of phases of the motor M1are opened, the first sensor group failure diagnosis unit530calculates the total current amount (=iu2+iv2+iw2) of flowing into the motor M2by using the respective current detection values iu2, iv2, and iw12(=iw2) of the common sensor S5and the second motor phase sensors S3and S4. The first sensor group failure diagnosis unit530determines whether the total current amount of flowing into the motor M2is substantially 0. In response to the total current amount of flowing into the motor M2being within a predetermined error range from 0, the first sensor group failure diagnosis unit530may determine that the total current amount of flowing into the motor M2is substantially 0.

In S930, in response to the total current amount of flowing into the motor M2being substantially 0 (“Y” in S920), the first sensor group failure diagnosis unit530diagnoses that each of the second motor phase sensors S3and S4and the common sensor S5is normal. In this case, since the failure of any one of the sensors S1to S5has been detected, the first sensor group failure diagnosis unit530diagnoses that any sensor of the first motor phase sensors S1and S2has failed. In S940, in response to the total current amount of flowing into the motor M2not being substantially 0 (“N” in S920), the first sensor group failure diagnosis unit530diagnoses that each of the first motor phase sensors S1and S2is normal. In this case, since the failure of any one of the sensors S1to S5has been detected, the first sensor group failure diagnosis unit530diagnoses that any one of the sensors S3to S5has failed. Herein, since it is diagnosed in S760ofFIG.7that any one of the sensors S1to S4has failed, the first sensor group failure diagnosis unit530diagnoses that any one of the second motor phase sensors S3and S4has failed.

According to the first sensor group failure diagnosis unit530described above, the motor M1is brought into the winding open state, so that the phase current of only the motor M2can be measured by using the common sensor S5. As a result, the first sensor group failure diagnosis unit530can determine the presence or absence of a failure in the sensors S3to S5used to calculate the total current amount of flowing into the motor M2. As a result, the first sensor group failure diagnosis unit530can diagnose whether any one of the first motor phase sensors S1and S2that measure only the phase current of the motor M1has failed.

In the operation flow ofFIG.9, it is not assumed that the plurality of motors M1and M2of the drive system10allow the phase currents of substantially the same magnitude (amplitude) to flow. Therefore, for example, even when each of the plurality of motors M1and M2independently drives a different shaft, using this operation flow, the first sensor group failure diagnosis unit530can diagnose whether any one of the first motor phase sensors S1and S2that measure only the phase current of the motor M1has failed.

In addition, even when there are two or more common sensors, by using the operation flow illustrated inFIG.9, the first sensor group failure diagnosis unit530may diagnose which group of sensor among at least one first motor phase sensor, at least one second motor phase sensor, and the two or more common sensors has failed.

FIG.10illustrates an operation flow of the first sensor failure identification unit540according to the present embodiment. The first sensor failure identification unit540may execute the operation flow of this figure in response to the diagnosis in the operation flow ofFIG.9that any one sensor of the first motor phase sensors S1and S2has failed. In the operation flow ofFIG.10, similarly to the operation flow ofFIG.7, the first sensor failure identification unit540identifies which of the first motor phase sensors S1and S2has failed, on the assumption that the plurality of motors M1and M2of the drive system10allow phase currents of substantially the same magnitude (amplitude) to flow (note that the phases may be shifted).

In S1000, by using the control signals SH1and SH2, the first sensor failure identification unit540instructs the drive units110-1and110-2to bring the plurality of motors M1and M2into the winding short-circuit state. In the winding short-circuit state, the motor M1and the motor M2allow phase currents with a difference falling within a predetermined error range to flow, the difference being a difference in magnitude between a first current vector and a second current vector obtained by converting the respective phase currents.

In S1010, the first sensor failure identification unit540stands by for a predetermined period. As a result, the first sensor failure identification unit540waits until the phase currents of the motor M1and the motor M2reach the steady state in the winding short-circuit.

In S1020, the first sensor failure identification unit540waits until the timing at which the current flowing through the phase included in the phase pair among the plurality of second motor phases becomes 0 arrives in the winding short-circuit state of the motors M1and M2. In the present embodiment, the first sensor failure identification unit540waits for the timing at which the current flowing through the W phase of the motor M2becomes 0. Herein, since the sum of the currents flowing through the plurality of phases of the motor M2is 0, iu2+iv2+iw2=0.

Therefore, the first sensor failure identification unit540can decide the timing at which the current iw2flowing through the W phase of the motor M2becomes 0 by waiting for the timing at which the sum of the current detection values of the second motor phase sensors S1and S2becomes 0 (for example, iu2+iv2=0 or iu2=−iv2). Note that the first sensor failure identification unit540may detect the timing at which the current iw2flowing through the W phase of the motor M2becomes 0 within a predetermined error range, for example, by detecting the zero-cross timing of iu2+iv2. At the timing when the current iw2becomes 0, the current detection value iw12of the common sensor S5can be regarded as being equal to the current value of the W-phase current iw1of the motor M1.

In S1030, the current vector calculation unit510calculates the first current vectors corresponding to the number of the first motor phase sensors S1and S2by using the current detection value iw12of the common sensor S5and the respective current detection values iu1and iv1of the first motor phase sensors S1and S2at the timing when it is determined that the current flowing through the phase included in the phase pair among the plurality of second motor phases becomes 0. In the present embodiment, the current vector calculation unit510calculates the magnitude |I1(iu1, iw12)| of the first current vector by using the current detection value iw12of the common sensor S5and the current detection value iu1of the first motor phase sensor S1. In addition, the current vector calculation unit510calculates the magnitude |I1(iv1, iw12)| of the first current vector by using the current detection value iw12of the common sensor S5and the current detection value iv1of the first motor phase sensor S2.

Herein, by setting iw1=iw12and iv1=−iu1−iw12in Expression (1), the current vector calculation unit510calculates the first current vector I1(iu1, iw12) without using the current detection value iv1of the sensor S2. In addition, by setting iw1=iw12and iu1=−iv1−iw12in Expression (1), the current vector calculation unit510calculates the first current vector I1(iv1, iw12) without using the current detection value iu1of the sensor S1. The current vector calculation unit510calculates the magnitudes |I1(iu1, iw12)| and |I1(iv1, iw12)| of the first current vector similarly to Expression (2).

In addition, by using the current detection values iu2and iv2of the second motor phase sensors S3and S4, the current vector calculation unit510calculates the magnitude |I2(iu2, iv2)| of the second current vector by Expressions (3) and (4). Herein, since the second motor phase sensors S3and S4is normal, the magnitude |I2(iu2, iv2)| of the second current vector may include some errors, but is a correct value.

In S1040, the first sensor failure identification unit540decides the first current vector having the maximum difference in magnitude from the second current vector I2(iu2, iv2) among the first current vectors (I1(iu1, iw12) and I1(iv1, iw12)) calculated in S1030. In the present embodiment, in the absolute value of the difference between the magnitude |I1(iu1, iw12)| of the first current vector and the magnitude |I2(iu2, iv2)| of the second current vector and the absolute value of the difference between the magnitude |I1(iv1, iw12)| of the first current vector and the magnitude |I2(iu2, iv2)| of the second current vector, the first sensor failure identification unit540decides the first current vector having the maximum absolute value of the difference.

In S1050, the first sensor failure identification unit540identifies that the first motor phase sensor, which has output the current detection value used to calculate the first current vector having the maximum difference in magnitude from the second current vector I2(iu2, iv2) among the first current vectors (I1(iu1, iw12) and I1(iv1, iw12)), has failed. For example, in response to ∥I1(iu1, iw12)|−|I2(iu2, iv2)∥>∥I1(iv1, iw12)|−|I2(iu2, iv2)∥, the first sensor failure identification unit540can identify that the first motor phase sensor S1, which has output the current detection value iu1used to calculate the first current vector I1(iu1, iw12) having the maximum difference in magnitude from the second current vector I2(iu2, iv2), has failed.

Herein, since the second current vector I2(iu2, iv2) can be regarded as correct, the magnitude of the first current vector is to be substantially the same as the magnitude of the second current vector I2(iu2, iv2) on the assumption that the plurality of motors M1and M2allow phase currents of the same magnitude to flow. Therefore, the first sensor failure identification unit540can regard, as an error, the current detection value used to calculate the first current vector having the magnitude deviating from that of the second current vector I2(iu2, iv2). The first sensor failure identification unit540releases the winding short-circuit state of the motors M1and M2.

According to the first sensor failure identification unit540described above, which of the first motor phase sensors S1and S2has failed can be identified by using the current detection value of each of the sensors S1to S5at the timing when it is determined that the current flowing through the phase provided with the common sensor S5in the motor M2becomes 0 in the winding short-circuit state of the motors M1and M2. Similarly to the first sensor failure identification unit540, by using the operation flow similar to that inFIG.10, the second sensor failure identification unit550can identify which of the second motor phase sensors S3and S4has failed, by using the current detection value of each of the sensors S1to S5at the timing when it is determined that the current flowing through the phase provided with the common sensor S5in the motor M1becomes 0 in the winding short-circuit state of the motors M1and M2.

The drive control unit120can detect, by the failure detection unit500, that any one of the sensors S1to S5has failed and identify, by the common sensor failure identification unit520, the first sensor group failure diagnosis unit530, the first sensor failure identification unit540, and the second sensor failure identification unit550, which sensor has failed. Note that the drive control unit120may not include all of the failure detection unit500, the common sensor failure identification unit520, the first sensor group failure diagnosis unit530, the first sensor failure identification unit540, and the second sensor failure identification unit550. The drive control unit120may have an arbitrary combination of some of these, and can identify or narrow down a failed sensor within a range according to the configuration of the drive control unit120.

FIG.11illustrates an operation flow of the current vector calculation unit510, the current command calculation units570-1and570-2, and the current control units580-1and2according to the present embodiment. In S1100, the current vector calculation unit510receives the determination result of the presence or absence of the failure of the common sensor S5from the common sensor failure identification unit520. The current vector calculation unit510receives the determination result of the presence or absence of the failure of each of the first motor phase sensors S1and S2from the first sensor failure identification unit540. The current vector calculation unit510receives the determination result of the presence or absence of the failure of each of the second motor phase sensors S3and S4from the second sensor failure identification unit550.

In response to the detection of the failure in one sensor of the first motor phase sensors S1and S2and the second motor phase sensors S3and S4, by using the current detection values of the other sensors of the common sensor S5, the first motor phase sensors S1to2, and the second motor phase sensors S3and S4, the current vector calculation unit510estimates the current detection value of the one sensor in which the failure is detected. For example, when the failure of the first motor phase sensor S1is detected, the current vector calculation unit510estimates the current detection value iu1of the sensor S1by using the current detection value iw12of the sensor S5, the current detection value iv1of the sensor S2, the current detection value iu2of the sensor S3, and the current detection value iv2of the sensor S4.

Herein, the total current flowing into each of the motors M1and M2is 0, and the total current flowing into all the motors M1and M2is also 0 (iu1+iv1+iu2+iv2+iw12=0). Thus, iu1=−iv1−iu2−iv2−iw12. Therefore, in response to the failure in the sensor S1, the current vector calculation unit510can estimate the current detection value iu1of the sensor S1by using the current detection values iv1, iu2, iv2, and iw12of the other sensors.

Similarly, the current vector calculation unit510can estimate the current detection value iv1of the sensor S2from iv1=−iu1−iu2−iv2−iw12, estimate the current detection value iu2of the sensor S3from iu2=−iv2−iu1−iv1−iw12, and estimate the current detection value iv2of the sensor S4from iv2=−iu2−iu1−iv1−iw12. As a result, in response to the failure in any one of the sensors S1to S4, the current vector calculation unit510can estimate the current detection value of the sensor. Note that even when each of the first motor phase sensor, the second motor phase sensor, and the common sensor has an arbitrary number, similarly to the above, the current vector calculation unit510can estimate the current detection value of any one failed sensor among the first motor phase sensors and the second motor phase sensors.

In S1110, the current vector calculation unit510detects the first current vector I1used for the drive control of the motor M1by using the current detection values of the first motor phase sensors S1and S2or the estimation values (iu1and iv1) of the current detection value and the rotation angle detection value θ1. The current vector calculation unit510may convert the rotation angle detection value θ1into the electrical angle θ and calculate the first current vector I1=(I1d, I1q) by using Expression (1).

In S1120, the current vector calculation unit510detects the second current vector I2used for the drive control of the motor M2by using the current detection values (or estimation values of the current detection values) iu2and iv2of the second motor phase sensors S3and S4and the rotation angle detection value θ2. The current vector calculation unit510may convert the rotation angle detection value θ2into the electrical angle θ, and calculate the second current vector I2=(I2d, I2q) by using Expression (3).

In S1130, the current command calculation unit570-1and the current control unit580-1control the drive of the motor M1by using the first torque command value τ1and the first current vector I1=(I1d, I1q). The current command calculation unit570-1generates a first current command value |1t=(I1td, I1tq) in a vector form from the rotation angle detection value θ1of the motor M1and the torque command value τ1. The current control unit580-1inputs the rotation angle detection value θ1of the motor M1, the first current command value I1t, and the first current vector I1which is the current detection value obtained by converting the phase current detection value of the motor M1into the rotating coordinate system, and generates the drive signals Gu1to Gz1to bring the first current vector I1close to (or match) the current command value I1t.

In S1140, the current command calculation unit570-2and the current control unit580-2control the drive of the motor M2by using the second torque command value τ2and the second current vector I2=(I2d, I2q). The current command calculation unit570-2generates a second current command value I2t=(I2td, I2tq) in a vector form from the rotation angle detection value θ2of the motor M2and the torque command value τ2. The current control unit580-2inputs the rotation angle detection value θ2of the motor M2, the second current command value I2t, and the second current vector I2which is the current detection value obtained by converting the phase current detection value of the motor M2into the rotating coordinate system, and generates the drive signals Gu2to Gz2to bring the second current vector I2close to (or match) the current command value I2t.

As a result, by using the estimation result of the current detection value of the sensor, in which the failure is detected, among the first motor phase sensors S1and S2and the second motor phase sensors S3and S4, the drive control unit120can control the drive amounts of the plurality of drive units110-1and110-2for the plurality of first motor phases and the plurality of second motor phases of the plurality of motors M1and M2. Therefore, even when any one of the plurality of sensors S1to S5has failed, the drive control unit120can continue driving the plurality of motors M1and M2.

Note that the drive control unit120may not have a function of identifying which of the plurality of sensors S1to S5has failed. In this case, the drive control unit120may receive the specification of the failed sensor from the user or another device, estimate the current detection value of the failed sensor, and control the drive amount of the plurality of motors by using the estimated current detection value.

FIG.12illustrates a partial configuration of the drive control unit1220according to a modification of the present embodiment. The drive control unit1220does not include the common sensor failure identification unit520but includes a second sensor group failure diagnosis unit1200in the drive control unit120ofFIG.5. The drive control unit1220detects the presence or absence of the failure of the common sensor S5on the basis of the diagnosis results of the first sensor group failure diagnosis unit530and the second sensor group failure diagnosis unit1200. In this figure, the illustration of the current vector calculation unit510, the current command calculation units570-1and570-2, and the current control units580-1and2is omitted. In addition, in the drive control unit1220, constituent members having the functions and configurations similar to those of the drive control unit120are denoted by the same reference numerals as those inFIG.5, and description thereof is omitted except for differences.

The first sensor group failure diagnosis unit530is similar to the first sensor group failure diagnosis unit530inFIG.5. In the present embodiment, the drive control unit1220does not include the common sensor failure identification unit520, and thus in response to the detection of the failure in any sensor by the failure detection unit500, the first sensor group failure diagnosis unit530executes the operation flow ofFIG.9in a state where the presence or absence of the failure of the common sensor S5is uncertain. As a result, in a state where the plurality of first motor phases of the motor M1are opened, in response to the total current amount of flowing into the motor M2being substantially 0 (outside a predetermined error range from 0) (“Y” in S920), the first sensor group failure diagnosis unit530diagnoses that the second motor phase sensors S3and S4and the common sensor S5are normal (S930). In a state where the plurality of first motor phases of the motor M1are opened, in response to the total current amount of flowing into the motor M2not being substantially 0 (outside the predetermined error range from 0) (“Y” in S920), the first sensor group failure diagnosis unit530diagnoses that any one of the second motor phase sensors S3and S4and the common sensor S5has failed (S930).

Similarly to the first sensor group failure diagnosis unit530, the second sensor group failure diagnosis unit1200brings the motor M1into the winding short-circuit state, and in a state where the plurality of second motor phases of the motor M2are opened, in response to the total current amount of flowing into the motor M1being substantially 0 (within the predetermined error range from 0), the second sensor group failure diagnosis unit diagnoses that the first motor phase sensors S1and S2and the common sensor S5are normal. In a state where the plurality of second motor phases of the motor M2are opened, in response to the total current amount of flowing into the motor M1not being substantially 0 (outside the predetermined error range from 0), the second sensor group failure diagnosis unit1200diagnoses that any one of the first motor phase sensors S1and S2and the common sensor S5has failed.

When it is diagnosed that the second motor phase sensors S3and S4and the common sensor S5are normal and it is diagnosed that any one of the first motor phase sensors S1and S2and the common sensor S5has failed, the current vector calculation unit510, the first sensor failure identification unit540, and the second sensor failure identification unit550in the drive control unit120can determine that any one of the first motor phase sensors S1and S2has failed. In addition, when it is diagnosed that any one of the second motor phase sensors S3and S4and the common sensor S5has failed and any one of the first motor phase sensors S1and S2and the common sensor S5has failed, the current vector calculation unit510, the first sensor failure identification unit540, and the second sensor failure identification unit550in the drive control unit120can determine that the common sensor S5has failed. In addition, when it is diagnosed that any one of the second motor phase sensors S3and S4and the common sensor S5has failed and the first motor phase sensors S1and S2and the common sensor S5are normal, the current vector calculation unit510, the first sensor failure identification unit540, and the second sensor failure identification unit550in the drive control unit120can determine that any one of the second motor phase sensors S3and S4has failed.

According to the second sensor group failure diagnosis unit1200described above, it is possible to determine the presence or absence of the failure of the common sensor S5without including the common sensor failure identification unit520illustrated inFIG.5. Therefore, in the drive system10including the second sensor group failure diagnosis unit1200, without the assumption that the plurality of motors M1and M2allow phase currents of substantially the same magnitude (amplitude) to flow, the presence or absence of the failure of the common sensor S5can be determined, for example, even when the plurality of motors M1and M2independently drive different shafts.

Various embodiments of the present invention may be described with reference to flowcharts and block diagrams, whose blocks may represent (1) steps of processes in which operations are executed or (2) sections of apparatuses responsible for executing operations. Certain steps and sections may be implemented by dedicated circuitry, programmable circuitry supplied with computer-readable instructions stored on computer-readable media, and/or processors supplied with computer-readable instructions stored on computer-readable media. Dedicated circuitry may include digital and/or analog hardware circuits, and may include integrated circuits (IC) and/or discrete circuits. The programmable circuit may include a reconfigurable hardware circuit including logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logical operations, a memory element such as a flip-flop, a register, a field programmable gate array (FPGA) and a programmable logic array (PLA), and the like.

A computer-readable medium may include any tangible device that can store instructions to be executed by a suitable device, and as a result, the computer-readable medium having instructions stored thereon includes an article of manufacture including instructions which can be executed to create means for performing operations specified in the flowcharts or block diagrams. Examples of the computer-readable medium may include an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, and the like. More specific examples of the computer-readable medium may include a floppy (registered trademark) disk, a diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an electrically erasable programmable read-only memory (EEPROM), a static random access memory (SRAM), a compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a Blu-ray (registered trademark) disk, a memory stick, an integrated circuit card, and the like.

The computer-readable instruction may include: an assembler instruction, an instruction-set-architecture (ISA) instruction; a machine instruction; a machine dependent instruction; a microcode; a firmware instruction; state-setting data; or either a source code or an object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk (registered trademark), JAVA (registered trademark), C++, or the like; and a conventional procedural programming language such as a “C” programming language or a similar programming language.

Computer-readable instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatuses, or to a programmable circuit, locally or via a local area network (LAN), wide area network (WAN) such as the Internet, or the like, to execute the computer-readable instructions to create means for performing operations specified in the flowcharts or block diagrams. Examples of the processor include a computer processor, a processing unit, a microprocessor, a digital signal processor, a controller, a microcontroller, and the like.

FIG.13illustrates an example of a computer2200in which a plurality of aspects of the present invention may be embodied in whole or in part. A program installed in the computer2200may cause the computer2200to function as an operation associated with the apparatuses according to the embodiments of the present invention or as one or more sections of the apparatuses, or may cause the operation or the one or more sections to be executed, and/or may cause the computer2200to execute a process according to the embodiments of the present invention or a stage of the process. Such programs may be executed by a CPU2212to cause the computer2200to perform certain operations associated with some or all of the blocks in the flowcharts and block diagrams described in the present specification.

The computer2200according to the present embodiment includes the CPU2212, a RAM2214, a graphics controller2216, and a display device2218, which are mutually connected by a host controller2210. The computer2200also includes input/output units such as a communication interface2222, a hard disk drive2224, a DVD-ROM drive2226, and an IC card drive, which are connected to the host controller2210via an input/output controller2220. The computer also includes legacy input/output units such as a ROM2230and a keyboard2242, which are connected to the input/output controller2220via an input/output chip2240.

The CPU2212operates according to programs stored in the ROM2230and the RAM2214, thereby controlling each unit. The graphics controller2216obtains image data generated by the CPU2212on a frame buffer or the like provided in the RAM2214or in itself, and causes the image data to be displayed on the display device2218.

The communication interface2222communicates with other electronic devices via a network. The hard disk drive2224stores programs and data used by the CPU2212in the computer2200. The DVD-ROM drive2226reads the programs or the data from the DVD-ROM2201, and provides the hard disk drive2224with the programs or the data via the RAM2214. The IC card drive reads the programs and the data from the IC card, and/or writes the programs and the data to the IC card.

The ROM2230stores therein boot programs and the like executed by the computer2200at the time of activation, and/or programs that depend on the hardware of the computer2200. The input/output chip2240may also connect various input/output units to the input/output controller2220via a parallel port, a serial port, a keyboard port, a mouse port, and the like.

The program is provided by a computer-readable medium such as the DVD-ROM2201or the IC card. The program is read from a computer-readable medium, installed in the hard disk drive2224, the RAM2214, or the ROM2230which are also examples of the computer-readable medium, and executed by the CPU2212. The information processing described in these programs is read by the computer2200and provides cooperation between the programs and various types of hardware resources. The apparatus or method may be configured by implementing operations or processing of information according to use of the computer2200.

For example, in a case where communication is performed between the computer2200and an external device, the CPU2212may execute a communication program loaded in the RAM2214and instruct the communication interface2222to perform communication processing on the basis of processing described in the communication program. Under the control of the CPU2212, the communication interface2222reads transmission data stored in a transmission buffer processing area provided in a recording medium such as the RAM2214, the hard disk drive2224, the DVD-ROM2201, or the IC card, transmits the read transmission data to the network, or writes reception data received from the network in a reception buffer processing area or the like provided on the recording medium.

In addition, the CPU2212may cause the RAM2214to read all or a necessary part of a file or database stored in an external recording medium such as the hard disk drive2224, the DVD-ROM drive2226(DVD-ROM2201), the IC card, or the like, and may execute various types of processing on data on the RAM2214. Next, the CPU2212writes back the processed data to the external recording medium.

Various types of information such as various types of programs, data, tables, and databases may be stored in a recording medium and subjected to information processing. The CPU2212may execute various types of processing on the data read from the RAM2214to write back a result to the RAM2214, the processing being described throughout the present disclosure, specified by instruction sequences of the programs, and including various types of operations, information processing, condition determinations, conditional branching, unconditional branching, information retrievals/replacements, or the like. In addition, the CPU2212may search for information in a file, a database, etc., in the recording medium. For example, when a plurality of entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored in the recording medium, the CPU2212may search for an entry matching the condition whose attribute value of the first attribute is designated, from among the plurality of entries, and read the attribute value of the second attribute stored in the entry, thereby obtaining the attribute value of the second attribute associated with the first attribute satisfying the predetermined condition.

The programs or software modules described above may be stored in a computer-readable medium on or near the computer2200. In addition, a recording medium such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable medium, thereby providing a program to the computer2200via the network.

While the embodiments of the present invention have been described, the technical scope of the present invention is not limited to the above-described embodiments. It is apparent to persons skilled in the art that various alterations or improvements can be made to the above-described embodiments. It is also apparent from the description of the claims that the embodiments to which such alterations or improvements are made can be included in the technical scope of the present invention.

The operations, procedures, steps, and stages of each process performed by an apparatus, system, program, and method shown in the claims, specification, or drawings can be performed in any order as long as the order is not indicated by “prior to,” “before,” or the like and as long as the output from a previous process is not used in a later process. Even if the process flow is described using phrases such as “first” or “next” in the claims, specification, or drawings, it does not necessarily mean that the process must be performed in this order.

EXPLANATION OF REFERENCES

10drive system100motor drive device110-1to110-2drive unit120drive control unit200-1to200-2short-circuit control unit210-1to210-2gate driver300conductor310magnetic core320magnetic sensor400first conductor405second conductor410magnetic core420magnetic sensor500failure detection unit510current vector calculation unit520common sensor failure identification unit530first sensor group failure diagnosis unit540first sensor failure identification unit550second sensor failure identification unit570-1to570-2current command calculation unit580-1to580-2current control unit1200second sensor group failure diagnosis unit1220drive control unit2200computer2201DVD-ROM2210host controller2212CPU2214RAM2216graphic controller2218display device2220input/output controller2222communication interface2224hard disk drive2226DVD-ROM drive2230ROM2240input/output chip2242keyboard.