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 + a + . . . + a1 + a0 = 0, n−1 n n−1 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 Γr (s)R(s) = Ic (s) = n X gi r(i) (0) = terms corresponding to initial conditions. i=0 149 c Perry Y.Li 150 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: C(s) = P (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 C(s) = b2 s2 + b1 s + b0 . 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 autonomous linear differential equation. In the case when the reference is fairly arbitrary, a feedforward 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 Time − s 6 7 8 9 10 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 = . C D Nu 1 (9.4) 4. Once Nx and Nu have been found, we can rewrite the control law to be: u = −K(x − Nx r) + Nu r u = −Kx + N̄ r (9.5) (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. c Perry Y.Li 152 • 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) = s + (1 + k) R̄(s) and (1 + k) X(s) = 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 R(s) 153 Y(s) R(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 H0 (s) = B(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 implement. 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. c Perry Y.Li 154 Feedforward control for reference tracking 1 0.8 reference r(t) 0.6 0.4 without feedforward 0.2 with feedforwad 0 −0.2 −0.4 −0.6 −0.8 −1 0 1 2 3 4 5 Time − s 6 7 8 9 10 Figure 9.4: Reference tracking with and without feedforward control Dg(s) Gff(s) R(s) + C(s) Y(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 9.4.1 155 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 To (s) = (s + 3)(s − 2) (s + 4)(s + 1) which is non-minimum phase. Let us write To (s) = B + (s)B − (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 H0 (s) = A(s) ±1 (s + 4)(s + 1) ±1 = . B + (s) B −1 (−s) s+3 s+2 (i.e. reflect the non-minimum phase zero on the jw axis). This makes To (s)H0 (s) = ± s−2 B − (s) =− − B (−s) s+2 c Perry Y.Li 156 1 Responses of feedforward example all pass 0.5 reference 0 no feedforward −0.5 −1 Zpetc 0.2 0.4 0.6 0.8 1 1.2 Time samples (0.0001s) 1.4 1.6 1.8 2 4 x 10 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: H0 (s) = A(s) ±B − (−s) (s + 4)(s + 1) s + 2 = + − 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 To (s)H0 (s) = (s − 2)(s + 2) B − (s)B − (−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 9.5 157 ZPETC in discrete time Here we consider a discrete time closed loop plant model given by: To (q −1 ) = q −δ Bo (q −1 ) q −δ Bo+ (q −1 )Bo− (q −1 ) = −1 Ao (q ) Ao (q −1 ) where Ao (q −1 ) and Bo+ (q −1 ) are stable, and −1 Bo− (q −1 ) = Πm 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 Ho (q −1 ) = q δ Ao (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: Ho (q −1 ) = q δ Ao (q −1 ) Bo− (q) 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 ) + . . . c Perry Y.Li 158 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 2q −1 1 1 1 1 ≈ q − q 2 + q 3 + . . . ± n q n =: Ho (q −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 − βq −1 )[e(k)] = δ(k) ⇒ e(k − 1) = −1 (δ(k) − e(k)) β c U. of Minnesota, ME 8281 - Advance Control Systems, F 2001, F 2002, S 2006, Perry Li − −1 159 −1 Frequency response of compensated non−minimum phase system − B (q )= 1 + 2 q ZPETC Series 3 terms Series 4 terms 0.6 Desired 4 terms series ZPETC 1 0.8 0.4 0.6 0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.6 −0.4 −0.8 −1 −0.6 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 ) mẍ2 = k(x1 − x2 ) + b(ẋ1 − ẋ2 ) (9.7) (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) c Perry Y.Li 160 k u m m b 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 Aj = 0 1 −ωj2 −2ζωj T b = 0 b0 0 b1 0 b 2 . . . . (9.11) ω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 , b1 = ω 2 . A1 = −ω 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 T+t2 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: u(t) = N X i=1 Ai r(t − ti ) 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 case first. Let the natural frequency be ω, damping ratio be ζ. p 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: yj (t) = Aj b0 −σ(t−tj ) e sin(ωd t − ωd tj ) ωd (9.12) 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 the input P 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 u(t) = N X j=1 2 Aj δ(t − tj ) 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. c Perry Y.Li 162 so that the response of the flexible system is for (t > tN ) g(t) = N X 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 yj (t) = b0 −σ(t−tN ) 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 g(t) = b0 −σ(t−tN ) X 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 g(t) = b0 −σ(t−tN ) 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. V (ω, ζ) = eζtN N X !2 Ai eσti cos(ωd ti ) i=1 + N X i=1 !2 12 Ai eσti sin(ωd ti ) . (9.14) 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 i=1 N X Ai eσti cos(ωd ti ) = 0 (9.15) 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 σt2 A2 e sin(ωd t2 ) = 0 (9.17) (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 = π ωd A2 = A1 e−σt2 Normalizing so that A1 + A2 = 1, the impulse response of the shaper is: h(t) = e−σt2 1 δ(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 i = Ai ≤ 1. It is because: |u(t)| = | 9.7.4 X i Ai r(t − ti )| ≤ X i Ai |r(t − ti )| ≤ X i Ai |usat . 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, automatically 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. c Perry Y.Li 164 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 h(t) = N X j=1 Aj δ(t − tj ) is given by: H(s) = N X Aj e−stj . j=1 Consider the 2 impulse ZV shaper in the earlier example with A2 = A1 e−σt2 , t2 = π/ωd , where p σ = ζω, 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.