A stepping motor driver which drives a stepping motor for position and speed control. The stepping motor driver comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation unit which uses...http://www.google.ca/patents/US6897633?utm_source=gb-gplus-sharePatent US6897633 - Stepping motor driver

A stepping motor driver which drives a stepping motor for position and speed control. The stepping motor driver comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation unit which uses the values corresponding to applied voltages and detected phase current values as outputs of the current sensors to obtain a magnetic pole position estimate. The magnetic pole position estimation unit calculates a magnetic pole position estimate from speed electromotive force estimates or from differences between phase currents at zero speed and detected phase current values.

Images(11)

Claims(19)

1. A stepping motor driver comprising:

a) a current control means which outputs values corresponding to applied voltages;

wherein the magnetic pole position estimation means receives the values corresponding to applied voltages and a detected phase current values as outputs of the current sensors; the inverse function characteristic operation means receives the detected phase current value to perform the motor winding constant inverse function characteristic operation; and based on a difference between output of the inverse function characteristic operation means and the value corresponding to applied voltage, the speed electromotive force estimation means calculates speed electromotive force estimate to obtain a magnetic pole position estimate from the speed electromotive force estimates.

2. The stepping motor driver as claimed in claim 1, wherein the values corresponding to applied voltages are applied voltages.

3. The stepping motor driver as claimed in claim 1, wherein the values corresponding to applied voltages are control voltages.

5. The stepping motor driver as claimed in claim 1, further comprising an input terminal for a position command, wherein the position command and the magnetic pole position estimate are used to control a motor excitation position.

6. The stepping motor driver as claimed in claim 1, wherein the magnetic pole position estimation means obtains the speed electromotive force estimates by discrete value calculation and also calculates the speed electromotive force estimates in accordance with state equations in which the second derivatives of the stepping motor speed electromotive forces are zero.

7. The stepping motor driver as claimed in claim 1, wherein pole placement is made in finite settling time.

8. The stepping motor driver as claimed in claim 1, wherein, regarding the values corresponding to applied voltages and the detected phase current values, coordinate transformation from multi-phase to 2-phase is made to obtain 2-phase equivalent signals and the 2-phase equivalent signals are entered as the values corresponding to applied voltages and the detected phase current values into the magnetic pole position estimation means.

9. A stepping motor driver comprising:

a) a current control means which outputs values corresponding to applied voltages;

wherein the magnetic pole position estimation means receives the values corresponding to applied voltages and detected phase current values as outputs of the current sensors; the motor winding constant characteristic operation means calculates phase current at zero speed from the value corresponding to applied voltage; the difference operation means calculates a difference between the phase current at zero speed and the detected phase current value to obtain a magnetic pole position estimate from the differences.

10. The stepping motor driver as claimed in claim 9, wherein the values corresponding to applied voltages are applied voltages.

11. The stepping motor driver as claimed in claim 9, wherein the values corresponding to applied voltages are control voltages.

13. The stepping motor driver as claimed in claim 9, further comprising an input terminal for a position command, wherein the position command and the magnetic pole position estimate are used to control a motor excitation position.

14. The stepping motor driver as claimed in claim 13, wherein the magnetic pole position estimation means adds a current phase angle with respect to a motor rotation speed as generated by winding time constant to a motor rotation angle which is obtained from the differences, to obtain the magnetic pole position estimate.

15. The stepping motor driver as claimed in claim 14, further comprising:

an input terminal for a position command;

a position error operation means which calculates a difference between the position command and a magnetic pole position estimate as output of the magnetic pole position estimation means; and

a comparison means which detects that the position error exceeds a prescribed value.

16. The stepping motor driver as claimed in claim 15, further comprising a speed command operation means which calculates a speed command from the position command, wherein the magnetic pole position estimation means calculates the phase angle from the speed command.

18. The stepping motor driver as claimed in claim 9, wherein the motor winding constant characteristic operation means each consist of a series circuit having a resistor and a capacitor arranged so as to provide the same time constant as the motor winding constant and the value corresponding to applied voltage is applied to the series circuit to output the result of multiplication of the terminal voltage of the capacitor by a coefficient as an output signal.

19. The stepping motor driver as claimed in claim 9, wherein, regarding the values corresponding to applied voltages and the detected phase current values, coordinate transformation from multi-phase to 2-phase is made to obtain 2-phase equivalent signals and the 2-phase equivalent signals are entered as the values corresponding to applied voltages and the detected phase current values into the magnetic pole position estimation means.

