You are on page 1of 16

Chapter 9

Reference Input Tracking:


feedforward control

9.1 Introduction
In previous lectures, we have discussed control designs based on actual or observer estimated state
feedback, eigenvalue (pole) assignments, as well as controllers based on internal model principle
(IMP) for disturbance rejection. The control laws have in most part been derived to drive the
output or the state to 0, (hopefully) despite disturbances etc. Very often in applications, however,
we desire the output to track a reference input, i.e. if r(t) is the reference input, we would like the
output y(t) → r(t) as t → ∞.
In these notes, we first show how the control techniques can be modified to include reference
input.
The three methods are:
1. Internal model controller

2. Incorporating reference in state space control system

3. Feedforward control design, especially for non-minimum phase systems.


The second half of the notes will discuss a special case of feedforward controller for vibration
suppression - known as input shaping.

9.2 Internal model controller (IMC)


Using IMP for reference tracking has already been discussed. Here, we will just illustrate it with
an example.
If the reference input can be generated using a set of autonomous linear differential equation,
e.g.
dn r dn−1 r dr
n
+ an−1 n−1
+ . . . + a1 + a0 = 0,
dt dt dt
then, taking Laplace transform, we can define a reference generating polynomial Γr (s) just like that
the way we did for disturbances in class, so that
n
X
Γr (s)R(s) = Ic (s) = gi r(i) (0) = terms corresponding to initial conditions.
i=0

149
150 c
Perry Y.Li

Di(s) Do(s)

R(s) Y(s)
C(s) Go(s)

Figure 9.1: Internal Model Control for reference tracking

where r(i) denotes the i-th time derivative of r. The controller design can now proceed based on
Fig. 9.1 as if the reference is a disturbance. So, according to the IMP, we need the controller C(s)
to incorporate the reference generating polynomial Γr (s) into its denominator:
P (s)
C(s) =
Γr (s)L̄(s)
where P (s) and L̄(s) are chosen so that the closed loop system is stable.

Example: Let the plant be G(s) = 5/(s + 1). Suppose that the reference to be tracked is
r(t) = 2sin(3t)
Since R(s) = αs/(s2 + 9), the reference generating polynomial is Γr (s) = (s2 + 9).
From previous notes, we know that in order to do arbitrary pole assignment, we need the order
of the closed loop system to be at least 2n − 1 + q = 3 where n = 1 is the order of plant, q = 2 is
the order of the Γr (s). Let the controller be
b2 s2 + b1 s + b0
C(s) = .
s2 + 9
and the 2n − 1 + q order closed loop characteristic polynomial is:
Acl (s) = (s + 1)(s2 + 9) + (b2 s2 + b1 s + b0 ) · 5. (9.1)
If we decide to place all the poles at −2, we need Acl (s) = (s + 2)2 = s3 + 6s2 + 12s + 8.
Therefore, equating the target Acl (s) to (9.1), we choose b2 = (6 − 1)/5 = 1, b1 = (12 − 9)/5,
b0 = (8 − 9)/5. The response is shown in Fig. 9.2.

9.3 Feedforward Control - state space method


The Internal Model Controller is appropriate if the reference input can be generated by an au-
tonomous linear differential equation. In the case when the reference is fairly arbitrary, a feedfor-
ward controller is needed.
First we discuss how to incorporate reference input into the state feedback controller (and by
extension, observer state feedback). This method, however, only generate good tracking for slowly
changing references (i.e. d.c.)
Consider the state space system
ẋ = Ax + Bu (9.2)
y = Cx + Du (9.3)
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 151

IMC control for reference tracking


1.5

reference r(t)
1

0.5

response y(t)
0

−0.5

−1

−1.5
0 1 2 3 4 5 6 7 8 9 10
Time − s

Figure 9.2: Internal Model Control for reference tracking

1. We first design a state feedback gain K such that A − BK is stable (with poles at nice
locations);

2. Suppose that r(t) is the reference input. We would associate a steady state state vector
xss = Nx r for any constant reference input r. Now we define the control to be:

u = −K(x − xss ) + uss

where uss = Nu r is the steady state control input to maintain x at xss .

