Sensorless detection of load torque for stepper motors and apparatus and method for optimizing drive current for efficient operation

文档序号:1382782 发布日期:2020-08-14 浏览:29次 中文

阅读说明:本技术 用于步进电动机的负载转矩的无传感器检测以及用于优化驱动电流以进行有效操作的装置和方法 (Sensorless detection of load torque for stepper motors and apparatus and method for optimizing drive current for efficient operation ) 是由 B·P·雷迪 A·马拉利 于 2018-11-30 设计创作,主要内容包括:本发明提供了一种用于控制步进电动机中的驱动电流的方法,其包括:测量步进电动机电流;计算步进电动机的负载角度;计算步进电动机的转矩比率;根据转矩比率和步进电动机的最大电流设置生成参考电流;以及根据参考电流设置步进电动机的驱动电流。(The present invention provides a method for controlling a driving current in a stepping motor, comprising: measuring the stepper motor current; calculating a load angle of the stepping motor; calculating a torque ratio of the stepping motor; generating a reference current according to the torque ratio and a maximum current setting of the stepping motor; and setting a drive current of the stepping motor according to the reference current.)

1. A method for controlling a drive current in a stepper motor, comprising:

measuring the stepper motor current;

calculating a load angle of the stepping motor;

calculating a torque ratio of the stepping motor;

generating a reference current according to the calculated torque ratio and a maximum current setting of the stepping motor; and

setting the drive current of the stepping motor according to the generated reference current.

2. The method of claim 1, wherein the load angle is calculated using motor voltage, current, resistance, and inductance.

3. The method of claim 1, wherein calculating the torque ratio of the stepper motor comprises calculating a low pass filtered torque ratio of the stepper motor.

4. A method for operating a stepper motor, comprising:

generating a stepping angle according to the rotating speed and the step number input by the user;

operating the stepper motor through a stepper motor driver using a signal from a pulse width modulator;

measuring a current from a coil in the stepper motor;

converting the measured current into a current in the d-q domain;

calculating a voltage value in the d-q domain from the current in the d-q domain;

converting the voltage in the d-q domain to a voltage value in a fixed domain;

calculating a load angle of the stepping motor;

calculating a torque ratio of the stepping motor;

determining a reference current value according to the calculated torque ratio and a maximum current setting of the stepping motor; and

setting the drive current of the stepping motor according to the determined reference current.

5. The method of claim 4, wherein converting the measured current to a current in the d-q domain comprises converting the measured current to a current in the d-q domain using a park transformation.

6. The method of claim 4, wherein converting the voltage in the d-q domain to a voltage in a time domain comprises converting the voltage in the d-q domain to a voltage in the time domain using an inverse park transform.

7. An apparatus for controlling a stepping motor, the apparatus comprising:

a stepper motor driven by a stepper motor driver circuit;

a step angle generator circuit coupled to a user step input and a user rotational speed input, the step angle generator circuit having an output;

a current sensing and measuring circuit for measuring a current flowing in a coil of the stepping motor;

a park transformation circuit coupled to the current sensing and measurement circuit and the output of the step angle generator circuit to convert the measured current to a current in the d-q domain;

a current controller circuit coupled to the output of the current controller to generate a voltage in the d-q domain from the current in the d-q domain and a reference current in the d-q domain and time domain;

an inverse park transform circuit coupled to the output of the current controller and the output of the step angle generator circuit to transform the voltage in the d-q domain to a voltage in the time domain;

a pulse width modulator circuit driven by the inverse park conversion circuit; and

a reference current generator circuit configured to determine a reference current to set a driving current of the stepping motor according to the rotation speed of the stepping motor, an output of the park transformation circuit, and an output of the current controller circuit, wherein the reference current is fed back to the current controller circuit.

Background

The present invention relates to control of a stepping motor. More particularly, the present invention relates to sensorless detection of load torque for stepper motors and apparatus and methods for optimizing drive current for efficient operation.

The stepper motor is used for position control and is designed to operate in an open loop (no position feedback). Its inherent stepping capability allows for precise positioning without feedback.

