Motor Control
Suppose we wish to use a microprocessor to control a motor
- (or to control the load attached to the motor!)
Power
Operator Input
supply torque,
analog speed,
voltage position
digital
CPU ? Amplifier Motor Load
voltage,
D/A, linear, current
PWM PWM
strain gauge,
Sensor potentiometer,
tachometer,
encoder
Convert discrete signal to analog voltage
- D/A converter
- pulse width modulation (PWM)
Amplify the analog signal
- power supply
- amplifier
Types of power amplifiers
- linear vs. PWM
- voltage-voltage vs. transconductance (voltage-current)
DC Motor
- How does it work?
What to control?
- electrical signals: voltage, current
- mechanical signals: torque, speed, position
Sensors: Can we measure the signal we wish to control
(feedback control)?
EECS461, Lecture 6, updated September 17, 2008 1
Outline
Review of Motor Principles
- torque vs. speed
- voltage vs current control
- with and without load
D/A conversion vs. PWM generation
- harmonics
- advantages and disadvantages
- creating PWM signals
power amplifiers
- linear vs PWM
- voltage vs transconductance
Control
- choice of signal to control
- open loop
- feedback
References are [5], [3], [1], [4], [8], [7], [6], [9]
EECS461, Lecture 6, updated September 17, 2008 2
Motor Review
Recall circuit model of motor:
R I L
+ +
VB=K V T M,
V
- -
TL J
Suppose motor is driven by a constant voltage source. Then
steady state speed and torque satisfy
KM V RTL
=
KM KV + RB
KM (V B + KV TL)
TM =
KM KV + RB
Torque-speed curve
TM
increasing V
EECS461, Lecture 6, updated September 17, 2008 3
Voltage Control
Suppose we attempt to control speed by driving motor with a
constant voltage.
With no load and no friction (TL = 0, B = 0)
V
=
KV
TM = 0
Recall that torque is proportional to current: TM = KM I .
Hence, with no load and no friction, I = 0, and motor draws
no current in steady state.
Current satisfies
V VB
I =
R
In steady state, back EMF balances applied voltage, and thus
current and motor torque are zero.
With a load or friction, (TL 6= 0 and/or B 6= 0)
V
<
KV
TM > 0
Speed and torque depend on load and friction
- friction always present (given in part by motor spec, but
there will be additional unknown friction)
- load torque may also be unknown, or imprecisely known
EECS461, Lecture 6, updated September 17, 2008 4
Issue: Open Loop vs Feedback Control
Using constant voltage control we cannot specify desired torque
or speed precisely due to friction and load
- an open loop control strategy
- can be resolved by adding a sensor and applying closed loop,
or feedback control
add a tachometer for speed control
* (volts) error V
DC
controller motor
-
volts rad/sec
tachometer
add a current sensor for torque (TM = KM I ) control
I* I error V I
DC
controller motor
-
Will study feedback control in Lecture 7.
EECS461, Lecture 6, updated September 17, 2008 5
Issue: Steady State vs. Transient Response
Steady state response: the response of the motor to a constant
voltage input eventually settles to a constant value
- the torque-speed curves give steady-state information
Transient response: the preliminary response before steady
state is achieved.
The transient response is important because
- transient values of current, voltage, speed, . . . may become
too large
- transient response also important when studying response to
nonconstant inputs (sine waves, PWM signals)
The appropriate tool for studying transient response of the DC
motor (or any system) is the transfer function of the system
EECS461, Lecture 6, updated September 17, 2008 6
System
A system is any object that has one or more inputs and outputs
input output
System
Input: applied voltage, current, foot on gas pedal, . . .
Output: other variable that responds to the input, e.g., voltage,
current, speed, torque, . . .
Examples:
- RC circuit
R
vi(t) + C vo(t)
-
Input: applied voltage, Output: voltage across capacitor
- DC motor
R I L
+ +
VB=K V T M,
V
- -
TL J
Input: applied voltage, Output: current, torque, speed
EECS461, Lecture 6, updated September 17, 2008 7
Stability
We say that a system is stable if a bounded input yields a
bounded output
If not, the system is unstable
Consider DC Motor with no retarding torque or friction
- With constant voltage input, the steady state shaft speed
is constant the system from V to is stable
- Suppose that we could hold current constant, so that the
steady state torque is constant. Since
d TM
= ,
dt J
the shaft velocity and velocity increases without
bound the system from I to is unstable
Tests for stability
- mathematics beyond scope of class
- we will point out in examples how stability depends on system
parameters
EECS461, Lecture 6, updated September 17, 2008 8
Frequency Response
A linear system has a frequency response function that governs
its response to inputs:
u(t) y(t)
H(j)
If the system is stable, then the steady state response to a
sinusoidal input, u(t) = sin(t), is given by H(j):
y(t) |H(j)| sin(t + H(j))
We have seen this idea in Lecture 2 when we discussed anti-
aliasing filters and RC circuits
The response to a constant, or step, input, u(t) = u0, t 0,
is given by the DC value of the frequency response:
y(t) H(0)u0
EECS461, Lecture 6, updated September 17, 2008 9
Bode Plot Example
Lowpass filter1, H(j) = 1/(j + 1)
H(j) = 1/(j+1)
0
10
20
gain, db
30
40
50
2 1 0 1 2
10 10 10 10 10
20
phase, degrees
40
60
80
100
2 1 0 1 2
10 10 10 10 10
frequency, rad/sec
Steady state response to input sin(10t) satisfies yss(t) =
0.1 sin(10t 85).
response of H(j) to sin(10t)
1
input
output
0.8
0.6
0.4
0.2
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time, seconds
1 MATLAB file bode plot.m
EECS461, Lecture 6, updated September 17, 2008 10
Frequency Response and the Transfer Function
To compute the frequency response of a system in MATLAB,
we must use the transfer function of the system.
(under appropriate conditions) a time signal v(t) has a Laplace
transform Z
st
V (s) = v(t)e dt
0
Suppose we have a system with input u(t) and output y(t)
u(t) y(t)
H(s)
The transfer function relates the Laplace transform of the
system output to that of its input:
Y (s) = H(s)U (s)
for simple systems H(s) may be computed from the differential
equation describing the system
for more complicated systems, H(s) may be computed from
rules for combining transfer functions
To find the frequency response of the system, set s = j ,
and obtain H(j)
EECS461, Lecture 6, updated September 17, 2008 11
Transfer Function of an RC Circuit
RC circuit
- Input: applied voltage, vi(t).
- Output: voltage across capacitor, vo(t)
R
vi(t) + C vo(t)
-
differential equation for circuit
- Kirchoffs Laws: vi(t) I(t)R = vo(t)
- current/voltage relation for capacitor: I(t) = C dvdt
o (t)
- combining yields
dvo(t)
RC + vo(t) = vi(t)
dt
To obtain transfer function, replace
- each time signal by its Laplace transform: v(t) V (s)
- each derivative by s times its transform: dv(t)
dt sV (s)
- solve for Vo(s) in terms of Vi(s):
1
Vo(s) = H(s)Vi(s), H(s) =
RCs + 1
To obtain frequency response, replace j s
1
H(j) =
RCj + 1
EECS461, Lecture 6, updated September 17, 2008 12
Transfer Functions and Differential Equations
Suppose that the input and output of a system are related by
a differential equation:
dn y dn1 y dn2 y dy
+ a1 + a2 + . . . an1 + an y =
dtn dtn1 dtn2 dt
dn1 u dn2 u du
b1 + b2 + . . . bn1 + bn u
dtn1 dtn2 dt
Replace dmy/dtm with smY (s):
n n1 n2
s + a1 s + a2 s + . . . + an1 s + an Y (s) =
n1 n2
b1 s + b2 s + . . . bn1 s + bn U (s)
Solve for Y (s) in terms of U (s) yields the transfer function
as a ratio of polynomials:
N (s)
Y (s) = H(s)U (s), H(s) =
D(s)
n n1 n2
N (s) = s + a1s + a2s + . . . + an1 + an
n1 n2
D(s) = b1s + b2 s + . . . bn1s + bn
The transfer function governs the response of the output to
the input with all initial conditions set to zero.
EECS461, Lecture 6, updated September 17, 2008 13
Combining Transfer Functions
There are (easily derivable) rules for combining transfer
functions
- Series: a series combination of transfer functions
u(t) y(t)
G(s) H(s)
reduces to
u(t) y(t)
G(s)H(s)
- Parallel: a parallel combination of transfer functions
H(s)
u(t) y(t)
G(s)
reduces to
u(t) y(t)
G(s)+H(s)
EECS461, Lecture 6, updated September 17, 2008 14
Feedback Connection
Consider the feedback system
u(t) e(t) y(t)
G(s)
-/+
H(s)
Feedback equations: the output depends on the error, which
in turn depends upon the output!
(a) y = Ge
(b) e = u Hy
If we use negative feedback, and H = 1, then e = y u
- the input signal u is a command to the output signal y
- e is the error between the command and the output
Substituting (b) into (a) and solving for y yields
u(t) y(t)
G(s)
1+/-G(s)H(s)
The error signal satisfies
u(t) e(t)
1
1+/-G(s)H(s)
EECS461, Lecture 6, updated September 17, 2008 15
Motor Transfer Function, I
Four different equations that govern motor response, and their
transfer functions
- Current: Kirchoffs Laws imply
dI
L + RI = V VB
dt
1
I(s) = (V (s) VB (s)) (1)
sL + R
- Speed: Newtons Laws imply
d
J = TM B TL
dt
1
(s) = (TM (s) TL(s)) (2)
sJ + B
- Torque:
TM (s) = KM I(s) (3)
- Back EMF:
VB (s) = KV (s) (4)
We can solve for the outputs TM (s) and (s) in terms of
the inputs V (s) and TL(s)
EECS461, Lecture 6, updated September 17, 2008 16
Motor Transfer Function, II
Combine (1)-(4):
TL
TM -
V V-VB I
1 KM 1
sL+R sJ+B
-
VB
KV
Transfer function from Voltage to Speed (set TL = 0):
- First combine (1)-(3)
KM 1
(s) = (V (s) VB (s))
(sJ + B) (sL + R)
- Then substitute (4) and solve for (s) = H(s)V (s):
KM 1
(sJ+B) (sL+R)
(s) = KM KV
V (s)
1
1 + (sJ+B) (sL+R)
KM
= V (s)
(sL + R)(sJ + B) + KM KV
M K (sJ+B)
Similarly, TM (s) = (sL+R)(sJ+B)+K V (s)
M KV
The steady state response of speed and torque to a constant
voltage input V is obtained by setting s = 0 (cf. Lecture 5):
KM V KM BV
ss = , TM ss =
RB + KM KV RB + KM KV
EECS461, Lecture 6, updated September 17, 2008 17
Motor Frequency Response
DC Motor is a lowpass filter2
DC motor frequency response
10
15
20
gain, db
25
30
35
40
45
3 2 1 0 1 2
10 10 10 10 10 10
20
phase, degrees
40
60
80
100
3 2 1 0 1 2
10 10 10 10 10 10
frequency, Hz
Parameter Values
- KM = 1 N-m/A
- KV = 1 V/(rad/sec)
- R = 10 ohm
- L = 0.01 H
- J = 0.1 N-m/(rad/sec)2
- B = 0.28 N-m/(rad/sec)
Why is frequency response important?
- Linear vs. PWM amplifiers . . .
2 Matlab m-file DC motor freq response.m
EECS461, Lecture 6, updated September 17, 2008 18
Linear Power Amplifier
Voltage amplifiers:
V Voltage V
D/A Amplifier Motor
- output voltage is a scaled version of the input voltage, gain
measured in V /V .
- Draws whatever current is necessary to maintain desired
voltage
K V RTL
- Motor speed will depend on load: = K MK +RB
M V
Current (transconductance) amplifiers:
V Current I
D/A Amplifier Motor
- output current is a scaled version of the input voltage, gain
measured in A/V .
- Will produce whatever output voltage is necessary to
maintain desired current
- Motor torque will not depend on load: TM = KM I
Advantage of linearity: Ideally, the output signal is a constant
gain times the input signal, with no distortion
- In reality, bandwidth is limited
- Voltage and/or current saturation
Disadvantage:
- inefficient unless operating full on, hence tend to consume
power and generate heat.
EECS461, Lecture 6, updated September 17, 2008 19
Pulse Width Modulation
Recall:
- with no load, steady state motor speed is proportional to
applied voltage
- steady state motor torque is proportional to current (even
with a load)
With a D/A converter and linear amplifier, we regulate the
level of applied voltage (or current) and thus regulate the
speed (or torque) of the motor.
PWM idea: Apply full scale voltage, but turn it on and off
periodically
- Speed (or torque) is (approximately) proportional to the
average time that the voltage or current is on.
PWM parameters:
- switching period, seconds
- switching frequency, Hz
- duty cycle, %
see the references plus the web page [2]
EECS461, Lecture 6, updated September 17, 2008 20
PWM Examples
40% duty cycle3: duty cycle = 40%, switching period = 1 sec, switching frequency = 1 Hz
1.2
0.8
PWM signal
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
time,seconds
10% duty cycle: duty cycle = 10%, switching period = 1 sec, switching frequency = 1 Hz
1.2
0.8
PWM signal
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
time,seconds
90% duty cycle: duty cycle = 90%, switching period = 1 sec, switching frequency = 1 Hz
1.2
0.8
PWM signal
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
time,seconds
3 Matlab files PWM plots.m and PWM.mdl
EECS461, Lecture 6, updated September 17, 2008 21
PWM Frequency Response, I
Frequency spectrum of a PWM signal will contain components
at frequencies k/T Hz, where T is the switching period
PWM input: switching frequency 10 Hz, duty cycle 40%4:
duty cycle = 40%, switching period = 0.1 sec, switching frequency = 10 Hz
0.8
PWM signal
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
time,seconds
Frequency spectrum will contain
- a nonzero DC component (because the average is nonzero)
- components at multiples of 10 Hz
duty cycle = 40%, switching period = 0.1 sec, switching frequency = 10 Hz
4
3.5
2.5
1.5
0.5
0
100 80 60 40 20 0 20 40 60 80 100
frequency, Hz
4 Matlab files PWM spectrum.m and PWM.mdl
EECS461, Lecture 6, updated September 17, 2008 22
PWM Frequency Response, II
PWM signal with switching frequency 10 Hz, and duty cycle
for the kth period equal to 0.5(1 + cos(.2kT )) (a 0.1 Hz
cosine shifted to lie between 0 and 1, and evaluated at the
switching times T = 0.1 sec)5
0.1 Hz sinusoid, 0.5(1+cos(0.2 t))
1.2
mostly on mostly off
1
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
time, seconds
Remove the DC term by subtracting 0.5 from the PWM signal
PWM signal shifted to remove DC component
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0 1 2 3 4 5 6 7 8 9 10
time, seconds
5 Matlab files PWM sinusoid.m and PWM.mdl
EECS461, Lecture 6, updated September 17, 2008 23
PWM Frequency Response, III
Frequency spectrum of PWM signal has
- zero DC component
- components at 0.1 Hz
- components at multiples of the switching frequency, 10 Hz
frequency response of PWM signal
3
2.5
1.5
0.5
0
20 15 10 5 0 5 10 15 20
frequency, Hz
Potential problem with PWM control:
- High frequencies in PWM signal may produce undesirable
oscillations in the motor (or whatever device is driven by the
amplified PWM signal)
- switching frequency usually set 25 kHz so that switching
is not audible
EECS461, Lecture 6, updated September 17, 2008 24
PWM Frequency Response, IV
Suppose we apply the PWM output to a lowpass filter that
has unity gain at 0.1 Hz, and small gain at 10 Hz
low pass filter, 1/(0.1j + 1)
0
10
gain, db
20
30
40
2 1 0 1 2
10 10 10 10 10
20
phase, degrees
40
60
80
2 1 0 1 2
10 10 10 10 10
frequency, Hz
Then, after an initial transient, the filter output has a 0.1 Hz
oscillation.
filtered PWM output
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0 1 2 3 4 5 6 7 8 9 10
time, seconds
EECS461, Lecture 6, updated September 17, 2008 25
PWM Generation
Generate PWM using D/A and pass it through a PWM
amplifier
V/V PWM
CPU D/A amplifier Motor
techniques for generating analog PWM output ([6]):
- software
- timers
- special modules
Feed the digital information directly to PWM amplifier, and
thus bypass the D/A stage
duty cycle
V/V PWM
CPU amplifier Motor
PWM voltage or current amplifiers
must determine direction
- normalize so that
* 50% duty cycle represents 0
* 100% duty cycle represents full scale
* 0% duty cycle represents negative full scale
* what we do in lab, plus we limit duty cycle to 35% 65%
- use full scale, but keep track of sign separately
EECS461, Lecture 6, updated September 17, 2008 26
References
[1] D. Auslander and C. J. Kempf. Mechatronics: Mechanical
Systems Interfacing. Prentice-Hall, 1996.
[2] M. Barr. Introduction to pulse width modulation.
www.oreillynet.com/pub/a/network/synd/2003/07/02/pwm.html.
[3] W. Bolton. Mechatronics: Electronic Control Systems in
Mechanical and Elecrical Engineering, 2nd ed. Longman,
1999.
[4] C. W. deSilva. Control Sensors and Actuators. Prentice Hall,
1989.
[5] G.F. Franklin, J.D. Powell, and A. Emami-Naeini. Feedback
Control of Dynamic Systems. Addison-Wesley, Reading, MA,
3rd edition, 1994.
[6] S. Heath. Embedded Systems Design. Newness, 1997.
[7] C. T. Kilian. Modern Control Technology: Components and
Systems. West Publishing Co., Minneapolis/St. Paul, 1996.
[8] B. C. Kuo. Automatic Control Systems. Prentice-Hall, 7th
edition, 1995.
[9] J. B. Peatman. Design with PIC Microcontrollers. Prentice-
Hall, 1998.
EECS461, Lecture 6, updated September 17, 2008 27