TU Berlin Discrete-Time Control Systems 1 Pole-Placement Design A Polynomial Approach Overview A Simple Design Problem The Diophantine Equation More Realistic Assumptions
TU Berlin Discrete-Time Control Systems 2 A Simple Design Problem System: A(q)y[k] = B(q)u[k] (1) Assumptions: A = q n a + a 1 q na 1 + + a na 1q + a na is monic deg A > deg B Disturbances are widely spread impulses Specifications are given by the closed-loop characteristic polynomial, and the controller may have certain properties, for example, integral action General linear controller (u c : command signal, y: measured output, u: control signal): R(q)u[k] = T(q)u c [k] S(q)y[k] (2)
TU Berlin Discrete-Time Control Systems 3 R(q) is chosen to be monic Feedforward part: H ff (z) = T(z) R(z) (3) Feedback part: H fb (z) = S(z) R(z) (4) Goal: Causal controller with no time-delay deg R = deg S (5)
TU Berlin Discrete-Time Control Systems 4 Solving the design process Eliminating u[k] between the process model (1) and the controller (2) gives (A(q)R(q) + B(q)S(q)) y[k] = B(q)T(q)u c [k] (6) Closed-loop characteristic polynomial: A cl (z) = A(z)R(z) + B(z)S(z) (7) The pole-placement design is to find polynomials S and R that satisfy Eq (7) for given A, B, and A cl Eq (7) is called Diophantine Equation Factorising the A cl polynomial: A cl (z) = A c (z)a o (z) (8)
TU Berlin Discrete-Time Control Systems 5 We call A c (z) the controller polynomial and A o (z) the observer polynomial In order to determine the polynomial T, we calculate the pulse-transfer function from the command signal to the output: Y (z) = B(z)T(z) A cl (z) U c(z) = B(z)T(z) A c (z)a o (z) U c(z) (9) Zeros of the open-loop system are also zeros of the closed-loop system (unless B(z) and A cl (z) have common factors) Let s choose the polynomial T so that is cancels the observer polynomial A o : The response to command signals is then given by T(z) = t 0 A o (z) (10) Y(z) = t 0B(z) A c (z) U c(z) (11) where t 0 is chosen to obtain a desired static gain for the system (eg, for unit gain: t 0 = A c (1)/B(1))
TU Berlin Discrete-Time Control Systems 6 The Diophantine Equation - Minimal-Degree Solution: The equation A cl (z) = A(z)R(z) + B(z)S(z) (12) has a solution only if the greatest common divisor of A and B divides A cl Number of controller parameters when deg R = deg S: n p = 2(deg R + 1) = 2 deg R + 2 (13) Degree of A cl (remind that deg(ar) > deg(bs)): deg(a cl ) = max(deg(ar), deg(bs)) = deg(ar) = deg(a) + deg(r) (14) Number of equations (coefficients of A cl ): n e = deg(a cl ) + 1 = deg(a) + deg(r) + 1 (15)
TU Berlin Discrete-Time Control Systems 7 Unique minimal solution: n e = n p (16) deg A + deg R + 1 = 2 deg R + 2 (17) deg R = deg A 1 (18) Degree of the closed-loop polynomial for the minimum-degree solution: deg A cl = 2 deg(a) 1 (19)
TU Berlin Discrete-Time Control Systems 8 The Diophantine equation can be solved using matrix calculations (n = n a > n b ): a 0 0 0 0 b 0 0 0 0 a 1 a 0 0 0 b 1 b 0 0 0 r 0 a 2 a 1 a 0 0 b 2 b 1 b 0 0 r 1 a n a n 1 a n 2 a 0 b n b n 1 b n 2 b 0 r na 1 0 a n a n 1 a 1 0 b n b n 1 b 1 s 0 0 0 a n a 2 0 0 b n b 2 s na 1 = a cl,0 a cl,1 a cl,2 a cl,n a cl,n+1 a cl,n+2 0 0 0 a n 0 0 0 b n a cl,2n 1 B = b 0 q n + b 1 q n 1 + + b n 1 q + b n = b 0 q n b + b 1 q n b 1 + + b nb 1q + b nb (21) A = a 0 q n + a 1 q n 1 + + a n 1 q + a n = 1q n a + a 1 q n a 1 + + a na 1q + a na (22)
TU Berlin Discrete-Time Control Systems 9 More Realistic Assumptions Cancellations of Poles and Zeros Factorisation of A and B: A = A + A (23) B = B + B (24) A + and B + are stable (well damped) factors that can be cancelled (both should be chosen monic) Poles that shall be cancelled must be controller zeros and zeros that must be cancelled must be controller poles: R = B + R d R (25) S = A + S d S (26) where R d and S d are fixed pre-determined parts of the controller (see next subsection)
TU Berlin Discrete-Time Control Systems 10 Closed-loop polynomial: A cl = AR + BS = A + B + (R d RA + S d SB ) = A + B + A cl (27) Cancelled zeros and poles are part of the closed-loop polynomial and must therefore be well damped! Cancelling the common factors we find that the polynomials R and S must satisfy: RR d A + SS d B = A cl (28) Minimal-degree solution: n e = n p (29) deg A cl + 1 = deg R + deg S + 2 (30) max(deg RR d A, deg SS d B ) + 1 = deg R + deg S + 2 (31) For deg RR d A > deg SS d B we obtain: deg S = deg A + deg R d 1 (32) deg(rr d A ) = max(deg A cl, deg SS d B ) = deg A cl (33)
TU Berlin Discrete-Time Control Systems 11 deg A + deg R d 1 }{{} deg S deg A cl deg A deg R d }{{} deg R Solving this equation for deg A cl yields: + deg S d + deg A + = deg S = deg R (34) + deg R d + deg B + (35) deg A cl = 2 deg A + deg R d + deg S d deg B + deg A + 1 (36) deg A cl = 2 deg A + deg R d + deg S d 1 (37)
TU Berlin Discrete-Time Control Systems 12 In order to solve Eq (28) we create polynomials A and B with deg A = deg B = n = max(deg(a R d ), deg(b S d )): A = A R d (38) B = B S d (39) deg A cl + 1 a deg A a deg A 1 b deg B a deg B 1 0 a deg A 0 b deg B }{{}}{{} deg R+1 deg S+1 r 0 s 0 = a cl0 a cl1 (40)
TU Berlin Discrete-Time Control Systems 13 Handling disturbances x = y = u = BT AR + SB u c + BT AR + SB u c + AT AR + SB u c BR AR + SB v BR AR + SB v + BS AR + SB v BS AR + SB e AR AR + SB e AS AR + SB e
TU Berlin Discrete-Time Control Systems 14 To avoid steady-state errors due to constant load disturbances the static gain from the disturbance v to y must be zero: B(1)R(1) = 0 If B(1) 0 then we must require that R(1) = 0 This means that R d = z 1 is a factor of R(z) or that the controller is required to have integral action Elimination of periodic load disturbances (with period n ) by using R d = z n 1: v((k + n) ) v(k ) = (q n 1)v(k ) = 0 Elimination of sinusoidal load disturbances with frequency ω 0 : R d = z 2 + z cos(ω 0 ) + 1 Eliminating the effect of measurement noise at Nyquist frequency: S d = z + 1
TU Berlin Discrete-Time Control Systems 15 Pre-filter revisited Let us factorise the polynomial A cl = A + A }{{} o B + A }{{} c A o A c Let s choose the polynomial T so that is cancels the observer polynomial A o : T(z) = t 0 A o (z) (41) The response to command signals is then given by Y(z) = t 0B(z) A c (z) U c(z) = H m (z)u c (z) (42) where t 0 is chosen to obtain a desired static gain for the system (eg, for unit gain: t 0 = A c (1)/B(1))