3. To define Nu and Nx , we consider the desired steady state relationships:

ẋss = Axss + Buss = (ANx + BNu )r = 0;


yss = Cxss + Duss = (CNx + DNu )r = r.

To make this work for all r, we need to solve:


    
A B Nx 0
= . (9.4)
C D Nu 1

4. Once Nx and Nu have been found, we can rewrite the control law to be:

u = −K(x − Nx r) + Nu r (9.5)
u = −Kx + N̄ r (9.6)

where N̄ = Nu + KNx .

Remarks:

• This method achieves tracking ONLY in the steady state when the reference inputs are step
inputs. It does not achieve tracking when r(t) is changing rapidly.
152 c
Perry Y.Li

• Even for slowly varying reference input, since Nu and Nx rely on information on the plant, they
might not be accurate. One should seriously consider adding an integrator to the system (i.e.
make the controller have a pole at s = 0, enforcing IMP) to get rid of the constant reference.
This can be done by augmenting the system by the extra state:
        
ẋI 0 C xI 0 1
= + u+ r.
ẋ 0 A x B 0

• In implementation, it is argued that (9.5) is more robust than (9.6). It is because variation
in K does not need to be reflected in the computation of Nu in (9.5); whereas if K changes
in (9.6), N̄ needs to be changed too.

9.4 Feedforward control


If the eigenvalues are chosen to be very fast (far in the LHP), then the method above of introducing
reference input in (9.5) would be quite adequate. For example, for the 1st order plant

ẋ = −x + u;

the state feedback with reference input r is

u = −K(x − Nx · r) + Nu · r

where     
−1 1 Nx 0
= .
1 0 Nu 1
This gives Nu = Nx = 1. Or, N̄ = kNx + Nu = k + 1.
Denote the feedforward part by r̄ = N̄ r,

X(s) 1
= To (s) =
R̄(s) s + (1 + k)

and
X(s) (1 + k)
=
R(s) s + (1 + k)
In other words, N̄ is the inversion of the plant at D.C.. If k is large, then this inversion is close to
unity over a large frequency range.
The issues of using high gain feedback are stability robustness and noise amplification. So, k
cannot be too large. In order to do tracking, we can design a feedback controller to be robust,
and has good performance for disturbance rejection (but not necessarily for reference tracking)
and noise immunity, then design a (dynamic) feedforward controller to fix the reference tracking
performance.
The idea of feedforward is to make the overall transfer function in Fig. 9.3 approximately equal
1 for all the frequency range of interest. The controller C(s) in the feedback loop on the other hand
is to make the process insensitive to disturbances and uncertainty. The control structure in Fig.
9.3 is also known as Two degree of freedom control structure since C(s) and H0 (s) are two ways of
changing the system performance.
Let the closed loop system Y (s)/R′ (s) = To (s) = B(s)
A(s) , where A(s) and B(s) are polynomials.
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 153

R(s) R(s) Y(s)


Ho(s) C(s) Go(s)

To(s)

Figure 9.3: Feedforward control concept is to make the overall transfer function Y (s)/R(s) =
Ho (s)To (s) ≈ 1
.

Basically, a feedforward tracking controller is to make


B(s)
H0 (s) = = To (s)−1 .
A(s)
This makes To (s)H0 (s) = 1 so that

Y (s) = To (s)H0 (s)R(s) = R(s)

Hence y(t) → r(t) as long as To (s)H0 (s) is stable.

Example: Consider To (s) = 5/(s+5). This system has zero steady state tracking error for constant
step inputs. To improve tracking performance for non-constant inputs, design the feedforward
controller to be H0 (s) = (s + 5)/5.This means that R′ (s) = (0.2s + 1)R(s). Notice that this is
improper, so to actually implement this, we convert it back into time domain to get:

r′ (t) = 0.2ṙ(t) + r(t).

