Control Systems 2 Lecture 9: MIMO systems: directionality and loopshaping Roy Smith 2016-4-27 9.1 Directionality MIMO systems: inputs and outputs are vector-valued. Input signals are functions of both frequency and “direction.” u1 (jω) .. u(jω) = . unu (jω) For a given u(s), the “signal gain” of the system is, ky(s)k2 kG(s)u(s)k2 = ku(s)k2 ku(s)k2 Z ∞ = Z −∞ ∞ −∞ y(jω)∗ y(jω)dω ∗ 1/2 u(jω) u(jω)dω 1/2 = Z Z ny ∞ X −∞ i=1 nu ∞ X −∞ i=1 |yi (jω)|2 dω 2 !1/2 |ui (jω)| dω !1/2 Here we measure only the size of G(s)u(s) (i.e. kG(s)u(s)k2 ). 2016-4-27 9.2 Singular value decomposition Given a matrix G ∈ C m×p , with rank(G) = r ≤ min(m, p), G = U ΣV ∗ , with Σ = diag(σ1 , . . . , σr , 0, . . . , 0), σi ≥ σi+1 ≥ σr > 0, U ∗ U = I, V ∗V = I (unitary). 2 × 2 real matrix example G= | − sin θ1 cos θ1 {z } U (rotate) cos θ1 sin θ1 σ1 0 0 σ2 | {z } Σ (scale) | cos θ2 − sin θ2 ± sin θ2 ± cos θ2 {z V∗ (rotate) } 2016-4-27 9.3 Singular value decomposition Maximum gain; as a function of direction G = U ΣV = u1 ∗ ··· um σ1 .. . σr 0 If we choose x = v1 (which means kxk2 = 1) then, 0 0 v1∗ .. . vp∗ Gx = u1 σ1 , and kGxk2 = σ1 = max kGxk2 . kxk2 =1 Notation: 2016-4-27 σ (G) := σ1 σ (G) := σmin(m,p) (maximum singular value) (minimum singular value) 9.4 Singular value decomposition Input (u), kuk2 = 1 Output (y = Gu) y(2) Gv1 u(2) 1 1 Gv2 −1 y(1) v1 v2 1 u(1) −1 1 −1 −1 σ1 = 2.00 (maximum gain) σ2 = 0.82 (minimum gain) 1.5 G= −1.1 0 1.1 2016-4-27 9.5 SVD properties Gain bounds for y = Gu For any u, σ (G) ≤ kGuk2 ≤ σ (G) kuk2 Norm relationships: If G = G1 G2 , kGk = σ (G) ≤ σ (G1 )σ (G2 ) If G = G1 + G2 , kGk = σ (G) ≤ σ (G1 ) + σ (G2 ) Condition number κ(G) := σ (G) σ (G) and by definition: κ(G) ≥ 1 Plants with high condition numbers can be very difficult to control. 2016-4-27 9.6 Eigenvalue decompositions Spectral radius ρ(G) = max |λi (G)|, i where λi (G) satisfies λi xi = Gxi (eigenvalue equation). Spectral radius is not a norm G = G1 + G2 , but ρ(G) ρ(G1 ) + ρ(G2 ) 0 1 ρ = 0, but the matrix is not zero. 0 0 2016-4-27 9.7 Eigenvalue decomposition Input (u), kuk2 = 1 Output (y = Gu) y(2) Gv1 u(2) 1 1 Gx2 Gv2 −1 y(1) v1 x2 v2 1 u(1) −1 1 x1 −1 λ1 = 1.50 λ2 = 1.10 2016-4-27 Gx1 −1 1.5 G= −1.1 0 1.1 9.8 Singular value decomposition Maximum gain; as a function of frequency y(jω) = G(jω) u(jω) = U (jω)Σ(jω)V (jω)∗ u(jω). H∞ norm kG(s)kH∞ = sup ku(s)k2 =1 = ky(s)k2 sup ku(jω)k2 =1 Z ∞ −∞ Z ∞ ∗ y(jω) y(jω)dω ∗ u(jω) u(jω)dω −∞ = sup ω max ku(jω)k2 =1 1/2 1/2 ky(jω)k2 = sup σ (G(jω)) ω 2016-4-27 9.9 Example: distillation process (LV configuration) 1 87.8 G(s) = 75s + 1 108.2 −86.4 −109.6 σ (G(0)) = 197 σ (G(0)) = 1.39 κ(G(0)) = 141.7 Magnitude 100 σ (G) 10 σ (G) 1 0.01 0.1 1 log ω (rad/sec) 0.1 2016-4-27 9.10 Distillation process: input errors 1 87.8 G(s) = 75s + 1 108.2 −86.4 −109.6 Open-loop steady state response Consider the input, 1 u= giving the output 1 87.8 y= 108.2 −86.4 1 1.40 = . −109.6 1 −1.40 Now suppose we have a 5% error in the input actuators: 1.05 87.8 −86.4 1.05 10.11 u= . now gives y = = . 0.95 108.2 −109.6 0.95 9.49 Source of the problem: high condition number; and input errors not aligned with singular vectors. 2016-4-27 9.11 Distillation process: model uncertainty 1 87.8 G(s) = 75s + 1 108.2 −86.4 −109.6 ≈ 1 87 G̃(s) = 75s + 1 109 −88 . −108 Suppose we have errors in each matrix entry that are less than 2%. Open-loop steady state response Again consider the input, 1 u= giving the output 1 87.8 y= 108.2 Now apply the same input to G̃(0), 1 87 u= . now gives y = 1 109 −86.4 1 1.40 = . −109.6 1 −1.40 −88 1 −1 = . −108 1 1 The sign of each output has changed. Any closed loop controller designed for G̃(s) is almost certainly unstable on G(s). 2016-4-27 9.12 Example: spinning satellite 1 s − a2 G(s) = 2 s + a2 −a(s + 1) 100 a(s + 1) , s − a2 a = 10. Magnitude 10 σ (G) 1 0.1 1 log ω (rad/sec) 10 σ (G) 0.1 2016-4-27 9.13 Non-square plants ny > nu ny < nu y1 y2 y3 G(s) u1 y1 u2 y2 There is an output direction which is not affected by the input. u1 G(s) u2 u3 There is an input direction which has no effect on the output. These directions may vary as a function of frequency. Functional controllability A system is functionally controllable if the number of outputs (to be controlled) is equal to the normal rank of G(s). 2016-4-27 9.14 SVD performance measures d Gd (s) y + u G(s) K(s) + r − n ym + Input gain constraints Recall the “perfect” control (feedforward) solution: u = G(s)−1 R r − G(s)−1 Gd (s) d To avoid input saturation: σ G(jω)−1 R(ω) ≤ 1 σ G(jω)−1 Gd (jω) ≤ 1 ⇐ σ (G(jω)) ≥ σ (R(ω)) ⇐ σ (G(jω)) ≥ σ (Gd (jω)) 2016-4-27 9.15 MIMO reference tracking performance Gd (s) y + G(s) d u K(s) + r − n ym + Say d = 0, n = 0, and e = r − y. σ (S(jω)) ≤ ke(ω)k2 ≤ σ (S(jω)) kr(ω)k2 To get the reference tracking error, e, small for r of any direction, σ (S(jω)) <1/|Wp (ω)|, for all ω ⇐⇒ σ (Wp (ω)S(jω)) < 1, for all ω ⇐⇒ kWp SkH∞ < 1. 2016-4-27 9.16 MIMO reference tracking performance Bandwidth ωB : √ Frequency where σ (S(jω)) crosses 1/ 2 from below. σ (X) − 1 ≤ 1 σ ((I + X)−1 ) (see S & P appendix) So: σ (L(jω)) − 1 ≤ 1 σ (S(jω)) At low ω: σ (L(jω)) 1 =⇒ σ (S(jω)) ≈ 1/σ (L(jω)) At high ω: σ (L(jω)) 1 =⇒ σ (S(jω)) ≈ 1 2016-4-27 9.17 MIMO performance limitations MIMO sensitivity S(jω) + T (jω) = I for all ω. So, |1 − σ (S(jω))| ≤ σ (T (jω)) ≤ 1 + σ (S(jω)) |1 − σ (T (jω))| ≤ σ (S(jω)) ≤ 1 + σ (T (jω)) 2016-4-27 9.18 MIMO performance limitations A Bode integral-type sensitivity constraint Z ∞ 0 ln | det(S(jω)| dω = = XZ j ∞ ln σj (S(jω)) dω 0 Np X π real(pi ) 0 if L(s) is unstable i=1 if L(s) is stable As in the SISO case, the summation is over the Np unstable poles of L(s). 2016-4-27 9.19 MIMO interpolation conditions Internally stable closed-loop S(s) and T (s) For RHP-poles, p, of G(s), with output direction yp T (pi )yp = yp , S(pi )yp = 0 For RHP-zeros, z, of G(s), with output direction yz yz∗ T (z) = 0, 2016-4-27 yz∗ S(z) = yz∗ 9.20 Weighted sensitivity peak Suppose G(s) has a RHP-zero, z. Suppose we also have a scalar sensitivity weight, Wp (s). Then for a closed-loop internally stable sensitivity function, S(s), kWp (s)S(s)kH∞ = max σ (Wp (jω)S(jω)) ω ≥ |Wp (z)| Performance requirements kWp (s)S(s)kH∞ < 1 =⇒ |Wp (z)| < 1. 2016-4-27 9.21 Weighted complementary sensitivity peak Suppose G(s) has a RHP-pole, p. Suppose we also have a scalar perturbation weight, Wm (s). Then for a closed-loop internally stable sensitivity function, T (s), kWm (s)T (s)kH∞ = max σ (Wm (jω)T (jω)) ω ≥ |Wm (p)| Robustness requirements kWm (s)T (s)kH∞ < 1 2016-4-27 =⇒ |Wm (p)| < 1. 9.22 MIMO loopshaping Nominal performance Reference tracking: e = S(s)w kWp SkH∞ ≤ 1 ⇐⇒ ⇐⇒ kWp ek2 ≤ 1 for all kwk2 ≤ 1 Nominal performance Robust stability Suppose we have a multiplicative perturbation model. Model set: G(s)(I +∆Wm (ω)) kWm T kH∞ ≤ 1 or k∆kH∞ < 1 (I +∆Wm (ω))G(s), ⇐⇒ Robust stability Important subtlety: the correct definition of T (s) and S(s) depends on the location of the perturbation. 2016-4-27 9.23 MIMO loopshaping For simplicity, consider scalar weights Wm (s) and Wp (s). Magnitude If σ (L(jω)) 1 (high freq.) 100 σ (T (jω)) < 1/|Wm (jω)| is approximately 10 1 σ (L(jω)) < |Wm−1 (jω)| Wp (jω) 0.01 0.1 1 log ω (rad/sec) Wm−1 (jω) 0.1 If σ (L(jω)) 1 (low freq.) σ (S(jω)) < 1/|Wp (jω)| 0.01 is approximately σ (L(jω)) σ (L(jω)) σ (L(jω)) > |Wp (jω)| Note: In general σ(GK) 6= σ(KG). Different conditions may apply. 2016-4-27 9.24 Example: distillation process (DV configuration) Nominal plant 1 −87.8 G(s) = (100s + 1)(s + 1) −108.2 1.4 −1.4 Perturbation model Wm ∆ y y= 1 y2 G(s) (s + 0.2) Wm (s) = I2×2 , (0.5s + 1) u u= 1 u2 + ∆= δ11 δ21 δ12 δ22 or ∆= | {z } “unstructured” perturbation δ11 0 0 δ22 {z } | “structured” perturbation 2016-4-27 9.25 Example: distillation process (DV configuration) 1 −87.8 G(s) = (100s + 1)(s + 1) −108.2 1.4 , −1.4 κ(G(jω)) = 70.6 Magnitude 100 10 σ (G(s)) Wp (s) Wm (s) 1 0.01 0.1 log ω (rad/sec) 1 0.1 σ (G(s)) 0.01 2016-4-27 G(s) 9.26 MIMO controller design: inverse based Wm (s) ∆ y G(s) K(s) + + r − 1 −87.8 G(s) = −108.2 (100s + 1)(s + 1) (100s + 1) 0.4 K(s) = 0 s 0 0.2 1.4 −1.4 −87.8 −108.2 1 0.4 Li (s) = K(s)G(s) = s(s + 1) 0 −1 1.4 −1.4 0 0.2 1 0.29 Lo (s) = G(s)K(s) = s(s + 1) 0.11 RS analysis ←− 0.09 0.31 ←− NP analysis 2016-4-27 9.27 Example: Nominal performance kWp So kH∞ = Wp (s) (I + G(s)K(s))−1 H ∞ < 1, or, equivalently, |σ (So (jω))| < 1 |Wp (jω)| Magnitude Wp −1 (jω) 1 0.01 0.1 1 log ω (rad/sec) 0.1 σ(So (jω)) 0.01 2016-4-27 9.28 Example: Robust stability kWm Ti kH∞ = Wm (s) (I + K(s)G(s))−1 K(s)G(s)H ∞ < 1, or, equivalently, |σ (Ti (jω))| < 1 |Wm (jω)| Magnitude Wm−1 (jω) 1 0.01 0.1 1 log ω (rad/sec) σ(Ti (jω)) 0.1 0.01 2016-4-27 9.29 Example: nominal performance and robust stability 1.0 0.75 σ (Wp (jω)So (jω)) 0.5 0.25 σ (Wm (jω)Ti (jω)) 0 2016-4-27 0.01 0.1 1 log ω (rad/sec) σ (Wp (jω)So (jω)) < 1, for all ω ⇐⇒ nominal performance σ (Wm (jω)Ti (jω)) < 1, for all ω ⇐⇒ robust stability 9.30 MIMO loopshaping Potential difficulties I Robust stability is with respect to a single unstructured perturbation. I Ensuring stabilization is not as simple as the SISO case. I Multiple performance criteria are not as easily expressed as a single sensitivity constraint. I No guarantees about robust performance. 2016-4-27 9.31 MIMO RHP zero limitations Non-minimum phase MIMO example s 2 s + 11s + 10 GNMP (s) = 5s2 + 10s + 50 s3 + 15s2 + 50s = s 10 s + 10 s + 10 10 s s + 10 s + 10 | {z } −1 Bz (s) 10 s2 + 11s + 10 s + 55 s2 + 15s + 50 5 s + 5 . 1 s {z } GMP (s) 1 s + 1 0 | GNMP (s) has a RHP zero at s = 10 radians/second. 1 −1 GNMP (s) |s=10 = 0 0 . | {z } yzT 2016-4-27 9.32 MIMO RHP zero limitations Non-minimum phase MIMO example Magnitude 100 G12 (jω) 10 0.1 1 10 100 log ω (rad/sec) 1 10 100 log ω (rad/sec) 1 0.1 0.01 G11 (jω) 0.001 90 0.1 0 −90 G21 (jω) G22 (jω) −180 Phase (deg.) 2016-4-27 9.33 MIMO RHP zero limitations Internal Model Control (IMC) based design Design for, T (s) = Bz−1 (s)Tideal (s). Choose the “ideal” complementary sensitivity function to be, 1 1 0 Tideal (s) = 2 . 0 1 √ s s + 2 +1 ωc ωc 2016-4-27 9.34 MIMO RHP zero limitations Sensitivity: S = (I + GK)−1 Reference tracking performance or output disturbance rejection. Maximum singular value 10 0.1 1 1 10 0.1 100 log ω (rad/sec) ωc = 0.1 ωc = 0.2 ωc = 0.5 ωc = 1.0 ωc = 2.0 ωc = 5.0 ωc = 10 ωc = 20 0.01 0.001 2016-4-27 9.35 MIMO RHP zero limitations Input complementary sensitivity: Ti = (I + KG)−1 Robustness with respect to input perturbations. Maximum singular value 50 10 0.1 1 0.1 0.01 1 10 100 log ω (rad/sec) ωc = 0.1 ωc = 0.2 ωc = 0.5 ωc = 1.0 ωc = 2.0 ωc = 5.0 ωc = 10 ωc = 20 0.001 2016-4-27 9.36 Notes and references Skogestad & Postlethwaite (2nd Ed.) MIMO systems: sections 3.2 and 3.3 MIMO examples: section 3.7 Sensitivity bounds: sections 6.2 and 6.3 2016-4-27 9.37