STEPPER MOTOR CONTROL
A
stepper motor rotates by a specific number of degrees in response to
an electrical input pulse. It is an electromagnetic incremental
actuator that converts digital pulse inputs to analog shaft motion. A
train of pulses is made to turn the shaft of the motor by steps. No
position sensors or feedback control loops are required.
We
are going to design and implement a digital program for the control of a
variable-reluctance single-stack four-phase two-pole stepper motor.
There are four digital inputs to the motor (D,C,B,A). The step size
is 45º. The motor can rotate both in the clockwise and
counterclockwise directions depending on the sequence we use when
energizing the windings.
For
the clockwise rotation the windings must be energized in the
following sequence: A, A and B, B, B and C, C, C and D, D and A, A.
The direction of rotation can be reversed by reversing the sequence
of switching the windings: A, A and D, D, D and C, C, C and B, B, B
and A, A.
There
will be two push buttons the operator can interact with, To rotate
the motor clockwise the push button labeled (-F) must be pressed; to
rotate in the counteclockwise direction the push button labeled (-R)
shall be the one to press.
First
of all we come up with the state diagram which
has 8 states (S1, S2; S3, S4, S5, S6, S7,S8), corresponding to a
complete 360º rotation. Right besides each state the binary output
is shown. For example, state S4 will output (D,C,B,A) = (0110).
We
will use simple SR-latches and D type flip-flops to create the machine states,
We will implement the D type flip-flop as a SR-latch and will also use AND gates,
The inputs (-F, -R) occur as pulse signals and since there is no naturally occurring clock that can be synchronized
with the pulses to produced a clocked sequential circuit, we are
going to use a type of circuit known as pulse-mode sequential
circuit.
From
the state diagram we derive the encoded state table (not shown) which
will allow us to write the output equations as,
D
= q2'·q1' + q1'·q2'
C
= q2'·q1 + q2'·q0
B
= q2·q1 + q1·q0'
A
= q2·q0 + q2·q1'
Proceding
in a similar way we come up with the excitation tables (not shown)
from which we can write the input equations,
S2
= F·q1·q0 + R·q1'·q0'
R2
= F·q1'·q0' + R·q1·q0'
S1
= Fq2'·q0 + R·q2·q0
R1
= F·q2·q0 + R·q2'·q0
S0
= F·(q2'·q1' + q2·q1) + R·(q2'·q1 + q2·q1')
R0
= F”(q2'·q1 + q2·q1') + R·(q2'·q1' + q2·q1)
It will now become easy to execute the equations above on a PLC such as the LOGO!8,