Description

This Nonprovisional application claims priority under 35 U.S.C. § 119(a) on patent application Ser. No(s). 2003-064300 and 2003-076707 filed in JAPAN on Mar. 11, 2003 and Mar. 20, 2003, the entire contents of which are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a stepping motor driver which drives a stepping motor for position and speed control.

2. Description of the Prior Art

A conventional stepping motor driver operates in a position-sensorless closed loop in which the terminal voltage of a motor is detected and compared with a reference voltage to detect the magnetic pole position based on the speed electromotive force of the motor and the excitation of the motor in the magnetic pole position based on the speed electromotive force is changed and the voltage applied to the motor is adjusted according to a position error as a difference between a position command and a magnetic pole position based on the speed electromotive force.

However, since this type of stepping motor driver detects the time of polarity reversal in the speed electromotive force of a motor, the detection resolution is insufficient, for example, when a subtle excitation position variation is needed for microstepping. In addition, a multipolar stepping motor has a high fundamental frequency and as the speed increases a current phase delay due to stepping motor winding inductance becomes larger. Therefore, when the excitation is changed according to the polarity reversal position in the speed electromotive force to adjust the applied voltage according to position error variation, high speed rotation beyond the range of saturation of applied voltage is difficult.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a stepping motor driver which provides high resolution in magnetic pole position detection and enables high speed rotation.

According to one aspect of the present invention, there is provided a stepping motor driver which comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation means which has inverse function characteristic operation means of motor winding constant and speed electromotive force estimation means. Here, the magnetic pole position estimation means receives the values corresponding to applied voltages and a detected phase current values as outputs of the current sensors; the inverse function characteristic operation means receives the detected phase current value to perform the motor winding constant inverse function characteristic operation; and based on a difference between output of the inverse function characteristic operation means and the value corresponding to applied voltage, the speed electromotive force estimation means calculates speed electromotive force estimate to obtain a magnetic pole position estimate from the speed electromotive force estimates.

According to another aspect of the invention, there is provided a stepping motor driver which comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation means which has motor winding constant characteristic operation means and difference operation means. Here, the magnetic pole position estimation means receives the values corresponding to applied voltages and detected phase current values as outputs of the current sensors; the motor winding constant characteristic operation means calculates phase current at zero speed from the value corresponding to applied voltage; the difference operation means calculates a difference between the phase current at zero speed and the detected phase current value to obtain a magnetic pole position estimate from the differences.

These stepping motor drivers make it possible to obtain a magnetic pole position estimate with high resolution at high speed in stepping motor operation so that drive characteristics equivalent to those of a motor with a position sensor can be achieved even in an ordinary stepping motor without a special sensor. Therefore, a stepping motor driver according to the present invention is less likely to cause step-out in a motor than a closed loop control system and thus provides a highly reliable motor drive system.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be more particularly described with reference to the accompanying drawings, in which:

FIG. 1 is a block diagram showing a stepping motor driver according to a first embodiment of the present invention;

FIG. 2 is a block diagram showing the relationship between a stepping motor in the driver shown in FIG. 1 and a magnetic pole position estimation unit;

FIG. 3 is a block diagram showing a position controller in the driver shown in FIG. 1;

FIG. 4 is a block diagram showing a current controller in the driver shown in FIG. 1;

FIG. 5 is a block diagram showing a stepping motor driver according to a second embodiment of the present invention;

FIG. 6 is a block diagram showing the relationship between a stepping motor in the driver shown in FIG. 5 and a magnetic pole position estimation unit;

FIG. 7 is a block diagram showing a position controller in the driver shown in FIG. 5;

FIG. 8 is a block diagram showing a stepping motor driver according to a third embodiment of the present invention;

FIG. 9 is a block diagram showing a magnetic pole position estimation unit in the driver shown in FIG. 8;

FIG. 10 is a block diagram showing a position controller in the driver shown in FIG. 8;

FIG. 11 is a block diagram showing a stepping motor driver according to a fourth embodiment of the present invention; and

FIG. 12 is a block diagram showing a position controller in the driver shown in FIG. 11.

