Stepping motor stall detection
By receiving and filtering the load of the motor in the control loop, the difference in the stall detection value is determined, and compared with the scheduled threshold, it solves the problem of difficulty detecting the stall when the stepper motor is at low speed operation. It realizes high sensitivity and accuracy Survive detection.
Patent Information
- Application Number
- CN202410490505.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-25
- Filing Date
- 2024-04-23
- Publication Date
- 2025-01-28
AI Technical Summary
It is difficult to detect stall conditions when stepper motors operate at low speeds, especially when mechanical loads increase, and prior art is difficult to effectively avoid motor stalls.
By receiving the load value associated with the step motor mechanical load in the control circuit, the filter generates the stall detection value, and determines the pace value based on the difference between the two stall detection values. Finally Determine whether the motor is in a stable state.
Achieve reliable detection of stalling incidents at the speed of step motor 4 to 10 times lower than the traditional method, reducing the dependence on the sensor, and improving the sensitivity and accuracy of the motor stall detection.
Smart Images

Figure CN119382550A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to a method and a circuit arrangement for controlling a stepper motor. In particular, the present application relates to a method and a circuit arrangement for controlling a stepper motor having a control loop to detect motor stall. Background Art
[0002] As is well known, in a stepper motor, a magnetic rotor is caused to rotate stepwise through one or more small angles by a controlled rotating electromagnetic field generated by the stator coils of the motor.
[0003] The maximum electrical power that can be driven into a stepper motor may be limited by the physics of: the motor (which defines the maximum current rating); the system supply voltage; and the maximum drive current of the motor drive circuit. Often, stepper motors are oversized so that the maximum current rating is greater than what is required for the stepper motor application.
[0004] Some stepper motors are operated in open loop, i.e. the control system receives no position or load feedback from the stepper motor. The stepper motor is controlled by the driver stage to provide the target current to the motor coils to move the mechanical load. However, open loop operation does not provide any method to avoid motor stalling (which results in loss of steps) caused by errors between the commanded position and the actual rotor position.
[0005] Sensor-based closed-loop systems are known to provide a means of avoiding motor stalling. Such methods are known to receive input from the stepper motor itself using a sensor (e.g., an encoder) that can detect the position of the rotor (which can be compared to a continuously commanded position). Sensor-based closed-loop methods of controlling stepper motors have higher associated implementation costs and design effort than open-loop methods.
[0006] It is desirable to rotate the motor with the smallest possible step angle in order to achieve the highest possible positioning resolution and accuracy as well as a uniform course of the motor torque. For these reasons, instead of the known full-step and half-step operation, a so-called microstep operation can be preferred, in which the current flowing through the motor coils is not only switched on and off, but also increased and decreased in a certain way. In this case, the resolution and uniformity of the microstepping of the stepper motor depends essentially on the number of different current amplitude values with which the motor coils can operate and how accurately these current amplitude values can be maintained. Usually, it is most suitable to excite the motor coils with sine waves and cosine waves, respectively, because in this way the microstep-optimized motor can be rotated very continuously and without jerkiness, and in this way a smooth motor operation can be obtained.
[0007] In order to electrically control stepper motors, in particular in microstepping operation, known chopper methods are used. One chopper method is a voltage-based (i.e. voltage-controlled or voltage-regulated) mode of operation, in which the desired coil current is generated by a voltage applied to the motor coils and is regulated by varying its amount (or its amplitude) and direction (or polarity).
[0008] However, stepper motors have a motor stall problem. If the mechanical load connected to the stepper motor increases beyond expectations, the stepper motor may stall. Motor stall occurs when the stepper motor (and / or associated circuitry) operates beyond its power limit. Typically, to avoid motor stalling, stepper motors are oversized so they can withstand much larger mechanical loads than expected. However, oversizing requires additional resources (e.g., larger, heavier, more expensive stepper motors and larger, more expensive drive circuits) to maintain compliance during greater-than-expected mechanical loads (i.e., outliers). In addition, if the stepper motor stalls and is not detected, the controller may assume that the stepper motor is in the first position when the stepper motor is actually in the second position. Summary of the invention
[0009] As a brief non-limiting overview of the invention, the present disclosure provides a new method and circuit arrangement for operating a stepper motor in a control loop. A load value associated with a mechanical load of an operating stepper motor is filtered to produce a stall detection value. A step value is determined based on a difference between two stall detection values. The step value is compared to a threshold value, and based on the comparison between the step value and the threshold value, it is determined that the stepper motor is in a stalled state. This arrangement can improve the detection of a stepper motor stall condition when the stepper motor is operating at a low speed.
[0010] According to a first aspect, there is provided a method for operating a stepper motor, the method comprising:
[0011] operating the stepper motor in a control loop;
[0012] receiving a load value associated with a mechanical load operating the stepper motor;
[0013] filtering the load value to generate a stall detection value;
[0014] determining a step value based on a difference between two stall detection values;
[0015] comparing the step value to a predetermined threshold; and
[0016] It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold.
[0017] Optionally, the stepper motor comprises at least a first motor coil and a second motor coil.
[0018] Optionally, filtering the load value comprises averaging the load value over at least 90 degrees of an electrical cycle of the current in the motor coils of the stepper motor.
[0019] Optionally, filtering the load value comprises averaging the load value over one electrical cycle of current in the motor coils of the stepper motor.
[0020] Optionally, comparing the step value with the predetermined threshold comprises comparing a rate of change of the stall detection value with the predetermined threshold. Optionally, the predetermined threshold is a rate of change threshold.
[0021] Optionally, receiving the load value comprises: sampling a first motor coil current from the first motor coil; and sampling a second motor coil current from the second motor coil.
[0022] Optionally, each load value is proportional to a load angle of the stepper motor.
[0023] Optionally, the load value is associated with a mechanical load detected by the operating stepper motor.
[0024] Optionally, the filtered load value comprises an average load value.
[0025] Optionally, the step value is determined further based on a difference between two consecutive stall detection values.
[0026] Optionally, the method further includes stopping the stepper motor in response to determining that the stepper motor is in a stalled state.
[0027] Optionally, determining the step value based on the difference between two stall detection values comprises determining a rate of change of said stall detection values.
[0028] Optionally, the two stall detection values are a first stall detection value and a second stall detection value, and the step value is a first step value. Optionally, the method includes determining the second step value based on a difference between the second stall detection value and the third stall detection value. Optionally, the method includes comparing a combination of the first and second step values with a predetermined threshold. Optionally, the method includes determining that the stepper motor is in a stall state based on a comparison between the combination of the first and second step values and a predetermined threshold.
[0029] Optionally, the two stall detection values are a first stall detection value and a second stall detection value, the predetermined threshold is a first predetermined threshold, and the step value is a first step value. Optionally, the method includes determining a second step value based on a difference between the second stall detection value and a third stall detection value. Optionally, the method includes comparing the second step value with a second predetermined threshold. Optionally, the method includes determining that the stepper motor is in a stall state based on: a comparison between the first step value and the first predetermined threshold; and a comparison between the second step value and the second predetermined threshold.
[0030] Optionally, operating the stepper motor in a control loop comprises operating the stepper motor at less than 60 revolutions per minute (RPM), preferably less than 30 RPM, more preferably less than 10 RPM.
[0031] According to a second aspect, there is provided a circuit arrangement for operating a stepper motor in a control loop, the stepper motor comprising at least a first motor coil and a second motor coil, the circuit comprising:
[0032] A controller, the controller being configured to:
[0033] Operate the stepper motor at the following speeds:
[0034] receiving a load value associated with a mechanical load operating the stepper motor;
[0035] filtering the load value to generate a stall detection value;
[0036] determining a step value based on a difference between two stall detection values;
[0037] comparing the step value to a predetermined threshold; and
[0038] It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold.
[0039] Optionally, the stepper motor comprises at least a first motor coil and a second motor coil.
[0040] Optionally, the controller is further configured to stop the stepper motor in response to determining that the stepper motor is in a stalled state.
[0041] Optionally, filtering the load value comprises averaging the load value over at least 90 degrees of an electrical cycle of the current in the motor coils of the stepper motor.
[0042] Optionally, filtering the load value comprises averaging the load value over one electrical cycle of current in the motor coils of the stepper motor.
[0043] Optionally, comparing the step value with the predetermined threshold comprises comparing a rate of change of the stall detection value with the predetermined threshold, wherein the predetermined threshold is a rate of change threshold.
[0044] Optionally, receiving the load value comprises: sampling a first motor coil current from the first motor coil; and sampling a second motor coil current from the second motor coil.
[0045] Optionally, each load value is proportional to a load angle of the stepper motor.
[0046] Optionally, the load value is associated with a mechanical load detected by the operating stepper motor.
[0047] Optionally, the filtered load value comprises an average load value.
[0048] Optionally, the step value is determined further based on a difference between two consecutive stall detection values.
[0049] Optionally, determining the step value is based on a difference between two stall detection values. Optionally, the controller is further configured to: determine a rate of change of the stall detection value.
[0050] Optionally, the two stall detection values are a first stall detection value and a second stall detection value, and the step value is a first step value. Optionally, the controller is further configured to determine a second step value based on a difference between the second stall detection value and a third stall detection value. Optionally, the controller is further configured to compare a combination of the first step value and the second step value with the predetermined threshold. Optionally, the controller is further configured to determine that the stepper motor is in a stall state based on a comparison between a combination of the first and second step values and the predetermined threshold.
[0051] Optionally, the two stall detection values are a first stall detection value and a second stall detection value, the predetermined threshold is a first predetermined threshold, and the step value is a first step value. Optionally, the controller is further configured to determine a second step value based on a difference between the second stall detection value and a third stall detection value. Optionally, the controller is further configured to compare the second step value with a second predetermined threshold. Optionally, the controller is further configured to determine that the stepper motor is in a stall state based on: a comparison between the first step value and the first predetermined threshold; and a comparison between the second step value and the second predetermined threshold.
[0052] Optionally, operating the stepper motor in a control loop comprises operating the stepper motor at less than 60 revolutions per minute (RPM), preferably less than 30 RPM, more preferably less than 10 RPM.
[0053] The method and circuit arrangement of the first and second aspects may provide improved stall detection. Thus, the present aspect allows detection of stall events at stepper motor speeds that are 4 to 10 times lower than known sensorless examples (e.g., stall may be reliably detected at 2 RPM). Thus, the present aspect allows stall detection that is insensitive to slow changes such as thermal heating of the motor coils resulting in increased coil resistance. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Figure 1 A schematic block diagram of a circuit arrangement for operating an electric machine in an open-loop operating mode is shown.
[0055] Figure 2 Shown is a graph of the motor operating in open loop mode, showing the relationship between speed and torque.
[0056] Figure 3 A schematic block diagram of a circuit arrangement for operating an electric machine in a control loop is shown.
[0057] Figure 4a A graph showing two motor coil currents over time, one for each motor coil.
[0058] Figure 4b Shows Figure 4a Graph showing the relationship between the currents in the two motor coils.
[0059] Figure 5 A system comprising a stepper motor and a rotor connected to a linear actuator is shown.
[0060] Figure 6 A method of operating a stepper motor to determine a stall condition is described.
[0061] Figure 7 A diagram with the amplitude of the load reserve (δ) on the y-axis and time (t) on the x-axis is shown, wherein the mechanical load on the stepper motor is varied.
[0062] Figure 8 A graph with the amplitude of the load reserve (δ) on the y-axis and time (t) on the x-axis is shown, wherein the mechanical load on the stepper motor is constant.
[0063] Figure 9a A graph with load reserve (δ) amplitude on the y-axis and time (t) on the x-axis is shown, where the mechanical load on the stepper motor is constant and the load reserve values are averaged using a moving average with a quarter electrical cycle window.
[0064] Figure 9bA graph with load reserve (δ) amplitude on the y-axis and time (t) on the x-axis is shown, where the mechanical load on the stepper motor is constant and the load reserve values are averaged using a moving average with a full electrical cycle window. DETAILED DESCRIPTION
[0065] definition
[0066] An operating mode with a control loop (i.e., an industrial control loop or closed-loop control) generally includes a process variable sensor for sensing a variable of a process, a controller for receiving an input signal representing the process variable and for generating an output signal based on the input signal and a set point signal representing a desired value of the process variable, and an actuator for receiving the output signal and adjusting the process in response to the output signal. The controller uses a control algorithm to compare the set point signal with the input signal from the previous iteration of the loop (e.g., at time t=-1) and generate an output signal for the current iteration of the loop (e.g., at time t=0). The actuator adjusts the process so that the process variable approaches the desired value represented by the set point signal, which will be used as an input for the next iteration of the loop (e.g., at time t=1).
[0067] The controller may be implemented as a computer program executing on a processor, and the process variable sensors, actuators, and set point inputs may be connected to the controller via electrical or communication links.
[0068] A voltage-based operating mode with a control loop is a control loop operating mode that uses a voltage signal to generate a control signal for operating a device. A current-based operating mode with a control loop is a control loop operating mode that uses a current signal to generate a control signal for operating a device.
[0069] Regulation involves correcting the error between the commanded setpoint and the actual value based on some type of feedback. That is, determining the output of a regulator that adjusts the actual value to the commanded setpoint at a new iteration of the control loop.
[0070] Operating a stepper motor involves providing voltage / current to the motor coils of the stepper motor to cause movement of the stepper motor rotor / stator.
[0071] Oversizing is a standard practice in industry where oversized (by NEMA standards) stepper motors are selected for industrial / consumer applications to ensure compliance.
[0072] The mechanical load is the load coupled to the rotating element (usually the rotor) of the stepper motor.
[0073] Motor stall occurs when a stepper motor (and / or associated circuitry) is operated beyond its power limits. For example, if the effective load is too large, the motor's rotor cannot rotate as commanded. This results in a loss of steps because the stepper motor cannot "step" when commanded, resulting in an error between the commanded position of the stepper motor's rotor and the actual rotor position. A motor stall event is one that causes the stepper motor to stall and a loss of steps may occur (if the controller is not receiving feedback about the actual rotor position, for example, in sensorless operation mode).
[0074] When the stepper motor has stalled, or when the stepper motor is at risk of stalling (ie, if the mechanical load further increases, the stepper motor will stall), the stepper motor is in a stalled state, and the controller changes the operation of the stepper motor in response to the stalled state.
[0075] An electrical cycle (i.e., electrical period) is a term of art and can be defined by each repetition of a waveform (e.g., current, voltage). For example, for a sinusoidal waveform, the electrical cycle is 360 degrees. Non-sinusoidal waveforms are possible.
[0076] Details
[0077] One problem with known stepper motors operating in a control loop is motor stalling. Stepper motors are typically operated to target an operating speed suitable for the stepper motor application. If the mechanical load connected to the stepper motor increases beyond expectations, the stepper motor may stall. Typically, in order to avoid motor stalling, stepper motors are oversized so that they can withstand much larger mechanical loads than expected. However, oversizing requires additional resources (e.g., larger, heavier, more expensive stepper motors and larger, more expensive drive circuits) to maintain compliance during mechanical loads greater than expected (i.e., outliers). In addition, if the stepper motor stalls and is not detected, the controller may assume that the stepper motor is in the first position when the stepper motor is actually in the second position. This mismatch may cause the controller to operate the stepper motor with reduced accuracy and efficiency.
[0078] Specifically, at low motor speeds in the back-electromotive force (BEMF) voltage feedback control loop, the back-EMF voltage becomes very small compared to parasitic effects such as the voltage drop in the motor coil internal resistance. These parasitics, especially the value of the motor coil resistance, may change during operation, for example due to heating of the coil resulting in a higher resistance value. This effect, along with the added noise on the extracted BEMF signal, makes it difficult to detect stall conditions at lower motor speeds.
[0079] Embodiments of the present invention solve the above-mentioned problems associated with previous stepper motor control methods.
[0080] As a brief non-limiting overview of the invention, the present disclosure provides a method and circuit arrangement for operating a stepper motor in a control loop. For example, the stepper motor is operated to a certain speed. If the mechanical load coupled to the stepper motor increases, in order to detect motor stall, the method monitors the torque load or a representation of the torque load (e.g., a scaled motor coil current based on the load). The torque load is filtered, and the resulting filtered values are compared with each other to detect the rate of change of the filtered values. This enables the stepper motor to detect a stall event by comparing the rate of change of the filtered value with a predetermined threshold. Therefore, the present disclosure allows the detection of stall events at stepper motor speeds that are 4 to 10 times lower than other sensorless examples (e.g., stalls can be reliably detected at 2RPM). It uses filtering of sensorless load values to obtain more stable and noise-free readings, and reacts to changes in load values corresponding to impacting mechanical obstacles, rather than reacting to absolute loads. This makes it insensitive to slow changes, such as thermal heating of the motor coils causing an increase in coil resistance.
[0081] Advantageously, the disclosed method can also be implemented with significantly reduced implementation cost and design effort. That is, the method can be directly applied to a closed-loop stepper motor system without changing the existing operating control system, and also benefiting from increased resilience to motor stall events.
[0082] Therefore, the reliability of any stepper motor system to which the method is applied may be improved as a result.The torque load or a representation of the torque load will be referred to herein as the load value.
[0083] Figure 1 An example of a schematic block diagram of a circuit arrangement 10 for a motor, such as a stepper motor, is shown. The circuit arrangement 10 shows a stepper motor 12 controlled by a controller 18. The stepper motor 12 is controlled by a motor drive circuit 14, such as a voltage chopper. The motor drive circuit 14 generates a drive voltage for each coil of the stepper motor 12, for example, the drive voltage can be a pulse width modulated (PWM) voltage for operating the stepper motor 12.
[0084] In the simple case of a two-phase stepper motor 12, it can be assumed that one of the two coils (e.g., coil x) is subjected to a sinusoidal current process, while the other coil (e.g., coil y) is provided with a current process that is phase-shifted by 90° and is therefore co-sinusoidal. The stepper motor 12 can also be controlled in microstepping operation with a PWM voltage that produces substantially sinusoidal motor coil currents in the coils x, y. However, the following considerations also apply accordingly to alternative cases: non-sinusoidal motor coil currents; stepper motors with the same or different number of phases; the relative phase shift of the motor coil currents relative to each other is not 90°; and / or stepper motors operated in full-step, half-step or microstepping operation.
[0085] The PWM voltage may be generated from the motor supply voltage such that the amplitude of the motor supply voltage defines the amplitude of the PWM voltage. In particular, the motor supply voltage may be pulse width modulated and applied to the motor coils x, y with corresponding polarity. The duty cycle of this modulation is controlled or adjusted such that the effective voltages generated across the motor coils each have an amount that causes the instantaneous motor coil current value to flow. Alternatively, other methods may be used to cause the instantaneous target motor coil current to flow. Control of the PWM may be based on a voltage-based control signal using known methods.
[0086] As a component known per se, the circuit arrangement 10 comprises an integrated motor driver circuit 14, with which a first and a second bridge circuit 16a, 16b are controlled via outputs. The bridge circuit 16 is arranged between a supply voltage +VM and ground. To operate the stepper motor, a first PWM voltage signal is applied to coil x and a second PWM voltage signal is applied to coil y. The motor driver circuit 14 receives a voltage- or current-based control signal in order to control, for example via a controller 18, the amplitude or amount of the voltage applied to each coil, or the duty cycle of the PWM voltage. Since these motor driver circuit 14 units are known per se, they do not need to be described in more detail.
[0087] The stepper motor 12 can be operated so that the power on its rotating motor shaft is linearly proportional to the speed under the application of a certain external force:
[0088]
[0089] where is the torque τ, the angular velocity ω, the external force F, and r is the radius of the stepper motor shaft.
[0090] Figure 2 A representation of an open loop operating mode is shown on graph 20. The speed of the stepper motor is shown on the x-axis and the stepper motor torque is shown on the y-axis.
[0091] The graph 20 shows a line 22 representing the maximum power output of the stepper motor 12. Line 22 also represents the limitation of electrical power and the dependence of mechanical power on speed in combination with an externally applied force. Thus, there is a tradeoff between the maximum allowable speed and the maximum allowable torque. If the stepper motor 12 is operated to exceed line 22, a motor stall will occur. All stepper motors can be characterized in that line 22 represents the maximum power output of any stepper motor and can be determined (e.g., by experiment) or can generally be easily obtained (e.g., from a data sheet).
[0092] It is generally known to operate a stepper motor in open loop with a safety margin as shown by the dashed safety margin line 24. The purpose of the safety margin line 24 is to place an artificial limit on the drive operation of the stepper motor 12, so that if a momentary increase in mechanical load is provided to the stepper motor, the torque can increase beyond the safety margin line 24, but within the line 22, without the motor stalling temporarily. This reduces the risk of the motor stalling, however, it also reduces the power handling of the stepper motor 12 because it is not operated near its maximum power. This leads system designers to oversize the stepper motor for certain applications, especially to maintain a large torque safety margin at low speeds.
[0093] Graph 20 shows that high torque requirements How to limit the maximum allowed speed to compared to The high speed requirement limits the maximum allowable torque to
[0094] The problem with the known operating mode is that if the control system is operated to target a specific speed, and the load on the stepper motor increases, then in order to maintain the target speed, the torque of the stepper motor must increase. The combination of speed and torque may require more power than the driver circuit can provide (or the rated power of the stepper motor), which may cause the motor to stall, also known as loss of steps.
[0095] In addition, a known closed-loop system can be implemented that uses an encoder to detect the position of the rotor of the stepper motor 12. Such a system can eliminate the need for a safety margin and operate the stepper motor close to the line 22. However, such a system requires significantly higher design effort, mold space, and implementation costs. In addition, the encoder may not be suitable for all applications and may require additional calibration.
[0096] The present invention solves the above problems by a stepping motor control method. The present invention is described below.
[0097] Figure 3 A circuit arrangement 28 according to one example of the present invention is shown. Figure 3 The circuit arrangement 28 is similar to Figure 1 For the sake of brevity, the following description will focus on the differences, and the same components are given the same reference numerals.
[0098] The circuit arrangement 28 operates the stepper motor 12 in a control loop. The control loop may be implemented with, for example, a hysteresis controller or a PI regulator. The controller 26 receives feedback signals from the stepper motor 12 via the feedback arrangement 25, such as coil currents (for one or more motor coils of the stepper motor) and / or sensor measurements from an encoder, etc.
[0099] For example, the controller 26 may receive measurements of actual motor coil currents to adjust the duty cycle of a PWM voltage applied to each motor coil via a control loop (i.e., a voltage-based operating mode with a control loop). The actual motor coil current may be detected by the feedback device 25, for example, by an analog-to-digital converter (ADC), in order to control the amplitude or amount of the voltage applied to the coil, or the duty cycle of the PWM voltage, for example, via a regulator, preferably a PI regulator. Alternatively, the circuit arrangement 28 may operate in a current-based operating mode with a control loop. The ADC may sample the motor coil currents so that the load value includes a sample of a first motor coil current from a first stepper motor coil; and a sample of a second motor coil current from a second stepper motor coil.
[0100] Optionally, if the control loop is a sensorless closed loop, the motor drive circuit 14 may also receive the coil current as input via the feedback device 25 to help operate the stepper motor 12 .
[0101] Now we will combine Figure 4 to Figure 6 The operation of the stepper motor 12 is described. The controller 26 may be configured to implement a method according to an example of the present invention, which may output signals suitable for operating the stepper motor 12.
[0102] Figure 4a Shows the actual motor coil current I on each coil when the stepper motor is microstepping x ,I y At time t1, ADC 25 can detect the actual motor current I x ,I y The first and second motor coil currents are sampled to generate Figure 4b Shows the first and second motor coil currents A graphical representation of where the x-axis represents the phase of coil x and the y-axis represents the phase of coil y. First motor coil current and the second motor coil current The phase angle relationship between is represented by the shape of the dotted circle 15. The phase angle relationship can be Figure 4a The shape of the waveform and / or the actual motor coil current I x ,I y The phase angle between |I| and |I| can be predetermined by measuring the phase angle between the first and second motor coil currents. This can be predetermined by knowledge of the stepper motor 12 by means known per se. Thus, the absolute value of the coil current vector |I| can be determined by measuring the phase angle between the first and second motor coil currents Specifically, The coil current phase angle ∠I can be found in the coil current vector and a predefined reference angle. For example, the predefined reference angle may be 0°, or any other predetermined angle. Therefore, the coil current vector is defined by the absolute value |I| and the coil current phase angle ∠I. Alternatively, the coil current phase angle ∠I may be based on the first and second motor coil currents It will be appreciated that the first motor coil current shown is and the second motor coil current The phase angle relationship between is the result of microstepping (ie, the controller 26 generates or receives microstepper sequencer signals for operating the stepper motor).
[0103] The current probe may be connected in series with the corresponding coil x, y (ie, at the connection between the first and second bridge circuits 16a, 16b and the coil x, y). Additionally or alternatively, the motor coil current I flowing through the coil x, y x ,I y The current probes may be coupled to the ADC 25 to measure the first and second motor coil currents.
[0104] The load value (e.g., any representation of load angle, load reserve, or torque load) may be proportional (directly, inversely, or indirectly) to the mechanical load on the rotor of the stepper motor 12, such that if the rotor requires more torque to rotate at a given speed, the load value will increase. The load value may be the motor coil current or the load angle of the stepper motor 12. Thus, the load value has a maximum load value L max , the maximum load value may be equal to the maximum power output of the stepper motor 12 (ie, the stall load value: the load value that causes the stepper motor to stall), or a safety margin (with Figure 2 Each load value can be proportional to the load angle of the stepper motor, or it can be proportional to the encoder signal.
[0105] In a stepper motor, the direction of the rotor is determined by its magnetization. If there is no mechanical load, the angle of the rotor corresponds to the main direction of the magnetic field generated by the coils - this corresponds to a load angle of 0°. If the magnetization direction of the rotor in a bipolar motor is orthogonal to the main direction of the magnetic field generated by the coils, this corresponds to a load angle of 90°. This means that in a bipolar motor, when the motor is at rest, the load angle directly corresponds to the mechanical deflection caused by the neutral position on the motor shaft directly before the torque (no load and load angle of 0°). In a high-pole motor, the load angle is an integer multiple of the mechanical deflection of the neutral position. Therefore, in a high-pole-count motor, the determination of the load angle will require a very high-resolution rotary pulse generator and very precise current measurement.
[0106] Many load angle calculation schemes are known in the field of PMSM (Permanent Magnet Synchronous Motor) motor algorithms for sensorless operation. The load angle calculation can determine the load reserve δ. The load reserve δ gives a measure of the amount of torque that is still available and unused by the mechanical device of the stepper motor at a given motor current. If the load reserve δ is approximately 0°, the load angle is approximately 90°. That is, load reserve δ=load angle-90°. Therefore, the load angle and / or the load reserve δ can be used.
[0107] The determination of the mechanical motor load can be expressed by a load angle based on the voltage induced in the motor coils by the rotation of the rotor (back electromotive force, back-EMF, electromotive force or back electromotive force, CEMF), and in particular on the amount of this back-EMF, which is position controlled to achieve a specified current in the corresponding stepper motor coil. The back-EMF voltage angle can be further calculated based on any of the following: the supply voltage +V M ; the resistance R of stepper motor coil x; the resistance R of stepper motor coil y; and the inductance L of stepper motor coil x; the inductance L of stepper motor coil y. The coils x, y of the stepper motor can generally be modeled as a voltage source (inverse to the coil drive voltage (e.g., PWM voltage signal)) and a resistor. Advantageously, the supply voltage can correspond to the amplitude / scaling of the PWM voltage signal, which can improve the calculation of the back-EMF voltage angle. The stepper motor coils can be modeled as a voltage source (inverse to the coil drive voltage), a resistor, and an inductor.
[0108] The controller 26 enables the load angle of the stepper motor 12 to be detected in a sensorless manner. For example, the load angle can be calculated based on the absolute value |I|, the coil current phase angle ∠I, and the previous [voltage-based] control signal output from the controller 26. Any timing delays can be ignored or compensated for in a known manner.
[0109] The controller 26 receives a load value associated with the mechanical load of the operating stepper motor. That is, the load value can be based on the mechanical load of the operating stepper motor. At relatively high speeds, the load value can provide a good indication of the stall state of the stepper motor. However, at low motor speeds (e.g., less than 10, less than 30RPM, or less than 60RPM), the received load value may be affected by parasitic effects. The received load value may be determined by (and may be based on) changes in motor characteristics and motor temperature at low motor speeds that may be impaired by parasitic effects, although in practice, if stall detection is required at a speed that may be close to the low motor speed, the disclosed method may be particularly beneficial. That is, the load angle calculation scheme usually does not work well at low motor speeds and provides a poor indicator of motor stall. For example, at low motor speeds, the back EMF signal is very weak compared to the voltage drop (e.g., due to resistance) of each coil, which makes the calculation of the load angle unreliable. In addition, at low motor speeds, the load angle calculation may change due to temperature-related coil resistance, BBM delay, measurement errors, and parasitic effects. Therefore, at low motor speeds, it is difficult for a stepper motor controller to detect motor stall. If the motor back EMF voltage is lower than the resistive voltage drop in the motor coil caused by the coil current, a low motor speed (at which the received load value can be compromised by parasitic effects) can be determined.
[0110] The disclosed method is designed to extend that limit to speeds at least 4 to 10 times slower than standard techniques. It uses a floating average of sensorless load values (produced by a moving average calculation) to obtain a more stable and noise-free reading, and reacts to changes in load values corresponding to impacts with mechanical obstacles rather than to absolute load. This makes it insensitive to slow changes, such as thermal heating of motor coils causing an increase in coil resistance.
[0111] Figure 5 An example of a system 21 is shown that includes a stepper motor 12 having a rotor 13 connected to a linear actuator 27. The linear actuator 27 is limited by end points 29a, 29b such that when the linear actuator 27 reaches the first end point 29b, the first end point 29b mechanically limits the rotation of the stepper motor 12. The stepper motor 12 is coupled to a controller 26 to implement any of the methods disclosed herein.
[0112] The disclosed method is particularly useful when applied to a stepper motor coupled to a system having at least a first [predefined] end point that mechanically limits the rotation of the stepper motor when a component of the system reaches the first end point (e.g., a linear actuation system). In such a system, the mechanical end point of the stepper motor rotor is typically detected by different switches at both ends of the system. Advantageously, the current system enables detection of the mechanical end point (of the stepper motor rotor) without additional components.
[0113] Figure 6 An exemplary method of the present disclosure implemented by controller 26 is shown.
[0114] In step S1, the controller 26 operates the stepper motor in a control loop;
[0115] At step S2 , the controller 26 receives a load value associated with a mechanical load of the operating stepper motor;
[0116] In step S3, the controller 26 filters the load value to generate a stall detection value;
[0117] In step S4, the controller 26 determines a step value based on the [magnitude] difference between the two stall detection values;
[0118] In step S5, the controller 26 compares the step value with a predetermined threshold;
[0119] At step S6, the controller 26 determines that the stepper motor is in a stalled state based at least on a comparison between the step value and a predetermined threshold value; and
[0120] In optional step S7, the controller 26 stops the stepper motor in response to determining that the stepper motor is in a stalled state. This step S7 can be used to reset the stepper motor 12, or to provide an indication that the rotor of the stepper motor has reached a mechanical minimum or maximum. For example, the stepper motor 12 can be connected to a mechanical system having mechanical endpoints (optionally, these endpoints are predefined) that mechanically limits the rotation of the stepper motor. Such a mechanical system can be a linear actuator (e.g., a rack and pinion, or a linear actuator such as a gear). Figure 5 26 ) or other actuators. In known mechanical systems, switches can be used to indicate that the motor has reached a mechanical minimum or maximum. However, when the above method is implemented by the controller 26, no such additional switch is required to indicate that the motor has reached a mechanical end point.
[0121] Furthermore, at step S7, upon determining that the stepper motor is in a stalled state, the controller 26 may be configured to stop the stepper motor and reverse it (i.e., move it back a little) to a position where the torque initially begins to increase. That is, to a position where the step value exceeds a predetermined threshold. Advantageously, this may allow strain to be removed from the stepper motor and any associated mechanical equipment.
[0122] The controller 26 of the stepper motor 12 may determine that the method should be implemented if the controller 26 detects (or commands) the stepper motor 12 to operate at a low speed. Alternatively, the controller 26 of the stepper motor may determine that the method should be implemented if the controller 26 determines the absolute value of the back EMF of the stepper motor 12; and compares the absolute value of the back EMF (determined by the motor back EMF constant multiplied by the commanded operating speed) to the absolute value of the temperature-dependent change in the resistive voltage drop in the motor coil (determined by the coil resistance change multiplied by the motor current). The coil resistance change may be determined by the expected motor temperature change during operation multiplied by a specific temperature coefficient (i.e., 0.038 / K for copper). If the voltage drop due to the effect of the resistance change is significant (e.g., more than 10% of the back EMF), the method described herein may be used to advantage.
[0123] Figure 7 A graph showing the amplitude of the load value on the y-axis (specifically the load reserve δ), versus time (ie t) on the x-axis. Figure 7 The graph of represents operating data of the stepper motor 12. The load value received or calculated by the controller 26 is shown by line 30 and is associated with the mechanical load detected (ie, experienced) by the operating stepper motor over time. Figure 7 , the load value is shown as a continuous line 30, however, the load value may be calculated or determined discretely. Stall detection values are shown by lines 32a, 32b. Line 32a shows a step value change between consecutive stall detection values. Line 32b shows a gradient between consecutive stall detection values. The stall detection value is determined by filtering the load value (or a sampled version of line 30 generated from the load value), i.e., lines 32a, 32b are filtered representations of line 30.
[0124] Figure 7 Experimental data of a running stepper motor 12 is shown. The stepper motor 12 is running at a low speed. At point (t1), the mechanical load of the operating stepper motor 12 increases. Before point (t2), the stepper motor 12 experiences a sudden mechanical load increase due to a sudden blockage of the rotor, or due to reaching the mechanical limit of the rotor. Figure 7 As can be seen in FIG, this results in a change between the two stall detection values at point (t1) and point (t2), and a change between the two stall detection values at points (t2 and t3). Typically, a sudden mechanical load increase results in a change in consecutive and / or subsequent stall detection values. This change in the subsequent stall detection value can be quantified as a step value. If the step value is greater than a predetermined threshold, this indicates a stall event. At point (t4), the cause of the mechanical load increase is overcome, and the stepper motor 12 can operate under normal conditions.
[0125] The stepper motor stall state may be detected from the change between only two stall detection values, or may be detected from the change in a plurality of stall detection values. That is, the change (i.e., the step value) is compared with a predetermined threshold value to determine that the stepper motor 12 is in a stall state. The predetermined threshold value may be an absolute value, or it may represent a rate of change (i.e., a gradient) of the stall detection value and / or line 32b.
[0126] Typically, the rate of change of the stall detection value can be used to determine that the stepper motor is in a stall state. The steepness of the gradient of the line 32b connecting the stall detection value is related to more mechanical resistance on the stepper motor rotor. Therefore, the rate of change of the stall detection value can be compared with a predetermined threshold value to determine whether the stepper motor is in a stall state. The predetermined threshold value can be predetermined based on the application of the stepper motor, and / or found by stepper motor experiments. The stall state may indicate that the stepper motor has stalled, or the stepper motor is at risk of stalling (i.e., if the mechanical load increases further, the stepper motor will stall). For example, if the change between two stall detection values occurs on a known time period between the two stall detection values, the predetermined threshold value can be an absolute value. For example, according to the filtering type, the time period can be determined or estimated based on the sampling rate of the load value. The step value can be determined based on continuous stall detection values, or the step value can be determined based on any two stall detection values with a known time period between them. Therefore, determining the step value based on the difference between the two stall detection values can include determining the rate of change of the stall detection value. Furthermore, comparing the step value to a predetermined threshold may include comparing a rate of change of the stall detection value to a threshold, wherein the predetermined threshold is a rate of change threshold.
[0127] Advantageously, by taking into account the time period between stall detection values and / or the rate of change of the stall detection values, the method may be unaffected by non-load related operating conditions of the stepper motor 12. For example, stepper motor temperature or thermal heating of the stepper motor.
[0128] Figure 8 A graph is shown with the amplitude of the load value on the y-axis (particularly the load reserve δ determined by the motor coil current) and time (ie t) on the x-axis. Figure 8 The graph of represents operating data of a stepper motor 12 with a constant mechanical load. Over time, the temperature of the stepper motor 12 increases, which affects the resistance of the stepper motor coils. Therefore, since the load value is a function of the motor coil current, over time, as the temperature increases, the load reserve decreases. This change (as well as other non-load related operating conditions of the stepper motor 12) occurs over a relatively large period of time, which can be ignored by setting a predetermined threshold to take into account the time period between stall detection values and / or the rate of change of the stall detection values.
[0129] Filtering the load values includes averaging the load values, for example using a moving average. A moving average averages the load values over a defined set of values (i.e. a window). However, other filtering methods may also be used, such as smoothing, low pass filtering, etc.
[0130] Figure 9a and 9b Both show a graph of the amplitude of the load value on the y-axis (specifically, the load reserve δ), versus time (ie t) on the x-axis. Figure 9a , 9b The graph of represents the operating data of the stepper motor 12, which has a constant mechanical load and the load values are averaged using a windowed moving average.
[0131] Figure 9a The load values are filtered (to determine the stall detection value) by averaging the load values over 90 degrees of the electrical cycle of the current in the motor coils of the stepper motor 12. That is, the window of the moving average is 90 degrees of the electrical cycle of the current in the motor coils of the stepper motor 12. Figure 9a A repeating pattern of stall detection values is shown, with each value consisting of four stall detection values before repeating. This effect has been found to be a result of the stepper motor manufacturing process. The benefit of selecting the window to be 90 degrees of the electrical cycle of the current in the motor coils of the stepper motor 12 is that the system is able to react quickly to a possible stall condition. Furthermore, as a result of the window size, the filtered signal (i.e., the stall detection value) will decrease (but may not reach 0) when a stall condition is indicated.
[0132] The effect of the repetitive pattern of stall detection values (such as Figure 9a can be reduced or eliminated by reducing the component tolerances of the stepper motor, or as shown in Figure 9b As shown in FIG. 1 , the load value within one electrical cycle of the current in the stepper motor coil is averaged to reduce or eliminate the load value. That is, Figure 9b, the window of the moving average is an entire electrical cycle of the current in the motor coils of the stepper motor 12. Advantageously, the stability of the stall detection method is improved by averaging the load values over one electrical cycle of the current in the motor coils of the stepper motor. Nevertheless, when the motor is overloaded (i.e., the stepper motor is in a stalled state), the stall detection value will not necessarily reach the maximum load (0 load reserve) because the motor may stall before the filter covers the entire electrical cycle. In theory, a sudden stop of the rotor starting from 0 load will result in a loss of steps within 1 / 2 electrical cycle. In practice, the finite mechanical stiffness of the stepper motor system will result in a non-instantaneous and longer period of load increase until the motor stalls. Therefore, the stall detection value will result in at least two consecutive step value decreases. This result can enable the system to determine that the stepper motor 12 is in a stalled state. Although the system is able to react faster when the moving average window is smaller (such as Figure 9a Therefore, a combination of different filters can be used (such as Figure 9a and 9b The filter in ( ) determines that the stepper motor 12 is in a stall state.
[0133] The window of the moving average can be any part of the electrical cycle of the current in the stepper motor or the rotating motor coil. However, it should be considered that the measurement noise can only be offset by filtering on a slightly higher period (i.e., greater than 45 degrees of the electrical cycle), as shown in this article.
[0134] At low speeds, the change between the stall detection values may vary based on a response to the mechanical load. For example, the change between the stall detection values may decrease with a mismatch between the motor coil resistance and the measured / estimated motor coil resistance. Therefore, when the stepper motor 12 is determined to be operating without a mechanical load, the predetermined threshold value may be adapted to represent an absolute value between the stall detection values. In addition, when the stepper motor 12 is determined to be operating with a mechanical load, the predetermined threshold value may be adapted to represent a gradient between the stall detection values. Therefore, the predetermined threshold value may be predetermined: before the stepper motor is operated; based on a determination that the stepper motor is operating under a mechanical load; or based on a determination that the stepper motor is operating in one of many operating scenarios.
[0135] The time period between consecutive stall detection values may be calculated based on a known load value sampling rate.The length of the moving average window as a ratio of electrical cycles may be determined based on a known load value sampling rate or time period.
[0136] In one example, if the load value represents a load reserve delta, the subsequent change in the stall detection value is a decrease. In another example, if the load value represents a load angle, the subsequent change in the stall detection value is an increase. In another example, if the load value represents a mechanical torque, the subsequent change in the stall detection value is an increase. That is, the change (increase or decrease) between subsequent stall detection values depends on the specific load value received.
[0137] The stepper motor stall condition can be detected from the changes in multiple stall detection values. For example, return Figure 7 , the first step value may be determined based on the difference between the first stall detection value at point (t1) and the second stall detection value at point (t2), and the second step value may be determined based on the difference between the first stall detection value at point (t2). The combination of the first and second step values may be compared with a predetermined threshold (for example, the combination may be any type of average value: average value, weighted value, etc.). The method may determine that the stepper motor is in a stall state based on the comparison between the combination of the first and second step values and the predetermined threshold. Alternatively, the first step value may be compared with a first predetermined threshold, the second step value may be compared with a second predetermined threshold, and the stall state is detected only when both the first and second predetermined thresholds are exceeded. The first predetermined threshold and the second predetermined threshold may be equivalent.
[0138] Numbered clauses
[0139] By way of non-limiting example, some aspects of the disclosure are set forth in the following numbered clauses.
[0140] Clause 1: A method of operating a stepper motor, the method comprising:
[0141] operating the stepper motor in a control loop;
[0142] receiving a load value associated with a mechanical load operating the stepper motor;
[0143] filtering the load value to generate a stall detection value;
[0144] determining a step value based on a difference between two stall detection values;
[0145] comparing the step value to a predetermined threshold; and
[0146] It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold.
[0147] Clause 2: The method of clause 1, wherein filtering the load value comprises averaging the load value over at least 90 degrees of an electrical cycle of the current in the motor coil of the stepper motor.
[0148] Clause 3: The method of clause 1 or 2, wherein filtering the load value comprises averaging the load value over one electrical cycle of current in the motor coil of the stepper motor.
[0149] Clause 4: The method of any preceding clause, wherein comparing the step value to the predetermined threshold comprises comparing a rate of change of the stall detection value to the predetermined threshold, wherein the predetermined threshold is a rate of change threshold.
[0150] Clause 5: The method of any preceding clause, wherein the load value is received by: sampling a first motor coil current from the first motor coil; and sampling a second motor coil current from the second motor coil.
[0151] Clause 6: The method of any preceding clause, wherein each load value is proportional to a load angle of the stepper motor.
[0152] Clause 7: The method of any preceding clause, wherein the load value is associated with a mechanical load detected by the operating stepper motor.
[0153] Clause 8: The method of any preceding clause, wherein the filtered load value comprises an average load value.
[0154] Clause 9: The method of any preceding clause, wherein the step value is determined further based on a difference between two consecutive stall detection values.
[0155] Clause 10: The method of any of the preceding clauses, further comprising stopping the stepper motor in response to determining that the stepper motor is in a stalled state.
[0156] Clause 11: The method of any preceding clause, wherein determining the step value based on a difference between two stall detection values comprises determining a rate of change of the stall detection values.
[0157] Clause 12: The method of any of the preceding clauses, wherein the two stall detection values are a first stall detection value and a second stall detection value, and the step value is a first step value;
[0158] determining a second step value based on a difference between the second stall detection value and a third stall detection value;
[0159] comparing a combination of the first and second step values to the predetermined threshold; and
[0160] It is determined that the stepper motor is in a stalled state based on a comparison between a combination of the first and second step values and the predetermined threshold.
[0161] Clause 13: The method of any one of clauses 1 to 11, wherein the two stall detection values are a first stall detection value and a second stall detection value, the predetermined threshold is a first predetermined threshold, and the step value is a first step value;
[0162] determining a second step value based on a difference between the second stall detection value and a third stall detection value;
[0163] comparing the second step value to a second predetermined threshold; and
[0164] determining that the stepper motor is in a stall state based on a comparison between the first step value and the first predetermined threshold; and
[0165] A comparison between the second step value and a second predetermined threshold value.
[0166] Clause 14: The method of any preceding clause, wherein operating the stepper motor in a control loop comprises operating the stepper motor at a speed of less than 60, 30, 20, or 10 revolutions per minute.
[0167] Clause 15: A circuit arrangement for operating a stepper motor in a control loop, the circuit arrangement comprising:
[0168] A controller, the controller being configured to:
[0169] Operate the stepper motor at the following speeds:
[0170] receiving a load value associated with a mechanical load operating the stepper motor;
[0171] filtering the load value to generate a stall detection value;
[0172] determining a step value based on a difference between two stall detection values;
[0173] comparing the step value to a predetermined threshold; and
[0174] It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold.
[0175] Clause 16: The circuit arrangement of clause 15, wherein the controller is further configured to stop the stepper motor in response to determining that the stepper motor is in a stalled condition.
[0176] Clause 17: The circuit arrangement of clause 15 or 16, wherein filtering the load value comprises averaging the load value over at least 90 degrees of an electrical cycle of the current in the motor coil of the stepper motor.
[0177] Clause 18: The circuit arrangement of any one of clauses 15 to 17, wherein filtering the load value comprises averaging the load value over one electrical cycle of current in the motor coil of the stepper motor.
[0178] Clause 19: The circuit arrangement of any one of clauses 15 to 18, wherein comparing the step value to the predetermined threshold comprises comparing a rate of change of the stall detection value to the predetermined threshold, wherein the predetermined threshold is a rate of change threshold.
[0179] General terms
[0180] Figure 1 and Figure 3 The display and definition of each block in is for explanation purposes only, and it should be well understood that the algorithm or function represented by each block can be implemented in many other ways as long as the described functions exist. For example, Figure 1 and / or Figure 3 The blocks can be combined and implemented as part of a circuit arrangement, on a single integrated circuit, processor or computer, or by multiple circuit arrangements, integrated circuits, processors and / or computers. That is, the controller includes one or more circuit arrangements, integrated circuits, processors and / or computers.
[0181] Unless the context clearly requires otherwise, throughout the specification and claims, the terms "comprising," "including," "containing," "having," and the like are to be interpreted in an inclusive sense rather than an exclusive or exhaustive sense; that is, in the sense of "including but not limited to."
[0182] As used herein, the words "coupled" or "connected" generally refer to two or more elements that may be directly connected or connected through one or more intermediate elements. In addition, the words "herein," "above," "below," and words of similar meaning as used in this application shall refer to this application as a whole and not to any particular part of this application. Where the context permits, words used in the singular or plural in the detailed description may also include the plural or singular, respectively. When referring to a list of two or more items, the word "or" is intended to cover all of the following interpretations of the word: any item in the list, all items in the list, and any combination of items in the list.
[0183] It should be appreciated that one or more features from one or more of the above described embodiments may be combined with one or more features from another or more of the above described embodiments to form further embodiments within the scope of the appended claims.
Claims
1. A method of operating a stepper motor, the method comprising: operating the stepper motor in a control loop; receiving a load value associated with a mechanical load of the stepper motor; filtering the load value to generate a stall detection value; determining a step value based on a difference between two stall detection values; determining a comparison between the step value and a predetermined threshold; and It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold. 2 . The method of claim 1 , wherein filtering the load value comprises averaging the load value over at least 90 degrees of an electrical cycle of current in the motor coils of the stepper motor. 3 . The method of claim 1 , wherein filtering the load value comprises averaging the load value over one electrical cycle of current in a motor coil of the stepper motor. 4 . The method of claim 1 , wherein comparing the step value to the predetermined threshold comprises comparing a rate of change of the stall detection value to the predetermined threshold, wherein the predetermined threshold is a rate of change threshold.
5. The method of claim 1 , wherein receiving the load value comprises: sampling a first motor coil current from the first motor coil; and A second motor coil current from the second motor coil is sampled. The method of claim 1 , wherein each load value is proportional to a load angle of the stepper motor.
7. The method of claim 1, wherein the load value is associated with a mechanical load detected by the operating stepper motor. The method of claim 1 , wherein filtering the load value comprises averaging the load value. 9 . The method of claim 1 , wherein determining the step value based on a difference between the two stall detection values comprises determining the step value based on a difference between two consecutive stall detection values. 10 . The method of claim 1 , further comprising stopping the stepper motor in response to determining that the stepper motor is in the stalled state. 11 . The method of claim 1 , wherein determining the step value comprises determining a rate of change of the two stall detection values.
12. The method of claim 1, wherein: The two stall detection values are a first stall detection value and a second stall detection value, and the step value is a first step value; and Also includes: determining a second step value based on a difference between the second stall detection value and a third stall detection value; determining a second comparison comprising a combination of the first step value and the second step value to the predetermined threshold; and It is determined that the stepper motor is in the stall state based on a second comparison between the combination and the predetermined threshold.
13. The method of claim 1, wherein: The two stall detection values are a first stall detection value and a second stall detection value, the predetermined threshold is a first predetermined threshold, and the step value is a first step value; and Also includes: determining a second step value based on a difference between the second stall detection value and a third stall detection value; determining a second comparison between the second step value and a second predetermined threshold; and It is determined that the stepper motor is in the stall state based on a first comparison between the first step value and the first predetermined threshold and a second comparison between the second step value and the second predetermined threshold.
14. The method of claim 1, wherein operating the stepper motor in a control loop comprises operating the stepper motor at a speed less than 60 revolutions per minute.
15. A circuit arrangement for operating a stepper motor in a control loop, the circuit arrangement comprising: A controller, the controller being configured to: Operate the stepper motor at the following speeds: receiving a load value associated with a mechanical load of the stepper motor; filtering the load value to generate a stall detection value; determining a step value based on a difference between two stall detection values; determining a comparison between the step value and a predetermined threshold; and It is determined that the stepper motor is in a stall state based on a comparison between the step value and the predetermined threshold. 16 . The circuit arrangement of claim 15 , wherein the controller is further configured to stop the stepper motor based on the stepper motor being in the stalled state.
17. The circuit arrangement of claim 15, wherein the controller configured to filter further comprises a controller configured to average the load value over at least 90 degrees of an electrical cycle of current in the motor coils of the stepper motor.
18. The circuit arrangement of claim 15, wherein the controller configured to filter further comprises a controller configured to average the load value over one electrical cycle of current in the motor coil of the stepper motor.
19. The circuit arrangement of claim 15, wherein the controller is configured to determine the comparison, further comprising a controller configured to compare a rate of change of the stall detection value with the predetermined threshold, wherein the predetermined threshold is a rate of change threshold.
20. The circuit arrangement of claim 15, wherein the controller is configured to receive a load value associated with a mechanical load of the stepper motor, the controller further configured to: sampling a first motor coil current from a first motor coil; and A second motor coil current from a second motor coil is sampled.