Stepper drive control using variable step angle
OwnerHung D. Vuinventor
Life of this patent
Estimating the term…
Abstract
The stepper motor controller, implemented as computer software, converts each input pulse into many internal pulses, which internal pulses are used for calculating a command angle during each sampling time interval of operation. The values of the angle commands may vary, from interval to interval, as a function of the input pulse train rate (i.e., the number of new pulses input per interval). The system accesses an internal look-up table to convert vector data into torque values, for driving the motor; if the input pulse rate is sufficiently high to warrant doing so, the look-up table data can be accessed out of sequence.
Claims25
A method for controlling rotation of a stepper motor shaft from its position at the commencement of operation to a desired final position, comprising:
- establishing, as a constant, an internal steps per revolution value, and determining a conversion factor equal to said internal steps per revolution value divided by the number of full steps per shaft revolution at which the motor is to operate, said internal steps per revolution value being a whole number multiple of the number of steps per shaft revolution at which the motor is to operate;
- and repeating the following sequence at each of a multiplicity of equal time intervals:
- (a) detecting pulses newly input for operation of the stepper motor;
- (b) multiplying the number of said pulses newly input by said conversion factor, to convert said pulses into new internal steps;
- (c) adding said new internal steps to internal steps converted from pulses detected during previous time intervals, from commencement of operation, so as to establish a final shaft position represented by the total of said new and previous internal steps;
- (d) determining, in terms of internal steps, a required shaft travel movement based upon the present position and the final position of the motor shaft;
- (e) dividing said required shaft travel movement by said conversion factor;
- and
- (f) multiplying at least the whole number portion of the quotient of said division by an angle constant equal to 360.degree. divided by said internal steps per revolution value, thereby to define a command angle through which the shaft is to move.
A controller for controlling rotation of a stepper motor shaft from its position at the commencement of operation to a desired final position, said controller comprising electronic data processing means programmed for establishing, as a constant, an internal steps per revolution value, and determining a conversion factor equal to said internal steps per revolution value divided by the number of full steps per shaft revolution at which the motor is to operate, said internal steps per revolution value being a whole number multiple of the number of steps per shaft revolution at which the motor is to operate, and for repeating the following sequence at each of a multiplicity of equal time intervals:
- (a) detecting pulses newly input for operation of the stepper motor;
- (b) multiplying the number of said pulses newly input by said conversion factor, to convert said pulses into new internal steps;
- (c) adding said new internal steps to internal steps converted from pulses detected during previous time intervals, from commencement of operation, so as to establish a final shaft position represented by the total of said new and previous internal steps;
- (d) determining, in terms of internal steps, a required shaft travel movement based upon the present position and the final position of the motor shaft;
- (e) dividing said required shaft travel movement by said conversion factor;
- and
- (f) multiplying at least the whole number portion of the quotient of said division by an angle constant equal to 360.degree. divided by said internal steps per revolution value, thereby to define a command angle for movement of the shaft.
A stepper motor system comprising a stepper motor and a controller operatively connected thereto, said controller controlling rotation of the shaft of said motor from its position at the commencement of operation to a desired final position, and comprising electronic data processing means programmed for establishing, as a constant, an internal steps per revolution value, for determining a conversion factor equal to said internal steps per revolution value divided by the number of full steps per shaft revolution at which said motor operates, said internal steps per revolution value being a whole number multiple of said number of steps per shaft revolution, and for repeating the following sequence at each of a multiplicity of equal time intervals:
- (a) detecting pulses newly input for operation of said stepper motor;
- (b) multiplying the number of said pulses newly input by said conversion factor, to convert said pulses into new internal steps;
- (c) adding said new internal steps to internal steps converted from pulses detected during previous time intervals, from commencement of operation, so as to establish a final shaft position represented by the total of said new and previous internal steps;
- (d) determining, in terms of internal steps, a required shaft travel movement based upon the present position and the final position of said motor shaft;
- (e) dividing said required shaft travel movement by said conversion factor;
- (f) multiplying at least the whole number portion of the quotient of said division by an angle constant equal to 360.degree. divided by said internal steps per revolution value, thereby to define a command angle for movement of said shaft;
- (g) determining effectively the torque necessary to effect movement of the motor shaft through command angle;
- and
- (h) generating a signal for applying to said motor the current necessary to produce such torque.
Dependencies are inferred from the claim text.