For formulation of a state equation in brushless motor analysis, it is common that the first derivative of a speed electromotive force is zero. However, because transitional change is repeated in a stepping motor, a calculation error may be serious if the first derivatives of speed electromotive forces eα and eβ are zero.

For this reason, in the present invention, a magnetic pole position estimation unit is designed in accordance with a state equation in which the second derivatives of speed electromotive forces eα and eβ are zero. This improves estimation accuracy of the magnetic pole position estimation unit. Shown below are state equations (5) and (6) for the alpha and beta phases of the stepping motor where the second derivatives of speed electromotive forces eα and eβ are zero:
ⅆⅆt[iαeαe.α]=[-RαLα-1Lα0001000][iαeαe.α]+[1Lα00]Vα(5)ⅆⅆt[iβeβe.β]=[-RβLβ-1Lβ0001000][iβeβe.β]+[1Lβ00]Vβ(6)

When speed electromotive forces eα and eβ are estimated in accordance with Equations (5) and (6), magnetic pole position θ of the stepping motor can be estimated in accordance with Equation (7):
θ=tan-1-eαeβ(7)

FIG. 1 shows the structure of a 2-phase hybrid stepping motor according to a first embodiment of the present invention. Referring to FIG. 1, a magnetic pole position estimation unit 50 generates a magnetic pole position estimate θnf in accordance with Equations (5) through (7). Specifically, the magnetic pole position estimation unit 50 receives output (namely detected phase current value iαf) of a current sensor 61 for detection of the alpha phase current of a stepping motor 70, output (namely detected phase current value iβf) of a current sensor 62 for detection of the beta phase current and alpha phase voltage Vα and beta phase voltage Vβ which are applied to the stepping motor 70, and generates a magnetic pole position estimate θnf. A position controller 30 receives position command θ* which has entered a position command input terminal 10 and the magnetic pole position estimate θnf. A current controller 40 receives output of the position controller 30 and current amplitude command i* which has entered the current amplitude command input terminal 20, and outputs voltages Vα and Vβ which are applied to the stepping motor 70.

Next, the process of magnetic pole position estimation is explained in detail referring to FIG. 2. FIG. 2 shows the relationship between the stepping motor 70 and the magnetic pole position estimation unit 50. In the figure, the motor is a 2-phase stepping motor and only one phase (alpha phase) of the motor is illustrated; and only one phase (alpha phase) of the magnetic pole position estimation unit is illustrated in detail and the other phase (beta phase) is illustrated in a simplified form. Since the stepping motor has characteristics similar to those of a permanent magnet synchronous motor as mentioned above, this block diagram is based on the assumption that the analysis method for synchronous motors can be used to grasp and analyze the behavior of the stepping motor.

The stepping motor 70 receives alpha phase voltage Vα from the current controller 40 and generates motor shaft rotational angular speed ωre. Specifically, inside the stepping motor 70, a speed electromotive force eα which is proportional to electromotive force constant 75 (ke) is generated for the motor shaft rotational angular speed ωre and fed back to an adder 71. The adder 71 calculates the difference between the alpha phase voltage Vα and the speed electromotive force eα and adds it to a motor winding constant 72 so that phase current iα flows through an alpha phase winding. The phase current iα is converted into shaft torque T by torque constant 73 (kt). The shaft torque T is converted into motor shaft rotational angular speed ωre by means of a motor mechanical element 74 (approximated to 1/Js in FIG. 2).

In the structure of the stepping motor (alpha phase) shown in FIG. 2, the phase current iα flows through the alpha phase winding and the current sensor 61 can detect the phase current iα.

Next, the position controller 30 is explained in detail. FIG. 3 shows the structure of the position controller 30. The position controller 30 receives position command θ* and magnetic pole position estimate θnf. An adder 31 calculates the difference between position command θ* and magnetic pole position estimate θnf, namely a position error ε and gives the position error ε to a position compensator 32. The position compensator 32 amplifies the position error ε and an adder 33 adds the output of the position compensator 32 to the magnetic pole position estimate θnf to output position control signal λ.

The stepping motor 70 rotates according to position command θ*. When a command is given, a position error ε occurs temporarily. In the structure shown in FIG. 3, when a position error ε occurs, the position control signal λ is magnetic pole position estimate θnf plus an amplified value of position error ε. For example, if the position compensator 32 is a proportional element with 1× gain, the position control signal λ is equal to the position command θ*. Usually, a PI compensator is used for the position compensator 32. In this case, when a position error ε occurs continuously, the position control signal λ increases with time.

