PID Tuning using the SIMC rules Sigurd Skogestad NTNU, Trondheim, Norway September 2008 1. 2. 3. 4. 5. 6. Model SIMC-tunings Tight control Smooth control Level control Discussion points Operation: Decision and control layers RTO cs = y1s Min J (economics); MV=y1s CV=y1; MV=y2s MPC y2s PID CV=y2; MV=u u (valves) Stepwise procedure plantwide control I. TOP-DOWN Step 1. DEGREES OF FREEDOM Step 2. OPERATIONAL OBJECTIVES Step 3. WHAT TO CONTROL? (primary CV’s c=y1) Step 4. PRODUCTION RATE II. BOTTOM-UP (structure control system): Step 5. REGULATORY CONTROL LAYER (PID) “Stabilization” What more to control? (secondary CV’s y2) Step 6. SUPERVISORY CONTROL LAYER (MPC) Decentralization Step 7. OPTIMIZATION LAYER (RTO) Can we do without it? PID controller e Time domain (“ideal” PID) Laplace domain (“ideal”/”parallel” form) Usually τD=0. Only two parameters left (Kc and τI)… How difficult can it be??? Surprisingly difficult without systematic approach! Let’s start with the CONCLUSION Tuning of PID controllers SIMC tuning rules (“Skogestad IMC”)(*) Main message: Can usually do much better by taking a systematic approach Key: Look at initial part of step response Initial slope: k’ = k/1 One tuning rule! Easily memorized c ≥ - : desired closed-loop response time (tuning parameter) •For robustness select: c ≥ Reference: S. Skogestad, “Simple analytic rules for model reduction and PID controller design”, J.Proc.Control, Vol. 13, 291-309, 2003 (Also reprinted in MIC) (*) “Probably the best simple PID tuning rules in the world” MODEL Need a model for tuning Model: Dynamic effect of change in input u (MV) on output y (CV) First-order + delay model for PI-control Second-order model for PID-control MODEL, Approach 1A 1. Step response experiment Make step change in one u (MV) at a time Record the output (s) y (CV) MODEL, Approach 1A First-order plus delay process RESULTING OUTPUT y (CV) k’=k/1 STEP IN INPUT u (MV) Step response experiment Delay - Time where output does not change 1: Time constant - Additional time to reach 63% of final change k : steady-state gain = y(∞)/ u k’ : slope after response “takes off” = k/1 MODEL, Approach 1A Δy(∞) RESULTING OUTPUT y STEP IN INPUT u Δu : Delay - Time where output does not change 1: Time constant - Additional time to reach 63% of final change k = y(∞)/ u : Steady-state gain MODEL, Approach 1A Step response integrating process Δy Δt MODEL, Approach 1B Model from closed-loop response with P-controller Kc0=1.5 Δys=1 Δy∞ dyinf = 0.45*(dyp + dyu) Mo =(dyp -dyinf)/dyinf b=dyinf/dys Δyp=0.79 Δyu=0.54 A = 1.152*Mo^2 - 1.607*Mo + 1.0 r = 2*A*abs(b/(1-b)) k = (1/Kc0) * abs(b/(1-b)) theta = tp*[0.309 + 0.209*exp(-0.61*r)] tau = theta*r tp=4.4 Example 2: Get k=0.99, theta =1.68, tau=3.03 Ref: Shamssuzzoha and Skogestad (JPC, 2010) + modification by C. Grimholt (Project, NTNU, 2010) MODEL, Approach 2 2. Model reduction of more complicated model Start with complicated stable model on the form Want to get a simplified model on the form Most important parameter is the “effective” delay MODEL, Approach 2 MODEL, Approach 2 Example 1 Half rule MODEL, Approach 2 original 1st-order+delay MODEL, Approach 2 2 half rule MODEL, Approach 2 original 1st-order+delay 2nd-order+delay Original 7th order, g0 1st-order, half rule, g1 2nd-order, half rule, g2 1st-order, closed loop, gcl PIhalf-rule PIcl PID PID PIhalf-rule PIcl MODEL, Approach 2 Approximation of zeros c c c c c c Correction: More generally replace θ by τc in the above rules To make these rules more general (and not only applicable to the choice c=): Replace (time delay) by c (desired closed-loop response time). (6 places) SIMC-tunings Derivation of SIMC-PID tuning rules PI-controller (based on first-order model) For second-order model add D-action. For our purposes, simplest with the “series” (cascade) PID-form: SIMC-tunings Basis: Direct synthesis (IMC) Closed-loop response to setpoint change Idea: Specify desired response: and from this get the controller. ……. Algebra: SIMC-tunings SIMC-tunings IMC Tuning = Direct Synthesis Algebra: SIMC-tunings Integral time Found: Integral time = dominant time constant (I = 1) Works well for setpoint changes Needs to be modified (reduced) for integrating disturbances d c u g y Example. “Almost-integrating process” with disturbance at input: G(s) = e-s/(30s+1) Original integral time I = 30 gives poor disturbance response Try reducing it! SIMC-tunings Integral Time I = 1 Reduce I to this value: I = 4 (c+) = 8 Setpoint change at t=0 Input disturbance at t=20 SIMC-tunings Integral time Want to reduce the integral time for “integrating” processes, but to avoid “slow oscillations” we must require: Derivation: Setpoint response: Improve (get rid of overshoot) by “prefiltering”, y’s = f(s) ys. Details: See www.nt.ntnu.no/users/skoge/publications/2003/tuningPID Remark 13 II SIMC-tunings Conclusion: SIMC-PID Tuning Rules One tuning parameter: c SIMC-tunings Some insights from tuning rules 1. 2. 3. 4. The effective delay θ (which limits the achievable closed-loop time constant τc) is independent of the dominant process time constant τ1! It depends on τ2/2 (PI) or τ3/2 (PID) Use (close to) P-control for integrating process Beware of large I-action (small τI) for level control Use (close to) I-control for fast process (with small time constant τ1) Parameter variations: For robustness tune at operating point with maximum value of k’ θ = (k/τ1)θ SIMC-tunings Some special cases One tuning parameter: c SIMC-tunings Another special case: IPZ process IPZ-process may represent response from steam flow to pressure Rule T2: SIMC-tunings These tunings turn out to be almost identical to the tunings given on page 104-106 in the Ph.D. thesis by O. Slatteke, Lund Univ., 2006 and K. Forsman, "Reglerteknik for processindustrien", Studentlitteratur, 2005. SIMC-tunings Note: Derivative action is commonly used for temperature control loops. Select D equal to 2 = time constant of temperature sensor SIMC-tunings SIMC-tunings SIMC-tunings Selection of tuning parameter c Two main cases 1. TIGHT CONTROL: Want “fastest possible TIGHT CONTROL: control” subject to having good robustness • 2. SMOOTH CONTROL: CONTROL: Want “slowest possible control” subject to acceptable disturbance rejection • • Want tight control of active constraints (“squeeze and shift”) Want smooth control if fast setpoint tracking is not required, for example, levels and unconstrained (“self-optimizing”) variables THERE ARE ALSO OTHER ISSUES: Input saturation etc. TIGHT CONTROL TIGHT CONTROL Typical closed-loop SIMC responses with the choice c= TIGHT CONTROL Example. Integrating process with delay=1. G(s) = e-s/s. Model: k’=1, =1, 1=∞ SIMC-tunings with c with ==1: IMC has I=∞ Ziegler-Nichols is usually a bit aggressive Setpoint change at t=0c Input disturbance at t=20 TIGHT CONTROL 1. Approximate as first-order model with k=1, 1 = 1+0.1=1.1, =0.1+0.04+0.008 = 0.148 Get SIMC PI-tunings (c=): Kc = 1 · 1.1/(2· 0.148) = 3.71, I=min(1.1,8· 0.148) = 1.1 2. Approximate as second-order model with k=1, 1 = 1, 2=0.2+0.02=0.22, =0.02+0.008 = 0.028 Get SIMC PID-tunings (c=): Kc = 1 · 1/(2· 0.028) = 17.9, I=min(1,8· 0.028) = 0.224, D=0.22 SMOOTH CONTROL Tuning for smooth control Tuning parameter: c = desired closed-loop response time Selecting c= (“tight control”) is reasonable for cases with a relatively large effective delay Other cases: Select c > for slower control smoother input usage less disturbing effect on rest of the plant less sensitivity to measurement noise better robustness Question: Given that we require some disturbance rejection. What is the largest possible value for c ? Or equivalently: The smallest possible value for Kc? Will derive Kc,min. From this we can get c,max using SIMC tuning rule S. Skogestad, ``Tuning for smooth PID control with acceptable disturbance rejection'', Ind.Eng.Chem.Res, 45 (23), 7817-7822 (2006). SMOOTH CONTROL Closed-loop disturbance rejection d0 -d0 ymax -ymax SMOOTH CONTROL 3 10 2 10 |cPID| 1 10 Kc |d u |/|y 0 |cPI| | max 0 10 −2 10 −1 10 0 10 1 10 Frequency Minimum controller gain for PI-and PID-control: min |c(j)| = Kc 2 10 SMOOTH CONTROL Rule: Min. controller gain for acceptable disturbance rejection: Kc ≥ |u0|/|ymax| often ~1 (in span-scaled variables) |ymax| = allowed deviation for output (CV) |u0| = required change in input (MV) for disturbance rejection (steady state) = observed change (movement) in input from historical data SMOOTH CONTROL Rule: Kc ≥ |u0|/|ymax| Exception to rule: Can have lower Kc if disturbances are handled by the integral action. Disturbances must occur at a frequency lower than 1/I Applies to: Process with short time constant (1 is small) and no delay ( ≈ 0). For example, flow control Then I = 1 is small so integral action is “large” SMOOTH CONTROL Summary: Tuning of easy loops Easy loops: Small effective delay ( ≈ 0), so closedloop response time c (>> ) is selected for “smooth control” ASSUME VARIABLES HAVE BEEN SCALED WITH RESPECT TO THEIR SPAN SO THAT |u0/ymax| = 1 (approx.). Flow control: Kc=0.2, I = 1 = time constant valve (typically, 2 to 10s; close to pure integrating!) Level control: Kc=2 (and no integral action) Other easy loops (e.g. pressure): Kc = 2, I = min(4c, 1) Note: Often want a tight pressure control loop (so may have Kc=10 or larger) SMOOTH CONTROL LEVEL CONTROL Application of smooth control Averaging level control q V LC If you insist on integral action then this value avoids cycling Reason for having tank is to smoothen disturbances in concentration and flow. Tight level control is not desired: gives no “smoothening” of flow disturbances. Proof: 1. Let |u0| = |q0| – expected flow change [m3/s] (input disturbance) |ymax| = |Vmax| - largest allowed variation in level [m3] Minimum controller gain for acceptable disturbance rejection: Kc ≥ Kc,min = |u0|/|ymax| = |q0| / |Vmax| 2. From the material balance (dV/dt = q – qout), the model is g(s)=k’/s with k’=1. Select Kc=Kc,min. SIMC-Integral time for integrating process: I = 4 / (k’ Kc) = 4 |Vmax| / | q0| = 4 · residence time provided tank is nominally half full and q0 is equal to the nominal flow. LEVEL CONTROL More on level control Level control often causes problems Typical story: Level loop starts oscillating Operator detunes by decreasing controller gain Level loop oscillates even more ...... ??? Explanation: Level is by itself unstable and requires control. LEVEL CONTROL How avoid oscillating levels? • Simplest: Use P-control only (no integral action) • If you insist on integral action, then make sure the controller gain is sufficiently large • If you have a level loop that is oscillating then use Sigurds rule (can be derived): To avoid oscillations, increase Kc · I by factor f=0.1· (P0/I0)2 where P0 = period of oscillations [s] I0 = original integral time [s] 0.1 ≈ 1/2 LEVEL CONTROL Case study oscillating level We were called upon to solve a problem with oscillations in a distillation column Closer analysis: Problem was oscillating reboiler level in upstream column Use of Sigurd’s rule solved the problem LEVEL CONTROL Conclusion PID tuning SIMC tuning rules 1. Tight control: Select c= corresponding to 2. Smooth control. Select Kc ≥ Note: Having selected K c (or c ), the integral time I should be selected as given above 3. Derivative time: Only for dominant second-order processes SIMC-tunings QUIZ Quiz: SIMC PI-tunings 0.13 y 0.125 y 0.12 0.115 Step response 0.11 0.105 0.1 0 10 20 30 40 50 60 t [s]Time t (a) The Figure shows the response (y) from a test where we made a step change in the input (Δu = 0.1) at t=0. Suggest PI-tunings for (1) τc=2,. (2) τc=10. (b) Do the same, given that the actual plant is QUIZ Solution Actual plant: QUIZ Approximation of step response Approximation ”bye eye”