Fig. 9.4 shows the responses with and without H0 (s). Clearly, feedforward significantly improve
performance.
There are two issues associated with the design of H0 (s).
1. Notice that H0 (s) generally needs to be improper - which requires derivative of r(t) to im-
plement. If future r(t) is not known, derivatives are r(t) is not available (or at least not
reliable). Then we need to approximate H0 (s) by a proper controller. This can be done by
adding terms to the denominator which only have effects at high frequencies beyond those of
interests:
s+5 s+5
H0 (s) = ≈
5 5(s/ω + 1)
where ω is sufficiently large to cover the frequency of interests. (see Goodwin 10.5 for an
example).
2. The second issue is if To (s) is non-minimum phase (i.e. it has poles or zeros on the unstable
RHP). To (s) has to be stable, so it should not have RHP poles (if so, use C(s) to stabilize
first). However, it can have RHP zeros, i.e. there exists z ∈ RHP such that B(z) = 0. A
direct inversion would create an unstable pole in H0 (s), which is not allowed (the unstable
pole is unobservable). This is dealt with by the Zero Phase Tracking Controller (ZPETC),
which will be discussed next.
154 c
Perry Y.Li

Feedforward control for reference tracking


1

0.8
reference r(t)
0.6

0.4

0.2 without feedforward

with feedforwad
0

−0.2

−0.4

−0.6

−0.8

−1
0 1 2 3 4 5 6 7 8 9 10
Time − s

Figure 9.4: Reference tracking with and without feedforward control

Dg(s)
Gff(s)

R(s) + Y(s)
+
C(s) Go1(s) Go2(s)

Plant

Figure 9.5: Disturbance enters into the plant between the Go1 (s) and Go2 (s) blocks. The role of
reference feedforward is to generate input so that the disturbance is cancelled out.
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 155

9.4.1 Disturbance Feedforward


While future information of disturbances may not be known, the disturbance at a present time can
sometimes be measured. This can be used to generate command input that cancels out its effect.
For example in Fig. 9.5, to generate the control to cancel out Dg (s), we need:

Go1 (s)Gf f (s)Dg (s) ≈ −Dg (s) ⇒ Go1 (s)Gf f (s) ≈ −1.

• Gf f (s) acts in open loop, so it must be stable.

• Since future disturbances are unknown Gf f (s) should be proper. We can introduce excess
poles at high frequency:
G−1
o1 (s)
Gf f (s) = −
(s/ω + 1)nδ
where nδ is the relative degree of Go (s), and ω is large (e.g. a few times maximum bandwidth
of Dg (s)).

• Since Go1 (s) usually has low pass characteristics, Gf f (s) will have high pass characteristics.

• Reference feedforward is particularly helpful in improving transient response when Go2 (s) has
long time lag. This is the case even if an IMP controller is used, since the IMP controller
cannot generate corrective action until error has been generated. The feedforward action
reacts immediately to detection of disturbances.

9.4.2 Zero-phase error tracking controller (ZPETC) - continuous time


If To (s) is stable but non-minimum phase, then we would like to design H0 (s) such that

H0 (s)To (s) ≈ 1

with the restriction that H0 (s) is stable.


Consider for example
(s + 3)(s − 2)
To (s) =
(s + 4)(s + 1)
which is non-minimum phase. Let us write

B + (s)B − (s)
To (s) =
A(s)

where B + (s) denotes terms with LHP roots (minimum phase part) and B − (s) denotes terms with
RHP roots (non-minimum phase part). In our example, B + (s) = (s + 3), B − = (s − 2).
One possibility (not recommended) is to choose

A(s) ±1 (s + 4)(s + 1) ±1
H0 (s) = = .
B + (s) B −1 (−s) s+3 s+2

(i.e. reflect the non-minimum phase zero on the jw axis). This makes

B − (s) s−2
To (s)H0 (s) = ± −
=−
B (−s) s+2
156 c
Perry Y.Li

1
all pass

Responses of feedforward example


0.5

reference

0
no feedforward

−0.5

−1
Zpetc

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2


Time samples (0.0001s) x 10
4

Figure 9.6: Reference tracking ZPETC, all pass feedforward, and no feedforward