Next, the current controller 40 is explained in detail. FIG. 4 shows the structure of the current controller 40. The current controller 40 receives external current amplitude command i* from the current amplitude command input terminal 20, position control signal λ and detected phase current values iαf and iβf and outputs voltages Vα and Vβ. Specifically, an excitation signal generator 41 generates 2-phase alternating currents cos λ and sin λ as reference signals for voltages Vα and Vβ using the position control signal λ as a position signal. Multipliers 42 and 43 generate current commands i*cos λ and i*sin λ by multiplying the 2-phase alternating currents cos λ and sin λ by external current amplitude command i*. Adders 44 and 45 calculate the current difference between current commands i*cos λ and iαf and the current difference between i*sin λ and iβf, respectively. Current compensators 46 and 47 amplify these current differences and add the amplified ones to a PWM (pulse width modulator) 48. The PWM 48 performs pulse-width modulation of output of the current compensator 46, namely control voltage Vacrα to generate inverter drive signal Vgα and also performs pulse width modulation of output of the current compensator 47, namely control voltage Vacrβ to generate inverter drive signal Vgβ. An inverter 49 outputs alpha and beta phase voltages Vα and Vβ according to inverter drive signals Vgα and Vgβ, respectively.

In other words, the current controller 40 controls currents in a way to make the difference between the current command and the phase current small, and also determines the excitation position of the stepping motor 70 according to position control signal λ. This means that the stepping position of the stepping motor 70 and the motor excitation position with rise in the speed can be adjusted using position control signal λ.

The current controller 40 constitutes a current control means, the characteristic operator 54 constitutes an inverse function characteristic operation means, the adder 53 and the smoothing circuit 55 constitute speed electromotive force estimation means, and the magnetic pole position estimation unit 50 constitutes a magnetic pole position estimation means.

When the stepping motor 70 is treated as a permanent magnet synchronous motor, speed electromotive force estimates Eαf and Eβf as estimated values of speed electromotive forces eα and eβ are obtained as follows. The inverse function characteristic operator 54 receives detected phase current values iαf and iβf and carries out characteristic operation of motor winding constant inverse function; and the smoothing circuit 55 smoothes the difference between the output of the inverse function characteristic operator 54 and applied voltages Vα and Vβ. Magnetic pole position estimate θnf is calculated from the speed electromotive force estimates Eαf and Eβf in accordance with Equation (7) and a comparison is made between magnetic pole position estimate θnf and position command θ* to control the excitation timing properly so that step-out is prevented and vibration is reduced in stepping motor operation.

For the magnetic pole position estimation unit 50, the characteristics of the smoothing circuit 55 must be determined. Since the motor shaft rotational angular speed ωre (speed electromotive force fundamental frequency) is high in the stepping motor 70, it is necessary to estimate the magnetic pole position θ at high speed. Therefore, in the present invention, the magnetic pole position estimation unit 50 uses a discrete system to deal with estimation operation and in order to accelerate convergence, pole placement is made in finite settling time.

When Equations (6) and (7) are made discrete, for example, by Euler's method, the gain of the smoothing circuit 55 is expressed by Equation (8):
k1=-2LT,k2=-LT2(8)

where T represents a sampling period L represents a winding inductance (L=Lα=Lβ).

As a consequence, magnetic pole position estimate θnf is obtained with minimized estimation lag. Because continuously changing speed electromotive forces eα and eβ are estimated, the resolution in magnetic pole position estimate θnf is high though it relies on the operation accuracy of the discrete system. Thus, even in a drive system which handles finer angles than the basic resolution of the stepping motor 70, closed-loop operation with magnetic pole position estimate θnf is possible.

Furthermore, the magnetic pole position estimation unit 50, which has the characteristic of finite time settling, reduces time lag in magnetic pole position estimation so that it can not only estimate sinusoidal position change but make an estimation of magnetic pole position θ with less error even when pulse voltage variation is sharp. Therefore, the unit is useful for normal stepping operation with a low resolution.

In addition, since position command θ* and magnetic pole position estimate θnf are used to control the motor excitation position, a current lag caused by a rotation speed rise can be compensated for, permitting high speed rotation of the stepping motor 70.

