DC motor stall-detection system

Abstract: A motor controller is programmed for detecting motor-stall condition of a dc-motor under the control of the motor control system. The motor controller includes a programmable microcontroller in connected to a motor driver. The motor driver communicates with a motor. The motor coupled to a position encoder which encoder is in communication with the microcontroller The method comprises the steps of providing an average stall threshold value and providing the motor controller with a time counter for counting each time interval T to a maximum count of "N". The motor controller is programming to issue a motor command representing the position error between the desired motor position and the actual motor position for some time interval "T" for each time interval "T". During each interval the motor command is compared to the average threshold value, if the motor command is greater than the ASV then proceed to and the interval exceeds a presented time than a motor stall is state is declared. If not the method is repeated for the next time interval.

Description: Description The present invention relates to a DC motor servo system utilizing an application specific integrated circuit (ASIC) under the influence of a microcomputer for controlling a DC motor. In many systems a DC motor is employed as a prime mover. One such system is a novel mail processing system. The mail processing system employs a plurality of system modules for processing envelopes. Particularly, the mail processing system includes a feeder section having a envelope stack receiving module, a singulation module, an envelope flap moistening module. The feeder section is followed by a mailing machine section having an integral scale module, tape module, meter module and transport module. A more detailed description of the mail processing system is presented in U.S. Patent No. 4,935,078, entitled "High Through-Put Mail Processing System". The mail processing system of particular interest offers the advantage of providing a minimum foot print and high through-put rate. In order to achieve this advantage, realizing that the mail processing system must accommodate a variety of different sized envelopes, it is necessary for the microcomputer system to exercise exacting servo control over the motors associated with one or more of the modules. In order to achieve the high through-put rate in light of the minimum feed path (foot print), a system constraint is to accommodate maximum acceleration and deceleration of a respective motor under system loads without destructively over-driving the motor. It has been considered advantageous to provide the mail processing system with not only a minimum feed path but also minimum overall profile. In order to obtain this advantage along with the accompanying cost advantage, motors have been selected which provide the necessary transport torque; as a result, the smallest motor which provides sufficient transport torque has been chosen. In order to achieve the necessary accelerations, the motor must be overdriven for a short period. It has been empirically determined that the motors can survive the accelerator phase provided the motor is closely servoed by the motor controller. However, a particularly destructive condition occurs during an envelope jam. An envelope jam can cause a motor stall condition. This condition can be destructive to the motor as the motor controller is causing the motor to be overdriven, i.e., the motor controller is causing the motor driver to deliver excessive current or voltage to the motor for a prolonged time due to the stall condition. Reference is made to GB-A-2128425 which describes a stall detection apparatus in which the motor stator current and voltage phase difference is measured as proportional to percentage sycronous motor speed, and indicates a possible stall condition. An exclusive OR gate compares voltage and current signals, and if a timing circuit detects a long enough signal indicating excessive phase difference, a trip is activated. A circuit differentiates the phase difference to obtain motor acceleration as a parameter potentially indicative on its own, or in conjunction with phase difference, of a motor stall condition. Reference is also made to EP-A-0414643 which describes a technique for preventing a stalled linear motor device from damage, by monitoring acceleration servos which generate signals representative of the difference between a command acceleration signal controlling the linear motor, and the actual acceleration experienced by the linear motor device, which signal represents the acceleration error and the direction of the error. The difference signal is compared against programmed limits to develop a break-loose signal when a programmed limit (positive or negative) is exceeded. The break-loose signal is monitored as to duration, which duration is preprogrammed according to the dynamics of the system specifications in use. In the event that the break-loose signal exceeds the preprogrammed time limit, a latch is set, generating an interrupt signal applied to the computer control which immediately removes all motive power from the system and tests the latch to determine the source of the error. The latch remains in the set state awaiting the computer test and is reset only after recognition by the computer. Reference is also made to US-A-4725765 which describes a technique for detecting the occurence of stall currents in a do motor control circuit and inhibiting the application of drive currents to the motor. The current flow through the motor is monitored, and the circuit responds to stall currents that are continuous for a predetermined period of time a method of detecting a motor stall condition of a dc motor (17) under the control of a motor control system comprising a programmable microcontroller (12) coupled to a motor driver (19) the motor driver communicating with the motor (17), and the motor being coupled to a position encoder (21) which is in communication with the microcontroller (12), said method comprising the following steps: providing an average stall threshold value ASV representing a maximum desirable operating limit; providing said microcontroller with a time counter for counting time intervals T, to a maximum count value of N; programming said microcontroller to issue a motor command representing the position error between the desired motor position and the actual motor position for a chosen time interval T; programming said microcontroller to perform the following steps for each time interval T: (a) to compare a motor command to the average threshold value ASV representing a maximum desirable operating limit, and to proceed to step (b) if said motor command is greater than said ASV, or to step (d) if said motor command is less than said ASV; (b) to compare the count value in a counter in said microcontroller to zero and, if the count is equal to zero then to signal a motor stall fault, or if the count is non-zero then to proceed to step (c); (c) to decrement the count value in said counter and then proceed to step (e); (d) if the count value in said counter equals a predetermined maximum value N, then to signal motor "OK" and to proceed to step (e), or if the count value is not equal to N, then to increment the counter up to the maximum of N and to proceed to step (e); (e) to repeat steps (a) to (d) for next time interval T. In the preferred embodiment, the microcontroller is in bus communication with a Motor Control System Application Specific Integrated Circuit (MCS ASIC). The MCS ASIC is under the direction of the motor controller for servo-controlling a plurality of motors. In the most preferred embodiment, the MCS ASIC servo-controls each motor to provide individual servo-control, the controller algorithm for each motor can be independently changed on the fly and the servo-rate for each motor is independently selectable. Further each motor is subject to the control of a stall-detection algorithm. In response to the stall-detection algorithm, the motor controller will shut down the necessary module system motor to prevent motor destruction. The MCS ASIC is a digital component designed to provide high-performance servo-control for do motors. It operates as a peripheral device under the control of a host microprocessor which, in the preferred environment, is a mailing system controller. The motor controller performs digital filtering for closed-loop compensation. The respective input channels of the MCS ASIC transforms the signals from a respective motor position encoder into a digital word through a quadrature decoder and up/down counter, and the respective output channels transforms tha filter digital output into a pulse-width modulated (PWM) signal. An output from the up/down is directed to the microcontroller where a position error of zero results in a motor command of zero, while a large sampled position error results to a large motor command magnitude. The position error is the difference between the desired angular position and the sampled actual motor shaft position as provided by and incremental position encoder. Therefore, a stall condition exists when the motor's actual angular position lags the desired position excessively as the motion profile generator algorithm incrementally computes the next sampling interval's position command. Brief Description of the Drawings Fig. 1 is a diagram of the host motor controller, MCS ASIC and motor driver in accordance with the present invention. Fig. 2 is a schematic of a motor control system in accordance with the present invention. Fig. 3 is a logic flow representation of the stall logic of the microcontroller. Detailed Description of a Preferred Embodiment Referring to Figs. 1 and 2, the motor control system is comprised of a microcontroller 12 which is in bus 13 communication with a MCS ASIC 15. In the most preferred embodiment of the present invention, the MCS ASIC 15 controls eight separate motors 17 through a respective conventional amplifier 19. Each motor 17 is in communication with an encoder 21 in any suitable manner. The encoder 21 output is directed to the MCS ASIC 15. Referring particularly to Fig. 2, the host microcontroller 12 is programmed within a motion profile control module 20 to generate a motion profile for the motor 17 divisible in T- intervals. The output motor position command of the motion profile control module 20 is directed to a digital servo-control 24 through a sum junction 22. The output of the sum junction 22 is representative of the motor position error between a desired position and the actual position of the motor 17. The position error output of the sum junction 22 is directed to a digital servo-control 24 which issues the motor command. The motor command output from the digital servo-control 24 is directed to a stall/fault detection module 26 of the microcontroller 12 and to the MCS ASIC 15 position command register 30 over bus 13 every T-interval. The MCS ASIC 15 includes the position command register 30 of which the output is directed to a digital filter 32 through a sum junction 34. The output of the digital filter 32 is directed to a motor command register 36. The motor command register 36 outputs a motor command direction signal to the amplifier 19. A pulse width modulator 38 obtains information from the motor command register from whicn the pulse width modulator 38 issues PWM signals to the amplifier 19. The MCS ASIC 15 also includes an input signal digital filter 40 which receives the output signals from the position encoder 21. The output of the input signal digital filter 40 is directed to a quadrature decoder 42. The output of the quadrature decoder 42 is directed to an up/down counter 44. The output of the up/down counter 44 is directed to a position feedback register 46 which directs an output signal to the sum junction 34. Generally the motor command signals from the microcontroller 12 are received in the position command register 30 which signals are compared to the signals from the position feedback register 46. As a result, the output from the sum junction 34 is representative of the position difference. That difference is received by the digital filter 32 which generates a new position command which is stored in the motor command register 36. The output from the encoder 21 is translated to a digital position word by the input signal digital filter 40, the quadrature decoder 42, and the up/down counter 44. The output of the up/down counter 44 is directed to the sum junction 22 of the microcontroller 12 to determine the position error as noted above. It should be appreciated by one skilled in the art that the MCS ASIC is a programmed device having a programmed micro-processing system specifically programmed with a particular control algorithm for each of a plurality of motors 19. In the preferred embodiment, the respective motor control algorithms are executed in the digital filter 32. Further, in the most preferred embodiment, the motor algorithm includes parameters stored in a parameter register (not shown) on the MIC ASIC which can be accessed by the microcontroller 12 such that the motor control algorithm can be changed on the fly. A detailed description of the presently preferred MCS ASIC 15 is presented in U.S. Patent No. 4,931,712, entitled "Multiple Channel Servo Configuration", herein incorporated by reference. Referring to Figs. 2 and 3, in order to detect an imminent motor stall, the stall/detection program module 26 is programmed to enter a routine at each T-interval 50. At decision block 51, the motor command which is based on the determined position error is compared to a desired average threshold amount (also called herein: average stall threshold value "ASV"). The average threshold amount represents a time dependent average of the position error which is less than the motor destruction amount for the particular motor 17 as prescribed by the motor manufacturer. If the motor command is less than the average threshold amount, at decision block 52, a programmed time counter is compared to a programmed maximum count. Again the maximum count is a prescribed parameter by the motor manufacturer. If the time count is equal to the maximum count, the motor is determined "OK" at logic block 54 and the routine is ended for that T-interval at block 56. At decision block 52, if the time count is not equal to the maximum count then the program count is incremented to a maximum count "N" at logic block 58 and the routine is ended at logic block 56 for that T-interval. It is noted that N multiplied by T equals maximum time before motor destruction in micro seconds. If, at logic block 51, the motor command is greater than the . average threshold, the time count is tested at decision block 60 to see if the count is equal to zero. If the time counter is non-zero, the counter is then decremented at logic block 62 and the routine is ended at 56. If at logic block 60 the counter has been decremented to zero, a motor stall state is declared at logic block 64 and the routine is ended at 56. Once a motor stall is declared the microcontroller has the option of taking appropriate corrective action. In the preferred embodiment, that corrective action is stopping operation of the motor control system of the mail processing system. It is a first aim of the present invention as particularly disclosed and illustrated herein to provide a method of detecting a motor stall condition prior to motor destruction. It is a second aim to provide a dc motor under digital servo control such that when a motor stall condition is detected the microcontroller shuts down the system prior to motor stall; and it is a third aim to provide a method of detecting a motor stall condition in a mail processing system wherein the stall condition is presented by an envelope jam and upon detection the mail processing system microcontroller shuts down the system for removal of the envelope jam.