The sign is chosen so as to make To (0)H0 (0) = +1 (this is determined by whether there are even
(+1) or odd (-1) number of unstable zeros in B(s)). This has the advantage that it is an all pass
system such that |To (jw)H0 (jw)| = 1 for all w ∈ ℜ.
This means that if the reference input is a sinusoid r(t) = Asin(wt), its output (in the steady
state) is y(t) = Asin(wt + φ). This, however is inadequate for tracking purposes if φ is large, for
example, if φ = π, then y(t) = −r(t). Imagine you want your airplane to go east, it would go west
instead!
An alternative is to preserve phase, while sacrificing the magnitude. This is the Zero Phase
Error Tracking Controller, (which is most popular in the discrete time domain 1 ).
The ZPETC is:
A(s) ±B − (−s) (s + 4)(s + 1) s + 2
H0 (s) = + − 2
=
B (s) B (0) s+3 −4

with the term ±B − (0)2 (with the proper sign) is used to normalize the overall steady state gain to
be 1. Thus, we have
B − (s)B − (−s) (s − 2)(s + 2)
To (s)H0 (s) = = .
B − (0)2 −4

Notice that the phase of the overall transfer function is exactly zero.
For an input r(t) = Asin(wt), the output y(t) = Bsin(wt) . Even if B 6= A, at least y(t) follows
the direction of r(t). However, at frequencies near or larger than the location of the non-minimum
phase zero, the gain will deviate from the unity greatly. Figure 9.6 shows the responses of the
example with no-feedforward, the all-pass feedforward, the ZPETC feedforward. Reference input
is r(t) = sin(t). Notice that this frequency is less than the magnitude of the zero (at -2).

1
Tomizuka, “Zero Phase Error Tracking Algorithm for Discrete Control”, ASME Journal of Dynamic Systems,
Measurement and Control. Vol 109, no, 1 (March) pp 65-68. 1987.
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 157

9.5 ZPETC in discrete time


Here we consider a discrete time closed loop plant model given by:

q −δ Bo (q −1 ) q −δ Bo+ (q −1 )Bo− (q −1 )
To (q −1 ) = −1
=
Ao (q ) Ao (q −1 )

where Ao (q −1 ) and Bo+ (q −1 ) are stable, and

Bo− (q −1 ) = Πm −1
i=1 (1 − βi q ), |βi | ≥ 1.

Bo+ (q −1 ) and Bo− (q −1 ) are the minimum phase and non-minimum phase parts of the numerator of
To (q −1 ). As usual, we use q −1 to denote the 1 step delay (shift) operator.
As noted in previous notes on discrete time systems, the roots of the polynomial

A(q −1 ) = Πi (1 − αi q −1 )

are the complex numbers αi ’s. If |αi | < 1, then signal y(k) that satisfies: A(q −1 )[y(k)] = 0 would
converge to 0. Therefore, we say that To (q −1 ) is stable if A(q −1 ) has all roots |αi | < 1; it has a
non-minimum phase zero at β if B(β −1 ) = 0 and |β| > 1. We put all such factors (1 − βj− q −1 )
where |β − | > 1 in Bo− (q −1 ).
If the non-minimum phase part is trivial, i.e. Bo− (q −1 ) = 1. Then we can design

q δ Ao (q −1 )
Ho (q −1 ) =
Bo+ (q −1 )