Inverter drive signals Vgα and Vgβ may be entered into the magnetic pole position estimation unit 50 instead of voltages Vα and Vβ.

Regarding applied voltages Vα and Vβ and detected phase current values iαf and iβf, it is possible that coordinate transformation from multi-phase to 2-phase is made to obtain a 2-phase equivalent signal and the 2-phase equivalent signal is entered as values corresponding to applied voltages and detected phase current values into the magnetic pole position estimation means. Therefore, the present invention can be applied to stepping motors with different phases.

FIG. 5 shows the structure of a 2-phase hybrid stepping motor driver according to a second embodiment of the present invention. In the driver shown in FIG. 5, the current controller 40 is the same as in the driver shown in FIG. 1 and the position controller and magnetic pole position estimation unit are different from those in the driver in FIG. 1.

While the magnetic pole position estimation unit 50 of the driver in FIG. 1 receives voltages Vα and Vβ and detected phase current values iαf and iβf, the magnetic pole position estimation unit 500 of the driver in FIG. 5 receives control voltages Vacrα and Vacrβ and detected phase current values iαf and iβf. The control voltages Vacrα and Vacrβ are proportional to the voltages Vα and Vβ and as shown in FIG. 6, a coefficient multiplier 57 is added inside an alpha phase speed electromotive force estimation section 511. A beta phase speed electromotive force estimation section 512 is structurally the same as the alpha phase speed electromotive force estimation section 511 and its detail is omitted in FIG. 6.

The position controller of the driver in FIG. 1 adds an amplified value of position error ε to magnetic pole position estimate θnf to obtain position control signal λ. On the other hand, the position controller 300 of the driver in FIG. 5 adds an amplified value of position error ε, and magnetic pole position estimate θnf differentiated by the differentiator 34 and multiplied by the coefficient multiplier 35, to magnetic pole position estimate θnf to obtain position control signal λ. This process is intended to adjust the excitation position of the stepping motor 70 in response to change in speed.

Although Equations (9) and (10) express speed electromotive forces like Equations (1) and (2), they redefine speed electromotive forces with a different angle reference for the sake of convenience.

The voltage equations of the alpha and beta phases of the stepping motor are expressed by Equations (11) and (12):
Vα=(Rα+sLα)·iα+eα=Zαiα+eα (11)
Vβ=(Rβ+sLβ)·iβ+eβ=Zβiβ+eβ (12)
where motor winding constant Zα=Rα+sLα, Zβ=Rβ+sLβ.

According to Equations (11) and (12), when the stepping motor is in a zero speed (halt) state, speed electromotive forces eα and eβ are zeros; thus, the relation between applied voltage Vα (Vβ) and phase current iα (iβ) is expressed by Equation (13) (Equation (14)) when the same voltage as expressed by Equation (11) (Equation (12)) is applied:
Vα=(Rα+sLα)·i0α=Zαi0α (13)
Vβ=(Rβ+sLβ)·i0β=Zβi0β (14)

Therefore, magnetic pole position estimate θnf can be calculated from the ratio of alpha and beta phase speed electromotive forces Eαf and Eβf as shown in Equation (19):
θnf=tan−1(Eβf/Eαf)=θre+Φ (19)

Based on the assumption, θre=tan−1 {(i0β−iβ)/(i0α iα)} holds and thus Equation (19) may be transformed into Equation (20):
θnf=tan-1((i0β-iβ)(i0α-iα))+tan-1(ωreL(R-LsIm))≅tan-1((i0β-iβ)(i0α-iα))+tan-1(ωreLR)(20)

Therefore, when phase currents at zero speed i0α and i0β and phase currents iα and iβ in rotation are detected, magnetic pole position estimate θnf can be obtained.

FIG. 8 shows the structure of a stepping motor driver according to a third embodiment of the present invention. Referring to FIG. 8, a magnetic pole position estimation unit 150 receives detected phase current values iαf and iβf, voltages Vα, and Vβ and speed command ω* obtained by differentiation of position command θ* by a differentiator 81 and generates magnetic pole position estimate θnf. A position controller 130 receives position command θ* which has entered a position command input terminal 10, and magnetic pole position estimate θnf. A current controller 40 receives output of a position controller 130 and current amplitude command i* which has entered a current amplitude command input terminal 20, and outputs alpha and beta phase voltages Vα and Vβ to be applied to the stepping motor 70.