Stepper motors typically run at constant current and the current settings need to be tuned according to the load conditions of the application in which the stepper motor is used. The purpose of the current setting is to run the stepper motor as cool as possible while ensuring that no step (slip) is skipped during operation.

In most cases the motor current of the stepper motor is much larger than the actual motor load, i.e. the motor operates with too high a torque reserve. This results in excessive current flowing through the motor windings, resulting in unnecessary heating of the motor. To achieve the optimum current level that provides sufficient torque to avoid slip, multiple attempts based on trial and error are used. Generally, a safety margin is provided in the current setting such that the torque equal to the current setting (i.e., the torque produced by the motor when the current equal to the current setting is flowing through the motor) is sufficiently greater than the load torque (i.e., the torque experienced by the motor from the load) to avoid slippage.

The load torque curve of a stepper motor is not always flat and may have a peak torque in some cases. The current setting used also depends on the motor speed, higher speeds requiring higher currents. If the current is set to compensate for peak load torque, the current may be too high for other load conditions. This results in higher power consumption and reduced efficiency. Also, the choice of motor power rating will depend on the peak load torque curve.

One known way of controlling a stepper motor in an open loop is known as vector control and is shown in fig. 1. The stepping motor 10 is composed of two coils La(12) And Lb(14) These coils are driven by a stepper motor driver 16. Measuring at coil L using conventional current measurement techniquesa(12) And Lb(14) The actual current I flowing inaAnd IbAnd transforms these actual currents from the fixed domain into the calculated currents I in the d-q domain based on the application angle theta using the well-known park transformation as indicated at reference numeral 18dAnd Iq. As is known in the art, the application angle θ is generated by the "step angle" module 20 based on the desired number of steps and the rotational speed presented to the inputs 22 and 24, respectively.

The current controller 26 controls the current I according to the calculated currentdAnd IqCalculating VdAnd VqTo operate. Reference current Iq_refIs always set to 0 and is referenced to the current Id_refBased on the maximum expected load torque value. The voltage V is then calculated by using an inverse park transform at reference numeral 28aAnd VbVoltage V to be applieddAnd VqTransformation into the fixed domain. A Pulse Width Modulation (PWM) module 30 is used to generate drive signals that are applied by the stepper motor driver 16 to a calculated voltage VaAnd Vb. The rotor of the stepper motor moves through the commanded steps at the commanded rotational speed. As indicated above, the "step angle" module 20 generates the application angle θ based on the step size and the spin speed command set by the user. Each step corresponds to an angle of 90 degrees and the rate of change of the angle depends on the rotational speed. The step angle circuit generates an angle θ output by integrating the rotational speed input 24 over time. Integration stops when the angle θ corresponding to the input command step 22 is reached. The relationship between the angle θ and the input command step 22 is given by:

θ=(command_steps*π)/2

at reference numeral 18, the actual motor coil current is transformed into a rotating reference frame labeled d-q using a park transform based on an applied angle θ according to the following equation

Id=Iacosθ+Ibsinθ

Iq=-Iqsinθ+Ib*cosθ

At reference numeral 28, inverse park is used based on angle θ by following the equationConverted to calculate the voltage VaAnd VbVoltage V to be applieddAnd VqVoltage transformation from d-q reference frame into fixed domain

Va=Vdcosθ-Vqsinθ

Vb=Vdsinθ+Vqcosθ

The current controller 26 calculates VdAnd VqTo force the calculation of the current IdAnd IqFollowing a reference current Id_refAnd Iq_ref. A PI controller is a simple and widely used form of controller and is suitable for this purpose.

The PWM module 30 compares the input reference signal with the higher frequency modulator signal and generates a pulse output whose average is equal to the input reference.

The stepper driver 16 steps the coil L based on the signal from the PWM module 26aAnd LbA driving voltage is applied. Finally, the above solution is based on a fixed reference current Id_refTo provide a drive current, the fixed reference current being based on a maximum expected load torque value. Thus, the reference current is not dynamic and results in wasted energy.

Disclosure of Invention