This usually requires that Ho (q −1 ) is not proper. This means that the control requires preview of
δ steps future information of the reference signal. This is okay since reference signal in many cases
are known before hand.
If Bo− (q −1 ) is non-trivial, then we cannot put B − (q −1 ) in the denominator of Ho (q −1 ) since it
would make the controller unstable. We can use the ZPETC approach similar to the continuous
time case instead, which is explained now.
First, we note that for a discrete time system G(q −1 ), given a sinusoidal input of frequency ω,
the in the steady state the steady state output is also sinusoidal, with a magnitude gain and phase
shift given by
|G(q −1 )| and phase(G(q −1 )
with evaluated at q = ejωTs where Ts is the sampling time.
Therefore, if we design the feedforward controller to be:

q δ Ao (q −1 ) Bo− (q)
Ho (q −1 ) =
Bo+ (q −1 ) Bo− (1)2

then, To (q −1 )Ho (q −1 ) becomes:


Bo− (q)Bo− (q −1 )
Bo− (1)2
First notice that this is a polynomial in q and q −1 in the form:

γ0 + γ1 (q + q −1 ) + γ2 (q 2 + q −2 ) + . . .
158 c
Perry Y.Li

where γk are real coefficients - i.e. the the q −k and q k terms have the same coefficients. Because of
this, when To (q −1 )Ho (q −1 ) is evaluated at q ← ejωTs , the result is a real number. Hence, the phase
is zero.
Second, notice that the gain of To (q −1 )Ho (q −1 ) is unity when q = 1 (i.e. unity gain at D.C.).
At high frequencies, gain can differ from unity significantly. If the non-minimum phase zero β has
negative real part, then, the corresponding terms in Bo− (q)Bo− (q −1 ) would contribute to decreasing
gain at high frequencies (ω → π/Ts ). If they have positive real parts, then they would contribute
to increasing gain at high frequencies. To see this, consider β is real:

(1 − βq −1 )(1 − βq) q=ejωTs = (1 + β 2 ) − 2βcos(ωTs )

Hence, if β > 0, this is an increasing function of ω; and if β < 0, this is a decreasing function ω.
Similar reasonings can be applied to complex β by considering the terms due to the conjugates
also.

9.6 Non-minimum phase tracking using series expansion


The difficulty in designing feedforward controller for a discrete time non-minimum phase zero (say
at q = −2) is that, the inverse of Bo− (q −1 ) = (1 + 2q −1 )
1
1 + 2q −1
is unstable in the forward time. The idea is to approximate this as a series in positive powers of q:
1
≈ a0 + a1 q + q2 q 2 + . . . an q n =: Ho (q −1 )
1 + 2q −1
Notice that the right hand side means that this is non-causal finite impulse response filter that
requires n step preview of the reference signal since,

r̄(k) = Ho (q −1 )[r(k)] = a0 r(k) + a1 r(k + 1) + a2 r(k + 2) + . . . an r(k + n).

To get the expansion, we can use long division (see class notes):
1 1 1 1 1
≈ q − q 2 + q 3 + . . . ± n q n =: Ho (q −1 )
2q −1 +1 2 4 8 2

Because of the long division computation, we see easily that expansion to the q n term of (1 − βq −1 )
results in:
qn
(1 − βq −1 )Ho (q −1 ) = 1 + n
β
where the second term represents the error from the ideal feedforward control. Since |β| > 1 by
assumption (non-minimum phase), |β n | → 0 as n → ∞.
n
One can choose n so that with q = ejωTs , 1 + βq n is close to 1 for both the magnitude and phase.
See (Gross, Messner, Tomizuka paper) for a graphical way of interpreting this error.
Notice also that the sequence of coefficients of the series expansion is in fact the impulse response
of 1/(1 − βq −1 ) when marching in reverse time k = 0, −1, −2, . . .:
−1
(1 − βq −1 )[e(k)] = δ(k) ⇒ e(k − 1) = (δ(k) − e(k))
β
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 159

− −1 −1
Frequency response of compensated non−minimum phase system − B (q )= 1 + 2 q

ZPETC 1 Desired
0.6
Series 3 terms 4 terms series
Series 4 terms 0.8 ZPETC
0.4 0.6

0.4
0.2
0.2

0 0

−0.2
−0.2
−0.4

−0.6
−0.4
−0.8

−0.6 −1

0 0.2 0.4 0.6 0.8 1 1.2 1.4 40 50 60 70 80

Figure 9.7: a) Frequency response (Nyquist) of compensated non-minimum phase system. b)


Simulation using a sinusoidal (0.15/Ts Hz) input.