FIG. 9 shows the structure of a magnetic pole position estimation unit 150. Coefficient multipliers 151 and 152 respectively receive voltages Vα and Vβ, and motor winding constant characteristic operators 153 and 154 respectively receive output of the coefficient multipliers 151 and 152 to obtain phase currents at zero speed i0α and i0β. Adders 155 and 156 respectively receive detected phase current values iαf and iβf through one of the input terminals and receive phase currents at zero speed i0α and i0β through the other input terminal to obtain differences between phase currents at zero speed i0α and i0β and detected phase current values iαf and iβf (which depend on phase currents iα and iβ). An arctangent operator 157 receives output of the adders 155 and 156 to calculate motor rotation angle θre as represented by the first term of Equation (20). On the other hand, a phase angle operator 158 uses motor speed command ω* to make a calculation of the second term of Equation (20). An adder 159 adds the second term of Equation (20) to the first term of Equation (20), where the first term represents motor rotation speed θre and the second term represents current phase angle Φ with respect to the motor rotation speed as generated by the winding time constant, thus outputting magnetic pole position estimate θnf.

Here, since motor winding constant characteristic operators 153 and 154 are to output phase currents at zero speed i0α and i0β (values proportional to phase currents at zero speed) respectively, they each consist of a series circuit having a resistor and a capacitor arranged so as to provide the same time constant as the motor winding constant, where the terminal voltage of the capacitor is their output. The relation between phase current at zero speed i0α and capacitor terminal voltage Vc is expressed by Equation (21) and therefore the gain of the coefficient multipliers 151 and 152 should be 1/R:
vc=1sCr+1sCVα=11+sCrVα,i0α=VαR+sL=1R(11+sLR)Vα∴i0α=1Rvc(21)

where C represents the capacitance of the capacitor used in the winding constant characteristic operators 153 and 154 and r represents the resistance of the resistor used in the winding constant characteristic operators 153 and 154. Here the constant is determined in a way to satisfy the relation L/R=Cr.

Next, the position controller 130 is explained in detail. FIG. 10 shows the structure of the position controller 130. The position controller 130 receives position command θ* and magnetic pole position estimate θnf. An adder 131 calculates the difference between position command θ* and magnetic pole position estimate θnf, namely a position error ε and a position compensator 132 receives the position error ε. The position compensator 132 amplifies the position error ε. If the amplified position error ε exceeds a reference value θref (for example, 90 degrees of electrical angle), output γ is maintained constant (for example, 90 degrees of electrical angle). An adder 133 adds output γ of the position compensator 132 to the magnetic pole position estimate θnf to output position control signal λ.

In the position controller 130, even if the position error ε exceeds the reference value θref, the motor excitation angle can be maintained constant with respect to magnetic pole position estimate θnf in the step-out limit, because output γ is maintained constant. Hence, the stepping motor can avoid step-out as far as magnetic pole position estimation is possible.

Accordingly, phase currents iα and iβ are detected by the current sensors 61 and 62 and phase currents at zero speed i0α and i0β are outputted by the motor winding constant characteristic operators 153 and 154 as first-order lag elements with a time constant equal to the winding constant. Because the stepping motor at zero speed may be considered as a series circuit with a winding resistance and a winding inductance, the motor current is first-order lag response to the applied voltage, which is determined by the winding constant. Hence, the motor winding constant characteristic operators 153 and 153 correspond to motor models at zero speed and their outputs respectively correspond to phase currents at zero speed i0α and i0β. The adder 155 (156) calculates the difference between phase current iα (iβ) and phase current at zero speed i0α (i0β) and the arctangent operator 157 makes a calculation in accordance with Equation (20) to obtain magnetic pole position estimate θnf. The coefficient multipliers 151 and 152 are elements which adjust a discrepancy between the zero speed state generated by electronic components as motor winding constant characteristic operators 153, 154 (zero speed motor models) and the zero speed state generated by an actual motor winding constant. The second term of Equation (2) can be obtained from speed command ω* as the result of differentiation of position command θ* and the motor winding constant. Therefore, the structure shown in FIG. 8 permits output of magnetic pole position estimate θnf which is calculated in accordance with Equation (20). In addition, since magnetic pole position θ is estimated according to continuously changing phase currents iα and iβ (detected phase current values iαf and iβf), it is possible to obtain magnetic pole position estimate θnf with high resolution.

