Professional Documents
Culture Documents
Claudio Melchiorri
Robot control
Control problem: definition of the input signals for the joints (e.g. torques or actuator
input voltages) in order to achieve a predefined behavior for the manipulator.
The achievable performances can be very different because of:
The many control techniques available to solve such a problem
The hardware used to implement the control algorithms
The mechanical configuration of the robot (anthropomorphic, cartesian, ...)
The robot performances are mainly influenced by the mechanical design and by the
actuation system. For example:
The cartesian configuration decouples the dynamics of the joints;
DC motor with gearboxes have a linear dynamics that results “decoupled” from the
non-linear dynamics of the robot. However, gearboxes usually introduce non linear
effects such as dead-zones, friction, elasticity, ...;
Direct Drive motors on one hand ensure better performances and do not introduce
non-linearities in the transmission chain; on the other hand a more relevant dynamic
coupling between joints is present, and the (nonlinear) load dynamics is directly
applied to the actuators without reduction effects.
C. Melchiorri (DEIS) Control 3 / 85
Robot Position Control Introduction
Robot control
Control problems:
Control of the robot’s motion (position control schemes);
joint-space control
workspace control.
Control of the interaction with the workspace (force control schemes).
Control schemes:
Decentralized (or independent) control schemes (SISO)
Centralized control schemes (MIMO).
Control problem: define the generalized forces τ to be applied to the joints in order to
obtain a desired trajectory qd (t).
qm τ m q τ
Actuator - Gearbox - Joint
Kr q = qm τ m = K−1
r τ
τ m = (K−1 −1
r M̄Kr )q̈m + Dm q̇m + d
where
Dm = K−1 −1
r DKr
is the matrix collecting the motors friction coefficients, and
d = (K−1 −1 −1 −1 −1
r ∆M(q)Kr )q̈m + (Kr C(q, q̇)Kr )q̇m + Kr g(q)
K−1
? r
K−1
r g(.)
A manipulator (+ the actuation
K−1
r system) can be regarded as the
? ? K−1
r composition of:
−1
K−1
r C(., .)Kr
K−1 a system with input
? r q̈m , q̇m , qm and output d,
f
?
K−1 −1
r ∆M(.)Kr
Non-linear System
non linear and with
couplings
d a system with input τ m
and output qm , linear and
-
?
τ m- f- - q- decoupled
f Kr M̂−1 Kr q̈m - R q̇m - R m
- 6
Dm
Linear system
C. Melchiorri (DEIS) Control 7 / 85
Robot Position Control Decentralized position control
Decentralized control
Each joint is considered independently, and the term d is considered as an external
disturbance. These considerations can be applied with proficiency when there is
no direct coupling between the actuator and the joint (i.e. Kr ≫ I).
d iA (t)
vA (t) = RA iA (t) + LA + vM (t)
d t
where vA , iA , RA and LA are the voltage, the electric current, and the
armature resistance and inductance respectively.
Electro-mechanical coupling
τm (t) = kt iA (t)
where kt is the electro-mechanical constant of the motor.
Decentralized control
Mechanical dynamics (rotor)
d ωm (t)
I = τm (t) − b ωm (t)
d t
where I is the moment of inertia of the motor and of an eventually connected
payload and b the coefficient of friction of the overall system.
Mechano-electrical coupling
vM (t) = kv ωm (t)
Numerically, it results kv = kt if all the quantities are expressed in the
International System.
Decentralized control
Using Laplace transformation, it results:
Cm (s) = kt IA (s)
VM (s) = kv Ωm (s)
The two dynamics are then expressed by the transfer functions:
VA (s) − VM (s)
IA (s) =
R A + s LA
Ωm (s) 1
=
C (s) b+s I
C. Melchiorri (DEIS) Control 10 / 85
Robot Position Control Decentralized position control
Decentralized control
VM (s)
kv
Decentralized control
p
The system has two poles: −RA I ± (RA I )2 − 4 LA I kt kv
p1,2 =
2 LA I
RA I
Tm = mechanical time constant
kt kv
Usually Tm ≫ Te
LA
Te = electrical time constant
RA
C. Melchiorri (DEIS) Control 12 / 85
Robot Position Control Decentralized position control
Decentralized control
Since usually Tm ≫ Te (Te is negligible if compared with Tm ), then the following
simpler scheme can be considered:
d
Vc Va −
? Θ̈m Θ̇m Θm
- Gv - h- kt - h- 1 - 1 - 1 -
RA I s s
−6
kv
where Gv represents the voltage gain of the motor drive unit. In this case, the
input-output transfer function is
Θ(s) km
G (s) = =
VA (s) s(1 + sTm )
where
km = 1/kv velocity-voltage gain
RA I
Tm = kt kv time constant of the motor
C. Melchiorri (DEIS) Control 13 / 85
Robot Position Control Decentralized position control
ωm ω
- -
- Gearbox -
τm τ
The power at the input of the gearbox equals the power at the output:
τm (t) ωm (t) = τ (t) ω(t) (ω < ωm )
and, since Kr ω = ωm then τ (t) = Kr τm (t) (τ > τm ).
Thus, considering the variables before the gearbox (motor side) and using the
Laplace transforms, one gets
Cr 1 1
Cr ,m (s) = = (bc Ω(s) + s Ic Ω(s)) = 2 (bc + s Ic )Ωm (s)
Kr Kr Kr
C. Melchiorri (DEIS) Control 14 / 85
Robot Position Control Decentralized position control
C (s)
Ωm (s) =
b T + s IT
bc Ic
bT = b + IT = I +
Kr2 Kr2
Cascade control
d
yd
- h - R(s) u- G1 (s) ?
- h-v y
-
G2 (s)
- 6
In these cases, better performances can often be obtained by using two or more
control loops in a cascade configuration.
d
yd
- h- R2 (s) - h
vd u
- R1 (s) - G1 (s) - h - ? v y
-
G2 (s)
- 6 - 6
Cascade control
d
yd vd u ? v y
- i- R2 (s) - i- R1 (s) - G1 (s) - i - G2 (s) -
- 6 - 6
With a cascade control scheme, the following positive features can be obtained:
1 ‘local’ compensation of disturbances acting in the inner control loops, e.g. the
disturbance d can be compensated ‘before’ it affects the output y ;
2 the dynamics between vd and v (with control) is ‘faster’ than the dynamics between
u e v (without control);
3 the internal loop is more robust with respect to variations of the parameters;
4 it is possible to apply anti-saturation techniques to the variables vd and v ;
5 it is possible to obtain a predefined dynamic behavior between vd and y so that the
design of R2 (s) is easier. In particular, if G1 (s) is ‘faster’ than G2 (s), it is possible
to define R1 (s) so that, for the design of R2 (s), it is possible to consider v ≈ vd
(the design process is easier).
Cascade control
With a single controller R(s), the overall transfer function is:
R(s)G1 (s)G2 (s) 1
Gt0 (s) = = (1)
1 + R(s)G1 (s)G2 (s) 1
1+
R(s)G1 (s)G2 (s)
By using the cascade control scheme, the system transfer function is:
1
= (2)
1 1
1+ 1+
R2 (s)G2 (s) R1 (s)G1 (s)
d
yd vd
- i- R2 (s) - - R1 (s) u- G1 (s)
i ?
- i v- G2 (s)
y
-
- 6 - 6
Cascade control
In a cascade control configuration, there are more degrees of freedom than in
standard control schemes. Moreover, it is easier to affect the internal dynamics of
the system.
Feedback control
Reduction of the effects of the disturbance d:
high gain;
integral action to annihilate the steady state error (e.g. the effect of the
gravitational term).
1 + sTc
C (s) = Kc
s
Feedback control
Possible control scheme
d′ θ̈m θ̇m θm
−
θr VA ?
- h- CP (s) - h- CV (s) - h- CA (s) - h- - - -
kt
R R
RA I
- 6 - 6 - 6 - 6
kv
kTA
kTV
kTP
dRA
where d′ = kT and
CP (s) =⇒ position control
CV (s) =⇒ velocity control
CA (s) =⇒ acceleration control
In the inner control loop, an integral action must be present.
C. Melchiorri (DEIS) Control 21 / 85
Robot Position Control Decentralized position control
Position feedback
d’
θr θ̈m θ̇m θm
- i- KP 1+sTP - ?i - kt - 1 - 1 -
s RA I s s
-6 - 6
kv
kTP
1 + sTP
CP (s) = KP CV (s) = 1 CA (s) = 1
s
kTV = kTA = 0
Position feedback
Transfer functions of the direct path, of the feedback path and of the closed loop.
km KP (1 + sTP )
(1) C (s)G (s) = (2) H(s) = kTP
s 2 (1 + sTm )
1 1 (1 + sT )
Θ(s) kTP kTP P
(3) = =
Θr (s) s 2 (1 + sTm ) (1 +
2
2δs + s )(1 + sτ )
1+ ωn
km KP kTP (1 + sTP ) ω2 n
There are three poles: δ, ωn are respectively the damping coefficient and the
natural frequency of the pair of complex poles, and −1/τ defines a real pole.
The value of δ, ωn , τ depends on the choices made for the control parameters:
if TP < Tm the system is unstable;
if TP > Tm then 1/δωn > TP > τ ;
if TP ≫ Tm then, in case of high closed-loop gain, δωn > 1/τ ≈ 1/TP and
the zero in −1/TP almost cancels out the real pole; anyway, it results
δωn ≥ −1/2 Tm .
C. Melchiorri (DEIS) Control 23 / 85
Robot Position Control Decentralized position control
Position feedback
1. Case TP < Tm
root locus
100 10000
80 8000
60
6000
40
4000
20
2000
0 o +
x +
x
+
0
-20
-2000
-40
-4000
-60
-80 -6000
-100 -8000
-150 -100 -50 0 50 0 200 400 600 800 1000 1200 1400 1600
seconds
Root locus and typical step response of the system for k = km KP kTP TP /Tm
Position feedback
2. Case TP > Tm =⇒ δωn < 1/TP < 1/τ
root locus
100 2
80 1.8
60 1.6
40 1.4
20 1.2
0 +
x o +
x
+ 1
-20 0.8
-40 0.6
-60 0.4
-80 0.2
-100 0
-150 -100 -50 0 50 0 0.2 0.4 0.6 0.8 1 1.2
seconds
Root locus and typical step response of the system for k = km KP kTP TP /Tm
Position feedback
3. Case TP ≫ Tm =⇒ δωn > 1/τ ≈ 1/TP (for high values of K )
root locus
40 1.2
30
1
20
0.8
10
0 x+ o +
x 0.6
+
-10
0.4
-20
0.2
-30
-40 0
-80 -60 -40 -20 0 20 40 0 2 4 6 8 10 12 14 16 18 20
seconds
Root locus and typical step response of the system for k = km KP kTP TP /Tm
Position feedback
The disturbance-output transfer function is:
sRA
Θ(s) kt KP kTP (1 + sTP )
=−
D(s) s 2 (1 + sTm )
1+
km KP kTP (1 + sTP )
Then, by choosing high values of KP , it is possible to reduce the effects of d(t)
during the transient.
√
There are two complex conjugate poles in (−δωn ± i 1 − δ 2 ωn ), a real pole in
(−1/τ ) and a zero in the origin due to the use of the PI controller. For this
reason, all the constant disturbances (e.g. the gravity terms) are compensated for
when the robot reaches a predefined configuration.
Position feedback
For comparison purposes, let us compute the transfer function of the system
without and with the control action:
Θ(s) km
= −
D ′ (s) s(1 + sTm )
Θ(s) skm
= −
D ′ (s) s 2 (1 + sTm ) + KP km kTP (1 + sTP )
XR = KP kPT
On the other hand, to avoid oscillations in the closed loop system, it is not
convenient to assign high values of KP .
C. Melchiorri (DEIS) Control 28 / 85
Robot Position Control Decentralized position control
Position feedback
Output with an impulse disturbance (without and with control):
0.6
0.5
0.4
0.3
0.2
0.1
-0.1
-0.2
0 1 2 3 4 5 6
seconds
d’
θr ? θ̈m θ̇m θm
- h- KP - h- KV 1+sTV - h - kt - 1 - 1 -
s RA I s s
-6 -6 - 6
kv
kTV
kTP
1 + sTV
CP (s) = KP CV (s) = KV CA (s) = 1
s
kTA =0
km KP KV (1 + sTV )
C (s)G (s) =
s 2 (1 + sTm )
kTV
H(s) = kTP (1 + s )
KP kTP
It might be convenient to choose the zero of the controller (−1/TV ) in order to
cancel the real pole in −1/Tm (i.e. by assigning TV = TM ). In this case:
km KP KV
C (s)G (s) =
s2
and the overall transfer function is:
1 1
Θ(s) C (s)G (s) kTP kTP
= = =
Θr (s) 1 + H(s)C (s)G (s) 1 + skTV + s2 1 + 2δs s2
KP kTP km KP kTP KV ωn + ω 2
n
1
1
+
0.5 0.8
0 o x
0.6
-0.5
+
0.4
-1
0.2
-1.5
-2 0
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
seconds
For the plot of the root locus, notice that the loop gain is
KP kTP
!
s+ 2 poles s=0
kTV
H(s)C (s)G (s) = km KV kTV →
s2 1 zero s = − KkP kTP
TV
d′ θ̈m θ̇m θm
θr
- h- KP - h- KV - h- KA 1+sTa - ?h- - - -
kt
R R
s RA I
- 6 - 6 - 6 - 6
kv
kTA
kTV
kTP
1 + sTA
CP (s) = KP CV (s) = KV CA (s) = KA
s
KP KV KA (1 + sTA ) ′
C (s)G (s) = 2
G (s)
s
skTV
H(s) = kTP 1 +
KP kTP
1
Θ(s) kTP
=
Θr (s) s 2 (1 + k K kTA )
1 + KskTV
k + k K k m KA K
P TP m P TP V A
1) TA = Tm
2) km KA kTA TA ≫ Tm km KA kTA ≫ 1
root locus
2 time response
1.2
1.5
1
1
+
0.5 0.8
0 o x
0.6
-0.5 +
0.4
-1
-1.5
0.2
-2
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
0
0 0.05 0.1 0.15 0.2
seconds
These results are equivalent to those obtained with the position and velocity
feedback control loop (second order system).
C. Melchiorri (DEIS) Control 38 / 85
Robot Position Control Decentralized position control
Remarks
1. The position and velocity signals can be easily measured, while in general the
acceleration is not available. A state variable filter can be used to estimate the
acceleration value.
kTA Θ̈f
- k1 k2 kTA - The filter transfer function is
kTP
Θf (s) k1 k2
kTV Θ̇f = 2
- k2 kTV - Θ(s) s + k1 s + k1 k2
kTP
The values have to be chosen so that the filter bandwidth is higher (at lead one decade)
than the motor bandwidth. On the other hand, this could generate problems related to
the presence of high-frequency noise.
2. The controllers have been designed neglecting the actuation system nonlinearities,
which could cause problems with high gains values.
Example
Given a position trajectory defined as a trapezoidal velocity profile, the velocity and
acceleration profiles can be estimated by using a filter state variables
(k1 = k2 = 10, kTP = kTV = kTA = 1). The estimated values are:
Posizione reale e stimata
30
20
10
0
0 1 2 3 4 5 6 7 8 9 10
Velocita‘ reale e stimata
4
0
0 1 2 3 4 5 6 7 8 9 10
Accelerazione reale e stimata
2
−2
0 1 2 3 4 5 6 7 8 9 10
Note the overshoot of the estimated acceleration (can be reduced with a proper choice
of the filter’s parameters).
C. Melchiorri (DEIS) Control 40 / 85
Robot Position Control Decentralized position control
Example
Consider now the same example, but with a white noise (amplitude = 0.0005)
added to the position signal.
Posizione reale e stimata
30
20
10
0
0 1 2 3 4 5 6 7 8 9 10
Velocita‘ reale e stimata
4
0
0 1 2 3 4 5 6 7 8 9 10
Accelerazione reale e stimata
200
−200
−400
0 1 2 3 4 5 6 7 8 9 10
- Ca (s)
+
yd -
Cf (s) - + ?
+ g- R(s) - u
g- G (s) -
y
-6
- Ca (s)
+
yd -
Cf (s) - + ?
+ g- R(s) - u
g- G (s) -
y
-6
- Ca (s)
+
yd -
Cf (s) - + ?
+ g- R(s) - u
g- G (s) -
y
-6
- Ca (s)
+
yd + + ?u y-
- Cf (s) - j- R(s) - j- G (s)
- 6
The overall general scheme includes the classical feedback controller R(s), and
two feed-forward control actions Cf (s) and Ca (s).
C. Melchiorri (DEIS) Control 46 / 85
Robot Position Control Decentralized position control
1
Ca (s) = + R(s) [1 − Cf (s)] (4)
G (s)
or, if Cf (s) = 1,
Ca (s) = G −1 (s) (5)
The last relationship highlights the fact that, once the process dynamics G (s) and the
reference signal Yd (s) are known, for a perfect tracking of the input signal (i.e. y ≡ yd )
the control input must be computed by “inverting” the system dynamics. Formally:
In the first two cases a non-casual scheme should be used, while in the third one
an approximation of G (s) should be introduced, removing part of the dynamics to
define a proper transfer function for the computation of G −1 (s).
- Ca (s)
+
yd -
Cf (s) -
+ f +?
- R(s) - f-
u
G (s) -
y
-6
As an example, consider
1 100(s + 10)
G (s) = R(s) = Cf (s) = 1
s + 10 s + 100
The feed-forward action is not physically feasible. In fact:
1 s + 10
Ca (s) = = first order time-derivative!
G (s) 1
By considering a partial compensation only (i.e. the static gain)
Ca (s) = 10
in steady state conditions (for constant input values) one obtains y = yd .
C. Melchiorri (DEIS) Control 50 / 85
Robot Position Control Decentralized position control
(a) Reference (dashed) and output signals (a) Reference (dashed) and output signals
500 500
400 400
300 300
200 200
100 100
0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
Error Error
250 4
200
3
150
2
100
1
50
0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
ẏd
- ka,v
+
+ ?
- ka,p - i
+
yd - i-
+ + ?
-
u
i- G (s) y-
R(s)
-6
(a) Reference (dashed) and output signals (b) Reference (dashed) and output signals
500 500
400 400
300 300
200 200
100 100
0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
4
3
2
2
0
1
−2
0 −4
0 2 4 6 8 10 12 0 2 4 6 8 10 12
and by approximating the relationship between the voltage VA and the velocity Θ̇m (in
steady state) as
Θ̇m = km VA
Remark: when not directly provided, the reference values of velocity and acceleration can
be easily computed if the control trajectory is expressed in analytical form.
C. Melchiorri (DEIS) Control 54 / 85
Robot Position Control Decentralized position control
skTV s2
Θ′r (s) = [kTP + + ]Θd (s)
KP km KP KV
Then, the overall control scheme is:
skTV s 2 (1 + km KA kTA )
Θ′r (s) = [kTP + + ]Θd (s)
KP km KP KV KA
The scheme for the position/velocity/acceleration feedback + decentralized
feed-forward control action is:
Example
Without feed-forward action With feed-forward action
Traiettoria desiderata e effettiva Traiettoria desiderata e effettiva
2.5 2.5
2 2
1.5 1.5
1 1
0.5 0.5
0 0
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
Time [s] Time [s]
Errore di inseguimento −16 Errore di inseguimento
x 10
0.06 2.5
0.04 2
0.02 1.5
0 1
−0.02 0.5
−0.04 0
−0.06 −0.5
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
Coppia Coppia
2.5 3
2
2
1.5
1
1
0.5 0
0 −1
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
Time [s] Time [s]
Saturation problem: can be more easily solved with control scheme with inner
loops.
Once again, it is important to remark that on one hand it is desirable to have high
gains in the inner control loops in order to minimize the effects of modeling errors
but, on the other hand, that there are limits to these gains resulting from
inaccuracies in the model, digital implementation of the control algorithms,
non-modeled dynamics (e.g. elastic effects, friction, ...), noise.
C. Melchiorri (DEIS) Control 60 / 85
Robot Position Control Decentralized position control
1 Tm
km
θ̇d + km
θ̈d
d’
θr
--f PIDD ? ?
2 - f- f-
u kt θ̈- 1 θ̇- 1
θ
-
RA I s s
-6 - 6
kv
kTP
Therefore, the tracking error is ‘small’ if the disturbance frequency is ‘lower’ than the
bandwidth where the amplitude of W (s) is high (i.e. for ‘slow’ motions).
Ampiezza Uscita con disturbo (dash) a 1 rad/s
0 1
0.5
−20
Gain dB
0
−40
−0.5
−60 −1
10
0
10 10
1 2
10 −1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Fasi
Uscita con disturbo (dash) a 5 rad/s
90 1
0 0.5
Phase deg
0
−90
−0.5
−180
−1 0 1 2
10 10 10 10 −1
Frequency (rad/sec) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-
Centralized dd
- feed-forward
- action
q̈md -
Decentralized
q̇md feed-forward
- action
d
qmd
- e- Decentralized ?
-e - e
?-
- qm
-
Robot
-6
controller 6
Centralized control
Dynamic model of a manipulator:
M(q)q̈ + C(q, q̇)q̇ + Dv q̇ + g(q) = τ
Actuators and gearboxes may be described by:
Kr q = qm
vA = Gv v c
vA = RA IA + Kv q̇m
τm = Kt IA = Kr−1 τ
where Kr is the matrix with the reduction coefficients; Gv the gain of the motor
drives; RA the armature resistances; Kv , Kt the electro-mechanic constants of the
motors.
Consider the manipulator as a MIMO system with n input and n output.
VA , IA q
b Actuators " b Manipulator b
" b " "
Centralized control
Voltage control mode:
IA = R−1
A (vA − Kv q̇m )
= R−1 −1
A Gv vc − RA Kv Kr q̇
τ = Kr Kt IA
= Kr Kt R−1 −1
A Gv vc − Kr Kt RA Kv Kr q̇
where
D = Dv + Kr Kt R−1
A Kv Kr =⇒ diagonal matrix with friction terms
−1
u = Kr Kt RA Gv vc =⇒ control input
Centralized control
Manipulator dynamic model:
M(q)q̈ + C(q, q̇)q̇ + Dq̇ + g(q) = u
The torque τ (real input generating the motion of the manipulator) is not equal
to u (algebraically related to vc ) because of the counter-electromotive force
proportional to the joints velocity q̇.
q
-
vc u τ
- Kr Kt R−1 - - Manipulator
q̇-
A Gv
q̈-
- 6
Kr Kt R−1
A Kv Kr
Centralized control
Torque control mode: With the voltage-control mode, it is not possible to
directly provide to the joints the exact torques needed to move the robot
(complex computation should be introduced to compensate for the
velocity-dependent terms). It is preferable to use for the motor a current-control
modality: the actuator acts as a torque generator.
IA = Gi vc
It follows:
M(q)q̈ + C(q, q̇)q̇ + Dq̇ + g(q) = u
where
D = Dv u = Kr Kt Gi vc
q
-
vc u
- Kr Kt Gi - Manipulator
q̇-
q̈-
Centralized control
After this preliminary comments, two important centralized control schemes are
now introduced:
1 PD + gravity compensation
2 Inverse dynamics control
q̃ = qd − q
Consider a dynamic system with state x expressed as
q̃
x=
q̇
The direct Lyapunov method is exploited for the control law definition.
u = g(q) + KP q̃−KD q̇
V̇ = −q̇T (D + KD )q̇
KD
+ q̇
qd q̃ ? u -
- l- KP - l- l - Manipulator
-
- 6 - 6 q
g(·)
Remarks:
The control law is a linear PD controller with a nonlinear term (for gravity
compensation). The system is globally asymptotically stable for any choice of
KP , KD (positive-definite);
The derivative action is fundamental in systems with low friction effects D. Typical
examples are manipulators equipped with Direct Drive motors: the low electrical
dumping in this case is increased by the control action (derivative actions).
C. Melchiorri (DEIS) Control 77 / 85
Robot Position Control Centralized position control
KP q̃ = 0
that is (KP is positive definite):
q = qd
The goal is now to define a control input u such that the overall system can be
regarded as a linear MIMO system.
y ? u s-
q y q̇ q
- M(q) - h - Manipulator H
H - R - R -
-
s
6
q̇
n(q, q̇)
y q̇ q
- - -
R R
y = −KP q − KD q̇ + r
from q̈ = y it follows
q̈ + KD q̇ + KP q = r
that is asymptotically stable if the matrices KP , KD are positive-definite.
r = q̈d + KD q̇d + KP qd
Then, the dynamics of the tracking error is:
¨ + KD q̃˙ + KP q̃ = 0
q̃
˙
The error is not null if and only if q̃(0) 6= 0, q̃(0) 6= 0 and converges to zero with
a dynamics defined by KP , KD .
q̃˙
q̇d - h
- KD
6 @ ? s-
q
@ ?y -
R h - h
u
-
M(q) Manipulator -s
qd 6
q̃
- h - q̇
KP
6 n(q, q̇)
If, for computational reasons, only the principal terms are considered, then the
control action cannot be precise due to the introduced approximations. It follows
that control techniques able to compensate modeling errors are required:
Robust control (sliding mode, ...)
Adaptive control.
80
15
60
10
40
5
20
0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
-3
x 10 Errore di Posizione Errore di Velocita‘
2 0.02
1
0
0
-1
-0.02
-2
-3 -0.04
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Accelerazione
5
-5
0 1 2 3 4 5 6 7 8 9 10
Errore di Accelerazione
0.6
0.4
0.2
-0.2
0 1 2 3 4 5 6 7 8 9 10