Module 1 Slides
Module 1 Slides
Mobile Robots
Dr. Magnus Egerstedt
Professor
School of Electrical and
Computer Engineering
Module 1
Introduction to Controls
1.1.1
http://www.youtube.com/user/GRITSlab
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
1.1.2
1.1.3
1.1.4
Course Mechanics
Lectures (8 each week, 7 weeks)
Weekly quizzes + glue lectures
Additional material
Sim.I.am MATLAB robot simulator
Build you own robot
1.1.5
A Disclaimer
3(mw + m
b )v
2 sin
d
mb
L(
R
cos
mb d cos 2
+
)
I
2
+ b d si
m
2 sin +
n ( 2 + 2
d
)2 = m 1gd sin =
b
m
2
1 )m w + 2
+ b ( L + R )
s
co
+ mb d sin
)
I
R
d
3
m
2
(
2
b
+
+ s2R
co
d
m
b
L
3
((
R)
1.1.6
Robots
Epidemics
Stock markets
Thermostats
Circuits
Engines
Power grids
Autopilots
1.2.1
1.2.2
1.2.2
1.2.2
1.2.3
Stability
Tracking
Robustness
Disturbance rejection
Optimality
1.3.1
Dynamical Models
Effective control strategies rely on predictive models
Discrete time:
xk+1 = f (xk , uk )
Difference equation
Example: Clock
xk+1 = xk + 1
1.3.2
10
1.3.3
1.3.4
10
1.3.5
Sample time: t
xk = x(k t) ) xk+1 = x((k + 1) t) =???
x(k t + t) x(k t) + tx(k
t)
xk+1 = xk + tf (xk , uk )
1.3.6
F = cu
(c=electro-mechanical
transmission coefficient)
c
x = a ) mx = cu ) x = u
m
1.4.1
1.4.2
1.4.3
Control Design
Assume that we measure the velocity (y=x)
The control signal should be a function of r-y (=e)
What properties should the control signal have?
Small e gives small u
u should not be jerky
u should not depend on us knowing c and m exactly
1.4.4
8
< umax
umax
u=
:
0
x ! 0)
if e > 0
if e < 0
if e = 0
1.5.1
Bang-Bang Control
80
r=70
70
60
50
40
30
20
10
5
t
10
1.5.2
Bang-Bang Control
100
80
Bumpy
ride
Burns
out
actuators
.
60
40
20
BAD!
20
40
60
80
100
5
t
10
1.5.3
P-Regulators
Problem: The controller over-reacts to small errors
Attempt 2
u = ke
Small error yields small control signals
Nice and smooth
So-called proportional regulation (P-regulator)
1.5.4
P-Regulator
60
55
50
45
40
35
30
25
20
15
10
0.5
1.5
2.5
t
3.5
4.5
1.5.5
1.5.6
c
x = u
m
Attempt 3
m
u = ke +
x
c
c
x = 0 = k(r x) + x
m
Tracking!
x ) x=r
1.6.1
P-Regulator
60
55
50
45
40
35
30
25
20
15
10
0.5
1.5
2.5
t
3.5
4.5
1.6.2
PI-Regulators
Attempt 4
u(t) = kP e(t) + kI
e( )d
0
1.6.3
PI-Regulator
70
60
50
40
30
20
10
0.5
1.5
2.5
t
3.5
4.5
1.6.4
de(t)
u(t) = kP e(t) + kI
e( )d + kD
dt
0
P: Contributes to stability, medium-rate responsiveness
I: Tracking and disturbance rejection, slow-rate
responsiveness. May cause oscillations
D: Fast-rate responsiveness. Sensitive to noise
PID: By far the most used low-level controller.
Note: Stability is not guaranteed.
Feedback has a remarkable ability
to fight uncertainty in model parameters!
1.7.1
Cruise-Controller (Again)
c
x = u
m
c = 1, m = 1,
= 0.1, r = 1
1.7.2
Cruise-Controller (Again)
Step Response
0.5
0.45
0.4
Amplitude
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
kP = 1, kI = 0, kD = 0
5
Time (sec)
10
1.7.3
Cruise-Controller (Again)
Step Response
1
0.9
0.8
Amplitude
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
5
Time (sec)
10
kP = 1, kI = 1, kD = 0
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
1.7.4
Cruise-Controller (Again)
Step Response
1.4
1.2
Amplitude
0.8
0.6
0.4
0.2
5
Time (sec)
10
kP = 1, kI = 10, kD = 0
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
1.7.5
Cruise-Controller (Again)
Step Response
1
0.9
0.8
Amplitude
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
5
Time (sec)
10
kP = 1, kI = 1, kD = 0.1
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
1.7.6
de(t)
u(t) = kP e(t) + kI
e( )d + kD
dt
0
How turn something as strange as an integral into something
implementable?
enew eold
t (sample time) e
t
1.8.1
de(t)
u(t) = kP e(t) + kI
e( )d + kD
dt
0
How turn something as strange as an integral into something
implementable?
enew eold
t (sample time) e
t
1.8.1
de(t)
u(t) = kP e(t) + kI
e( )d + kD
dt
0
How turn something as strange as an integral into something
implementable?
enew eold
t (sample time) e
t
Z t
N
X
e( )d
e(k t) t = tE
0
tEnew =
N
+1
X
k=0
e(k t) =
te((N + 1) t) +
tEold
k=1
Enew = Eold + e
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
1.8.1
Implementation
Each time the controller is called
read e;!
!e_dot=e-old_e;!
!E=E+e;!
!u=kP*e+kD*e_dot+kI*E;!
!old_e=e;!
Note: The coefficients now include the sample time
and must be scaled accordingly
1.8.2
1.8.3
x
= cu
u = kP e + kI
g
ed + kD e
1.8.4