A method for detecting the stepper motor load torque and dynamically adjusting the current to achieve optimal efficiency is presented. The load torque is detected based on the motor voltage, current, resistance, and inductance without using any sensor. The stepper motor current is calculated from the load torque. The proposed method can be implemented as IP in a Field Programmable Gate Array (FPGA).

The present invention improves the efficiency of stepper motor drivers by optimizing the current. By means of the invention, the motor will run cooler due to reduced heat dissipation and the need for forced cooling is reduced or eliminated. This will also reduce the size and cost of the motor used.

Drawings

The invention will be explained in more detail below with reference to embodiments and the accompanying drawings, in which:

FIG. 1 is a block diagram of a prior art method for controlling a stepper motor in an open loop (referred to as vector control);

FIG. 2 is a block diagram illustrating an apparatus for performing sensorless detection of load torque of a stepper motor, and for dynamically adjusting drive current for efficient operation in a vector control system for controlling a stepper motor operating in an open loop, in accordance with the present invention;

FIG. 3 is a block diagram illustrating an exemplary embodiment of a current reference generator block in the apparatus of FIG. 2;

FIG. 4 is a flow chart illustrating an exemplary method for performing sensorless detection of a load torque of a stepper motor, and for dynamically adjusting a drive current for efficient operation of the stepper motor in a vector control system for controlling the stepper motor operating in an open loop, in accordance with the present invention;

FIG. 5A is a graph showing load torque as a function of time; and is

FIG. 5B is a graph illustrating a typical response to motor load torque changes based on calculations set forth in embodiments disclosed herein.

Detailed Description

Those of ordinary skill in the art will realize that the following description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will be readily suggested to those skilled in the art.

Referring now to fig. 2, a block diagram illustrates an apparatus 40 in accordance with the present invention configured to perform sensorless detection of the load torque of a stepper motor and dynamically adjust the drive current for efficient operation in a vector control system for controlling a stepper motor operating in an open loop. Some of the elements depicted in fig. 2 are also present in the system shown in fig. 1. These elements will be referenced in fig. 2 using the same reference numerals used in fig. 1 to identify similar parts thereof.

As in the system depicted in fig. 1, the stepper motor 10 is composed of two coils La(12) And Lb(14) These coils are driven by a stepper motor driver 16. The current in the coil L is measured using conventional current measurement techniques, such as a series resistor or Hall sensora(12) And Lb(14) The actual current I flowing inaAnd IbAnd transforms these actual currents from the fixed domain to the calculated current I in the d-q domain based on the application angle theta using a park transform as indicated at reference numeral 18dAnd Iq. As is known in the art, the application angle θ is generated by the "step angle" module 20 based on the desired number of steps and the desired speed of rotation presented to the inputs 22 and 24, respectively. Step angle module 20 generates an angle θ output by integrating rotational speed input 24 over time. Integration stops when the angle θ corresponding to the input command step 22 is reached. The relationship between the angle θ and the input command step 22 is given by:

θ=(command_steps*π)/2

the current controller 26 calculates VdAnd VqTo regulate the conversion current IdAnd Iq. Reference current Iq_refIs always set to 0 and the reference current is dynamically generated by the reference current generator module 42. The voltage V is then transformed using an inverse park transformation at reference numeral 28dAnd VqConversion into a calculated voltage VaAnd Vb. A Pulse Width Modulation (PWM) module 30 is used to generate drive signals that are applied by the stepper motor driver 16 to a calculated voltage VaAnd Vb. The rotor of the stepper motor moves through the commanded steps at the commanded rotational speed. The "step angle" module 20 generates the application angle θ based on the step size and the spin speed command set by the user. Each step corresponds to an angle of 90 degrees and the rate of change of the angle depends on the rotational speed.

At reference numeral 18, the current I is calculated by using park transformation based on the application angle θ according to the following equationqAnd IdWill be current IaAnd IbTransformation into a rotating reference frame labeled d-q

Id=Iacosθ+Ibsinθ

Iq=-Iasinθ+Ibcosθ

