Control Systems 2 Lecture 2: Loopshaping design Roy Smith 2016-4-9 2.1 Loopshaping Gd (s) y + G(s) d u K(s) + r − n e = = 2016-4-9 ym + r−y 1 r 1 + L(s) | {z } S(s) − 1 Gd (s)d 1 + L(s) | {z } S(s) + L(s) n 1 + L(s) | {z } T (s) 2.2 Loopshaping e = 1 r 1 + L(s) | {z } S(s) − 1 Gd (s)d 1 + L(s) | {z } S(s) + L(s) n 1 + L(s) | {z } T (s) Performance requirements can be approximated by requirements for L(jω). |L(jω)| 1 =⇒ |S(jω)| 1 |L(jωc )| = 1 gives bandwidth ≈ ωc |L(jω)| 1 =⇒ (good tracking performance) |T (jω)| 1 (good noise rejection) 2016-4-9 2.3 Bode gain-phase relationship For minimum phase stable systems (with L(0) > 0), The phase of L(jω) is determined by the slope of |L(jω)|. If the slope is constant then: d|L(jω)| = −20 dB/decade dω = −20n dB/decade ⇐⇒ ⇐⇒ ∠L(jω) = −90◦ ∠L(jω) = −90n◦ , n = 1, 2, . . . Slope constraint at crossover: d|L(jω)| = −20 dB/decade dω =⇒ P M ≈ 90◦ (this requires a constant slope for a wide region of frequency) 2016-4-9 2.4 Loopshape specifications 1. |L(jω)| 1 for frequencies requiring high performance. 2. Gain crossover frequency, ωc , gives closed-loop bandwidth. 3. The slope of L(jω) at crossover should be -20dB/decade. 4. The system type is the number of pure integrators in L(s). Magnitude L(jω) ωc log ω 2016-4-9 2.5 Inverse-based controller design Stable, minimum-phase plant Can choose: L(s) = ωc s This will give a phase margin of 90◦ . K(s) = ωc −1 G (s) s This is often not desirable unless the reference and disturbances affect the output as steps. Inverting the plant can often be done only approximately. 2016-4-9 2.6 Example: disturbance process Gd (s) y + G(s) d u K(s) + r − n G(s) = ym + 200 1 , (10s + 1) (0.05s + 1)2 Gd (s) = 100 10s + 1 2016-4-9 2.7 Example: disturbance process G(s) = 200 1 , (10s + 1) (0.05s + 1)2 Gd (s) = 100 10s + 1 Objectives: 1. Rise time < 0.3 seconds. 2. Overshoot < 5% 3. Disturbance response, yd (t), satisfies |y(t)| ≤ 1. 4. Disturbance response, yd (t), satisfies |y(t)| < 0.1 within 3 seconds. 5. |u(t)| ≤ 1 at all times. |Gd (jω)| > 1 up to ωd ≈ 10 rad/sec 2016-4-9 =⇒ ωc ≥ 10 rad/sec. 2.8 Example: disturbance process 1000 Magnitude 100 Gd (jω) G(jω) 10 0.1 1 10 log ω (rad/sec) 0.1 1 10 log ω (rad/sec) 1 0.1 0.01 0 Gd (jω) −90 G(jω) −180 −270 Phase (deg.) 2016-4-9 2.9 Inverse-based control design The plant is stable and minimum-phase: K0 (s) = 2016-4-9 ωc −1 G (s) s = ωc (10s + 1) (0.05s + 1)2 s 200 ≈ ωc (10s + 1) (0.1s + 1) s 200 (0.01s + 1) 2.10 Example: inverse-based controller design 1000 Magnitude 100 L0 (jω) G(jω) 10 0.1 1 10 log ω (rad/sec) 1 K0 (jω) 0.1 GM 0.01 90 0.1 1 10 log ω (rad/sec) 0 K0 (jω) −90 L0 (jω) −180 −270 PM G(jω) Phase (deg.) 2016-4-9 2.11 Example: inverse-based controller design 10 Magnitude L0 (jω) 5 1 1 10 100 T0 (jω) log ω (rad/sec) 0.5 S0 (jω) 0.1 The closed-loop bandwidth is very close to ωc ≈ 10 rad/sec. 2016-4-9 2.12 Example: inverse-based controller design K0 = ωc (10s + 1) (0.1s + 1) s 200 (0.01s + 1) Reference tracking Disturbance response Amplitude 1.5 Amplitude 1.5 yr (t) 1 1 0.5 yd (t) 0.5 0 0 1 2 3 time (sec) 0 0 2016-4-9 1 2 3 time (sec) 2.13 Loopshaping for disturbance rejection Disturbance response: yd = SGd d + . . . To achieve |yd (t)| ≤ 1 for |d(t)| ≤ 1, we want |SGd (jω)| < 1 for all ω. So, we want: |1 + L(jω)| > |Gd (jω)| or, approximately, for all ω. |L(jω)| > |Gd (ω)| for all ω. Initial guess: |Lmin | ≈ |Gd | 2016-4-9 or |Kmin | ≈ |G−1 Gd | 2.14 Loopshaping for disturbance rejection Step 1: Initial guess: |Kmin | ≈ |G−1 Gd | Choose: K1 (s) ≈ G−1 (s)Gd (s) ≈ 0.5(0.05s + 1)2 = 0.5 2016-4-9 2.15 Example: disturbance rejection design 1000 Magnitude 100 10 L1 (jω) G(jω) 0.1 1 10 log ω (rad/sec) 1 GM K1 (jω) 0.1 S1 (jω) 0.01 90 0.1 0 log ω (rad/sec) L1 (jω) −180 2016-4-9 10 K1 (jω) −90 −270 1 PM G(jω) Phase (deg.) 2.16 Example: disturbance rejection design K1 = 0.5 =⇒ L1 (s) ≈ Gd (s) Reference tracking Disturbance response Amplitude 1.5 Amplitude 1.5 1 1 y1 (t) 0.5 y1 (t) 0.5 0 0 1 2 3 time (sec) 0 0 1 2016-4-9 2 3 time (sec) 2.17 Loopshaping for disturbance rejection Step 2: Increase the gain at low frequency. To get integral action multiply the controller by: K2 (s) = s + ωI K1 (s). s If ωI = 0.2ωc we get 11◦ more phase at ωc than with K1 alone. So, K2 (s) = 0.5 2016-4-9 (s + 2) s 2.18 Example: disturbance rejection design 1000 Magnitude L2 (jω) 100 K2 (jω) 10 G(jω) 0.1 1 10 log ω (rad/sec) 1 GM 0.1 S2 (jω) 0.01 90 0.1 0 1 G(jω) 10 K2 (jω) −90 L2 (jω) −180 −270 log ω (rad/sec) PM Phase (deg.) 2016-4-9 2.19 Example: disturbance rejection design K1 = 0.5 and K2 = 0.5 (s + 2) s Reference tracking Disturbance response Amplitude 1.5 Amplitude 1.5 y2 (t) 1 y1 (t) 0.5 y2 (t) 0.5 0 0 2016-4-9 y1 (t) 1 1 2 3 time (sec) 0 0 1 2 3 time (sec) 2.20 Loopshaping for disturbance rejection Step 3: High frequency correction: Augment with a lead-lag for “derivative action”. This will also improve the phase margin. K3 (s) = K2 (s) = 0.5 (0.05s + 1) (0.005s + 1) (s + 2) (0.05s + 1) s (0.005s + 1) 2016-4-9 2.21 Example: disturbance rejection design 1000 Magnitude L3 (jω) 100 10 K3 (jω) G(jω) 0.1 1 10 log ω (rad/sec) 1 0.1 GM S3 (jω) 0.01 90 0.1 0 G(jω) 1 10 log ω (rad/sec) K3 (jω) −90 L3 (jω) −180 −270 2016-4-9 PM Phase (deg.) 2.22 Example: disturbance rejection design K1 = 0.5, K2 = 0.5 (s + 2) , s Reference tracking (s + 2) (0.05s + 1) s (0.005s + 1) Disturbance response Amplitude 1.5 K3 = 0.5 Amplitude 1.5 y2 (t) y3 (t) 1 y1 (t) 1 y1 (t) y2 (t) 0.5 0.5 y3 (t) 0 0 1 2 3 time (sec) 0 0 1 2 2016-4-9 3 time (sec) 2.23 Example: disturbance rejection design Loopshape comparisons 1000 Magnitude L0 100 L3 L2 L1 10 0.1 1 10 100 1 log ω (rad/sec) L1 0.1 0.01 2016-4-9 L2 L0 L3 2.24 Example: disturbance rejection design Loopshape comparisons imag j −1 1 real L2 L3 −j L1 L0 2016-4-9 2.25 2 degrees-of-freedom designs Gd (s) y + n G(s) d u r u = K(s) ym K(s) ym + r Effectively choose different transfer functions for y d 2016-4-9 and y . r 2.26 2 degrees-of-freedom designs Reference prefiltering: Gd (s) y + G(s) d u Ky (s) + Kr (s) r − n ym + Control structure: So y= u = Ky (Kr r − ym ) GKy 1 Kr r + Gd d 1 + GKy 1 + GKy = T Kr r + SGd d with L = GKy . 2016-4-9 2.27 2 degrees-of-freedom designs Reference prefiltering: The reference prefiltered step response is Choose Kr = T −1 Tideal T (s) ≈ (approximately) (0.7s + 1) 1.5 0.5 − = 0.1s + 1 0.5s + 1 (0.1s + 1)(0.5s + 1) This implies that, Kr (s) = 2016-4-9 y = T Kr r + SGd d 0.5s + 1 , is a reasonable choice. 0.7s + 1 2.28 2 degrees-of-freedom designs Reference tracking K3r = Amplitude 1.5 (0.5s + 1) (0.7s + 1)(0.03s + 1) y3 (t) The additional pole was added to prevent u(t) peaking above one. 1 y3 (t) (reference prefilter) 0.5 0 0 1 2 3 time (sec) 2016-4-9 2.29 Notes and references Skogestad & Postlethwaite (2nd Ed.) Loopshaping: Section 2.6 2016-4-9 2.30