where δ(k) is the delta function: δ(k) = 1 for k = 0, and δ(k) = 0 otherwise. This gives the
sequence:
e(0) = −1/β, e(−1) = −1/β 2 , e(−2) = −1/β 3 , . . .
which is exactly the series obtained from long division.
This gives an insight as to why an expansion in q −1 would not work. The coefficients of the
series in q −1 would be the impulse response of 1/(1 − βq −1 ) in forward time (k = 0, 1, 2, . . .). Since
1/(1 − βq −1 ) is unstable for forward time when |β| > 1, the series is not a convergent series.
The method also works for complex zeros.
A comparison between ZPETC and the series expansion approach for B − (q −1 ) = 1 + 2q −1 is
given in Fig. 9.6 where the total transfer function (i.e. B − (q −1 )Hcomp (q −1 ) where Hcomp (q −1 is
the portion of the feedforward pre-compensator H(q −1 ) that compensates for B − (q −1 )) is shown.
Notice that the frequency response for the ZPETC deviates from 1 (ideal) as frequency increases,
whereas the responses using the series expansion stay close to 1. Moreover, as the number of terms
increases, the deviation from 1 also decreases.

9.7 Input Shaping


Input shaping is a feedforward, open loop control technique for controlling the motions of flexible
systems such that the control does not induce residual vibrations. Applications include space
structures, long reach robots, gantry crane etc.
Consider for example, a two mass system (Fig. 9.8) connected to each other by a spring (k)
and damping (b) is given by;

mẍ1 = u − k(x1 − x2 ) − b(ẋ1 − ẋ2 ) (9.7)


mẍ2 = k(x1 − x2 ) + b(ẋ1 − ẋ2 ) (9.8)

This can be decomposed into the rigid body mode and the flexible mode. Define the rigid body
motion by y = (x1 + x2 )/2 and flexible motion by e = x1 − x2 , then the dynamics become:

(2m)ÿ = u (9.9)
më + 2be + 2ke = u (9.10)
160 c
Perry Y.Li

u
m m

x1 x2
Figure 9.8: A one mode flexible system

Thus, the goal is that if we can use control that avoids exciting the flexible mode, then the control
of the rigid body mode should be quite trivial and intuitive.
In general, a linear single input flexible structure can be formulated formulated as follows (See
Pao’s paper in handout 2 ):
ẋ = Ax + bu
where A is a block diagonal matrices with the j−th block of the form
 
0 1 T
Aj = b = 0 b0 0 b1 0 b 2 . . . . (9.11)
−ωj2 −2ζωj

ωj and ζj are the natural frequency and damping ratio for mode j. We use ω0 = 0, so that the first
block represents the rigid body mode. Partitioning the state vector x = [x1 , x2 , x13 , x14 , x23 , x24 , . . .]
exhibits x1 , x2 as the position and velocity of the rigid body mode, and xj3 , xj4 as those for the j−th
flexible mode, with j > 0.

9.7.1 Impulse shaper


Consider the one mode case, with ζ = 0, and b0 = ω 2 , i.e.
 
0 1
A1 = , b1 = ω 2 .
−ω 2 0

Consider an input consisting of two impulses u(t) = δ(t) − δ(t − T ) with T = π/ω. Then, by
superposition, the first impulse generates an sinusoidal output, and the second impulse generates
an anti-sinuosoid with the same amplitude as the previous one, such that after t = T , the flexible
mode output x3 is identically zero. Specifically, the output for this set of input, is:
(
sin(ωt) 0 ≥ t ≥ T
g(t) = x3 (t) =
0 t>T

If the input of the system u(t) is given by the convolution of any signal r(t) with the impulse train
h(t) = δ(t) − δ(t − T ),
u(t) = r(t) − r(t − T )
i.e. the input is the superposition of r(t) with its delayed version. The output of the flexible mode,
is the convolution of r(t) and the response of the system due to g(t). If r(t) = 0 after t > Tf , then
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 161

Input due to 1st impulse

t2 T+t2
T 0
unshaped command
2 Impulse Shaper Input due to 2nd impulse

Figure 9.9: Shaping the input by impulses. The shaped command consists of sum of scaled and
delayed copies of the unshaped command. The shaped command is sent to the flexible system.

since g(t) = 0 for t > T , the response of the flexible mode will be zero for t > Tf + T . Hence,
there will be no vibration T sec. after the command r(t) has stopped.
If there are N impulses in the shaper, then the shaped control (which is sent to the flexible
system), is related to the command input by:
N
X
u(t) = Ai r(t − ti )
i=1

Notice that implementation of the input shaper requires that at any instant t, we need to have
stored the unshaped input r(τ ) over the entire duration of [t − tN , t].

9.7.2 Derivation of impulse shaper


In the general case, the magnitudes (Ai ) of the impulses, as well as the timings (ti ) need to be
designed properly.
We consider a single mode
p case first. Let the natural frequency be ω, damping ratio be ζ.
Define σ := ζω and ωd = 1 − ζ 2 ω. The latter is the damped natural frequency. Notice that the
eigenvalues of the A matrix of the flexible mode are precisely −σ ± ωd j.
Referring to Eq. (1) in (Singer and Seering, 1990) 3 in the handout, the response due to an
impulsive input of magnitude Aj occurring at tj , u(t) = Aj δ(t − tj ) is:

b0 −σ(t−tj )
yj (t) = Aj e sin(ωd t − ωd tj ) (9.12)
ωd

for t > tj . In Singer/Seering, b0 in (9.11) has been normalized to be ω 2 .


If the impulse shaper has N impulses with times t1 , . . . , tN and amplitudes A1 , A2 , . . . , AN , the
goal is that the response of the flexible mode should rest precisely after t > tN . Consider
P the input
r(t) = δ(t) to the shaper to be an impulse, this generates an actual input u(t) = i Ai δ(t − ti ).
Let g(t) be the impulse response of the flexible system with the shaper. With r(t) = δ(t) being
the unshaped command, the shaped comnand is just
N
X
u(t) = Aj δ(t − tj )
j=1

2
Pao, “Strategies for shaping commands in the control of flexible structure”, Japan-USA-Vietnam Workshop on
research and education in systems, computation and control engineering, June 2000.
3
Singer and Seering, “Preshaping command inputs to reduce system vibration”, ASME Journal of Dynamic
Systems, Measurement and Control, March 1990. pp. 76-82.
162 c
Perry Y.Li

so that the response of the flexible system is for (t > tN )


N
X
g(t) = yj (t). (9.13)
j=1

where yj (t) is the response of the flexible system due to each Aj δ(t − tj ) in u(t). Rewrite

b0 −σ(t−tN )
yj (t) = e Aj e−σ(tN −tj ) sin(ωd t − ωd tj )
ωd

Notice that the impulse response of the shaper + flexible mode, g(t) is of the form

b0 −σ(t−tN ) X
g(t) = e Bi sin(ωd (t − ti )
ωd
i

where Bj = Aj e−σ(tN −tj ) . Using sin(a + b) = cos(b)sin(a) + sin(b)cos(a), we have (Eq. (2) in
Singer / Seering),

B1 sin(ωd t + φ1 ) + B2 sin(ωd t + φ2 ) + . . . = Aamp sin(ωd t + ψ)

for some Aamp and ψ (formulae given in paper), g(t) can be expressed as a decaying sinusoid

b0 −σ(t−tN )
g(t) = e Aamp sin(ωd (t − ti ) + ψ).
ωd
Thus, to ensure that there will be no or little vibration after the last impulse at tN , we must have
Aamp ≈ 0, which is the amplitude at t = tN .
Aamp can be expressed in a different way as shown in Eq. (2) in Pao’s paper in the handout.

N
!2 N
!2  12
X X
V (ω, ζ) = eζtN  Ai eσti cos(ωd ti ) + Ai eσti sin(ωd ti )  . (9.14)
i=1 i=1

p
where σ = ζω (magnitude of real part of the pole) and ωd = 1 − ζ 2 ω (damped natural frequency).
To make V (ω, ζ) = 0, we need to make both terms inside the bracket 0, i.e.
N
X
Ai eσti cos(ωd ti ) = 0 (9.15)
i=1
XN
Ai eσti sin(ωd ti ) = 0 (9.16)
i=1

Example: (1 mode ZV) For a one mode case, we can choose the 1st impulse to occur at t1 = 0.
We use two impulses to set (9.15)-(9.16) identically zero at ω and ζ which are the estimated natural
frequency and damping ratio. Shapers designed this way are called ZV (zero-vibration) shapers.
The equations that need to be solved (for A1 , A2 and t2 ) are:

A1 + A2 eσt2 cos(ωd t2 ) = 0 (9.17)


σt2
A2 e sin(ωd t2 ) = 0 (9.18)
c
U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li 163

This means that t2 = 0, π/ωd , 2π/ωd , . . .. The non-trivial case with the smallest t2 is t2 = π/ωd

π
t2 = A2 = A1 e−σt2
ωd

Normalizing so that A1 + A2 = 1, the impulse response of the shaper is:

1 e−σt2
h(t) = δ(t) + δ(t − π/ωd ).
1 + e−σt2 1 + e−σt2

If we had chosen t2 = 0, then we must have A2 = −A1 so that the shaper is identically zero. If we
had chosen t2 larger, then the shaper will take a longer time for the vibration to stop.
Generally, making (9.15)-(9.16) zero involves solving a set of nonlinear equations.

9.7.3 Saturation constraints


Often one would have input limits. It is desirable that if |r(t)| < usat satisfies saturation limits,
the shaped input u(t) does also. This can be guaranteed if all Ai > 0 and

N
X
= Ai ≤ 1.
i

It is because:
X X X
|u(t)| = | Ai r(t − ti )| ≤ Ai |r(t − ti )| ≤ Ai |usat .
i i i

9.7.4 Robustness
To ensure that the shaper works well for inaccurate estimates of ω and ζ, Eq.(9.14) should be small
even in these cases.
ZVD is the shaper that, in addition to making (9.14) zero at the estimated ω and ζ, it makes
its partial derivatives also zero, (hence D in ZVD). (see Fig. 2 in Pao). This generates 2 additional
constraint equations. Hence we need at least 1 more impulse at t3 and magnitude A3 .

Remark

• In Singer / Seering, it is stated that making the derivative with respect to ω zero, automati-
cally makes the derivative w.r.t. ζ zero.

• It is possible to generate second derivative constraints etc. to generate ZVDD, ZVDDD etc.
Each “D” would generate two additional constraints, and hence 1 more impulse. Alternatively,
one can make the V (ω, ζ) = 0 at frequency on either side of the design frequency. These are
the EI shapers.

• The penalty of robustness is that one needs more impulses, and hence longer time before
vibration stops.
164 c
Perry Y.Li

9.7.5 Multi-mode shaper


When there are multiple flexible modes, then one can design a shaper for each, and then convolve
them together. If we use a N impulse shaper for each mode and there are nPmodes, then the
composite shaper will have N n impulses. The last impulse would occur at t = nj=1 tjN where tN j
is the time for the last impulse for the j−th mode.
Alternatively, one can simultaneously solve V (ω, ζ) in Eq.(9.14) to be 0 at all n pairs of (ωi , ζi ).
To design the basic n mode ZV involves solving 2n nonlinear equations (i.e. need at least n+1
impulses). This method would likely get a set of impulses that finish at a shorter amount of time.

9.7.6 Transfer function interpretation


The transfer function of the shaper
N
X
h(t) = Aj δ(t − tj )
j=1

is given by:
N
X
H(s) = Aj e−stj .
j=1

Consider the 2 impulse


p ZV shaper in the earlier example with A2 = A1 e−σt2 , t2 = π/ωd , where
σ = ζω, and ωd = 1 − ζ 2 ω. Then,

H(s) = A1 (1 + e−σt e−st2 )

Notice that H(s) = 0 occurs when e−(s+σ)t2 = −1 or (s + σ)t2 = ±πj. Hence, the zeros of H(s)
are at s = −σ ± π/t2 = −σ ± ωd j, which are exactly the poles of the flexible system!
This fact can be generalized (see Fig. 3 in (Pao, 2000)).

• ZV shapers place zeros at the flexible mode

• ZVD shapers place two zeros at the flexible mode

• ZI shapers place two zeros close to the flexible mode.

This insight implies that we can generate a ZVD by convolving 2 ZV. For example, the 3
impulse ZVD in Fig. 4 of Singer / Seering, is the normalized convolution of the 2 impulse ZV in
Fig. 2.
The input shaper does not have any poles - notice that |H(s)| does not become infinity for
any finite s. This is quite obvious given that the impulse response of the shaper H(s) has finite
duration.

You might also like