Claims: A method of detecting a motor stall condition of a dc motor (17) under the control of a motor control system comprising a programmable microcontroller (12) coupled to a motor driver (19) the motor driver communicating with the motor (17), and the motor being coupled to a position encoder (21) which is in communication with the microcontroller (12), said method comprising the following steps: providing an average stall threshold value ASV representing a maximum desirable operating limit; providing said microcontroller with a time counter for counting time intervals T, to a maximum count value of N; programming said microcontroller to issue a motor command representing the position error between the desired motor position and the actual motor position for a chosen time interval T; programming said microcontroller to perform the following steps for each time interval T: (a) to compare a motor command to the average threshold value ASV representing a maximum desirable operating limit, and to proceed to step (b) if said motor command is greater than said ASV, or to step (d) if said motor command is less than said ASV; (b) to compare the count value in a counter in said microcontroller to zero and, if the count is equal to zero then to signal a motor stall fault, or if the count is non-zero then to proceed to step (c); (c) to decrement the count value in said counter and then proceed to step (e); (d) if the count value in said counter equals a predetermined maximum value N, then to signal motor "OK" and to proceed to step (e), or if the count value is not equal to N, then to increment the counter up to the maximum of N and to proceed to step (e); (e) to repeat steps (a) to (d) for next time interval T. A method according to Claim 1, wherein the motor control system comprises a motor controller (15) communicating with the motor driver (19) and with the microcontroller (12).

Inventors: SALAZAR EDILBERTO I, SALAZAR, EDILBERTO I.
Applicants: PITNEY BOWES INC, PITNEY BOWES INC.
Application year: 1993
Main classification: G05B19
IPC codes: H02H7, G05B19