The first term of Equation (20) expresses an angle proportional to speed electromotive forces eα and eβ and the second term of Equation (20) can also be obtained from an angular frequency as the result of differentiation of the first term of Equation (20) instead of differentiation of position command θ*, and the motor winding constant.

When calculation of Equation (20) is performed in a continuous system, magnetic pole position estimation can be done without a time lag; when it is performed in a discrete system, magnetic pole position estimation can be done with a lag of one sampling period required for speed calculation and calculation by first-order lag elements as motor winding constant characteristic operators. Consequently, the driver according to this embodiment can be applied to high speed rotation in a multi-phase hybrid stepping motor.

Because the motor winding constant characteristic operators 153 and 154 are first-order lag elements, when they each consist of a series circuit with a resistor and a capacitor the time constant of which is equal to that of the stepping motor 70 and voltages Vα and Vβ are applied to the series circuit to output the result of multiplication of the terminal voltage of the capacitor by a coefficient as an output signal, signals equivalent to phase currents at zero speed i0α and i0β can be obtained. Hence, the motor winding constant characteristic operators 153 and 154 are very practical.

Inverter drive signals Vgα and Vgβ may be entered into the magnetic pole position estimation unit 150 instead of voltages Vα and V62 .

Regarding applied voltages Vα and Vβ and detected phase current values iαf and iβf, it is possible that coordinate transformation from multi-phase to 2-phase is made to obtain a 2-phase equivalent signal and the 2-phase equivalent signal is entered as a value corresponding to applied voltage and a detected phase current value into the magnetic pole position estimation means. Therefore, the present invention can be applied to stepping motors with different phases.

FIG. 11 shows the structure of a stepping motor driver according to a fourth embodiment of the present invention. In the driver shown in FIG. 11, the current controller 40 is the same as in the driver shown in FIG. 8 and the position controller and the magnetic pole position estimation unit are different from those in the driver in FIG. 8.

While the magnetic pole position estimation unit 150 of the driver in FIG. 8 receives voltages Vα and Vβ and detected phase current values iαf and iβf, the magnetic pole position estimation unit 1500 of the driver in FIG. 11 receives control voltages Vacrα and Vacrβ and detected phase current values iαf and iβf. The structure of the magnetic pole position estimation unit 1500 is the same as in the driver shown in FIG. 8. However, since the control voltages Vacrα and Vacrβ are proportional to voltages Vα and Vβ, the gain of coefficient multipliers 151 and 152 in the magnetic pole position estimation unit 1500 is different from that in the driver in FIG. 8, namely their gain is 1/R multiplied by a coefficient. As mentioned above, outputs of the inverter 49 are Vα and Vβ and control voltages Vacrα and Vacrβ are proportional to voltages Vα and Vβ. Hence, when control voltages Vacrα and Vacrβ are adjusted by coefficient multipliers 151 and 152 and then applied to the motor winding constant characteristic operators 153 and 154, it is possible to obtain signals equivalent to ones obtained with voltages Vα and Vβ. However, while voltages Vα and Vβ include a dead time voltage to prevent shorting between the upper and lower arms of the inverter 49, control voltages Vacrα and Vacrβ do not include such a dead time voltage; therefore, when control voltages Vacrα and Vacrβ are used, it is desirable to make an adjustment, taking dead time into consideration.

Regarding the position controller, in the driver shown in FIG. 8, position control signal λ is obtained by adding an amplified value of position error ε to magnetic pole position estimate θnf. On the other hand, in the driver shown in FIG. 11, an amplified value of position error ε and magnetic pole position estimate θnf differentiated by a differentiator 134 and multiplied by a coefficient multiplier 135 are added to magnetic pole position estimate θnf in a position controller 1300 to obtain position control signal λ, as shown in FIG. 12. This adjusts the excitation position of the stepping motor in response to speed variation. A comparator 137 compares position error ε with a reference as output of a reference generator 136 and, if the value of ε exceeds the reference, generates an excessive error signal err. The excessive error signal err is used as a signal which interrupts output of the current controller 40 and stops operation of the stepping motor 70.

According to the present invention, an integrated circuit in the form of a microprocessor or the like may be used in calculating discrete values and a compact, inexpensive stepping motor driver can be realized.