At reference numeral 28, the voltage V is calculated by using an inverse park transform based on the application angle θ according to the following equationaAnd VbVoltage V to be applieddAnd VqVoltage transformed into the fixed domain from the d-q reference frame:

Va=Vdcosθ-Vqsinθ

Vb=Vdsinθ+Vqcosθ

the current controller 26 calculates VdAnd VqTo force a current IdAnd IqFollowing a reference current Id_refAnd Iq_ref. A PI controller is a simple and widely used form of controller and is suitable for this purpose.

The PWM module 30 compares the input reference signal with the higher frequency modulator signal and generates a pulse output whose average is equal to the input reference.

The stepper driver 16 steps the coil L based on the signal from the PWM module 30aAnd LbA driving voltage is applied.

According to the invention, the load angle is calculated based on the measured voltage and current and is used by the reference current generator module 42 to calculate a reference current value. The voltage equation for a stepper motor in the d-q domain is:

Vd=IdR-Iqlw + KNwsin equation (1)

Vq=IqR+IdLNw + Nwcos equation (2)

Wherein:

number of teeth in stepping motor

w is the rotor speed

Resistance of stepping motor coil

Inductance of stepping motor coil

K-back electromotive force constant of stepping motor

Angle of load, i.e. angle between rotor field and stator current

For stepping motor control, IqIs forced to zero, so the above equation can be simplified to:

KNwsin=Vd-Idr equation (3)

KNwcos=Vq-IdLNw equation (4)

The arctangent may be used, by a look-up table, or CORDIC algorithms, in response to the input Id、IqAnd VdThe load angle is found from the above equation, as:

=tan-1(KNwsin/KNwcos) equation (5)

The reference current generator module 42 solves equations (3), (4) and (5) and determines the value of the reference current. The value calculated from the above equation is used to set the output reference current I of the reference current generator module 42drefWhich is fed to the current controller 26 in place of the prior art fixed reference. In an embodiment, all elements of the apparatus 40, except for the stepper motor driver 16 and the stepper motor 10, are implemented in the FPGA 48.

Referring now to fig. 3, a block diagram illustrates an exemplary embodiment of the reference current generator module 42 in the apparatus of fig. 2.

The reference current generator module 42 calculates the reference current IdrefThe value of (c). Equation (3) is implemented in the sine term calculator block 50 and equation (4) is implemented in the cosine term calculator block 52 to find the sine and cosine terms, respectively.

Calculated voltage and current Vd、Id_refAnd the resistance R of the stepping coil are presented to the sine term calculator 50 on lines 54, 56 and 58, respectively. The value R is a constant characteristic of the stepper motor 10 being controlled, and is therefore supplied by a register value set during initial setup or design. Item Vq、Id_refL, N and w are presented to the cosine term calculator 52 on lines 60, 62, 64, 66 and 68, respectively, where L and N are supplied by register values set during initial setup or design, and I isd_refThe output from the reference current generator module 42 is presented as feedback. The values L and N are constant characteristics of the controlled stepping motor 10, and w is the desired rotation speed in FIG. 2A command 24. As will be appreciated by those of ordinary skill in the art, the sine term calculator 50 and cosine term calculator 58 may be readily configured by arithmetic circuits that may be readily implemented in the FPGA 48.

Absolute value blocks 70 and 72 convert any negative sine and cosine values, respectively, to positive values and then use arctangent to find the load angle in arctangent block 74. The load angle output from the anti-normal cut 74 is divided by the amount pi/2 (90 deg.) provided at reference numeral 76 in a dividing block 78 to obtain a ratio of the load torque to the rated motor torque (torque ratio). As will be appreciated by those of ordinary skill in the art, the arctangent calculator 70 can be readily configured by arithmetic circuitry that can be readily implemented in the FPGA 48.

The torque ratio output from the division block 78 is passed through a low pass filter 80 to remove noise. The filtered torque ratio is multiplied at multiplier 82 by the "maximum current" value setting provided at reference numeral 84 to obtain a current reference representing the current required to meet the load torque on line 86. The maximum current value setting at reference numeral 84 is set by the user and depends on the application. According to one embodiment of the invention, the value is set to the rated current of the motor. Since the current controller module 26 in fig. 2 forces the actual current to follow the reference current, the reference current I is usedd_refInstead of fixed I in equations (3) and (4)d

The reference current generator module 42 automatically calculates the current required to meet the current load torque. It can ensure that only dynamically calculated currents in response to the present load are supplied to the motor, rather than driving the motor with maximum current under all load conditions.

Due to the simplicity of the equations involved, the proposed apparatus and method of the present invention is implemented in the FPGA 48 in one embodiment. Those of ordinary skill in the art will recognize that the present invention is not limited to the use of FPGA devices, but is also applicable to microcontroller or DSP solutions.

Referring now to fig. 4, a flowchart illustrates an exemplary method 90 for dynamically calculating a current setting for a stepper motor in a vector control system for controlling a stepper motor operating in an open loop, in accordance with the present invention. The method begins at reference numeral 92.

At reference numeral 94, a step angle is generated from the rotational speed w and the step number input by the user. At reference numeral 96, the stepper motor is operated according to the PWM module 30. At reference numeral 98, the current I is measuredaAnd IbAnd converts it to a value. At reference numeral 100, a park transformation is used to measure the current IaAnd IbIs converted into a value IdAnd Iq. At reference numeral 102, according to the current value IdAnd IqGenerating a voltage value VdAnd Vq. At reference numeral 104, a load angle is calculated. At reference numeral 106, in response to a voltage value VdAnd VqAnd value IdThe torque ratio is calculated. At reference numeral 108, the torque ratio is low pass filtered to remove noise. At reference numeral 110, a reference current value I is calculated by multiplying the filtered torque ratio by the "maximum current" valued_ref. At reference numeral 112, a reference current value I to be calculatedd_refIs provided to the motor current controller (reference numeral 26 in fig. 2). It should be noted that the reference current value Id_refIs also provided to the calculation at reference numeral 104 of the load angle. The method then ends at reference numeral 114. As an example of the operation of the apparatus and method of the present invention, assume that the motor is operating at a load torque of 10% and becomes 50% load torque after a certain duration.

Referring now to FIG. 5A, a graph illustrating load torque as a function of time is shown. Fig. 5B shows the response of the present embodiment to the load torque change at the load torque values of 10% and 50% of fig. 5A.

The graph of fig. 5A shows the case where the motor is started at 10% of the maximum expected load torque. At start-up, as shown in fig. 5B, for the first calculation example, the calculated load angle and current reference will be zero. After start-up, the load angle increases as the step angle calculated in step angle module 20 of fig. 2 increases, and the current reference increases with the delay introduced by the low pass filter, as shown in fig. 5B. The response time can be configured by changing the time constant of the low pass filter.

The stepper motor will not rotate until the current reference is greater than the current required to overcome the load torque. Therefore, the calculated load angle continues to increase. When the current reference value increases to a value higher than a value equal to the load torque, the stepping motor starts to rotate and the load angle starts to decrease, as indicated by reference numeral 120 in fig. 5B. When the percentage of the calculated load angle value is equal to the percentage of the current reference value, the current reference reaches a steady value, which percentage is 31.6% in the case shown in fig. 5A and 5B.

When the load torque undergoes a step change from 10% to 50% as shown by reference numeral 122 in fig. 5A, the load angle begins to increase because the 31.6% current reference is less than the current equal to 50% of the load torque. An increase in the load angle again leads to an increase in the current reference value and to a delay due to the low-pass filter. When the current reference increases by more than 50%, the load angle starts to decrease, as indicated by reference numeral 124 in fig. 5B. When the percentage of the calculated load angle value is equal to the percentage of the current reference value, the current reference reaches a steady value, which percentage is 70.7% with a load torque of 50%, as shown in fig. 5A and 5B.

While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art that the above example is but one of many more possible situations and that many more modifications than mentioned above are possible without departing from the inventive concepts herein. Accordingly, the invention is not limited except as by the spirit of the appended claims.

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:旋转机的控制装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!