process control

255
P.C. Chau © 2001 Table of Contents Preface 1. Introduction ............................................................ [Number of 10-point single-space pages -->] 3 2. Mathematical Preliminaries .................................................................................................. 35 2.1 A simple differential equation model 2.2 Laplace transform 2.3 Laplace transforms common to control problems 2.4 Initial and final value theorems 2.5 Partial fraction expansion 2.5.1 Case 1: p(s) has distinct, real roots 2.5.2 Case 2: p(s) has complex roots 2.5.3 Case 3: p(s) has repeated roots 2.6 Transfer function, pole, and zero 2.7 Summary of pole characteristics 2.8 Two transient model examples 2.8.1 A Transient Response Example 2.8.2 A stirred tank heater 2.9 Linearization of nonlinear equations 2.10 Block diagram reduction Review Problems 3. Dynamic Response ............................................................................................................. 19 3.1 First order differential equation models 3.1.1 Step response of a first order model 3.1.2 Impulse response of a first order model 3.1.3 Integrating process 3.2 Second order differential equation models 3.2.1 Step response time domain solutions 3.2.2 Time-domain features of underdamped step response 3.3 Processes with dead time 3.4 Higher order processes and approximations 3.4.1 Simple tanks-in-series 3.4.2 Approximation with lower order functions with dead time 3.4.3 Interacting tanks-in-series 3.5 Effect of zeros in time response 3.5.1 Lead-lag element 3.5.2 Transfer functions in parallel Review Problems 4. State Space Representation ................................................................................................... 18 4.1 State space models 4.2 Relation with transfer function models 4.3 Properties of state space models 4.3.1 Time-domain solution 4.3.2 Controllable canonical form 4.3.3 Diagonal canonical form Review Problems 5. Analysis of PID Control Systems ........................................................................................ 22 5.1 PID controllers 5.1.1 Proportional control 5.1.2 Proportional-Integral (PI) control 5.1.3 Proportional-Derivative (PD) control 5.1.4 Proportional-Integral-Derivative (PID) control 5.2 Closed-loop transfer functions

Upload: mehrdadkr

Post on 08-Nov-2014

251 views

Category:

Documents


4 download

DESCRIPTION

control

TRANSCRIPT

Page 1: Process Control

P.C. Chau © 2001

Table of Contents

Preface

1. Introduction ............................................................ [Number of 10-point single-space pages -->] 3

2. Mathematical Preliminaries .................................................................................................. 352.1 A simple differential equation model2.2 Laplace transform2.3 Laplace transforms common to control problems2.4 Initial and final value theorems2.5 Partial fraction expansion

2.5.1 Case 1: p(s) has distinct, real roots2.5.2 Case 2: p(s) has complex roots2.5.3 Case 3: p(s) has repeated roots

2.6 Transfer function, pole, and zero2.7 Summary of pole characteristics2.8 Two transient model examples

2.8.1 A Transient Response Example2.8.2 A stirred tank heater

2.9 Linearization of nonlinear equations2.10 Block diagram reductionReview Problems

3. Dynamic Response ............................................................................................................. 193.1 First order differential equation models

3.1.1 Step response of a first order model3.1.2 Impulse response of a first order model3.1.3 Integrating process

3.2 Second order differential equation models3.2.1 Step response time domain solutions3.2.2 Time-domain features of underdamped step response

3.3 Processes with dead time3.4 Higher order processes and approximations

3.4.1 Simple tanks-in-series3.4.2 Approximation with lower order functions with dead time3.4.3 Interacting tanks-in-series

3.5 Effect of zeros in time response3.5.1 Lead-lag element3.5.2 Transfer functions in parallel

Review Problems

4. State Space Representation ................................................................................................... 184.1 State space models4.2 Relation with transfer function models4.3 Properties of state space models

4.3.1 Time-domain solution4.3.2 Controllable canonical form4.3.3 Diagonal canonical form

Review Problems

5. Analysis of PID Control Systems ........................................................................................ 225.1 PID controllers

5.1.1 Proportional control5.1.2 Proportional-Integral (PI) control5.1.3 Proportional-Derivative (PD) control5.1.4 Proportional-Integral-Derivative (PID) control

5.2 Closed-loop transfer functions

Page 2: Process Control

P.C. Chau © 2001

5.2.1 Closed-loop transfer functions and characteristic polynomials5.2.2 How do we choose the controlled and manipulated variables?5.2.3 Synthesis of a single-loop feedback system

5.3 Closed-loop system response5.4 Selection and action of controllers

5.4.1 Brief comments on the choice of controllersReview Problems

6. Design and Tuning of Single-Loop Control Systems ............................................................... 196.1 Tuning controllers with empirical relations

6.1.1 Controller settings based on process reaction curve6.1.2 Minimum error integral criteria6.1.3 Ziegler-Nichols ultimate-cycle method

6.2 Direct synthesis and internal model control6.2.1 Direct synthesis6.2.2 Pole-zero cancellation6.2.3 Internal model control (IMC)

Review Problems

7. Stability of Closed-loop Systems .......................................................................................... 177.1 Definition of Stability7.2 The Routh-Hurwitz Criterion7.3 Direct Substitution Analysis7.4 Root Locus Analysis7.5 Root Locus Design7.6 A final remark on root locus plots

Review Problems

8. Frequency Response Analysis ................................................................................................ 298.1 Magnitude and Phase Lag

8.1.1 The general analysis8.1.2 Some important properties

8.2 Graphical analysis tools8.2.1 Magnitude and Phase Plots8.2.2 Polar Coordinate Plots8.2.3 Magnitude vs Phase Plot

8.3 Stability Analysis8.3.1 Nyquist Stability criterion8.3.2 Gain and Phase Margins

8.4 Controller Design8.4.1 How do we calculate proportional gain without trial-and-error?8.4.2 A final word: Can frequency response methods replace root locus?

Review Problems

9. Design of State Space Systems ............................................................................................. 189.1 Controllability and Observability

9.1.1 Controllability9.1.2 Observability

9.2 Pole Placement Design9.2.1 Pole placement and Ackermann's formula9.2.2 Servo systems9.2.3 Servo systems with integral control

9.3 State Estimation Design9.3.1 State estimator9.3.2 Full-order state estimator system9.3.3 Estimator design9.3.4 Reduced-order estimator

Review Problems

Page 3: Process Control

P.C. Chau © 2001

10. Multiloop Systems ............................................................................................................ 2710.1 Cascade Control10.2 Feedforward Control10.3 Feedforward-feedback Control10.4 Ratio Control10.5 Time delay compensation—the Smith predictor10.6 Multiple-input Multiple-output control

10.6.1 MIMO Transfer functions10.6.2 Process gain matrix10.6.3 Relative gain array

10.7 Decoupling of interacting systems10.7.1 Alternate definition of manipulated variables10.7.2 Decoupler functions10.7.3 “Feedforward” decoupling functions

Review Problems

MATLAB Tutorial SessionsSession 1. Important basic functions ................................................................................... 7

M1.1 Some basic MATLAB commandsM1.2 Some simple plottingM1.3 Making M-files and saving the workspace

Session 2 Partial fraction and transfer functions..................................................................... 5M2.1 Partial fractionsM2.2 Object-oriented transfer functions

Session 3 Time response simulation................................................................................... 4M3.1 Step and impulse response simulationsM3.2 LTI Viewer

Session 4 State space functions.......................................................................................... 7M4.1 Conversion between transfer function and state spaceM4.2 Time response simulationM4.3 Transformations

Session 5 Feedback simulation functions............................................................................. 5M5.1 SimulinkM5.2 Control toolbox functions

Session 6 Root locus functions.......................................................................................... 7M6.1 Root locus plotsM6.2 Root locus design graphics interfaceM6.3 Root locus plots of PID control systems

Session 7 Frequency response functions............................................................................... 4M7.1 Nyquist and Nichols PlotsM7.2 Magnitude and Phase Angle (Bode) Plots

References................................................................................................................................ 1

Homework Problems ............................................................................................................... 31Part I Basics problemsPart II Intermediate problemsPart III Extensive integrated problems

The best approach to control is to think of it as applied mathematics.Virtually everything we do in this introductory course is related to theproperties of first and second order differential equations, and with differenttechniques in visualizing the solutions.

Page 4: Process Control

Chemical Process Control: A First Course with MATLAB

Pao C. Chau

University of California, San Diego

Preface

This is an introductory text written from the perspective of a student. The major concern is not how muchmaterial we cover, but rather, how to present the most important and basic concepts that one shouldgrasp in a first course. If your instructor is using some other text that you are struggling to understand, wehope we can help you too. The material here is the result of a process of elimination. The writing andexamples are succinct and self-explanatory, and the style is purposely unorthodox and conversational.To a great extent, the style, content, and the extensive use of footnotes are molded heavily by questionsraised in class. I left out very few derivation steps. If they were, the missing steps are provided ashints in the Review Problems at the back of each chapter. I strive to eliminate those “easily obtained”results that baffle many of us. Most students should be able to read the material on their own. You justneed basic knowledge in differential equations, and it helps if you have taken a course on writingmaterial balances. With the exception of chapters 4, 9, and 10, which should be skipped in a quarter-long course, it also helps if you proceed chapter by chapter. The presentation of material is not intendedfor someone to just jump right in the middle of the text. We place a very strong emphasis on developinganalytical skills. To keep pace with the modern computer era, we also take a coherent and integratedapproach to using a computational tool. We believe in active learning. When you read the chapters, itis very important that you have MATLAB with its Control Toolbox to experiment and test the examplesfirsthand.

Notes to Instructors

There are probably more introductory texts in control than other engineering disciplines. It is arguablewhether we need another control text. As we move into the era of hundred dollar textbooks, I believewe can lighten the economic burden, and with the Internet, assemble a new generation of modularizedtexts that soften the printing burden by off loading selected material to the Web. Still a key resolve isto scale back on the scope of a text to the most crucial basics. How much students can, or be enticed to,learn is inversely proportional to the number of pages that they have to read—akin to diminishedmagnitude and increased lag in frequency response. So as textbooks become thicker over the years inattempts to reach out to students and are excellent resources from the perspective of instructors, thesetexts are by no means more effective pedagogical tools. This project was started as a set of review noteswhen I found students having trouble identifying the key concepts in these expansive texts. I also foundthese texts in many circumstances deter students from active learning and experimenting on their own.

At this point, the contents are scaled down to fit a one-semester course. On a quarter system,Chapters 4, 9, and 10 can be omitted. With the exception of two chapters (4 and 9) on state spacemodels, the organization has “evolved” to become very classical. The syllabus is chosen such thatstudents can get to tuning PID controllers before they lose interest. Furthermore, discrete-time analysishas been discarded. If there is to be one introductory course in the undergraduate curriculum, it is veryimportant to provide an exposure to state space models as a bridge to a graduate level course. The lastchapter on mutliloop systems is a collection of topics that are usually handled by several chapters in aformal text. This chapter is written such that only the most crucial concepts are illustrated and that itcould be incorporated comfortably in a one-semester curriculum. For schools with the luxury of twocontrol courses in the curriculum, this last chapter should provide a nice introductory transition.Because the material is so restricted, we emphasize that this is a "first course" textbook, lest a studentmight mistakenly ignore the immense expanse of the control field. We also have omitted appendicesand extensive references. As a modularized tool, we use our Web Support to provide references, supportmaterial, and detailed MATLAB plots and results.

Homework problems are also handled differently. At the end of each chapter are short, mostlyderivation type, problems which we call Review Problems. Hints or solutions are provided for theseexercises. To enhance the skill of problem solving, we take the extreme approach, more so than

Page 5: Process Control

Stephanopoulos (1984), of collecting major homework problems at the back and not at the end of eachchapter. Our aim is to emphasize the need to understand and integrate knowledge, a virtue that isendearing to ABET, the engineering accreditation body in the United States. These problems do not evenspecify the associated chapter as many of them involve different techniques. A student has todetermine the appropriate route of attack. An instructor may find it aggravating to assign individualparts of a problem, but when all the parts are solved, we hope the exercise would provide a betterperspective to how different ideas are integrated.

To be an effective teaching tool, this text is intended for experienced instructors who may have awealth of their own examples and material, but writing an introductory text is of no interest to them.The concise coverage conveniently provides a vehicle with which they can take a basic, minimalist setof chapters and add supplementary material that they deem appropriate. Even withoutsupplementary material, however, this text contains the most crucial material and there should not bea need for an additional expensive, formal text.

While the intended teaching style relies heavily on the use of MATLAB, the presentation is verydifferent from texts which prepare elaborate M-files and even menu-driven interfaces. One of thereasons why MATLAB is such a great tool is that it does not have a steep learning curve. Students canquickly experiment on their own. Spoon-feeding with our misguided intention would only destroy theincentive to explore and learn on one's own. To counter this pitfall, strong emphasis is placed on whatone can accomplish easily with only a few MATLAB statements. MATLAB is introduced as walk-through tutorials that encourage students to enter commands on their own. As strong advocates of activelearning, we do not duplicate MATLAB results. Students, again, are encouraged to execute the commandsthemselves. In case help is needed, our Web Support, however, has the complete set of MATLAB resultsand plots. This organization provides a more coherent discourse on how one can make use of differentfeatures of MATLAB, not to mention saving significant printing costs. Finally, we can revise thetutorials easily to keep up with the continual upgrade of MATLAB. At this writing, the tutorials arebased on MATLAB version 5.3, and the object-oriented functions in the Control Toolbox version 4.2.Simulink version 3.0 is also utilized, but its scope is limited to simulating more complex control systems.

As a first course text, the development of models is limited to stirred-tanks, stirred tank heater,and a few other examples that are used extensively and repeatedly throughout the chapters. Ourphilosophy is one step back in time. The focus is the theory and the building of a foundation that mayhelp to solve other problems. The design is also to be able to launch into the topic of tuning controllersbefore students may lose interest. The coverage of Laplace transform is not entirely a concession toremedial mathematics. The examples are tuned to illustrate immediately how pole positions mayrelate to time domain response. Furthermore, students tend to be confused by the many different designmethods. As much as I can, especially in the controller design chapters, the same examples are usedthroughout. The goal is to help a student understand how the same problem can be solved by differenttechniques.

We have given up the pretense that we can cover controller design and still have time to do allthe plots manually. We rely on MATLAB to construct the plots. For example, we take a unique approachto root locus plots. We do not ignore it like some texts do, but we also do not go into the hand sketchingdetails. The same can be said with frequency response analysis. On the whole, we use root locus andBode plots as computational and pedagogical tools in ways that can help to understand the choice ofdifferent controller designs. Exercises that may help such thinking are in the MATLAB tutorials andhomework problems.

Finally, I have to thank Costas Pozikidris and Florence Padgett for encouragement and support onthis project, Raymond de Callafon for revising the chapters on state space models, and Allan Cruz forproofreading. Last but not least, Henry Lim combed through the manuscript and made numerousinsightful comments. His wisdom is sprinkled throughout the text.

Web Support (MATLAB outputs of text examples and MATLAB sessions, references, and supplementarynotes) is available at the CENG 120 homepage. Go to http://courses.ucsd.edu and find CENG 120.

ichau
Page 6: Process Control

P.C. Chau © 2001

❖ 1. Introduction

Control systems are tightly intertwined in our daily lives, so much that we take them for granted.They may be as low-tech and unglamorous as our flush toilet. Or they may be as high-tech aselectronic injection in our cars. In fact, there is more than a handful of computer control systemsin a typical car that we now drive. Everything from the engine to transmission, shock absorber,brakes, pollutant emission, temperature and so forth, there is an embedded microprocessorcontroller keeping an eye out for us. The more gadgetry, the more tiny controllers pulling the trickbehind our backs.1 At the lower end of consumer electronic devices, we can bet on finding at leastone embedded microcontroller.

In the processingindustry, controllersplay a crucial role inkeeping our plantsrunning—virtuallyeverything from simplyfilling up a storage tankto complex separationprocesses, and tochemical reactors.

As an illustration,let us take a look at abioreactor (Fig. 1.1). Tofind out if the bioreactoris operating properly,we monitor variablessuch as temperature, pH,dissolved oxygen, liquidlevel, feed flow rate, andthe rotation speed of theimpeller. In someoperations, we may alsomeasure the biomass andthe concentration of aspecific chemicalcomponent in the liquidor the composition ofthe gas effluent. Inaddition, we may need tomonitor the foam headand make sure it doesnot become too high.We most likely need to monitor the steam flow and pressure during the sterilization cycles. Weshould note that the schematic diagram is far from complete. By the time we have added enoughdetails to implement all the controls, we may not recognize the bioreactor. We certainly do notwant to scare you with that. On the other hand, this is what makes control such a stimulating andchallenging field.

1 In the 1999 Mercedes-Benz S-Class sedan, there are about 40 "electronic control units" thatcontrol up to 170 different variables.

ControlAlgorithm

Measurements: pH, temperatureliquid level, off gas analysis, etc.

Performance specifications

Product

Medium Feed

Cooling water

Acid

Base

Anti-foam

Air sparge

Off gas

Impeller

Figure 1.1. Schematic diagram of instrumentation associated with afermentor. The steam sterilization system and all sensors andtransmitters are omitted for clarity. Solid lines represent processstreams. Hairlines represent information flow.

Page 7: Process Control

1 – 2

Figure 1.2 . A block diagram representation of a single-input single-output negativefeedback system. Labels within the boxes are general. Labels outside the boxes apply tothe simplified pH control discussion.

For each quantity that we want to maintain at some value, we need to ensure that the bioreactoris operating at the desired conditions. Let's use the pH as an example. In control calculations, wecommonly use a block diagram to represent the problem (Fig. 1.2). We will learn how to usemathematics to describe each of the blocks. For now, the focus is on some common terminology.

To consider pH as a controlled variable, we use a pH electrode to measure its value and,with a transmitter, send the signal to a controller, which can be a little black box or a computer.The controller takes in the pH value and compares it with the desired pH, what we call the setpoint or reference. If the values are not the same, there is an error, and the controller makesproper adjustments by manipulating the acid or the base pump—the actuator.2 The adjustment isbased on calculations using a control algorithm, also called the control law. The error iscalculated at the summing point where we take the desired pH minus the measured pH. Because ofhow we calculate the error, this is a negative feedback mechanism.

This simple pH control scenario is what we call a single-input single-output (SISO) system;the single input is the set point and the output is the pH value.3 This simple feedback mechanismis also what we called a closed-loop. This single loop system ignores the fact that the dynamicsof the bioreactor involves complex interactions among different variables. If we want to take amore comprehensive view, we will need to design a multiple-input multiple-output (MIMO), ormultivariable, system. When we invoke the term system, we are referring to the process 4

(the bioreactor here), the controller, and all other instrumentation such as sensors,transmitters, and actuators (like valves and pumps) that enable us to control the pH.

When we change a specific operating condition, meaning the set point, we would like, forexample, the pH of the bioreactor to follow our command. This is what we call servo control.The pH value of the bioreactor is subjected to external disturbances (also called load changes),and the task of suppressing or rejecting the effects of disturbances is called regulatory control.Implementation of a controller may lead to instability, and the issue of system stability is amajor concern. The control system also has to be robust such that it is not overly sensitive tochanges in process parameters.

2 In real life, bioreactors actually use on-off control for pH.

3 We'll learn how to identify input and output variables, how to distinguish between manipulatedvariables, disturbances, measured variables and so forth. Do not worry about remembering all theterms here. We'll introduce them properly later.

4 In most of the control world, a process is referred to as a plant. We stay with "process"because in the process industry, a plant carries the connotation of the entire manufacturing orprocessing facility.

Acid/basePump

pH ControlAglorithm

pH electrodewith transmitter

ErrorDesiredpH

pH

MixedVessel

ControllerFunction Actuator Process

Transducer

+

MeasuredpH

Page 8: Process Control

1 – 3

What are some of the issues when we design a control system? In the first place, we need toidentify the role of various variables. We need to determine what we need to control, what we needto manipulate, what are the sources of disturbances, and so forth. We then need to state our designobjective and specifications. It may make a difference whether we focus on the servo or theregulator problem, and we certainly want to make clear, quantitatively, the desired response of thesystem. To achieve these goals, we have to select the proper control strategy and controller. Toimplement the strategy, we also need to select the proper sensors, transmitters, and actuators. Afterall is done, we have to know how to tune the controller. Sounds like we are working with amusical instrument, but that's the jargon.

The design procedures depend heavily on the dynamic model of the process to be controlled. Inmore advanced model-based control systems, the action taken by the controller actually depends onthe model. Under circumstances where we do not have a precise model, we perform our analysiswith approximate models. This is the basis of a field called "system identification and parameterestimation." Physical insight that we may acquire in the act of model building is invaluable inproblem solving.

While we laud the virtue of dynamic modeling, we will not duplicate the introduction of basicconservation equations. It is important to recognize that all of the processes that we want tocontrol, e.g. bioreactor, distillation column, flow rate in a pipe, a drug delivery system, etc., arewhat we have learned in other engineering classes. The so-called model equations are conservationequations in heat, mass, and momentum. We need force balance in mechanical devices, and inelectrical engineering, we consider circuits analysis. The difference between what we now use incontrol and what we are more accustomed to is that control problems are transient in nature.Accordingly, we include the time derivative (also called accumulation) term in our balance (model)equations.

What are some of the mathematical tools that we use? In classical control, our analysis isbased on linear ordinary differential equations with constant coefficients—what is called lineartime invariant (LTI). Our models are also called lumped-parameter models, meaning thatvariations in space or location are not considered. Time is the only independent variable.Otherwise, we would need partial differential equations in what is called distributed-parametermodels. To handle our linear differential equations, we rely heavily on Laplace transform, andwe invariably rearrange the resulting algebraic equation into the so-called transfer functions.These algebraic relations are presented graphically as block diagrams (as in Fig. 1.2). However, werarely go as far as solving for the time-domain solutions. Much of our analysis is based on ourunderstanding of the roots of the characteristic polynomial of the differential equation—what wecall the poles.

At this point, we should disclose a little secret. Just from the terminology, we may gather thatcontrol analysis involves quite a bit of mathematics, especially when we go over stability andfrequency response methods. That is one reason why we delay introducing these topics.Nonetheless, we have to accept the prospect of working with mathematics. We would be lying ifwe say that one can be good in process control without sound mathematical skills.

It may be useful to point out a few topics that go beyond a first course in control. With certainprocesses, we cannot take data continuously, but rather in certain selected slow intervals (c.f.titration in freshmen chemistry). These are called sampled-data systems. With computers, theanalysis evolves into a new area of its own—discrete-time or digital control systems. Here,differential equations and Laplace transform do not work anymore. The mathematical techniques tohandle discrete-time systems are difference equations and z-transform. Furthermore, there aremultivariable and state space control, which we will encounter a brief introduction. Beyondthe introductory level are optimal control, nonlinear control, adaptive control, stochastic control,and fuzzy logic control. Do not lose the perspective that control is an immense field. Classicalcontrol appears insignificant, but we have to start some where and onward we crawl.

Page 9: Process Control

P.C. Chau © 2001

❖ 2. Mathematical Preliminaries

Classical process control builds on linear ordinary differential equations and the technique ofLaplace transform. This is a topic that we no doubt have come across in an introductory course ondifferential equations—like two years ago? Yes, we easily have forgotten the details. We will try torefresh the material necessary to solve control problems. Other details and steps will be skipped.We can always refer back to our old textbook if we want to answer long forgotten but not urgentquestions.

What are we up to?

• The properties of Laplace transform and the transforms of some common functions.We need them to construct a table for doing inverse transform.

• Since we are doing inverse transform using a look-up table, we need to break downany given transfer functions into smaller parts which match what the table has—whatis called partial fractions. The time-domain function is the sum of the inversetransform of the individual terms, making use of the fact that Laplace transform is alinear operator.

• The time-response characteristics of a model can be inferred from the poles, i.e., theroots of the characteristic polynomial. This observation is independent of the inputfunction and singularly the most important point that we must master before movingonto control analysis.

• After Laplace transform, a differential equation of deviation variables can be thoughtof as an input-output model with transfer functions. The causal relationship ofchanges can be represented by block diagrams.

• In addition to transfer functions, we make extensive use of steady state gain and timeconstants in our analysis.

• Laplace transform is only applicable to linear systems. Hence, we have to linearizenonlinear equations before we can go on. The procedure of linearization is based on afirst order Taylor series expansion.

2.1 A simple differential equation model

We first provide an impetus of solving differential equations in an approach unique to controlanalysis. The mass balance of a well-mixed tank can be written (see Review Problems) as

τ dCdt = Cin – C , with C(0) = Co

where C is the concentration of a component, Cin is the inlet concentration, Co is the initial

concentration, and τ is the space time. In classical control problems, we invariably rearrange theequation as

τ dCdt + C = Cin (2-1)

and further redefine variables C' = C – Co and C'in = Cin – Co.1 We designate C' and C'in as

1 At steady state, 0 = Csin – Cs , and if Cs

in = Co, we can also define C'in = Cin – Csin . We'll

come back to this when we learn to linearize equations. We'll see that we should choose Co = Cs.

Page 10: Process Control

2 - 2

deviation variables—they denote how a quantity deviates from the original value at t = 0.1

Since Co is a constant, we can rewrite Eq. (2-1) as

τ dC'dt

+ C' = C' in , with C'(0) = 0(2-2)

Note that the equation now has a zero initial condition. For reference, the solution to Eq. (2-2) is 2

C'(t) = 1τ C' in(z) e– (t – z) / τ dz

0

t(2-3)

If C'in is zero, we have the trivial solution C' = 0. It is obvious from Eq. (2-2) immediately.For a more interesting situation in which C' is nonzero, or for C to deviate from the initial Co,C'in must be nonzero, or in other words, Cin is different from Co. In the terminology of differentialequations, the right hand side C'in is named the forcing function. In control, it is called the input.Not only C'in is nonzero, it is under most circumstances a function of time as well, C'in = C'in(t).

In addition, the time dependence of the solution, meaning the exponential function, arises fromthe left hand side of Eq. (2-2), the linear differential operator. In fact, we may recall that the lefthand side of (2-2) gives rise to the so-called characteristic equation (or characteristic polynomial).

Do not worry if you have forgotten the significance of the characteristic equation. We willcome back to this issue again and again. We are just using this example as a prologue. Typicallyin a class on differential equations, we learn to transform a linear ordinary equation into analgebraic equation in the Laplace-domain, solve for the transformed dependent variable, andfinally get back the time-domain solution with an inverse transformation.

In classical control theory, we make extensive use of Laplace transform to analyze thedynamics of a system. The key point (and at this moment the trick) is that we will try to predictthe time response without doing the inverse transformation. Later, we will see that the answer liesin the roots of the characteristic equation. This is the basis of classical control analyses. Hence, ingoing through Laplace transform again, it is not so much that we need a remedial course. Your olddifferential equation textbook would do fine. The key task here is to pitch this mathematicaltechnique in light that may help us to apply it to control problems.

1 Deviation variables are analogous to perturbation variables used in chemical kinetics or influid mechanics (linear hydrodynamic stability). We can consider deviation variable as a measure ofhow far it is from steady state.

2 When you come across the term convolution integral later in Eq. (4-10) and wonder how it maycome about, take a look at the form of Eq. (2-3) again and think about it. If you wonder aboutwhere (2-3) comes from, review your old ODE text on integrating factors. We skip this detail sincewe will not be using the time domain solution in Eq. (2-3).

f(t) y(t) F(s) Y(s)Ldy/dt = f(t)

Input/Forcing function(disturbances, manipulated variables)

Output (controlled variable)

G(s)

Input Output

Figure 2.1. Relationship between time domain and Laplace domain.

Page 11: Process Control

2 - 3

2.2 Laplace transform

Let us first state a few important points about the application of Laplace transform in solvingdifferential equations (Fig. 2.1). After we have formulated a model in terms of a linear orlinearized differential equation, dy/dt = f(y), we can solve for y(t). Alternatively, we can transformthe equation into an algebraic problem as represented by the function G(s) in the Laplace domainand solve for Y(s). The time domain solution y(t) can be obtained with an inverse transform, butwe rarely do so in control analysis.

What we argue (of course it is true) is that the Laplace-domain function Y(s) must contain thesame information as y(t). Likewise, the function G(s) contains the same dynamic information asthe original differential equation. We will see that the function G(s) can be "clean" looking if thedifferential equation has zero initial conditions. That is one of the reasons why we always pitch acontrol problem in terms of deviation variables.1 We can now introduce the definition.

The Laplace transform of a function f(t) is defined as

L[f(t)] = f(t) e–st dt

0

(2-4)

where s is the transform variable.2 To complete our definition, we have the inverse transform

f(t) = L–1[F(s)] =

12πj

F(s) est dsγ– j∞

γ+ j∞(2-5)

where γ is chosen such that the infinite integral can converge.3 Do not be intimidated by (2-5). Ina control class, we never use the inverse transform definition. Our approach is quite simple. Weconstruct a table of the Laplace transform of some common functions, and we use it to do theinverse transform using a look-up table.

An important property of the Laplace transform is that it is a linear operator, and contributionof individual terms can simply be added together (superimposed):

L[a f1(t) + b f2(t)] = a L[f1(t)] + b L[f2(t)] = aF1(s) + bF2(s) (2-6)

Note:The linear property is one very important reason why we can do partial fractions andinverse transform using a look-up table. This is also how we analyze more complex, butlinearized, systems. Even though a text may not state this property explicitly, we relyheavily on it in classical control.

We now review the Laplace transform of some common functions—mainly the ones that wecome across frequently in control problems. We do not need to know all possibilities. We canconsult a handbook or a mathematics textbook if the need arises. (A summary of the importantones is in Table 2.1.) Generally, it helps a great deal if you can do the following common ones

1 But! What we measure in an experiment is the "real" variable. We have to be careful when wesolve a problem which provides real data.

2 There are many acceptable notations of Laplace transform. We choose to use a capitalized letter,and where confusion may arise, we further add (s) explicitly to the notation.

3 If you insist on knowing the details, they can be found on our Web Support.

Page 12: Process Control

2 - 4

without having to look up a table. The same applies to simple algebra such as partial fractions andcalculus such as linearizing a function.

1. A constant

f(t) = a, F(s) =as

(2-7)

The derivation is:

L[a] = a e– st dt0

∞= – a

s e– st

0

∞= a 0 + 1

s = as

slope a

Exponential decay Linear ramp

Figure 2.2. Illustration of exponential and ramp functions.

2. An exponential function (Fig. 2.2)

f(t) = e–at with a > 0, F(s) =1

(s + a)(2-9)

L[e– at] = a e– at e– st dt0

∞= – 1

(s + a)e– (a + s)t

0

∞= 1

(s + a)

3. A ramp function (Fig. 2.2)

f(t) = at for t ≥ 0 and a = constant, F(s) =a

s2 (2-8)

L[at] = a t e– st dt0

∞= a – t 1

s e– st0

∞+ 1

s e– st dt0

∞= a

s e– st dt0

∞= a

s2

4. Sinusoidal functions

f(t) = sinωt, F(s) =ω

(s2 + ω2)(2-10)

f(t) = cosωt, F(s) =s

(s2 + ω2)(2-11)

We make use of the fact that sin ωt = 12j (e jωt – e– jωt) and the result with an exponential function

to derive L[sin ωt] = 1

2j(e jωt – e– jωt) e– st dt

0

∞= 1

2je– (s – jω)t dt

0

∞– e– (s + jω)t dt

0

= 12j

1s – jω – 1

s + jω = ωs2 + ω2

The Laplace transform of cosωt is left as an exercise in the Review Problems. If you need a review

Page 13: Process Control

2 - 5

on complex variables, our Web Support has a brief summary.

5. Sinusoidal function with exponential decay

f(t) = e–at sinωt, F(s) =ω

(s + a)2 + ω2(2-12)

Making use of previous results with the exponential and sine functions, we can pretty much dothis one by inspection. First, we put the two exponential terms together inside the integral:

sin ωt e– (s+ a)t dt0

∞= 1

2j e– (s + a – jω)t dt0

∞– e– (s + a + jω)t dt

0

= 12j

1(s + a) – jω – 1

(s + a) + jω

The similarity to the result of sinωt should be apparent now, if it was not the case with the LHS.

6. First order derivative, df/dt, L dfdt = sF(s) – f(0) (2-13)

and the second order derivative, L d2f

dt2 = s2F(s) – sf(0) – f'(0) (2-14)

We have to use integration by parts here,

L dfdt = df

dt e– st dt0

∞= f(t)e– st

0∞ + s f(t) e– st dt

0

∞= – f(0) + sF(s)

and

L d2fdt2 = d

dtdfdt e– st dt

0

∞= df

dt e– st

0

∞+ s df

dt e– st dt0

∞= – df

dt 0+ s sF(s) – f(0)

We can extend these results to find the Laplace transform of higher order derivatives. The key isthat if we use deviation variables in the problem formulation, all the initial value terms will dropout in Eqs. (2-13) and (2-14). This is how we can get these “clean-looking” transfer functions later.

7. An integral, L f(t) dt

0

t=

F(s)s (2-15)

We also need integration by parts here

f(t) dt

0

te– st dt

0

∞= – 1

s e– st f(t) dt0

t

0

∞+

1s

f(t) e– st dt0

∞= F(s)

s

Page 14: Process Control

2 - 6

Unit step

Rectangular pulse Impulse function

f(t)

f(t – t )o

t

t0 ot

0 t = t – to

t=0

1

t=0

A

T

Time delayfunction

t=0

Area = 1

Figure 2.3. Depiction of unit step, time delay, rectangular, and impulse functions.

2.3 Laplace transforms common to control problems

We now derive the Laplace transform of functions common in control analysis.

1. Step function

f(t) = Au(t), F(s) = As

(2-16)

We first define the unit step function (also called the Heaviside function in mathematics) andits Laplace transform:1

u(t) = 1 t > 00 t < 0 ; L[u(t)] = U(s) =

1s

(2-17)

The Laplace transform of the unit step function (Fig. 2.3) is derived as follows:

L u(t) = limε → 0 +

u(t) e– st dtε

∞= e– st dt

0 +

∞= – 1

s e– st0

∞= 1

s

With the result for the unit step, we can see the results of the Laplace transform of any stepfunction f(t) = Au(t).

f(t) = A u(t) = A t > 00 t < 0 ; L[Au(t)] =

As

The Laplace transform of a step function is essentially the same as that of a constant in (2-7).When you do the inverse transform of A/s, which function you choose depends on the context ofthe problem. Generally, a constant is appropriate under most circumstances.

1 Strictly speaking, the step function is discontinuous at t = 0, but many engineering textsignore it and simply write u(t) = 1 for t ≥ 0.

Page 15: Process Control

2 - 7

2. Dead time function (Fig. 2.3)

f(t – to), L f(t – to) = e– sto F(s) (2-18)

The dead time function is also called the time delay, transport lag, translated, or timeshift function (Fig. 2.3). It is defined such that an original function f(t) is "shifted" in time to,and no matter what f(t) is, its value is set to zero for t < to. This time delay function can be

written as:

f(t – to) = 0 , t – to < 0

f(t – to) , t – to > 0= f(t – to) u(t – to)

The second form on the far right is a more concise way to say that the time delay function f(t –to) is defined such that it is zero for t < to. We can now derive the Laplace transform.

L f(t – to) = f(t – to) u(t – to) e– st dt0

∞= f(t – to) e– st dt

to

and finally,

f(t – to) e– st dtto

∞= e– sto f(t – to) e– s(t – to ) d(t – to)

to

∞= e– sto f(t') e– st' dt'

0

∞= e– sto F(s)

where the final integration step uses the time shifted axis t' = t – to.

3. Rectangular pulse function (Fig. 2.3)

f(t) =

0 t < 0A 0 < t < T0 t > T

= A u(t) – u(t – T) , L f(t) = As 1 – e– sT (2-19)

The rectangular pulse can be generated by subtracting a step function with dead time T from a stepfunction. We can derive the Laplace transform using the formal definition

L f(t = f(t) e– st dt

0

∞= A e– st dt

0 +

T= A – 1

s e– st0

T= A

s 1 – e– sT

or better yet, by making use of the results of a step function and a dead time function

L f(t = L A u(t) – A u(t – T) = As – e– sTA

s

4. Unit rectangular pulse function

f(t) =

0 t < 01/T 0 < t < T0 t > T

= 1T u(t) – u(t – T) , L f(t) = 1

sT 1 – e– sT (2-20)

This is a prelude to the important impulse function. We can define a rectangular pulse such thatthe area is unity. The Laplace transform follows that of a rectangular pulse function

L f(t = L 1T u(t) – 1

T u(t – T) = 1T s 1 – e– sT

Page 16: Process Control

2 - 8

5. Impulse function (Fig. 2.3)

L[δ(t)] = 1, and L[Aδ(t)] = A (2-21)

The (unit) impulse function is called the Dirac (or simply delta) function in mathematics.1 If wesuddenly dump a bucket of water into a bigger tank, the impulse function is how we describe theaction mathematically. We can consider the impulse function as the unit rectangular function inEq. (2-20) as T shrinks to zero while the height 1/T goes to infinity:

δ(t) = limT → 0

1T u(t) – u(t – T)

The area of this "squeezed rectangle" nevertheless remains at unity:

limT → 0

(T 1T) = 1 , or in other words δ(t) dt = 1

– ∞

The impulse function is rarely defined in the conventional sense, but rather via its importantproperty in an integral:

f(t) δ(t) dt = f(0)– ∞

∞, and f(t) δ(t – to) dt = f(to)

– ∞

∞(2-22)

The Laplace transform of the impulse function is obtained easily by taking the limit of the unitrectangular function transform (2-20) with the use of L'Hospital's rule:

L δ(t = limT → 0

1 – e– sT

T s = limT → 0

s e– sT

s = 1

From this result, it is obvious that L[Aδ(t)] = A.

2.4 Initial and final value theorems

We now present two theorems which can be used to find the values of the time-domain function attwo extremes, t = 0 and t = ∞, without having to do the inverse transform. In control, we use thefinal value theorem quite often. The initial value theorem is less useful. As we have seen from ourvery first example in Section 2.1, the problems that we solve are defined to have exclusively zeroinitial conditions.

Initial Value Theorem: lims–> ∞

[sF(s)] = limt–> 0

f(t) (2-23)

Final Value Theorem: lims–> 0

[sF(s)] = limt–> ∞

f(t) (2-24)

The final value theorem is valid provided that a final value exists. The proofs of these theorems arestraightforward. We will do the one for the final value theorem. The proof of the initial valuetheorem is in the Review Problems.

Consider the definition of the Laplace transform of a derivative. If we take the limit as sapproaches zero, we find

1 In mathematics, the unit rectangular function is defined with a height of 1/2T and a width of 2Tfrom –T to T. We simply begin at t = 0 in control problems. Furthermore, the impulse function isthe time derivative of the unit step function.

Page 17: Process Control

2 - 9

lims → 0

df(t)dt e– st dt

0

∞= lim

s → 0s F(s) – f(0)

If the infinite integral exists,1 we can interchange the limit and the integration on the left to give

lims → 0

df(t)dt e

– stdt

0

∞= df(t)

0

∞= f(∞) – f(0)

Now if we equate the right hand sides of the previous two steps, we have

f(∞) – f(0) = lims → 0

s F(s) – f(0)

We arrive at the final value theorem after we cancel the f(0) terms on both sides.

✎ Example 2.1: Consider the Laplace transform F(s) = 6 (s – 2) (s + 2)s (s + 1) (s + 3) (s + 4) . What is f(t=∞)?

lims → 0

s 6 (s – 2) (s + 2)s (s + 1) (s + 3) (s + 4) = 6 (– 2) ( 2)

( 3) ( 4) = – 2

✎ Example 2.2: Consider the Laplace transform F(s) = 1(s – 2) . What is f(t=∞)?

Here, f(t) = e2t. There is no upper bound for this function, which is in violation of the existence ofa final value. The final value theorem does not apply. If we insist on applying the theorem, wewill get a value of zero, which is meaningless.

✎ Example 2.3: Consider the Laplace transform F(s) = 6 (s2 – 4)(s3 + s2 – 4s – 4)

. What is f(t=∞)?

Yes, another trick question. If we apply the final value theorem without thinking, we would get avalue of 0, but this is meaningless. With MATLAB, we can use

roots([1 1 -4 -4])

to find that the polynomial in the denominator has roots –1, –2, and +2. This implies that f(t)contains the term e2t, which increases without bound.

As we move on, we will learn to associate the time exponential terms to the roots of thepolynomial in the denominator. From these examples, we can gather that to have a meaningful,i.e., finite bounded value, the roots of the polynomial in the denominator must have negative realparts. This is the basis of stability, which will formerly be defined in Chapter 7.

1 This is a key assumption and explains why Examples 2.2 and 2.3 do not work. When afunction has no bound—what we call unstable later—the assumption is invalid.

Page 18: Process Control

2 - 10

2.5 Partial fraction expansion

Since we rely on a look-up table to do reverse Laplace transform, we need the skill to reduce acomplex function down to simpler parts that match our table. In theory, we should be able to"break up" a ratio of two polynomials in s into simpler partial fractions. If the polynomial in thedenominator, p(s), is of an order higher than the numerator, q(s), we can derive 1

F(s) =q(s)p(s) =

α 1(s + a1) +

α 2(s + a2) + ...

α i(s + ai)

+ ...α n

(s + an) (2-25)

where the order of p(s) is n, and the ai are the negative values of the roots of the equation p(s) = 0.

We then perform the inverse transform term by term:

f(t) = L–1[F(s)] = L–1 α 1

(s + a1)+ L–1 α 2

(s + a2)+ ... L–1 α i

(s + ai)+ ... L–1 α n

(s + an) (2-26)

This approach works because of the linear property of Laplace transform.

The next question is how to find the partial fractions in Eq. (2-25). One of the techniques is theso-called Heaviside expansion, a fairly straightforward algebraic method. We will illustratethree important cases with respect to the roots of the polynomial in the denominator: (1) distinctreal roots, (2) complex conjugate roots, and (3) multiple (or repeated) roots. In a given problem,we can have a combination of any of the above. Yes, we need to know how to do them all.

✑ 2.5.1 Case 1: p(s) has distinct, real roots

✎ Example 2.4: Find f(t) of the Laplace transform F(s) = 6s2 – 12(s3 + s2 – 4s – 4)

.

From Example 2.3, the polynomial in the denominator has roots –1, –2, and +2, values that willbe referred to as poles later. We should be able to write F(s) as

6s2 – 12(s + 1) (s + 2) (s – 2) =

α 1(s + 1) +

α 2(s + 2) +

α 3(s – 2)

The Heaviside expansion takes the following idea. Say if we multiply both sides by (s + 1), weobtain

6s2 – 12(s + 2) (s – 2) = α 1 +

α 2(s + 2) (s + 1) +

α 3(s – 2) (s + 1)

which should be satisfied by any value of s. Now if we choose s = –1, we should obtain

α 1 = 6s2 – 12(s + 2) (s – 2) s = –1

= 2

Similarly, we can multiply the original fraction by (s + 2) and (s – 2), respectively, to find

α 2 = 6s2 – 12(s + 1) (s – 2) s = –2

= 3

and

1 If the order of q(s) is higher, we need first carry out "long division" until we are left with apartial fraction "residue." Thus the coefficients αi are also called residues. We then expand this

partial fraction. We would encounter such a situation only in a mathematical problem. The modelsof real physical processes lead to problems with a higher order denominator.

Page 19: Process Control

2 - 11

α 3 = 6s2 – 12(s + 1) (s + 2) s = 2

= 1

Hence, F(s) = 2(s + 1) + 3

(s + 2) + 1(s – 2) , and using a look-up table would give us

f(t) = 2e– t + 3e– 2t + e2t

When you use MATLAB to solve this problem, be careful when you interpret the results. Thecomputer is useless unless we know what we are doing. We provide only the necessarystatements.1 For this example, all we need is:

[a,b,k]=residue([6 0 -12],[1 1 -4 -4])

✎ Example 2.5: Find f(t) of the Laplace transform F(s) = 6s(s3 + s2 – 4s – 4)

.

Again, the expansion should take the form

6s(s + 1) (s + 2) (s – 2) =

α 1(s + 1) +

α 2(s + 2) +

α 3(s – 2)

One more time, for each term, we multiply the denominators on the right hand side and set theresulting equation to its root to obtain

α 1 = 6s(s + 2) (s – 2) s = – 1

= 2 , α 2 = 6s(s + 1) (s – 2) s = – 2

= – 3 , and α 3 = 6s(s + 1) (s + 2) s = 2

= 1

The time domain function is

f(t) = 2e– t – 3e– 2t + e2t

Note that f(t) has the identical functional dependence in time as in the first example. Only thecoefficients (residues) are different.

The MATLAB statement for this example is:

[a,b,k]=residue([6 0],[1 1 -4 -4])

✎ Example 2.6: Find f(t) of the Laplace transform F(s) = 6(s + 1) (s + 2) (s + 3) .

This time, we should find

α 1 = 6

(s + 2) (s + 3) s = – 1= 3 , α 2 = 6

(s + 1) (s + 3) s = – 2= – 6 , α 3 = 6

(s + 1) (s + 2) s = – 3= 3

The time domain function is

1 Starting from here on, it is important that you go over the MATLAB sessions. Explanation ofresidue() is in Session 2. While we do not print the computer results, they can be found on ourWeb Support.

Page 20: Process Control

2 - 12

f(t) = 3e– t – 6e– 2t + 3e– 3t

The e–2t and e–3t terms will decay faster than the e–t term. We consider the e–t term, or the poleat s = –1, as more dominant.

We can confirm the result with the following MATLAB statements:

p=poly([-1 -2 -3]);

[a,b,k]=residue(6,p)

Note:(1) The time dependence of the time domain solution is derived entirely from the roots

of the polynomial in the denominator (what we will refer to later as the poles). Thepolynomial in the numerator affects only the coefficients α i. This is one reason

why we make qualitative assessment of the dynamic response characteristicsentirely based on the poles of the characteristic polynomial.

(2) Poles that are closer to the origin of the complex plane will have correspondingexponential functions that decay more slowly in time. We consider these polesmore dominant.

(3) We can generalize the Heaviside expansion into the fancy form for the coefficients

α i = (s + ai)q(s)p(s) s = – a i

but we should always remember the simple algebra that we have gone through inthe examples above.

✑ 2.5.2 Case 2: p(s) has complex roots 1

✎ Example 2.7: Find f(t) of the Laplace transform F(s) = s + 5s2 + 4s + 13

.

We first take the painful route just so we better understand the results from MATLAB. If we have todo the chore by hand, we much prefer the completing the perfect square method in Example 2.8.Even without MATLAB, we can easily find that the roots of the polynomial s2 + 4s +13 are –2 ±3j, and F(s) can be written as the sum of

s + 5s2 + 4s + 13

= s + 5s – ( – 2 + 3j) s – ( – 2 – 3j)

= αs – ( – 2 + 3j) + α *

s – ( – 2 – 3j)

We can apply the same idea formally as before to find

α = s + 5s – ( – 2 – 3j) s = – 2 + 3j

=(– 2 + 3j) + 5

(– 2 + 3j) + 2 + 3j =(j + 1)

2j = 12 (1 – j)

and its complex conjugate is

α* = 12 (1 + j)

The inverse transform is hence

1 If you need a review of complex variable definitions, see our Web Support. Many steps inExample 2.7 require these definitions.

Page 21: Process Control

2 - 13

f(t) = 12 (1 – j) e( – 2 + 3j)t + 1

2 (1 + j) e( – 2 – 3j)t

= 12 e– 2t (1 – j) e j 3t + (1 + j) e– j 3t

We can apply Euler's identity to the result:

f(t) = 12 e– 2t (1 – j) (cos 3t + j sin 3t) + (1 + j) (cos 3t – j sin 3t)

= 12 e– 2t 2 (cos 3t + sin 3t)

which we further rewrite as

f(t) = 2 e– 2t sin (3t + φ) where φ= tan– 1(1) = π/4 or 45°

The MATLAB statement for this example is simply:

[a,b,k]=residue([1 5],[1 4 13])

Note:(1) Again, the time dependence of f(t) is affected only by the roots of p(s). For the

general complex conjugate roots –a ± bj, the time domain function involves e–at

and (cos bt + sin bt). The polynomial in the numerator affects only the constantcoefficients.

(2) We seldom use the form (cos bt + sin bt). Instead, we use the phase lag form as inthe final step of Example 2.7.

✎ Example 2.8: Repeat Example 2.7 using a look-up table.

In practice, we seldom do the partial fraction expansion of a pair of complex roots. Instead, werearrange the polynomial p(s) by noting that we can complete the squares:

s2 + 4s + 13 = (s + 2)2 + 9 = (s + 2)2 + 32

We then write F(s) as

F(s) = s + 5s2 + 4s + 13

= (s + 2)(s + 2)2 + 32 + 3

(s + 2)2 + 32

With a Laplace transform table, we find

f(t) = e– 2t cos 3t + e– 2t sin 3t

which is the answer with very little work. Compared with how messy the partial fraction was inExample 2.7, this example also suggests that we want to leave terms with conjugate complexroots as one second order term.

✑ 2.5.3 Case 3: p(s) has repeated roots

✎ Example 2.9: Find f(t) of the Laplace transform F(s) = 2(s + 1)3 (s + 2)

.

The polynomial p(s) has the roots –1 repeated three times, and –2. To keep the numerator of eachpartial fraction a simple constant, we will have to expand to

Page 22: Process Control

2 - 14

2(s + 1)3 (s + 2)

=α 1

(s + 1) +α 2

(s + 1)2 +α 3

(s + 1)3 +α 4

(s + 2)

To find α3 and α4 is routine:

α 3 = 2(s + 2) s = – 1

= 2 , and α 4 = 2(s + 1)3

s = – 2

= – 2

The problem is with finding α1 and α2. We see that, say, if we multiply the equation with (s+1)to find α1, we cannot select s = –1. What we can try is to multiply the expansion with (s+1)3

2(s + 2) = α 1(s + 1)2 + α 2(s + 1) + α 3 +

α 4(s + 1)3

(s + 2)

and then differentiate this equation with respect to s:

– 2(s + 2)2 = 2 α 1(s + 1) + α 2 + 0 + α 4 terms with (s + 1)

Now we can substitute s = –1 which provides α2 = –2.

We can be lazy with the last α4 term because we know its derivative will contain (s + 1) termsand they will drop out as soon as we set s = –1. To find α1, we differentiate the equation one more

time to obtain

4(s + 2)3 = 2 α 1 + 0 + 0 + α 4 terms with (s + 1)

which of course will yield α1 = 2 if we select s = –1. Hence, we have

2(s + 1)3 (s + 2)

= 2(s + 1) + – 2

(s + 1)2 + 2(s + 1)3 + – 2

(s + 2)

and the inverse transform via table-lookup is

f(t) = 2 1 – t + t2

2 e– t – e– 2t

We can also arrive at the same result by expanding the entire algebraic expression, but that actuallytakes more work(!) and we will leave this exercise in the Review Problems.

The MATLAB command for this example is:

p=poly([-1 -1 -1 -2]);

[a,b,k]=residue(2,p)

Note:In general, the inverse transform of repeated roots takes the form

L– 1 α 1(s + a) +

α 2

(s + a)2 + ...α n

(s + a)n = α 1 + α 2t +α 32! t2 + ...

α n(n – 1)! tn – 1 e– at

The exponential function is still based on the root s = –a, but the actual time dependence willdecay slower because of the (α2t + …) terms.

Page 23: Process Control

2 - 15

2.6 Transfer function, pole, and zero

Now that we can do Laplace transform, let us return to our very first example. The Laplacetransform of Eq. (2-2) with its zero initial condition is (τs + 1)C'(s) = C'in(s), which we rewrite as

C'(s)

C'in(s)= 1

τ s + 1= G(s) (2-27)

We define the right hand side as G(s), our ubiquitous transfer function. It relates an input tothe output of a model. Recall that we use deviation variables. The input is the change in the inletconcentration, C'in(t). The output, or response, is the resulting change in the tank concentration,

C'(t).

✎ Example 2.10: What is the time domain response C'(t) in Eq. (2-27) if the change in inletconcentration is (a) a unit step function, and (b) an impulse function?

(a) With a unit step input, C'in(t) = u(t), and C'in(s) = 1/s. Substitution in (2-27) leads to

C'(s) = 1τ s + 1

1s = 1

s + – ττ s + 1

After inverse transform via table look-up, we have C'(t) = 1 – e–t/τ. The change in tankconcentration eventually will be identical to the unit step change in inlet concentration.

(b) With an impulse input, C'in(s) = 1, and substitution in (2-27) leads to simply

C'(s) = 1τ s + 1

,

and the time domain solution is C'(t) = 1τ e– t /τ . The effect of the impulse eventually will decay

away.

Finally, you may want to keep in mind that the results of this example can also be obtained viathe general time-domain solution in Eq. (2-3).

The key of this example is to note that irrespective of the input, the time domain solution

contains the time dependent function e–t/τ, which is associated with the root of the polynomial inthe denominator of the transfer function.

The inherent dynamic properties of a model are embedded in the characteristic polynomial of thedifferential equation. More specifically, the dynamics is related to the roots of the characteristicpolynomial. In Eq. (2-27), the characteristic equation is τs + 1 = 0, and its root is –1/τ. In ageneral sense, that is without specifying what C'in is and without actually solving for C'(t), we

can infer that C'(t) must contain a term with e–t/τ. We refer the root –1/τ as the pole of thetransfer function G(s).

We can now state the definitions more generally. For an ordinary differential equation 1

1 Yes, we try to be general and use an n-th order equation. If you have trouble with thedevelopment in this section, think of a second order equation in all the steps:

a2y(2) + a1y

(1) + aoy = b 1x(1) + b ox

Page 24: Process Control

2 - 16

any(n) + an – 1y(n –1) + ... + a1y(1) + aoy = b mx(m) + b m-1x(m –1) + ... + b 1x(1) + b ox (2-28)

with n > m and zero initial conditions y(n–1) = ... = y = 0 at t = 0, the corresponding Laplacetransform is

Y(s)X(s) =

b msm + b m – 1sm – 1 + ... + b 1s + b o

ansn + an – 1sn – 1 + ... + a1s + ao= G(s) = Q(s)

P(s) (2-29)

Generally, we can write the transfer function as the ratio of two polynomials in s.1 When wetalk about the mathematical properties, the polynomials are denoted as Q(s) and P(s), but the samepolynomials are denoted as Y(s) and X(s) when the focus is on control problems or transferfunctions. The orders of the polynomials are such that n > m for physical realistic processes.2

We know that G(s) contains information on the dynamic behavior of a model as represented bythe differential equation. We also know that the denominator of G(s) is the characteristicpolynomial of the differential equation. The roots of the characteristic equation, P(s) = 0: p1, p2,...pn, are the poles of G(s). When the poles are real and negative, we also use the time constant

notation:

p1 = – 1τ 1

, p2 = – 1τ 2

, ... , pn = – 1τ n

The poles reveal qualitatively the dynamic behavior of the model differential equation. The "rootsof the characteristic equation" is used interchangeably with "poles of the transfer function."

For the general transfer function in (2-29), the roots of the polynomial Q(s), i.e., of Q(s) = 0,are referred to as the zeros. They are denoted by z1, z2,... zm, or in time constant notation,

z1 = – 1τ a

, z2 = – 1τ b

, ... , zm = – 1τm

We can factor Eq. (2-29) into the so-called pole-zero form:

G(s) =

Q(s)P(s)

=b m

an

(s – z1) (s – z2) ... (s – zm)(s – p1) (s – p2) ... (s – pn)

(2-30)

If all the roots of the two polynomials are real, we can factor the polynomials such that thetransfer function is in the time constant form:

G(s) =

Q(s)P(s)

=b o

ao

(τa s +1) (τb s + 1) ... (τms + 1)

(τ1s +1) (τ2s + 1) ... (τns + 1)(2-31)

Eqs. (2-30) and (2-31) will be a lot less intimidating when we come back to using examples inSection 2.8. These forms are the mainstays of classical control analysis.

Another important quantity is the steady state gain.3 With reference to a general differentialequation model (2-28) and its Laplace transform in (2-29), the steady state gain is defined as the

All the features about poles and zeros can be obtained from this simpler equation.

1 The exception is when we have dead time. We'll come back to this term in Chapter 3.

2 For real physical processes, the orders of polynomials are such that n ≥ m. A simpleexplanation is to look at a so-called lead-lag element when n = m and y(1) + y = x(1) + x. TheLHS, which is the dynamic model, must have enough complexity to reflect the change of theforcing on the RHS. Thus if the forcing includes a rate of change, the model must have the samecapability too.

3 This quantity is also called the static gain or dc gain by electrical engineers. When we talkabout the model of a process, we also use the term process gain quite often, in distinction to asystem gain.

Page 25: Process Control

2 - 17

final change in y(t) relative to a unit change in the input x(t). Thus an easy derivation of thesteady state gain is to take a unit step input in x(t), or X(s) = 1/s, and find the final value in y(t):

y(∞) = lim

s → 0[s G(s) X(s)] = lim

s → 0[s G(s)

1s] =

b o

ao(2-32)

The steady state gain is the ratio of the two constant coefficients. Take note that the steady stategain value is based on the transfer function only. From Eqs. (2-31) and (2-32), one easy way to"spot" the steady state gain is to look at a transfer function in the time constant form.

Note:(1) When we talk about the poles of G(s) in Eq. (2-29), the discussion is regardless of

the input x(t). Of course, the actual response y(t) also depends on x(t) or X(s).

(2) Recall from the examples of partial fraction expansion that the polynomial Q(s) inthe numerator, or the zeros, affects only the coefficients of the solution y(t), butnot the time dependent functions. That is why for qualitative discussions, wefocus only on the poles.

(3) For the time domain function to be made up only of exponential terms that decay intime, all the poles of a transfer function must have negative real parts. (This pointis related to the concept of stability, which we will address formally in Chapter 7.)

2.7 Summary of pole characteristics

We now put one and one together. The key is that we can "read" the poles—telling what the formof the time-domain function is. We should have a pretty good idea from our exercises in partialfractions. Here, we provide the results one more time in general notation. Suppose we have taken acharacteristic polynomial, found its roots and completed the partial fraction expansion, this is whatwe expect in the time-domain for each of the terms:

A. Real distinct poles

Terms of the form ci

s – pi, where the pole pi is a real number, have the time-domain function

ci epi t . Most often, we have a negative real pole such that pi = –ai and the time-domain

function is ci e– ai t .

B. Real poles, repeated m timesTerms of the form

ci,1

(s – pi)+

ci,2

(s – pi)2

+ ... +ci,m

(s – pi)m

with the root pi repeated m times have the time-domain function

ci,1 + ci,2 t +

ci,3

2!t2 + ... +

ci,m

(m – 1)!tm – 1 epi t .

When the pole pi is negative, the decay in time of the entire response will be slower (with

respect to only one single pole) because of the terms involving time in the bracket. This isthe reason why we say that the response of models with repeated roots (e.g., tanks-in-serieslater in Section 3.4) tends to be slower or "sluggish."

Page 26: Process Control

2 - 18

C. Complex conjugate poles

Terms of the form ci

s – pi+

c*i

s – p*i, where pi = α + jβ and p*i = α – jβ are the complex

poles, have time-domain function ci epi t + c*i ep*i t of which form we seldom use. Instead,

we rearrange them to give the form [some constant] x eαtsin(βt + φ) where φ is the phaselag.

It is cumbersome to write the partial fraction with complex numbers. With complexconjugate poles, we commonly combine the two first order terms into a second order term.With notations that we will introduce formally in Chapter 3, we can write the second orderterm as

as + b

τ2s2 + 2ζτ s + 1,

where the coefficient ζ is called the damping ratio. To have complex roots in thedenominator, we need 0 < ζ < 1. The complex poles p

i and p*i are now written as

pi, p*i =

–ζτ ± j

1 – ζ 2

τ with 0 < ζ < 1

and the time domain function is usually rearranged to give the form

[some constant] x

e– ζt/τ sin1 – ζ 2

τt +φ

where again, φ is the phase lag.

D. Poles on the imaginary axis

If the real part of a complex pole is zero, then p = ±ωj. We have a purely sinusoidalbehavior with frequency ω. If the pole is zero, it is at the origin and corresponds to theintegrator 1/s. In time domain, we'd have a constant, or a step function.

E. If a pole has a negative real part, it is in the left-hand plane (LHP). Conversely, if a polehas a positive real part, it is in the right-hand plane (RHP) and the time-domain solution isdefinitely unstable.

Page 27: Process Control

2 - 19

Note: Not all poles are born equal!The poles closer to the origin are dominant.

It is important to understand and be able to identify dominant poles if they exist. This isa skill that is used later in what we call model reduction. This is a point that we firstobserved in Example 2.6. Consider the two terms such that 0 < a1 < a2 (Fig. 2.4),

Y(s) =c1

(s – p1)+

c2

(s – p2)+ ... =

c1

(s + a1)+

c2

(s + a2)+ ... =

c1/a1

(τ1s + 1)+

c2/a2

(τ2s + 1)+...

Their corresponding terms in the time domain are

y(t) = c1e–a1 t + c2e

–a2 t +... = c1e–t/τ1 + c2e

–t/τ2 +...

As time progresses, the term associated with τ2 (or a2) will decay away faster. We consider theterm with the larger time constant τ1 as the dominant pole. 1

Finally, for a complex pole, we can relate the damping ratio (ζ< 1) with the angle that the pole makes with the real axis (Fig.2.5). Taking the absolute values of the dimensions of the triangle,we can find

θ = tan–1 1 – ζ 2

ζ(2-33)

and more simply

θ = cos–1 ζ (2-34)

Eq. (2-34) is used in the root locus method in Chapter 7 when wedesign controllers.

1 Our discussion is only valid if τ1 is “sufficiently” larger than τ2. We could establish a

criterion, but at the introductory level, we shall keep this as a qualitative observation.

Re

–a12–a

Im

Small aLarge

Large aSmall τ τ

Exponential term edecays faster

Exponential term e decays slowly

2–a –a1t t

Figure 2.4. Depiction of poles with small and large time constants.

θ

− ζ/τ

√1 − ζτ

2pj

Figure 2.5. Complex poleangular position on thecomplex plane.

Page 28: Process Control

P.C. Chau © 2001 2 – 20

2.8 Two transient model examples

We now use two examples to review how deviation variables relate to the actual ones, and that wecan go all the way to find the solutions.

✑ 2.8.1 A Transient Response Example

We routinely test the mixing of continuous flow stirred-tanks (Fig. 2.6) by dumping some kind of inert tracer, say adye, into the tank and see how they get "mixed up." In moredreamy moments, you can try the same thing with cream inyour coffee. However, you are a highly paid engineer, and amore technical approach must be taken. The solution issimple. We can add the tracer in a well-defined "manner,"monitor the effluent, and analyze how the concentrationchanges with time. In chemical reaction engineering, youwill see that the whole business is elaborated into the study of residence time distributions.

In this example, we have a stirred-tank with a volume V1 of 4 m3 being operated with an inlet

flow rate Q of 0.02 m3/s and which contains an inert species at a concentration Cin of 1 gmol/m3.

To test the mixing behavior, we purposely turn the knob which doses in the tracer and jack up itsconcentration to 6 gmol/m3 (without increasing the total flow rate) for a duration of 10 s. Theeffect is a rectangular pulse input (Fig. 2.7).

What is the pulse response in the effluent? If we do not have the patience of 10 s and dump allthe extra tracer in at one shot, what is the impulse response?

6

1 1

5

0 0 1010 time [s]

C

C in

0

s

in Cin

C ins

Figure 2.7. A rectangular pulse in real and deviation variables.

The model equation is a continuous flow stirred-tank without any chemical reaction:

V1

d C1

d t= Q (Cin – C1)

In terms of space time τ1, it is written as

τ1

d C1

d t= Cin – C1 where

τ1 =

V1

Q=

4

0.02= 200 s (2-35)

The initial condition is C(0) = C1s, where C1

s is the value of the steady state solution. The inlet

concentration is a function of time, Cin = Cin(t), and will become our input. We present the

analytical results here and will do the simulations with MATLAB in the Review Problems.

,

, C

n

Figure 2.6. A constantvolume continuous flow well-mixed vessel.

Page 29: Process Control

2 - 21

At steady state, Eq. (2-35) is 1

0 = Cins – C1

s(2-36)

As suggested in Section 2.1, we define deviation variables

C'1 = C1 – C1s and C'in = Cin – Cs

in

and combining Eqs. (2-35) and (2-36) would give us

τ1

d C'1

d t= C' in – C'1

with the zero initial condition C'(0) = 0. We further rewrite the equation as:

τ1

d C'1

d t+ C'1 = Cin (2-37)

to emphasize that C'in is the input (or forcing function). The Laplace transform of (2-37) is

C'1(s)

C' in(s)=

1

τ1 s + 1 (2-38)

where the RHS is the transfer function. Here, it relates changes in the inlet concentration tochanges in the tank concentration. This is a convenient form with which we can address differentinput scenarios.

Now we have to fit the pieces together for this problem. Before the experiment, that is, atsteady state, we must have

Csin = C1

s = 1 (2-39)

Hence the rectangular pulse is really a perturbation in the inlet concentration:

C'in =

0 t < 05 0 < t < 100 t > 10

This input can be written succinctly as

C'in = 5 [u(t) – u(t – 10)]

which then can be applied to Eq. (2-37). Alternatively, we apply the Laplace transform of thisinput

C' in(s) =5s

[1 – e– 10 s]

and substitute it in Eq. (2-38) to arrive at

C'1(s) =1

(τ1 s + 1)

5

s[1 – e– 10 s] (2-40)

1 At steady state, it is obvious from (2-35) that the solution must be identical to the inletconcentration. You may find it redundant that we add a superscript s to Cs

in. The action is taken tohighlight the particular value of Cin(t) that is needed to maintain the steady state and to make the

definitions of deviation variables a bit clearer.

Page 30: Process Control

2 - 22

Inverse transform of (2-40) gives us the time-domain solution for C'1(t):

C'1(t) = 5[1 – e–t/τ1] – 5[1 – e–(t – 10)/τ1] u(t – 10)

The most important time dependence of e–t/τ1 arises only from the pole of the transfer function inEq. (2-38). Again, we can "spell out" the function if we want to:

For t < 10 C'1(t) = 5[1 – e–t/τ1]

and t > 10 C'1(t) = 5[1 – e–t/τ1] – 5[1 – e–(t – 10)/τ1] = 5 e–(t – 10)/τ1 – e–t/τ1

In terms of the actual variable, we have

for t < 10 C1(t) = C1s + C'1 = 1 + 5[1 – e– t/τ1]

and t > 10 C1(t) = 1 + 5 e–(t – 10)/τ1 – e–t/τ1

We now want to use an impulse input of equivalent "strength," i.e., same amount of inerttracer added. The amount of additional tracer in the rectangular pulse is

5

gmol

m30.02

m3

s10 [s] = 1 gmol

which should also be the amount of tracer in the impulse input. Let the impulse input beC'in = Mδ(t). Note that δ(t) has the unit of time–1 and M has a funny and physically meaningless

unit, and we calculate the magnitude of the input by matching the quantities

1 [gmol] = 0.02

m3

sM

gmol.s

m3δ(t)

1

sdt [s]

0

∞= 0.02M or M = 50

gmol. s

m3

Thus

C' in(t) = 50δ(t) , C' in(s) = 50

and for an impulse input, Eq. (2-38) is simply

C'1(s) =50

(τ1 s + 1) (2-41)

After inverse transform, the solution is

C'1(t) =50τ1

e–t/τ1

and in the real variable,

C1(t) = 1 +50τ1

e–t/τ1

We can do a mass balance based on the outlet

Q C'1(t) dt

0

∞= 0.02

50τ1

e–t/τ1 dt0

∞= 1 [gmol]

Hence mass is conserved and the mathematics is correct.

Page 31: Process Control

2 - 23

We now raise a second question. If the outletof the vessel is fed to a second tank with avolume V2 of 3 m3 (Fig. 2.8), what is the time

response at the exit of the second tank? With thesecond tank, the mass balance is

τ2dC2

dt= (C1 – C2) where τ2 =

V2

Q

or

τ2dC2

dt+ C2 = C1 (2-42)

where C1 and C2 are the concentrations in tanks one and two respectively. The equation analogous

to Eq. (2-37) is

τ

2

dC'2

dt+ C'2 = C'1 (2-43)

and its Laplace transform is

C'2(s) =

1

τ2 s + 1C'1(s)

(2-44)

With the rectangular pulse to the first vessel, we use the response in Eq. (2-40) and substitutein (2-44) to give

C'2(s) =

5 (1 – e–10 s)s (τ1s + 1) (τ2s + 1)

With the impulse input, we use the impulse response in Eq. (2-41) instead, and Eq. (2-44)becomes

C'2(s) =50

(τ1s + 1) (τ2s + 1)

from which C'2(t) can be obtained via proper table look-up. The numerical values

τ1 =4

0.02= 200 s and τ2 =

300.2

= 150 s

can be used. We will skip the inverse transform. It is not always instructive to continue with analgebraic mess. To sketch the time response, we'll do that with MATLAB in the Review Problems.

✑ 2.8.2 A stirred tank heater

Temperature control in a stirred-tank heater is a common example (Fig. 2.9). We will come acrossit many times in later chapters. For now, we present the basic model equation, and use it as areview of transfer functions.

The heat balance, in standard heat transfer notations, is

ρCpVdT

dt= ρCpQ (Ti – T) + UA (TH – T) (2-45)

V

V1

2

c

c2

1

Q, c in

Figure 2.8. Two well-mixed vessels inseries.

Page 32: Process Control

2 - 24

where U is the overall heat transfer coefficient, A is theheat transfer area, ρ is fluid density, Cp is the heat

capacity, and V is the volume of the vessel. The inlettemperature Ti = Ti(t) and steam coil temperature TH =TH(t) are functions of time and are presumably given.

The initial condition is T(0) = Ts, the steady statetemperature.

Before we go on, let us emphasize that what we findbelow are nothing but different algebraic manipulationsof the same heat balance. First, we rearrange (2-45) togive

VQ

dTdt

= (Ti – T) +UA

ρCpQ(TH – T)

The second step is to define

τ =VQ

and κ =UA

ρCpQ

which leads to

τ dTdt

+ (1 + κ)T = Ti + κTH (2-46)

At steady state,

(1 + κ) Ts = Tis

+ κ TH

s(2-47)

We now define deviation variables:

T' = T – Ts ; T' i = Ti – Tis ; T'H = TH – TH

s

and dT'

dt=

d(T – Ts)dt

=dTdt

Subtract Eq. (2.47) from the transient equation in Eq. (2-46) would give

τ dTdt

+ (1 + κ) (T – Ts) = (Ti – Tis) + κ (TH – TH

s )

or in deviation variables,

τdT'dt

+ (1 + κ) T' = T'i + κT'H (2-48)

The initial condition is T'(0) = 0. Eq. (2-48) is identical in form to (2-46). This is typical of linear

equations. Once you understand the steps, you can jump from (2-46) to (2-48), skipping over the

formality.

From here on, we will omit the apostrophe (') where it would not cause confusion, as it goes

without saying that we work with deviation variables. We now further rewrite the same equation as

dTdt

+ aT = KiTi + KHTH (2-48a)

Q, T

Q, T

in

HSteam, T

Figure 2.9. A continuous flowstirred-tank heater.

Page 33: Process Control

2 - 25

where

a =(1+κ)

τ ; Ki =1τ ; KH =

κτ

Laplace transform gives us

s T(s) + a T(s) = Ki Ti(s) + KH TH(s)

Hence Eq. (2-48a) becomes

T(s) =

Ki

s + aTi(s) +

KH

s + aTH(s) = Gd(s)Ti(s) + Gp(s)TH(s) (2-49a)

where

Gd(s) =

Ki

s + a; Gp(s) =

KH

s + a

Of course, Gd(s) and Gp(s) are the transfer functions, and they are in pole-zero form. Once again(!),we are working with deviation variables. The interpretation is that changes in the inlet temperatureand the steam temperature lead to changes in the tank temperature. The effects of the inputs areadditive and mediated by the two transfer functions.

Are there more manipulated forms of the same old heat balance? You bet. In fact, we very oftenrearrange Eq. (2-48), writing without the apostrophes, as

τp

dTdt

+ T = Kd Ti + Kp TH (2-48b)

where 1 τp =

1a

(1 + κ); Kd =

Ki

a=

1(1 + κ)

; Kp =KH

a=

κ(1 + κ)

After Laplace transform, the model equation is

T(s) = Gd(s)Ti(s) + Gp(s)TH(s) (2-49b)

which is identical to Eq. (2-49a) except that the transfer functions are in the time constant form

Gd(s) =

Kd

τp s + 1and Gp(s) =

Kp

τp s + 1

In this rearrangement, τp is the process time constant, and Kd and Kp are the steady state gains.2

The denominators of the transfer functions are identical; they both are from the LHS of thedifferential equation—the characteristic polynomial that governs the inherent dynamic characteristicof the process.

1 If the heater is well designed, κ (=UA/ρCpQ) should be much larger than 1. The steady stategain Kp approaches unity, meaning changing the steam temperature is an effective means ofchanging the tank temperature. In contrast, Kd is very small, and the tank temperature is

insensitive to changes in the inlet temperature.

At first reading, you'd find the notations confusing—and in some ways we did this on purpose.This is as bad as it gets once you understand the different rearrangements. So go through each stepslowly.

2 Ki and KH in (2-49a) are referred to as gains, but not the steady state gains. The process timeconstant is also called a first-order lag or linear lag.

Page 34: Process Control

2 - 26

Let us try one simple example. Say if we keep the inlet temperature constant at our desiredsteady state, the statement in deviation variable (without the apostrophe) is

Ti(t) = 0 , and Ti(s) = 0

Now we want to know what happens if the steam temperature increases by 10 °C. This change indeviation variable is

TH = Mu(t) and TH(s) =

Ms

, where M = 10 °C

We can write

T(s) =Kp

τp s + 1Ms (2-50)

After partial fraction expansion,

T(s) = MKp

1s

–τp

τp s + 1

Inverse transform via table look-up gives our time-domain solution for the deviation in T:1

T(t) = MKp 1 – e– t/τp (2-51)

Keep a mental imprint of the shape of thisfirst order step response as shown in Fig. 2.10.As time progresses, the exponential term decaysaway, and the temperature approaches the newvalue MKp. Also illustrated in the figure is the

much used property that at t = τp, the normalized

response is 63.2%.

After this exercise, let’s hope that we have abetter appreciation of the different forms of atransfer function. With one, it is easier to identifythe pole positions. With the other, it is easier toextract the steady state gain and time constants. Itis very important for us to learn how to interpretqualitatively the dynamic response from the polepositions, and to make physical interpretationwith the help of quantities like steady state gains,and time constants.

2.9 Linearization of nonlinear equations

Since Laplace transform can only be applied to a linear differential equation, we must "fix" anonlinear equation. The goal of control is to keep a process running at a specified condition (thesteady state). For the most part, if we do a good job, the system should only be slightly perturbedfrom the steady state such that the dynamics of returning to the steady state is a first order decay,i.e., a linear process. This is the cornerstone of classical control theory.

What we do is a freshmen calculus exercise in first order Taylor series expansion about the

1 Note that if we had chosen also TH = 0, T(t) = 0 for all t, i.e., nothing happens. Recall once

again from Section 2.1 that this is a result of how we define a problem using deviation variables.

0

0.2

0.4

0.6

0.8

1

0 2 4 6 8 10

T

t

0.632MKp

τ p = 1.5

Figure 2.10. Illustration of a first order response(2-51) normalized by MKp. The curve is plotted with

τp = 1.5 [arbitrary time unit]. At t = τp, the normalized

response is 63.2%.

Page 35: Process Control

2 - 27

steady state and reformulating the problem in terms of deviation variables. We will illustrate withone simple example. Consider the differential equation which models the liquid level h in a tankwith cross-sectional area A,

Adhdt = Qin(t) – βh

1 21 2

(2-52)

The initial condition is h(0) = hs, the steady state value. The inlet flow rate Qin is a function of

time. The outlet is modeled as a nonlinear function of the liquid level. Both the tank cross-sectionA, and the coefficient β are constants.

We next expand the nonlinear term about the steady state value hs (also our initial condition by

choice) to provide 1

Adhdt = Qin – β hs

1 21 2 + 12hs

–1 21 2(h – h s) (2-53)

At steady state, we can write the differential equation (2-52) as

0 = Qins – β hs

1 21 2(2-54)

where hs is the steady solution, and Qsin

is the particular value of Qin to maintain steady state. If

we subtract the steady state equation from the linearized differential equation, we have

Adhdt = Qin – Qin

s – β 12hs

–1 21 2(h – h s) (2-55)

We now define deviation variables:

h' = h – hs and Q'in = Q in – Qsin

Substitute them into the linearized equation and moving the h' term to the left should give

Adh'dt +

β2hs

–1 21 2 h' = Q'in(t) (2-56)

with the zero initial condition h'(0) = 0.

It is important to note that the initial condition in Eq. (2-52) has to be hs, the original steady

state level. Otherwise, we will not obtain a zero initial condition in (2-56). On the other hand,because of the zero initial condition, the forcing function Q'in must be finite to have a non-trivial

solution. Repeating our mantra the umpteenth time, the LHS of (2-56) gives rise to thecharacteristic polynomial and describes the inherent dynamics. The actual response is subject to theinherent dynamics and the input that we impose on the RHS.

1 We casually ignore the possibility of a more accurate second order expansion. That’s becausethe higher order terms are nonlinear, and we need a linear approximation. Needless to say that witha first order expansion, it is acceptable only if h is sufficiently close to hs.

In case you forgot, the first order Taylor series expansion can be written as

f(x1,x2) ≈ f(x1s,x2s) + ∂f ∂x1∂f ∂x1 x1s, x2s(x1 – x1s) + ∂f ∂x2∂f ∂x2 x1s, x2s

(x2 – x2s)

Page 36: Process Control

2 - 28

Note:• Always do the linearization before you introduce the deviation variables.

• As soon as we finish the first-order Taylor series expansion, the equation islinearized. All steps that follow are to clean up the algebra with the understanding thatterms of the steady state equation should cancel out, and to change the equation todeviation variables with zero initial condition.

We now provide a more general description. Consider an ordinary differential equation

dydt = f(y; u) with y(0) = ys (2-57)

where u = u(t) contains other parameters that may vary with time. If f(y; u) is nonlinear, weapproximate with Taylor's expansion:

dyd t

≈ f(ys; us) +∂f

∂y ys,us

(y – ys) + ∇ Tf(ys; us) (u – us) (2-58)

where ∇ f(ys; us) is a column vector of the partial derivatives of the function with respect toelements in u, ∂f/∂ui, and evaluated at ys and us. At steady state, (2-57) is

0 = f(ys; us) (2-59)

where ys is the steady state solution, and us the values of parameters needed to maintain the steady

state. We again define deviation variables

y' = y – ys and u' = u – us

and subtract (2-59) from (2-58) to obtain the linearized equation with zero initial condition:

dy'd t

+ –∂f

∂y ys,us

y' = ∇ Tf(ys; us) u'(2-60)

where we have put quantities being evaluated at steady state conditions in brackets. When we solvea particular problem, they are just constant coefficients after substitution of numerical values.

✎ Example 2.11: Linearize the differential equation for the concentration in a mixed vessel: VdCdt = Qin(t)Cin(t) – Qin(t)C , where the flow rate and the inlet concentration are functions of

time.

A first term Taylor expansion of the RHS leads to the approximation:

VdCdt ≈ Qin,sCin,s + Cin,s (Qin – Qin,s) + Qin,s (Cin – Cin,s)

– Qin,sCs + Cs (Qin – Qin,s) + Qin,s (C – Cs)

and the steady state equation, without canceling the flow variable, is

0 = Qin,sCin,s – Qin,sCs

We subtract the two equations and at the same time introduce deviation variables for the dependentvariable C and all the parametric variables to obtain

VdC'dt ≈ Cin,s Q'in + Qin,s C'in – Cs Q'in + Qin,s C'

and after moving the C' term to the LHS,

Page 37: Process Control

2 - 29

VdC'dt + Qin,s C' = Cin,s – Cs Q'in + Qin,s C'in

The final result can be interpreted as stating how changes in the flow rate and inletconcentration lead to changes in the tank concentration, as modeled by the dynamics on the LHS.Again, we put the constant coefficients evaluated at steady state conditions in brackets. We canarrive at this result quickly if we understand Eq. (2-60) and apply it carefully.

The final step should also has zero initial condition C'(0) = 0, and we can take the Laplacetransform to obtain the transfer functions if they are requested. As a habit, we can define τ =V/Qin,s and the transfer functions will be in the time constant form.

✎ Example 2.12: Linearize the differential equation dydt

= – xy – βy2 – γy – 1 where x =x(t).

Each nonlinear term can be approximated as

xy ≈ xs ys + ys (x – xs) + xs (y – ys) = xsys + ys x' + xs y'

y2 ≈ ys2 + 2ys (y – ys) = ys

2 + 2ys y'

γy – 1 ≈ γys – 1 + (ln γ) γys – 1 y'

With the steady state equation

0 = xs ys + βys + γys – 1 ,

and the usual algebraic work, we arrive at

dy'dt

+ xs + 2βys + (ln γ) γys – 1 y' = – ys x'

✎ Example 2.13: What is the linearized form of the reaction rate term rA = – k(T) CA = – k oe– E/RT CA where both temperature T and concentration CA are functions of

time?

rA ≈ – k oe– E/RTs CA,s + k oe– E/RTs (CA – CA,s) + E

RTs2 koe– E/RTs CA,s (T – Ts)

In terms of deviation variables, the linearized approximation is

rA ≈ rA,s 1 + 1

CA,sC'A + E

RTs2 T' , where rA,s = – k oe– E/RTs CA,s

Note:While our analyses use deviation variables and not the real variables, examples andhomework problems can keep bouncing back and forth. The reason is that when we doan experiment, we measure the actual variable, not the deviation variable. You mayfind this really confusing. All we can do is to be extra careful when we solve a problem.

Page 38: Process Control

2 - 30

2.10 Block diagram reduction

The use of block diagrams to illustrate cause and effect relationship is prevalent in control. We useoperational blocks to represent transfer functions and lines for unidirectional informationtransmission. It is a nice way to visualize the interrelationships of various components. Later,they are crucial to help us identify manipulated and controlled variables, and input(s) and output(s)of a system.

Many control systems are complicated looking networks of blocks. The simplest controlsystem looks like Fig. 2.11a. The problem is that many theories in control are based on a simpleclosed-loop or single-block structure (Fig. 2.11b).

Hence we must learn how to read a block diagram andreduce it to the simplest possible form. We will learn in laterchapters how the diagram is related to an actual physicalsystem. First, we will do some simple algebraic manipulationand better yet, do it graphically. It is important to rememberthat all (graphical) block diagram reduction is a result offormal algebraic manipulation of transfer functions. When allimagination fails, always refer back to the actual algebraicequations.1

Of all manipulations, the most important one is thereduction of a feedback loop. Here is the so-called blockdiagram reduction and corresponding algebra.

For a negative feedback system (Fig. 2.12), we have

E = R – H Y, (2-61)

and

Y = G E (2-62)

Using (2-61) to substitute for E in (2-62) leads to

Y = G [R – H Y]

which can be rearranged to give, for a negative feedback loop,2

1 See the Web Support for our comment on the Mason's gain formula.

2 Similarly, we can write for the case of positive feedback that E = R + H Y, andY = G [R + H Y], and we have instead:

+

+(a) (b)

Gc

Gm

GpGa

GL

+

+

G

G

CL

Figure 2.11. (a) Example of a feedback system block diagram; (b) Typical reduced blockdiagrams.

R YG

1 + GH

–+

GR YE

H

(a)

(b)

Figure 2.12. (a) Simplenegative feedback loop, and (b)its reduced single closed-looptransfer function form.

Page 39: Process Control

2 - 31

Y

R=

G

1 + G H (2-63)

The RHS of (2-63) is what we will refer to as the closed-loop transfer function in laterchapters.

Note:The important observation is that when we "close" a negative feedback loop, thenumerator is consisted of the product of all the transfer functions along the forwardpath. The denominator is 1 plus the product of all the transfer functions in the entirefeedback loop (i.e., both forward and feedback paths). The denominator is also thecharacteristic polynomial of the closed-loop system. If we have positive feedback, thesign in the denominator is minus.

Here, we try several examples and take the conservative route of writing out the relevantalgebraic relations.1

✎ Example 2.14. Derive the closed-loop transfer function C/R and C/L for the system asshown in Fig. E2.14.

We identify two locations after the summing pointswith lower case e and a to help us.2 We can write atthe summing point below H:

a = –C + KR

and substitute this relation in the equation for thesumming point above H to give

e = R + H a = R + H (KR – C)

We substitute the relation for e into the equation aboutGp to obtain

C = L + Gp e = L + Gp (R + HKR – HC)

The final result is a rearrangement to get C out explicitly

C = 11 + Gp H L +

Gp (1 + HK)1 + Gp H R

YR

=G(s)

1 – G(s)H(s)

1 A few more simple examples are in the Web Support of this chapter.

2 How do we decide the proper locations? We do not know for sure, but what should help is aftera summing point where information has changed. We may also use the location before a branch offpoint, helping to trace where the information is routed.

R CL

Gp

H

+

+ –

+

K

e

a

Figure E2.14

Page 40: Process Control

2 - 32

✎ Example 2.15. Derive the closed-loop transfer function C/R for the system with threeoverlapping negative feedback loops in Fig. E2.15(a).

dR CG1

–G2 G 3 G4

H1

H2

– –

ab

gf

R C–

G1G21 + G1G 2

G3G41 + G3G 4

H2

H1

G1G4

+ ++

(a)

(b) Steps 1 and 2

(c) Step 3

dR CG1

–G2 G 3 G4

H2

– –

a

gf+ +

+

H 1

G1G 4

+Figure E2.15

The key to this problem is to proceed in steps and "untie" the overlapping loops first. Weidentify various locations with lower case a, b, d, f, and g to help us. We first move the branch-offpoint over to the right side of G4 (Fig. E2.15b). We may note that we can write

a = H1 G3 d = H1

G4 [G3G4] d

That is, to maintain the same information at the location a, we must divide the branch-offinformation at C by G4.

Similarly, we note that at the position g in Fig. E2.15a,

g = G1 [R – f] – bH1 = G1 [R – f – bH1

G1 ]

That is, if we move the break-in point from g out to the left of G1, we need to divide theinformation by G1 prior to breaking in. The block diagram after moving both the branch-off and

break-in points are shown as Steps 1 and 2 in Fig. E2.15b. (We could have drawn such that theloops are flush with one another at R.)

Once the loops are no longer overlapping, the block diagram is easy to handle. We firstclose the two small loops as shown as Step 3 in Fig. E2.15c.

The final result is to close the big loop. The resulting closed-loop transfer function is:

CR =

G1 G2 G3 G4(1 + G1 G2) (1 + H2 G3 G4) + H1 G2 G3

Page 41: Process Control

2 - 33

✎ Example 2.16. Derive the closed-looptransfer function X1/U for the block diagram

in Fig. E2.16a. We will see this one againin Chapter 4 on state space models. Withthe integrator 1/s, X2 is the Laplacetransform of the time derivative of x1(t), andX3 is the second order derivative of x1(t).

As before, we can write down thealgebraic equations about the summingpoint (the comparator) for X3, and the two

equations about the two integrators 1/s. Weshould arrive at the result after eliminatingX2 and X3.

However, we can also obtain theresult quickly by recognizing the twofeedback loops. We first "close" the inner loop to arrive at Fig. E2.16b. With that, we can see theanswer. We "close" this loop to obtain

X1U = 1

s2 + 2ζω s + ω2

❐ Review Problems

1. Derive Eq. (2.1).

2. (a) Check that when the right hand side is zero, the solution to Eq. (2-2) is zero.

(b) Derive Eq. (2-3) using the method of integrating factor.

(c) Derive the solution c(t) in Eq. (2-3) with, respectively, an impulse input, C'in = δ(t) and aunit step input C'in = u(t). Show that they are identical to when we use the Laplace

transform technique as in Example 2.10.

3. Prove the linear property of Laplace transform in (2-6).

4. Derive the Laplace transform of

(a) 1/(τs + 1) (b) cos ωt (c) e–at cos ωt

5. Prove the initial value theorem.

6. Show that the inverse transform of F(s) = 6(s3 + s2 – 4s – 4)

is f(t) = – 2e– t + 32e– 2t + 1

2e2t

7. Double check α* in the complex root Example 2.7 with the Heaviside expansion.

8. Find the inverse Laplace transform of the general expression Y(s) = cs – p + c*

s – p* ,

where c = a – bj, and p = α + ωj. Rearrange the result to a sine function with time lag.

9. With respect to the repeated root Example 2.9, show that we could have written

2 = α 1 (s + 1)2(s + 2) + α 2 (s + 1) (s + 2) + α 3 (s + 2) + α 4 (s + 1)3

and after expanding and collecting terms of the same power in s, we can form the matrix

K1s

U +

X2 1s

2ζω

ω2

X1

+

+

U 1s

ω2

X1s + 2 ζω

1+

(a)

(b)

X3

Figure E2.16

Page 42: Process Control

2 - 34

equation:

1 0 0 14 1 0 35 3 1 32 2 2 1

α 1α 2α 3α 4

=0002

from which we can solve for the coefficients. Yes, this is a chore not worth doing even withMATLAB. The route that we take in the example is far quicker.

10. For a general transfer function G(s) = Y(s)/X(s), how can we find the steady state gain?

11. Do the partial fractions of s + 1s2 (s2 + 4s – 5)

.

12. Find the transfer functions as suggested in Example 2.11.

13. Derive Eqs. (3-33) and (3-34).

14. Do the numerical simulation for Section 2.8.1

15. Regarding Eqs. (2-50) and (2-51) in Section 2.8.2:

a) What is T(t) as t --> ∞ ? What is the actual temperature that we measure?

b) What are the effects of Kp on the final tank temperature? What is the significance if Kp

approaches unity?

c) What is the time constant for the process?

Hints:

1. Eq. (2.1) is straight from material balance. With Q denoting the volumetric flow rate and Vthe volume, the balance equation of some species A as denoted by C with reference to Fig. 2.6is

V dCd t

= QCin – QC

Physically, each term in the equation represents:

{Accumulation} = {Flow in} – {Flow out}

Eq. (2.1) is immediately obvious with the definition of space time τ = V/Q.

2. (c) With the impulse input, C'(t) = 1τ e– t / τ , and with the unit step input, C'(t) = 1 – e– t / τ .

3. This is just a simple matter of substituting the definition of Laplace transform.

4. Answers are in the Laplace transform summary table. The key to (a) is to rearrange the

function as 1/τs + 1/τ , and the result should then be immediately obvious with Eq. (2-9). The

derivation of (b) and (c) is very similar to the case involving sin ωt.

5. The starting point is again the Laplace transform of a derivative, but this time we take thelimit as s —> ∞ and the entire LHS with the integral becomes zero.

6. This follows Examples 2.4 and 2.5.

7. α* = s + 5s – ( – 2 + 3j) s = – 2 – 3j

=(– 2 – 3j) + 5

(– 2 – 3j) + 2 – 3j =(1 – j)– 2j = 1

2 (1 + j)

8. We should have

y(t) = c ept + c* ep* t = (a – bj) e(α + ωj) t + (a + bj) e(α – ωj) t .

Page 43: Process Control

2 - 35

We now do the expansion:

y(t) = eα t [(a – bj) (cos ωt + j sin ωt) + (a + bj) (cos ωt – j sin ωt)]

After cancellation:

y(t) = 2eα t [a cos ωt + b sin ωt]

which of course is

y(t) = 2 eα t A sin (ωt + φ) , where A = √(a2 + b2), and φ = tan–1(a/b)

10. Use X = 1/s and the final value theorem. This is what we did in Eq. (2-32). Note that y(∞) isnot the same as g(∞).

11. Use MATLAB to check your algebra.

12. With the time constant defined as τ = V/Qin,s , the steady state gain for the transfer function forthe inlet flow rate is (Cin,s – Cs)/Qin,s , and it is 1 for the inlet concentration transfer function.

13. To find tan θ is easy. To find cos θ, we need to show that the distance from the pole p to theorigin (the hypotenuse) is 1/τ.

14. These are the statements that you can use:

tau1=200;

G1=tf(1,[tau1 1]); % Transfer function of the first vessel

pulselength=10; % Generate a vector to represent the rectangular pulse

delt=5; % (We are jumping ahead. These steps are explained

t=0:delt:1000; % in MATLAB Session 3.)

u=zeros(size(t));

u(1:pulselength/delt+1)=5;

lsim(G1,u,t); % The response of the rectangular pulse

hold

y=50*impulse(G1,t); % Add on the impulse response

plot(t,y)

tau2=150; % Generate the transfer function for both vessels

G2=tf(1,[tau2 1]);

G=G1*G2;

lsim(G,u,t) % Add the responses

y=50*impulse(G,t);

plot(t,y)

15. (a) As t —> ∞, the deviation in T(t) should be 10Kp °C. We have to know the original

steady state temperature in order to calculate the actual temperature.

(b) Since Kp < 1, the final change in temperature will not be 10 °C. But if Kp = 1, the final

change will be 10 °C. We can make this statement without doing the inverse transform.

(c) The time constant of the stirred-tank heater is τp, not the space time.

Page 44: Process Control

P.C. Chau © 1999 A2 - 5

Summary of a handful of common Laplace transforms

We may find many more Laplace transforms in handbooks ortexts, but we'll stay with the most basic ones. The more complex onesmay actually be a distraction to our objective which is to understandpole positions.

The very basic functions:

F(s) f(t)as a, or au(t)

a

s2 at

1(s + a) e–at

ω(s2 + ω2)

sin ωt

s(s2 + ω2)

cos ωt

ω(s + a)2 + ω2 e–at sin ωt

s + a

(s + a)2 + ω2 e–at cos ωt

s2F(s) – sf(0) – f'(0) d2fdt2

F(s)s

f(t) dt

0

t

e– sto F(s) f(t – to)

A Aδ(t)

Transfer functions in time constant form:

F(s) f(t) 1

(τs + 1) 1

τ e–t/τ

1(τs + 1)n

1τn (n–1)!

tn–1e–t/τ

1s (τs + 1)

1 – e–t/τ

1(τ1s + 1) (τ2s + 1)

e–t/τ1 – e–t/τ2

τ1 – τ2

1s (τ1s + 1) (τ2s + 1)

1 +

τ1e–t/τ1 – τ2e–t/τ2

τ2 – τ1

(τ3s + 1)

(τ1s + 1) (τ2s + 1) 1

τ1

τ1 – τ3

τ1 – τ2e–t/τ1 +

1τ2

τ2 – τ3

τ2 – τ1e–t/τ2

(τ3s + 1)

s (τ1s + 1) (τ2s + 1)

1 +τ3 – τ1

τ1 – τ2e–t/τ1 +

τ3 – τ2

τ2 – τ1e–t/τ2

Transfer functions in pole-zero form:

F(s) f(t) 1

(s + a) e–at

1

(s + a)2 t e–at

1

(s + a)n 1

(n – 1)!tn – 1e– at

1s (s + a)

1a

(1 – e– at)

1(s + a) (s + b)

1b – a

(e– at – e– bt)

s

(s + a)2 (1 – at) e– at

s(s + a) (s + b)

1b – a

(be– bt – ae– at)

1s (s + a) (s + b)

1ab

1 +1

a – b(be– at – ae– bt)

Page 45: Process Control

P.C Chau © 2001

❖ 3. Dynamic Response

We now derive the time-domain solutions of first and second order differential equations. It is notthat we want to do the inverse transform, but comparing the time-domain solution with its Laplacetransform helps our learning process. What we hope to establish is a better feel between polepositions and dynamic characteristics. We also want to see how different parameters affect the time-domain solution. The results are useful in control analysis and in measuring model parameters. Atthe end of the chapter, dead time, reduced order model, and the effect of zeros will be discussed.

What are we up to?• Even as we speak of time-domain analysis, we invariably still work with Laplace

transform. Time-domain and Laplace-domain are inseparable in classical control.

• In establishing the relationship between time-domain and Laplace-domain, we useonly first and second order differential equations. That's because we are workingstrictly with linearized systems. As we have seen in partial fraction expansion, anyfunction can be "broken up" into first order terms. Terms of complex roots can becombined together to form a second order term.

• Repeated roots (of multi-capacity processes) lead to sluggish response. Tanks-in-series is a good example in this respect.

• With higher order models, we can construct approximate reduced-order modelsbased on the identification of dominant poles. This approach is used later inempirical controller tuning relations.

• The dead time transfer function has to be handled differently in classical control, andwe'll use the Padé approximation for this purpose.

A brief review is in order: Recall that Laplace transform is a linear operator. The effects ofindividual inputs can be superimposed to form the output. In other words, an observed outputchange can be attributed to the individual effects of the inputs. From the stirred-tank heaterexample in Section 2.8.2 (p. 2-23), we found:

T(s) = Gd(s)Ti(s) + Gp(s)TH(s)

We can analyze the change in tank temperature as a result of individual changes in either inlet orsteam temperatures without doing the inverse transform. The compromise is that we do not havethe time-domain analytical solution, T(t), and cannot think of time as easily.

We can put the example in more general terms. Let's consider an n-th order differential equationand two forcing functions, x1(t) and x2(t),

an

dny

dtn+ an–1

dn–1y

dtn–1+ ... + a1

dy

dt+ aoy = b 1x1(t) + b 2x2(t) (3-1)

where y is the output deviation variable. We also have the zero initial conditions,

y(0) = y'(0) = y"(0) = ... = y(n–1)(0) = 0 (3-2)

Laplace transform of the equation leads to

Y(s) = G1(s)X1(s) + G2(s)X2(s) (3-3)

where

G1(s) =

b 1

ansn + an–1sn–1 + ... +a1s + a0

, and

G2(s) =b 2

ansn + an–1sn–1 + ... +a1s + a0

(3-4)

Page 46: Process Control

3 - 2

are the two transfer functions for the two inputs X1(s) and X2(s).

Take note (again!) that the characteristic polynomials in the denominators of both transferfunctions are identical. The roots of the characteristic polynomial (the poles) are independent ofthe inputs. It is obvious since they come from the same differential equation (same process orsystem). The poles tell us what the time-domain solution, y(t), generally would "look" like. Afinal reminder: no matter how high the order of n may be in Eq. (3-4), we can always use partialfractions to break up the transfer functions into first and second order terms.

3.1 First order differential equation models

This section is a review of the properties of a first order differential equation model. Our Chapter 2examples of mixed vessels, stirred-tank heater, and homework problems of isothermal stirred-tankchemical reactors all fall into this category. Furthermore, the differential equation may representeither a process or a control system. What we cover here applies to any problem or situation aslong as it can be described by a linear first order differential equation.

We usually try to identify features which are characteristic of a model. Using the examples inSection 2.8 as a guide, a first order model using deviation variables with one input and withconstant coefficients a1, ao and b can be written in general notations as 1

a1

dy

dt+ ao y = bx(t) with a1 ≠ 0 and y(0) = 0 (3-5)

The model, as in Eq. (2-2), is rearranged as

τdy

dt+ y = Kx(t) (3-6)

where τ is the time constant, and K is the steady state gain.

In the event that we are modeling a process, we would use a subscript p (τ = τp, K = Kp).

Similarly, the parameters would be the system time constant and system steady state gain when weanalyze a control system. To avoid confusion, we may use a different subscript for a system.

1 Whether the notation is y or y‘ is immaterial. The key is to find the initial condition of theproblem statement. If the initial condition is zero, the notation must refer to a deviation variable.

0

0.2

0.4

0.6

0.8

1

1.2

0 2 4 6 8 10 12

y

t

increasing τ

MK

0

0.5

1

1.5

2

0 2 4 6 8 10

y

t

K = 2

K = 1

K = 0.5

M

Figure 3.1. Properties of a first order transfer function in time domain. Left panel y/MK: effect ofchanging the time constant; plotted with τ = 0.25, 0.5, 1, and 2 [arbitrary time unit]. Right panel y/M:effect of changing the steady state gain; all curves have τ = 1.5.

Page 47: Process Control

3 - 3

The Laplace transform of Eq. (3-6) is

Y(s)

X(s)= G(s) =

K

τ s + 1 (3-7)

where G(s) denotes the transfer function. There is one real pole at –1/τ. (What does it imply interms of the time domain function? If you are stuck, refer back to Example 2.10 on page 2-15.)

✑ 3.1.1 Step response of a first order model

Consider a step input, x(t) = Mu(t), and X(s) = M/s, the output is

Y(s) =

K(τ s + 1)

Ms

= MK1s

–τ

(τ s + 1)(3-8)

and inverse transform gives the solution

y(t) = MK (1 – e– t/τ) (3-9)

We first saw a plot of this function in Fig. 2.10 on page 2-26. The output y(t) starts at zero andincreases exponentially to a new steady state MK. A process with this property is called self-regulating. The larger the time constant, the slower is the response (Fig. 3.1a).

We can check the result with the final value theorem

lims → 0

[sY(s)] = lims → 0

sMK

s (τ s + 1)= MK

The new steady state is not changed by a magnitude of M, but is scaled by the gain K (Fig. 3.1b).Consequently, we can consider the steady state gain as the ratio of the observed change in output inresponse to a unit change in an input, y/M. In fact, this is how we measure K. The larger thesteady state gain, the more sensitive is the output to changes in the input. As noted in Fig. 2.10,at t = τ, y(t) = 0.632MK. This is a result that we often use to estimate the time constant fromexperimental data.

✑ 3.1.2 Impulse response of a first order model

Consider an impulse input, x(t) = Mδ(t), and X(s) = M, the output is now

Y(s) =MK

(τ s + 1)(3-10)

The time-domain solution, as in Example 2.10, is

y(t) =MK

τ e– t/τ (3-11)

which implies that the output rises instantaneously to some value at t = 0 and then decaysexponentially to zero.

✑ 3.1.3 Integrating process

When the coefficient ao = 0 in the differential equation (3-5), we have

dy

dt=

b

a1x(t) (3-12)

Page 48: Process Control

3 - 4

and

Y(s)

X(s)= G(s) =

KI

s where KI =

ba1

(3-13)

Here, the pole of the transfer function G(s) is at the origin, s = 0. The solution of (3-12), whichwe could have written down immediately without any transform, is

y(t) = KI x(t) dt

0

t(3-14)

This is called an integrating (also capacitive or non-self-regulating) process. We can associatethe name with charging a capacitor or filling up a tank.

We can show that with a step input, the output is a ramp function. When we have an impulseinput, the output will not return to the original steady state value, but accumulates whatever wehave added. (Both items are exercises in the Review Problems.)

✎ Example 3.1: Show that a storage tank withpumps at its inlet and outlet (Fig E3.1) is an integratingprocess.

At constant density, the mass balance of acontinuous flow mixed tank is simply

Adhdt = qin – q with h(0) = hs

where A is the cross-section and h the liquid level. The inlet and outlet flow rates qin and q, as

dictated by the pumps, are functions of time but not of the liquid level. At steady state, the flowrates must be the same. Thus we can define deviation variables h' = h – hs, q'in = qin – qs, and q' = q– qs, and the mass balance becomes

Adh'dt = q'in – q' with h'(0) = 0

The general solution is

h'(t) = 1

A (q' in – q') dt0

t

where the change in the liquid level is a simple time integral on the change in flow rates. In termsof Laplace transform, the differential equation leads to

H(s) = 1

A

Qin(s) – Q(s)s

The transfer function has the distinct feature that a pole is at the origin. Since a step input in eitherq'in or q' would lead to a ramp response in h', there is no steady state gain at all.

To better observe how the tank works like a capacitor, consider the inlet flow rate to beconstant and we have a pump only at the outlet. The transfer function is now just

H(s) =– Q(s)

A s

If for some reason the outlet pump slows down, the liquid level in the tank will back up until itoverflows. Similarly, if the outlet pump speeds up, the tank will be drained. The tank level willnot reach a new steady state with respect to a step change in the input.

qin

q

Figure E3.1

Page 49: Process Control

3 - 5

3.2 Second order differential equation models

We have not encountered examples with a second order equation, especially one that exhibitsoscillatory behavior. One reason is that processing equipment tends to be self-regulating. Anoscillatory behavior is most often a result of implementing a controller, and we shall see that inthe control chapters. For now, this section provides several important definitions.

A model that leads to a second order differential equation

a2

d2y

dt2+ a1

dy

dt+ ao y = b x(t), a2 ≠ 0 and y(0) = y'(0) = 0 (3-15)

is usually rearranged to take the forms

τ2 d2y

dt2+ 2ζτ

dy

dt+ y = K x(t) , or

d2y

dt2+ 2ζωn

dy

dt+ ωn

2 y = Kωn2 x(t) (3-16)

where

τ2 =a2

ao; 2ζτ =

a1

ao; K =

bao

; ωn =1τ

The corresponding Laplace transforms are

G(s) =Y(s)

X(s)=

K

τ2s2 + 2ζτ s + 1, or

Y(s)

X(s)=

Kωn2

s2 + 2ζωns + ωn2

(3-17)

The notations are τ = natural period of oscillation

ωn = natural (undamped) frequency

ζ = damping ratio (also called damping coefficient or factor)

K = steady state gain

The characteristic polynomial is

p(s) = τ2s2 + 2ζτ s + 1 = (s – p1) (s – p2) (3-18)

which provides the poles

p1,2 =

– 2ζτ ± 4ζ 2τ2 – 4τ2

2τ2= –

ζτ ± ζ 2 – 1

τ (3-19)

A stable process (or system) requires ζ > 0 since we need τ > 0 to be physicallymeaningful. In addition, the two pole positions, and thus time response, take on four possibilities,depending on the value of ζ. The different cases are:

Page 50: Process Control

3 - 6

ζ > 1: Two distinct real poles. The case is named overdamped. Here, we can factorthe polynomial in terms of two time constants τ1 and τ2:

G(s) =K

τ2s2 + 2ζτ s + 1=

K(τ1 s +1) (τ2 s +1)

(3-20)

such that the two real poles are at –1/τ1 and –1/τ2. 1

ζ = 1: Two repeating poles at –1/τ. This case is termed critically damped. Thenatural period τ may be considered the “time constant” in the sense that it isassociated with the exponential function. In actual fact, the time response isnot strictly exponential, as we saw in Example 2.9 (p. 2-13) and confirmed inthe time domain solution in Eq. (3-22).

0 < ζ < 1: Two complex conjugate poles. This situation is considered underdamped.

We also write ζ 2 – 1 = j 1 – ζ 2 . It is very important to note that τ is notthe time constant here. The real part of the pole in Eq. (3-19) is –ζ/τ and thisis the value that determines the exponential decay, as in Eq. (3- 23). In thissense, the time constant is τ/ζ .

ζ = 0: Two purely imaginary conjugate poles with frequency ωn = 1/τ. This isequivalent to an oscillation with no damping and explains why ωn is referred

to as the natural frequency.

✑ 3.2.1 Step response time domain solutions

Consider a step input, x(t) = Mu(t) with X(s) = M/s, and the different cases with respect to thevalue of ζ. We can derive the output response y(t) for the different cases. We rarely use theseresults. They are provided for reference. In the case of the underdamped solution, it is used to derivethe characteristic features in the next section.

1 Here, we can derive that

τ2 = τ1τ2 and 2ζτ = (τ1 + τ2)

or

τ = τ1 τ2 and ζ =τ1 + τ2

2 τ1 τ2

In this case of having real poles, we can also relate

τ1 =τ

ζ – ζ 2 – 1; τ2 =

τζ + ζ 2 – 1

Page 51: Process Control

3 - 7

(1) ζ > 1, overdamped. The response is sluggish compared to critically damped or underdamped.

y(t) = MK 1 – e– ζ t/τ cosh

ζ 2 – 1τ t +

ζζ 2 – 1

sinhζ 2 – 1

τ t (3-21)

This form is unnecessarily complicated. When we have an overdamped response, wetypically use the simple exponential form with the exp(–t/τ1) and exp(–t/τ2) terms. (You'll get

to try this in the Review Problems.)

(2) ζ = 1, critically damped. The response is the "fastest" without oscillatory behavior.

y(t) = MK 1 – 1 +tτ e– t/τ (3-22)

(3) 0 ≤ ζ < 1, underdamped. The response is fast initially, then overshoots and decays to steadystate with oscillations. The oscillations are more pronounced and persist longer with smaller ζ.

y(t) = MK 1 – e– ζ t/τ cos

1 – ζ 2

τ t +ζ

1 – ζ 2sin

1 – ζ 2

τ t (3-23)

This equation can be rearranged as

y(t) = MK 1 –

e– ζ t/τ

1 – ζ 2sin

1 – ζ 2

τ t + φ , where

φ = tan– 1 1 – ζ 2

ζ (3-23a)

✑ 3.2.2 Time-domain features of underdamped step response

From the solution of the underdamped step response (0 < ζ < 1), we can derive the followingcharacteristics (Fig. 3.2). They are useful in two respects: (1) fitting experimental data in themeasurements of natural period and damping factor, and (2) making control system designspecifications with respect to the dynamic response.

y

Time, t

1

0

MK

A

B

C

T

TTtr p s

Figure 3.2. Key features in an underdamped response.See text for equations.

Page 52: Process Control

3 - 8

1. Overshoot (OS)

OS =AB

= exp– πζ

1 – ζ 2(3-24)

where A and B are depicted in Fig. 3.2. We compute only the first or maximum overshoot inthe response. The overshoot increases as ζ becomes smaller. The OS becomes zero as ζapproaches 1.

The time to reach the peak value is

Tp =πτ

1 – ζ 2=

πωn 1 – ζ 2

(3-25)

This peak time is less as ζ becomes smaller and meaningless when ζ = 1. We can alsoderive the rise time—time for y(t) to cross or hit the final value for the first time—as:

tr =τ

1 – ζ 2π– cos–1 ζ (3-26)

2. Frequency (or period of oscillation, T)

ω =

1 – ζ 2

τ or T =2πτ1 – ζ 2

since ω=2πT

(3-27)

Note that T = 2Tp and the unit of the frequency is radian/time.

3. Settling timeThe real part of a complex pole in (3-19) is –ζ/τ, meaning that the exponential function

forcing the oscillation to decay to zero is e–ζt/τ as in Eq. (3-23). If we draw an analogy to afirst order transfer function, the time constant of an underdamped second order function is τ/ζ.Thus to settle within ±5% of the final value, we can choose the settling time as 1

Ts = 3τζ =

3ζωn

(3-28)

and if we choose to settle within ±2% of the final value, we can use Ts = 4τ/ζ.

4. Decay ratio

DR =CA

= exp– 2πζ

1 – ζ 2= OS2 (3-29)

The decay ratio is the square of the overshoot and both quantities are functions of ζ only. Thedefinitions of C and A are shown in Fig. 3.2.

1 Refer to Review Problem 1 to see why we may pick factors of 3 or 4.

Page 53: Process Control

3 - 9

3.3 Processes with dead time

Many physio-chemical processes involve a time delay between the input and output. This delaymay be due to the time required for a slow chemical sensor to respond, or for a fluid to travel downa pipe. A time delay is also called dead time or transport lag. In controller design, theoutput will not contain the most current information, and systems with dead time can be difficultto control.

From Eq. (2-18) on page 2-7, the Laplace transform of a time delay is an exponential function.For example, first and second order models with dead time will appear as

Y(s)X(s)

=Ke– td s

τ s + 1, and

Y(s)X(s)

=Ke– td s

τ2s2 + 2ζτ s + 1

Many classical control techniques are developed to work only with polynomials in s, and we needsome way to tackle the exponential function.

To handle the time delay, we do not simply expand the exponential function as a Taylor series.We use the so-called Padé approximation, which puts the function as a ratio of twopolynomials. The simplest is the first order (1/1) Padé approximation:

e– td s ≈1 –

td

2s

1 +td

2s

(3-30)

This is a form that serves many purposes. The term in the denominator introduces a negative polein the left-hand plane, and thus probable dynamic effects to the characteristic polynomial of aproblem. The numerator introduces a positive zero in the right-hand plane, which is needed tomake a problem to become unstable. (This point will become clear when we cover Chapter 7.)Finally, the approximation is more accurate than a first order Taylor series expansion.1

There are higher order approximations. For example, the second order (2/2) Padé approximationis

e– td s ≈

td2

s2 – 6td s + 12

td2s2 + 6td s + 12

(3-31)

Again, this form introduces poles in the left-hand plane and at least one zero is in the right-handplane. At this point, the important task is to observe the properties of the Padé approximation innumerical simulations.

✎ Example 3.2: Using the first order Padé approximation, plot the unit step response of thefirst order with dead time function:

YX

= e– 3s

10 s + 1

Making use of (3-30), we can construct a plot with the approximation:

1 We will skip the algebraic details. The simple idea is that we can do long division of afunction of the form in Eq. (3-30) and match the terms to a Taylor's expansion of the exponentialfunction. If we do, we'll find that the (1/1) Padé approximation is equivalent to a third order Taylorseries.

Page 54: Process Control

3 - 10

YX

=(–1.5 s + 1)

(10 s + 1) (1.5 s + 1)

The result is the hairline curve in Fig. E3.2. Note how it dips below zero near t = 0. This behaviorhas to do with the first order Padé approximation, and we can improve the result with a secondorder Padé approximation. We will try that in the Review Problems.

0

0.2

0.4

0.6

0.8

1

0 1 0 2 0 3 0 4 0 5 0

y

t

Figure E3.2

Here the observation is that when compared with the original transfer function (the solid curve),the approximation is acceptable at larger times.

How did we generate the solid curve? We computed the result for the first order function and thenshifted the curve down three time units (td = 3). The MATLAB statements are:

td=3;

P1=tf([-td/2 1],[td/2 1]); %First order Padé approximation

t=0:0.5:50;

taup=10;

G1=tf(1,[taup 1]);

y1=step(G1*P1,t); %y1 is first order with Padé approximation of dead time

y2=step(G1,t);

t2=t+td; %Shift the time axis for the actual time delay function

plot(t,y1,'--', t2,y2);

We now move onto a few so-called higher order or complex processes. We should remindourselves that all linearized higher order systems can be broken down into simple first and secondorder units. Other so-called "complex" processes like two interacting tanks are just another mathproblem in coupled differential equations; these problems are still linear. The following sectionsserve to underscore these points.

Page 55: Process Control

3 - 11

c

c

V

V

V1

2

c

c

c n–1

2

1

q oo

q nn

n

Figure 3.3. Illustration of compartments or tanks-in-series.

3.4 Higher order processes and approximations

Staged processes in chemical engineering or compartmental models in bioengineering give rise tohigher order models. The higher order models are due to a cascade of first order elements. Numericalcalculation will be used to illustrate that the resulting response becomes more sluggish, thusconfirming our analysis in Example 2.9 (p. 2-13). We shall also see how the response may beapproximated by a lower order function with dead time. An example of two interacting vesselsfollows last.

✑ 3.4.1 Simple tanks-in-series

Consider a series of well-mixed vessels (or compartments) where the volumetric flow rate and therespective volumes are constant (Fig. 3.3). If we write down the mass balances of the first twovessels as in Section 2.8.1 (p. 2-20), they are: 1

τ1dc1dt = co – c1 (3-32)

and

τ2dc2dt = c1 – c2 (3-33)

where τ1 = V1/qo and τ2 = V2/qo are the space times of each vessel. Again following Section

2.8.1, the Laplace transform of the mass balance in deviation variables would be

C1Co

= 1τ1 s + 1 , and C2

C1= 1

τ2 s + 1 (3-34)

The effect of changes in co(t) on the effluent of the second vessel is evaluated as

C2Co

=C2C1

C1Co

= 1(τ2 s + 1)

1(τ1 s + 1) (3-35)

Obviously, we can generalize to a series of n tanks as in

CnCo

= 1(τ1 s + 1) ... (τn – 1 s + 1) (τn s + 1) (3-36)

1 Many texts illustrate with a model on the change of inlet flow rate. In such a case, we usuallyneed to assume that the outlet flow rate of each vessel is proportional to the liquid level orhydrostatic head. The steady state gains will not be unity.

Page 56: Process Control

3 - 12

In this example, the steady state gain is unity, which is intuitively obvious. If we change thecolor of the inlet with a food dye, all the mixed tanks will have the same color eventually. Inaddition, the more tanks we have in a series, the longer we have to wait until the n-th tank "sees"the changes that we have made in the first one. We say that the more tanks in the series, the moresluggish is the response of the overall process. Processes that are products of first order functionsare also called multicapacity processes.

Finally, if all the tanks have the same space time, τ1 = τ2 = …= τ, Eq. (3-36) becomes

Cn

Co= 1

(τ s + 1)n (3-37)

This particular scenario is not common in reality, but is a useful textbook illustration.

✎ Example 3.3. Make use of Eq. (3-37), show how the unit step response Cn(t) becomes moresluggish as n increases from 1 to 5.

The exercise is almost trivial with MATLAB. To generate Fig. E3.3, the statements are:

tau=3; %Just an arbitrary time constant

G=tf(1,[tau 1]);

step(G); %First order function unit step response

hold

step(G*G); %Second order response

step(G*G*G); %Third order response

step(G*G*G*G); %Fourth order response

step(G*G*G*G*G); %Fifth order response

0

0.2

0.4

0.6

0.8

1

1.2

0 10 20 30 40

y

t

n = 5

n = 1

Figure E3.3

It is clear that as n increases, the response, as commented in Example 2.9, becomes slower. If weignore the “data” at small times, it appears that the curves might be approximated with first orderwith dead time functions. We shall do this exercise in the Review Problems.

✑ 3.4.2 Approximation with lower order functions with dead time

Following the lead in Example 3.3, we now make use of the result in Example 2.6 (p. 2-11) andthe comments about dominant poles in Section 2.7 (p. 2-17) to see how we may approximate atransfer function.

Let say we have a high order transfer function that has been factored into partial fractions. Ifthere is a large enough difference in the time constants of individual terms, we may try to throwaway the small time scale terms and retain the ones with dominant poles (large time constants).This is our reduced-order model approximation. From Fig. E3.3, we also need to add a timedelay in this approximation. The extreme of this idea is to use a first order with dead timefunction. It obviously cannot do an adequate job in many circumstances. Nevertheless, this simple

Page 57: Process Control

3 - 13

approximation is all we use when we learn to design controllers with empirical tuning relations.

A second order function with dead time generally provides a better estimate, and this is how wemay make a quick approximation. Suppose we have an n-th order process which is broken downinto n first-order processes in series with time constants τ1, τ2,... ,τn. If we can identify, say, twodominant time constants (or poles) τ1 and τ2, we can approximate the process as

G(s) ≈

Ke– td s

(τ1 s +1) (τ2 s +1), where

td ≈

n

∑i ≠1,2

τ i (3-38)

The summation to estimate the dead time is over all the other time constants (i = 3, 4, etc.). Thisidea can be extended to the approximation of a first order with dead time function.

✎ Example 3.4: Find the simplest lower order approximation of the following transfer function

YX = 3

(0.1s + 1) (0.5s + 1) (s + 1) (3 s + 1)

In this example, the dominant pole is at –1/3, corresponding to the largest time constant at 3 [timeunit]. Accordingly, we may approximate the full order function as

YX

= 3 e– 1.6 s

(3 s + 1)

where 1.6 is the sum of dead times 0.1, 0.5, and 1. With X representing a unit step input, theresponse of the full order function (solid curve) and that of the first order with dead timeapproximation (dotted curve) are shown in Fig. E3.4. The plotting of the dead time function isfurther approximated by the Padé approximation. Even so, the approximation is reasonable whentime is large enough. The pole at –1/3 can indeed be considered as dominant.

-0.5

0

0.5

1

1.5

2

2.5

3

0 6 12 18

y

tFigure E3.4

The MATLAB statements are:

p2=conv([1 1],[3 1]);

p4=conv( conv(p2,[0.5 1]) , [0.1 1] );

G4=tf(3,p4); %The original full order function

t=0:0.2:18;

y4=step(G4,t); %Unit step response

td=1+0.1+0.5; %Approximate dead time

P1=tf([-td/2 1],[td/2 1]);

G1=tf(3,[3 1]);

y1=step(P1*G1,t);

plot(t,y1,t,y4)

Page 58: Process Control

3 - 14

If we follow Eq. (3-38), we should approximate the original function with a second order functionwith time constants 1 and 3, and dead time 0.6. We'll find it to be a much better fit and will dothis in the Review Problems.

✑ 3.4.3 Interacting tanks-in-series

To complete our discussion, we include the balance equations for the case when two differentialequations may be coupled. The common example is two tanks connected such that there is only avalve between them (Fig. 3.4). Thus the flow between the two tanks depends on the difference inthe hydrostatic heads. With constant density, we can write the mass balance of the first tank as

A 1dh 1dt = qo –

h 1 – h 2R1

(3-39)

Similarly for the second vessel, we have

A 2dh 2dt =

h 1 – h 2R1

–h 2R2

(3-40)

Here, we model the flow through the valves with resistances R1 and R2, both of which are

constants. We rearrange the balance equations a bit, and because both equations are linear, we canquickly rewrite them in deviation variables (without the apostrophes):

τ1dh 1dt = –h 1 + h 2 + R1 qo

, h1(0) = 0 (3-41)

and

τ2dh 2dt =

R2

R1h 1 – (1 +

R2

R1) h 2

, h2(0) = 0 (3-42)

where we have defined τ1 = A1R1, and τ2 = A2R2. The Laplace transforms of these equations are

(τ1 s + 1) H1 – H2 = R1 Qo (3-43)

and

– R2

R1H1 + (τ2 s + 1 +

R2

R1) H2 = 0 (3-44)

We have written the equations in a form that lets us apply Cramer's rule. The result is

H1 =R1 τ2 s + (R1 + R2)

p(s) Qo , and H2 =R2p(s) Qo (3-45)

where the characteristic polynomial is

p(s) = (τ1 s + 1) (τ2 s +1+ R2 R1R2 R1) – R2 R1R2 R1 (3-46)

Figure 3.4. Illustration of two tanks interacting in theirliquid levels.

Page 59: Process Control

3 - 15

We do not need to carry the algebra further. The points that we want to make are clear. First,even the first vessel has a second order transfer function; it arises from the interaction with thesecond tank. Second, if we expand Eq. (3-46), we should see that the interaction introduces an extraterm in the characteristic polynomial, but the poles should remain real and negative.1 That is, thetank responses remain overdamped. Finally, we may be afraid(!) that the algebra might becomehopelessly tangled with more complex models. Indeed, we'd prefer to use state space representationbased on Eqs. (3-41) and (3-42). After Chapters 4 and 9, you can try this problem in HomeworkProblem II.39.

3.5 Effect of zeros in time response

The inherent dynamics is governed by the poles, but the zeros can impart finer "fingerprint"features by modifying the coefficients of each term in the time domain solution. That was thepoint which we tried to make with the examples in Section 2.5 (p. 2-10). Two commonillustrations on the effects of zeros are the lead-lag element and the sum of two functions inparallel.

✑ 3.5.1 Lead-lag element

The so-called lead-lag element is a semi-properfunction with a first order lead divided by a first orderlag:

YX =

τz s + 1τ s + 1 (3-47)

We have to wait until the controller chapters to seethat this function is the basis of a derivativecontroller and not till the frequency response chapterto appreciate the terms lead and lag. For now, wetake a quick look at its time response.

For the case with a unit step input such that X =1/s, we have, after partial fraction expansion,

Y = 1s +

τz – ττs + 1 (3-48)

and inverse transform via table look-up yields

y(t) = 1 – 1 –τzτ e– t / τ (3-49)

There are several things that we want to take note of. First, the exponential function isdependent only on τ, or in other words, the pole at –1/τ. Second, with Eq. (3-49), the actual timeresponse depends on whether τ < τz, τ > τz, or τz < 0 (Fig. 3.5). Third, when τ = τz, the time

response is just a horizontal line at y = 1, corresponding to the input x = u(t). This is also obviousfrom (3-47) which becomes just Y = X. When a zero equals to a pole, we have what is called a

1 To see this, you need to go one more step to get

p(s) = τ1 τ2 s2 + (τ1 + τ2 + τ1 R2 R1R2 R1) s + 1

and compare the roots of this polynomial with the case with no interaction:

p(s) = (τ1 + 1) (τ2 + 1) .

And note how we have an extra term when the tanks interact.

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 2 4 6 8 1 0

y

Time (s)

Figure 3.5. Time response of a lead-lagelement with τ = 2 s. The curves from top tobottom are plotted with τz = 4, 3, 2, 1, –1,

–2, and –4 s, respectively.

Page 60: Process Control

3 - 16

pole-zero cancellation. Finally, the value of y is nonzero at time zero. We may wonder how thatcould be the case when we use differential equation models that have zero initial conditions. Theanswer has to do with the need for the response to match the rate of change term in the input.We'll get a better picture in Chapter 4 when we cover state space models.

✑ 3.5.2 Transfer functions in parallel

There are circumstances when a complex process may involve two competing (i.e., opposing)dynamic effects that have different time constants. One example is the increase in inlet temperatureto a tubular catalytic reactor with exothermic kinetics. The initial effect is that the exit temperaturewill momentarily decrease as increased conversion near the entrance region depletes reactants at thedistal, exit end. Given time, however, higher reaction rates lead to a higher exit temperature.

To model this highly complex and nonlinear dynamics properly, we need the heat and massbalances. In classical control, however, we would replace them with a linearized model that is thesum of two functions in parallel:

YX =

K1τ1 s + 1 +

K2τ2 s + 1 (3-50)

We can combine the two terms to give the second order function

YX =

K (τz s + 1)(τ1 s + 1) (τ2 s + 1) , (3-51)

where

K = K1 + K2, and τz =K1 τ2 + K2 τ1

K1 + K2

Under circumstances where the two functions represent opposing effects, one of them has anegative steady state gain. In the following illustration, we choose to have K2 < 0.

Based on Eq. (3-51), the time response y(t) should be strictly overdamped. However, this is notnecessarily the case if the zero is positive (or τz < 0). We can show with algebra how variousranges of Ki and τi may lead to different zeros (–1/τz) and time responses. However, we will not do

that. (We'll use MATLAB to take a closer look in the Review Problems, though.) The key, onceagain, is to appreciate the principle of superposition with linear models. Thus we should get arough idea of the time response simply based on the form in (3-50).

Figure 3.6. Time response calculations with different time constants. In all cases, K1 = 3,K2 = –1, and the individual terms in Eq. (3-50) are in dashed curves. Their superimposed

response y is the solid line. (a) τ1 = τ2 = 2; (b) τ1 = 0.5, τ2 = 2; (c) τ1 = 2, τ2 = 0.5.

The numerical calculation is illustrated in Fig. 3.6. The input is a unit step, X = 1/s, and thetwo steady state gains are K1 = 3 and K2 = –1 such that |K1| > |K2|. We consider the three cases

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0 2 4 6 8 1 0

y

t

(a)

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0 2 4 6 8 1 0

y

t

(b)

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0 2 4 6 8 1 0

y

t

(c)

Page 61: Process Control

3 - 17

where (a) τ1 is roughly the same as τ2, (b) τ1 « τ2, and (c) τ1 » τ2. We should see that the overall

response is overdamped in case (a) , but in case (b) we can have an overshoot, and in case (c), aninitial inverse response. Note that all three cases have the same overall steady gain of K = 2.1

❐ Review Problems

1. With respect to the step response of a first order model in Eq. (3-9), make a table for y(t)/MKpwith t/τp = 1, 2, 3, 4 and 5. It is helpful to remember the results for t/τp = 1, 3, and 5.

2. It is important to understand that the time constant τp of a process, say, a stirred tank is not

the same as the space time τ. Review this point with the stirred-tank heater example inChapter 2. Further, derive the time constant of a continuous flow stirred-tank reactor (CSTR)with a first-order chemical reaction.

3. Write the time response solutions to the integrating process in (3-14) when the input is (a) aunit step and (b) an impulse. How are they different from the solutions to a self-regulatingprocess?

4. Derive the time constant relationships stated in the footnotes of (3-20).

5. With respect to the overdamped solution of a second order equation in (3-21), derive the stepresponse y(t) in terms of the more familiar exp(–t/τ1) and exp(–t/τ2). This is much easier than

(3-21) and more useful too!

6. Show that when ζ = 0 (natural period of oscillation, no damping), the process (or system)oscillates with a constant amplitude at the natural frequency ωn. (The poles are at ±ωn) The

period is 2πτ.

7. Use MATLAB to make plots of overshoot and decay ratio as functions of the damping ratio.

8. What is the expected time response when the real part of the pole is zero in a second orderfunction? The pole can be just zero or have purely imaginary parts.

9. Plot the unit step response using just the first and second order Padé approximation in Eqs.(3.30) and (3-31). Try also the step response of a first order function with dead time as inExample 3.2. Note that while the approximation to the exponential function itself is not thatgood, the approximation to the entire transfer function is not as bad, as long as td « τ. How

do you plot the exact solution in MATLAB?

10. Use MATLAB to observe the effect of higher order multicapacity models as in Example 3.3.Try to fit the fifth order case with a first order with dead time function.

11. With respect to Example 3.4, try also a second order with dead time approximation.

12. We do not have a rigorous criterion to determine when a pole is absolutely dominant. Plot theexponential decay with different time constants to get an idea when the terms associated withsmaller time constants can be omitted.

13. With MATLAB, try do a unit step response of a lead-lag element in as in Eq. (3-49).

14. Repeat the time response simulation of inverse response in Section 3.5. Calculate the value ofzero in each case.

1 When you repeat this exercise with MATLAB in the Review Problems, check that τz is

negative in case (c). More commonly, we say that this is the case with a positive zero. After wehave learned frequency response, we'll see that this is an example of what we refer to as non-minimum phase.

Page 62: Process Control

3 - 18

Hints:

1. y(t)/MKp at t/τp = 1, 2, 3, 4 and 5 are 0.63, 0.86, 0.95, 0.98, and 0.99.

2. The mass balance of a continuous flow stirred-tank reactor (CSTR) with a first-order chemicalreaction is very similar to the problem in Section 2.8.1 (p. 2-20). We just need to add thechemical reaction term. The balance written for the reactant A will appear as:

V

d CA

d t= q (Co – CA) – VkCA

where CA is the molar concentration of A, V is the reactor volume, q is the volumetric flow

rate, Co is the inlet concentration of A, and k is the first order reaction rate constant. If we

define space time τ = V/q, the equation can be rewritten as

τ

d CA

d t+ (1 + kτ) CA = Co

This is a linear equation if k and τ are constants. Now if we follow the logic in Section 2.8.2,we should find that the time constant of a CSTR with a first order reaction is τ/(1 + kτ).

3. Part of the answer is already in Example 3.1.

5. This is really an algebraic exercise in partial fractions. The answer hides in Table 2.1.

6. This is obvious from Eq. (3-17) or (3-19).

7. Plot Eq. (3-29) with 0 < ζ < 1. You can write a small M-file to do the plotting too.

8. See Question 6.

9. Follow Example 3.2. For the first order approximation, we can try, for example:

td=3; %Use a M-file to re-run with different values

P1=tf([-td/2 1],[td/2 1]);

step(P1); %Note how the response starts from negative values

t=0:0.1:50;

taup=10;

G1=tf(1,[taup 1]);

y1=step(G1*P1,t); %y1 is first order with Pade approx of dead time

y2=step(G1,t); %y2 has no time delay

t2=t+td;

plot(t,y1, t2,y2,’-.’);

%Note how the Pade approx has a dip at the beginning

10. The MATLAB statements to do the unit step response are already in Example 3.4. You mayrepeat the computation with a different time constant. The statements to attempt fitting thefive tanks-in-series response are:

tau=3;G=tf(1,[tau 1]);[y5,t]=step(G*G*G*G*G); %The fifth order calculationG1=tf(1,[12 1]);y1=step(G1,t); %Using a time shift to do thet1=t+3; %first order with dead time plotplot(t,y5, t1,y1)

The choice of the time constant and dead time is meant as an illustration. The fit will not beparticularly good in this example because there is no one single dominant pole in the fifthorder function with a pole repeated five times. A first order with dead time function will neverprovide a perfect fit.

11. Both first and second order approximation statements are here.q=3;

Page 63: Process Control

3 - 19

p2=conv([1 1],[3 1]); % Second order reduced model

p4=conv(conv(p2,[0.5 1]),[0.1 1]);

roots(p4) %check

G2=tf(q,p2);

G4=tf(q,p4);

step(G4)

hold

td=0.1+0.5;

P1=tf([-td/2 1],[td/2 1]);

step(P1*G2); %Not bad!

td=1+0.1+0.5;

G1=tf(q,[3 1]); % First order approximation

step(P1*G1); % is not that good in this case

hold off

12. Below are the MATLAB statements that we may use for visual comparison of exponentialdecay with different time constants. In rough engineering calculations, a pole may alreadyexhibit acceptable dominant behavior if other time constants are 1/3 or less.

tau=1;t=0:0.1:5;f=exp(-t/tau);plot(t,f)hold

%Now add curves with smaller time constantsfrac=0.3;f=exp(-t/(frac*tau));plot(t,f)frac=0.2;f=exp(-t/(frac*tau));plot(t,f)frac=0.1;f=exp(-t/(frac*tau));plot(t,f)

13. Try vary the zero as in

tz=3; %Try vary tz, zero is -1/tz

G=tf([tz 1],[5 1]);

step(G);

14. Try vary the values of τ1 and τ2. To display the value of zero is trivial.

k1=3; k2=-1;

tau1=2; tau2=0.5;

k=k1+k2;

tz=(k1*tau2+k2*tau1)/k;

G=tf(k*[tz 1], conv([tau1 1],[tau2 1]) );

step(G);

Page 64: Process Control

P.C. Chau © 2001

❖ 4. State Space Representation

The limitation of transfer function representation becomes plain obvious as we tackle morecomplex problems. For complex systems with multiple inputs and outputs, transfer functionmatrices can become very clumsy. In the so-called modern control, the method of choice is statespace or state variables in time domain—essentially a matrix representation of the modelequations. The formulation allows us to make use of theories in linear algebra and differentialequations. It is always a mistake to tackle modern control without a firm background in thesemathematical topics. For this reason, we will not overreach by doing both the mathematicalbackground and the control together. Without a formal mathematical framework, we will put theexplanation in examples as much as possible. The actual state space control has to be delayed untilafter tackling classical transfer function feedback systems.

What are we up to?• How to write the state space representation of a model.

• Understand the how a state space representation is related to the transfer functionrepresentation.

4.1 State space models

Just as you are feeling comfortable with transfer functions, we now switch gears totally.Nevertheless, we are still working with linearized differential equation models in this chapter.Whether we have a high order differential equation or multiple equations, we can always rearrangethem into a set of first order differential equations. Bold statements indeed! We will see that whenwe go over the examples.

With state space models, a set of differential equations is put in the standard matrix form

x. = Ax + Bu (4-1)

and

y = Cx + D u (4-2)

where x is the state variable vector, u is the input, and y is the output. The time derivative isdenoted by the overhead dot. In addition, A is the process (plant) matrix, B is the input matrix, Cis the output matrix, and D is the feed-through matrix. Very few processes (and systems) have aninput that has a direct influence on the output. Hence D is usually zero.

When we discuss single-input single-output models, u, y, and D are scalar variables. Forconvenience, we keep the notation for B and C, but keep in mind that in this case, B is a columnvector and C is a row vector. If x is of order n, then A is (n x n), B is (n x 1), and C is (1 x n).1

The idea behind the use of Eqs. (4-1) and (4-2) is that we can make use of linear systemtheories, and complex systems can be analyzed much more effectively. There is no unique way todefine the state variables. What we will show is just one of many possibilities.

1 If you are working with only single-input single-output (SISO) problems, it would be moreappropriate to replace the notation B by b and C by cT, and write d for D.

Page 65: Process Control

4-2

✎ Example 4.1 : Derive the state space representation of a second order differentialequation of a form similar to Eq. (3-16) on page 3-5:

d2y

dt2+ 2ζωn

dydt

+ ωn2 y = Ku(t) (E4-1)

We can do blindfolded that the transfer function of this equation, with zero initialconditions, is

Gp (s) =Y(s)U(s)

=K

s2 + 2ζωn s + ωn2

(E4-2)

Now let's do something different. First, we rewrite the differential equation as

d2y

dt2= – 2ζωn

dydt

– ωn2 y + Ku(t)

and define state variables 1

x1 = y and x2 =

d x1

d t(E4-3)

which allow us to redefine the second order equation as a set of two coupled first order equations.The first equation is the definition of the state variable x2 in (E4-3); the second equation is based

on the differential equation,

d x2

d t= – 2ζωn x2 – ωn

2 x1 + Ku(t) (E4-4)

We now put the result in a matrix equation:

x1

x2

=0 1

–ωn2 –2ζωn

x1

x2

+0

Ku(t) (E4-5)

We further write

y = 1 0

x1

x2(E4-6)

as a statement that x1 is our output variable. Compare the results with Eqs. (4-1) and (4-2), and we

see that in this case,

A =

0 1

–ωn2 –2ζωn

; B =0K

; C = 1 0 ; D = 0

To find the eigenvalues of A, we solve its characteristic equation:

|λI – A| = λ(λ + 2ζωn) + ωn2 = 0 (E4-7)

We can use the MATLAB function tf2ss() to convert the transfer function in (E4-2) to state spaceform:

1 This exercise is identical to how we handle higher order equations in numerical analysis andwould come as no surprise if you have taken a course on numerical methods.

Page 66: Process Control

4-3

z=0.5; wn=1.5; % Pick two sample numbers for ζ and ωnp=[1 2*z*wn wn*wn];

[a,b,c,d]=tf2ss(wn*wn,p)

However, you will find that the MATLAB result is not identical to (E4-5). It has to do with the factthat there is no unique representation of a state space model. To avoid unnecessary confusion, thedifferences with MATLAB are explained in MATLAB Session 4.

One important observation that we should make immediately: the characteristic polynomial ofthe matrix A (E4-7) is identical to that of the transfer function (E4-2). Needless to say that theeigenvalues of A are the poles of the transfer function. It is a reassuring thought that differentmathematical techniques provide the same information. It should come as no surprise if weremember our linear algebra.

✎ Example 4.2 : Draw the blockdiagram of the state spacerepresentation of the second orderdifferential equation in theprevious example.

The result is in Fig. E4.2. It is quiteeasy to understand if we take note thatthe transfer function of an integrator is1/s. Thus the second order derivative islocated prior to the two integrations.The information at the summing pointalso adds up to the terms of the second order differential equation. The resulting transfer function isidentical to (E4-2). The reduction to a closed-loop transfer function was done in Example 2.16 (p.2-33).

✎ Example 4.3: Let's try another model with a slightly more complex input. Derive the statespace representation of the differential equation

d2y

dt2+ 0.4

d yd t

+ y =d ud t

+ 3u , y(0) = dy/dt(0) = 0, u(0) = 0 ,

which has the transfer function YU

=s + 3

s2 + 0.4s + 1.

The method that we will follow is more for illustration than for its generality. Let's introduce avariable X1 between Y and U:

YU

=X1

UYX1

=1

s2 + 0.4s + 1(s + 3)

The first part X1/U is a simple problem itself.

X1

U=

1

s2 + 0.4s + 1 is the Laplace transformed of

d2x1

d t2+ 0.4

d x1

d t+ x1 = u

K1s

U +–

X2

x (t) = y(t)x (t)x (t)u(t)

1s

2ζω

ω2

X1 = Y2 12

+

Figure E4.2

Page 67: Process Control

4-4

With Example 4.1 as the hint, we define the state variables x1 = x1 (i.e., the same), andx2 = dx1/dt. Using steps similar to Example 4.1, the result as equivalent to Eq. (4-1) is

x1

x2

=0 1

–1 –0.4

x1

x2

+0

1u (E4-8)

As for the second part Y/X1 = (s + 3), it is the Laplace transformed of

y =d x1

d t+ 3x1 . We can use

the state variables defined above to rewrite as

y = x2 + 3x1 , or in matrix form

y = 3 1x1

x2 , (E4-9)

which is the form of Eq. (4-2).

With MATLAB, the statements for this example are:

q=[1 3];

p=[1 0.4 1];

roots(p)

[a,b,c,d]=tf2ss(q,p)

eig(a)

Comments at the end of Example 4.1 also apply here. The result should be correct, and we shouldfind that both the roots of the characteristic polynomial p and the eigenvalues of the matrix a are–0.2 ± 0.98j. We can also check by going backward:

[q2,p2]=ss2tf(a,b,c,d,1)

and the original transfer function is recovered in q2 and p2 .

✎ Example 4.4: Derive the state space representation of the lead-lag transfer function

YU = s + 2

s + 3 .

We follow the hint in Example 4.3 and write thetransfer function as

YU = X

UYX = 1

s + 3 s + 2

From X/U = 1/(s+3), we have sX = –3X + U, or intime domain,

dxdt = – 3x + u (E4-10)

and from Y/X = s+2, we have Y = sX +2X and substitution for sX leads to

Y = (–3X + U) + 2X = –X + U

The corresponding time domain equation is

y = –x + u (E4-11)

u 1s–

3

yx x–1

Figure E4.4

Page 68: Process Control

4-5

Thus all the coefficients in Eqs. (4-1) and (4-2) are scalar, with A = –3, B = 1, C = –1, and D = 1.Furthermore, (E4-10) and (E4-11) can be represented by the block diagram in Fig. E4.4.

We may note that the coefficient D is not zero, meaning that with a lead-lag element, an input canhave instantaneous effect on the output. Thus while the state variable x has zero initial condition,it is not necessarily so with the output y. This analysis explains the mystery with the inversetransform of this transfer function in Eq. (3-49) on page 3-15.

The MATLAB statement for this example is:

[a,b,c,d]=tf2ss([1 2], [1 3])

In the next two examples, we illustrate how state space models can handle a multiple-inputmultiple output (MIMO) problem. We'll show, with a simple example, how to translateinformation in a block diagram into a state space model. Some texts rely on signal-flow graphs,but we do not need them with simple systems. Moreover, we can handle complex problems easilywith MATLAB. Go over MATLAB Session 4 before reading Example 4.7A.

✎ Example 4.5 : Derive the state space representation of two continuous flow stirred-tankreactors in series (CSTR-in-series). Chemical reaction is first order in both reactors. The reactorvolumes are fixed, but the volumetric flow rate and inlet concentration are functions of time.

We use this example to illustrate how state space representation can handle complex models. First,we make use of the solution to Review Problem 2 in Chapter 3 (p. 3-18) and write the massbalances of reactant A in chemical reactors 1 and 2:

V1

dc1

dt= q(co – c1 ) – V1 k 1 c1

(E4-12)

and V2

dc2

dt= q(c1 – c2 ) – V2 k 2 c2

(E4-13)

Since q and co are input functions, the linearized equations in deviation variables and with zero

initial conditions are (with all apostrophes omitted in the notations):

V1

dc1

dt= qs co + (cos – c1s ) q – (qs + V1 k 1 ) c1

(E4-14)

and

V2

dc2

dt= qs c1 + (c1s – c2s ) q – (qs + V2 k 2 ) c2 (E4-15)

The missing steps are very similar to how we did Example 2.11 (p. 2-28). Divide the equations bythe respective reactor volumes and define space times τ1 = V1/qs and τ2 = V2/qs, we obtain

dc1

dt=

1τ1

co +cos – c1s

V1q – (

1τ1

+ k 1 ) c1 (E4-16)

and dc2

dt=

1τ2

c1 +c1s – c2s

V2q – (

1τ2

+ k 2 ) c2 (E4-17)

Up to this point, the exercise is identical to what we learned in Chapter 2. In fact, we can

Page 69: Process Control

4-6

now take the Laplace transform of these two equations to derive the transfer functions. In statespace models, however, we would put the two linearized equations in matrix form. As analogousto Eq. (4-1), we now have

ddt

c1

c2=

– (1τ1

+ k 1) 0

1τ2

– (1τ2

+ k 2)

c1

c2+

1τ1

cos – c1s

V1

0c1s – c2s

V2

co

q , (E4-18)

The output y in Eq. (4-2) can be defined as

y1

y2=

1 0

0 1

c1

c2=

c1

c2(E4-19)

if we are to use two outputs. In SISO problems, we likely would only measure and control c2, and

hence we would define instead

y = 0 1

c1

c2(E4-20)

with c2 as the only output variable.

✎ Example 4.6. Derive the transfer function Y/U andthe corresponding state space model of the block diagramin Fig. E4.6.

From Chapter 2 block diagram reduction, we can easilyspot that

YU =

2s (s + 1)

1 + 2s (s + 1) (s + 10)

,

which is reduced to

YU = 2 (s + 10)

s3 + 11s2 + 10s + 2(E4-21)

This transfer function has closed-loop poles at –0.29, –0.69, and –10.02. (Of course, we computedthem using MATLAB.)

To derive the state space representation, one visual approach is to identify locations in the blockdiagram where we can assign state variables and write out the individual transfer functions. In thisexample, we have chosen to use (Fig. E4.6)

X1X2

= 1s ;

X2U – X3

= 2s + 1 ;

X3X1

= 1s + 10 ; and the output equation Y = X1

We can now rearrange each of the three transfer functions from which we write their time domainequivalent:

sX1 = X2 dx1

dt = x2 (E4-22a)

sX2 = –X2 –2X3 + 2U dx2dt = –x2 – 2x3 + 2u (E4-22b)

sX3 = –10X3 + X1 dx3

dt = x1 – 10x3 (E4-22c)

2s + 1

U +–

X21s

X1= Y

1s + 10

X3

Figure E4.6

Page 70: Process Control

4-7

The rest is trivial. We rewrite the differential equations in matrix form as

ddt

x1

x2

x3

=0 1 00 – 1 – 21 0 – 10

x1

x2

x3

+020

u , and

y = 1 0 0

x1

x2

x3

(E4-23, 24)

We can check with MATLAB that the model matrix A has eigenvalues –0.29, –0.69, and –10.02.They are identical with the closed-loop poles. Given a block diagram, MATLAB can put the statespace model together for us easily. To do that, we need to learn some closed-loop MATLABfunctions, and we will defer this illustration to MATLAB Session 5.

An important reminder: Eq. (E4-23) has zero initial conditions x(0) = 0. This is a directconsequence of deriving the state space representation from transfer functions. Otherwise, Eq. (4-1)is not subjected to this restriction.

4.2 Relation with transfer function models

From the last example, we may see why the primary mathematical tools in modern control arebased on linear system theories and time domain analysis. Part of the confusion in learning thesemore advanced techniques is that the umbilical cord to Laplace transform is not entirely severed,and we need to appreciate the link between the two approaches. On the bright side, if we canconvert a state space model to transfer function form, we can still make use of classical controltechniques. A couple of examples in Chapter 9 will illustrate how classical and state spacetechniques can work together.

We can take the Laplace transform of the matrix equation in Eq. (4-1) to give

sX(s) = AX(s) + BU(s) (4-3)

where the capital X does not mean that it is a matrix, but rather it is used in keeping with ournotation of Laplace variables. From (4-3), we can extract X explicitly as

X(s) = (sI – A)–1 BU(s) = Φ(s)BU(s) (4-4)

where

Φ(s) = (sI – A)–1 (4-5)

is the resolvent matrix. More commonly, we refer to the state transition matrix (also calledthe fundamental matrix) which is its inverse transform

Φ(t) = L–1[(sI – A)–1] (4-6)

We will use the same notation Φ for the time function and its Laplace transform, and only add thet or s dependence when it is not clear in which domain the notation is used.

Setting D = 0 and X(s) derived in (4-4), the output Y(s) = CX(s) becomes

Y(s) = CΦ(s)BU(s) (4-7)

Page 71: Process Control

4-8

In this case where U and Y are scalar quantities, CΦB must also be scalar.1 In fact, if we make anassociation between Eq. (4-7) and what we have learned in Chapter 2, CΦB is our ubiquitoustransfer function. We can rewrite Eq. (4-7) as

Y(s) = Gp(s)U(s), (4-7a)

where

Gp(s) = CΦ(s)B (4-8)

Hence, we can view the transfer function as how the Laplace transform of the state transitionmatrix Φ mediates the input B and the output C matrices. We may wonder how this outputequation is tied to the matrix A. With linear algebra, we can rewrite the definition of Φ in Eq. (4-5) as

ΦΦ(s) = (sI – A)– 1 =adj (sI – A)det (sI – A)

(4-5a)

Substitution of this form in (4-8) provides a more informative view of the transfer function:

Gp(s) =C adj (sI – A) B

det (sI – A)(4-8a)

The characteristic polynomial clearly is

det (sI – A) = 0 (4-9)

This is the result that we have arrived at, albeit less formally, in Example 4.1. Again, the poles ofGp are identical to the eigenvalues of the model matrix A.

✎ Example 4.7: We'll illustrate the results in this section with a numerical version of Example4.5. Consider again two CSTR-in-series, with V1 = 1 m3, V2 = 2 m3, k1 =1 min–1, k2 =2

min–1, and initially at steady state, τ 1 = 0.25 min, τ 2 = 0.5 min, and inlet concentration cos = 1

kmol/m3. Derive the transfer functions and state transition matrix where both co and q are input

functions.

With the steady state form of (E4-12) and (E4-13), we can calculate

c1s =

cos

1 + k 1 τ1=

11 + 0.25

= 0.8 , and

c2s =c1s

1 + k 2 τ2=

0.81 + 2(0.5)

= 0.4

In addition, we find 1/τ1 = 4 min–1, 1/τ2 = 2 min–1, (1/τ1 + k1) = 5 min–1, (1/τ2 + k2) = 4

min–1, (cos – c1s)/V1 = 0.2 kmol/m6, and (c1s – c2s)/V2 = 0.2 kmol/m6. We substitute these

numerical values in (E4-16) and (E4-17), and take the Laplace transform of these equations toobtain (for more general algebraic result, we should take the transform first)

C1(s) =4

s + 5Co(s) +

0.2s + 5

Q(s) (E4-25)

and C2(s) =

2s + 4

C1(s) +0.2

s + 4Q(s)

1 From Eq. (4-5), we see that Φ is a (n x n) matrix. Since B is (n x 1), and C is (1 x n), CΦBmust be (1 x 1).

Page 72: Process Control

4-9

Further substitution for C1(s) with (E4-25) in C2(s) gives

C2(s) =8

(s + 4) (s + 5)Co(s) +

0.2 (s + 7)(s + 4) (s + 5)

Q(s) (E4-26)

Equations (E4-25) and (E4-26) provide the transfer functions relating changes in flow rate Q andinlet concentration Co to changes in the two tank concentrations.

With the state space model, substitution of numerical values in (E4-18) leads to thedynamic equations

ddt

c1

c2=

– 5 0

2 – 4

c1

c2+

4 0.2

0 0.2

co

q(E4-27)

With the model matrix A, we can derive

(sI – A) =

s + 5 0–2 s + 4

,

and ΦΦ(s) = (sI – A)– 1 =

1(s + 5)(s + 4)

s + 4 02 s + 5

(E4-28)

We will consider (E4-19) where both concentrations c1 and c2 are outputs of the model. The

transfer function in (4-7) is now a matrix

Gp(s) = CΦ(s)B = 1

(s + 5)(s + 4)s + 4 0

2 s + 54 0.20 0.2

(E4-29)

where C is omitted as it is just the identity matrix (E4-19).1 With input u(s) = [Co(s) Q(s)]T, we

can write the output equation (4-6) as

C1(s)

C2(s)= CΦΦ(s)Bu(s) =

1(s + 5)(s + 4)

4 (s + 4) 0.2 (s + 4)8 0.2 (s + 7)

Co(s)

Q(s)(E4-30)

This is how MATLAB returns the results. We of course can clean up the algebra to give

C1(s)

C2(s)=

4(s + 5)

0.2(s + 5)

8(s + 5)(s + 4)

0.2 (s + 7)(s + 5)(s + 4)

Co(s)

Q(s)(E4-30a)

which is identical to what we have obtained earlier in (E4-25) and (E4-26). The case of only oneoutput as in (E4-20) is easy and we'll cover that in Example 4.7A.

To wrap things up, we can take the inverse transform of (E4-30a) to get the time domainsolutions:

c1

c2=

4e– 5t 0.2e– 5t

8 (e– 4t – e– 5t) 0.2 (3e– 4t – 2e– 5t)

co

q(E4-31)

1 Be careful with the notation. Upper case C is for concentration in the Laplace domain. Theboldface upper case C is the output matrix.

Page 73: Process Control

4-10

✎ Example 4.7A: Repeat Example 4.7 using MATLAB.

If you understand the equations in Example 4.7, we are ready to tackle the same problem withMATLAB.

t1=0.25; t2=0.5; % Define the variables

k1=1; k2=2;

V1=1; V2=2;

cos=1;

% Calculate the steady state values. MATLAB should return

c1s=cos/(1+k1*t1); % 0.8

c2s=c1s/(1+k2*t2); % 0.4

% Coefficients of A and B using (E4-18)

a11=-(1/t1+k1); % -5

a12=0;

a21=1/t2;

a22=-(1/t2+k2); % -4

b11=1/t1;

b12=(cos-c1s)/V1; % 0.2

b21=0;

b22=(c1s-c2s)/V2; % 0.2

% Finally build A and B in (E4-27)

a=[a11 a12; a21 a22]; % [–5 0; 2 4]

b=[b11 b12; b21 b22]; % [4 0.2; 0 0.2]

eig(a) % Check that they are -4, -5

c=[1 0; 0 1]; % Define C such that both C1 and C2 are outputs

d=[0 0; 0 0];

With all the coefficient matrices defined, we can do the conversion to transfer function. Thefunction ss2tf() works with only one designated input variable. Thus, for the first inputvariable Co, we use

% MATLAB returns, for input no. 1

[q1,p]=ss2tf(a,b,c,d,1) % q1=[0 4 16; 0 0 8]

% p =[1 9 20] = (s+4)(s+5)

The returned vector p is obviously the characteristic polynomial. The matrix q1 is really the firstcolumn of the transfer function matrix in Eq. (E4-30), denoting the two terms describing theeffects of changes in Co on C1 and C2. Similarly, the second column of the transfer functionmatrix in (E4-30) is associated with changes in the second input Q, and can be obtained with:

[q2,p]=ss2tf(a,b,c,d,2) % q2=[0 .2 .8; 0 .2 1.4]

% The first term is 0.2(s+4) because

% MATLAB retains p=(s+4)(s+5)

If C2 is the only output variable, we define C according to the output equation (E4-20). MatricesA and B remain the same. The respective effects of changes of Co and Q on C2 can be obtained

withc=[0 1]; d=[0 0]; % C2 is the only output

[q21,p]=ss2tf(a,b,c,d,1) % Co as input; q21=[0 0 8]

[q22,p]=ss2tf(a,b,c,d,2) % Q as input; q22=[0 .2 1.4]

Page 74: Process Control

4-11

We should find that the result is the same as the second row of (E4-30), denoting the two termsdescribing the effects of changes in Co and Q on C2.

Similarly, if C1 is the only output variable, we use instead:

c=[1 0]; d=[0 0]; % C1 is the only output

[q11,p]=ss2tf(a,b,c,d,1) % q11=[0 4 16]

[q12,p]=ss2tf(a,b,c,d,2) % q12=[0 .2 .8]

and the result is the first row of (E4-30).

✎ Example 4.8: Develop a fermentor model which consists of two mass balances, one for thecell mass (or yeast), C1, and the other for glucose (or substrate), C2. We have to forget about the

alcohol for now. The cell mass balance (E4-32) has two terms on the right. The first one describescell growth using the specific growth rate µ = µ(C2). The second term accounts for the loss of

cells due to outlet flow Q, which in turn is buried inside the notation D, the dilution rate.

d C1

d t= µC1 – DC1 (E4-32)

The specific growth rate and dilution rate are defined as:

µ = µ(C2) = µmC2

Km + C2 , and D =

QV

The glucose balance has three terms on the right. The first accounts for the consumption by thecells. The last two terms account for the flow of glucose into and out of the fermentor.

d C2

d t= –

µC1

Y+ D (C2o – C2) (E4-33)

The maximum specific growth rate µm, Monod constant Km, and cell yield coefficient Y are

constants. In (E4-33), C2o is the inlet glucose concentration.

The dilution rate D is dependent on the volumetric flow rate Q and the volume V, and reallyis the reciprocal of the space time of the fermentor. In this problem, the fermentor volume, V, isfixed, and we vary the flow rate, Q. Hence, it is more logical to use D (and easier to think) as it isproportional to Q.

Our question is to formulate this model under two circumstances: (1) when we only vary thedilution rate, and (2) when we vary both the dilution rate and the amount of glucose input. Derivealso the transfer function model in the second case. In both cases, C1 and C2 are the two outputs.

To solve this problem, we obviously have to linearize the equations. In vector form, thenonlinear model is

d xd t

= f(x, D) (E4-34)

where x = [C1 C2]T, and

f(x, D) =

f1(x, D)

f2(x, D)

=(µ(C2) – D) C1

–µ(C2) C1

Y+ D (C2o – C2)

(E4-35)

Page 75: Process Control

4-12

We first take the inlet glucose, C2o, to be a constant (i.e., no disturbance) and vary only the

dilution rate, D. From the steady state form of (E4-32) and (E4-33), we can derive (without specialnotations for the steady state values):

D (C2o – C2) =

µC1

Y, and C1 = Y(C2o – C2) (E4-36)

Now we linearize the two equations about the steady state. We expect to arrive at (with theapostrophes dropped from all the deviation variables and partial derivatives evaluated at the steadystate):

ddt

C1

C2

=

∂f1

∂C1

∂f1

∂C2∂f2

∂C1

∂f2

∂C2 s.s

C1

C2

+

∂f1

∂D∂f2

∂Ds.s

D(E4-37)

Using (E4-35) to evaluate the partial derivatives, we should find

ddt

C1

C2

=0 C1 µ'

–µY

–C1

Yµ' – µ

s.s.

C1

C2

+–C1C1

Y s.s.

D = Ax + BD (E4-38)

where µ' is the derivative with respect to the substrate C2:

µ' =dµdC2

= µmKm

(Km + C2)2 (E4-39)

All the coefficients in A and B are evaluated at steady state conditions. From Eq. (E4-32), D = µ atsteady state. Hence the coefficient a11 in A is zero.

To complete the state space model, the output equation is

C1C2

=1 00 1

C1C2

(E4-40)

where C is the identity matrix.

Now, we'll see what happens with two inputs. In practice, we most likely would make ahighly concentrated glucose stock and dose it into a main feed stream that contains the otheringredients. What we manipulate is the dosage rate. Consider that the glucose feed stock has a fixedconcentration C2f and adjustable feed rate qf, and the other nutrients are being fed at a rate of qo. The

effective glucose feed concentration is

C2o =

qf C2fqf + qo

=qf C2f

Q (E4-41)

where Q = qf + qo is the total inlet flow rate, and the dilution rate is

D =QV

=qf + qo

V(E4-42)

The general fermentor model equation as equivalent to (E4-34) is

d xdt

= f(x, u) (E4-43)

where the state space remains x = [C1 C2]T, but the input is the vector u = [Do Df]T. Here, Do =

qo/V and Df = qf/V are the respective dilution rates associated with the two inlet streams. That is,

we vary the main nutrient feed and glucose dosage flow rates to manipulate this system. Thefunction, f, is

Page 76: Process Control

4-13

f(x, u) =

f1(x, u)f2(x, u)

=µ(C2)C1 – (Do + Df) C1

–µ(C2) C1

Y+ DfC2f – (Do + Df) C2

(E4-44)

At steady state,

µ = (Do + Df) = D (E4-45)

and

C1 = Y(C*2o – C2) , where

C*2o =Df C2f

Do + Df(E4-46)

The equations linearized about the steady state (with the apostrophes dropped from the deviationvariables as in E4-38) are

ddt

C1

C2=

0 C1µ'

–µY

–C1

Yµ' – µ

C1

C2+

– C1 – C1

– C2 (C2f – C2) s.s.

DoDf

= Ax + Bu (E4-47)

The output equation remains the same as in (E4-40). Laplace transform of the model equations andrearrangement lead us to

C1C2

=G11 G12G21 G22

DoDf

(E4-48)

where the four open-loop plant transfer functions are:

G11 =

–C1

Y s.s.s – C1

C1 µ'Y

+ µ + C1µ'C2s.s.

p(s) (E4-49)

G12 =–

C1

Y s.s.s + C1µ' (C2f - C2) – C1

C1µ'Y

+ µs.s.

p(s) (E4-50)

G21 =– C2 s.s.s +

C1µY s.s.

p(s) (E4-51)

G22 =C2f – C2 s.s.s +

C1µY s.s.

p(s) (E4-52)

and the characteristic polynomial

p(s) = s2 +

C1µ'Y

+ µs.s.

s +C1 µ µ'

Y s.s.(E4-53)

Until we can substitute numerical values and turn the problem over to a computer, we have toadmit that the state space form in (E4-47) is much cleaner to work with.

This completes our "feel good" examples. It may not be too obvious, but the hint is that linearsystem theory can help us analysis complex problems. We should recognize that state spacerepresentation can do everything in classical control and more, and feel at ease with the language of

Page 77: Process Control

4-14

state space representation.

4.3 Properties of state space models

This section contains brief remarks on some transformations and the state transition matrix. Welimit the scope to materials that one may draw on introductory linear algebra.

✑ 4.3.1 Time-domain solution

We can find the solution to Eq. (4-1), which is simply a set of first order differential equations. Asanalogous to how Eq. (2-3) on page 2-2 was obtained, we now use the matrix exponential functionas the integration factor, and the result is (hints in the Review Problems)

x(t) = eAt x(0) + e– A(t –τ) Bu(τ) dτ0

t(4-10)

where the first term on the right evaluates the effect of the initial condition, and the second term isthe so-called convolution integral that computes the effect of the input u(t).

The point is that state space representation is general and is not restricted to problems with zeroinitial conditions. When Eq. (4-1) is homogeneous (i.e., Bu = 0), the solution is simply

x(t) = eAtx(0) (4-11)

We can also solve the equation using Laplace transform. Starting again from (4-1), we can find(see Review Problems)

x(t) = Φ(t)x(0) + Φ(t – τ) Bu(τ) dτ0

t(4-12)

where Φ(t) is the state transition matrix as defined in (4-6). Compare (4-10) with (4-12), and wecan see that

Φ(t) = eAt (4-13)

We have shown how the state transition matrix can be derived in a relatively simple problem inExample 4.7. For complex problems, there are numerical techniques that we can use to computeΦ(t), or even the Laplace transform Φ(s), but which of course, we shall skip.

One idea (not that we really do that) is to apply the Taylor series expansion on the exponentialfunction of A, and evaluate the state transition matrix with

Φ(t) = eAt = I + At + 12!

A2t2 + 13!

A3t3 + ... (4-14)

Instead of an infinite series, we can derive a closed form expression for the exponential function.For an n x n matrix A, we have

eAt = α o(t)I + α 1(t)A + α 2(t)A2 + ... + α n–1(t)An–1 (4-15)

The challenge is to find those coefficients αi(t), which we shall skip.1

1 We only need the general form of (4-15) later in Chapter 9. There are other properties of thestate transition matrix that we have skipped, but we have structured our writing such that they arenot needed here.

Page 78: Process Control

4-15

✑ 4.3.2 Controllable canonical form

While there is no unique state space representation of a system, there are “standard” ones thatcontrol techniques make use of. Given any state equations (and if some conditions are met), it ispossible to convert them to these standard forms. We cover in this subsection a couple ofimportant canonical forms.

A tool that we should be familiar with from introductory linear algebra is similarity transform,which allows us to transform a matrix into another one but which retains the same eigenvalues. Ifa state x and another x are related via a so-called similarity transformation, the state spacerepresentations constructed with x and x are considered to be equivalent.1

For the n-th order differential equation: 2

y(n) + an –1y(n –1) + ... + a1y

(1) + aoy = u(t) (4-16)

we define

x1 = y, x2 = y(1), x3 = y(2), …, and xn = y(n–1) (4-17)

The original differential equation can now be reformulated as a set of first order equations:

x1.

= x2

x2.

= x3

.

. (4-18)

xn–1.

= xn

and finally

xn.

= –aox1 – a1x2 – … – an–1xn + u(t)

This set of equation, of course, can be put in matrix form as in Eq. (4-1):

x =

0 1 0 … 0

0 0 1 … 0

0 0 0 … 1

–ao –a1 –a2 … –an–1

x +

0

0

0

1

u = Ax + Bu(4-19)

The output equation equivalent to Eq. (4-2) is

y = [ 1 0 0 … 0] x = Cx (4-20)

The system of equations in (4-19) and (4-20) is called the controllable canonical form

1 That includes transforming a given system to the controllable canonical form. We can say thatstate space representations are unique up to a similarity transform. As for transfer functions, wecan say that they are unique up to scaling in the coefficients in the numerator and denominator.However, the derivation of canonical transforms requires material from Chapter 9 and is not crucialfor the discussion here. These details are provided on our Web Support.

2 Be careful when you read the MATLAB manual; it inverts the index of coefficients as in y(n) + a1y

(n –1) + ... + an–1y(1) + any . Furthermore, we use a simple RHS in the ODE. You’d find

more general, and thus messier, derivations in other texts.

Page 79: Process Control

4-16

(also phase variable canonical form). As the name implies, this form is useful in doingcontrollability analysis and in doing pole placement system design—topics that we will cover inChapter 9.

With all the zeros along the leading diagonal, we can find relatively easily that the characteristicequation of A, |sI – A| = 0, is

sn + an–1sn–1 + ... + a1s + ao = 0 (4-21)

which is immediately obvious from Eq. (4-16) itself. We may note that the coefficients of thecharacteristic polynomial are contained in the matrix A in (4-19). Matrices with this property arecalled the companion form. When we use MATLAB, its canon() function returns a companionmatrix which is the transpose of A in (4-19); this form is called the observable canonical form.We shall see that in MATLAB Session 4.

✑ 4.3.3 Diagonal canonical form

Here, we want to transform a system matrix A into a diagonal matrix Λ that is made up of theeigenvalues of A . In other words, all the differential equations are decoupled after thetransformation.

For a given system of equations in (4-1) in which A has distinct eigenvalues, we should find atransformation with a matrix P:

x– = P–1x, or x = P x– (4-22)

such that

x = ΛΛ x + B u (4-23)

where now B–

= P–1B, and Λ = P–1AP is a diagonal matrix made up of the eigenvalues of A . Thetransformation matrix (also called the modal matrix) P is made up of the eigenvectors of A . Incontrol, (4-23) is called the diagonal canonical form.

If A has repeated eigenvalues (multiple roots of the characteristic polynomial), the result, againfrom introductory linear algebra, is the Jordan canonical form. Briefly, the transformation matrixP now needs a set of generalized eigenvectors, and the transformed matrix J = P–1AP is made ofJordan blocks for each of the repeated eigenvalues. For example, if matrix A has three repeatedeigenvalues λ1, the transformed matrix should appear as

J =J11 00 J22

where

J11 =λ 1 1 00 λ 1 10 0 λ 1

(4-24)

and J22 is a diagonal matrix made up of eigenvalues λ 4,..., λ n. Since Chapter 9 later will not

make use of such cases, we shall leave the details to a second course in modern control.

✎ Example 4.9: For a model with the following transfer function

YU

= 1(s +3) (s + 2) (s + 1) ,

find the diagonal and observable canonical forms with MATLAB.

The statements to use are:

Page 80: Process Control

4-17

G=zpk([],[-1 -2 -3],1);

S=ss(G); % S is the state space system

canon(S) % Default is the diagonal form

canon(S,'companion') % This is the observable companion

There is no messy algebra. We can be spoiled! Further details are in MATLAB Session 4.

❐ Review Problems

1. Fill in the gaps in the derivation of (E4-25) and (E4-26) in Example 4.7

2. Write down the dimensions of all the matrixes in (4-6) for the general case of multiple-inputand multiple-output models. Take x to be (n x 1), y (m x 1), and u (k x 1). And when y and uare scalar, CΦB is a scalar quantity too.

3. Fill in the gaps in the derivation of (4-9) from (4-3a).

4. For the SISO system shown in Fig. R4.4,derive the state space representation. Show thatthe characteristic equation of the model matrix isidentical to the closed-loop characteristicpolynomial as derived from the transferfunctions.

5. Derive Eq. (4-10).

6. Derive Eq. (4-12).

7. Derive Eq. (4-23).

Hints:

2. A is (n x n), B (n x k), C (m x n), Φ (n x n), and CΦB (m x k).

4. Multiply the K to the transfer function to give a gain of 3K. Then the rest is easier thanExample 4.6.

5. We multiply Eq. (4-1) by exp(–At) to give e– At [x – Ax] = e– At Bu , which is

ddt

[e– Atx] = e– At Bu

Integration with the initial condition gives

e– At x(t) – x(0) = e– Aτ Bu(τ) dτ0

t

which is one step away from Eq. (4-10).

6. The Laplace transform of Eq. (4-1) with nonzero initial conditions is

sX – x(0) = AX + BU

or

X = (sI – A)–1x(0) + (sI – A)–1BU

Substituting in the definition Φ(s) = (sI – A)–1, we have

X = Φ(s)x(0) + Φ(s)BU

u 3(s + 2)–

1(s + 5)

Kx = y

x

1

2

Figure R4.4

Page 81: Process Control

4-18

The time domain solution vector is the inverse transform

x(t) = L–1[Φ(s)]x(0) + L–1[Φ(s)BU]

and if we invoke the definition of convolution integral (from calculus), we have Eq. (4-12).

7. We first substitute x = Px– in Eq. (4-1) to give

P ddt

x = APx + Bu

Then we multiply the equation by the inverse P–1

ddt

x = P– 1APx + P– 1Bu

which is (4-23).

Page 82: Process Control

P.C. Chau © 2001

❖ 5. Analysis of Single-Loop Control Systems

We now finally launch into the material on controllers. State space representation is more abstractand it helps to understand controllers in the classical sense first. We will come back to state spacecontroller design later. Our introduction stays with the basics. Our primary focus is to learn howto design and tune a classical PID controller. Before that, we first need to know how to set up aproblem and derive the closed-loop characteristic equation.

What are we up to?• Introduce the basic PID control schemes

• Derive the closed-loop transfer function of a system and understand its properties

5.1 PID controllers

We use a simple liquid level controller toillustrate the concept of a classic feedback controlsystem.1 In this example (Fig. 5.1), we monitorthe liquid level in a vessel and use theinformation to adjust the opening of an effluentvalve to keep the liquid level at some user-specified value (the set point or reference). Inthis case, the liquid level is both the measuredvariable and the controlled variable—theyare the same in a single-input single-output(SISO) system. In this respect, the controlledvariable is also the output variable of the SISOsystem. A system refers to the process whichwe need to control plus the controller andaccompanying accessories such as sensors andactuators.2

Let's say we want to keep the liquid level at theset point, hs, but a sudden surge in the inlet flowrate qi (the disturbance or load) increases h such

that there is a deviation h' = h – hs > 0. Thedeviation can be rectified if we open up the valve(or we can think in terms of lowering the flowresistance R). Here, we assume that the levelcontroller will send out an appropriate signal to thevalve to accomplish the task. It is logical to thinkthat the signal from the controller, p(t), should be afunction of the deviation.

However, since we are to implement negativefeedback, we base our decision on the error defined as

e(t) = hs(t) – h(t) ,

1 In Fig. 5.1, we use the actual variables because they are what we measure. Regardless of thenotations in a schematic diagram, the block diagram in Fig. 5.2 is based on deviation variables andtheir Laplace transform.

2 Recall the footnote in Chapter 1: a process is referred to as a plant in control engineering.

LT LC

q

h

q

p

i

h s

R

Figure 5.1. Schematic diagram of a liquidlevel control system.

E(s)

H (s)

H(s)

P(s)

sG c

Figure 5.2. Information around thesumming point in a negative feedbacksystem.

Page 83: Process Control

5 - 2

which is the negative of the deviation (Fig. 5.2). The actual controller output is

p(t) = ps + f[e(t)] = ps + f[hs – h(t)] (5-1)

where f is some function of e(t), and ps is the actuating signal at steady state when the deviation ish' = 0; it is commonly referred to as the controller bias signal. Our task is to determineplausible choices of the controller function—what is also called control laws. The classicalcontroller functions are explained in the following subsections, but if you need a more physicalfeel of how a control system is put together now, you may jump ahead and read Section 5.2 first.

5.1.1 Proportional control

The simplest idea is that the compensation signal (actual controller output) is proportional to theerror e(t):

p(t) = ps + Kce(t) = ps + Kc[hs – h(t)] (5-2)

where Kc is the proportional gain of the controller. It is obvious that the value of Kc

determines the controller "sensitivity"—how much compensation to enact for a given change inerror.

For all commercial devices, the proportional gain is a positive quantity. Because we usenegative feedback (see Fig. 5.2), the controller output moves in the reverse direction of thecontrolled variable.1 In the liquid level control example, if the inlet flow is disturbed such that h

rises above hs, then e < 0, and that leads to p < ps, i.e., the controller output is decreased. In thiscase, we of course will have to select or purchase a valve such that a lowered signal means openingthe valve (decreasing flow resistance). Mathematically, this valve has a negative steady state gain(–Kv).2

Now what if our valve has a positive gain? (Increased signal means opening the valve.) In thiscase, we need a negative proportional gain. Commercial devices provide such a “switch” on thecontroller box to invert the signal. Mathematically, we have changed the sign of the compensationterm to: p = ps – Kce. 3

By the definition of a control problem, there should be no error at t = 0, i.e., es = 0, and thedeviation variable of the error is simply the error itself:

e'(t) = e(t) – es = e(t)

1 You may come across the terms reverse and direct acting and they are extremelyconfusing. Some authors consider the action between the controller output and the controlledvariable, and thus a negative feedback loop with a positive Kc is considered reverse-acting.

However, most commercial vendors consider the action between the error (controller input) and thecontroller output, and now, a controller with a positive Kc is direct-acting, exactly the opposite

terminology. We’ll avoid using these confusing terms. The important point is to select the propersigns for all the steady state gains, and we'll get back to this issue in Section 5.4.

2 Take note that from the mass balance of the tank, the process gain associated with the outletflow rate is also negative. A simple-minded check is that in a negative feedback system, there canonly be one net negative sign—at the feedback summing point. If one unit in the system has anegative steady state gain, we know something else must have a negative steady state gain too.

3 We may have introduced more confusion than texts that ignore this tiny detail. To reduceconfusion, we will keep Kc a positive number. For problems in which the proportional gain isnegative, we use the notation –Kc. We can think that the minus sign is likened to having flipped

the action switch on the controller.

Page 84: Process Control

5 - 3

Hence Eq. (5-2) is a relation between the deviation variables of the error and the controller output:

p(t) – ps = Kc [e(t) – es] , or p'(t) = Kce'(t)

and the transfer function of a proportional controller is simply

Gc(s) = P(s)E(s)

= Kc (5-3)

Generally, the proportional gain is dimensionless (i.e., p(t) and e(t) have the same units). Manycontroller manufacturers use the percent proportional band, which is defined as

PB = 100Kc

(5-4)

A high proportional gain is equivalent to a narrow PB, and a low gain is wide PB. We caninterpret PB as the range over which the error must change to drive the controller output over itsfull range.1

Before doing any formal analysis, we state a few qualitative features of each type of controller.This is one advantage of classical control. We can make fairly easy physical interpretation of thecontrol algorithm. The analyses that come later will confirm these qualitative observations.

General qualitative features of proportional control

• We expect that a proportional controller will improve or accelerate the response of a process.The larger Kc is, the faster and more sensitive is the change in the compensation with respectto a given error. However, if Kc is too large, we expect the control compensation to overreact,

leading to oscillatory response. In the worst case scenario, the system may become unstable.

• There are physical limits to a control mechanism. A controller (like an amplifier) can deliveronly so much voltage or current; a valve can deliver only so much fluid when fully opened.At these limits, the control system is saturated.2

• We expect a system with only a proportional controller to have a steady state error (or anoffset). A formal analysis will be introduced in the next section. This is one simplistic wayto see why. Let's say we change the system to a new set point. The proportional controlleroutput, p = ps + Kce, is required to shift away from the previous bias ps and move the system

to a new steady state. For p to be different from ps, the error must have a finite non-zerovalue. 3

• To tackle a problem, consider a simple proportional controller first. This may be all we need(lucky break!) if the offset is small enough (for us to bear with) and the response is adequatelyfast. Even if this is not the case, the analysis should help us plan the next step.

1 In some commercial devices, the proportional gain is defined as the ratio of the percentcontroller output to the percent controlled variable change [%/%]. In terms of the control systemblock diagram that we will go through in the next section, we just have to add “gains” to do theunit conversion.

2 Typical ranges of device outputs are 0–10 V, 0–1 V, 4–20 mA, and 3–15 psi.

3 The exception is when a process contains integrating action, i.e., 1/s in the transferfunctions—a point that we will illustrate later.

Page 85: Process Control

5 - 4

5.1.2 Proportional-Integral (PI) control

To eliminate offset, we can introduce integral action in the controller. In other words, we use acompensation that is related to the history of the error:

p'(t) =

1τ I

e'(t) dt0

t;

P(s)

E(s)=

1

s τ I

where τ I is the integral time constant (reset time, or minutes per repeat1). Commercial

devices may also use 1/τI which is called the reset rate (repeats per minute).

The integral action is such that we accumulate the error from t = 0 to the present. Thus theintegral is not necessarily zero even if the current error is zero. Moreover, the value of the integralwill not decrease unless the integrand e'(t) changes its sign. As a result, integral action forces thesystem to overcompensate and leads to oscillatory behavior, i.e., the closed-loop system willexhibit an underdamped response. If there is too much integral action, the system may becomeunstable.

In practice, integral action is never used by itself. The norm is a proportional-integral(PI) controller. The time-domain equation and the transfer function are:

p'(t) = Kc e'(t) +

1τ I

e'(t) dt0

t; Gc(s) = Kc 1 +

1τ I

s(5-5)

If the error cannot be eliminated within a reasonable period, the integral term can become solarge that the controller is saturated—a situation referred to as integral or reset windup. Thismay happen during start-up or large set point changes. It may also happen if the proportional gainis too small. Many industrial controllers have "anti-windup" which temporarily halts the integralaction whenever the controller output becomes saturated.2

On the plus side, the integration of the error allows us to detect and eliminate very small errors.To make a simple explanation of why integral control can eliminate offsets, refer back to ourintuitive explanation of offset with only a proportional controller. If we desire e = 0 at steady

state, and to shift controller output p away from the previous bias ps, we must have a nonzeroterm. Here, it is provided by the integral in Eq. (5-5). That is, as time progresses, the integral termtakes on a final nonzero value, thus permitting the steady state error to stay at zero.

General qualitative features of PI control

• PI control can eliminate offset. We must use a PI controller in our design if the offset isunacceptably large.

1 Roughly, the reset time is the time that it takes the controller to repeat the proportional action.This is easy to see if we take the error to be a constant in the integral.

2 Another strategy is to implement the PI algorithm in the so-called reset feedbackconfiguration. The basis of internal reset feedback is to rearrange and implement the PI transferfunction as

1 +

1τ I

s=

τ Is + 1

τ Is

=1

τ Is (τ I

s + 1)τ Is (τ I

s + 1)=

11 – 1 (τ I

s + 1)1 (τ Is + 1)

Now, the “internal state” of the controller, whether it be electronics or a computer algorithm forintegration, will have an upper limit. External reset feedback, on the other hand, makes use ofmeasurements of the manipulated variable. You may find such implementation details in moreapplied control books.

Page 86: Process Control

5 - 5

• The elimination of the offset is usually at the expense of a more underdamped systemresponse. The oscillatory response may have a short rise time, but is penalized by excessiveovershoot or exceedingly long settling time. 1

• Because of the inherent underdamped behavior, we must be careful with the choice of theproportional gain. In fact, we usually lower the proportional gain (or detune the controller)when we add integral control.

5.1.3 Proportional-Derivative (PD) control

We certainly want to respond very differently if the temperature of a chemical reactor is changing ata rate of 100°C/s as opposed to 1°C/s. In a way, we want to "project" the error and makecorrections accordingly. In contrast, proportional and integral controls are based on the present andthe past. Derivative controller action is based on how fast the error is changing with time (rateaction control). We can write

p'(t) = τD de'dt

; P(s)E(s)

= τDs

where τD is the derivative time constant (sometimes just rate time).

Here, the controller output is zero as long as the error stays constant. That is, even if the erroris not zero. Because of the proportionality to the rate of change, the controller response is verysensitive to noise. If there is a sudden change in error, especially when we are just changing the setpoint, the controller response can be unreasonably large—leading to what is called a derivativekick.

Derivative action is never used by itself. The simplest implementation is a proportional-derivative (PD) controller. The time-domain equation and the transfer function of an "ideal" PDcontroller are:

p'(t) = Kc e'(t) + τ D

de'dt

; Gc(s) = Kc 1 + τDs (5-6)

In practice, we cannot build a pneumatic device or a passive circuit which provides ideal derivativeaction. Commercial (real!) PD controllers are designed on the basis of a lead-lag element:

Gc(s) = Kc

τ Ds + 1

ατ Ds + 1

(5-7)

where α is a small number, typically 0.05 ≤ α ≤ 0.2.

In effect, we are adding a very large real pole to the derivative transfer function. Later, afterlearning root locus and frequency response analysis, we can make more rational explanations,including why the function is called a lead-lag element. We'll see that this is a nice strategy whichis preferable to using the ideal PD controller.

To reduce derivative kick (the sudden jolt in response to set point changes), the derivativeaction can be based on the rate of change of the measured (controlled) variable instead of the rate ofchange of the error. One possible implementation of this idea is in Fig. 5.3. This way, thederivative control action ignores changes in the reference and just tries to keep the measuredvariable constant.2

1 Some texts use the term "sluggish" here without further qualification. The sluggishness in thiscase refers to the long settling time, not the initial response.

2 For review after the chapter on root locus: with the strategy in Fig. 5.3, the closed-loopcharacteristic polynomial and thus the poles remain the same, but not the zeros. You may also

Page 87: Process Control

5 - 6

General qualitative features of derivative control

• PD control is not useful for systems with largedead time or noisy signals.

• The sign of the rate of change in the error couldbe opposite that of the proportional or integralterms. Thus adding derivative action to PI controlmay counteract the overcompensation of theintegrating action. PD control may improvesystem response while reducing oscillations andovershoot. (Formal analysis later will show thatthe problem is more complex than this simple statement.)

• If simple proportional control works fine (in the sense of acceptable offset), we may try PDcontrol. Similarly, we may try PID on top of PI control. The additional stabilizing actionallows us to use a larger proportional gain and obtain a faster system response.

5.1.4 Proportional-Integral-Derivative (PID) control

Finally, we can put all the components together to make a PID (or 3-mode) controller. The time-domain equation and the transfer function of an “ideal” PID controller are:

p'(t) = Kc e'(t) +

1τ I

e'(t) dt0

t+ τ D

de'dt

(5-8a)

and

Gc(s) = Kc 1 +

1τ I

s+ τ D

s = Kc

τ I τ Ds2 + τ I

s + 1

τ Is

(5-8b)

We also find rather common that the proportional gain is multiplied into the bracket to give theintegral and derivative gains:

Gc(s) = Kc +KI

s+ KD s (5-8c)

where KI = Kc/τI, and KD = KcτD. With a higher order polynomial in the numerator, the ideal PID

controller is not considered physically realizable. We nevertheless use this ideal controller inanalyses because of the cleaner algebra, and more importantly because we can gain valuable insightwith it. You can say the same with the use of the ideal PD controller too.

In real life, different manufacturers implement the “real” PID controller slightly differently.1

One possibility is to modify the derivative action as

Gc(s) = Kc 1 +

1τ I

s+

τ Ds

ατ Ds + 1

= Kc

(α + 1)τ Ds + 1

ατ Ds + 1

+1

τ Is

(5-9a)

wonder how to write the function Gc(s), but it is much easier and more logical just to treat the PI

action and derivation action as two function blocks when we analyze a problem.

1 Not only that, most implementations are based on some form of the digitized control law. Anillustration of the positional digital algorithm along with concepts such as bumpless transfer,external rate feedback and bias tracking is in the LabView liquid level simulation module on ourWeb Support.

I action

+ 1τατ + 1

erivative action

+ τ

Figure 5.3. Implementation ofderivative control on the measuredvariable.

Page 88: Process Control

5 - 7

Another implementation of the actual PID control is to introduce the derivative control in serieswith PI control:

Gc(s) = Kc

τ Is + 1

τ Is

τ Ds + 1

ατ Ds + 1

(5-9b)

This configuration is also referred to as interacting PID, series PID, or rate-before-reset. Toeliminate derivative kick, the derivative lead-lag element is implemented on the measured(controlled) variable in the feedback loop.

5.2 Closed-loop transfer functions

We first establish the closed-loop transfer functions of a fairly general SISO system. After that,we’ll walk through the diagram block by block to gather the thoughts that we must have insynthesizing and designing a control system. An important detail is the units of the physicalproperties.

5.2.1 Closed-loop transfer functions and characteristic polynomials

Consider the stirred-tank heater again, this time in a closed-loop (Fig. 5.4). The tank temperaturecan be affected by variables such as the inlet and jacket temperatures and inlet flow rate. Back inChapter 2, we derived the transfer functions for the inlet and jacket temperatures. In Laplacetransform, the change in temperature is given in Eq. (2-49b) on page 2-25 as

T(s) = GL(s)Ti(s) + Gp(s)TH(s) (5-10)

This is our process model. Be careful with the context when we use the wording “input.” The inletand jacket temperatures are the inputs to the process, but they are not necessarily the inputs to thesystem. One of them will become the manipulated variable of the system.

In a SISO system, we manipulate only one variable, so we must make a decision. Since ourgoal is to control the tank temperature, it would be much more sensible to manipulate the steamtemperature TH instead of the inlet temperature. We can arrive at this decision with physical

intuition, or we can base it on the fact that from Chapter 2, the steam temperature has a higherprocess gain. Hence with respect to the control system, we choose TH as the manipulatedvariable (M), which is governed by the actuator function Ga and controller signal P. The tank

temperature T is the system output (also the controlled variable C). The system input is the set

Gp

GL

L

+

Gm

Gc–

+R C

G a

E P

C

M (T )

Cm

Process (Plant)

Km

Controller

H (T)

(T )i

(T )sp

Figure 5.4. Block diagram of a simple SISO closed-loop system.

Page 89: Process Control

5 - 8

point Tsp (or reference R)—our desired steady state tank temperature. 1

There are other system inputs that can affect our closed-loop response, and we consider themload (or disturbance) variables. In this case, the load variable is the inlet temperature, Ti. Now youmay understand why we denote the two transfer functions as Gp and GL. The important point is

that input means different things for the process and the closed-loop system.

For the rest of the control loop, Gc is obviously the controller transfer function. Themeasuring device (or transducer) function is Gm. While it is not shown in the block diagram, thesteady state gain of Gm is Km. The key is that the summing point can only compare quantitieswith the same units. Hence we need to introduce Km on the reference signal, which should have thesame units as C. The use of Km, in a way, performs unit conversion between what we “dial in”

and what the controller actually uses in comparative tests. 2

The next order of business is to derive the closed-loop transfer functions. For better readability,we'll write the Laplace transforms without the s dependence explicitly. Around the summing point,we observe that

E = KmR – GmC

Based on the process, we have

C = Gp (GaGcE) + GLL

Substitution for E, the equation becomes

C = GpGaGc (KmR – GmC) + GLL

This step can be rearranged to give

C =

Km Gc Ga Gp

1 + Gm Gc Ga GpR +

GL

1 + Gm Gc Ga GpL = Gsp R + Gload L , (5-11)

which provides us with the closed-loop transfer functions Gsp and Gload. Based on Eq. (5-11), the

inputs to the system are the reference R and the load variable L; the controlled variable is thesystem output. The first transfer function Gsp accounts for the effect of a set point change, and isalso called the command tracking function. The second function Gload accounts for the effect of

changes in disturbance.

The important point is that the dynamics and stability of the system are governed by theclosed-loop characteristic polynomial:

1 + GmGcGaGp = 0 (5-12)

which is the same whether we are looking at set point or disturbance changes. As an abbreviation,many books write GOL = GmGcGaGp and refer to it as the open-loop transfer function as if the

1 There are no standard notations. We could have used Y in place of C for system output. Orreplaced Ga by Gv for valve (Gf is also used), GL and L by Gd and D for disturbance, and Gm byGT for transducer. We have selected P to denote controller output, more or less for pneumatic.

2 Many texts, especially those in electrical engineering, ignore the need for Km and the final

result is slightly different. They do not have to check the units since all they deal with areelectrical signals.

Page 90: Process Control

5 - 9

loop were disconnected.1 We may also refer to GcGaGp as the forward loop transfer function.

Our analyses of SISO systems seldom take into account simultaneous changes in set point andload.2 We denote the two distinct possibilities as

(1) Servo problems: Consider changes in set point with no disturbance (L = 0); C = GspR.

Ideally (meaning unlikely to be encountered in reality), we would like to achieve perfecttracking of set point changes: C = R. Reminder: we are working with deviation variables.

(2) Regulator problems: Consider changes in disturbance with a fixed set point (R = 0); C =GloadL. The goal is to reject disturbances, i.e., keep the system output at its desired value inspite of load changes. Ideally, we would like to have C = 0, i.e., perfect disturbance rejection.

5.2.2 How do we choose the controlled and manipulated variables?

In homework problems, by and large, the variables are stated. Things will be different when we areon the job. Here are some simple ideas on how we may make the decision:

Choice of controlled variables:

• Those that are dictated by the problem. (For instance, temperature of a refrigerator.)

• Those that are not self-regulating.

• Those that may exceed equipment or process constraints.

• Those that may interact with other variables. (For example, reactor temperature may affectproduct yield.)

Choice of manipulated variables:

• Those that have a direct effect on the process, especially the output variable.

• Those that have a large steady state gain. (Good sensitivity)

• Those that have no dead time.

• Those that have no interaction with other control loops.

After we have chosen the controlled and manipulated variables, the remaining ones are taken asload variables in a SISO system.

1 Can an open-loop be still a loop? You may wonder what is an open-loop? Often, we looselyrefer elements or properties of part of a system as open-loop, as opposed to a complete closed-loopsystem. You’ll see more of this language in Chapter 7.

2 In real life, we expect probable simultaneous reference and disturbance inputs. As far asanalysis goes, the mathematics is much simpler if we consider one case at a time. In addition,either case shares the same closed-loop characteristic polynomial. Hence they should also sharethe same stability and dynamic response characteristics. Later when we talk about integral errorcriteria in controller design, there are minor differences, but not sufficient to justify analyzing aproblem with simultaneous reference and load inputs.

Page 91: Process Control

5 - 10

5.2.3 Synthesis of a single-loop feedback system

We now walk through the stirred-tank heater system once again. This time, we’ll take a closerlook at the transfer functions and the units (Fig. 5.5).

Gp

GL

+

Gm

Gc–

+T

Ga

T

T

Stirred-tank heater

K mH

T i

Tsp

(mV) (°C)

(°C)

(°C)

(°C)

(°C) (mV) (mV)

Figure 5.5. Block diagram of a simple SISO closed-loop system with physical units.

◊ Process model

The first item on the agenda is “process identification.” We either derive the transfer functionsof the process based on scientific or engineering principles, or we simply do a step inputexperiment and fit the data to a model. Either way, we need to decide what is the controlledvariable, which is also the measured variable. We then need to decide which should be themanipulated variable. All remaining variables are delegated to become disturbances.

With the stirred-tank heater, we know quite well by now that we want to manipulate theheating coil temperature to control the tank temperature. The process function Gp is defined based

on this decision. In this simple illustration, the inlet temperature is the only disturbance, and theload function is defined accordingly. From Section 2.8.2 and Eq. (2-49b) on page 2-25, we havethe first order process model:

T = GL Ti + Gp TH =KL

τp s + 1 Ti +Kp

τp s + 1 TH (5-13)

From that same section, we know that the steady state gain and the time constant are dependenton the values of flow rate, liquid density, heat capacity, heat transfer coefficient, and so on. For thesake of illustration, we are skipping the heat transfer analysis. Let's presume that we have done ourhomework, substituted in numerical values, and we found Kp = 0.85 °C/°C, and τp = 20 min.

◊ Signal transmitter

Once we know what to control, we need to find a way to measure the quantity. If the transducer(sensor and transmitter packaged together) is placed far downstream or is too well insulated and theresponse is slow, the measurement transfer function may appear as

TmT = Gm =

Kme– tds

τm s + 1 (5-14)

where Km is the measurement gain of the transducer, τm is the time constant of the device, and tdaccounts for transport lag. In a worst case scenario, the sensor may be nonlinear, meaning that themeasurement gain would change with the range of operating conditions.

With temperature, we can use a thermocouple, which typically has a resolution on the order of0.05 mV/°C. (We could always use a RTD for better resolution and response time.) That is toosmall a change in output for most 12-bit analog-digital converters, so we must have an amplifierto boost the signal. This is something we do in a lab, but commercially, we should find off-the-

Page 92: Process Control

5 - 11

shelf transducers with the sensor and amplifier packaged together. Many of them have a scaledoutput of, for example, 0-1 V or 4-20 mA.

For the sake of illustration, let’s presume that the temperature transmitter has a built-inamplifier which allows us to have a measurement gain of Km = 5 mV/°C. Let’s also presume that

there is no transport lag, and the thermocouple response is rapid. The measurement transferfunction in this case is simply

Gm = Km = 5 mV/°C

This so-called measurement gain is really the slope of a calibration curve—an idea that we arefamiliar with. We do a least squares fit if this curve is linear, and find the tangent at the operatingpoint if the curve is nonlinear.

◊ Controller

The amplified signal from the transmitter is sent to the controller, which can be a computer ora little black box. There is not much we can say about the controller function now, except that itis likely a PID controller, or a software application with a similar interface.

A reminder is that a controller has a front panel with physical units such as °C. (Some alsohave relative scales of 0-100%.) So when we “dial” a change in the set point, the controller needsto convert the change into electrical signals. That’s why Km is part of the controller in the block

diagram (Fig. 5.5).

◊ Actuator/control valve

Last but not least, designing a proper actuator can create the most headaches. We have to findan actuator that can drive the range of the manipulated variable. We also want the device to have afaster response than the process. After that, we have to find a way to interface the controller to theactuator. A lot of work is masked by the innocent-looking notation Ga.

In the stirred-tank heater example, we need to add several comments. We need to considersafety. If the system fails, we want to make sure that no more heat is added to the tank. Thus wewant a fail-closed valve—meaning that the valve requires energy (or a positive signal change) toopen it. In other words, the valve gain is positive. We can check the thinking as follows: If thetank temperature drops below the set point, the error increases. With a positive proportional gain,the controller output will increase, hence opening up the valve. If the process plant has a poweroutage, the valve closes and shuts off the steam. But how can the valve shut itself off withoutpower?

This leads to the second comment. One may argue for emergency power or a spring-loadedvalve, but to reduce fire hazards, the industrial nominal practice is to use pneumatic (compressedair driven) valves that are regulated by a signal of 3-15 psi. The electrical signal to and from thecontroller is commonly 4-20 mA. A current signal is less susceptible to noise than voltage signalover longer transmission distances. Hence in a more applied setting, we expect to find a current-to-pressure transducer (I/P) situated between the controller output and the valve actuator.

Finally, we have been sloppy in associating the flow rate of steam with the heating coiltemperature. The proper analysis that includes a heat balance of the heating medium is in theReview Problems. To side step the actual calculations, we have to make a few more assumptionsfor the valve gain to illustrate what we need to do in reality:

(1) Assume that we have the proper amplifier or transducer to interface the controller output withthe valve, i.e., converting electrical information into flow rate.

Page 93: Process Control

5 - 12

(2) We use a valve with linear characteristics such that the flow rate varies linearly with theopening. 1

(3) The change in steam flow rate can be “translated” to changes in heating coil temperature.

When the steady state gains of all three assumptions are lumped together, we may arrive at avalve gain Kv with the units of °C/mV. For this illustration, let's say the valve gain is 0.6 °C/mV

and the time constant is 0.2 min. The actuator controller function would appear as

Gv =Kv

τv s + 1 = 0.6 [°C / mV]0.2 s + 1

The closed-loop characteristic equation of the stirred-tank heater system is hence:

1 + Gc Gv Gp Gm = 1 + Gc

(0.6) (0.85) (5)

(0.2s + 1) (20s + 1)= 0

We will not write out the entire closed-loop function C/R, or in this case, T/Tsp. The main

reason is that our design and analysis will be based on only the characteristic equation. The closed-loop function is only handy to do time domain simulation, which can be computed easily usingMATLAB. Saying that, we do need to analysis the closed-loop transfer function for several simplecases so we have a better theoretical understanding.

5.3 Closed-loop system response

In this section, we will derive the closed-loop transfer functions for a few simple cases. The scopeis limited by how much sense we can make out of the algebra. Nevertheless, the steps that we gothrough are necessary to learn how to set up problems properly. The analysis also helps us tobetter understand why a system may have a faster response, why a system may becomeunderdamped, and when there is an offset. When the algebra is clean enough, we can also makeobservations as to how controller settings may affect the closed-loop system response. The resultsgenerally reaffirm the qualitative statements that we've made concerning the characteristics ofdifferent controllers.

The actual work is rather cook book-like:

(1) With a given problem statement, draw the control loopand derive the closed-loop transfer functions.

(2) Pick either the servo or the regulator problem.Reminder: the characteristic polynomial is the same ineither case.

(3) With the given choices of Gc (P, PI, PD, or PID), Gp, Ga and Gm, plug their transfer

functions into the closed-loop equation. The characteristic polynomial should fall out nicely.

(4) Rearrange the expressions such that we can redefine the parameters as time constants andsteady state gains for the closed-loop system.

All analyses follow the same general outline. What we must accept is that there are no handydandy formulas to plug and chug. We must be competent in deriving the closed-loop transferfunction, steady state gain, and other relevant quantities for each specific problem.

1 In reality, the valve characteristic curve is likely nonlinear and we need to look up the technicalspecification in the manufacturer’s catalog. After that, the valve gain can be calculated from theslope of the characteristic curve at the operating point. See Homework Problem I.33 and the WebSupport.

GpGc–

+R CE

Figure 5.6. Simple unityfeedback system.

Page 94: Process Control

5 - 13

In our examples, we will take Gm = Ga = 1, and use a servo system with L = 0 to highlight the

basic ideas. The algebra tends to be more tractable in this simplified unity feedback system withonly Gc and Gp (Fig. 5.6), and the closed-loop transfer function is

CR

=Gc Gp

1 + Gc Gp(5-15)

which has the closed-loop characteristic equation 1 + GcGp = 0.

✎ Example 5.1: Derive the closed-loop transfer function of a system with proportionalcontrol and a first order process. What is the value of the controlled variable at steady stateafter a unit step change in set point?

In this case, we consider Gc = Kc, and

Gp =Kp

τ p s + 1, and substitution in Eq. (5-15) leads to 1

CR

=Kc Kp

τ p s + 1 + Kc Kp. (E5-1)

We now divide both the numerator and denominator with (1 + KcKp) to obtain

CR =

Kc Kp (1 + Kc Kp)Kc Kp (1 + Kc Kp)

τp (1 + Kc Kp)τp (1 + Kc Kp) s + 1= K

τ s + 1 (E5-2)

where

K =

Kc Kp

1 + Kc Kp and τ =

τ p

1 + Kc Kp

are the closed-loop steady state gain and time constant.

Recall Eq. (5-11), the closed-loop characteristic equation is the denominator of the closed-looptransfer function, and the probable locations of the closed-loop pole are given by

s = – (1 + KcKp)/τ p.

There are two key observations. First, K < 1, meaning that the controlled variable will change inmagnitude less than a given change in set point, the source of offset. The second is that τ < τp,

meaning that the system has a faster response than the open-loop process. The system timeconstant becomes smaller as we increase the proportional gain. This is consistent with theposition of the closed-loop pole, which should "move away" from the origin as Kc increases.

1 You may wonder how transfer functions are related to differential equations. This is a simpleillustration. We'll use y to denote the controlled variable. The first order process function Gp arises

from Eq. (3-6): τp

dydt

+ y = Kp x

In the unity feedback loop with Gc = Kc, we have x = Kc(r – y). Substitution for x in the ODE

leads to τp

dydt

+ y = Kc Kp (r – y) , or τp

dydt

+ (1 + Kc Kp ) y = Kc Kp r

It is obvious that (E5-1) is the Laplace transform of this equation. This same idea can be applied toall other systems, but of course, nobody does that. We all work within the Laplace transformdomain.

Page 95: Process Control

5 - 14

We now take a formal look at the steady state error (offset). Let’s consider a more general stepchange in set point, R = M/s. The eventual change in the controlled variable, via the final valuetheorem, is

c'(∞) = lims → 0

s Kτ s + 1

Ms = MK

The offset is the relative error between the set point and the controlled variable at steady state, i.e.,(r – c∞)/r:

ess = M – MKM

= 1 – K = 1 –Kc Kp

1 + Kc Kp= 1

1 + Kc Kp(E5-3)

We can reduce the offset if we increase the proportional gain.

Let's take another look at the algebra of evaluating the steady state error. The error that we havederived in the example is really the difference between the change in controlled variable and thechange in set point in the block diagram (Fig. 5.6). Thus we can write:

E = R – C = R 1 –

Gc Gp

1 + Gc Gp= R 1

1 + Gc Gp

Now if we have a unit step change R = 1/s, the steady state error via the final value theorem is(recall that e = e’)

ess = lims → 0

s 11 + Gc Gp

1s = 1

1 + lims → 0

Gc Gp= 1

1 + Kerr , where Kerr = lim

s → 0Gc Gp (5-16)

We name Kerr the position error constant.1 For the error to approach zero, Kerr must

approach infinity. In Example 5.1, the error constant and steady state error are

Kerr = lim

s → 0Gc Gp =

Kc Kp

τ p s + 1= Kc Kp , and again ess = 1

1 + Kc Kp(5-17)

✎ Example 5.2: Derive the closed-loop transfer function of a system with proportionalcontrol and a second order overdamped process. If the second order process has timeconstants 2 and 4 min and process gain 1.0 [units], what proportional gain would provide us witha system with damping ratio of 0.7?

In this case, we consider Gc = Kc, and

Gp =Kp

(τ 1 s + 1) (τ 2 s + 1), and substitution in Eq. (5-15)

leads to

CR

=Kc Kp

(τ 1 s + 1) (τ 2 s + 1) + Kc Kp=

Kc Kp (1 + Kc Kp)Kc Kp (1 + Kc Kp)

τ 1 τ 21 + Kc Kp

s2 +τ 1 + τ 2

1 + Kc Kps + 1

(E5-4)

The key is to recognize that the system may exhibit underdamped behavior even though the open-loop process is overdamped. The closed-loop characteristic polynomial can have either real orcomplex roots, depending on our choice of Kc. (This is much easier to see when we work with

1 In many control texts, we also find the derivation of the velocity error constant (using R = s–2)and acceleration error constant (using R = s–3), and a subscript p is used on what we call Kerr here.

Page 96: Process Control

5 - 15

root locus later.) For now, we rewrite the closed-loop function as

CR

= Kτ 2 s2 + 2ζτ s + 1

(E5-4a)

where the closed-loop steady state gain is

K =Kc Kp

1 + Kc Kp , and the system natural time period and

damping ratio are

τ =τ 1 τ 2

1 + Kc Kp , and ζ = 1

2(τ 1 + τ 2 )

τ 1 τ 2 (1 + Kc Kp)(E5-5)

If we substitute ζ = 0.7, Kp = 1, τ1 = 2 and τ2 = 4 in the second expression, we should find theproportional gain Kc to be 1.29.

Lastly, we should see immediately that the system steady state gain in this case is the same as thatin Example 5.1, meaning that this second order system will have the same steady state error.

In terms of controller design, we can take an entirely analytical approach when the system issimple enough. Of course, such circumstances are not common in real life. Furthermore, we oftenhave to compromise between conflicting criteria. For example, we cannot require a system to haveboth a very fast rise time and a very short settling time. If we want to provide a smooth responseto a set point change without excessive overshoot, we cannot also expect a fast and snappy initialresponse. As engineers, it is our job to decide.

In terms of design specification, it is not uncommon to use decay ratio as the design criterion.Repeating Eq. (3-29), the decay ratio DR (or the overshoot OS) is a function of the damping ratio:

DR = (OS)2 =

exp– 2πζ

1 – ζ2 (5-18)

We can derive from this equation

ζ 2 =

(ln DR)2

4π2+ (ln DR)2 (5-19)

If we have a second order system, we can derive an analytical relation for the controller. If we havea proportional controller with a second order process as in Example 5.2, the solution is unique.However, if we have, for example, a PI controller (2 parameters) and a first order process, there areno unique answers since we only have one design equation. We must specify one more designconstraint in order to have a well-posed problem.

✎ Example 5.3: Derive the closed-loop transfer function of a system with proportional-integral control and a first order process. What is the offset in this system?

We substitute Gc = Kcτ I s + 1

τ I s, and

Gp =

Kp

τ p s + 1 in Eq. (5-15), and the closed-loop servo

transfer function is

CR

=Kc Kp (τ I s + 1)

τ I s (τ p s + 1) + Kc Kp (τ I s + 1)=

(τ I s + 1)τ I τ p

Kc Kps2 +

τ I (1 + Kc Kp )Kc Kp

s + 1(E5-6)

Page 97: Process Control

5 - 16

There are two noteworthy items. First, the closed-loop system is now second order. The integralaction adds another order. Second, the system steady state gain is unity and it will not have anoffset. This is a general property of using PI control. (If this is not immediately obvious, try takeR = 1/s and apply the final value theorem. We should find the eventual change in the controlledvariable to be c'(∞) = 1.)

With the expectation that the second order system may exhibit underdamped behavior, we rewritethe closed-loop function as

CR

=(τ I s + 1)

τ 2 s2 + 2ζτ s + 1(E5-6a)

where the system natural time period and damping ratio are

τ =τ I τ p

Kc Kp, and ζ = 1

2(1 + Kc Kp)

τ I

Kc Kp τ p(E5-7)

While we have the analytical results, it is not obvious how choices of integral time constant andproportional gain may affect the closed-loop poles or the system damping ratio. (We may get apartial picture if we consider circumstances under which KcKp » 1.) Again, we’ll defer the analysis

to when we cover root locus. We should find that to be a wonderful tool in assessing howcontroller design may affect system response.

✎ Example 5.4: Derive the closed-loop transfer function of a system with proportional-derivative control and a first order process.

The closed-loop transfer function (5-15) with Gc = Kc(1 + τDs) and

Gp =Kp

τ p s + 1 is

CR

=Kc Kp (τ D s + 1)

(τ p s + 1) + Kc Kp (τ D s + 1)=

Kc Kp (τ D s + 1)(τ p + Kc Kp τ D ) s + 1 + Kc Kp

(E5-8)

The closed-loop system remains first order and the function is that of a lead-lag element. We canrewrite the closed-loop transfer function as

CR

=K (τ D s + 1)

τ s + 1(E5-8a)

where the system steady state gain and time constant are

K =

Kc Kp

1 + Kc Kp and

τ =τ p + Kc Kp τ D

1 + Kc Kp.

The system steady state gain is the same as that with proportional control in Example 5.1. We, ofcourse, expect the same offset with PD control too. The system time constant depends on variousparameters. Again, we defer this analysis to when we discuss root locus.

✎ Example 5.5: Derive the closed-loop transfer function of a system with proportionalcontrol and an integrating process. What is the offset in this system?

Let’s consider Gc = Kc, and Gp = 1/As, and substitution in Eq. (5-15) leads to

CR

=Kc

A s + Kc= 1

(A KcA Kc ) s + 1(E5-9)

Page 98: Process Control

5 - 17

We can see quickly that the system has unity gain and there should be no offset. The point is thatintegral action can be introduced by the process and we do not need PI control under suchcircumstances. We come across processes with integral action in the control of rotating bodies andliquid levels in tanks connected to pumps (Example 3.1, p. 3-4).

✎ Example 5.6: Provide illustrative closed-loop time response simulations. Most texts haveschematic plots to illustrate the general properties of a feedback system. This is something that wecan do ourselves using MATLAB. Simulate the observations that we have made in previousexamples. Use a unity feedback system.

Consider Example 5.3 again and let's pick τp to be 5 min, Kp be 0.8 [unit]. Instead of using the

equation that we derived in Example 5.3, we can use the following statements in MATLAB togenerate a simulation for the case of a unit step change in the set point. This approach is muchfaster than using Simulink.

kc=1; %The two tuning parameters to be varied

taui=10;

% The following statements are best saved in an M-file

Gc=tf(kc*[taui 1],[taui 0]); % The PI controller function

Gp=tf(0.8,[5 1]); % The process function

Gcl=feedback(Gc*Gp,1) % Unity closed loop function GcGp/(1 + GcGp)

step(Gcl); % Personalize your own plotting

% and put a hold for additional curves

In these statements, we have used feedback() to generate the closed-loop function C/R. Theunity feedback loop is indicated by the “1” in the function argument. Try first with Kc = 1, and τI

with values 10, 1, and 0.1. Next, select τI = 0.1, and repeat with Kc = 0.1, 1, 5, and 10. In both

cases, the results should follow the qualitative trends that we anticipate. If we repeat the calculationwith a larger integral time τI = 1, and use Kc = 0.1, 1, 5, 10, and 50, you may find the results to

be rather unexpected. However, we do not have enough theory to explain them now. Keep theresults in mind and hopefully this is a motivation to explore the later chapters.

We could also modify the M-file by changing the PI controller to a PD or PID controller toobserve the effects of changing the derivative time constant. (Help is in MATLAB Session 5.) We'llunderstand the features of these dynamic simulations better when we cover later chapters. For now,the simulations should give us a qualitative feel on the characteristics of a PID controller and(hopefully) also the feeling that we need a better way to select controller settings.

✎ Example 5.7: We have todesign a servo-controller for amixing system. A blue dye formaking denim is injected into astream of water. The injected dye isblended into the pipe flow with theaid of in situ static mixers. Aphotodetector downstream is used tomonitor the dye concentration. Theanalog output of the detector is

CT CC

Q

Dye injectionMixers

L

Figure E5.7a

Page 99: Process Control

5 - 18

transmitted to a controller, which in turn sends a signal to the dye injection regulating valve. Indesigning this mixing system, we have to be careful with the location of the photodetector. It hasto be downstream enough to ensure a good reading of the mixed stream. However, if thephotodetector is too far downstream, the larger transport lag can destabilize the system. The water flow rate in the pipe is 2 L/s and the pipe has a cross-sectional area of 5 cm2.The regulating valve is especially designed so that the dye dosage in mL/s varies linearly with thevalve position. The regulating valve is thus first order with a time constant of 0.2 s and a steadystate gain of 0.6 mL.s–1mV–1. The mixing process itself can also be modeled as first order with asteady state gain of 0.8 ppm.s.mL–1. A previous experiment indicated that a step change in theregulating valve resulted in a response in dye concentration that is 99.3% complete in 20s. Themagic photodetector is extremely fast and the response is linear over a large concentration range.The manufacturer provided the calibration as

v = 0.3 + 2.6 [dye],

where the voltage output is in mV and the concentration of the dye is in ppm.

This is a problem that we have to revisit many times in later chapters. For now, draw theblock diagram of the dye control system and provide the necessary transfer functions. Identify unitsin the diagram and any possible disturbances to the system. In addition, we do not know where toput the photodetector at this point. Let's just presume that the photodetector is placed 290 cmdownstream.

The block diagram is shown in Fig. E5.7b, where the dye concentration is denoted by C andthe set point by R. The flow rate is one probable source of disturbance.

Gp

GL

Gm

Gc–

+GaKm

mV

ppm

mL/s

Q

mV

mV

ppm

R C

L/s

Figure E5.7b

Based on the information given, the transfer functions are

Gp =

Kp

τp s + 1 ,

Gv =Kv

τv s + 1 , Gm = Km e– td s ,

and we do not know the steady state gain of the load function GL. The values of various parameters

are Kp = 0.8 ppm.s.mL–1, τp ≈ 20/5 = 4 s, Kv = 0.6 mL.s–1mV–1, τv = 0.2 s, and Km = 2.6mV/ppm. The average fluid velocity is 2,000/5 = 400 cm/s. The transport lag is hence td =290/400 = 0.725 s. We presumably will use a PID transfer function for the controller Gc. We'll

continue with this problem later.

Page 100: Process Control

5 - 19

5.4 Selection and action of controllers

We need to add a few words on the actionof controllers. The point to make is thatwe have to do a bit of physical reasoningwhen we design a real system. We alsohave to factor in safety and determine whatthe controller and actuator may do if thereis a system failure—a task that is oftenomitted in textbook problems.

A standard textbook system has acontroller with a positive proportionalgain. All the other blocks such as the process and actuator have positive steady state gains as well.However, this is not always the case. We will use liquid level control to illustrate the idea. KeepFig. 5.7 in mind in the discussion below.

Say we want to control the liquid level in a tank by manipulating the inlet flow rate (Fig. 5.8).If the liquid level drops below the set point, the controller will increase its output signal to openup the inlet valve and increase liquid flow. The changes in controlled variable and controller outputare in opposite directions. This is a consequence of how the error is defined in a negative feedbacksystem.

In this particular case, we use an air-to-open valve, meaning that we need to increasethe signal to open up the valve. That is, thevalve has a positive steady state gain (+Kv).

A pneumatic air-to-open valve also meansthat energy is required to keep it open. Undera system failure where power is lost, thevalve closes and prevents flooding the tank.We refer to the valve here as a fail-closedvalve, which is the preferred safety design inFig. 5.8.

The opposite scenario is to use an air-to-close valve which has a negative steady stategain (–Kv); an increase in signal will close

the valve.1 Hence this is a fail-open valve,which for safety reasons, is not a wise choicehere. Nevertheless, if we insist on installingthis air-to-close valve, we will need a controllerwith a negative gain (–Kc). Now if the liquidlevel drops, the controller output signal willalso decrease, opening up the air-to-closevalve.

Let’s take a look at the logic when wecontrol the liquid level by manipulating theoutlet valve (Fig. 5.9). In this case the processgain Kp associated with the outlet flow is

negative. If the liquid level drops below the set

1 This point can easily get lost in the long explanation: An air-to-open valve has a positive gainand is failed-closed. An air-to-close valve has a negative gain (–Kv) and is failed-open.

LT LC

q

h

q

p

R

i

hs

Figure 5.8. Manipulate liquid level with aninlet valve.

LT LC

q

h

q

p

i

h s

R

Figure 5.9. Manipulate liquid level with anoutlet valve. The process gain is negative inthis case.

+R CEKc KpKv

Figure 5.7. Simple system used in the discussion ofcontroller actions. Depending on the situation, Kc, Kv,and Kp can be either positive or negative.

Page 101: Process Control

5 - 20

point, we now want to reduce the outlet flow rate by closing up the valve. Again, there are twopossible scenarios.

If we use a controller with positive gain (+Kc), the controller output increases as the liquidlevel drops. We can only reduce the flow if we use an air-to-close valve (–Kv). In the case of a

power outage, the valve will stay open. This fail-open valve can drain the entire tank, an event thatwe may not want to happen.

On the other hand, we can choose an air-to-open valve (+Kv) at the outlet location. Now the

only way to reduce the flow rate as the liquid level drops is to “switch” to a controller with anegative gain (–Kc). With –Kc as the proportional gain, a drop in liquid level will lead to a

decrease in controller output. In this case, we have a fail-closed valve, which is desirable if we donot want perturbations to propagate downstream.

There is no question that the terminology is confusing. Do not let it confuse you. The beststrategy is to “walk” through the sign (action) of every single steady state gain of the blockdiagram, including the process and the sensor, and determine what are the probable and logicalsigns (actions) of the controller and actuator. As a consistency check, we should note that withinthe feedback loop, there should only be one net negative sign. There is no getting away from doingsome thinking of your own.

5.4.1 A few comments on the choice of controllers

In chemical processes, the most common types of controlled variables are liquid level, flow rate,temperature, pressure, and sometimes concentration. Here are some very general ideas. To fullyappreciate these tidbits, we also need to know something about the actual hardware—actuators orcontrol elements—which we find in handbooks or equipment manuals.

Flow control

PI controllers are most common. They eliminate offsets and have acceptable speeds of responsein most industrial settings. We usually pick a low to intermediate gain (wide proportional band,PB ≈ 150) to reduce the effect of noisy signals (from flow turbulence; also why we do not use Dcontrol). We also use a low reset time (≈ 0.1 min/repeat; i.e. relatively large I action) to get fastset-point tracking.

Level control

We usually only need to keep the liquid level within a certain range around the desired set-point. Speed is not a great concern. Recall that depending on how we implement the outlet pump,we can have a process with integrating action itself. Also, if the outlet flow rate is used as themanipulated variable, the controller setting must be conservative to avoid sudden surges in the exitflow rate. Thus a simple P controller is usually adequate, presuming that we have nocomplications such as boiling or vaporization. Make sure you check whether the valve that you areusing (or buying) is air-to-open or air-to-close.

Pressure control

The control of pressure depends on the situation and cannot be generalized. A couple ofexamples are:

For the vapor pressure in a flash drum (and thus also vapor flow rate), we need a fast and tightresponse loop. We need at least a PI controller (c.f. the flow control).

For the top of a distillation column, we usually control the pressure indirectly via the

Page 102: Process Control

5 - 21

condensation of vapor in the condenser, which in turn is controlled by the amount of coolingwater. Heat transfer through a heat exchanger has very slow dynamics. Thus we cannot use PIcontrol. We either use P control, or when response time is important, use PID.

Temperature control

Heat transfer lags can be significant and the nature of the problem can be quite different invarious processes. If there is a sensor lag, it is mostly due to heat transfer between the sensor andthe fluid medium. (Thermocouples, depending on how we make them, can have very fast responsetimes.) The overall response is sluggish and PI control will make it more so. It is unlikely we canlive with any offsets. PID control is the appropriate choice.

Concentration control

The strategy depends on the situation and how we measure the concentration. If we can rely onpH or absorbance (UV, visible, or Infrared spectrometer), the sensor response time can bereasonably fast, and we can make our decision based on the actual process dynamics. Most likelywe would be thinking along the lines of PI or PID controllers. If we can only use gaschromatography (GC) or other slow analytical methods to measure concentration, we mustconsider discrete data sampling control. Indeed, prevalent time delay makes chemical processcontrol unique and, in a sense, more difficult than many mechanical or electrical systems.

In terms of the situation, if we use a PI controller on a slow multi-capacity process, theresulting system response will be even more sluggish. We should use PID control to increase thespeed of the closed-loop response (being able to use a higher proportional gain) while maintainingstability and robustness. This comment applies to other cases such as temperature control as well.

❐ Review Problems

1. An alternate and actually verycommon way of drawing afeedback system block diagramis shown in Fig. R5.1. How is

G*L related to GL as in Fig. 5.4?

2. Try to obtain the closed-looptransfer functions in Eq. (5-11)via observation, i.e., withoutusing the algebraic steps in thetext.

3. Consider the liquid flow rate controller in Fig R5.3.We want to keep the flow rate q constant no matterhow the upstream pressure fluctuates. Consider ifthe upstream flow Q drops below the steady statevalue. How would you choose the regulating valvewhen you have (a) a positive and (b) a negativeproportional gain?

4. What is the overshoot and decay ratio if we pick ζ =0.707? If the decay ratio is 1/4, what is the damping ratio?

5. Refer back to Example 5.1. What is the offset if we consider the regulating problem (R = 0, L= 1/s)?

p

L

m

c–

+am

R C

L

*

G

G

G

G GK

Figure R5.1

FT

FC

q

P

Q

Figure R5.3

Page 103: Process Control

5 - 22

6. When we developed the model for the stirred tank heater, we ignored the dynamics of theheating coil. Provide a slightly more realistic model which takes into consideration the flowrate of condensing steam.

7. Do the time domain simulations with MATLAB in Example 5.6. Try also with a PD or PIDcontroller.

Hints:

1. G*L = GL/Gp.

2. The Gsp function is obvious. To obtain the load function Gload, set R = 0, and try to visualize

the block diagram such that it is unity in the forward path and all the functions are in thefeedback loop.

4. OS = 4.32% and DR = 1.87 x 10–3. When DR = 0.25, ζ = 0.215.

5. Now, C =GL

1 + Gc GpL , R = 0, and thus E = R – C = 0 –

GL

1 + Gc GpL . With L = 1/s and the

final value theorem, e(∞) = – lims → 0

GL

1 + Gc Gp. Substitution of the first order functions and a

proportional controller gives e(∞) = –KL

1 + Kc Kp which becomes smaller if we increase Kc.

6. How we model the stirred tank heater is subject to the actual situation. At a slightly morerealistic level, we may assume that heat is provided by condensing steam and that the coilmetal is at the same temperature as the condensing steam. The heat balance and the Laplacetransform of the tank remains identical to Chapter 2:

ρCpVdTdt

= ρCpQ (Ti – T) + UA (TH – T) , and

T =Kd

τp s + 1Ti +

Kp

τp s + 1TH

We also need a heat balance for the heating coil, which can be written as

MHCH

dTH

dt= ms λ – UA (TH – T)

where TH is the temperature, and MH and CH are the mass and heat capacity of the heatingcoil. The steam mass flow rate is ms, and λ is the heat of condensation. We should obtain the

Laplace transform of the form

TH =

1τH s + 1

T +KS

τH s + 1MS

You should be able to fill in the gaps and finish the rest of the work in deriving the transferfunctions. In this case, we may want to use the steam mass flow rate as the manipulatedvariable. The transfer function relating its effect on T will be second order, and thecharacteristic polynomial does not have the clean form in simpler textbook examples.

7. The basic statements are provided already in the example. For more details, see our WebSupport for the MATLAB statements and plots.

Page 104: Process Control

P.C. Chau © 2001

❖ 6. Design and Tuning of Single-Loop Control Systems

We will go through a whole bundle of tuning methods. We only need to "pick" three numbers for aPID controller, but this is one of the most confusing parts of learning control. Different tuningtechniques give similar but not identical results. There are no “best” or “absolutely correct”answers. The methods all have pros and cons, and working together, they complement each other.We need to make proper selection and sound judgment—very true to the act (and art) of design.

What are we up to?• Tune a controller with empirical relations

• Tune a controller with internal model control relations

6.1 Tuning controllers with empirical relations

Let’s presume that we have selected the valves, transducers and even installed a controller. We nowneed to determine the controller settings—a practice which we call tuning a controller. Trial-and-error tuning can be extremely time consuming (and dumb!), to the extent that it may not be done.A large distillation column can take hours to reach steady state. A chemical reactor may not reachsteady state at all if you have a reactor "runaway." Some systems are unstable at high and lowfeedback gains; they are stable only in some intermediate range. These are reasons why we have togo through all the theories to learn how to design and tune a controller with well educated (or sowe hope) guesses.

Empirical tuning roughly involves doing either an open-loop or a closed-loop experiment, andfitting the response to a model. The controller gains are calculated on the basis of this fittedfunction and some empirical relations. When we use empirical tuning relations, we cannot dictatesystem dynamic response specifications. The controller settings are seldom optimal and most oftenrequire field tuning after installation to meet more precise dynamic response specifications.Empirical tuning may not be appealing from a theoretical viewpoint, but it gives us a quick-and-dirty starting point. Two remarks before we begin.

• Most empirical tuning relations that we use here are based on open-loop data fitted to a firstorder with dead time transfer function. This feature is unique to process engineering wheremost units are self-regulating. The dead time is either an approximation of multi-stageprocesses or a result of transport lag in the measurement. With large uncertainties and the needfor field tuning, models more elaborate than the first order with dead time function are usuallynot warranted with empirical tuning.

• Some empirical tuning relations, such as Cohen and Coon, are developed to achieve a one-quarter decay ratio response in handling disturbances. When we apply the settings of theserelations to a servo problem, it tends to be very oscillatory and is not what one considers asslightly underdamped.1 The controller design depends on the specific problem at hand. Wecertainly need to know how to tune a controller after using empirical tuning relations to selectthe initial settings.2

1 If we assume that an oscillatory system response can be fitted to a second order underdampedfunction. With Eq. (3-29), we can calculate that with a decay ratio of 0.25, the damping ratio ζ is0.215, and the maximum percent overshoot is 50%, which is not insignificant. (These valuescame from Revew Problem 4 back in Chapter 5.)

2 By and large, a quarter decay ratio response is acceptable for disturbances but not desirable forset point changes. Theoretically, we can pick any decay ratio of our liking. Recall Section 2.7 (p.2-17) that the position of the closed-loop pole lies on a line governed by θ = cos–1ζ. In the nextchapter, we will locate the pole position on a root locus plot based on a given damping ratio.

Page 105: Process Control

6 - 2

6.1.1 Controller settings based on process reaction curve

To make use of empirical tuning relations, one approach is to obtain the so-called processreaction curve. We disable the controller and introduce a step change to the actuator. We thenmeasure the open-loop step response. This practice can simply be called an open-loopstep test. Although we disconnect the controller in the schematic diagram (Fig. 6.1), weusually only need to turn the controller to the “manual” mode in reality. As shown in the blockdiagram, what we measure is a lumped response, representing the dynamics of the blocks Ga,Gp, and Gm. We denote the lumped function as GPRC, the process reaction curve function:

GPRC =

Cm

P= Ga Gp Gm (6-1)

From the perspective of doing the experiment, we need the actuator to effect a change in themanipulated variable and the sensor to measure the response.

The measurement of GPRC is how we may design a system if we know little about our processand are incapable of constructing a model (What excuse!). Even if we know what the functions Gaand Gm should be, we do not need them since the controller empirical tuning relations weredeveloped for the lumped function GPRC. On the other hand, if we know precisely what thefunctions Ga, Gp and Gm are, we may use them to derive GPRC as a reduced-order approximation ofthe product of GaGpGm.

y

ttd

τ

K

0

Figure 6.2. Illustration of fitting Eq. (6-2, solid curve) to open-loop step test datarepresentative of self-regulating and multi-capacity processes (dotted curve). The timeconstant estimation shown here is based on the initial slope and a visual estimation of deadtime. The Ziegler-Nichols tuning relation (Table 6.1) also uses the slope through the inflectionpoint of the data (not shown). Alternative estimation methods are provided on our WebSupport.

Gp

GL

+

G

G c–

+R CGa

Step input P =

CMeasure C m

Process

KR

L = 0

Ms

m

m

m

Figure 6.1. Block diagram illustration of an open-loop step test.

Page 106: Process Control

6 - 3

The real time data (the process reaction curve) in most processing unit operations take the formof a sigmoidal curve, which is fitted to a first order with dead time function (Fig. 6.2):1

GPRC =

Cm

P≈ Ke–td s

τ s + 1(6-2)

One reason why this approximation works is that process unit operations are generally open-loopstable, and many are multi-capacity in nature. Reminder: Underdamped response of the system isdue to the controller, which is taken out in the open-loop step test.

Using the first order with dead time function, we can go ahead and determine the controllersettings with empirical tuning relations. The most common ones are the Ziegler-Nicholsrelations. In process unit operation applications, we can also use the Cohen and Coon or theCiancone and Marlin relations. These relations are listed in the Table of Tuning Relations(Table 6.1).

6.1.2 Minimum error integral criteria

The open-loop test response fitted to a first order with dead time function GPRC can be applied

to other tuning relations. One such possibility is a set of relations derived from the minimizationof error integrals. Here, we just provide the basic idea behind the use of error integrals.

To derive the tuning equations, we would use the theoretical time-domain closed-loop systemresponse as opposed to a single quantity, such as the decay ratio. The time-domain solution isdependent on the type of controller and the nature of input (set point or disturbance changes) and,in our case, a “process” function that is first order with dead time. We can also calculate theerror—the difference between the set point and the controlled variable. We then find controllersettings which may minimize the error over time (the error integral), using for instance, Lagrangemultipliers as in introductory calculus. Of course, we are not doing the work; the actual analysis isbetter left for a course in optimal control.

There are different ways to define the error function to be minimized. A few possibilities are asfollows:

(1) Integral of the square error (ISE)

ISE = e'(t) 2 dt

0

∞(6-3)

The ISE magnifies large errors—squaring a small number (< 1) makes it even smaller. Thusminimization of this integral should help to suppress large, initial errors. The resultingcontroller setting tends to have a high proportional gain and the system is very underdamped.

(2) Integral of the absolute error (IAE)

IAE = e'(t) dt

0

∞(6-4)

The IAE simply integrates the absolute value and puts equal weight to large and small errors.

(3) Integral of time-weighted absolute error (ITAE)

1 The first order function with dead time is only appropriate for self-regulating and multi-capacityprocesses. In other controller design methods, we should choose different functions to fit the open-loop test response.

Page 107: Process Control

6 - 4

ITAE = t e'(t) dt

0

∞(6-5)

The time weighting function puts a heavy penalty on errors that persist for long periods oftime. This weighting function also helps to derive controller settings which allow for lowsettling times.

Before we move on, a few comments and reminders:

• As far as we are concerned, using the error integral criteria is just another empirical method.We are simply using the results of minimization obtained by other people, not to mentionthat the first order with dead time function is from an open-loop test.

• The controller setting is different depending on which error integral we minimize. Set pointand disturbance inputs have different differential equations, and since the optimizationcalculation depends on the time-domain solution, the result will depend on the type of input.The closed-loop poles are the same, but the zeros, which affect the time-independentcoefficients, are not.

• The time integral is from t = 0 to t = ∞, and we can only minimize it if it is bounded. In otherwords, we cannot minimize the integral if there is a steady state error. Only PI and PIDcontrollers are applicable to this design method.1

• Theoretically, we can minimize the integral using other criteria. On the whole, the controllersettings based on minimizing ITAE provide the most conservative controller design, and arehighly recommended. This is the only set of tuning relations included in Table 6.1.

6.1.3 Ziegler-Nichols ultimate-cycle method

This empirical method is based on closed-loop testing (also called on-line tuning) of processeswhich are inherently stable, but where the system may become unstable. We use only proportionalcontrol in the experiment. If it is not possible to disable the integral and derivative control modes,we set the integral time to its maximum value and the derivative time to its minimum. Theproportional gain is slowly increased until the system begins to exhibit sustained oscillations witha given small step set point or load change. The proportional gain and period of oscillation at thispoint are the ultimate gain, Kcu, and ultimate period, Tu. These two quantities are used in a

set of empirical tuning relations developed by Ziegler and Nichols—again listed in Table 6.1.

Two more comments:

• A preview: We can derive the ultimate gain and ultimate period (or frequency) withstability analyses. In Chapter 7, we use the substitution s = jω in the closed-loopcharacteristic equation. In Chapter 8, we make use of what is called the Nyquiststability criterion and Bode plots.

• One may question the meaning of “sustained oscillations.” We may gather that theultimate gain and ultimate period are associated with marginal stability—the instancewhen the system is just about to become unstable. Of course, we never want to pushthat far in real life. With large uncertainties involved in empirical tuning and fieldtuning, it is not necessary to have accurate measurements of Kcu and Tu. When we do

an experiment, just increase the proportional gain until we achieve a fairlyunderdamped response.

1 If you come across a proportional controller here, it is only possible if the derivation hasignored the steady state error, or shifted the reference such that the so-called offset is zero.

Page 108: Process Control

6 - 5

✎ Example 5.7A: What would be the PID controller settings for the dye mixing problem inExample 5.7 (p. 5-17)?

Based on what we have obtained in Example 5.7, if we did an open-loop experiment as suggestedin Eq. (6-1), our step response would fit well to the function:

GPRC = Ga Gp Gm =(0.8) (0.6) (2.6) e– 0.725 s

(4s + 1) (0.2s + 1)

However, to use the empirical tuning relations, we need to fit the data to a first order function withdead time. Thus at this stage, we probably would have obtained the approximation:

GPRC ≈ 1.25 e– 0.9 s

4s + 1

Here, we assume that the data fitting allows us to recover the time constant of the dominant polereasonably well, and the dead time is roughly 0.9 s. We are not adding exactly 0.2 to 0.725 as away to emphasize that in reality, we would be doing data fitting and the result will vary. Howgood an approximation is depends very much on the relative differences in the time constants.(Try with MATLAB simulation to see how good the approximation is. For the numbers chosen inthis example, it is easy to obtain a good approximation.)

Now, with Table 6.1,1 we can calculate the following PID controller settings:

Kc τI τD

Cohen-Coon 4.9 2.0 0.31Ziegler-Nichols 4.3 1.8 0.45ITAE (Set point) 2.8 3.1 0.31Ciancone-Marlin (Set point) 1.2 4.4 0.07

All tuning relations provide different results. Generally, the Cohen and Coon relation has thelargest proportional gain and the dynamic response tends to be the most underdamped. TheCiancone-Marlin relation provides the most conservative setting, and it uses a very smallderivative time constant and a relatively large integral time constant. In a way, their correlationreflects a common industrial preference for PI controllers.

We'll see how they compare in time response simulations when we come back to this problemlater in Example 5.7C. A point to be made is that empirical tuning is a very imprecise science.There is no reason to worry about the third significant figure in your tuning parameters. Thecalculation only serves to provide us with an initial setting with which we begin to do field orcomputational tuning.

1 Really calculated with our M-file recipe.m, which can be found on our Web Support.

Page 109: Process Control

6 - 6

While the calculations in the last example may appear as simple plug-and-chug, we should takea closer look at the tuning relations. The Cohen and Coon equations for the proportional gaintaken from Table 6.1 are:

P:

KcK =τtd

+13 (6-6)

PI:

KcK = 0.9τtd

+1

12 (6-7a)

PID:

KcK = 43

τtd

+14 (6-8a)

The choice of the proportional gain is affected by two quantities: the product KcK, and the ratio

of dead time to time constant, td/τ. It may not be obvious why the product KcK is important now,

but we shall see how it arises from direct synthesis in the next section and appreciate how it helpsdetermine system stability in Chapter 8.

Under circumstances where the dead time is relatively small, only the first term on the right isimportant in the three tuning equations. When dead time becomes larger (or τ/td smaller), we need

to decrease the proportional gain, and this is how the tuning relations are constructed. When we addintegral control, we need to decrease Kc. Indeed, in Eq. (6-7a), the τ/td term is decreased by 10%,

and the constant term is reduced to 1/12. With the implementation of PID control, we can afford tohave a larger Kc. This is reflected in (6-8a). We can make similar observations with the Ziegler-

Nichols relations in Table 6.1. Furthermore, we may also see in Table 6.1 that if the dead timeincreases, we should raise the integral time constant.

Page 110: Process Control

6 - 7

Table 6.1. Table of tuning relations 1

A. Tuning relations based on open-loop testing and response fitted to a first order with dead time function

GPRC =Ke–td s

τs + 1

Controller Cohen-Coon Ziegler-Nichols

P KcK =

τtd

+13 (6-6)

KcK =τtd

(6-9)

PI KcK = 0.9

τtd

+1

12 (6-7a)

τ I = td

30 + 3 td τtd τ9 + 20 td τtd τ

(6-7b)

Κ cK = 0.9τtd

(6-10a)

τ I = 3.3 td (6-10b)

PID KcK = 4

3

τtd

+14 (6-8a)

τ I = td

32 + 6 td τtd τ13 + 8 td τtd τ

(6-8b)

τD = td4

11 + 2 td τtd τ(6-8c)

Κ cK = 1.2τtd

(6-11a)

τ I = 2 td (6-11b)

τ D = 0.5 td (6-11c)

Minimum ITAE criterion For load change:

Κ c =

a1

Kτtd

b1

, τ I =τa2

td

τ

b2

and τ D = a3 τtd

τ

b3

(6-12)

Controller a1 b1 a2 b2 a3 b3

PI 0.859 0.977 0.674 0.680 – –

PID 1.357 0.947 0.842 0.738 0.381 0.995

1 All formulas in Table 6.1, and the PID settings in Table 6.2 later, are implemented in the M-file recipe.m, available from our Web Support. The Ciancone and Marlin tuning relations aregraphical, and we have omitted them from the tables. The correlation plots, explanations, and theinterpolation calculations are provided by our M-file ciancone.m, which is also used by recipe.m.

Page 111: Process Control

6 - 8

For set point change:

Kc =

a1

Kτtd

b1

, τ I =τ

a2 – b2 (td/τ)and τ D = a3 τ

td

τ

b3

(6-13)

Controller a1 b1 a2 b2 a3 b3

PI 0.586 0.916 1.03 0.165 – –

PID 0.965 0.855 0.796 0.147 0.308 0.929

B. Tuning relations based on closed-loop testing and the Ziegler-Nichols ultimate-gain (cycle) method with givenultimate proportional gain Kcu and ultimate period Tu.

Ziegler-Nichols ultimate-gain method Controller

P Kc = 0.5 Kcu (6-14)

PI Kc = 0.455 Kcu (6-15a)

τI = 0.833 Tu (6-15b)

PID Quarter decay Just a bit of overshoot No overshoot

Kc = 0.6 Kcu (6-16a)

τI = 0.5 Tu (6-16b)

τD = 0.125 Tu (6-16c)

Kc = 0.33 Kcu (6-17a)

τI = 0.5 Tu (6-17b)

τD = 0.333 Tu (6-17c)

Kc = 0.2 Kcu (6-18a)

τI = 0.5 Tu (6-18b)

τD = 0.333 Tu (6-18c)

Page 112: Process Control

6 - 9

6.2 Direct synthesis and internal model control

We now apply a different philosophy to controller design. Up until now, we have had apreconceived idea of what a controller should be, and we tune it until we have the desired systemresponse. On the other hand, we can be more proactive: we define what our desired closed-loopresponse should be and design the controller accordingly. The resulting controller is not necessarilya PID controller. This is acceptable with computer based controllers since we are not restricted tooff-the-shelf hardware.

In this chapter, however, our objective is more restricted. We will purposely choose simplecases and make simplifying assumptions such that the results are PID controllers. We will seehow the method helps us select controller gains based on process parameters (i.e., the processmodel). The method provides us with a more rational controller design than the empirical tuningrelations. Since the result depends on the process model, this method is what we considered amodel-based design.

✑ 6.2.1 Direct synthesis

We consider a servo problem (i.e., L = 0), and set Gm = Ga = 1. The closed-loop function is the

familiar

CR

=Gc Gp

1 + Gc Gp(6-19)

which we now rearrange as

Gc =1

Gp

C RC R1 – C RC R

(6-20)

The implication is that if we define our desired system response C/R, we can derive the appropriatecontroller function for a specific process function Gp.

A couple of quick observations: First, Gc is the reciprocal of Gp. The poles of Gp are related tothe zeros of Gc and vice versa—this is the basis of the so-called pole-zero cancellation.1 Second,

the choice of C/R is not entirely arbitrary; it must satisfy the closed-loop characteristic equation:

1 + Gc Gp = 1 +C RC R

1 – C RC R= 0 (6-21)

From Eq. (6-20), it is immediately clear that we cannot have an ideal servo response where C/R =1, which would require an infinite controller gain. Now Eq. (6-21) indicates that C/R cannot besome constant either. To satisfy (6-21), the closed-loop response C/R must be some function of s,meaning that the system cannot respond instantaneously and must have some finite response time.

Let’s select a more realistic system response, say, a simple first-order function with unitysteady state gain

C

R=

1

τ c s + 1 (6-22)

1 The controller function will take on a positive pole if the process function has a positive zero.It is not desirable to have an inherently unstable element in our control loop. This is an issuewhich internal model control will address.

Page 113: Process Control

6 - 10

where τc is the system time constant, a design parameter that we specify. The unity gain means

that we should eliminate offset in the system. Substitution of Eq. (6-22) in (6-20) leads to thecontroller function:

Gc =

1Gp

1τ c

s(6-23)

The closed-loop characteristic equation, corresponding to Eq. (6-21), is

1 +1

τ c s= 0 (6-24)

which really is 1 + τcs = 0 as dictated by (6-22). The closed-loop pole is at s = –1/τc. This result

is true no matter what Gp is—as long as we can physically build or program the controller on acomputer. Since the system time constant τc is our design parameter, it appears that direct

synthesis magically allows us to select whatever response time we want. Of course this cannot bethe case in reality. There are physical limitations such as saturation.

✎ Example 6.1: Derive the controller function for a system with a first order process and asystem response dictated by Eq. (6-22).

The process transfer function is

Gp =Kp

τ ps + 1

, and the controller function according to Eq. (6-23)

is

Gc =

τ ps + 1

Kp

1τ c

s=

τ p

Kp τ c

1 +1

τ ps

(E6-1)

which is obviously a PI controller with Kc = τp/Kpτc, and τI = τp. Note that the proportional gainis inversely proportional to the process gain. Specification of a small system time constant τc also

leads to a large proportional gain.

A reminder: the controller settings Kc and τI are governed by the process parameters and the systemresponse, which we choose. The one and only tuning parameter is the system response timeconstant τc.

✎ Example 6.2: Derive the controller function for a system with a second orderoverdamped process and system response as dictated by Eq. (6-22).

The process transfer function is

Gp =Kp

(τ1 s + 1) (τ2 s + 1), and the controller function according to

Eq. (6-23) is

Gc =

(τ1 s + 1) (τ2 s + 1)

Kp

1τc s

.

We may see that this is a PID controller. Nevertheless, there are two ways to manipulate thefunction. One is to expand the terms in the numerator and factor out (τ1 + τ2) to obtain

Gc =

(τ1 + τ2 )

Kp τc1 +

1(τ1 + τ2 )

1s

+τ1 τ2

τ1 + τ2s (E6-2)

Page 114: Process Control

6 - 11

The proportional gain, integral time and derivative time constants are provided by the respectiveterms in the transfer function. If you have trouble spotting them, they are summarized in Table6.2.

The second approach is to consider the controller function as a series-PID such that we write

Gc =

τ1

Kpτc1 +

1τ1 s

τ2 s + 1 , with τ1 > τ2, (E6-3)

We can modify the derivative term to be the “real” derivative action as written in Eqs. (5-9a and b)on page 5-7.

Based on experience that the derivative time constant should be smaller than the integral timeconstant, we should pick the larger time constant as the integral time constant. Thus we select τ1

to be the integral time constant and τ2 the derivative time constant. In the limit τ1 » τ2, both

arrangements (E6-2 and 3) of the controller function are the same.

When dead time is inherent in a process, it is difficult to avoid dead time in the system. Thuswe define the system response as

CR

=e–θs

τ cs + 1

(6-25)

where θ is the dead time in the system. The controller function, via Eq. (6-20), is hence

Gc =

1Gp

e–θs

τ cs + 1 – e–θs

≈ 1Gp

e–θs

(τ c + θ)s(6-26)

To arrive at the last term, we have used a simple Taylor expansion (e–θs ≈ 1 – θs) of theexponential term. This is purposely done to simplify the algebra as shown in the next example.(We could have used the Padé approximation in Eq. (6-26), but the result will not be the simple PIcontroller.)

✎ Example 6.3: Derive the controller function for a system with a first order process withdead time and system response as dictated by Eq. (6-25).

The process transfer function is

Gp =Kp e–td s

τ ps + 1

. To apply Eq. (6-26), we make an assumption

about the dead time, that θ = td. The result is a PI controller:

Gc =

τ p

Kp τ c + θ1 +

1τ p

s(E6-4)

Even though this result is based on what we say is a process function, we could apply (E6-4) as ifthe derivation is for the first order with dead time function GPRC obtained from an open-loop step

test.

This is a question that invariably arises: what is a reasonable choice of the system timeconstant τc? Various sources in the literature have different recommendations. For example, one

Page 115: Process Control

6 - 12

guideline suggests that we need to ensure τc > 1.7θ for a PI controller, and τc > 0.25θ for a PID

controller. A reasonably conservative choice has been programmed into the M-file reciepe.mavailable from our Web Support. The important reminder is that we should have a habit ofchecking the τc setting with time response simulation and tuning analysis.

In contrast to Eq. (6-22), we can dictate a second order underdamped system response:

CR

= 1τ2s2 + 2ζτs + 1

(6-27)

where τ and ζ are the system natural period and damping ratio yet to be determined. Substitution of(6-27) in Eq. (6-20) leads to

Gc = 1Gp

1τ2s2 + 2ζτs (6-28)

which is a slightly more complicated form than (6-23). Again, with simplified cases, we can arriveat PID type controllers.

✎ Example 6.4: Derive the controller function for a system with a second orderoverdamped process but an underdamped system response as dictated by Eq. (6-27).

The process transfer function is

Gp =Kp

(τ1 s + 1) (τ2 s + 1), and the controller function according to

Eq. (6-28) is

Gc =

(τ1 s + 1) (τ2 s + 1)

Kpτ s (τ s + 2ζ).

We now define τf = τ/2ζ, and Gc becomes

Gc =

(τ1 s + 1) (τ2 s + 1)

2ζ Kpτ s (τ f s + 1)

Suppose that τ2 is associated with the slower pole (τ2 > τ1), we now require τf = τ2 such that the

pole and zero cancel each other. The result is a PI controller:

Gc = 1

2ζ Kpτ

(τ1 s + 1)s

With our definition of τf and the requirement τf = τ2, we can write τ = 2ζτ2, and the final form of

the controller is

Gc =

τ1

4Kp ζ 2 τ2

(1 + 1τ1 s

) = Kc (1 + 1τ I s

) (E6-5)

The integral time constant is τI = τ1, and the term multiplying the terms in the parentheses is theproportional gain Kc. In this problem, the system damping ratio ζ is the only tuning parameter.

6.2.2 Pole-zero cancellation

We used the term “pole-zero cancellation” at the beginning of this section. We should say a fewmore words to better appreciate the idea behind direct synthesis. Pole-zero cancellation is alsoreferred to as cancellation compensation or dominant pole design. Of course, it is unlikely to

Page 116: Process Control

6 - 13

have perfect pole-zero cancellation in real life, and this discussion is more toward helping ourtheoretical understanding.

The idea is that we may cancel the (undesirable open-loop) poles of our process and replacethem with a desirable closed-loop pole. Recall in Eq. (6-20) that Gc is sort of the reciprocal of Gp.The zeros of Gc are by choice the poles of Gp. The product of GcGp cancels everything

out—hence the term pole-zero cancellation. To be redundant, we can rewrite the general designequation as

Gc Gp =C RC R

1 – C RC R(6-20a)

That is, no matter what Gp is, we define Gc such that their product is dictated entirely by a

function (the RHS) in terms of our desired system response (C/R). For the specific closed-loopresponse as dictated by Eq. (6-22), we can also rewrite Eq. (6-23) as

Gc Gp =

1τ c

s(6-23a)

Since the system characteristic equation is 1 + GcGp = 0, our closed-loop poles are onlydependent on our design parameter τc. A closed-loop system designed on the basis of pole-zero

cancellation has drastically different behavior than a system without such cancellation.

Let’s try to illustrate using a system with a PI controller and a first order process function, andthe simplification that Gm = Ga = 1. The closed-loop characteristic equation is

1 + GcGp = 1 + Kc

τ Is + 1

τ Is

Kp

τ ps + 1

= 0 (6-29)

Under normal circumstances, we would pick a τI which we deem appropriate. Now if we pick τI tobe identical to τp, the zero of the controller function cancels the pole of the process function. Weare left with only one open-loop pole at the origin. Eq. (6-29), when τI = τp, is reduced to

1 +

KcKp

τ ps

= 0 , or

s = –Kc Kp

τ p

.

There is now only one real and negative closed-loop pole (presuming Kc > 0). This situation is

exactly what direct synthesis leads us to.

Recall from Example 6.1 that based on the chosen C/R in Eq. (6-22), the PI controller functionis

Gc = Kc

τ Is + 1

τ Is

=τ p

Kp τ c

τ ps + 1

τ ps

where τI = τp and Kc = τp/Kpτc. Substitution of Kc one step back in the characteristic equationwill shows that the closed-loop pole is indeed at s = –1/τc. The product GcGp is also consistentwith Eq. (6-23a) and τc.

Page 117: Process Control

6 - 14

6.2.3 Internal model control (IMC)

A more elegant approach than direct synthesisis internal model control (IMC). The premise ofIMC is that in reality, we only have anapproximation of the actual process. Even if wehave the correct model, we may not have accuratemeasurements of the process parameters. Thus theimperfect model should be factored as part of thecontroller design.

In the block diagram implementing IMC (Fig.6.3a), our conventional controller Gc consists of

the (theoretical) model controller G*c and the

approximate function Gp . Again, our objective is

limited. We use the analysis in very restrictiveand simplified cases to arrive at results inExample 6.5 to help us tune PID controllers as inFig. 6.3b.

We first need to derive the closed-loop functions for the system. Based on the block diagram,the error is

E = R – (C – C~ )

and the model controller output is

P = G*c E = G*

c (R – C + C~ )

If we substitute C~

= Gp P, we have

P = G*c (R – C + GpP) (6-30)

from which we can rearrange to obtain

P =

G*c

1 – G*c Gp

(R – C) (6-28a)

The gist of this step is to show the relationship between the conventional controller function Gc

and the other functions:

Gc =

G*c

1 – G*c Gp

(6-31)

This is an equation that we will use to retrieve the corresponding PID controller gains. For now,we substitute Eq. (6-28a) in an equation around the process,

C = GL L + Gp P = GL L +

Gp G*c

1 – G*c Gp

(R – C)

From this step, we derive the closed-loop equation:

C =

(1 – G*c Gp) GL

1 + G*c (Gp – Gp)L +

Gp G*c

1 + G*c (Gp – Gp)R (6-32)

The terms in the brackets are the two closed-loop transfer functions. As always, they have thesame denominator—the closed-loop characteristic polynomial.

GpG c*

Gp~

~

CR

C – C

~

L

P

+

+C

GL

GpGc–

+R CP

E

E

Figure 6.3. A system with IMC (upperpanel) as compared with a conventionalsystem in the lower panel.

Page 118: Process Control

6 - 15

There is still one unfinished business. We do not know how to choose G*c yet. Before we

make this decision, we may recall that in direct synthesis, the poles of Gc are “inherited” from thezeros of Gp. If Gp has positive zeros, it will lead to a Gc function with positive poles. To avoid

that, we “split” the approximate function as a product of two parts:

Gp = Gp+ Gp– (6-33)

with Gp+ containing all the positive zeros, if present. The controller will be designed on the basis

of Gp– only. We now define the model controller function in a way similar to direct synthesis: 1

G*c =

1Gp–

1τ c

s + 1

r

, where r = 1, 2, etc. (6-34)

Like direct synthesis, τc is the closed-loop time constant and our only tuning parameter. The firstorder function raised to an integer power of r is used to ensure that the controller is physicallyrealizable. 2 Again, we would violate this intention in our simple example just so that we canobtain results that resemble an ideal PID controller.

✎ Example 6.5: Repeat the derivation of a controller function for a system with a first orderprocess with dead time using IMC.

Say we model our process (read: fitting the open-loop step test data) as a first order function withtime delay, and expecting experimental errors or uncertainties, our measured or approximate model

function G~

p is

Gp =

Kp e–td s

τ ps + 1

We use the first order Padé approximation for the dead time and isolate the positive zero term as inEq. (6-33):

Gp ≈

Kp

(τ ps + 1)(

td2

s + 1)(–

td2

s + 1) = Gp – Gp + (E6-6)

where

Gp + = (–td

2s + 1)

If we choose r = 1, Eq. (6-34) gives

G*c =

(τ ps + 1) (

td2

s + 1)

Kp

1(τ c

s + 1)(E6-7)

1 If the model is perfect, Gp = Gp , and Eq. (6-32) becomes simply C = Gp G*c R if we also setL = 0. We choose C/R to be a first order response with unity gain, and we'd arrive at a choice of

G*c very similar to the definition in (6-34).

2 The literature refers the term as a first order filter. It only makes sense if you recall your linearcircuit analysis or if you wait until the chapter on frequency response analysis.

Page 119: Process Control

6 - 16

Substitution of (E6-5) and (E6-6) into Eq. (6-31), and after some algebraic work, will lead to thetuning parameters of an ideal PID controller:

Kc =1

Kp

2τ p

td+ 1

2τ c

td+ 1

; τ I= τ p

+td

2; τ D =

τ p

2τ p

td+ 1

(E6-8)

✎ Example 5.7B: What would be the PID controller settings for the dye mixing problem if weuse IMC-based tuning relations?

With the same first order with dead time approximation in Example 5.7A (p. 6-5), and the choiceof τc being two-thirds the value of dead time, the IMC relations in (E6-8) provide the following

PID settings (as computed with our M-file recipe.m):

Kc τI τD

IMC 3.4 4.5 0.4

Compare this result using other tuning relations in Example 5.7A. The IMC proportional gainfalls in between the Cohen-Coon and ITAE settings, but the integral time constant is relativelyhigh. With less integrating action, we expect this IMC tuning to be less oscillatory. Indeed, weshall see that if we do Example 5.7C (or you can cheat and read the plotting result from our WebSupport).

✎ Example 5.7C: How do the different controller settings affect the system time response inthe dye mixing problem?

We can use the following MATLAB statements to do time response simulations (explanations arein MATLAB Session 5). Better yet, save them in an M-file. The plotting can be handled differentlyto suit your personal taste. (Of course, you can use Simulink instead.)

alfa=0.1; % Real PID

Gc=tf(kc*[taui*taud (taui+taud) 1],[alfa*taui*taud taui 0]);

td=0.725;

Gm=tf([-td/2 1],[td/2 1]); %Padé approximation for dead time

Km=2.6; %Move Km into the forward path

Gp=tf(0.8,[4 1]);

Ga=tf(0.6,[0.2 1]);

Gcl=feedback(Km*Gc*Ga*Gp,Gm); % The closed-loop function

step(Gcl) % Plotting...

We reset the three controller parameters each time we execute the M-file. For example, to use theCohen-Coon results, we would take from Example 5.7A:

kc=4.9; taui=2; taud=0.31;

MATLAB calculation details and plots can be found on our Web Support. You should observe thatCohen-Coon and Ziegler-Nichols tuning relations lead to roughly 74% and 64% overshoot,respectively, which are more significant than what we expect with a quarter decay ratio criterion.

Page 120: Process Control

6 - 17

The ITAE, with about 14% overshoot, is more conservative. Ciancone and Marlin tuning relationsare ultra conservative; the system is slow and overdamped.

With the IMC tuning setting in Example 5.7B, the resulting time response plot is (very nicely)slightly underdamped even though the derivation in Example 6.4 predicates on a system responsewithout oscillations. Part of the reason lies in the approximation of the dead time function, andpart of the reason is due to how the system time constant was chosen. Generally, it is important todouble check our IMC settings with simulations.

At this point, one may be sufficiently confused with respect to all the different controllertuning methods. Use Table 6.3 as a guide to review and compare different techniques this chapterand also Chapters 7 and 8.

Table 6.2. Summary of PID controller settings based on IMC or direct synthesis

Process model Controller Kc τI τD

Kp

τ p s + 1PI τ p

Kp τ c

τp —

Kp

(τ 1 s + 1) (τ 2 s + 1)PID τ 1 + τ 2

Kp τ c

τ 1 + τ 2 τ 1 τ 2τ 1 + τ 2

PID withτ1 > τ2

τ 1Kp τ c

τ1 τ2

PI(underdamped)

τ1

4Kp ζ 2 τ2

τ1 —

Kp

τ 2s2 + 2ζτs + 1PID 2ζτ

Kp τ c

2ζτ τ2ζ

Kp

s (τ p s + 1)PD 1

Kp τ c

— τp

Kp e– td s

τ p s + 1PI τ p

Kp (τ c + td )τp —

PID 1Kp

2τ p tdτ p td + 1

2τ c tdτ c td + 1

τ p+ td 2td 2 τ p

2τ p tdτ p td + 1

Kps

P 1Kp τ c

— —

Page 121: Process Control

6 - 18

❐ Review Problems

4. Repeat Example 6.1 when we have Gp =Kp

s (τps + 1)

. What is the offset of the system?

5. What are the limitations to IMC? Especially with respect to the choice of τc?

6. What control action increases the order of the system?

7. Refer back to Example 6.4. If we have a third order process

Gp =

Kp

(τ1 s + 1) (τ2 s + 1) (τ3 s + 1)

what is the controller function if we follow the same strategy as in the example?

8. Complete the time response simulations in Example 5.7C using settings in Example 5.7A.

9. (Optional) How would you implement the PID algorithm in a computer program?

Hints:

1. The result is an ideal PD controller with the choice of τD = τp. See that you can obtain the

same result with IMC too. Here, take the process function as the approximate model and ithas no parts that we need to consider as having positive zeros. There is no offset; theintegrating action is provided by Gp.

2. Too small a value of τc means too large a Kc and therefore saturation. System response is

subject to imperfect pole-zero cancellation.

3. Integration is 1/s.

10. The intermediate step is

Gc =

(τ1 s + 1) (τ2 s + 1) (τ3 s + 1)

2ζ Kpτ s (τc s + 1)

where τf = τ/2ζ, and now we require τf = τ3, presuming it is the largest time constant. The

final result, after also taking some of the ideas from Example 6.2, is an ideal PID controllerwith the form:

Gc =

(τ1 + τ2 )

4Kp ζ 2 τ3

1 + 1τ1 + τ2

1s +

τ1 τ2

τ1 + τ2

s

The necessary choices of Kc, τI, and τD are obvious. Again, ζ is the only tuning parameter.

5. See our Web Support for the simulations.

6. Use finite difference. The ideal PID in Eq. (5-8a) can be discretized as

pn = ps + Kc en +∆tτ I

ekΣk = 1

n

+τD

∆t(en – en – 1)

where pn is the controller output at the n-th sampling period, ps is the controller bias, ∆t is

the sampling period, and en is the error. This is referred to as the position form algorithm. The

alternate approach is to compute the change in the controller output based on the differencebetween two samplings:

Page 122: Process Control

6 - 19

∆pn = pn – pn – 1 = Kc (en – en – 1) +∆tτ I

en +τD

∆t(en – 2en – 1+ en – 2)

This is the velocity form algorithm which is considered to be more attractive than theposition form. The summation of error is not computed explicitly and thus the velocity formis not as susceptible to reset windup.

Page 123: Process Control

Table 6.3. Summary of methods to select controller gains

Method What to do? What is evaluated? Comments❏ Transient response criteria

• Analytical derivation Derive closed-loop damping ratio from asecond order system characteristic polynomial.Relate the damping ratio to the proportionalgain of the system.

Usually the proportional gain. • Limited to second order systems. No uniqueanswer other than a P-controller.

• Theoretically can use other transient responsecriteria.

• 1/4 decay ratio provides a 50% overshoot.

❏ Empirical tuning with open-loopstep test

Measure open-loop step response, the so-calledprocess reaction curve. Fit data to first orderwith dead-time function.

• Cohen-Coon• Ziegler-Nichols• Ciacone-Marlin

Apply empirical design relations. Proportional gain, integral andderivative time constants to PI andPID controllers.

• Cohen-Coon was designed to handledisturbances by preventing a large initialdeviation from the set point. The one-quarterdecay ratio response is generally toounderdamped for set point changes.

• Time integral performance criteria (ISE, IAE, ITAE)

Apply design relations derived fromminimization of an error integral of thetheoretical time-domain response.

Proportional gain, integral andderivative time constants to PI andPID controllers.

• Different settings for load and set pointchanges.

• Different settings for different definitions ofthe error integral.

• The minimum ITAE criterion provides theleast oscillatory response.

❏ Ziegler-Nichols ContinuousCycling (empirical tuning withclosed loop test)

Increase proportional gain of only aproportional controller until system sustainsoscillation. Measure ultimate gain and ultimateperiod. Apply empirical design relations.

Proportional gain, integral andderivative time constants of PIDcontrollers.

• Experimental analog of the s = jω substitutioncalculation.

• Not necessarily feasible with chemicalsystems in practice.

• Tuning relations allow for choices from 1/4decay ratio to little oscillations.

❏ Stability analysis methods• Routh-Hurwitz criterion Apply the Routh test on the closed-loop

characteristic polynomial to find if there areclosed-loop poles on the right-hand-plane.

Establish limits on the controller gain. • Usually applies to relatively simple systemswith the focus on the proportional gain.

• Need be careful on interpretation when thelower limit on proportional gain is negative.

• Direct substitution Substitute s = jω in characteristic polynomialand solve for closed-loop poles on Im-axis.The Im and Re parts of the equation allow theultimate gain and ultimate frequency to besolved.

Ultimate gain and ultimate period(Pu = 2π/ωu) that can be used in theZiegler-Nichols continuous cyclingrelations.

• Result on ultimate gain is consistent with theRouth array analysis.

• Limited to relatively simple systems.

Page 124: Process Control

Summary (continued)Method What to do? What is evaluated? Comments

• Root-locus With each chosen value of proportional gain,plot the closed-loop poles. Generate the lociwith either hand-sketching or computer.

The loci of closed-loop poles revealthe effect of controller gain on theprobable closed-loop dynamicresponse. Together with specificationsof damping ratio and time constant,the loci can be a basis of selectingproportional gain.

• Rarely used in the final controller designbecause of difficulty in handling dead-time.

• Method is instructive and great pedagogicaltool.

❏ (Model-based) Direct synthesis For a given system, synthesize the controllerfunction according to a specified closed-loopresponse. The system time constant, τc, is theonly tuning parameter.

Proportional gain, integral andderivative time constants whereappropriate.

• The design is not necessarily PID, but wherethe structure of a PID controller results, thismethod provides insight into the selection ofthe controller mode (PI, PD, PID) andsettings.

• Especially useful with system that has nodead time.

• Internal model control Extension of direct synthesis. Controller designincludes an internal approximation processfunction.

For a first order function with dead-time, the proportional gain, integraland derivative time constants of anideal PID controller.

❏ Frequency-domain methods • Can handle dead-time easily and rigorously.• The Nyquist criterion allows the use of open-loop functions in Nyquist or Bode plots toanalyze the closed-loop problem.

• The stability criteria have no use for simplefirst and second order systems with nopositive open-loop zeros.

• Nyquist plot• Bode plot

Nyquist plot is a frequency parametric plot ofthe magnitude and the argument of the open-loop transfer function in polar coordinates.Bode plot is magnitude vs. frequency andphase angle vs. frequency plotted individually.

Calculate proportional gain needed tosatisfy the gain or phase margin.

• These plots address the stability problem butneed other methods to reveal the probabledynamic response.

• Nichols chart Nichols chart is a frequency parametric plot ofopen-loop function magnitude vs. phase angle.The closed-loop magnitude and phase angleare overlaid as contours.

With gain or phase margin, calculateproportional gain. Can also estimatethe peak amplitude ratio, and assessthe degree of oscillation.

• Nichols chart is usually constructed for unityfeedback loops only.

• Maximum closed-loop log modulus

A plot of the magnitude vs. frequency of theclosed-loop transfer function.

The peak amplitude ratio for a chosenproportional gain.

Page 125: Process Control

P.C. Chau © 2001

❖ 7. Stability of Closed-loop Systems

When we design a closed-loop system, the specifications may dictate features in dynamic response.However, we cannot do that unless the system is stable. Thus the foremost concern in a controlsystem design is to keep the system stable, which in itself can be used as a design tool.

What are we up to?Analyze stability of a closed-loop system with three techniques:

• Routh-Hurwitz criterion for the stability region

• Substitution of s = jω to find roots at marginal stability

• Root locus plots of the closed-loop poles

7.1 Definition of Stability

Our objective is simple. We want to make sure that the controller settings will not lead to anunstable system. Consider the closed-loop system response that we derived in Section 5.2 (p. 5-7):

C =

Km Gc Ga Gp

1 + GmGc Ga GpR +

GL

1 + GmGc Ga GpL (7-1)

with the characteristic equation

1 + GmGcGaGp = 0 (7-2)

The closed-loop system is stable if all the roots of the characteristic polynomial have negativereal parts. Or we can say that all the poles of the closed-loop transfer function lie in the left-handplane (LHP). When we make this statement, the stability of the system is defined entirely on theinherent dynamics of the system, and not on the input functions. In other words, the results applyto both servo and regulating problems.

We also see another common definition—bounded input bounded output (BIBO)stability: A system is BIBO stable if the output response is bounded for any bounded input. Oneillustration of this definition is to consider a hypothetical situation with a closed-loop pole at theorigin. In such a case, we know that if we apply an impulse input or a rectangular pulse input, theresponse remains bounded. However, if we apply a step input, which is bounded, the response is aramp, which has no upper bound. For this reason, we cannot accept any control system that hasclosed-loop poles lying on the imaginary axis. They must be in the LHP. 1

Addition of a feedback control loop can stabilize or destabilize a process. We will see plentyexamples of the latter. For now, we use the classic example of trying to stabilize an open-loopunstable process.

1 Do not be confused by the function of integral control; its pole at the origin is an open-looppole. This point should clear up when we get to the root locus section.

Furthermore, conjugate poles on the imaginary axis are BIBO stable—a step input leads to asustained oscillation that is bounded in time. But we do not consider this oscillatory steady state asstable, and hence we exclude the entire imaginary axis. In an advanced class, you should find moremathematical definitions of stability.

Page 126: Process Control

7 - 2

✎ Example 7.1: Consider the unstable process function Gp = Ks – a , which may arise from a

linearized model of an exothermic chemical reactor with an improper cooling design. The questionis whether we can make a stable control system using simply a proportional controller. Forillustration, we consider a unity feedback loop with Gm = 1. We also take the actuator transferfunction to be unity, Ga = 1.

With a proportional controller, Gc = Kc, the transfer function of this closed-loop servo system is

YR =

Gc Gp

1 + Gc Gp=

Kc Ks – a + Kc K

The characteristic equation is

s – a + Kc K = 0

which means that if we want a stable system, the closed-loop poles must satisfy

s = a – Kc K < 0

In other words, the closed-loop system is stable if Kc > a/K.

For a more complex problem, the characteristic polynomial will not be as simple, and we needtools to help us. The two techniques that we will learn are the Routh-Hurwitz criterion and rootlocus. Root locus is, by far, the more important and useful method, especially when we can use acomputer. Where circumstances allow (i.e., the algebra is not too ferocious), we can also find theroots on the imaginary axis—the case of marginal stability. In the simple example above, this iswhere Kc = a/K. Of course, we have to be smart enough to pick Kc > a/K, and not Kc < a/K.

7.2 The Routh-Hurwitz Criterion

We first introduce the time honored (i.e., ancient!) Routh-Hurwitz criterion for stability testing.We will not prove it—hardly any text does anymore. Nonetheless, we use two generalpolynomials to illustrate some simple properties. First, consider a second order polynomial withthe leading coefficient a2 = 1. If the polynomial has two real poles p1 and p2, it can be factored as

P(s) = s2 + a1s + ao = (s – p1)(s – p2) (7-3)

We may observe that if a1 is zero, both roots, ±j√ao, are on the imaginary axis. If ao is zero, one

of the two roots is at the origin. We can expand the pole form to give

P(s) = s2 – (p1 + p2)s + p1p2 (7-4)

and compare the coefficients with the original polynomial in Eq. (7-3). If both p1 and p2 arenegative, the coefficients a1 and ao must be positive definite, which is the mathematicians’ way ofsaying, a1 > 0 and ao > 0.

Next, consider a third order polynomial with leading coefficient a3 = 1 and the form in terms of

the poles:

P(s) = s3 + a2s2 + a1s + ao = (s – p1)(s – p2)(s – p3) (7-5)

We expand the pole form to

P(s) = s3 – (p1 + p2 + p3)s2 + (p1p2 + p1p3 + p2p3)s – p1p2p3 (7-6)

Page 127: Process Control

7 - 3

Once again, if all three poles are negative, the coefficients a2, a1, and ao must be positive definite.

The idea is that the signs of the pole are related to the coefficients an, an-1,... , ao of an n-th

order characteristic polynomial. If we require all the poles to have negative real parts, there must besome way that we can tell from the coefficients an, an-1,... , etc. without actually having to solve

for the roots. The inkling is that all of the coefficients in the characteristic polynomial must bepositive definite. One could develop a comprehensive theory, which Routh did. The attractivenessof the Routh criterion is that without solving for the closed-loop poles, one can derive inequalitiesthat would provide a bound for stable controller design.

The complete Routh array analysis allows us to find, for example, the number of poles on theimaginary axis. Since BIBO stability requires that all poles lie in the left-hand plane, we will notbother with these details (which are still in many control texts). Consider the fact that we cancalculate easily the exact roots of a polynomial with MATLAB, we use the Routh criterion to theextent that it serves its purpose.1 That would be to derive inequality criteria for proper selection ofcontroller gains of relatively simple systems. The technique loses its attractiveness when thealgebra becomes too messy. Now the simplified Routh-Hurwitz recipe without proof follows.

(1) Hurwitz test for the polynomial coefficients

For a given n-th order polynomial

P(s) = an sn + an – 1 sn – 1 + ... + a2 s2 + a1 s + ao , (7-7)

all the roots are in the left hand plane if and only if all the coefficients ao,…, an are positive

definite.

If any one of the coefficients is negative, at least one root has a positive real part (i.e., in theright hand plane). If any of the coefficients is zero, not all of the roots are in the left hand plane: itis likely that some of them are on the imaginary axis. Either way, stop. This test is a necessarycondition for BIBO stability. There is no point in doing more other than to redesign the controller.

(2) Routh array construction

If the characteristic polynomial passes the coefficient test, we then construct the Routh array tofind the necessary and sufficient conditions for stability. This is one of the few classical techniquesthat we do not emphasize and the general formula is omitted. The array construction up to a fourthorder polynomial is used to illustrate the concept.

Generally, for an n-th order polynomial, we need (n+1) rows. The first two rows are filled inwith the coefficients of the polynomial in a column-wise order. The computation of the arrayentries is very much like the negative of a normalized determinant anchored by the first column.Even without the general formula, you may pick out the pattern as you read the following threeexamples.

The Routh criterion states that in order to have a stable system, all the coefficients in thefirst column of the array must be positive definite. If any of the coefficients in the first column isnegative, there is at least one root with a positive real part. The number of sign changes is thenumber of positive poles.

Here is the array for a second order polynomial, p(s) = a2 s2 + a1 s + ao:

1 MATLAB does not even bother wit a Routh function. Such an M-file is provided on our WebSupport for demonstration purpose.

Page 128: Process Control

7 - 4

1: a2 ao

2: a1 0

3: b 1 =

a1 ao – (0) a2

a1= ao

In the case of a second order system, the first column of the Routh array reduces to simply thecoefficients of the polynomial. The coefficient test is sufficient in this case. Or we can say thatboth the coefficient test and the Routh array provide the same result.

The array for a third order polynomial, p(s) = a3 s3 + a2 s2 + a1 s + ao, is

1: a3 a1 0

2: a2 ao 0

3: b 1 =

a2 a1 – a3 ao

a2

b 2 =

(a2) 0 – (a3) 0a2

= 0

4: c1 =

b 1 ao – b 2 a2

b 1= ao

0

In this case, we have added one column of zeros; they are needed to show how b2 is computed.Since b2 = 0 and c1 = ao, the Routh criterion adds one additional constraint in the case of a third

order polynomial:

b 1 =

a2 a1 – a3 ao

a2> 0 (7-8)

We follow with the array for a fourth order polynomial, p(s) = a4 s4 + a3 s3 + a2 s2 + a1 s + ao,

1: a4 a2 ao

2: a3 a1 0

3: b 1 =

a3 a2 – a1 a4

a3

b 2 =

a3 ao – (0) a4

a3= ao

0

4: c1 =

b 1 a1 – b 2 a3

b 1

c2 =

b 1 (0) – (0) a3

b 1= 0

5: d1 =

c1 b 2 – (0) b 1

c1= b 2 = ao

0

Page 129: Process Control

7 - 5

The two additional constraints from the Routh array are hence

b 1 =

a3 a2 – a1 a4

a3> 0 (7-9)

and

c1 =

b 1 a1 – b 2 a3

b 1=

b 1 a1 – ao a3

b 1> 0 (7-10)

✎ Example 7.2: If we have only a proportional controller (i.e., one design parameter) and realnegative open-loop poles, the Routh-Hurwitz criterion can be applied to a fairly high order systemwith ease. For example, for the following closed-loop system characteristic equation:

1 + Kc1

(s + 3) (s + 2) (s + 1) = 0

find the stability criteria.

We expand and rearrange the equation to the polynomial form:

s3 + 6s2 + 11s + (6 + Kc) = 0

The Hurwitz test requires that Kc > –6 or simply Kc > 0 for positive controller gains.

The Routh array is:

1: 1 112: 6 6 + Kc3: b1 0

The Routh criterion requires, as in Eq. (7-8), that

b 1 =

(6)(11) – (6 + Kc)

6> 0 or 60 > Kc

The range of proportional gain to maintain system stability is hence 0 < Kc < 60.

✎ Example 7.3: Consider a second order process function Gp = 1s2 + 2s + 1

, which is critically

damped. If we synthesize a control system with a PI controller, what are the stability constraints?

For illustration, we take Gm = Ga = 1 and the closed-loop transfer function for a servo

problem is simply

CR

=Gc Gp

1 + Gc Gp

In this problem, the closed-loop characteristic equation is

1 + Gc Gp = 1 + Kc 1 + 1τ Is

1s2 + 2s + 1

= 0

or

τ Is3 + 2τ Is

2 + τ I (1 + Kc ) s + Kc = 0

Page 130: Process Control

7 - 6

With the Routh-Hurwitz criterion, we need immediately τI > 0 and Kc > 0. (The s term requiresKc > –1, which is overridden by the last constant coefficient.) The Routh array for this third order

polynomial is

1: τI τI (1 + Kc)2: 2τI Kc3: b1 04: Kc

With the use of (7-8), we require

b 1 =2τ I

2(1 + Kc) – τ I Kc

2τ I= τ I (1 + Kc) –

Kc2

> 0

The inequality is rearranged to

τ I >Kc

2 (1 + Kc)or

2τ I

1 – 2τ I> Kc

which can be interpreted in two ways. For a given Kc, there is a minimum integral time constant.If the proportional gain is sufficiently large such that Kc » 1, the rough estimate for the integraltime constant is τI > 1/2. Or if the value of τI is less than 0.5, there is an upper limit on howlarge Kc could be.

If the given value of τI is larger than 0.5, the inequality simply infers that Kc must be larger thansome negative number. To be more specific, if we pick τI = 1,1 the Routh criterion becomes

2 >Kc

(1 + Kc )

which of course can be satisfied for all Kc > 0. No new stability requirement is imposed in thiscase. Let us try another choice of τI = 0.1. In this case, the requirement for the proportional gain is

0.2 (1 + Kc ) > Kc or Kc < 0.25

The entire range of stability for τI = 0.1 is 0 < Kc < 0.25. We will revisit this problem when we

cover root locus plots; we can make much better sense without doing any algebraic work!

7.3 Direct Substitution Analysis

The closed-loop poles may lie on the imaginary axis at the moment a system becomes unstable.We can substitute s = jω in the closed-loop characteristic equation to find the proportional gainthat corresponds to this stability limit (which may be called marginal unstable). The value of thisspecific proportional gain is called the critical or ultimate gain. The corresponding frequencyis called the crossover or ultimate frequency.

1 Note that with this very specific case by choosing τI = 1, the open-loop zero introduced by the

PI controller cancels one of the open-loop poles of the process function at –1. If we do a root locusplot later, we'd see how the root loci change to that of a purely second order system. With respectto this example, the value is not important as long as τI > 1/2.

Page 131: Process Control

7 - 7

✎ Example 7.2A: Apply direct substitution to the characteristic equation in Example 7.2:

s3 + 6s2 + 11s + (6 + Kc) = 0

Substitution of s = jω leads to

– jω3 – 6ω2 + 11ωj + (6 + Kc) = 0

The real and imaginary part equations are

Re : – 6ω2 + (6 + Kc) = 0 or Kc = 6 (ω2 – 1)

Im : – ω3 + 11ω = 0 or ω (11 – ω2) = 0

From the imaginary part equation, the ultimate frequency is ωu = √11. Substituting this value inthe real part equation leads to the ultimate gain Kc,u = 60, which is consistent with the result of

the Routh criterion.

If we have chosen the other possibility of ωu = 0, meaning that the closed-loop poles are on thereal axis, the ultimate gain is Kc,u = –6, which is consistent with the other limit obtained with the

Routh criterion.

✎ Example 7.3A: Repeat Example 7.3 to find the condition for the ultimate gain.

If we make the s = jω substitution in

τ Is3 + 2τ Is

2 + τ I (1 + Kc ) s + Kc = 0

it becomes

–τ Iω3j – 2τ Iω2 + τ I (1 + Kc ) ωj + Kc = 0

We have two equations after collecting all the real and imaginary parts, and requiring both to bezero:

Re : Kc – 2τ Iω2 = 0

Im : τ I ω –ω2 + (1 + Kc ) = 0

Thus we have either ω = 0 or –ω2 + (1 + Kc) = 0. Substitution of the real part equation into the

nontrivial imaginary part equation leads to

–ω2 + 1 + 2τ Iω2 = 0 or ωu2 = 1

1 – 2τ I

where in the second form, we have added a subscript to denote the ultimate frequency, ωu.

Substitution of the ultimate frequency back in the real part equation gives the relation for theultimate proportional gain

Kc,u =2τ I

1 – 2τ I

Note that if we have chosen the other possibility of ωu = 0, meaning where the closed-loop polesare on the real axis, the ultimate gain is Kc,u = 0, which is consistent with the other limit

obtained using the Routh criterion. The result of direct substitution confirms the inequalityderived from the Routh criterion, which should not be a surprise.

Page 132: Process Control

7 - 8

One may question whether direct substitution is a better method. There is no clear-cut winnerhere. By and large, we are less prone to making algebraic errors when we apply the Routh-Hurwitzrecipe, and the interpretation of the results is more straightforward. With direct substitution, we donot have to remember any formulas, and we can find the ultimate frequency, which however, canbe obtained with a root locus plot or frequency response analysis—techniques that we will coverlater.

When the system has dead time, we must make an approximation, such as the Padéapproximation, on the exponential dead time function before we can apply the Routh-Hurwitzcriterion. The result is hence only an estimate. Direct substitution allows us to solve for theultimate gain and ultimate frequency exactly. The next example illustrates this point.

✎ Example 7.4: Consider a system with a proportional controller and a first order process butwith dead time. The closed-loop characteristic equation is given as

1 + Kc0.8e– 2s

5s + 1 = 0

Find the stability criteria of this system.

Let us first use the first order Padé approximation for the time delay function and apply the Routh-Hurwitz criterion. The approximate equation becomes

1 + Kc0.8

5s + 1( – s + 1)(s + 1) = 0

or

5s2

+ (6 – 0.8Kc ) s + (1+ 0.8Kc ) = 0

The Routh-Hurwitz criterion requires 6 – 0.8Kc > 0 or Kc < 7.5, and Kc > –1/0.8. By keeping Kcpositive, the approximate range of the proportional gain for system stability is 0 < Kc < 7.5.

We now repeat the problem with the s = jω substitution in the characteristic equation, and rewritethe time delay function with Euler's identity:

(5ωj + 1) + 0.8Kc (cos 2ω– j sin 2ω) = 0

Collecting terms of the real and imaginary parts provides the two equations:

Re : 1 + 0.8Kc cos 2ω= 0 or Kc = – 1 / (0.8 cos 2ω)

Im : 5ω– 0.8Kc sin 2ω= 0

Substitution of the real part equation into the imaginary part equation gives

5ω+ tan 2ω= 0

The solution of this equation is the ultimate frequency ωu = 0.895, and from the real part equation,the corresponding ultimate proportional gain is Kc,u = 5.73. Thus the more accurate range of Kcthat provides system stability is 0 < Kc < 5.73.

Note 1: This result is consistent with the use of frequency response analysis later in Chapter 8.

Note 2: The iterative solution in solving the ultimate frequency is tricky. The equation has poornumerical properties—arising from the fact that tanθ "jumps" from infinity at θ = (π/2)– tonegative infinity at θ = (π/2)+. To better see why, use MATLAB to make a plot of the function

(LHS of the equation) with 0 < ω < 1. With MATLAB, we can solve the equation with thefzero() function. Create an M-file named f.m, and enter these two statements in it:

Page 133: Process Control

7 - 9

function y=f(x)

y = 5*x + tan(2*x);

After you have saved the file, enter at the MATLAB prompt:

fzero('f',0.9)

where 0.9 is the initial guess. MATLAB should return 0.8953. If you shift the initial guess just abit, say using 0.8, you may get a "solution" of 0.7854. Note that (2)(0.7854) is π/2. If youblindly accept this incorrect value, Kc,u will be infinity according to the real part equation.

MATLAB is handy, but it is not foolproof!

7.4 Root Locus Analysis

The idea of a root locus plot is simple—if we have a computer. We pick one design parameter,say, the proportional gain Kc, and write a small program to calculate the roots of the characteristicpolynomial for each chosen value of Kc as in 0, 1, 2, 3,...., 100,..., etc. The results (the values of

the roots) can be tabulated or better yet, plotted on the complex plane. Even though the idea ofplotting a root locus sounds so simple, it is one of the most powerful techniques in controllerdesign and analysis when there is no time delay.

Root locus is a graphical representation of the roots of the closed-loop characteristicpolynomial (i.e., the closed-loop poles) as a chosen parameter is varied. Only the roots are plotted.The values of the parameter are not shown explicitly. The analysis most commonly uses theproportional gain as the parameter. The value of the proportional gain is varied from 0 to infinity,or in practice, just "large enough." Now, we need a simple example to get this idea across.

✎ Example 7.5: Construct the root locus plots of a first and second order system with aproportional controller. See how the loci approach infinity.

(a) Consider the characteristic equation of a simple system with a first order process and aproportional controller:

1 + Kc

Kp

τp s + 1= 0

The solution, meaning the closed-loop poles of the system, is

s =

– (1 + Kc Kp)τp

The root locus plot (Fig. E7.5) is simply a line on the real axis starting at s = –1/τp when Kc = 0,and extends to negative infinity as Kc approaches infinity. As we increase the proportional gain,

the system response becomes faster. Would there be an upper limit in reality? (Yes, saturation.)

Page 134: Process Control

7 - 10

(a) (b)

–1 τ p –1 τ 1 –1 τ 2

Figure E7.5. Root locus plots of (a) first order, and (b) second order systems.

(b) We repeat the exercise with a second order overdamped process function. The closed-loopcharacteristic equation of the closed-loop system is

1 + Kc

Kp

(τ1 s + 1) (τ2 s + 1)= 0 , or τ1 τ2 s2 + (τ1 + τ2 ) s + (1 + KcKp) = 0

The two closed-loop poles are

s =

– (τ1 + τ2 ) ± (τ1 + τ2 )2 – 4τ1 τ2 (1 + KcKp)2τ1 τ2

In the mathematical limit of Kc = 0, we should find two negative real poles at

s =

– (τ1 + τ2 ) ± (τ1 – τ2 )2

2τ1 τ2= – 1

τ1or – 1

τ2

which are the locations of the two open-loop poles. (This result is easy to spot if we use the veryfirst step without expanding the terms.) As Kc becomes larger, we should come to a point where

we have two repeated roots at

s =

– (τ1 + τ2 )2τ1 τ2

If we increase further the value of Kc, the closed-loop poles will branch off (or breakaway) fromthe real axis and become two complex conjugates (Fig. E7.5). No matter how large Kc becomes,

these two complex conjugates always have the same real part as given by the repeated root. Thuswhat we find are two vertical loci extending toward positive and negative infinity. In this analysis,we also see how as we increase Kc, the system changes from overdamped to become underdamped,

but it is always stable.

This is the idea behind the plotting of the closed-loop poles—in other words, construction ofroot locus plots. Of course, we need mathematical or computational tools when we have morecomplex systems. An important observation from Example 7.5 is that with simple first andsecond order systems with no open-loop zeros in the RHP, the closed-loop system is alwaysstable.

We can now state the problem in more general terms. Let us consider a closed-loopcharacteristic equation 1 + KcGo = 0, where KcGo is referred to as the "open-loop" transferfunction, GOL. The proportional gain is Kc, and Go is "everything" else. If we only have aproportional controller, then Go = GmGaGp. If we have other controllers, then Go would contain

Page 135: Process Control

7 - 11

parts of the controller function. We further denote Go as a ratio of two polynomials, Q(s)/P(s), and

rewrite the polynomials in the pole-zero form: 1

1 + Kc Go = 1 + Kc

Q(s)P(s)

= 1 + Kc

(s – z1) (s – z2)… (s – zn)(s – p1) (s – p2)… (s – pm)

= 0 (7-11)

or as

(s – p1) (s – p2)… (s – pm) + Kc (s – z1) (s – z2)… (s – zn) = 0 (7-11a)

The roots of the m-th order P(s) = 0, p1, p2, … , pm, are the open-loop poles. The roots of the n-thorder Q(s) = 0, z1, z2, … , zn, are the open-loop zeros. The roots of the entire characteristic

equation (7-11) are the closed-loop poles that will constitute the root loci.

There will be m root loci, matching the order of the characteristic polynomial. We can easilysee that when Kc = 0, the poles of the closed-loop system characteristic polynomial (1 + KcGo)are essentially the same as the poles of the open-loop. When Kc approaches infinity, the poles of

the closed-loop system are the zeros of the open-loop. These are important mathematical features.

In other words, on a root locus plot, we expect the "trace" of the root loci to begin at the open-loop poles and terminate at the open-loop zeros (if there is one). For real systems, m > n, and n≥0. In these cases, the (m – n) root loci will originate from an open-loop pole and extend towardinfinity somehow, depending on the specific problem.

Before reading further, it is very important that you go through at least the first half ofMATLAB Session 6, and do computations with sample numbers while reading these root locusexamples.

✎ Example 7.2B: Do the root locus plot and find the ultimate gain of Example 7.2 (p. 7-5).

The closed-loop equation from that example is:

1 + Kc1

(s + 3) (s + 2) (s + 1) = 0

We can easily use MATLAB to find that the ultimate gain is roughly 60. The statements to use are:

G=zpk([],[-1 -2 -3],1);

k=0:1:100; % We have to use our own gain vector in this example

rlocus(G,k) % because the MATLAB default plot does not cross the Im axis

rlocfind(G)

After entering the rlocfind() command, MATLAB will prompt us to click a point on the rootlocus plot. In this problem, we select the intersection between the root locus and the imaginaryaxis for the ultimate gain.

1 If you cannot follow the fancy generalization, think of a simple problem such as a unityfeedback loop with a PD controller and a first order process. The closed-loop characteristic equationis

1 + Kc

Kp (τD s + 1)(τp s + 1)

= 0

The closed-loop pole "runs" from the point s = –1/τp at the mathematical limit of Kc = 0 to thepoint s = –1/τD as Kc approaches infinity.

Page 136: Process Control

7 - 12

✎ Example 7.3B: Repeat Example 7.3 (p. 7-5) with a root locus analysis.

The closed-loop characteristic equation from Example 7.3 is:

1 + Kc(τ Is + 1)

τ Is s2 + 2s + 1= 0

Select various values of τI and use MATLAB to construct the root locus plots. Sample statements

are:

taui=0.2; % Open-loop zero at -5

G=tf([taui 1],conv([taui 0],[1 2 1]));

rlocus(G)

We should find that for values of τI > 0.5, the system stays stable. For τI = 0.5, the system maybecome unstable, but only at infinitely large Kc. The system may become unstable for τI < 0.5 ifKc is too large. Finally, for the choice of τI = 0.1, we should find with the MATLAB function

rlocfind that the ultimate gain is roughly 0.25, the same answer from Example 7.3. How closeyou get depends on how accurate you can click the axis crossover point.

Even as we rely on MATLAB to generate root locus plots, it is important to appreciate howthey are generated. To say the least, we need to know how to identify the open-loop poles andzeros and the direction of the loci. These hints are given in our Web Support. The followingexample illustrates some of the more common ones that we may encounter in control analysis.There are many other possibilities, but this exercise should be a good starting point. MATLABSession 6 has more suggestions regarding the plots that are associated with the use of controllers.

✎ Example 7.6: Construct the root locus plots of some of the more common closed-loopequations with numerical values. Make sure you try them yourself with MATLAB.

(a) A sample first order system, and the MATLAB statement:

1 + K 1(s + 2) = 0 rlocus(tf(1,[1 2]))

(b) A second order system:

1 + K 1(s + 2) (s + 1) = 0 rlocus(zpk([],[-1 -2],1))

(c) Second order system with repeated open-loop poles:

1 + K 1(s + 2)2 = 0 rlocus(zpk([],[-2 -2],1))

(d) Second order system with different open-loop zeros:

1 + K (s + 0.5)(s + 2) (s + 1) = 0 rlocus(zpk(-0.5,[-1 -2],1))

1 + K (s + 1.5)(s + 2) (s + 1) = 0 rlocus(zpk(-1.5,[-1 -2],1))

1 + K (s + 4)(s + 2) (s + 1) = 0 rlocus(zpk(-4,[-1 -2],1))

(e) Third order system:

Page 137: Process Control

7 - 13

1 + K 1(s +3) (s + 2) (s + 1) = 0 rlocus(zpk([],[-1 -2 -3],1))

(f) Third order system with an open-loop zero:

1 + K (s + 1.5)(s +3) (s + 2) (s + 1) = 0 rlocus(zpk(-1.5,[-1 -2 -3],1))

See also what the plot is like if the open-loop zero is at –0.5, –2.5, and –3.5.

These are rough sketches of what you should obtain with MATLAB. The root locus of thesystem in (a) is a line on the real axis extending to negative infinity (Fig. E7.6a). The root loci in(b) approach each other (arrows not shown) on the real axis and then branch off toward infinity at90°. The repeated roots in (c) simply branch off toward infinity.

With only open-loop poles, examples (a) to (c) can only represent systems with aproportional controller. In case (a), the system contains a first orders process, and in (b) and (c) areoverdamped and critically damped second order processes.

–2✕

–1✕ ✕ ✕–2 –2

(a) (b) (c)

Figure E7.6a.

The sketches for (d) illustrate how an open-loop zero, say, in an ideal PD controller, mayaffect the root locus plot and dynamics of a system containing an overdamped second order process.Underdamped system behavior is expected only when the open-loop zero is large enough (i.e., τD

sufficiently small). On the left panel of Fig. E7.6b, one locus goes from the –1 open-loop pole tothe open-loop zero at –0.5 (arrow not shown). The second locus goes from –2 to negative infinityon the real axis. In the middle panel, one locus goes from –1 to the open-loop zero at –1.5 (arrownot shown). On the right where the open loop zero is at –4, two root loci move toward each from–1 and –2 (arrows not shown), then branch off. The branches break in later onto the real axis; onelocus approaches the zero at –4, the other toward negative infinity.

–1✕

–1✕ ✕ ✕–2 –4

(d)

✕–2

✕–2 –1

Figure E7.6b.

Systems (e) and (f) would contain a third order process. Of course, we can only have aproportional control in case (e), while (f) represents one probable scenario of using an ideal PDcontroller.

The system in (e) can become unstable, while a proper addition of an open-loop zero, as in(f), can help stabilize the system (Fig. E7.6c). In (e), the two loci from –1 and –2 approach eachother (arrows not shown). They then break away and the closed-loop poles become unstable. The

Page 138: Process Control

7 - 14

two loci approach positive infinity at ±60°. In (f), the system is always stable. The dominantclosed-loop pole is the locus moving from –1 to –1.5 (arrow not shown). This system is fasterthan if we had put the open-loop zero at, say, –0.5.

–1✕

–1✕ ✕–2

(e)

✕–2

(f)

✕ ✕–3 –3

Figure E7.6c.

In most classic control texts, we find plotting guidelines to help hand sketching of rootlocus plots. After going over Example 7.6, you should find that some of them are quite intuitive.These simple guidelines are:

1. The root locus plot is symmetric about the real axis.

2. The number of loci equals the number of open-loop poles (or the order of the system).

3. A locus (closed-loop root path) starts at an open-loop pole and either terminates at anopen-loop zero or extends to infinity.

4. On the real axis, a root locus only exists to the left of an odd number of real poles andzeros. (The explanation of this point is on our Web Support.)

5. The points at which the loci cross the imaginary axis can be found by the Routh-Hurwitzcriterion or by substituting s = jω in the characteristic equation. (Of course, we can alsouse MATLAB to do that.)

To determine the shape of a root locus plot, we need other rules to determine the locations ofthe so-called breakaway and break-in points, the corresponding angles of departure and arrival, andthe angle of the asymptotes if the loci approach infinity. They all arise from the analysis of thecharacteristic equation. These features, including item 4 above, are explained in our Web Supportpages. With MATLAB, our need for them is minimal.

Note:

There are two important steps that we must follow. First, make sure you go through theMATLAB tutorial (Session 6) carefully to acquire a feel on the probable shapes of rootlocus plots. Secondly, test guidelines 3 and 4 listed above for every plot that you makein the tutorial. These guidelines can become your most handy tool to deduce, withoutdoing any algebra, whether a system will exhibit underdamped behavior. Or in otherwords, whether a system will have complex closed-loop poles.

Page 139: Process Control

7 - 15

7.5 Root Locus Design

In terms of controller design, the closed-loop poles (or now the root loci) also tell us about thesystem dynamics. We can extract much more information from a root locus plot than from aRouth criterion analysis or a s = jω substitution. In fact, it is common to impose, say, a timeconstant or a damping ratio specification on the system when we use root locus plots as a designtool.

✎ Example 7.5A: Consider the second order system in Example 7.5 (p. 7-9), what should theproportional gain be if we specify the controlled system to have a damping ratio of 0.7?

The second order closed-loop characteristic equation in Example 7.5 can be rearranged as

τ1 τ2

(1 + KcKp)s2 +

(τ1 + τ2 )

(1 + KcKp)s + 1 = 0

We can compare this equation with the general form τ2s2 + 2ζτs + 1 = 0, where now τ is thesystem time period and ζ is the system damping ratio. From Example 5.2 (p. 5-14), we havederived that

τ =

τ1 τ2

(1 + KcKp), and

ζ = 12

(τ1 + τ2 )

τ1 τ2 (1 + KcKp)

Thus we can solve for Kc with a given choice of ζ in a specific problem.

However, MATLAB allows us to get the answer with very little work—something that is veryuseful when we deal with more complex systems. Consider a numerical problem with values ofthe process gain Kp = 1, and process time constants τ1 = 2 and τ2 = 4 such that the closed-loop

equation is

1 + Kc1

(2s + 1) (4s + 1)= 0

We enter the following statements in MATLAB: 1

G=tf(1,conv([2 1],[4 1]));rlocus(G)

sgrid(0.7,1) % plot the 0.7 damping ratio lines

[kc,cpole]=rlocfind(G)

Where the root locus intersects the 0.7 damping ratio line, we should find, from the result returnedby rlocfind(), the proportional gain to be 1.29 (1.2944 to be exact), and the closed-loop poles at–0.375±0.382j. The real and imaginary parts are not identical since cos–10.7 is not exactly 45°.We can confirm the answer by substituting the values into our analytical equations. We shouldfind that the real part of the closed-loop pole agrees with what we have derived in Example 7.5,and the value of the proportional gain agrees with the expression that we derived in this example.

1 The technique of using the damp ratio line θ = cos–1ζ in Eq. (2-34) is applied to higher ordersystems. When we do so, we are implicitly making the assumption that we have chosen thedominant closed-loop pole of a system and that this system can be approximated as a second orderunderdamped function at sufficiently large times. For this reason, root locus is also referred to asdominant pole design.

Page 140: Process Control

7 - 16

✎ Example 7.7: Consider installing a PI controller in a system with a first order process suchthat we have no offset. The process function has a steady state gain of 0.5 and a time constant of 2min. Take Ga = Gm = 1. The system has the simple closed-loop characteristic equation:

1 + Kc0.5 (τ I s + 1)τ I s (2s + 1) = 0

We also want to have a slightly underdamped system with a reasonably fast response and adamping ratio of 0.7. How should we design thecontroller? To restrict the scenario for illustration, weconsider (a) τI = 3 min, and (b) τI = 2/3 min.

To begin with, this is a second order system with nopositive zeros and so stability is not an issue.Theoretically speaking, we could have derived andproved all results with the simple second ordercharacteristic equation, but we take the easy way outwith root locus plots.

(a) The open-loop poles are at –0.5 and at the origin.If the integral time constant is τI = 3 min, the open-

loop zero is at –1/3, and all we have are negative andreal closed-loop poles (Fig. E7.7a). The system willnot become underdamped. The "speed" of theresponse, as we increase the proportional gain, islimited by the zero position at –1/3. This is wherethe dominant closed-loop pole will approach.

(b) The situation is more interesting with a smaller integral time constant, τI = 2/3 min, with now

the open-loop zero at –1.5. The root loci first approach one another (arrows not shown) beforebreaking away to form the circle (Fig. E7.7b). As Kc increases further, the loci break into the real

axis. The dominant closed-loop pole will approach the zero at –1.5.

We use the following MATLAB statements to draw the 0.7 damping ratio line, and it intersects theroot loci at two points (Fig. E7.7): at (A), –0.312+0.323j when Kc = 0.55, and at (B),–1.15+1.17j when Kc = 7.17.

kc=1; taui=2/3;

Gc=tf(kc*[taui 1], [taui 0]);

Gp=tf(0.5, [2 1]);rlocus(Gc*Gp)

sgrid(0.7,1)

[kc,cpole]=rlocfind(Gc*Gp)

If saturation is not a problem, the proportional gain Kc = 7.17 (point B) is preferred. The

corresponding closed-loop pole has a faster time constant. (The calculation of the time period orfrequency and confirmation of the damping ratio is left as homework.)

Note 1: Theoretically speaking, the point C on the root locus plot is ideal—the fastest possibleresponse without any oscillation. We rarely can do that in practice; the proportional gain wouldhave been so large that the controller would be saturated.

Note 2: As we reduce the integral time constant from τI = 3 min to exactly 2 min, we have the

situation of pole-zero cancellation. The terms in the closed-loop characteristic equation cancel

X X–1–2–3

AC

B

XX–0.5

(a)

(b)

Figure E7.7

Page 141: Process Control

7 - 17

out, and the response in this example is reduced to that of a first order system. If τI is only slightly

less than 2 min, we have a very slightly underdamped system; the "circle" in (b) is very small (trythis with MATLAB). In reality, it is very difficult to have perfect pole-zero cancellation, and if wedesign the controller with τI too close to τp, the system response may "bounce back and forth."

✑ A final remark on root locus plots

For as instructive as root locus plots appear to be, this technique does have its limitations. Themost important one is that it cannot handle dead time easily. When we have a system with deadtime, we must make an approximation with the Padé formulas. This is the same limitation thatapplies to the Routh-Hurwitz criterion.

In this computer age, one may question why nobody would write a program that can solve forthe roots with dead time accurately? Someone did. There are even refined hand sketching techniquesto account for the lag due to dead time. However, these tools are not as easy to apply and are rarelyused. Few people use them because frequency response analysis in Chapter 8 can handle dead timeaccurately and extremely easily.

A second point on root locus plot is that it can only give us the so-called absolute stability,but not relative stability, meaning that there is no easy way to define a good, general "safetymargin." We may argue that one can define a certain distance which a closed-loop pole must stayaway from the imaginary axis, but such approach is very problem specific. Recall that theproportional gain is an implicit parameter along a locus, and is very difficult to tell what effectsone may have with slight changes in the proportional gain (the sensitivity problem). Frequencyresponse analysis once again does better and allows us to define general relative stability criteria.Furthermore, frequency response analysis can help us to understand why a certain choice of, forexample, an integral time constant may destabilize a system. (Jumping ahead, it has to do withwhen we bring in phase lead. We shall see that in Chapter 8 and Example 10.1.)

On the other hand, frequency response analysis cannot reveal information on dynamic responseeasily—something root locus does very well. Hence controller design is always an iterativeprocedure. There is no one-stop-shopping. There is never a unique answer.

Finally, you may wonder if one can use the integral or the derivative time constant as theparameter. Theoretically, we can. We may even rearrange the characteristic equation in such a waythat can take advantage of pre-packaged programs that use the proportional gain as the parameter.In practice, nobody does that. One main reason is that the resulting loci plot will not have thisnice interpretation that we have by varying the proportional gain.

❐ Review Problems

1. Repeat Examples 7.2 and 7.4 with the general closed-loop characteristic polynomial:

a3 s3 + a2 s2 + a1 s + ao + Kc = 0

Derive the ultimate frequency and ultimate gain.

2. No additional reviews are needed as long as you go through each example carefully withMATLAB.

Page 142: Process Control

P.C. Chau © 2001

❖ 8. Frequency Response Analysis

The frequency response of a given system at large times is characterized by its amplitude and phaseshift when the input is a sinusoidal wave. These two quantities can be obtained from the transferfunction, of course, without inverse transform. The analysis is based on a simple substitution(mapping) s = jω, and the information is given by the magnitude (modulus) and the phase angle(argument) of the transfer function. Since the analysis begins with Laplace transform, we are stilllimited to linear or linearized models.

What are we up to?• Theoretically, we are making the presumption that we can study and understand the dynamic

behavior of a process or system by imposing a sinusoidal input and measuring the frequencyresponse. With chemical systems that cannot be subject to frequency response experimentseasily, it is very difficult for a beginner to appreciate what we will go through. So until then,take frequency response as a math problem.

• Both the magnitude and the argument are functions of the frequency. The so-named Bode andNyquist plots are nothing but graphical representations of this functional dependence.

• Frequency response analysis allows us to derive a general relative stability criterion that caneasily handle systems with time delay. This property is used in controller design.

8.1 Magnitude and Phase Lag

Our analysis is based on the mathematical property that given a stable process (or system) and asinusoidal input, the response will eventually become a purely sinusoidal function. This outputwill have the same frequency as the input, but with different amplitude and phase angle. The twolatter quantities can be derived from the transfer function.

We first illustrate the idea of frequency response using inverse Laplace transform. Consider ourgood old familiar first order model equation, 1

τpdydt

+ y = Kp f(t) (8-1)

with its transfer function

G(s) =

Y(s)F(s)

=Kp

τp s + 1(8-2)

If the input is a sinusoidal function such that f(t) = Asinωt, the output Y(s) is

Y(s) =

Kp

τp s + 1Aω

s2 + ω2(8-3)

If we do the partial fraction expansion and inverse transform, we should find, after some hard work,the time domain solution:

1 While we retain our usual notation of using a subscript p for a first order function inillustrations, the analysis is general; it applies to an open-loop process or a closed-loop system. Inother words, we can apply a sinusoidal change to the set point of a system if we need to.

Page 143: Process Control

8 - 2

y(t) =

AKpτpω

τp2 ω2 + 1

e– t / τp +AKp

τp2 ω2 + 1

sin(ωt + φ) (8-4)

where

φ = tan–1 ( – ωτp ) (8-5)

is the phase lag.1 The algebraic details of deriving Eq. (8-4) arenot important. The important aspects will be derived via analternative route just a few steps ahead. For now, the crucialpoint is to observe that if time is sufficiently large (as relativeto τp), the exponential term in Eq. (8-4) will decay away, and

the time response becomes a purely sinusoidal function (Fig.8.1).

The time response at sufficiently large times can benormalized with respect to the amplitude of the input sine wave:

y∞ (t)A

=Kp

τp2 ω2 + 1

sin(ωt + φ) (8-6)

where now the amplitude of this normalized large-time response is called the amplitude ratio(AR). The response has a different amplitude and phase lag in relation to the input wave. If wefurther normalize the equation such that the amplitude of the sine wave is bounded by one, weobtain

y∞ (t)AKp

=1

τp2 ω2 + 1

sin(ωt + φ) (8-7)

The amplitude of this normalized response, y∞/AKp, is called the magnitude ratio. 2

Next, let's substitute s = jω in the transfer function, i.e., Gp(s) = Gp(jω), which makes Gp acomplex number:3

Gp(jω) =

Kp

jωτp + 1

–jωτp + 1

–jωτp + 1=

Kp

τp2 ω2 + 1

– jKp ωτp

τp2 ω2 + 1

(8-8)

If we put (8-8) in polar coordinates, Gp(jω) = |Gp(jω)| ejφ, the magnitude and phase angle are

Gp (jω) =

Kp

τp2 ω2 + 1

, and φ = ∠ Gp(jω) = tan–1 (– ωτp) (8-9)

A comparison of Eqs. (8-9) with (8-6) shows that the magnitude and the phase angle of Gp(jω) are

exactly the same as the amplitude and phase lag of the normalized "large time" time domainsolution.

1 In these calculations, the units of frequency are radian/time. If the period T is given in s, thenfrequency ω = 1/T Hz [Hertz or cycles/s] or ω = 2π/T [radian/s].

2 This is a major source of confusion in many texts. The magnitude ratio is not the magnitude ofa transfer function. It is the amplitude ratio that is the same as the magnitude of G(s). To avoidconfusion, we'll stick strictly with the mathematical property, i.e., the magnitude of G(s). We willuse neither amplitude ratio nor magnitude ratio in our terminology. It is much more sensible toconsider the magnitude of a transfer function.

3 If you need that, a brief summary of complex variable definitions is on our Web Support.

Figure 8.1. Schematic response (solidcurve) of a first order function to a sinusoidalinput (dashed). The response has a smalleramplitude, a phase lag, and its exponentialterm decays away quickly to become a puresinusoidal response.

Page 144: Process Control

8 - 3

We should note that the magnitude and phase angle of Gp(jω) are functions of the input

frequency. The larger the frequency, the lower the magnitude, and the larger the phase lag. We canmake this observation by writing τpω = ω/ωp. When the imposed frequency is large with respectto the process "natural" frequency, ωp, the process cannot respond fast enough, resulting in a low

magnitude and large phase lag. When the imposed frequency is relatively small, the magnitudeapproaches the steady state gain and the phase lag approaches zero.

8.1.1 The general analysis

We now generalize our simple illustration. Consider a general transfer function of a stable modelG(s), which we also denote as the ratio of two polynomials, G(s) = Q(s)/P(s). We impose asinusoidal input f(t) = A sin ωt such that the output is

Y(s) = G(s)

Aωs2 + ω2

=Q(s)P(s)

Aω(s + jω)(s – jω)

Since the model is stable, all the roots of P(s), whether they be real or complex, have negative realparts and their corresponding time domain terms will decay away exponentially. Thus if we areonly interested in the time domain response at sufficiently large times, we only need to considerthe partial fraction expansion of the two purely sinusoidal terms associated with the input:

Y∞(s) =a

(s + jω)+

a*(s – jω)

(8-10)

We can find their inverse transform easily. Apply the Heaviside expansion,

a = (s + jω)Y(s) s = – jω = G(–jω)Aω

–2jω =AG(–jω)

–2j

and its conjugate, redundantly just in case you do not believe the result is correct,

a* = (s – jω)Y(s) s = + jω = G(jω)Aω2jω =

AG(jω)2j

The time domain solution (at large times) is hence

y∞ (t) =AG(–jω)

–2je–jωt +

AG(jω)2j

ejωt

Note that G(jω) = |G(jω)| ejφ, and G(–jω) = |G(jω)| e–jφ, and we can write

y∞ (t)A

= G(jω)e–jφe–jωt

–2j+

ejφejωt

2j

Apply Euler’s identity and the final result for the normalized response is

y∞ (t)A

= G(jω) sin(ωt + φ) , where φ= ∠ G(jω) (8-11)

This is a crucial result. It constitutes the basis of frequency response analysis, where in general,all we need are the magnitude and the argument of the transfer function G(s) after the substitutions = jω.

8.1.2 Some important properties

We need to appreciate some basic properties of transfer functions when viewed as complexvariables. They are important in performing frequency response analysis. Consider that any given

Page 145: Process Control

8 - 4

transfer function can be "broken up" into a product of simpler ones:

G(s) = G1(s)G2(s) … Gn(s) (8-12)

We do not need to expand the entire function into partial fractions. The functions G1, G2, etc., are

better viewed as simply first and at the most second order functions. In frequency responseanalysis, we make the s = jω substitution and further write the function in terms of magnitude andphase angle as:

G(jω) = G1(jω) G2(jω)... Gn(jω) = G1(jω) ejφ1 G2(jω) ejφ2... Gn(jω) ejφn

or

G(jω) = G1(jω) G2(jω) ... Gn(jω) ej φ1 + φ2 +... + φn

The magnitude of G(jω) is

G(jω) = G1(jω) G2(jω) ... Gn(jω) (8-13)

or

log G(jω) = log G1 + log G2 + … + log Gn

The phase angle is

φ= ∠ G(jω) = ∠ G1(jω) + ∠ G2(jω) + ... + ∠ Gn(jω) (8-14)

✎ Example 8.1. Derive the magnitude and phase lag of the following transfer function:

G(s) =

(τa s + 1)

(τ1 s + 1) (τ2 s + 1)

We can rewrite the function as a product of

G(s) = (τa s + 1)1

(τ1 s + 1)1

(τ2 s + 1)

The magnitude and phase angle of these terms with the use of Eq. (8-9) are

G(jω) = 1 + τa2ω2 1

1 + τ12 ω2

1

1 + τ22 ω2

and

φ = tan–1(ωτa) + tan–1(– ωτ1) + tan–1(– ωτ2)

We have not covered the case of a zero term in the numerator. Here, we are just guessing that itsresult is the reciprocal of the first order function result in Eq. (8-9). The formal derivation comeslater in Example 8.4. Note that τ has units of time, ω is radian/time, and τω is in radian.

We could have put G(s) in a slightly different form:

G(jω) =

Ga(jω)Gb(jω)... Gm(jω)

G1(jω)G2(jω)... Gn(jω)=

Ga Gb …

G1 G2 …ej (θa + θb + … – θ1 – θ2 – …) (8-15)

In this case, the equivalent form of Eq. (8-13) is

Page 146: Process Control

8 - 5

log G(jω) = log Ga + log Gb +… + log Gm – log G1 + log G2 +… + log Gn

(8-16)

and the equivalent to Eq. (8-14) is

φ = ∠ Ga + ∠ Gb +… + ∠ Gm – ∠ G1 + ∠ G2 +… + ∠ Gn (8-17)

With these results, we are ready to construct plots used in frequency response analysis. Theimportant message is that we can add up the contributions of individual terms to construct the finalcurve. The magnitude, of course, would be on the logarithmic scale.

8.2 Graphical analysis tools

We know that both |G(jω)| and ∠ (G(jω)) are functions of frequency, ω. We certainly would like tosee the relationships graphically. There are three common graphical representations of thefrequency dependence. We first describe all three methods briefly. Our introduction relies on the usethe so-called Bode plots and more details will follow with respective examples.

8.2.1 Magnitude and Phase Plots — log G(jω) vs. log ω and ∠ G(jω) vs. log ω

Here, we simply plot the magnitude (modulus) and phase angle (argument) individually againstfrequency—the so-called Bode plots. From Eq. (8-16), we should use a log scale for themagnitude. We also use a log scale for the frequency to cover a larger range. Thus we use a log-logplot for |G(jω)| versus ω, and a semi-log plot for ∠ G(jω) versus ω. The unit of phase angle iscommonly converted to degrees, and frequency is in radian per unit time.

In most electrical engineering or industrial control books, the magnitude is plotted in units ofdecibel (dB) as

1 dB = 20 log |G(jω)| (8-18)

Even with MATLAB, we should still know the expected shape of the curves and its “telltale”features. This understanding is crucial in developing our problem solving skills. Thus doing a fewsimple hand constructions is very instructive. When we sketch the Bode plot, we must identify thecorner (break) frequencies, slopes of the magnitude asymptotes and the contributions of phase lagsat small and large frequencies. We’ll pick up the details in the examples.

Another advantage of frequency response analysis is that one can “identify” the process transferfunction with experimental data. With either a frequency response experiment or a pulseexperiment with proper Fourier transform, one can construct the Bode plot using the open-looptransfer functions and use the plot as the basis for controller design.1

8.2.2 Polar Coordinate Plots — G(jω) in polar coordinates, or Re[G(jω)] vs. Im[G(jω)]

We can plot the real and imaginary parts of G(jω) on the s-plane with ω as the parameter—the so-called Nyquist plot. Since a complex number can be put in polar coordinates, the Nyquist plotis also referred to as the polar plot.

G(jω) = Re[G(jω)] + Im [G(jω)] = G(jω) ejφ

This plotting format contains the same information as the Bode plot. The polar plot is morecompact, but the information on the frequency is not shown explicitly. If we do not have acomputer, we theoretically could read numbers off a Bode plot to construct the Nyquist plot. Theuse of Nyquist plots is more common in multiloop or multivariable analyses. A Bode plot, on the

1 The pulse experiment is not crucial for our understanding of frequency response analysis and isprovided on our Web Support, but we will do the design calculations in Section 8.3.

Page 147: Process Control

8 - 6

other hand, is easier to interpret and a good learning tool.

There are hand-plotting techniques, but we'll rely on the computer. Still, we need to know thequalitative features of the plot resulting from several simple transfer functions.

8.2.3 Magnitude vs Phase Plot — log G(jω) vs. ∠ G(jω)

In the third rendition of good old G(jω), we can plot the logarithmic magnitude against the phaselag—the so-called Nichols chart. Generally, this plot is made using the open-loop transferfunction of a unity feedback system. The magnitude and argument contours of the closed-looptransfer function are overlaid on it. The plot allows for a frequency response design analysis thatbetter relates to probable closed-loop dynamic response.

For now, we'll take a look at the construction of Bode and Nyquist plots of transfer functionsthat we have discussed in Chapters 2 and 3. Keep in mind that these plots contain the sameinformation: G(jω). It is important that you run MATLAB with sample numerical values whilereading the following examples. Yes, you need to go through MATLAB Session 7 first.

✎ Example 8.2. What are the Bode and Nyquist plots of a first order transfer function?

–90°

G

φ

ω

K

–45°

p

1/τp

slope = –1

ω =0∞Kp

ω =

ω =1/τp

Figure E8.2

We will use the time constant form of transfer functions. The magnitude and phase angle of

G(s) =

Y(s)F(s)

=Kp

τp s + 1

are derived in Eq. (8-9) as

Gp (jω) =

Kp

τp2 ω2 + 1

and φ= ∠ Gp(jω) = tan–1 (– ωτp)

We may try the following MATLAB statements to generate Fig. E8.2:

kp=1; % Just arbitrary values. Try different ones yourself.

tau=2;

G=tf(kp,[tau 1]);

figure(1), bode(G);

figure(2), nyquist(G); %If the nyquist default plot is confusing,

%follow the instructions in MATLAB Session 7

We plot, in theory:

Page 148: Process Control

8 - 7

log Gp (jω) = log Kp –12

log (1+ τp2 ω2)

To make the phase angle plot, we simply use the definition of ∠ Gp(jω). As for the polar(Nyquist) plot, we do a frequency parametric calculation of |Gp(jω)| and ∠ Gp(jω), or we cansimply plot the real part versus the imaginary part of Gp(jω).1 To check that a computer program

is working properly, we only need to use the high and low frequency asymptotes—the same if wehad to do the sketch by hand as in the old days. In the limit of low frequencies,

ω —> 0, |Gp| = Kp, and φ = 0

On the magnitude plot, the low frequency (also called zero frequency) asymptote is a horizontalline at Kp. On the phase angle plot, the low frequency asymptote is the 0° line. On the polar plot,the zero frequency limit is represented by the point Kp on the real axis. In the limit of high

frequencies,

ω —> ∞,

|Gp| =Kp

τp ω , and φ = tan–1(–∞) = –90°

With the phase lag, we may see why a first order function is also called a first order lag. On themagnitude log-log plot, the high frequency asymptote has a slope of –1. This asymptote alsointersects the horizontal Kp line at ω = 1/τp. On the phase angle plot, the high frequency

asymptote is the –90° line. On the polar plot, the infinity frequency limit is represented by theorigin as the Gp(jω) locus approaches it from the –90° angle.

The frequency at which ω = 1/τp is called the corner frequency (also break frequency). At this

position,

ω = 1/τp, |Gp| = Kp/√2, and φ = tan–1(–1) = –45°

One may question the significance of the break frequency, ω = 1/τ. Let's take the first ordertransfer function as an illustration. If the time constant is small, the break frequency is large. Inother words, a fast process or system can respond to a large range of input frequencies without adiminished magnitude. On the contrary, a slow process or system has a large time constant and alow break frequency. Theresponse magnitude isattenuated quickly as the inputfrequency increases.Accordingly, the phase lagalso decreases quickly to thetheoretical high frequencyasymptote.

A common term used incontrol engineering isbandwidth, which is definedas the frequency at which anygiven |G(jω)| drops to 70.7%of its low frequencyasymptotic value (Fig. 8.2). It

1 All comments on Nyquist plots are made without the need of formal hand sketching techniques.Strictly speaking, the polar plot is a mapping of the imaginary axis from ω = 0+ to ∞. You'll see

that in texts that provide a more thorough discussion on choosing the so-called Nyquist path.

10-4

10-3

10-2

10-1

100

10-2 10-1 100 101 102

|G(j

ω)|

Freq.

0.707K

Large τ ,Narrowbandwidth

Small τ ,Widebandwidth

Figure 8.2. Schematic illustration of two systems with wideand narrow bandwidths.

Page 149: Process Control

8 - 8

is obvious that the 70.7% comes from the 1/√2 of the first order function calculation in Example8.2.1 A large bandwidth is related to a fast system with a small time constant. On the other hand,slow responses or large time constants are cases with narrow bandwidth. From another perspective,the first order function is the simplest example of a low-pass filter. Signals with frequenciesbelow the bandwidth are not attenuated, while their magnitude diminishes with higher frequencies.

✎ Example 8.3. What are the Bode and Nyquist plots of a second order transferfunction?

We make the s = jω substitution in the transfer function

G(s) =K

τ2s2+ 2ζτs + 1to obtain

G(jω) =

K

(1 – τ2ω2) + j 2ζτω=

K [(1 – τ2ω2) – j 2ζτω]

1 – τ2ω2 2+ 2ζτω 2

After a few algebraic steps, the resulting magnitude and phase angle of G(jω) are:

G(jω) =K

1 – τ2ω2 2+ 2ζτω 2

, and

φ= ∠ G(jω) = tan– 1 – 2ζτω1 – τ2ω2

–180°

G

φ

ω

K

–90°

1/τ

slope = –2

K

ζ < 1/2

ζ ≥ 1

ζ ≥ 1 ζ < 1/2ζ < 1/2

ζ ≥ 1

Figure E8.3

These are sample MATLAB statements to plot the magnitude and phase angle as in Fig. E8.3:

k=1; % Just arbitrary values. Try different ones yourself.tau=2;zeta=0.2;G=tf(k,[tau*tau 2*zeta*tau 1]);damp(G) % confirm the damping ratiofigure(1), bode(G);figure(2), nyquist(G);

In the limit of low frequencies,

1 This is also referred to as the 3 dB bandwidth. The term comes from 20 log(1/√2) = –3.01 dB.

Page 150: Process Control

8 - 9

ω —> 0, |G| = K, and φ = 0

And in the limit of high frequencies,

ω —> ∞, |G| =K

τ2ω2 , and φ ≈ tan– 1 (– 2ζτω– τ2ω2

) = tan– 1 (2ζτω) = tan– 1 (0) = –180°

We choose –180° (and not 0°) because we know that there must be a phase lag. On the magnitudelog-log plot, the high frequency asymptote has a slope of –2. This asymptote intersects thehorizontal K line at ω = 1/τ.

At the corner frequency,

ω = 1/τ , G(jω) =K2ζ , and φ = tan–1(–∞) = –90°

For a process or system that is sufficiently underdamped, ζ < 1/2, the magnitude curve will riseabove the low frequency asymptote, or the polar plot will extend beyond the K-radius circle.

We can take the derivative of the magnitude equation G(jω) = K / 1 – τ2ω2 2+ 2ζτω 2 to find

the actual maximum and its associated frequency, the so-called resonant frequency, ωr: 1

ωr =

1 – 2ζ 2

τ = ω 1 – 2ζ 2 (8-19)

and the maximum magnitude Mpω is

Mpω = G(jω) max =K

2ζ 1 – ζ 2(8-20)

From Eq. (8-19), there would only be a maximum if 0 < ζ < 1/√2 (or 0.707).

We can design a controller by specifying an upper limit on the value of Mpω. The smaller thesystem damping ratio ζ, the larger the value of Mpω is, and the more overshoot, or underdamping

we expect in the time domain response. Needless to say, excessive resonance is undesirable.

✎ Example 8.4. What are the Bode and Nyquist plots of a first order lead G(s) = (τps + 1)?

After the s = jω substitution, we have

G(jω) = 1 + jωτp

where

G(jω) = 1 + ω2τ p2 and ∠ G(jω) = tan– 1 (ωτp)

We may try the following MATLAB statements for Fig. E8.4:

taud=2; % Just an arbitrary value

G=tf([taud 1],1);

1 The step just before the result in (8-19) is 2 (1 – τ2ω2) (– 2ωτ2) + 2 (2ζτω) (2ζτ) = 0 . In most texts, thederivation is based on unity gain K = 1 and so it will not show up in (8-20). Most texts also plot(8-19) and (8-20) as a function of ζ. But with MATLAB, we can do that ourselves as an exercise.

Page 151: Process Control

8 - 10

figure(1), bode(G);

figure(2), nyquist(G);

90°

G

φ

ω

1

45°

1/τp

slope = 1

ω =0

∞ω =

1

Figure E8.4

The magnitude and phase angle plots are sort of "upside down" versions of first order lag, with thephase angle increasing from 0° to 90° in the high frequency asymptote. The polar plot, on theother hand, is entirely different. The real part of G(jω) is always 1 and not dependent on frequency.

✎ Example 8.5. What are the Bode and Nyquist plots of a dead time function G(s) = e–θs?

–180°

G

φ

ω

1

1

Figure E8.5

Again, we make the s = jω substitution in the transfer function to obtain

G(jω) = e–θωj

The magnitude is simply unity, |G(jω)| = 1, and the phase angle is

∠ G(jω) = –ωθ

When ω = π/θ, ∠ G(jω) = –π. On the polar plot, the dead time function is a unit circle.

We need hints from our MATLAB Session to plot this function in Fig. E8.5. We’ll do it together

Page 152: Process Control

8 - 11

with the next example.

The important point is that the phase lag of the dead time function increases without boundwith respect to frequency. This is what is called a nonminimum phase system, as opposed tothe first and second transfer functions which are minimum phase systems. Formally, a minimumphase system is one which has no dead time and has neither poles nor zeros in the RHP. (SeeReview Problems.)

From here on, we will provide only the important analytical equations or plots of asymptotesin the examples. You should generate plots with sample numerical values using MATLAB as youread them.

✎ Example 8.6. What are the Bode and Nyquist plots of a first order lag with dead time?

This example shows us the very important reason why and how frequency response analysis can

handle dead time so easily. Substitute s = jω in G(s) =Kp e– td s

τp s + 1 , and we have

G(jω) =

Kp e– jωtd

jωτp + 1

From Example 8.5, we know that the magnitude of the dead time function is 1. Combining alsowith the results in Example 8.2, the magnitude and phase angle of G(jω) are

G(jω) =Kp

1 + ω2τ p2

, and ∠ G(jω) = tan– 1 ( – ωτp) – ω td

The results are exact—we do not need to make approximations as we had to with root locus or theRouth array. The magnitude plot is the same as the first order function, but the phase lag increaseswithout bound due to the dead time contribution in the second term. We will see that this is amajor contribution to instability. On the Nyquist plot, the G(jω) locus starts at Kp on the real

axis and then "spirals" into the origin of the s-plane.

This is how we may do the plots with time delay (details in MATLAB Session 7). Half of the workis taken up by the plotting statements.

kp=1; % Some arbitrary values

taup=10;

G=tf(kp,[taup 1]);

tdead=2;

freq=logspace(-1,1); %Make a frequency vector

[mag,phase]=bode(G,freq);

mag=mag(1,:); phase=phase(1,:); %MATLAB specific step

phase = phase - ((180/pi)*tdead*freq); %Add dead time phase lag

figure(1);

subplot(211), loglog(freq,mag)

ylabel('Magnitude'),title('Bode Plot'), grid

subplot(212), semilogx(freq,phase)

ylabel('Phase (degree)'),xlabel('Frequency'), grid

figure(2) % We have to switch over to the polar plot

phase=phase*pi/180; % function to do this Nyquist plot

Page 153: Process Control

8 - 12

polar(phase,mag)

✎ Example 8.7. What are the Bode and Nyquist plots of a pure integrating functionG(s) = K/s?

The s = jω substitution in the integrating function leads to a pure imaginary number:G(jω) = K/jω = – jK/ω. The magnitude and phase angle are

|G(jω)| = K/ω, and ∠ G(jω) = tan–1(–∞) = –90°

Sample MATLAB statements are:

G=tf(1,[1 0]);

figure(1), bode(G)

figure(2), nyquist(G)

The magnitude log-log plot is a line with slope –1. The phase angle plot is a line at –90°. Thepolar plot is the negative imaginary axis, approaching from negative infinity with ω = 0 to theorigin with ω —> ∞.

✎ Example 8.8. What are the Bode and Nyquist plots of a first order lag with anintegrator?

Our first impulse may be a s = jω substitution in the transfer function

G(s) =Kp

s (τp s + 1)

However, the result is immediately obvious if we consider the function as the product of a firstorder lag and an integrator. Combining the results from Examples 8.2 and 8.7, the magnitude andphase angle are

G(jω) =

Kp

ω 1 + τ p2 ω2

,

and

∠ G(jω) = tan– 1 ( – ∞) + tan– 1 ( – τp ω) = – 90° + tan– 1 ( – τp ω)

Sample MATLAB statements are:

kp=1;

taup=2;

G=tf(kp,[taup 1 0]);

figure(1), bode(G)

figure(2), nyquist(G)

Because of the integrator, the magnitude log-log plot does not have a low or high frequencyasymptote. The plot is a curve in which magnitude decreases with frequency. The phase angle plotstarts at –90° at the low frequency asymptote and decreases to –180° at the high frequencyasymptote. The polar plot curve approaches from negative infinity along the vertical line –Kpτp

Page 154: Process Control

8 - 13

and approaches the origin as ω—> ∞.

✎ Example 8.9. Sketch the Bode plot of thefollowing transfer function:

G(s) = (5s + 1)(10s + 1) (2s + 1)

The MATLAB statements are:

G=tf([5 1],conv([10 1],[2 1]));

bode(G);

Formally, we would plot

G(jω) = 1 + 52ω2 1

1 + 102ω2

1

1 + 22ω2,

and

∠ G(jω) = tan–1 (5ω) + tan–1 (– 10ω) + tan–1 (– 2ω)

With MATLAB, what you find is that the actual curves are very smooth; it is quite different fromhand sketching. Nevertheless, understanding the asymptotic features is important to help us checkif the results are correct. This is particularly easy (and important) with the phase lag curve.

To help understand MATLAB results, a sketch of the low and high frequency asymptotes is providedin Fig. E8.9. A key step is to identify the corner frequencies. In this case, the corner frequency ofthe first order lead is at 1/5 or 0.2 rad/s, while the two first order lag terms have their cornerfrequencies at 1/10, and 1/2 rad/s. The final curve is a superimposition of the contributions fromeach term in the overall transfer function.

In addition, if you want to better see the little phase lag "hump" that you expect from handsketching, change the term in the denominator from (2s +1) to (s + 1) so the phase lag of thisterm will not kick in too soon.

–90°

G

φ

ω

90°

slope = 1

1

0.1 0.2 0.5 1

slope = –1

Figure E8.9

Page 155: Process Control

P.C. Chau © 2001 8 - 14

8.3 Stability Analysis

With frequency response analysis, we can derive a general relative stability criterion. The result isapplicable to systems with dead time. The analysis of the closed-loop system can be reduced tousing only the open-loop transfer functions in the computation.

8.3.1 Nyquist Stability criterion

Consider the characteristic equation of a closed-loop system

1 + GmGcGaGp = 0 (7-2)

where often GOL is used to denote the open-loop transfer function: GOL = GmGcGaGp. To "probe"

the property on the imaginary axis, we can make a substitution of s = jω and rewrite the equationas

Gm(jω)Gc(jω)Ga(jω)Gp(jω) = –1, or GOL(jω) = –1 (7-2a)

This equation, of course, contains information regarding stability, and as it is written, implies thatone may match properties on the LHS with the point (–1,0) on the complex plane. The form in(7-2a) also implies that in the process of analyzing the closed-loop stability property, thecalculation procedures (or computer programs) only require the open-loop transfer functions. Forcomplex problems, this fact eliminates unnecessary algebra. We just state the Nyquist stabilitycriterion here.1

Nyquist stability criterion: Given the closed-loop equation 1 + GOL(jω) = 0, if thefunction GOL(jω) has P open-loop poles and if the polar plot of GOL(jω) encircles the (–1,0) point

N times as ω is varied from –∞ to ∞, the number of unstable closed-loop poles in the RHP is Z =N + P. (Z is named after the number of zeros to 1 + GOL(jω) = 0.)

Do not panic! Without the explanation in our Web Support, this statement makes little sense.On the other hand, we do not really need this full definition because we know that just oneunstable closed-loop pole is bad enough. Thus the implementation of the Nyquist stabilitycriterion is much simpler than the theory.

Simplified statement of Nyquist stability criterion (Fig.8.3): Given the closed-loop equation1 + GOL(jω) = 0, the closed-loop system is stable if thepolar plot of GOL(jω) does not encircle the (–1,0) point inthe GOL-plane.

In this statement, we have used "polar plot of GOL" toreplace a mouthful of words. We have added GOL-plane in the

wording to emphasize that we are using an analysis based onEq. (7-2a). The real question lies in what safety margin weshould impose on a given system. This question leads to thedefinitions of gain and phase margins, which constitute thebasis of the general relative stability criteria for closed-loopsystems.

1 The formal explanation is in our Web Support. For a quick idea, our result is based on writingGOL(jω) = –1. One simple thinking of instability is that if we feed back a sinusoidal wave, it will

undergo a –180° phase shift at the summing point of a negative feedback loop. If the amplitude ofthe wave is less than one after passing through the summing point, it will die out. However, if theamplitude is larger than one, the oscillations will grow.

–1

Stable

Unstable

ωOLG (j )

Figure 8.3. Illustration of thestable versus unstable possibilitiesunder the Nyquist stability criterion.

Page 156: Process Control

8 - 15

When we make a Nyquistplot, we usually just map thepositive imaginary axis fromω = 0 to infinity, as opposedto the entire axis startingfrom negative infinity. If asystem is unstable, theresulting plot will onlycontribute π to the (–1,0)point as opposed to 2π—whatencirclement really means.However, just mapping thepositive imaginary axis issufficient to observe if theplot may encircle the (–1,0)point.

8.3.2 Gain and PhaseMargins

Once we understand the originof Nyquist stability criterion,putting it to use is easy.Suppose we have a closed-loop system withcharacteristic equation: 1 +GcGp = 0. With the point

(–1,0) as a reference and theGc(jω)Gp(jω) curve on a

Nyquist plot, we can establisha relative measure on howsafe we are—that is, how farwe are from the (–1,0) point.There are two possibilities. They are shown in Fig. 8.4, together with their interpretations on aBode plot.

(1) On the negative real axis (–180°), find the "distance" of |GcGp| from (–1,0). This is the gainmargin, GM. The formal definition is

GM = 1

|Gc(jωcg)Gp(jωcg)| (8-21)

where Gc(jω)Gp(jω) is evaluated at where it has a phase lag of –180°. The particular frequencyat this point is the gain crossover frequency, ω = ωcg. The smaller the magnitude ofGcGp at –180°, the larger the gain margin and the "safer we are."

(2) Find the frequency where the magnitude |Gc(jω)Gp(jω)| is 1. This particular frequency is thephase crossover frequency, ω = ωcp. We then find the angle between GcGp and –180°.

This is the phase margin, PM. The formal definition is

PM = φ – (–180°) = φ + 180° (8-22)

where the phase lag φ (a negative value) is measured at the point where Gc(jωcp)Gp(jωcp) has

a magnitude of one. The larger the angle, the larger the phase margin and the "safer we are."

For most control systems, we usually take a gain margin between 1.7 and 2, and a phase

–180°

G Gc p

φ

ωω

1

cp cg

GM = 1G Gc p

PM

–1

A measure of GM

G Gc p(j )ω

G Gc p–

at –180°

–1

G Gc p = 1

PM

G Gc p(j )ω

Figure 8.4. Interpretation of the gain and phase margins basedon the Nyquist stability criterion using Nyquist and Bode plots.

Page 157: Process Control

8 - 16

margin between 30° and 45° as the design specifications.

The Nyquist stability criterion can be applied to Bode plots. In fact, the calculation using theBode plot is much easier. To obtain the gain margin, we find the value of |GcGp| which

corresponds to a phase lag of –180°. To find the phase margin, we look up the phase lagcorresponding to when |GcGp| is 1.

Once again, recall that simple first and second order systems with no positive zeros are alwaysstable, and no matter what a computer program may return, the gain and phase margins have nomeaning. Also, the gain margin crossover frequency is the same as the so-called ultimate frequencywhen we do the s = jω substitution in the closed-loop characteristic equation or when we measurethe value with the Ziegler-Nichols ultimate cycle method.

The gain and phase margins are used in the next section for controller design. Before that, let'splot different controller transfer functions and infer their properties in frequency response analysis.Generally speaking, any function that introduces additional phase lag or magnitude tends to bedestabilizing, and the effect is frequency dependent.

We'll skip the proportional controller, which is just Gc = Kc. Again, do the plots using sample

numbers with MATLAB as you read the examples.

✎ Example 8.10. Derive the magnitude and phase lag of the transfer function of a PIcontroller.

We could make the substitution s = jω in Gc(s) = Kc (1 + 1τ I s

) . However, we can obtain the result

immediately if we see that the function is a product of an integrator and a first order lead:

Gc(s) = Kc1

τ I s (τ I s + 1)

Thus

Gc(jω) = Kc1

ωτI

(1 + ω2τ I2) , and ∠ Gc(jω) = – 90° + tan– 1 ωτI

To do a demonstration plot, we may try the following MATLAB statements:

kc=1; % Just some arbitrary numbers

taui=2;

G=tf(kc*[taui 1],[taui 0]);

figure(1), bode(G);

figure(2), nyquist(G);

On the magnitude plot, the low frequency asymptote is a line with slope –1. The high frequencyasymptote is a horizontal line at Kc. The phase angle plot starts at –90° at very low frequenciesand approaches 0° in the high frequency limit. On the polar plot, the Gc(jω) locus is a vertical linethat approaches from negative infinity at ω = 0. At infinity frequency, it is at the Kc point on the

real axis.

Integral control adds additional phase lag (–90°) at low frequencies below the corner frequency 1/τI.

A larger value of integral time constant will limit the frequency range where the controllerintroduces phase lag. This is one reason why choosing a large τI tends to be more stable than asystem with a small τI. 1

1 Furthermore, we may want to choose τI such that 1/τI is smaller than the corner frequency

associated with the slowest open-loop pole of the process function. This way, we help to stabilize

Page 158: Process Control

8 - 17

✎ Example 8.11. Derive the magnitude and phase lag of the transfer function of an ideal PDcontroller.

The result is that of a first order lead as in Example 8.4. From Gc(s) = Kc (1 + τD s) , we have,after s = jω substitution,

Gc(jω) = Kc (1 + jωτD )

and thus

Gc(jω) = Kc (1 + ω2τD2 ) , and ∠ Gc(jω) = tan– 1 (ωτD )

On the magnitude plot, the low frequency asymptote is a horizontal line at Kc. The high frequency

asymptote has a slope of +1. The phase angle plot starts at 0° at very low frequencies andapproaches 90° in the high frequency limit. On the polar plot, the Gc(jω) locus is a vertical linethat starts at the point Kc on the real axis, and approaches infinity. Based on the phase angle plot,

the PD controller provides a phase lead and thus stabilizing effect. At the same time, the highermagnitude at higher frequency ranges will amplify noises. There is a practical limit as to how fasta response a PD controller can handle.

The MATLAB statements are essentially the same as the first order lead function:

kc=1; % Just some numbers we pick arbitrarily

taud=2;

G=tf(kc*[taud 1],1);

figure(1), bode(G);

figure(2), nyquist(G);

the system by reducing the phase lag due to the integration before the phase lag of the processfunction “kicks in.” However, integral control will not be effective if τI is too large, and there will

be a design trade-off when we work with very slow processes. We will test this idea in HomeworkProblem II.38.

Page 159: Process Control

8 - 18

✎ Example 8.12. Derive the magnitude and phase lag ofthe controller transfer function

Gc(s) = Kc (

1 + τ I s

τ I s) (1 + τD s)

which is a PID controller with ideal derivative action and inthe so-called interacting form. We look at this functionbecause it is a product of an integrator and two first orderleads, and we can identify the high and low frequencyasymptotes easily. It is not identical to the ideal (non-interacting) PID controller, but the numerical results are verysimilar.

First, we need to generate the plots. Use Fig. E8.12 to helpinterpret the MATLAB generated Bode plot. 1

kc=1;

taui=4;

taud=1;

Gi=tf(kc*[taui 1],[taui 0]);

Gd=tf([taud 1],1);

G=Gi*Gd;

bode(G);

By choosing τD < τI (i.e., corner frequencies 1/τD > 1/τI ), the magnitude plot has a notch

shape. How sharp it is will depend on the relative values of the corner frequencies. The lowfrequency asymptote below 1/τI has a slope of –1. The high frequency asymptote above 1/τD has aslope of +1. The phase angle plot starts at –90°, rises to 0° after the frequency 1/τI, and finally

reaches 90° at the high frequency limit.

Relatively speaking, a PID controller behaves like a PI controller at low frequencies, whileit is more like a PD controller at high frequencies. The controller is most desirable in the mid-range where it has the features of both PI and PD controllers. Also in the notch region, thecontroller function has the lowest magnitude and allows for a larger gain margin for the system.

✎ Example 8.13. Derive the magnitude and phase lag of the transfer functions of phase-leadand phase-lag compensators. In many electromechanical control systems, the controller Gcis built with relatively simple R-C circuits and takes the form of a lead-lag element:

Gc(s) = K (s + zo)

(s + po)

Here, zo and po are just two positive numbers. There are obviously two possibilities: case (a) zo> po, and case (b) zo < po. Sketch the magnitude and phase lag plots of Gc for both cases.

Identify which case is the phase-lead and which case is the phase-lag compensation. What types ofclassical controllers may phase-lead and phase-lag compensations resemble?

1 If you want to see a plot for an ideal PID controller, use

Gi=tf(kc*[taui*taud taui 1],[taui 0]);

–90°

G

φ

ω

90°

K

τ1/ τ1/ DI

C

Figure E8.12. Only high andlow frequency asymptotes areshown here. Fill in the rest withthe help of MATLAB.

Page 160: Process Control

8 - 19

–90°

φ

ω

90°

z po o

1

GK

(b) Phase-lead

–90°

φ

ω

90°

zpo o

1

GK

(a) Phase-lag

c c

Figure E8.13

We may look at the controller transfer function in the time constant form:

Gc(s) = Kzopo

(s/zo + 1)(s/po + 1)

where we could further write Kc = Kzo/po, but we'll use the pole-zero form. Either way, we shouldsee that the corner frequencies are at ω = zo and po. To make a Bode plot, we theoretically should

do the s = jω substitution, but we can write down the magnitude and phase angle immediately ifwe recognize that the function is a product of a first order lead and a first order lag. Hence, makinguse of Examples 8.2 and 8.4, we can write

Gc(jω) = K ω2+ zo2 1

ω2+ po2

and

∠ Gc(jω) = tan– 1 (ω/zo) + tan– 1 (– ω/po)

Fig. E8.13 is a rough hand sketch with the high and low frequency asymptotes. It is meant to helpinterpret the MATLAB plots that we will generate next.

(a) With zo > po, the phase angle is always negative, and this is the phase-lag compensator.

The MATLAB statements to get an illustrative plot are:

k=1;

zo=4; % Try repeat with various choices of zo and po

po=1;

G=zpk(-zo,-po,k);

bode(G);

The shape of the magnitude plot resembles that of a PI controller, but with an upper limit on thelow frequency asymptote. We can infer that the phase-lag compensator could be more stabilizingthan a PI controller with very slow systems.1 The notch-shaped phase angle plot of the phase-lagcompensator is quite different from that of a PI controller. The phase lag starts at 0° versus –90°

1 From the perspective of a root locus plot, a phase-lag compensator adds a large open-loop zeroand a relatively small open-loop pole. And for a phase-lead compensator, we are adding a largeopen-loop pole. When po » zo (or 1/po « 1/zo), we can also look at the phase-lead compensator as

the real PD controller. How to design their locations, of course, depends on the particular processthat we need to control. We’ll see that in Example 8.14.

Page 161: Process Control

8 - 20

for a PI controller. From a stability point of view, a phase-lag compensator is preferred to a PIcontroller. On the other hand, without an integrating function, the phase-lag compensator cannoteliminate offset.

(b) With zo < po, the phase angle is positive, and this is the phase-lead compensator. First, we

need an illustrative plot. Sample MATLAB statements to use are:

zo=1;

po=4;

G=zpk(-zo,-po,1);

bode(G);

The nice feature of the phase-lead compensator, and for that matter a real PD controller, is that itlimits the high frequency magnitude. In contrast, an ideal PD controller has no upper limit andwould amplify high frequency input noises much more significantly.

✎ Example 8.14. Designing phase-lead and phase-lag compensators. Consider a simpleunity feedback loop with characteristic equation 1 + GcGp = 0 and with a first order process

function Gp = Kp

(τps + 1) . What are the design considerations if one uses either a phase-lead or a

phase-lag compensator? Consider the consequences using Bode and root locus plots.

With Kc = Kzo/po, the closed-loop transfer function is

CR =

GcGp

1 + GcGp=

Kc Kp (s/zo + 1)(s/po + 1) (τp s + 1) + Kc Kp (s/zo + 1)

and after one more algebraic step, we'll see that the system steady state gain is KcKp/(1 + KcKp),

which means that there will be an offset whether we use a phase-lead or a phase-lag compensator.

From the characteristic polynomial, it is probable that we'll get either overdamped or underdampedsystem response, depending on how we design the controller. The choice is not clear from thealgebra, and this is where the root locus plot comes in handy. From the perspective of a root-locusplot, we can immediately make the decision that no matter what, both zo and po should be largerthan the value of 1/τp in Gp. That's how we may "steer" the closed-loop poles away from the

imaginary axis for better system response. (If we know our root locus, we should know that thissystem is always stable.)

(a) Let's first consider a phase-lead compensator, zo < po. We first construct the Bode and root

locus plots that represent a system containing the compensator and a first order process:

Kp=1; %Arbitrary numbers for the process function

taup=1;

Gp=tf(Kp,[taup 1]);

zo=2; %Phase-lead, zo < po

po=4;

Gc=zpk(-zo,-po,1)

figure(1), bode(Gc*Gp)

figure(2), rlocus(Gc*Gp)

The root locus plot resembles that of a real PD controller. The system remains overdamped with

Page 162: Process Control

8 - 21

no complex closed-loop poles. One root locus runs from the "real PD pole" –po to negativeinfinity. The other is from –τp to –zo, which limits the fastest possible system response. Howlarge zo, and thus Kc, can be depends on the real physical hardware and process.

On the Bode plot, the corner frequencies are, in increasing order, 1/τp, zo, and po. The frequencyasymptotes meeting at ω = 1/τp and po are those of a first-order lag. The frequency asymptotesmeeting at ω = zo are those of a first-order lead. The largest phase lag of the system is –90° at very

high frequencies. The system is always stable as displayed by the root locus plot.

(b) With a phase-lag compensator, zo > po, we can use these statements:

%Gp remains the same as in part (a)

zo=4;

po=2;

Gc=zpk(-zo,-po,1)

figure(1), bode(Gc*Gp)

figure(2), rlocus(Gc*Gp)

The shape of the root locus plot resembles that of a PI controller, except of course we do not havean open-loop pole at the origin anymore. The root loci approach one another from –τp and –po,

then break away from the real axis to form a circle which breaks in to the left of the open-loopzero at –zo. One locus approaches negative infinity and the other toward –zo. One may design the

controller with an approach similar to that in Example 7.7 (p. 7-16).

On the Bode plot, the corner frequencies are, in increasing order, 1/τp, po, and zo. The frequencyasymptotes meeting at ω = 1/τp and po are those of a first-order lag. The frequency asymptotesmeeting at ω = zo are those of a first-order lead. The largest phase lag of the system is larger than–90° just past ω = po, but still much less than –180°. This system is always stable.

8.4 Controller Design

The concept of gain and phase margins derived from the Nyquist criterion provides a generalrelative stability criterion. Frequency response graphical tools such as Bode, Nyquist and Nicholsplots can all be used in ensuring that a control system is stable. As in root locus plots, we canonly vary one parameter at a time, and the common practice is to vary the proportional gain.

8.4.1 How do we calculate proportional gainwithout trial-and-error?

This is a big question when we use, for example, a Bode plot.Let's presume that we have a closed-loop system in which weknow "everything" but the proportional gain (Fig. 8.5), and wewrite the closed-loop characteristic equation as

1 + GOL = 1 + KcG* = 0

where GOL = GcGaGpGm. We further rewrite the function as KcG* to indicate that we would like to

find Kc. The notation G* is more than just the product of GaGpGm; G* includes the integral and

derivative terms if we use a PID controller.

With the straight textbook definition and explanation, the gain margin and phase margin of the

R C

–G*K c

Figure 8.5. A simple unityfeedback system.

Page 163: Process Control

8 - 22

closed-loop system apply only to the magnitude and phase lag plots using the entire open-loopfunction, |GOL| and ∠ GOL. It means that we need to know the value for the proportional gain, Kc.

Of course, we do not and the whole affair appears to be a trial-and-error calculation. The questionis whether we can calculate Kc without guessing. The answer is yes. The next question is whether

we can get the answer from the plots of |G*| and ∠ G*. This answer is also yes.

From the definition of gain margin, we have

GM = 1GOL(jωcg)

, or GM = 1Kc G*(jωcg)

(8-23)

where the magnitudes are evaluated at the gain crossover frequency ωcg as defined by the –180°phase lag. We can find |G*(jωcg)| simply by a Bode plot of G* itself. The key is that the phaseangle of Kc is zero, ∠ G* is identical to ∠ GOL, and both |G*| and |GOL| have the same ωcg. 1

From the definition of gain margin, GM = 1 at marginal stability. Hence, with GM = 1 in Eq.(8-23), we can evaluate Kcu = 1/|G*(jωcg)|. Eq. (8-23) can alternately be stated as

GM = Kcu

Kc (8-24)

Once we know the value of Kcu, we can calculate the Kc for a given GM in a problem. Typically,

we select GM, say, 1.7, to find the proportional gain.

We can also use the Bode plot of G* to do phase margin calculations. From the textbookdefinition, we are supposed to find the phase angle φ = ∠ GOL where |GOL| = 1. If the phase marginis 45°, φ should be –135°. It appears that we need to know Kc beforehand to calculate GOL, but we

do not.

We use the fact that ∠ G* is identical to ∠ GOL, and ωcp is the same in both plots, so we cango backward. On the G* Bode plot, we can find the value of |G*(jωcp)| which corresponds to aphase lag of, say, –135°. Now |GOL| = Kc|G*| and since |GOL| = 1 at the phase margin, we canfind Kc = 1/|G*(jωcp)| that will provide a phase margin of 45° without trial-and-error.

How do I know the answer is correct? Just "plug" Kc back into GOL and repeat the Bode plotusing GOL. It does not take that much time to check with MATLAB. Now, we are finally ready for

some examples. Again, run MATLAB to confirm the results while you read them.

✎ Example 7.2C. Let's revisit Example 7.2 (p. 7-5) with the closed-loop characteristicequation:

1 + Kc1

(s + 3) (s + 2) (s + 1) = 0

If we want to design a PI controller, how should we proceed with frequency response methods?Let's presume that the unit of the time constants is in minutes.

The very first step is to find the ultimate gain. With the given third order process transferfunction, we use the following MATLAB commands,

p=poly([-1 -2 -3]);

1 We can use MATLAB to do the Bode plot of G* and use the margin() function, which willreturn the "gain margin" of G*, but we now know, is really 1/|G*(jωcg)|, or following Eq. (8-24),also the value for the ultimate gain Kcu.

Page 164: Process Control

8 - 23

G=tf(1,p);

margin(G);

MATLAB returns Kcu as 35.6 dB (at ωcg = 3.3 rad/min),1 which we easily recalculate as 60

(1035.6/20).

Note that the low frequency asymptote of the magnitude plot is not 1 (0 dB). Why? That'sbecause the transfer function is not in the time constant form. If we factor the functionaccordingly, we should expect a low frequency asymptote of 1/6 (–15.6 dB).

If we take a gain margin of 1.7 in Eq. (8-24), we should use a proportional gain of Kc =

60/1.7 = 35.3. This is the case if we use only a proportional controller as in Example 6.2. Werepeat the Bode plot and margin calculation with Kc = 35.3:

G=tf(35.3,p);

margin(G);

Now, we should find that the gain margin is indeed 1.7 (4.6 dB, 104.6/20), and the phase marginis 18.8°, which is a bit low according to the design rule of thumb.

We have yet to tackle the PI controller. There are, of course, different ways to find a goodintegral time constant. With frequency response, we have the handy tool of the Ziegler-Nicholsultimate cycle tuning relations. So with Kcu = 60 and ωcg = 3.3 rad/min, we find by referring to

the Table of Tuning Relations (Table 6.1) that if we use only a proportional controller, we shoulduse Kc = 30, and if we use a PI controller, we should use Kc = 27.3 and τI = 1.58 min.2

Using the Ziegler-Nichols tuning parameters, we repeat the proportional controller systemBode plot:

G=tf(30,p);

margin(G);

We should find a gain margin of 2 (6 dB) and a phase margin of 25.4°, which is definitely a bitmore conservative than the 1.7 gain margin result.

With the PI controller, we use the following statements:

kc=27.3; taui=1.58;

Gc=tf(kc*[taui 1],[taui 0]);

G=tf(1,p); %p was defined at the beginning of this example

margin(Gc*G);

We should find a gain margin of 1.47 (3.34 dB) and a phase margin of 12.3°. Both margins are abit small. If we do a root locus plot on each case and with the help of rlocfind() in MATLAB ,we should find that the corresponding closed-loop poles of these results are indeed quite close to theimaginary axis.

Where do we go from here? We may stay with the design or we may increase the margins.We also can use MATLAB to simulate the closed-loop time domain response and from the

1 MATLAB always considers time to be in seconds, but this should not concern us as long as wekeep our own time units consistent.

2 All these calculations are done with the M-file recipe.m from our Web Support.

Page 165: Process Control

8 - 24

underdamped time response curve, estimate numerically the effective damping ratio and otherquantities such as percent overshoot. If the time domain response does not meet our specification,we will have to tune the values of Kc or τI.

If we want to increase the margin, we either have to reduce the value of Kc or increase τI.One possibility is to keep τI = 1.58 min and repeat the Bode plot calculation to find a new Kc

which may provide a gain margin of, say, 2 (6 dB), as in the case of using only the proportionalcontroller. To do so, we first need to find the new ultimate gain using the PI controller:

kc=1; taui=1.58;

Gc=tf(kc*[taui 1],[taui 0]);

margin(Gc*G); %G remains as above

MATLAB should return Kcu = 40.2 (32.1 dB). Thus following Eq. (8-24), we need to use Kc =

40.2/2 = 20.1 to meet the gain margin specification of 2. You can double check the result yourselfwith kc=20.1, taui=1.58. If so, you should find that the phase margin is now 23°—a bit low butwe probably can accept that. After this, we may proceed to the time domain response calculations.

The ideas in this example can be applied to a PID controller. Yes, controller design is indeedan iterative process. A computer is a handy tool, but we still need to know what we are doing.

✎ Example 7.2D. Back in the last example with a proportional controller, a gain margin of 1.7created a system with a very small phase margin. What proportional gain should we use to achievea phase margin of at least 45°?

Following our explanation after Eq. (8-24), we should calculate the phase angle ofG(jω) = [(jω+3)(jω+2)(jω+1)]–1. Of course, we'd rather use bode() in MATLAB:

p=poly([-1 -2 -3]);

G=tf(1,p);

[mag,phase,w]=bode(G);

mag=mag(1,:); % MATLAB v5 returns a 3-D array 1

phase=phase(1,:);

tmp=[w';mag;phase]' % Be careful with the primes here

From the tmp matrix of frequency, magnitude and phase angle, we find that at ω = 1.74rad/min, |G| = 0.054, and ∠ G = –131.4°, which provides a phase margin of 48.6°. Also, at ω =2.21 rad/min, |G| = 0.037, and ∠ G = –150°, which provides a phase margin of 30°. (We will needto do an interpolation if the problem statement dictates, say, a phase margin of exactly 45°.)

To achieve a phase margin of 48.6°, we use a proportional gain of Kc = 1/0.054 = 18.5. Wecan repeat the Bode plot calculation with MATLAB using Kc = 18.5, and the statements:

G=tf(18.5,p);

margin(G);

The result confirms that the system has a phase margin of 48.6°, and a gain margin of 3.2 (10.2dB), a much more conservative design than a gain margin of 1.7. If we choose to use Kc = 1/0.037

1 The MATLAB function bode() returns the actual magnitude even though the documentationsays dB. This is a detail that we can check with the function freqresp() as explained on our WebSupport, especially with future upgrades of the software.

Page 166: Process Control

8 - 25

= 26.96. A MATLAB calculation should confirm a phase margin of 30°, and find a gain margin of2.2.

✎ Example 7.4A. This time, let's revisit Example 7.4 (p. 7-8), which is a system with deadtime. We would like to know how to start designing a PI controller. The closed-loop characteristicequation with a proportional controller is (again assuming the time unit is in min)

1 + Kc0.8e– 2s

5s + 1 = 0

The very first step is to find the ultimate gain. Following Example 8.6 (p. 8-11), we canadd easily the extra phase lag due to the dead time function:

G=tf(0.8,[5 1]);

tdead=2;

[Mag,Phase,freq]=bode(G);

Mag=Mag(1,:);

Phase=Phase(1,:) - ((180/pi)*tdead*freq');

[Gm,Pm,Wcg,Wcp]=margin(Mag,Phase,freq)

We should find Kcu = 5.72 at ωcg = 0.893 rad/min, which is exactly what we found in

Example 7.4, but which takes a lot more work. If we take a gain margin of 1.7, we should use aproportional gain of Kc = 5.72/1.7 = 3.36. We use

G=tf(3.36*0.8,[5 1]);

and repeat the calculation. We should find the corresponding phase margin to be 54.6°, which isplenty.

These are the controller settings if we again use the Ziegler-Nichols tuning relations (orreally recipe.m): with Kcu = 5.73 and ωcg = 0.895 rad/min, we should use a proportional controllerwith Kc = 2.87, and if we use a PI controller, we should use Kc = 2.61 and τI = 5.85 min. The

tasks of checking the gain and phase margins and the time domain response are left as a ReviewProblem.

✎ Example 5.7D: We can now finally wrap up the dye mixing problem that we left inExample 5.7C (p. 6-16).(a) The control system can be unstable if we place the photodetector too far downstream. To cutdown on the algebra, we'll look into the problem with a slight simplification. At this point, we'lluse only a proportional controller. Since the regulating valve is so much faster than the mixingprocess, we'll retain only the mixing first order lag to obtain the approximate closed-loopcharacteristic equation:

1 +Kc Kv Kp Km e– tds

(τp s + 1) = 0

Again for illustration purpose, we supposedly have chosen Kc such that KcKVKpKm = 5, and τp is

the mixing process time constant. Find, without trial-and-error and without further approximation,the maximum distance L that the photodetector can be placed downstream such that the systemremains stable. (There are two ways to get the answer. The idea of using magnitude and phase

Page 167: Process Control

8 - 26

angle and the Nyquist criterion is by far the less confusing method and less prone to algebraicmistakes.)

(b) To factor in some safety margin, we install the photodetector at half the maximum distancethat we have found in part (a). With the same proportional gain and same approximation used inpart (a), what is the gain margin?

(c) Now that we can install the photodetector at a well chosen distance, we can put the dynamics ofthe regulating valve back into our closed-loop analysis. What is the critical proportional gainwhen we include the first order lag due to the regulating valve? And what is the proportional gainif we want a gain margin of 1.7?

(d) Finally we come to the controller design. All we know is that customers may be fussy with thecolor of their jeans. Of course, we also want to avoid the need to dispose of off-spec dye solutionsunnecessarily. Despite these concerns, an old plant engineer mentioned that the actual dye-tankdownstream is huge and an overshoot as much as 20% to 25% is acceptable as long as the mixingsystem settles down "quickly." So select your choice of controller, performance specification, andcontroller gains. Double check your final design with time domain simulation and frequencyresponse analysis to see that we have the proper controller design.

(a) Let's use the abbreviation GOL = GcGvGpGm, and thus the magnitude and phase angle

equations, from Example 5.7 (p. 5-17), are:

GOL = 5τp s + 1 e– tds , and ∠ GOL = tan– 1 ( – ωτp) – td ω

where now τp = 4 s. At crossover ωcg, ∠ GOL = –180° and GM = 1, meaning |GOL| = 1. Since the

magnitude of the dead time transfer function is unity, the magnitude equation is simply

1 = 51 + 42ωcg

2, or ωcg = 1.12 s–1

With the crossover frequency known, we now use the phase angle equation to find the dead time:

–180° = tan–1(– 4 x 1.12) – td (1.12) (180/π) , or td = 1.45 s

Note the unit conversion to angles in the phase equation. With our arbitrary choice of proportionalgain such that KcKvKpKm = 5, a dead time of td = 1.45 s is associated with GM = 1.

(b) Refer back to Example 5.7. The average fluid velocity is 400 cm/s. Thus, the photodetectoris located at (1.45)(400) = 580 cm downstream from the mixer. To reduce the distance by halfmeans that we now install the sensor at a location of 580/2 = 290 cm downstream. The reducedtransport lag is now 1.45/2 = 0.725 s.

To find the new gain margin, we need to, in theory, reverse the calculation sequence. Wefirst use the phase equation to find the new crossover frequency ωcg. Then we use the magnitudeequation to find the new |GOL|, and the new GM is of course 1/|GOL|. However, since we nowknow the values of td, τp, and KcKVKpKm, we might as well use MATLAB. These are the

statements:

k=5;

tdead=0.725;

taup=4; %The large time constant; dominant pole is at 1/4

G=tf(k,[taup 1]);

Page 168: Process Control

8 - 27

freq=logspace(-1,1)';

[Mag,Phase]=bode(G,freq);

Mag=Mag(1,:);

Phase=Phase(1,:) - ((180/pi)*tdead*freq');

[Gm,Pm,Wcg,Wcp]=margin(Mag,Phase,freq)

We should find that the new gain margin is 1.86.

(c) We now include the regulating valve and still use a proportional controller. The closed-loopequation is

1 + Kc0.8

0.2 s + 10.6

4 s + 1 2.6 e– 0.725 s = 0

With MATLAB, the statements are:

k=0.8*0.6*2.6;

G=tf(k, conv([0.2 1],[4 1]));

[Mag,Phase]=bode(G,freq);

Mag=Mag(1,:);

Phase=Phase(1,:) - ((180/pi)*tdead*freq');

[Gm,Pm,Wcg,Wcp]=margin(Mag,Phase,freq)

We should find that the ultimate gain is Kc,u = 6.42 at the crossover frequency of ωcg = 1.86 s–1.To keep to a gain margin of 1.7, we need to reduce the proportional gain to Kc = 6.42/1.7 = 3.77.

(d) With Kc,u = 6.42 and ωcg = 1.86 s–1, we can use the Ziegler-Nichols ultimate-gain tuning

relations (with recipe.m) to find, for different objectives:

Kc τI τD

Quarter decay 3.8 1.7 0.42Little overshoot 2.1 1.7 1.1No overshoot 1.3 1.7 1.1

If we repeat the time response simulations as in Example 5.7C, we should find that the settingsfor the quarter decay leads to a 51% overshoot (a roughly 0.26 decay ratio), the little overshootsettings have a 27% overshoot, and the so-called no overshoot settings still have about 8%overshoot.

Finally, there is no unique solution for the final design. The problem statement leaves us with alot of latitude. Especially when we have seen from the time response simulations that manycombinations of controller settings give us similar closed-loop responses. In process engineering,we do not always have to be fastidious with the exact time response specifications and hencevalues of the controller settings. Many real life systems can provide acceptable performance withina certain range of response characteristics. As for controller settings, a good chance is that we haveto perform field tuning to account for anything ranging from inaccurate process identification toshifting operating conditions of nonlinear processes.

For the present problem, and based on all the settings provided by the different methods, we mayselect τI = 3 s and τD = 0.5 s. We next tune the proportional gain to give us the desired response.

The closed-loop equation with an ideal PID controller is now:

1 + Kc 1 + 1τ I s

+ τD s 1.248(0.2 s + 1)(4 s + 1)

e– 0.725 s = 0

First, we need MATLAB to find the ultimate gain:

Page 169: Process Control

8 - 28

taui=3;

taud=0.5;

gc=tf([taui*taud (taui+taud) 1],[taui 0]); %ideal PID without the Kc

tdead=0.725;

k=0.8*0.6*2.6;

G=tf(k, conv([0.2 1],[4 1]));

[Mag,Phase]=bode(gc*G,freq);

Mag=Mag(1,:);

Phase=Phase(1,:) - ((180/pi)*tdead*freq');

[Gm,Pm,Wcg,Wcp]=margin(Mag,Phase,freq)

We should find the ultimate gain to be Kcu = 5.87. And at a gain margin of 1.7, we need to use aproportional gain of Kc = 5.87/1.7 = 3.45. A time response simulation shows that the system,

with respect to a unit step change in the set point, has an overshoot of 23%. This tuning isslightly less oscillatory than if we had chosen τI = 3 s and τD = 0.3 s as suggested by ITAE(Example 5.7A). In this case, Kcu = 6.79, and Kc = 4, which is closer to the Kc from Ziegler-

Nichols tuning. Again, confirm these results in the Review Problems.

8.4.2 A final word: Can frequency response methods replace root locus?

No. These methods complement each other. Very often a design decision is made only afteranalyses with both methods.

Root locus method gives us a good indication of the transient response of a system and theeffect of varying the controller gain. However, we need a relatively accurate model for the analysis,not to mention that root locus does not handle dead time as well.

Frequency methods can give us the relative stability (the gain and phase margins). In addition,we could construct the Bode plot with experimental data using a sinusoidal or pulse input, i.e., thesubsequent design does not need a (theoretical) model. If we do have a model, the data can be usedto verify the model. However, there are systems which have more than one crossover frequency onthe Bode plot (the magnitude and phase lag do not decrease monotonically with frequency), and itwould be hard to judge which is the appropriate one with the Bode plot alone.

❐ Review Problems

1. Derive Eqs. (8-19) and (8-20). Use MATLAB to plot the resonant frequency and maximummagnitude as a function of damping ratio with K = 1.

2. What are the low and high frequency asymptotes of the minimum phase function (s + z)/(s +p) versus the simplest nonminimum phase function (s – z)/(s + p) in a Bode plot?

3. What is the bandwidth of a second order function?

4. We used τD < τI in Example 8.12. What if we use τD > τI in our PID controller design?

What if we use a real PID controller?

5. Sketch the Bode plots for G(s) = sn, with n = ±1, ±2, ..., etc.

6. In Example 8.12, we used the interacting form of a PID controller. Derive the magnitude andphase angle equations for the ideal non-interacting PID controller. (It is called non-interactingbecause the three controller modes are simply added together.) See that this function will havethe same frequency asymptotes.

7. Finish the controller calculations in Example 5.7D.

Page 170: Process Control

8 - 29

Hint:

1. The plotting statements can be:

z = 0.05:0.01:0.7;

wr = sqrt(1 – 2*z.*z);

dum = sqrt(1 – z.*z);

Mp = 1./(2*z.*dum);

plot(z,wr, z,Mp);

2. What is the phase angle of the minimum phase function (s + 3)/(s + 6) versus the simplestnonminimum phase function (s - 3)/(s + 6)? Also try plot with MATLAB. The magnitudeplots are identical. The phase angle of the nonminimum phase example will go from 0° to–180°, while you'd see a minimum of the phase angle in the minimum phase function. Thusfor a transfer function that is minimum phase, one may identify the function from simply themagnitude plot. But we cannot do the same if the function is nonminimum phase.

3. We need to find the frequency ωb when the magnitude drops from the low frequency asymptote

by 1/√2. From the magnitude equation in Example 8.3, we need to solve

1 – τ2ωb2 2

+ 2ζτωb2

= 2

If we now "solve" this equation using τ2ω2 as a variable, we should find

τ2ωb2 = 1 – 2ζ 2 + 4ζ 2(ζ 2 – 1) + 2

and the final form with ωb explicitly on the LHS is one small step away.

4. Sketching with MATLAB should help.

5. G(jω) = jnωn. This function is real if n is even, imaginary if n is odd. Also, |G| = ωn, andthe phase angle of G(jω) is tan–1(0) when n is even and is tan–1(∞) when n is odd.

6. Substitution of s = jω in Gc(s) = Kc (1 + 1τ I s

+ τD s) gives

Gc(jω) = Kc (1 + 1jωτI

+ jωτD ) = Kc (1 + jτ I τD ω2 – 1

ωτI)

and thus

Gc(jω) = Kc 1 + τD ω–

1ωτI

2

and

∠ Gc(jω) = tan– 1 τD ω–1

ωτI

The magnitude equation has slopes of –1 and +1 at very low and very high frequencies. In thephase angle equation, the two limits are –90° and +90° as in Example 8.12. Furthermore,from the phase angle equation of the ideal controller, the "trough" center should be located atthe frequency ω = (τIτD)–1/2. The polar plot of the ideal PID controller is like combining theimages of a PI and an ideal PD controller—a vertical line at Kc that extends from negative

infinity at ω = 0 toward positive infinity at extremely high frequencies.

7. The MATLAB statements and plots are provided on our Web Support.

Page 171: Process Control

P.C. Chau © 2001

❖ 9. Design of State Space Systems

We now return to the use of state space representation that was introduced in Chapter 4. As youmay have guessed, we want to design control systems based on state space analysis. State feedbackcontroller is very different from the classical PID controller. Our treatment remains introductory,and we will stay with linear or linearized SISO systems. Nevertheless, the topics here shouldenlighten(!) us as to what modern control is all about.

What are we up to?• Evaluate the controllability and observability of a system.

• Pole placement design of state feedback systems. Application ofthe Ackermann's formula.

• Design with full-state and reduced-order observers (estimators).

9.1 Controllability and Observability

Before we formulate a state space system, we need to raise two important questions. One iswhether the choice of inputs (the manipulated variables) may lead to changes in the states, and thesecond is whether we can evaluate all the states based on the observed output. These are what wecall the controllability and observability problems.

✑ 9.1.1 Controllability.

A system is said to be completely state controllable if there exists an input u(t) which can drivethe system from any given initial state xo(to=0) to any other desired state x(t). To derive thecontrollability criterion, let us restate the linear system and its solution from Eqs. (4-1), (4-2), and(4-10):

x = Ax + Bu (9-1)

y = Cx (9-2)

and

x(t) = eAt x(0) + e– A(t –τ) Bu(τ) dτ0

t(9-3)

With our definition of controllability, there is no loss of generality if we choose to havex(t) = 0, i.e., moving the system to the origin. Thus Eq. (9-3) becomes

x(0) = – e– Aτ Bu(τ) dτ0

t

(9-4)

We next make use of Eq. (4-15) on page 4-14, i.e., the fact that we can expand the matrixexponential function as a closed-form series:

eAt = α o(t)I + α 1(t)A + α 2(t)A2 + ... + α n–1(t)An–1 (9-5)

Substitution of Eq. (9-5) into (9-4) gives

x(0) = – Ak B α k(τ)u(τ) dτ0

tΣk = 0

n – 1

We now hide the ugly mess by defining the (n x 1) vector β with elements

Page 172: Process Control

9 - 2

β k(τ) = α k(τ)u(τ) dτ0

t

and Eq. (9-4) appears as

x(0) = – Ak Bβ kΣk = 0

n – 1

= – B AB A2B An – 1B

β oβ 1

β n – 1

(9-6)

If Eq. (9-6) is to be satisfied, the (n x n) matrix [B AB … An–1B] must be of rank n. This is anecessary and sufficient condition for controllability. Hence, we can state that a system iscompletely controllable if and only if the controllability matrix

Co = [B AB A2B … An–1B] (9-7)

is of rank n.

The controllability condition is the same even when we have multiple inputs, u. If we haver inputs, then u is (r x 1), B is (n x r), each of the βk is (r x 1), β is (nr x 1), and Co is (n x nr).

When we have multiple outputs y, we want to control the output rather than the states.Complete state controllability is neither necessary nor sufficient for actual output controllability.With the output y = Cx and the result in (9-6), we can infer that the output controllabilitymatrix is

Co = [CB CAB CA2B … CAn–1B] (9-8)

If we have m outputs, y is (m x 1) and C is (m x n). If we also have r inputs, then the outputcontrollability matrix is (m x nr). Based on our interpretation of Eq. (9-6), we can also infer that tohave complete output controllability, the matrix in (9-8) must have rank m.

✑ 9.1.2 Observability

The linear time invariant system in Eqs. (9-1) and (9-2) is completely observable if every initialstate x(0) can be determined from the output y(t) over a finite time interval. The concept ofobservability is useful because in a given system, all not of the state variables are accessible fordirect measurement. We will need to estimate the unmeasurable state variables from the output inorder to construct the control signal.

Since our focus is to establish the link between y and x, or observability, it suffices toconsider only the unforced problem:

x = Ax (9-9)

and

y = Cx (9-10)

Substitution of the solution of (9-9) in (9-10) gives

y(t) = CeAtx(0)

We again take that we can expand the exponential function as in Eq. (9-5). Thus we have

y(t) = α k(t)CAkx(0)Σ

k = 0

n – 1

= α o α 1 α n – 1

CCA

CAn – 1

x(0) (9-11)

Page 173: Process Control

9 - 3

With the same reasoning that we applied to Eq. (9-6), we can infer that to have completeobservability, the observability matrix 1

Ob =

CCA

CAn – 1

(9-12)

must be of rank n. When we have m outputs, y is (m x 1), C is (m x n), and Ob is (mn x n).

✎ Example 9.1: Consider a third order model:

A =

0 1 00 0 1

– 6 – 11 – 6, B =

001

, C = 1 0 0

which is the controllable canonical form of the problem in Example 4.9 (p. 4-16). Construct thecontrollability and observability matrices.

To compute the controllability matrix, we can use the MATLAB function ctrb():

A=[0 1 0; 0 0 1; -6 -11 -6];

B=[0; 0; 1];

Co=ctrb(A,B)

Or we can use the definition itself:

Co=[B A*B A^2*B]

Either way, we should obtain

Co =

0 0 10 1 – 61 – 6 25

which has a rank of 3 and the model is completely state controllable.

Similarly, we can use the MATLAB function obsv() for the observability matrix:

C=[1 0 0];

Ob=obsv(A,C)

Or we can use the definition:

Ob=[C; C*A; C*A^2]

We should find that Ob is the identity matrix, which of course, is of rank 3.

1 Controllability and observability are dual concepts. With C = BT and A = AT, we can see thatOb = Co

T.

Page 174: Process Control

9 - 4

✎ Example 4.8A: We now revisit the fermentor example 4.8 (p. 4-11). Our question iswhether we can control the cell mass and glucose concentration by adjusting only D.

From Eq. (E4-38) in Example 4.8, we have

A =0 C1 µ'

–µY

–C1

Yµ' – µ

, B =–C1C1

YFirst, we evaluate

AB =0 C1 µ'

–µY

–C1

Yµ' – µ

– C1

C1y

=

C12 µ'Y

–C1

2 µY2

The controllability matrix is

Co = [B AB] =– C1

C12 µ'Y

C1

Y–

C12 µ'

Y2

Since the determinant of Co is 0, the rank of Co is 1, both cell mass and substrate cannot becontrolled simultaneously by just varying D. The answer is quite obvious with just a bit ofintuition. If we insist on using D as the only input, we can control either C1 or C2, but not bothquantities. To effectively regulate both C1 and C2, we must implement a system with two inputs.An obvious solution is to adjust the glucose feed concentration (C2o) as well as the total flow rate

(dilution rate D).

Now, we'll see what happens with two inputs. Compared with Eq. (E4-38), A remains thesame, while B in Eq. (E4-47) is now a (2 x 2) matrix with a rank of 2. Hence the controllabilitymatrix Co = [B AB] is a (2 x 4) matrix and it must have a rank of 2 (since at least B is), andboth C1 and C2 are controllable.

Page 175: Process Control

9 - 5

9.2 Pole Placement Design

✑ 9.2.1 Pole placement and Ackermann's formula.

When we used root locus for controller design in Chapter 7, we chose a dominant pole (or aconjugate pair if complex). With state space representation, we have the mathematical tool tochoose all the closed-loop poles. To begin, we restate the state space model in Eqs. (4-1) and (4-2):

1s CxB

A

K

–u y+

+

Figure 9.1. Closed-loop system with state feedback

x. = Ax + Bu (9-13)

y = Cx (9-14)

With a control system, the input uis now the manipulated variable that isdriven by the control signal (Fig. 9.1).For the moment, we consider only theregulator problem and omit changes in the set point. We state the simple control law whichdepends on full state feedback as

u(t) = – Kx = –K1x1(t) –K2x2(t) … –Knxn(t) (9-15)

where K is the state feedback gain (1 x n) vector. In this formulation, the feedbackinformation requires x(t), meaning that we must be able to measure all the state variables.

We now substitute Eq. (9-15) in (9-13) to arrive at the system equation

x. = (A – BK)x (9-16)

The eigenvalues of the system matrix (A – BK) are called the regulator poles. What we want is tofind K such that it satisfies how we select all the eigenvalues (or where we put all the closed-looppoles).

To do that easily, we first need to put our model (9-13) in the controllable canonical form asin Eq. (4-19) on page 4-15:

x =

0 1 0 … 0

0 0 1 … 0

0 0 0 … 1

–ao –a1 –a2 … –an–1

x +

0

0

0

1

u(9-17)

After substituting for u with Eq. (9-15), the system matrix in (9-16) is

A – BK =

0 1 0 … 0

0 0 1 … 0

0 0 0 … 1

–ao –a1 –a2 … –an–1

0

0

0

1

K1 K2 Kn

or

Page 176: Process Control

9 - 6

A – BK =

0 1 0 0

0 0 1 0

0 0 0 1

–a0 –K1 –a1 –K2 –a2 –K3 –an–1 –Kn

(9-18)

As in Eq. (4-21) on page 4-16, the closed-loop characteristic equation |sI – A + BK| = 0 willappear as

sn + (an–1 + Kn)sn–1 + ... + (a1 + K2)s + (ao + K1) = 0 (9-19)

We next return to our assertion that we can choose all our closed-loop poles, or in terms ofeigenvalues, λ1, λ 2, … λn. This desired closed-loop characteristic equation is

(s – λ1)(s – λ2)… (s – λn) = sn + αn–1sn–1 + ... + α1s + αo = 0 (9-20)

where the coefficients αi are computed by expanding the terms in the LHS. By matching thecoefficients of like power of s in Eqs. (9-19) and (9-20), we obtain

ao + K1 = αo

a1 + K2 = α1

an–1 + Kn = αn–1

Thus in general, we can calculate all the state feedback gains in K by

Ki = α i–1 – ai–1 , i = 1, 2, … n (9-21)

This is the result of full state feedback pole-placement design. If the system is completelystate controllable, we can compute the state gain vector K to meet our selection of all the closed-loop poles (eigenvalues) through the coefficients αi.

There are other methods in pole-placement design. One of them is the Ackermann'sformula. The derivation of Eq. (9-21) predicates that we have put (9-13) in the controllablecanonical form. Ackermann's formula only requires that the system (9-13) be completely statecontrollable. If so, we can evaluate the state feedback gain as 1

K = [0 0 … 1] [B AB … An–1B]–1αc(A) (9-22)

where

α c(A) = An + α n–1An–1 + ... + α 1A + α oI (9-23)

is the polynomial derived from the desired eigenvalues as in (9-20), except now αc(A) is an (n x n)matrix.

✑ 9.2.2 Servo systems.

We now re-introduce the change in reference, r(t). We will stay with analyzing a single-inputsingle-output system. By a proper choice in the indexing of the state variables, we select x1 = y.In a feedback loop, the input to the process model may take the form

u(t) = Krr(t) – Kx(t)

1 Roughly, the Ackermann’s formula arises from the application of the Cayley-Hamilton theoremto (9-20). The details of the derivation are in our Web Support.

Page 177: Process Control

9 - 7

where Kr is some gain associated with the change in the reference, and K is the state feedback gainas defined in (9-15). One of the approaches that we can take is to choose Kr = K1, such that u(t) is

u(t) = K1[r(t) – x1(t)] – K2x2(t) – … – Knxn(t) (9-24)

where we may recognize that r(t) – x1(t) is the error e(t).

The system equation is now

x. = Ax + B[K1r – Kx]

or

x. = (A – BK)x + BK1r (9-25)

The system matrix and thus design procedures remain the same as in the regulator problem in Eq.(9-16).1

1s C

xB

A

K

u y = x++

1s K

xn+1

n+11r e

–+

Figure 9.2. State feedback with integral control.

✑ 9.2.3 Servo systems with integral control.

You may notice that nothing that we have covered so far does integral control as in a PIDcontroller. To implement integral action, we need to add one state variable as in Fig. 9.2. Here, weintegrate the error [r(t) – x1(t)] to generate the new variable xn+1. This quantity is multiplied by theadditional feedback gain Kn+1 before being added to the rest of the feedback data.

The input to the process model now takes the form

u(t) = Kn+1xn+1(t) – Kx(t) (9-26)

1 The system must be asymptotically stable. At the new steady state (as t –> ∞), we have

0 = (A – BK)x(∞) + BK1r(∞)

and subtracting this equation from (9-25), we have

x. = (A – BK)(x – x(∞)) + BK1(r – r(∞))

If we define e = x – x(∞), and also r(t) as a step function such that r is really a constant for t > 0,the equation is simply

e. = (A – BK)e

Not only is this equation identical to the form in Eq. (9-16), but we also can interpret the analysisas equivalent to a problem where we want to find K such that the steady state error e(t) approacheszero as quickly as possible.

Page 178: Process Control

9 - 8

The differential equation for xn+1 is

x.

n+1 = r(t) – Cx (9-27)

We have written x1 = y = Cx just so that we can package this equation in matrix form in the nextstep. Substitution of Eq. (9-26) in the state model (9-13) and together with (9-27), we can writethis (n + 1) system as

xxn + 1

=A – BK BKn + 1

– C 0x

xn + 1+

01

r (9-28)

In terms of dimensions, (A – BK), B and C remain, respectively, (n x n), (n x 1), and (1 x n). Wecan interpret the system matrix as

A – BK BKn + 1– C 0

=A 0

– C 0–

B0

K –Kn + 1 = A

B K (9-29)

where now our task is to find the (n + 1) state feedback gains

K = [K –Kn+1] (9-30)

With Eq. (9-29), we can view the characteristic equation of the system as

|sI – A + B K | = 0 (9-31)

which is in the familiar form of the probelm in (9-16). Thus, we can make use of the pole-placement techniques in Section 9.2.1.

✎ Example 9.2: Consider the second order model in Example 9.1. What are the state feedbackgains if we specify that the closed-loop poles are to be at –3±3j and –6?

With the given model in the controllable canonical form, we can use Eq. (9-21). The MATLABstatements are:

A=[0 1 0; 0 0 1; -6 -11 -6]; % Should findp1=poly(A) % [1 6 11 6], coefficients ai in (9-19)

P=[-3+3j -3-3j -6];

p2=poly(P) % [1 12 54 108], coefficients αi in (9-20)p2-p1 % [0 6 43 102], Ki as in Eq.(9-21)

To obtain the state feedback gains with Eq. (9-21), we should subtract the coefficients of thepolynomial p1 from p2, starting with the last constant coefficient. The result is, indeed,

K = (K1, K2, K3) = (108–6, 54–11, 12–6) = (102, 43, 6)

Check 1. The same result can be obtained with the MATLAB function acker() which uses theAckermann's formula. The statements are:

B=[0; 0; 1];

acker(A,B,P) %Should return [102 43 6]

Check 2. We can do the Ackermann's formula step by step. The statements are:

M=[B A*B A^2*B]; %controllability matrix

ac=polyvalm(p2,A); %Eq.(9-23)

[0 0 1]*inv(M)*ac %Eq.(9-22)

Page 179: Process Control

9 - 9

To evaluate the matrix polynomial in Eq. (9-23), we use the MATLAB function polyvalm()which applies the coefficients in p2 to the matrix A.

✎ Example 4.7B: Let us revisit the two CSTR-in-series problem in Example 4.7 (p. 4-5). Usethe inlet concentration as the input variable and check that the system is controllable andobservable. Find the state feedback gain such that the reactor system is very slightly underdampedwith a damping ratio of 0.8, which is equivalent to about a 1.5% overshoot.

From (E4-27) of Example 4.7, the model is

dd t

c1

c2=

– 5 0

2 – 4

c1

c2+

4

0co

and C2 is the only output. We can construct the model and check the controllability and

observability with

A=[-5 0; 2 -4];

B=[4; 0];

C=[0 1];

D=0;

rank(ctrb(A,B)) %should find rank = 2

rank(obsv(A,C)) % for both matrices

Both the controllability and observability matrices are of rank two. Hence the system iscontrollable and observable.

To achieve a damping ratio of 0.8, we can find that the closed-loop poles must be at –4.5±3.38j(using a combination of what we learned in Example 7.5 and Fig. 2.5), but we can cheat withMATLAB and use root locus plots!

[q,p]=ss2tf(A,B,C,D); %converts state space to transfer function1

Gp=tf(q,p);

rlocus(Gp)

sgrid(0.8,1)

[kc,P]=rlocfind(Gp) %should find kc = 1.46

We now apply the closed-loop poles P directly to the Ackermann’s formula:

K=acker(A,B,P) %should find K = [0 1.46]

The state space state feedback gain (K2) related to the output variable C2 is the same as the

proportional gain obtained with root locus. Given any set of closed-loop poles, we can find thestate feedback gain of a controllable system using state-space pole placement methods. The use ofroot locus is not necessary, but it is a handy tool that we can take advantage of.

1 Another way here is to make use of the analytical result in Example 4.7:

Gp=zpk([],[-5 -4],8); %transfer function C2/Co taken from (E4-30a)

Page 180: Process Control

9 - 10

✎ Example 4.7C: Add integral action to the system in Example 4.7B so we can eliminate thesteady state error.

To find the new state feedback gain is a matter of applying Eq. (9-29) and the Ackermann’sformula. The hard part is to make an intelligent decision on the choice of closed-loop poles.Following the lead of Example 4.7B, we use root locus plots to help us. With the understandingthat we have two open-loop poles at –4 and –5, a reasonable choice of the integral time constant is1/3 min. With the open-loop zero at –3, the reactor system is always stable, and the dominantclosed-loop pole is real and the reactor system will not suffer from excessive oscillation.

Hence, our first step is to use root locus to find the closed-loop poles of a PI control system witha damping ratio of 0.8. The MATLAB statements to continue with Example 4.7B are:

kc=1; taui=1/3;

Gc=tf(kc*[taui 1],[taui 0]);

rlocus(Gc*Gp); %Gp is from Example 4.7B

sgrid(0.8,1)

[kc,P]=rlocfind(Gc*Gp) %should find proportional gain kc=1.66

The closed-loop poles P are roughly at –2.15 and –3.43±2.62j, which we apply immediately to the

Ackermann’s formula using A and B in Eq. (9-29):

Ah=[A zeros(2,1); -C 0]; %Eq. (9-29)

Bh=[B; 0];

Kh=acker(Ah,Bh,P) %should find Kh = [0 1.66 –4.99]

The state feedback gain including integral control K is [0 1.66 –4.99]. Unlike the simpleproportional gain, we cannot expect that Kn+1 = 4.99 would resemble the integral time constant in

classical PI control. To do the time domain simulation, the task is similar to the hints that weprovide for Example 7.5B in the Review Problems. The actual statements will also be provided onour Web Support.

✎ Example 7.5B: Consider the second order system in Example 7.5 (p. 7-9). What are the statefeedback gains if we specify that the closed-loop poles are to be –0.375±0.382j as determined inExample 7.5A (p. 7-15)?

The problem posed in Examples 7.5 and 7.5A is not in the controllable canonical form (unless wedo the transform ourselves). Thus we will make use of the Ackermann's formula. The MATLABstatements are:

G=tf(1,conv([2 1],[4 1])); %Make the state space object from

S=ss(G); % the transfer function

scale=S.c(2); %Rescale MATLAB model matrices

S.c=S.c/scale; S.b=S.b*scale;

P=[-0.375+0.382j -0.375-0.382j]; %Define the closed-loop poles

k=acker(S.a,S.b,P) %Calculate the feedback gains

MATLAB will return the vector [0 1.29], meaning that K1 = 0, and K2 = 1.29, which was theproportional gain obtained in Example 7.5A. Since K1 = 0, we only feedback the controlledvariable as analogous to proportional control. In this very simple example, the state space systemis virtually the classical system with a proportional controller.

Page 181: Process Control

9 - 11

A note of caution is necessary when we let MATLAB generate the state space model from a transferfunction. The vector C (from S.c) is [0 0.5], which means that the indexing is reversed such thatx2 is the output variable, and x1 is the derivative of x2. Secondly, C is not [0 1], and hence wehave to rescale the matrices B and C. These two points are further covered in MALTA Session 4.

Process(Plant)

StateEstimator

yr u

KX~

+

C

x

B

A

K

y

~

~

e

– +++

yu 1s

++

y – y~

Figure 9.3. Concept of using a state estimator to Figure 9.4. A probable model for a state estimator.generate an estimated state feedback signal.

9.3 State Estimation Design

✑ 9.3.1. State estimator.

The pole placement design predicates on the feedback of all the state variables x (Fig. 9.1). Undermany circumstances, this may not be true. We have to estimate unmeasureable state variables orsignals that are too noisy to be measured accurately. One approach to work around this problem isto estimate the state vector with a model. The algorithm that performs this estimation is calledthe state observer or the state estimator. The estimated state x~ is then used as the feedbacksignal in a control system (Fig. 9.3). A full-order state observer estimates all the states even whensome of them are measured. A reduced-order observer does the smart thing and skip thesemeasurable states.

The next task is to seek a model for the observer. We stay with a single-input single-outputsystem, but the concept can be extended to multiple outputs. The estimate should embody thedynamics of the plant (process). Thus one probable model, as shown in Fig. 9.4, is to assume thatthe state estimator has the same structure as the plant model, as in Eqs. (9-13) and (9-14), or Fig.9.1. The estimator also has the identical plant matrices A and B. However, one major difference

is the addition of the estimation error, y – y~, in the computation of the estimated state x~.

The estimated state variables based on Fig. 9.4 can be described by (details in ReviewProblems)

x = Ax~ + Bu + Ke(y – Cx~ )

= (A – KeC)x~ + Bu + Key (9-32)

Here, y~ = C x~ has been used in writing the error in the estimation of the output, (y – y~). The (n x1) observer gain vector Ke does a weighting on how the error affects each estimate. In the next twosections, we will apply the state estimator in (9-32) to a state feedback system, and see how we

can formulate the problem such that the error (y – y~) can become zero.

Page 182: Process Control

9 - 12

1s C

xB

A

K

u y

1s C

xB

A

K

y~~

e

– +

+

++

u

Kx~

Figure 9.5. A regulator system with controller-estimator

✑ 9.3.2. Full-order state estimator system

A system making use of the state estimator is shown in Fig. 9.5, where for the moment, changesin the reference is omitted. What we need is the set of equations that describe this regulator systemwith state estimation.

By itself, the estimator in Eq. (9-32) has the characteristic equation:

|sI – A + KeC| = 0 (9-33)

Our intention is to use the estimated states to provide feedback information:

u = –Kx~ (9-34)

The state space model Eq. (9-13) now appears as

x. = Ax + Bu = Ax – BKx~ (9-35)

If we substitute y = Cx in (9-32), we can integrate Eqs. (9-32) and (9-35) simultaneously tocompute x(t) and x~(t). In matrix form, this set of 2n equations can be written as

ddt

xx

= A – BKKeC A – KeC – BK

xx

(9-36)

✑ 9.3.3. Estimator design

With Eq. (9-36), it is not obvious how Ke affects the choices of K. We now derive a form of (9-36) that is based on the error of the estimation and is easier for us to make a statement on itsproperties. We define the state error vector as

e(t) = x(t) – x~(t) (9-37)

Subtract Eq. (9-32) from (9-35), and use y = Cx, we should find

(x. – x ) = (A – KeC)(x – x~ ) or e

. = (A – KeC)e (9-38)

This error equation has the same characteristic equation as the estimator in Eq. (9-33). The goal isto choose eigenvalues of the estimator such that the error decays away quickly. We may note thatthe form of (9-38) is the same as that of the regulator problem. Thus we should be able to use the

Page 183: Process Control

9 - 13

tools of pole-placement for the estimator design. In fact, we can apply, without derivation, amodified form of Ackermann’s formula to evaluate

Ke = α e(A)

CCA

CAn – 1

– 10

0

1

(9-39)

where as analogous to Eq. (9-20),

αe(s) = sn + α n–1sn–1 + … + α 1s + α o (9-40)

is the polynomial derived from our own chosen estimator eigenvalues. Eq. (9-39) is different fromEq. (9-22) because we are now solving the dual problem for the (n x 1) vector Ke.

Next, we can replace x~ in Eq. (9-35) by the definition of the error vector, and the equationbecomes

x. = Ax – BK(x – e) (9-41)

Eqs. (9-38) and (9-41) can be put in matrix form as

xe

= A – BK BK0 A – KeC

xe

(9-42)

Now, it is clear that the characteristic equation of the controller-estimator system is

|sI – A + BK| |sI – A + KeC| = 0 (9-43)

We have the very important result that choices for the eigenvalues for the pole-placement designand the observer design can be made independently. Generally, we want the observer response to betwo to five times faster than the system response. We should not have to worry about saturationsince the entire observer is software-based, but we do have to consider noise and sensitivityproblems.

✎ Example 9.3: Consider the second order model in Example 9.1, which we have calculated thestate feedback gains in Example 9.2. What is the observer gain vector Ke if we specify that theestimator error should have eigenvalues –9 repeated thrice?

With eigenvalues selected at –9, we have chosen the estimator to be faster than the state feedback,and all the errors are to decay exponentially. We'll make use of the Ackermann’s formula in Eq. (9-39) for observer gains. The MATLAB statements are:

A=[0 1 0; 0 0 1; -6 -11 -6]; %Define the model

B=[0; 0; 1];

C=[1 0 0];

pe=poly([-9 -9 -9]); %Make estimator polynomial (9-40)

ae=polyvalm(pe,A);

Ob=[C; C*A; C*A^2];

Ke=ae*inv(Ob)*[0; 0; 1] %Eq. (9-39)

We should find that Ke = (21, 106, –144). The estimator calculations are purely mathematical, andthe values of the observer gains can be negative. Furthermore, we can check that the system ofequations in Eq. (9-42) has the correct eigenvalues as suggested by Eq. (4-43).

Page 184: Process Control

9 - 14

K=[102 43 6]; %Feeback gains calculated from Example 9.2

A11=A-B*K; %Submatrices in Eq. (9-42)

A12=B*K;

A21=zeros(3,3);

A22=A-Ke*C;

BIGA=[A11 A12; A21 A22];

eig(BIGA)

Indeed, we should find that the big matrix BIGA has eigenvalues –3±3j, –6, and –9 repeated threetimes.

✑ 9.3.4. Reduced-order estimator

We should not have to estimate variables that we can measure. It is logical to design a reduced-order estimator which estimates only the states that cannot be measured or are too noisy to bemeasured accurately. Following our introductory practice, we will consider only one measuredoutput. The following development assumes that we have selected x1 to be the measured variable.Hence, the output is

y = Cx = [1 0 … 0] x (9-44)

Next, we partition the state vector as

x =x1xe

(9-45)

where xe = [x2 … xn] contains the (n – 1) states that have to be estimated. The state modelequation (9-13) is partitioned accordingly as

x1xe

=a11 A 1eA e1 A ee

x1xe

+b 1Be

u (9-46)

where the dimensions of A1e, Ae1, Aee are, respectively, (1 x n–1), (n–1 x 1), and (n–1 x n–1),and that of Be is (n–1 x 1).

The next task is to make use of the full state estimator equations. Before that, we have toremold Eq. (9-46) as if it were a full state problem. This exercise requires some carefulbookkeeping of notations. Let’s take the first row in Eq. (9-46) and make it to constitute theoutput equation. Thus we make a slight rearrangement:

x.

1 – a11x1 – b1u = A1exe

such that it takes the form of y = Cx. We repeat with the second row of (9-46) and put it as

x.

e = Aeexe + (Ae1x1 + Beu)

such that it can be compared with x. = Ax + Bu.

The next step is to take the full state estimator in Eq. (9-32),

x = (A – KeC)x~ + Bu + Key

and substitute term by term using the reduced-order model equations.1 The result is, finally,

1 The matching of terms for reduced-order substitution in Eq. (9-31) to derive (9-47) to (9-49):

Page 185: Process Control

9 - 15

xe = (Aee – KerA1e)x~e + (Ae1x1 + Beu) + Ker( x1 – a11x1 – b1u) (9-47)

which is the reduced-order equivalent to (9-32). Note that in this equation, x1 = y.

The computation of the (n – 1) weighting factors in Ker can be based on the equivalentform of Eq. (9-38). Again, doing the substitution for the notations, the error estimate becomes

e. = (Aee – KerA1e)e (9-48)

which means that the Ackermann’s formula in Eq. (9-39) now takes the form

Ker = α e(A ee)

A 1e

A 1eA ee

A 1eA een – 1

– 1

00

1

(9-49)

We are not quite done yet. If we use Eq. (9-47) to compute x~e, it requires taking thederivative of x1, an exercise that can easily amplify noise. So we want a modified form that allowsus to replace this derivative. To begin, we define a new variable

x~e1 = x~e – Kerx1 (9-50)

This variable is substituted into (9-47) to give

(x e1 + Kerx.

1) = (Aee – KerA1e)(x~e1 + Kerx1) + (Ae1x1 + Beu) + Ker(x.

1 – a11x1 – b1u)

After cancellation of the derivative term, we have

x e1 = (Aee – KerA1e)x~e1

+ (AeeKer – KerA1eKer + Ae1 – Kera11)x1 + (Be – Kerb1)u (9-51)

This differential equation is used to compute x~e1, which then is used to calculate x~e with (9-50).With the estimated states, we can compute the feedback to the state space model as

u = – K1 K1eT x1

xe(9-52)

The application of Eqs. (9-50) to (9-52) is a bit involved and best illustrated as shown in Fig. 9.6.

Full-order state estimator Reduced-order state estimator

x~ xe

y x1 – a11x1 – b1uC A1eA Aee

Ke, (n x 1) Ker, (n–1 x 1)Bu Ae1x1 + Beu

Page 186: Process Control

9 - 16

C

x

K

~

er

Process

Reduced-order estimator

e1x~e

x

K1e

K1

y = x1r(t) u(t)

Figure 9.6. State feedback with reduced-order estimator

✎ Example 9.4: Consider the estimator in Example 9.3, what is the reduced-order observer gainvector Ker if we specify that the estimator error should have eigenvalues –9 repeated twice?

We can use Eq. (9-49), and the MATLAB statements are:

A=[0 1 0; 0 0 1; -6 -11 -6];

N=size(A,1);

a11=A(1,1); %Extract matrix partitions as in Eq. (9-46)

A1e=A(1,2:N);

Ae1=A(2:N,1);

Aee=A(2:N,2:N);

pe=poly([-9 -9]); %Make estimator polynomial

ae=polyvalm(pe,Aee);

Ob=[A1e; A1e*Aee];

Ker=ae*inv(Ob)*[0; 1] %Eq. (9-49) for n=2

We should find that Ker = (12 –2).

After all this fancy mathematics, we need a word of caution. It is extremely dangerous toapply the state estimate as presented in this chapter. Why? The first hint is in Eq. (9-32). We haveassumed perfect knowledge of the plant matrices. Of course, we rarely do. Furthermore, we haveomitted actual terms for disturbances, noises, and errors in measurements. Despite these drawbacks,material in this chapter provides the groundwork to attack serious problems in modern control.

Review Problems

1. For the second order transfer function

YU

=1

s2 + 2ζωn s + ωn2

,

derive the controllable canonical form. If the desired poles of a closed-loop system are to beplaced at λ1 and λ2, what should be the state feedback gains?

2. Presume we do not know what the estimator should be other than that it has the form

Page 187: Process Control

9 - 17

x = Fx~ + Gu + Hy

Find Eq. (9-32).

3. Do the time response simulation in Example 7.5B. We found that the state space system has asteady state error. Implement integral control and find the new state feedback gain vector.Perform a time response simulation to confirm the result.

R = 0 YG ec

State spacemodel

– Y U

Figure R9.4

4. With respect to Fig. R9.4, what is thetransfer function equivalent to thecontroller-estimator system in Eq. (9-32)?

Hints:

1. The controllable canonical form was derived in Example 4.1. The characteristic polynomial of(sI – A + BK) should be

s2 + (2ζωn + K2)s + (ωn2

+ K1) = 0

The characteristic polynomial of desired poles is

s2 + (λ1 + λ2)s + λ1λ2 = 0

Thus

K1 = λ1λ2 – ωn2 and K2 = (λ1 + λ2) – 2ζωn

2. The Laplace transform of the given equation is

sX~ = F X~ + GU + HY

Substituting Y = CX, we have

X~ = (sI –F)–1[GU + HCX]

We further substitute for X = (sI –A)–1BU with the simple state space model to give

X~ = (sI –F)–1[G + HC(sI –A)–1B]U

What we want is to dictate that the transfer function of this estimator is the same as that of thestate space model:

(sI –F)–1[G + HC(sI –A)–1B] = (sI –A)–1B

Move the second term to the RHS and factor out the (sI –A)–1B gives

(sI –F)–1G = [I – (sI –F)–1HC](sI –A)–1B

Thus we can multiply (sI –F) to both sides to have

G = [(sI –F) – HC](sI –A)–1B

And finally,

[(sI –F) – HC]–1G = (sI –A)–1B

Compare term by term, we have

F + HC = A , or F = A – H C

and

G = B

This result is what we need in (9-32) if we also set H = Ke.

Page 188: Process Control

9 - 18

3. For the time response simulation, we also duplicate the classical control design forcomparision. Both classical and state space results have the same damping ratio, but not systemsteady state gain. The statements are:

G=tf(1,conv([2 1],[4 1]));

S=ss(G); %MATLAB uses reverse indexing

scale=S.c(2); %And need to rescale B and C too

S.c=S.c/scale;

S.b=S.b*scale;

P=[-0.375+0.382j -0.375-0.382j]; %Define the closed-loop poles

K=acker(S.a,S.b,P)

%Compute the system matrices for plotting

A = S.a - S.b*K %Makes system matrix, Eq. (9-25)

B = S.b*K(2)

C = S.c

D=0;

step(A,B,C,D)

hold %to add the classical design result

Gcl=feedback(1.29*G,1);

%Kc=1.29 was the proportional gain obtained in Example 7.5A

step(Gcl)

To eliminate offset, we need Section 9.2.3. With an added state due to integration, we have toadd one more closed-loop poles. We choose it to be –1, sufficiently faster than the real part ofthe complex poles. The statements are:

G=tf(1,conv([2 1],[4 1]));

S=ss(G); %Generates the matrices S.a, S.b, S.c, S.d

Ah=[S.a zeros(2,1); -S.c 0] % A in (9-29)

Bh=[S.b; 0] % B

P=[-0.375+0.382j -0.375-0.382j -1]; %Add a faster pole at -1

kh=acker(Ah,Bh,P) %K-head in (9-29) % K

We should find K = [2 3.6 -2.3]. To do the time response simulation, we can use:

Asys=Ah-Bh*kh; %System matrix (9-29)

Bsys=[0; 0; 1]; %Follows (9-28)

Csys=[S.c 0];

step(Asys, Bsys,Csys,0)

4. For the estimator, y is the input and u the output. With u = –Kx~ , the Laplace transform of Eq.(9-32) is

[sI – A + KeC + BK]X~ (s) = KeY(s)

or X~ (s) = [sI – A + KeC + BK]–1KeY(s)

We now substitute X~ back in the Laplace transform of u = –Kx~ to obtain

U(s) = –K[sI – A + KeC + BK]–1KeY(s) = –Gec(s)Y(s)

Page 189: Process Control

P.C. Chau © 2001

❖ 10. Multiloop Systems

There are many advanced strategies in classical control systems. Only a limited selection ofexamples is presented in this chapter. We start with cascade control, which is a simple introductionto a multiloop, but essentially SISO, system. We continue with feedforward and ratio control. Theidea behind ratio control is simple, and it applies quite well to the furnace problem that we use asan illustration. Finally, we address a multiple-input multiple-output system using a simpleblending problem as illustration, and use the problem to look into issues of interaction anddecoupling. These techniques build on what we have learned in classical control theories.

What are we up to?• Apply classical controller analysis to cascade control, feedforward control,

feedforward-feedback control, ratio control, and the Smith predictor for time delaycompensation.

• Analyze a MIMO system with relative gain array , and assess the pairing ofmanipulated and controlled variables.

• Attempt to decouple and eliminate the interactions in a two-input two-output system.

10.1 Cascade control

A very common designfound in processengineering is cascadecontrol. This is a strategythat allows us to handleload changes moreeffectively with respect tothe manipulated variable.

To illustrate the idea, weconsider the temperaturecontrol of a gas furnace,which is used to heat up acold process stream. Thefuel gas flow rate is themanipulated variable, andits flow is subject tofluctuations due to upstreampressure variations.

In a simple single-loop system, we measure the outlet temperature, and the temperaturecontroller (TC) sends its signal to the regulating valve. If there is fluctuation in the fuel gas flowrate, this simple system will not counter the disturbance until the controller senses that thetemperature of the furnace has deviated from the set point (Ts).

A cascade control system can be designed to handle fuel gas disturbance more effectively (Fig.10.1). In this case, a secondary loop (also called the slave loop) is used to adjust the regulatingvalve and thus manipulate the fuel gas flow rate. The temperature controller (the master or primarycontroller) sends its signal, in terms of the desired flow rate, to the secondary flow controlloop—in essence, the signal is the set point of the secondary flow controller (FC).

In the secondary loop, the flow controller compares the desired fuel gas flow rate with themeasured flow rate from the flow transducer (FT), and adjusts the regulating valve accordingly.This inner flow control loop can respond immediately to fluctuations in the fuel gas flow to ensure

FT

FC

Hot process stream

Cold T sTCTT

processstream

Furnace

Fuel gas

T

Figure 10.1. Cascade control of the temperature of a furnace,which is taken to be the same as that of the outlet processstream. The temperature controller does not actuate theregulating valve directly; it sends its signal to a secondary flowrate control loop which in turn ensures that the desired fuel gas

Page 190: Process Control

10-2

that the properamount of fuel isdelivered.

To beeffective, thesecondary loopmust have afaster responsetime (smallertime constant)than the outerloop. Generally,we use as high a proportionalgain as feasible. In controljargon, we say that the inner loopis tuned very tightly.

We can use a block diagramto describe Fig. 10.1. Cascadecontrol adds an inner control loopwith secondary controllerfunction Gc2 (Fig. 10.2a). This

implementation of cascadecontrol requires two controllersand two measured variables (fuelgas flow and furnace temperature). The furnace temperature is the controlled variable, and the fuelgas flow rate remains the only manipulated variable.

For cleaner algebra, we omit the measurement transfer functions, taking Gm1 = Gm2 = 1.

Disturbance, such as upstream pressure, which specifically leads to changes in the fuel gas flowrate is now drawn to be part of the secondary flow control loop. (A disturbance such as change inthe process stream inlet temperature, which is not part of the secondary loop, would still be drawnin its usual location as in Section 5.2 on page 5-7.)

We now reduce the block diagram. The first step is to close the inner loop so the systembecomes a standard feedback loop (Fig. 10.2b). With hindsight, the result should be intuitivelyobvious. For now, we take the slow route. Using the lower case letter locations in Fig. 10.2a, wewrite down the algebraic equations

e2 = p – a

and

a = Gc2Gve2 + GLL

Substitution of e2 leads to

a = Gc2Gv(p – a) + GLL

and the result after rearrangement is a form that allows us to draw Fig. 10.2b:

a =Gc2

Gv

1 + Gc2Gv

p +GL

1 + Gc2Gv

L = Gv* p + GL

* L

where

Gv* =

Gc2Gv

1 + Gc2Gv

and GL* =

GL

1 + Gc2Gv

(10-1)

+

R

L

CGpGc G*v

G*L

E

Figure 10.2b. Reduced block diagram of a cascadecontrol system.

+

R

L

CG pG c G vGc

GL

– 2

p aE e2

Process streamtemperatureFuel gas flow

Upstream pressurefluctuation

Figure 10.2a. Block diagram of a simple cascade control system withreference to the furnace problem.

Page 191: Process Control

10-3

The remaining task to derive the closed-loop transfer functions is routine. Again, slowly, we canwrite the relation in Fig. 10.2b as

C = G*LGp L + GcG*vGp E

and substituting E = R – C, we have, after rearrangement,

C =

Gc Gv* Gp

1 + Gc Gv* Gp

R +Gp.GL

*

1 + Gc Gv* Gp

L (10-2)

The closed-loop characteristic polynomial of this cascade system is

1 + Gc Gv* Gp = 0 (10-3)

If we now substitute G*v from (10-1), the characteristic polynomial takes the form 1

1 + Gc2Gv + Gc Gc2

Gv Gp = 0 (10-3a)

So far, we know that the secondary loop helps to reduce disturbance in the manipulatedvariable. If we design the control loop properly, we should also accomplish a faster response in theactuating element: the regulating valve. To go one step further, cascade control can even help tomake the entire system more stable. These points may not be intuitive. We'll use a simpleexample to illustrate these features.

✎ Example 10.1: Consider a simple cascade system as shown in Fig. 10.2a with a PIcontroller in the primary loop, and a proportional controller in the slave loop. For simplicity,consider first order functions

Gp = 0.82s + 1 , Gv = 0.5

s + 1 , and GL = 0.75s + 1 .

(a) How can proper choice of Kc2 of the controller in the slave loop help to improve the actuator

performance and eliminate disturbance in the manipulated variable (e.g., fuel gas flow in thefurnace temperature control)?

If we substitute Gc2 = Kc2, and Gv =Kv

τv s + 1 into G*v in Eq. (10-1), we should find

Gv

* =Kc2

Kv

(τv s + 1) + Kc2Kv

=Kv

*

τ v* s + 1

, (E10-1)

where

Kv* =

Kc2Kv

1 + Kc2Kv

, and τ v* =

τv1 + Kc2

Kv. (E10-2)

Similarly, substituting GL =KL

τv s + 1 in G*L should give

KL* =

KL

1 + Kc2Kv

. (E10-3)

Thus as the proportional gain Kc2 becomes larger, K*v approaches unity gain, meaning there

1 If we remove the secondary loop, this characteristic equation should reduce to that of aconventional feedback system equation. It is not obvious from (10-3) because our derivation hastaken the measurement function Gm2 to be unity. If we had included Gm2 in a more detailedanalysis, we could get the single loop result by setting Gc2 = 1 and Gm2 = 0.

Page 192: Process Control

10-4

is a more effective change in the manipulated variable, and K*L approaches zero, meaning the

manipulated variable is becoming less sensitive to changes in the load. Furthermore, theeffective actuator time constant τ*v will become smaller, meaning a faster response.

(b) The slave loop affords us a faster response with respect to the actuator. What is theproportional gain Kc2 if we want the slave loop time constant τ*v to be only one-tenth of theoriginal time constant τv in Gv?

From the problem statement, Kv = 0.5 and τv = 1 s. Thus τ*v = 0.1 s, and substitution ofthese values in τ*v of (E10-2) gives

0.1 = 1

1 + 0.5 Kc2

, or Kc2 = 18.

The steady state gain is

Kv* = (18) (0.5)

1 + (18) (0.5) = 0.9

The slave loop will have a 10% offset with respect to desired set point changes in thesecondary controller.

(c) So far, we have only used proportional control in the slave loop. We certainly expect offset inthis inner loop. Why do we stay with proportional control here?

The modest 10% offset that we have in the slave loop is acceptable under most circumstances.As long as we have integral action in the outer loop, the primary controller can makenecessary adjustments in its output and ensure that there is no steady state error in thecontrolled variable (e.g., the furnace temperature).

(d) Now, we tackle the entire closed-loop system with the primary PI controller. Our task here isto choose the proper integral time constant among the given values of 0.05, 0.5, and 5 s. Wecan tolerate underdamped response but absolutely not a system that can become unstable. Ofcourse, we want a system response that is as fast as we can make it, i.e., with a proper choiceof proportional gain. Select and explain your choice of the integral time constant.

Among other methods, root locus is the most instructive in this case. With a PI primarycontroller and numerical values, Eq. (10-3) becomes

1 + Kcτ I s + 1

τ I s0.9

0.1 s + 10.8

2 s + 1 = 0

With MATLAB, we can easily prepare the root locus plots of this equation for the cases ofτI = 0.05, 0.5, and 5 s. (You should do it yourself. We'll show only a rough sketch in Fig

E10.1. Help can be found in the Review Problems.)

From the root locus plots, it is clear that the system may become unstable when τI = 0.05 s.The system is always stable when τI = 5 s, but the speed of the system response is limited bythe dominant pole between the origin and –0.2. The proper choice is τI = 0.5 s in which case

the system is always stable but the closed-loop poles can move farther, loosely speaking,away from the origin.

Page 193: Process Control

10-5

xxx xxx

τ = 0.05 sI

Open-loop poles at 0, –0.5, –10;zero at –20

Open-loop poles at 0, –0.5, –10;zero at –2

τ = 0.5 sI

xxx

τ = 5 sI

Open-loop poles at 0, –0.5, –10;zero at –0.2

Figure E10.1

(e) Take the case without cascade control, and using the integral time constant that you haveselected in part (d), determine the range of proportional gain that we can use (without thecascade controller and secondary loop) to maintain a stable system. How is this different fromwhen we use cascade control?

With the choice of τI = 0.5 s, but without the inner loop nor the secondary controller, the

closed-loop equation is

1 + Gc Gv Gp = 1 + Kc0.5 s + 1

0.5 s0.5

s + 10.8

2 s + 1 = 0

which can be expanded to

s3 + 1.5 s2 + (0.5 + 0.2Kc) s + 0.4Kc = 0

With the Routh-Hurwitz analysis in Chapter 7, we should find that to have a stable system,we must keep Kc < 7.5. (You fill in the intermediate steps in the Review Problems. Other

techniques such as root locus, direct substitution or frequency response in Chapter 8 shouldarrive at the same result.)

With cascade control, we know from part (d) that the system is always stable. Nevertheless,we can write the closed-loop characteristic equation

1 + Kc0.5 s + 1

0.5 s0.9

0.1 s + 10.8

2 s + 1 = 0

or

0.1 s3 + 1.05 s2 + (0.5 + 0.36Kc) s + 0.72Kc = 0

A Routh-Hurwitz analysis can confirm that. The key point is that with cascade control, thesystem becomes more stable and allows us to use a larger proportional gain in the primarycontroller. The main reason is the much faster response (smaller time constant) of the actuatorin the inner loop.2

2 If you are skeptical of this statement, try do the Bode plots of the systems with and withoutcascade control and think about the consequence of changing the break frequency (or bandwidth) ofthe valve function. If you do not pick up the hint, the answer can be found on our Web Support onthe details of Example 10.1.

Page 194: Process Control

10-6

10.2 Feedforward control

To counter probable disturbances, we can take an even more proactive approach than cascadecontrol, and use feedforward control. The idea is that if we can make measurements of disturbancechanges, we can use this information and our knowledge of the process model to make properadjustments in the manipulated variable before the disturbance has a chance to affect the controlledvariable.

We will continue with the gas furnace to illustrate feedforward control. For simplicity, let'smake the assumption that changes in the furnace temperature (T) can be effected by changes in thefuel gas flow rate (Ffuel) and the cold process stream flow rate (Fs). Other variables such as the

process stream temperature are constant.

In Section 10.1, the fuel gas flow rate is the manipulated variable (M) and cascade control isused to handle its fluctuations. Now, we consider also changes in the cold process stream flow rateas another disturbance (L). Let's presume further that we have derived diligently from heat andmass balances the corresponding transfer functions, GL and Gp, and we have the process model

C = GLL + GpM (10-4)

where we have used the general notation C as the controlled variable in place of furnacetemperature T.

We want the controlled variable to track set point changes (R) precisely, so we substitute theideal scenario C = R, and rearrange Eq. (10-4) to

M = 1

Gp R –

GL

Gp L (10-5)

This equation provides us with a model-based rule as to how the manipulated variable should beadjusted when we either change the set point or face with a change in the load variable. Eq. (10-5)is the basis of what we call dynamic feedforward control because (10-4) has to be derived from atime-domain differential equation (a transient model). 3

In Eq. (10-5), 1/Gp is the set point tracking controller. This is what we need if we install only

a feedforward controller, which in reality, we seldom do.4 Under most circumstances, the change inset point is handled by a feedback control loop, and we only need to implement the second term of(10-5). The transfer function –GL/Gp is the feedforward controller (or the disturbance rejection

controller). In terms of disturbance rejection, we may also see how the feedforward controller arisesif we command C = 0 (i.e., no change), and write (10-4) as

0 = GLL + GpM

To see how we implement a feedforward controller, we now turn to a block diagram (Fig.10.3). 5 For the moment, we omit the feedback path from our general picture. With the

3 In contrast, we could have done the derivation using steady state models. In such a case, wewould arrive at the design equation for a steady state feedforward controller. We'll skip thisanalysis. As will be shown later, we can identify this steady state part from the dynamic approach.

4 The set point tracking controller not only becomes redundant as soon as we add feedbackcontrol, but it also unnecessarily ties the feedforward controller into the closed-loop characteristicequation.

5 If the transfer functions GL and Gp are based on a simple process model, we know quite wellthat they should have the same characteristic polynomial. Thus the term –GL/Gp is nothing but aratio of the steady state gains, –KL/Kp.

Page 195: Process Control

10-7

expectation that we'll introduce a feedback loop, we will not implement the set point tracking termin Eq. (10-5). Implementation of feedforword control requires measurement of the load variable.

+

L

CG*v

GFF

mL

Gp

GL

+

G

Figure 10.3. A feedforward control system on a major loadvariable with measurement function GML and feedforwardcontroller GFF.

If there is more than one load variable, we theoretically could implement a feedforwardcontroller on each one. However, that may not be good engineering. Unless there is a compellingreason, we should select the variable that either undergoes the most severe fluctuation or has thestrongest impact on the controlled variable.

Here, we use L to denote the major load variable and its corresponding transfer function is GL.We measure the load variable with a sensor, GmL, which transmits its signal to the feedforwardcontroller GFF. The feedforward controller then sends its decision to manipulate the actuatingelement, or valve, Gv. In the block diagram, the actuator transfer function is denoted by G*v. Theidea is that cascade control may be implemented with the actuator, Gv, as we have derived in Eq.(10-1). We simply use G*v to reduce clutter in the diagram.

With the feedforward and load path shown, the corresponding algebraic representation is

C = [GL + GmLGFFG*vGp] L (10-6)

The ideal feedforward controller should allow us to make proper adjustment in the actuator toachieve perfect rejection of load changes. To have C = 0, the theoretical feedforward controllerfunction is

GFF = – GL

GmLG*vGp (10-7)

which is a slightly more complete version of what we have derived in Eq. (10-5).

Before we blindly try to program Eq. (10-7) into a computer, we need to recognize certainpitfalls. If we write out the transfer functions in (10-7), we should find that GFF is not physically

realizable—the polynomial in the numerator has a higher order than the one in the denominator.6

If we approximate the composite function GmLG*vGp as a first order function with dead time,

Ke–θs/(τs+1), Eq. (10-7) would appear as

6 If we go by the book, GL and Gp are the transfer functions to a process and their dynamic terms

(characteristic polynomial) in Eq. (10-7) must cancel out. The feedforward transfer function wouldbe reduced to something that looks like (–KL/KmLK*vKp) (τmLs+1)(τ*vs+1) while the denominator

is just 1.

In the simplest scenario where the responses of the transmitter and the valve are extremely fastsuch that we can ignore their dynamics, the feedforward function consists of only the steady stategains as in Eq. (10-9).

Page 196: Process Control

10-8

GFF = – KL

K τs+1τps+1

eθs

Now the dead time appears as a positive exponent or an advance in time. We cannot foresee futureand this idea is not probable either.7

The consequence is that most simple implementation of a feedforward controller, especiallywith off-the-shelf hardware, is a lead-lag element with a gain:

GFF = KFF τFLDs+1

τFLGs+1 (10-8)

Based on Eq. (10-7), the gain of this feedforward controller is

KFF = – KL

KmLK*vKp (10-9)

This is the steady state compensator. The lead-lag element with lead time constant τFLD and lagtime constant τFLG is the dynamic compensator. Any dead time in the transfer functions in (10-7)

is omitted in this implementation.

When we tune the feedforward controller, we may take, as a first approximation, τFLD as thesum of the time constants τm and τ*v. Analogous to the "real" derivative control function, we canchoose the lag time constant to be a tenth smaller, τFLG ≈ 0.1 τFLD. If the dynamics of themeasurement device is extremely fast, Gm = KmL, and if we have cascade control, the time constantτ*v is also small, and we may not need the lead-lag element in the feedforward controller. Just theuse of the steady state compensator KFF may suffice. In any event, the feedforward controller must

be tuned with computer simulations, and subsequently, field tests.

7 If the load transfer function in Eq. (10-7) had also been approximated as a first order functionwith dead time, say, of the form KLe–tds/(τps+1), the feedforward controller would appear as

GFF = – KL

K τs+1τps+1

e–(td – θ)s.

Now, if td > θ, it is possible for the feedforward controller to incorporate dead time compensation.

The situation where we may find the load function dead time is larger than that in thefeedforward path of GmG*vGp is not obvious from our simplified block diagram. Such a

circumstance arises when we deal with more complex processing equipment consisting of severalunits (i.e., multicapacity process) and the disturbance enters farther upstream than where thecontrolled and manipulated variables are located.

Page 197: Process Control

10-9

10.3 Feedforward-feedback control

Since we do not have the precise model function Gp embedded in the feedforward controller

function in Eq. (10-8), we cannot expect perfect rejection of disturbances. In fact, feedforwardcontrol is never used by itself; it is implemented in conjunction with a feedback loop to providethe so-called feedback trim (Fig. 10.4a). The feedback loop handles (1) measurement errors, (2)errors in the feedforward function, (3) changes in unmeasured load variables, such as the inletprocess stream temperature in the furnace that one single feedforward loop cannot handle, and ofcourse, (4) set point changes.

+

L

CG*v

GFF

GmL

Gp

G L

+R

–Gc

Gm

ME

++

(a)

+

L

C

GmL

GL

+R

–G c

Gm

GFF GpG*v

GpG*vE

+ +

(b)

Figure 10.4. (a) A feedforward-feedback control system. (b) The diagram after moving G*vGp.

Our next task is to find the closed-loop transfer functions of this feedforward-feedback system.Among other methods, we should see that we can "move" the G*vGp term as shown in Fig.

10.4b. (You can double check with algebra.) After this step, the rest is routine. We can almostwrite down the final result immediately. Anyway, we should see that

C = [GL + GmLGFFG*vGp] L + [GcG*vGp] E

and

E = R – GmC

After substitution for E and rearrangement, we arrive at

C = GL + GmLGFFG*vGp

1 + GmGcG*vGp L +

GcG*vGp

1 + GmGcG*vGp R (10-10)

If we do not have cascade control, G*v is simply Gv. If we are using cascade control, we cansubstitute for G*v with Eq. (10-1), but we'll skip this messy algebraic step. The key point is that

the closed-loop characteristic polynomial is

1 + GmGcG*vGp = 0 (10-11)

and the feedforward controller GFF does not affect the system stability.

✎ Example 10.2: Consider the temperature control of a gas furnace used in heating a processstream. The probable disturbances are in the process stream temperature and flow rate, and the fuelgas flow rate. Draw the schematic diagram of the furnace temperature control system, and showhow feedforward, feedback and cascade controls can all be implemented together to handle loadchanges.

The design in Fig. E10.2 is based on our discussion of cascade control. The fuel gas flow isthe manipulated variable, and so we handle disturbance in the fuel gas flow with a flow controller

Page 198: Process Control

10-10

(FC) in a slave loop. This secondary loop remains the same as the G*v function in (10-1), wherethe secondary transfer function is denoted by Gc2.

Of the other two load variables, we choose the process stream flow rate as the majordisturbance. The flow transducer sends the signal to the feedforward controller (FFC, transferfunction GFF). A summer (Σ) combines the signals from both the feedforward and the feedback

controllers, and its output becomes the set point for the secondary fuel gas flow rate controller(FC).

FT

FC

Hot process stream

TsTCTT

Furnace

Fuel gas

TTT

∑FT

FFC

Flow rate

Processstream

Temperature

Figure E10.2

Handling of disturbance in the inlet process stream temperature is passive. Any changes inthis load variable will affect the furnace temperature. The change in furnace temperature ismeasured by the outlet temperature transducer (TT) and sent to the feedback temperature controller(TC). The primary controller then acts accordingly to reduce the deviation in the furnacetemperature.

10.4 Ratio control

We are not entirely finished with the furnace. Thereis one more piece missing from the wholepicture—the air flow rate. We need to ensuresufficient air flow for efficient combustion. Theregulation of air flow is particularly important inthe reduction of air pollutant emission.

To regulate the air flow rate with respect to thefuel gas flow rate, we can use ratio control. Fig.10.5 illustrates one of the simplestimplementations of this strategy. Let's say the airto fuel gas flow rates must be kept at someconstant ratio

R = FA

FF G (10-12)

What we can do easily is to measure the fuel gas flow rate, multiply the value by R in the so-called ratio station, and send the signal as the set point to the air flow controller. The calculationcan be based on actual flow rates rather than deviation variables.

FT

FC

Air flow, F

Fuel gas flowentering furnace, F

FT RS Ratio station

A

FG

Figure 10.5. Simple ratio control of airflow rate.

Page 199: Process Control

10-11

A more sophisticatedimplementation is full meteringcontrol (Fig. 10.6). In this case, wesend the signals from the fuel gascontroller (FC in the fuel gas loop) andthe air flow transmitter (FT) to theratio controller (RC), which takes thedesired flow ratio (R) as the set point.This controller calculates the proper airflow rate, which in turn becomes theset point to the air flow controller (FCin the air flow loop). If we take awaythe secondary flow control loops onboth the fuel gas and air flow rates,what we have is called parallelpositioning control. In this simplercase, of course, the performance of thefurnace is subject to fluctuations infuel and air supply lines.

We are skipping the equations anddetails since the air flow regulation should not affect the stability and system analysis of the fuelgas controller, and ratio control is best implemented with Simulink in simulation and designprojects.

10.5 Time delay compensation—the Smith predictor

There are different schemes to handle systemswith a large dead time. One of them is theSmith predictor. It is not the most effectivetechnique, but it provides a good thoughtprocess.

Consider a unit feedback system with atime delay in its process function (Fig. 10.7).The characteristic polynomial is

1 + Gc (s) G(s) e– td s = 0 (10-13)

We know from frequency response analysisthat time lag introduces extra phase lag,reduces the gain margin and is a significantsource of instability. This is mainly becausethe feedback information is outdated.

If we have a model for the process, i.e.,we know G(s) and td, we can predict what

may happen and feedback this estimation. Theway the dead time compensator (or predictor)is written (Fig. 10.8), we can interpret the transfer function as follows. Assuming that we knowthe process model, we feedback the "output" calculation based on this model. We also have tosubtract out the "actual" calculated time delayed output information.

Now the error E also includes the feedback information from the dead time compensator:

G (s)cR Y

G(s)e– t s d–

+

Figure 10.7. System with inherent dead time.

G (s)cR Y

G(s)e– t s d

–+

Deadtime Compensator

G(s)[1 – e ]– t s d

– E

Figure 10.8. Implementation of the Smithpredictor.

FT

FC

Fuel gas

RC

Air flow, F

To furnaceR

FT

FC

A

From the feedforward-feedbackloops

To furnace

Figure 10.6. Full metering ratio control of fuel andair flows.

Page 200: Process Control

10-12

E = R – Y – E Gc G (1 – e– td s) ,

and substituting

Y = Gc G e– td s E

we have

E = R – E Gc G e– td s + Gc G (1 – e– td s)

where the exponential terms cancel out and we are left with simply

E = R – E Gc G (10-14)

The time delay effect is canceled out, and this equation at the summing point is equivalent to asystem without dead time (where the forward path is C = GcGE). With simple block diagram

algebra, we can also show that the closed-loop characteristic polynomial with the Smith predictoris simply

1 + GcG = 0 (10-15)

The time delay is removed. With the delaycompensator included, we can now use a largerproportional gain without going unstable. Goingback to the fact that the feedback information isGcGR, we can also interpret the compensator effect

as in Fig. 10.9. The Smith predictor is essentiallymaking use of state feedback as opposed to outputfeedback.

Just like feedforward control (or any other model-based control), we only have perfect compensation ifwe know the precise process model. Otherwise, the effectiveness of the compensator (or predictor)is diminished. Assume that we have an imperfect model approximation H(s) and dead timeestimation θ (H ≠ G and θ ≠ td), the feedback information is now

Y + H (1 – e– θs) Gc R = Gc G e– td s

+ Gc H (1 – e– θs) R

= Gc G e– td s+ H (1 – e– θs

) R

where the right hand side becomes GcGR if and only if H = G and θ = td. Note that the time delay

term is an exponential function. Error in the estimation of the dead time is more detrimental thanerror in the estimation of the process function G.

Since few things are exact in this world, we most likely have errors in the estimation of theprocess and the dead time. So we only have partial dead time compensation and we must beconservative in picking controller gains based on the characteristic polynomial 1 + GcG = 0.

In a chemical plant, time delay is usually a result of transport lag in pipe flow. If the flow rateis fairly constant, the use of the Smith predictor is acceptable. If the flow rate varies for whateverreasons, this compensation method will not be effective.

GcR YG

–+ e

– t s d

Figure 10.9. An interpretation of thecompensator effect.

Page 201: Process Control

10-13

10.6 Multiple-input Multiple-output Control

In this section, we analyze a multipleinput-multiple output (MIMO) system.There are valuable insights that can begained from using the classical transferfunction approach. One decision that weneed to appreciate is the proper pairing ofmanipulated and controlled variables. Todo that, we also need to know how strongthe interaction is among differentvariables.

The key points will be illustrated witha blending process. Here, we mix twostreams with mass flow rates m1 and m2, and both the total flow rate F and the composition x of a

solute A are to be controlled (Fig. 10.10). With simple intuition, we know changes in both m1and m2 will affect F and x. We can describe the relations with the block diagram in Fig. 10.11,

where interactions are represented by the two, yet to be derived, transfer functions G12 and G21.

G11

G22

G21

G12

+

+

C

C

M1

M 2

1

2

= x

= F

+

+

G11

G22

G21

G12

+

C

C

M 1

M 2

1

2

+

G c1

G c2

+

+

R

R

1

2

Figure 10.11. Block diagram of an interacting2 x 2 process, with the output x and F referringto the blending problem.

Figure 10.12. Block diagram of a 2 x 2 servosystem. The pairing of the manipulated andcontrolled variables is not necessarily the sameas shown in Fig. 10.11.

Given Fig. 10.11 and classical control theory, we can infer the structure of the control system,which is shown in Fig. 10.12. That is, we use two controllers and two feedback loops, where forsimplicity, the measurement and actuator functions have been omitted.

Simple reasoning can illustrate now interactions may arise in Fig. 10.12. If a disturbance (notshown in diagram) moves C1 away from its reference R1, the controller Gc1

will response to the

error and alter M1 accordingly. The change in M1, however, will also affect C2 via G21. Hence C2is forced to change and deviate from R2. Now the second controller Gc2

kicks in and adjusts M2,

which in turn also affects C1 via G12.

With this scenario, the system may eventually settle, but it is just as likely that the system inFig. 10.12 will spiral out of control. It is clear that loop interactions can destabilize a controlsystem, and tuning controllers in a MIMO system can be difficult. One logical thing that we cando is to reduce loop interactions by proper pairing of manipulated and controlled variables. This isthe focus of the analysis in the following sections.

FT CT

FC CC

F x

m

m

1

2

Figure 10.10. A blending system withmanipulated and controlled variable pairings yet tobe determined.

Page 202: Process Control

10-14

✑ 10.6.1 MIMO Transfer functions

We now derive the transfer functions of the MIMO system. This sets the stage for more detailedanalysis that follows. The transfer functions in Fig. 10.11 depend on the process that we have tocontrol, and we’ll derive them in the next section for the blending process. Here, we consider ageneral system as shown in Fig.10.12.

With the understanding that the errors are E1 = R1 – C1, and E2 = R2 – C2 in Fig. 10.12, we

can write immediately,

M1 = Gc1 (R1 – C1) (10-16)

M2 = Gc2 (R2 – C2) (10-17)

The process (also in Fig. 10.11) can be written as

C1 = G11 M1 + G12 M2 (10-18)

C2 = G21 M1 + G22 M2 (10-19)

Substitute for M1 and M2 using (10-16, 17), and factor C1 and C2 to the left, Eqs. (10-18) and (10-

19) becomes

(1 + G11Gc1) C1 + G12 Gc2

C2 = G11Gc1 R1 + G12 Gc2

R2 (10-20)

G21Gc1 C1 + (1 + G22Gc2

) C2 = G21Gc1 R1 + G22 Gc2

R2 (10-21)

Making use of Kramer’s rule, we should identify (derive!) the system characteristic equation:

p(s) = (1 + G11Gc1) (1 + G22Gc2

) + G12 G21 Gc1Gc2

= 0 (10-22)

which, of course, is what governs the dynamics and stability of the system. We may recognize thatwhen either G12 = 0 or G21 = 0, the interaction term is zero.8 In either case, the system

characteristics analysis can be reduced to those of two single loop systems:

1 + G11Gc1 = 0 , and 1 + G22Gc2

= 0

Now back to finding the transfer functions with interaction. To make the algebra appear a bitcleaner, we consider the following two cases. When R2 = 0, we can derive from Eq. (10-20) and

(10-21),

C1

R1=

G11Gc1+ Gc1

Gc2(G11G22 – G12G21)

p(s)(10-23)

And when R1 = 0, we can find

C1

R2=

G12Gc2

p(s)(10-24)

8 When both G12 = G21 = 0, the system is decoupled and behaves identically to two single loops.

When either G12 = 0 or G21 = 0, the situation is referred to as one-way interaction, which is

sufficient to eliminate recursive interactions between the two loops. In such a case, one of theloops is not affected by the second while it becomes a source of disturbance to this second loop.

Page 203: Process Control

10-15

If both references change simultaneously, we just need to add their effects in (10-23) and (10-24)together. (What about C2? You’ll get to try that in the Review Problems.)

It is apparent from Eq. (10-22) that with interaction, the controller design of the MIMO systemis different from a SISO system. One logical question is under what circumstances may we makeuse of SISO designs as an approximation? Or in other words, can we tell if the interaction may beweak? This takes us to the next two sections.

✑ 10.6.2 Process gain matrix

We come back to derive the process transfer functions for the blending problem.9 The total massflow balance is

F = m1 + m2 (10-25)

where F is the total flow rate after blending, and m1 and m2 are the two inlet flows that we

manipulate. The mass balance for a solute A (without using the subscript A explicitly) is

xF = x1m1 + x2m2 (10-26)

where x is the mass fraction of A after blending, and x1 and x2 are the mass fractions of A in the

two inlet streams. We want to find the transfer functions as shown in Fig. 10.11:

X(s)F(s) =

G11(s) G12(s)G21(s) G22(s)

M1(s)M2(s) (10-27)

We take stream m1 to be pure solute A, and stream m2 to be pure solvent. In this scenario, x1 = 1

and x2 = 0, and Eq. (10-26) is simplified to

x =m1

F=

m1m1 + m2

(10-28)

Since xi and mi are functions of time, we need to linearize (10-26). A first order Taylor expansion

of x is

x ≈m1

F s+

m2

(m1 + m2)2

s

(m1 – m1,s) –m1

(m1 + m2)2

s

(m2 – m2,s)

where the subscript s of the brackets denotes terms evaluated at steady state. The first term on theright is really the value of x at steady state, xs, which can be moved to the left hand side to make

the deviation variable in x. With that, we take the Laplace transform to obtain the transferfunctions of the deviation variables:

X(s) = G11(s)M1(s) + G12(s)M2(s) (10-29)

where

G11(s) =m2

(m1 + m2)2

s

= K11 , and G12(s) = –m1

(m1 + m2)2

s

= K12 (10-30)

9 Since the point is to illustrate the analysis of interactions, we are using only steady statebalances and it should not be a surprise that the transfer functions end up being only steady stategains in Eq. (10-32). For a general dynamic problem where have to work with the transferfunctions Gij(s), we can still apply the results here by making use of the steady state gains of the

transfer functions.

Page 204: Process Control

10-16

The transfer functions are constants and hence we denote them with the gains K11 and K12. If the

solvent flow rate m2 increases, the solute will be diluted. Hence, K12 is negative.

The functions G21 and G22 are much easier. From Eq. (10-25), we can see immediately that

G21(s) = K21 = 1, and G22(s) = K22 = 1 (10-31)

Thus, in this problem, the process transfer function matrix Eq. (10-27) can be written in terms ofthe steady state gain matrix:

X(s)F(s) =

K11 K12K21 K22

M1(s)M2(s) (10-32)

In more general terms, we replace the LHS of (10-32) with a controlled variable vector:

C(s) = K M(s) (10-33)

where C = [X F]T. If there is a policy such that the manipulated variables can regulate thecontrolled variables, we must be able to find an inverse of the gain matrix such that

M(s) = K–1 C(s) (10-34)

Example 10.3. If m1 = 0.1 g/s, m2 = 10 g/s, What is the process gain matrix? What are the

interpretations?

Making use of (10-30), we can calculate K11 = 9.8 x 10–2, and K12 = –9.8 x 10–2. With (10-31),

the process gain matrix is

K =

9.8 × 10– 2 – 9.8 × 10– 4

1 1

Under circumstances of the particular set of numbers given, changing either m1 or m2 has a

stronger effect on the total flow rate F than x. With respect to the composition x, changing thesolute flow m1 has a much stronger effect than changing the solvent flow. The situation resembles

very much a one-way interaction.

We may question other obvious scenarios of the process gain matrix. The sweetest is anidentity matrix, meaning no interaction among the manipulated and controlled variables. A quicksummary of several simple possibilities:10

K = 1 00 1 No interaction. Controller design is like single-loop systems.

K = 1 δδ 1

Strong interaction if δ is close to 1; weak interaction if δ « 1.

K = 1 10 1

, 1 01 1 One-way interaction

10 There is more to “looking” at K. We can, for example, make use of its singular value andcondition number, which should be deferred to a second course in control.

Page 205: Process Control

10-17

✑ 10.6.3 Relative gain array

You may not find observing the process gain matrix satisfactory. That takes us to the relativegain array (RGA), which can provide for a more quantitative assessment of the effect of changinga manipulated variable on different controlled variables. We start with the blending problem beforecoming back to the general definition.

For the blending process, the relative gain parameter of the effect of m1 on x is defined as

λ x, m1

=∂x ∂m1∂x ∂m1 m2

∂x ∂m1∂x ∂m1 F

(10-35)

It is the ratio of the partial derivative evaluated under two different circumstances. On top, we lookat the effect of m1 while holding m2 constant. The calculation represents an open-loop experiment

and the value is referred to as an open-loop gain. In the denominator, the total flow rate, the othercontrolled variable, is held constant. Since we are varying (in theory) m1, F can only be constant if

we have a closed-loop with perfect control involving m2. The partial derivative in the denominator

is referred to as some closed-loop gain.

How do we interpret the relative gain? The idea is that if m2 does not interfere with m1, the

derivative in the denominator should not be affected by the closed-loop involving m2, and its value

should be the same as the open-loop value in the numerator. In other words, if there is nointeraction, λx,m1 = 1.

Example 10.4. Evaluate the relative gain array matrix for the blending problem.

The complete relative gain array matrix for the 2 x 2 blending problem is defined as

Λ =

λ x, m1λ x, m2

λ F, m1λ F, m2

(E10-4)

For the first element, we use (10-28) to find

∂x

∂m1 m2

=m2

(m1 + m2)2 , and

∂x

∂m1 F

= 1F

= 1m1 + m2

Hence, with the definition in (10-35),

λ x, m1=

m2m1 + m2

= 1 – x (E10-5)

Proceed to find the other three elements (see Review Problems) and we have the RGA for theblending problem:

Λ =

1 – x xx 1 – x

(E10-6)

There are several notable and general points regarding this problem, i.e., without proving themformally here. The sum of all the entries in each row and each column of the relative gain array Λis 1. Thus in the case of a 2 x 2 problem, all we need is to evaluate one element. Furthermore, thecalculation is based on only open-loop information. In Example 10.4, the derivation is based on(10-25) and (10-26).

Page 206: Process Control

10-18

We can now state the general definition of the relative gain array, Λ. For the elementrelating the i-th controlled variable to the j-th manipulated variable,

λ i, j =

∂ci ∂mj∂ci ∂mj mk, k ≠ j

∂ci ∂mj∂ci ∂mj ck, k ≠ i

(10-36)

where the (open-loop) gain in the numerator is evaluated with all other manipulated variables heldconstant and all the loops open (no loops!). The (closed-loop) gain in the denominator is evaluatedwith all the loops—other than the i-th loop—closed. The value of this so-called closed-loop gainreflects the effect from other closed-loops and the open-loop between mj and ci.

The relative gain array can be derived in terms of the process steady state gains. Making use ofthe gain matrix equation (10-32), we can find (not that hard; see Review Problems)

λ x, m1= 1

1 –K12K21

K11K22

(10-37)

which can be considered a more general form of (E10-5) and hence (E10-6).11

The next question comes back to the meaning of the RGA, and how that may influence ourdecision in pairing manipulated with controlled variables. Here is the simple interpretation makinguse of (10-36) and (10-37):

λi,j = 1 Requires K12K21 = 0. “Open-loop” gain is the same as the “closed-

loop” gain. The controlled variable (or loop) i is not subject tointeraction from other manipulated variables (or other loops). Ofcourse, we know nothing about whether other manipulated variablesmay interact and affect other controlled variables. Nevertheless, pairingthe i-th controlled variable to the j-th manipulated variable is desirable.

λi,j = 0 The open-loop gain is zero. The manipulated variable j has no effect onthe controlled variable i. Of course mj may still influence other

controlled variables (via one-way interaction). Either way, it makes nosense to pair mj with ci in a control loop.

0 < λ i,j < 1 No doubt there are interactions from other loops, and from (10-37),some of the process gains must have opposite signs (or act in differentdirections). When λi,j = 0.5, we can interpret that the effect of the

interactions is identical to the open-loop gain—recall statement after(10-36). When λi,j > 0.5, the interaction is less than the main effect ofmj on ci. However, when λi,j < 0.5, the interactive effects predominate

and we want to avoid pairing mj with ci.

λ i,j > 1 There are interactions from other loops as well, but now with all theprocess gains having the same sign. Avoid pairing mj with ci if λi,j is

much larger than 1.

λ i,j < 0 We can infer using (10-36) that the open-loop and closed-loop gainshave different signs or opposing effects. The overall influence of the

11 For your information, relative gain array can be computed as the so-called Hadamard product, λij= KijK

–1ji, which is the element-by-element product of the gain matrix K and the transpose of its

inverse. You can confirm this by repeating the examples with MATLAB calculations.

Page 207: Process Control

10-19

other loops is in opposition to the main effect of mj on ci. Moreover,

from (10-37), the interactive product K12K21 must be larger than the

direct terms K11K22. Undesirable interaction is strong. The overall

multiloop system may become unstable easily if we open up one of itsloops. We definitely should avoid pairing mj with ci.

To sum up, the key is to pair the manipulated and controlled variables such that the relativegain parameter is positive and as close to one as possible.

Example 10.5. If m1 = 0.1 g/s, m2 = 10 g/s, what is the proper pairing of manipulated and

controlled variables? What if m1 = 9 g/s, m2 = 1 g/s?

In the first case where m1 is very small, it is like a dosing problem. From (10-28), x = 0.0099.

Since x « 1, λx,m1 is very close to 1 by (E10-5). Thus interaction is not significant if we pair x

with m1, and F with m2. Physically, we essentially manipulate the total flow with the large

solvent flow m2 and tune the solute concentration by manipulating m1.

In the second case, x = 0.9. Now λx,m1 = 0.1 by (E10-5). Since λx,m1

« 1, we do not want to pair

x with m1. Instead, we pair pair x with m2, and F with m1. Now we regulate the total flow with

the larger solute flow m1 and tune the concentration with the solvent m2.

10.7 Decoupling of interacting systems

After proper pairing of manipulated and controlled variables, we still have to design and tune thecontrollers. The simplest approach is to tune each loop individually and conservatively while theother loop is in manual mode. At a more sophisticated level, we may try to decouple the loopsmathematically into two non-interacting SISO systems with which we can apply single looptuning procedures. Several examples applicable to a 2 x 2 system are offered here.

✑ 10.7.1 Alternate definition of manipulated variables

We seek choices of manipulated variables that may decouple the system. A simple possibility is topick them to be the same as the controlled variables. In the blending problem, the two newmanipulated variables can be defined as 12

µ1 = F (10-38)

and

µ2 = x (10-39)

Once the controller (a computer) evaluates these two manipulated variables, it also computes onthe fly the actual signals necessary for the two mass flow rates m1 and m2. The computation

12 The blending problem can be reduced to one-way interaction if we use m1 instead of x as the

new manipulated variable µ2. We’ll do that in the Review Problems.

Page 208: Process Control

10-20

follows directly the balance equations (10-25) and (10-28). Fig. 10.13 is a schematic diagram onhow this idea may be implemented.

✑ 10.7.2 Decoupler functions

In this section, we add the so-called decoupler functions to a 2 x 2 system. Our starting point isFig. 10.12. The closed-loop system equations can be written in matrix form, virtually by visualobservation of the block diagram, as

C1

C2=

G11 G12

G21 G22

Gc10

0 Gc2

R1 – C1

R2 – C2(10-40)

In matrix form, this equation looks deceptively simple, but if we expand the algebra, we shouldarrive at Eqs. (10-20) and (10-21) again.

In a system with interactions, G12 and G21 are not zero, but we can manipulate the controller

signal such that the system appears (mathematically) to be decoupled. So let's try to transform thecontroller output with a matrix D, which will contain our decoupling functions. The manipulatedvariables are now

M1

M2=

d11 d12

d21 d22

Gc10

0 Gc2

R1 – C1

R2 – C2

and the system equations become

C1C2

=G11 G12

G21 G22

d11 d12

d21 d22

Gc10

0 Gc2

R1 – C1R2 – C2

= GDGcR1 – C1R2 – C2

(10-41)

To decouple the system equations, we require that GDGc be a diagonal matrix. Define Go =GDGc, and the previous step can be solved for C:

C1C2

= I + Go–1 Go

R1R2

(10-42)

Since Go is diagonal, the matrix [I + Go]–1Go is also diagonal, and happily, we have two

decoupled equations in (10-42).

Now we have to find D. Since Gc is already diagonal, we require that GD be diagonal:

FT CT

FC CC

F x

m1

m 2

m1+ m 2

m1

m1+ m 2

x

+ +–

m1

Figure 10.13. A decoupled control scheme. The controller outputs arethe manipulated variables in Eqs. (10-38) and (10-39) and they arerewritten based on their definitions in (10-25) and (10-28).

Page 209: Process Control

10-21

G11 G12G21 G22

d11 d12d21 d22

=H1 00 H2

(10-43)

A little bit of algebra to match term by term, we should find (see Review Problems)

d11 =G22 H1

G11 G22 – G12 G21 , d22 =

G11 H2

G11 G22 – G12 G21(10-44)

d21 =– G21

G22d11

, d12 =

– G12

G11d22 (10-45)

We have six unknowns (four dij and two Hi) but only four equations. We have to make two

(arbitrary) decisions. One possibility is to choose (or define)

H1 =G11 G22 – G12 G21

G22, and H2 =

G11 G22 – G12 G21

G11(10-46)

such that d11 and d22 become 1. (We can also think in terms of choosing both d11 = d22 = 1 andthen derive the relations for H1 and H2.) It follows that

d21 =– G21

G22, and d12 =

– G12

G11(10-47)

Now the closed-loop equations are

C1

C2=

H1 00 H2

Gc1 00 Gc2

R1 – C1

R2 – C2=

H1 Gc10

0 H2 Gc2

R1 – C1

R2 – C2(10-48)

from which we can easily write, for each row of the matrices,

C1

R1=

Gc1H1

1 + Gc1H1

, and C2

R2=

Gc2H2

1 + Gc2H2

(10-49)

and the design can be based on the two characteristic equations

1 + Gc1H1 = 0 , and 1 + Gc2H2 = 0 (10-50)

Recall Eq. (10-46) that H1 and H2 are defined entirely by the four plant functions Gij. This isanother example of model-based control. With the definitions of H1 and H2 given in (10-46), the

calculations are best performed with a computer.

G11

G22

G21

G12

+

+

C

C

M 2

1

2

+

+

D 21

D12

+

+

R1

R2

G c1

G c2

+

+

M 1

+

+

a

b

Figure 10.14. A decoupling scheme using two feedforward-like decoupler functions.

Page 210: Process Control

10-22

✑ 10.7.3 Feedforward decoupling functions

A simpler approach is to use only two decoupler functions and implement them as if they werefeedforward controllers that may reduce the disturbance arising from loop interaction. Asimplemented in Fig. 10.14, we use the function D12 to “foresee” and reduce the interaction due to

G12. Likewise, D21 is used to address the interaction due to G21. To find these two decoupling

functions, we focus on how to cancel the interaction at the points identified as “a” and “b” in Fig.10.14.

Let’s pick the point “a” first. If the signal from M1 through G21 can be cancelled by the

compensation through D21, we can write

G21M1 + G22D21M1 = 0

Cancel out M1 and we have

D21 = – G21/G22 (10-51)

Similarly, if D12 can cancel the effect of G12 at the point “b,” we have

G12M2 + G11D12M2 = 0

or

D12 = – G12/G11 (10-52)

We may notice that Eqs. (10-51) and (10-52) are the same as d21 and d12 in (10-47). The strategy of

implementing D12 and D21 is similar to the discussion of feedforward controllers in Section 10.2,

and typically we remove the time delay terms and apply a lead-lag compensator as in Eq. (10-8). Ifthe time constant of the first-order lead is similar to time constant of the first-order lag, then wejust need a steady state compensator.

Example 10.6: A classic example of an MIMO problem is a distillation column.13 From open-loop step tests, the following transfer functions are obtained:

XD (s)

XB (s)=

0.07 e– 3 s

12 s + 1– 0.05 e– s

15 s + 10.1 e– 4 s

11 s + 1– 0.15 e– 2 s

10 s + 1

L(s)

V(s)

In this model, xD and xB are the distillate and bottom compositions, L is the reflux flow rate, and

V is the boil-up rate. Design a 2x2 MIMO system with PI controllers and decouplers as in Fig.10.14.

Before we design the MIMO system, we need to check the paring of variables. The steady stategain matrix is

13 Pardon us if you have not taken a course in separation processes yet, but you do not need toknow what a distillation column is to read the example. In a simple-minded way, we can think ofmaking moonshine. We have to boil a dilute alcohol solution at the bottom and we need acondenser at the top to catch the distillate. This is how we have the V and L manipulated variables.Furthermore, the transfer functions are what we obtain from doing an experiment, not from anytheoretical derivation.

Page 211: Process Control

10-23

K = 0.07 – 0.050.1 – 0.15

With Eq. (10-37) and (E10-6), the relative gain array is

ΛΛ = 1.91 – 0.91– 0.91 1.91

The relative gain parameter λxD-L is 1.91. It is not 1 but at least it is not negative. Physically, it

also makes sense to manipulate the distillate composition with the more neighboring reflux flow.So we will pair xD-L and xB-V. Next, with (10-51) and (10-52), the two decoupling functions are

D12 = Kd, 1212 s + 115 s + 1

, and D21 = Kd, 2110 s + 111 s + 1

≈ Kd, 21

To do the tuning, we can use the initial values Kd,12 ≈ –0.7 (–0.05/0.07), and Kd,21 ≈ –0.7

(–0.1/0.15).

We will have to skip the details for the remainder of the exercise. You may try to generate a plotsimilar to Fig. E10.6 in the Review Problems.

This is roughly how we did it. All the simulations are performed with Simulink. First, we useG11 and G22 as the first order with dead time functions and apply them to the ITAE tuning

relations in Table 6.1. With that, we have the PI controller settings of two SISO systems. Thesingle loop response to a unit step change in the set point of xD is labeled SISO in Fig. E10.6.

We retain the ITAE controller settings and apply them to a Simulink block diagram constructed asin Fig. 10.12. The result is labeled MIMO in the figure. Finally, we use Fig. 10.14 and the twodecouplers, and the simulation result with the initial setting is labeled “MIMO with decouplers.”

0

0.2

0.4

0.6

0.8

1

1.2

0 10 20 30 40 50

x

t

SISO

MIMO

MIMO with decouplers

d

Figure E10.6

In this illustration, we do not have to detune the SISO controller settings. The interaction does notappear to be severely detrimental mainly because we have used the conservative ITAE settings. Itwould not be the case if we had tried Cohen-Coon relations. The decouplers also do not appear tobe particularly effective. They reduce the oscillation, but also slow down the system response. Themain reason is that the lead-lag compensators do not factor in the dead times in all the transferfunctions.

Page 212: Process Control

10-24

❐ Review Problems

1. Derive (10-3) and (10-3a) with measurement transfer functions Gm1 and Gm2 in the primary

and secondary loops. Confirm the footnote to (10-3a) that this equation can be reduced to thatof a single loop system.

2. Do the root locus plots in Example 10-1(d). Confirm the stability analysis in Example 10-1(e).

3. Draw the block diagram of the system in Example 10-2. Label the diagram with propervariables.

4. Attempt a numerical simulation of a feedforward-feedback system in Fig R10.4. Consider thesimplified block diagram with

Gv = 0.5s + 1 , Gp = 0.8

2s + 1 , and GL = – 0.42s + 1 .

(a) The load function has anegative gain. What does itmean?

(b) Omit for the moment thefeedback loop and controllerGc, and consider only GFF as

defined in (10-8). UseMATLAB functions (orsimulink) to simulate theresponse in C when weimpose a unit step change toL. Experiment with differentvalues of the gain and time constants in the lead-lag element.

(c) Consider a PI controller for the feedback loop with an integral time of 1.5 s, find theproportional gain such that the system has an underdamped behavior equivalent to adamping ratio of 0.7.

(d) With the feedback loop and PI controller in part (c), use MATLAB to simulate theresponse of C to a unit step change in L. Repeat the different values of the feedforwardcontroller as in part (b).

5. Consider the simplerproblem in Fig. R10.5 basedon Fig. 10.12. If we onlyimplement one feedback loopand one controller, how isthe transfer function C1/M1

affected by the interaction?

6. Derive the transfer functionsC2/R1 and C2/R2 from Eqs.

(10-20) and (10-21).

7. Fill in the details and derivethe RGA (E10-6) inExample 10.4.

8. Derive Eq. (10-37).

9. Show that we also can obtain (E10-6) by applying (10-37) to the blending problem.

(f) Repeat Section 10.7.1 by replacing the second manipulated variable in (10-39) with

+

L

CGv

GFF

Gp

G L

+R

–Gc

e M

Figure R10.4

G11

G22

G21

G12

+

+

c

c

m1

m 2

1

2

+

+G c2–

+R2

Figure R10.5

Page 213: Process Control

10-25

µ2 = m1

Find the gain matrix and show that the relative gain parameter is 1. Show how this partiallydecoupling scheme can be implemented as analogous to Fig. 10.13.

11. Derive Eqs. (10-44) and (10-45).

12. Try to do the Simulink simulations in Example 10.6. If you need help the Simulink file is onour Web Support.

Hint:

2. The MATLAB statements can be:Part (d)

Gp=tf(0.8,[2 1]);

Gv=tf(0.9,[0.1 1]); %With cascade control

taui=0.05; %Just one example

Gi=tf([taui 1],[taui 0])

rlocus(Gi*Gv*Gp)

Part (e)

Gvo=tf(0.5,[1 1]);

rlocus(Gi*Gvo*Gp)

4. (a) If L is the inlet process stream flow rate, how would it affect the furnace temperature?(b) Use (10-9), and the comments that follow, to select the parameters for the feedforwardcontroller. Compare with the case when we do not have a feedforward controller by setting KFF

= 0. You should observe that the major compensation to the load change is contributed by thesteady-state compensator.(c) The proportional gain is about 1.4. The feedforward controller does not affect the systemstability and we can design the controller Gc with only Gv, Gp, and the feedback loop. We

have to use, for example, the root locus method in Chapter 6 to do this part. Root locus canalso help us to determine if τI = 1.5 s is a good choice.

(d) You should find that the feedback loop takes over much of the burden in load changes. Thesystem response is rather robust even with relatively large errors in the steady-statecompensator.

5. C2 = G22Gc2(R2 – C2) + G21M1

C1 = G11M1 + G12Gc2(R2 – C2)

Setting R2 = 0,

C2 =G21

1 + Gc2G22

M1

Substitute C2 into the C1 equation, we can find after two algebraic steps,

C1 = G11 –

G12G21Gc2

1 + Gc2G22

M1

The second term in the bracket is due to interaction.

6. We apply Kramer’s rule to find C2 just as we had with C1. The solution has the same

characteristic polynomial in (10-22). The transfer functions:

With R1 = 0,

Page 214: Process Control

10-26

C2

R2=

G22Gc2+ Gc1

Gc2(G11G22 – G12G21)

p(s)

With R2 = 0,

C2

R1=

G21Gc1

p(s)

7. We still use (10-28) as in Example 10.4. To find λx,m2:

∂x

∂m2 m1

=– m1

(m1 + m2)2

∂x

∂m2 F

=∂

∂m2

F – m2

F= – 1

F

and

λ x, m2=

m1m1 + m2

= x

To find λF,m1:

∂F

∂m1 m2

= 1 , using Eq. (10-25) ∂F

∂m1 x

= 1x , using F = m1/x

λF,m1 = x

To find λF,m2:

∂F

∂m2 m1

= 1 ∂F

∂m2 x

= 11 – x , using xF = F – m2, F = m2/(1 – x)

λF,m2 = 1 – x

8. We may just as well use Eq. (10-32) in its time-domain form

xF =

K11 K12K21 K22

m1m2

where now x, F, m1, and m2 are deviation variables. From the first row, it is immediately

obvious that

∂x

∂m1 m2

= K11

We next substitute for m2 using the second row to get

x = K11m1 + K12(F – K21m1)

K22

Now we can find

∂x

∂m1 F

= K11 –K12 K21

K22

From here on, getting (10-37) is a simple substitution step.

9. To derive E10-6 using K. This is just a matter of substituting the values of the Kij’s from (10-

30) and (10-31) into (10-37). We should find once again λx,m1 = 1 – x as in (E10-5), and (E10-

6) follows.

10. We need to find how µ1 and µ2 affect F and x. With µ1 = F and µ2 = m1, we can rewrite the

definition of x = m1/F as x = µ1/µ2. This is the form that we use to take a first order Taylor

Page 215: Process Control

10-27

expansion as we have done with the step after Eq. (10-28). The result in matrix form of theLaplace transform of the deviation variables is

F(s)

x(s)

=1 0

–µ2

µ12

s.s.

1µ1 s.s.

µ1(s)

µ2(s)

By putting F in the first row, it is clear that we have a one-way interaction system. By (10-37), λ = 1. And with F = m1 + m2 and m1 as the output of the controllers, we can implement

this scheme as in Fig. R10.10.

11. We’ll find d11 and d21 as an illustration. The first column of the RHS of (10-43) is rewritten

as the two equations:

G11 d11 + G12 d21 = H1

G21 d11 + G22 d21 = 0

Solving them simultaneously will lead to d11 and d21 in (10-44) and (10-45). And choosing

d11 = 1, (10-44) can be rewritten as (10-46).

FT CT

FC CC

F x

m1

m2

m1+ m 2 m1+ +–

Figure R10.10

Page 216: Process Control

P.C. Chau © 2001

MATLAB is a formidable mathematics analysis package. We provide an introduction to the mostbasic commands that are needed for our use. We make no attempts to be comprehensive. We donot want a big, intimidating manual. The beauty of MATLAB is that we only need to know a tiny bit toget going and be productive. Once we get started, we can pick up new skills quickly with MATLAB'sexcellent on-line help features. We can only learn with hands-on work; these notes are written as a"walk-through" tutorial—you are expected to enter the commands into MATLAB as you read along.

MATLAB Session 1

For each session, we put the most important functions in a table for easy reference or review. Thefirst one is on the basic commands and plotting. Try the commands as you read. You do not haveto enter any text after the "%" sign. Any text behind a "%" is considered a comment and isignored. We will save some paper and omit the results generated by MATLAB. If you need to seethat for help, they are provided on our Web Support. There is also where we post any newMATLAB changes and upgrades. Features in our tutorial sessions are based on MATLAB Version6.1, and Control System Toolbox 5.1.

Important Basic FunctionsGeneral functions:cd Change subdirectorydemo (intro) Launch the demo (introduction)dir (what) List of files in current directory (or only M-files)help, helpwin Help! Help windowload Load workspacelookfor Keyword searchprint Print graph; can use pull-down menuquit Quit!save Save workspacewho, whos List of variables in workspace

Calculation functions:conv Convolution function to multiply polynomialssize, length Size of an array, length of a vector

Plotting functions:axis Override axis default of plotgrid Add grid to plothold Hold a figure to add more plots (curves)legend Add legend to plotplot Make plotstext (gtext) Add text (graphical control) to plottitle Add title to plotxlabel, ylabel Add axis labels to plot

M1.1 Some basic MATLAB commands

Features covered in this session:• Using help• Creating vectors, matrices, and polynomials• Simple matrix operations• Multiply two polynomials with conv()

To begin, we can explore MATLAB using its demonstrations. If you are new to MATLAB, it ishighly recommended that you take a look at the introduction.

intro % launch the introductiondemo % launch the demo program

Page 217: Process Control

M1 - 2

It is important to know that the MATLAB on-line help is excellent, and there are different waysto get that.

help % old-fashioned help inside the Command Windowhelpbrowser % launch the help browser window; also available

% from the Help pull-down menu and toolbar

We should make a habit of using the on-line help. The user interface of the help browser,which also works as a Web browser, is extremely intuitive, and it is highly recommended.When we mention the "help" command, that is just a general comment; it does not meanthat you have to use the old-style help. To use help in the Command Window, turn the pagedisplay mode on first. Here’s an example of seeking help on the print command with the old-style help:

more on % turn the page mode onhelp printlookfor print % general keyword searchwhich print % list the pathname of print.m

The help features and the Command Window interface tend to evolve quickly. For thatreason, we use our Web Support to provide additional hints and tidbits so we can keep youupdate of the latest MATLAB changes. For now, we will introduce a few more basiccommands:

who % list the variables that are currently definedwhos % whos is a more detailed version of whodir % list the files in the current subdirectorywhat % list only the M-filescd % change the subdirectorypwd % list the present working directory

For fun, we can try:

whyfix(clock)

MATLAB is most at home dealing with arrays, which we will refer to as matrices and vectors.They are all created by enclosing a set of numbers in brackets, [ ]. First, we define a rowvector by entering in the MATLAB Command Window:

x = [1 2 3 4 5 6 7 8 9 10]

If we add a semicolon at the end of a command, as in

x = [1 2 3 4 5 6 7 8 9 10];

we can suppress the display of the result. We can check what we have later by entering thename of the variable. To generate a column vector, we insert semicolons between numbers(more specific example below with a matrix). The easier route is to take the transpose of x:

x = x'

Keep in mind that in MATLAB, variables are case sensitive. Small letter x and capital X are twodifferent variables.

We can also generate the row vector with the colon operator:

x = 1:10 % same as 1:1:10y = 0:0.1:2 % just another example

The colon operator is very useful when we make longer vectors for plotting or calculations.With this syntax, the increment is squeezed between the beginning and ending values of

Page 218: Process Control

M1 - 3

the vector and they are separated by colons. If the increment value is missing, the defaultincrement is 1. Remember to add a semicolon at the end of each statement to suppress thedisplay of a long string of numbers. We skip that in the illustration just so you may see what isgenerated. When we do calculations based on vectors, MATLAB will vectorize thecomputation, which is much faster than if we write a loop construct as in the “for” loop in C or“do” loop in Fortran.

To create a matrix, we use a semicolon to separate the rows:

a = [1 2 3 ; 4 5 6 ; 7 8 9]

In place of the semicolons, we can also simply hit the return key as we generate the matrix.

There are circumstances that we need the size of an array or the length of a vector. Theycan be found easily:

size(y) % find the size of an arraylength(y) % find the length of a vector

In MATLAB, polynomials are stored exactly the same as vectors. Functions in MATLAB willinterpret them properly if we follow the convention that a vector stores the coefficients of apolynomial in descending order—it begins with the highest order term and always ends witha constant even if it is zero. Some examples:

p1=[1 -5 4] % defines p1(s) = s^2 - 5*s + 4p2=[1 0 4] % defines p2(s) = s^2 + 4p3=[1 -5 0] % defines p3(s) = s^2 - 5*s

We can multiply two polynomials together easily with the convolution function conv().For example, to expand (s2 – 5s + 4) (s2 + 4), we can use

conv(p1,p2) % this multiplies p1 to p2

or

conv([1 -5 4],[1 0 4])

MATLAB supports every imaginable way that one can manipulate vectors and matrices. Weonly need to know a few of them and we will pick up these necessary ones along the way.For now, we'll do a couple of simple operations. With the vector x and matrix a that we'vedefined above, we can perform simple operations such as

y1 = 2*x % multiplies x by a constanty2 = sqrt(x) % takes the square root of each element in xb = sqrt(a) % takes the square root of each element in ay3 = y1 + y2 % adds the two vectorsc = a*b % multiplies the two matrices

Note that all functions in MATLAB , such as sqrt(), are smart enough that they acceptscalars, vectors, and where appropriate, matrices.1

When we operate on an element by element basis, we need to add a period before theoperator. Examples based on the two square matrices a and b:

d = a.^3 % takes the cube of each elementa3 = a^3 % versus the cube of the matrixe = a.*b % multiplies each element a(i,j)*b(i,j)f = a*b % versus matrix multiplication a*b

1 In computer science, this is referred to as polymorphism. The fact that mathematicaloperators can work on different data types is called overloading.

Page 219: Process Control

M1 - 4

Of course, we can solve the matrix equation Ax = b easily. For example, we can try:

A = [ 4 -2 -10; 2 10 -12; -4 -6 16];b = [-10; 32; -16];x = A\b % Bingo!

Let's check the solution by inverting the matrix A:2

C = inv(A);x = C*b

We can find the eigenvalues and eigenvectors of A easily:

[X,D] = eig(A)

Finally, we do a simple polynomial fit illustration. Let’s say we have a set of (x,y) data :

x = [ 0 1 2 4 6 10];y = [ 1 7 23 109 307 1231];

To make a third-order polynomial fit of y = y(x), all we need is to enter

c = polyfit(x,y,3) % should obtain c = [1 2 3 1]

The returned vector c contains the coefficients of the polynomial. In this example, the resultshould be y = x3 + 2x2 + 3x + 1. We can check and see how good the fit is. In the followingstatements, we generate a vector xfit so that we can draw a curve. Then, we calculate thecorresponding yfit values, plot the data with a symbol and the fit as a line.

xfit=1:0.5:10;yfit=xfit.^3 + 2*xfit.^2 + 3*xfit +1;plot(x,y,'o', xfit,yfit) % explanation on plottingtitle('3rd order polynomial fit') % is in the next sectionlegend('data','3rd order fit')

Speaking of plotting, this is what we'll get into next.

M1.2 Some simple plotting

Features covered in this session:• Using the plot() function• Adding titles, labels, and legends

Let's create a few vectors first

x = 0:0.5:10;y1= 2*x;y2= sqrt(x);

Now we plot y1 versus x, and y2 versus x together:

plot(x,y1, x,y2)

We have a limited selection of line patterns or symbols. For example, we can try 3

2 If you have taken a course on numerical methods, you would be pleased to know thatMATLAB can do LU decomposition:[L,U] = lu(A);

3 To do multiple plots, we can also use:plot(x,y1,'-.', x,y2,'--')

Page 220: Process Control

M1 - 5

plot(x,y1,'-.')hold % or use "hold on"plot(x,y2,'--')hold % or use "hold off"

We can find the list of pattern selections with on-line help. The command hold allows us toadd more plots to the same figure, and hold works as a toggle. That is why we do not haveto state "on" and "off" explicitly.

We can add a title and axis labels too:

title('A boring plot')xlabel('The x-axis label'), ylabel('The y-axis label')

We can issue multiple commands on the same line separated by commas. What makesMATLAB easy to learn is that we can add goodies one after another. We do not have to worryabout complex command syntax. We can also do logarithmic plots. Try enter "helpsemilogx, semilogy, or loglog." We'll skip them because they are not crucial for ourimmediate needs.

We can add a grid and a legend with

gridlegend('y1','y2')

A box with the figure legend will appear in the Graph Window. Use the mouse to drag thebox to where you want it to be. We can also add text to annotate the plot with:

text(1,9,'My two curves') % starting at the point (1,9)

The text entry can be interactive with the use of

gtext('My two curves')

Now click on the graph window, and a cross-hair will appear. Move it to where you want thelegend to begin and click. Presto! Repeat for additional annotations.

In rare cases, we may not like the default axis scaling. To override what MATLAB does, wecan define our own minimum and maximum of each axis with

axis([0 15 0 30]) % the syntax is [xmin xmax ymin ymax]

We need the brackets inside because the argument to the axis function is an array.

Plotting for funWe do not need to do 3-D plots, but then it’s too much fun not to do at least a couple ofexamples. However, we'll need to use a few functions that we do not need otherwise, sodo not worry about the details of these functions that we will not use again. We'll get a prettylooking 3-D picture:

[x,y]=meshgrid(-10:0.5:10, -10:0.5:10);% meshgrid transforms the specified domain$ where -10 < x < 10, and -10 < y < 10% into a grid of (x,y) values for evaluating z

r=sqrt(x.^2 + y.^2) + eps; % We add the machine epsilon epsz=sin(r)./r; % so 1/r won’t blow upmesh(z)title('The Sinc Sombrero')

Page 221: Process Control

M1 - 6

So you say wow! But MATLAB can do much more and fancier than that. We try one moreexample with Bessel functions, which you can come across in heat and mass transferproblems with cylindrical geometry.

% Here we do a 3-D mesh plot of Jo(sqrt(x^2+y^2))% The x and y grids remain the same as in the previous plot

r=sqrt(x.^2+y.^2);z=bessel(0,r);mesh(z)

M1.3 Making M-files and saving the workspace

Features covered in this session:• Execute repeated commands in a script, the so-called M-file• Save a session

For tasks that we have to repeat again and again, it makes sense to save them in some kindof a script and execute them. In MATLAB, these scripts are called M-files. The name camefrom the use of macros in the old days of computing. We can use M-files to writeunstructured scripts or user-defined functions. MATLAB now refers to both as programs.You may want to keep in mind that a script using a scripting interpretive language is not thesame as a program written in, say, C.

For our needs, a simple script suffices in most circumstances. To use an M-file: 41. Save all the repetitious MATLAB statements in a text file with the ".m" extension.2. Execute the statements in that file by entering the file name without the ".m" extension.

Here is one simple example. We need to plot x versus y repeatedly and want to automatethe task of generating the plots with an M-file. The necessary statements with commentsare:

% ______________ M-file script: plotxy.m ________________% A very simple script to plot x vs y and add the labels% ...the kind of things we don't want to repeat typing% again and again...

plot(x,y)gridxlabel('Time [min]')ylabel('Step Response')title('PID Controller Simulation')

% End of plotxy.m. An “end” statement is not needed.

Save these statements in a file named, say, plotxy.m. Anything after the "%" sign isregarded as a comment, which you do not have to enter if you just want to repeat thisexercise. After we have defined or updated the values of x and y in the Command Window,all we need is to enter "plotxy" at the prompt and MATLAB will do the rest. The key is tonote that the M-file has no "read" or "input" for x and y. All statements in an M-file are simplyexecuted in the Command Window.

4 There is another easy way to "cheat." On UNIX/Linux workstations, open up a new texteditor and enter your frequently used statements there. On Windows, you can use thereally nice MATLAB Editor. You can copy-and-paste multiple commands back and forthbetween the text editor window and the MATLAB window easily. If you want to save thecommands, you certainly can add comments and annotations. You can consider this text fileas a "free-format notebook" without having to launch the Microsoft Word Notebook forMATLAB.

Page 222: Process Control

M1 - 7

If you have an M-file, MATLAB may not find it unless it is located within its search path. Let’ssee where MATLAB looks first. On UNIX/Linux machines, MATLAB by default looks in thesubdirectory from which it is launched. A good habit is to keep all our work in onesubdirectory, and change to that specific subdirectory before we launch MATLAB. OnWindows machines, MATLAB looks for your files in the WORK folder buried deep inside theProgram Files folder. A good chance is that you want to put your files in more convenientlocations. To coax MATLAB to find them, we need to change the directory or the searchpath. So the next question is how to do that and the answer applies to both UNIX/Linux andWindows machines. The formal way is to learn to use the "cd" and "path" commands. Theeasy way is to use point-and-click features that can be found under pull-down menus, ontool bars, or in sub-windows. Because these graphical interface features tend to changewith each MATLAB upgrade, please refer to our Web Support, where we can update quicklyto match new changes, for additional help.

If we want to take a coffee break and save all the current variables that we are working with,enter

save

before we quit MATLAB. When we launch MATLAB again, type

load

and everything will be restored. Do not save the workspace if you are going to be away anylonger because the old workspace is not very useful if you have all these variables floatingaround and you forget what they mean.

As a final comment, we can use load and save to import and export arrays of data. Sincewe do not really need this feature in what we do here, we defer this explanation to our WebSupport.

Page 223: Process Control

P.C. Chau © 2000

MATLAB Session 2This tutorial is to complement our development in Chapter 2. You may want to go over the tutorialquickly before you read the text and come back later a second time for the details.

Partial Fraction and Transfer Functionspoly Construct a polynomial from its rootsresidue Partial fraction expansionroots Find the roots to a polynomialtf2zp Transfer function to zero-pole form conversionzp2tf Zero-pole form to transfer function conversion

Object-oriented functions:tf Create a transfer function objectget List the object propertiespole Find the poles of a transfer functionzpk Create a transfer function in pole-zero-gain form

M2.1 Partial fractions

Features covered in this session:• Find the roots of a polynomial with roots()• Generate a polynomial from its roots with poly()• Do partial fractions with residue()

Of secondary importance:• Transfer function to zero-pole form, tf2zp()• Zero-pole form to transfer function, zp2tf()

Let's first define a polynomial

p = [1 5 4] % makes p(s) = s^2 + 5*s + 4

We can find the roots of p(s) = 0 with the function roots()

poles = roots(p)

MATLAB should return –4 and –1. That means the polynomial can be factored asp(s) = (s + 4)(s + 1). 1

We can go backwards. Given the roots (or pole positions), we can get the polynomial with:

p2 = poly(poles)

MATLAB returns the results in a column vector. Most functions in MATLAB take either row orcolumn vectors and we usually do not have to worry about transposing them.

We can do partial fractions with the residue() function. Say we have a transfer function

G(s) = q(s)p(s) = 1

s2 + 5s + 4

where q(s)=1 and p(s) remains [1 5 4] as defined earlier. We can enter

1 MATLAB has the function fzero() to find a root of a given function.

Page 224: Process Control

M2 - 2

q = 1;

residue(q,p)

MATLAB returns the numbers –0.3333 and 0.3333. That is because the function can befactored as

1s2 + 5s + 4

= – 1 / 3s + 4 + 1 / 3

s + 1

How can we be sure that it is the –0.3333 coefficient that goes with the root at –4? We canuse the syntax

[a,b,k]=residue(q,p)

MATLAB will return the coefficients in a, the corresponding poles in b and whatever isleftover in k, which should be nothing in this case. Note that [] denotes an empty matrix orvector.

Let's try another transfer function with poles at 0, –1, –2, and –3:

G(s) = 1s (s + 1) (s + 2) (s + 3)

To find the partial fractions, this is what we can do:2

poles=[0 -1 -2 -3];

p=poly(poles);

q=1;

[a,b,k]=residue(q,p)

One more example. Find the partial fractions of the nasty looking function:

G(s) = s2 + 4s + 3s4 – 7s3 + 11s2 + 7s – 12

q=[1 4 3];

zeros=roots(q) % should return -3, -1

p=[1 -7 11 7 -12];

poles=roots(p) % should return 4, 3, 1, -1

[a,b,k]=residue(q,p)

See that MATLAB returns the expansion:

s2 + 4s + 3s4 – 7s3 + 11s2 + 7s – 12

= 2.33s – 4 – 3

s – 3 + 0.67s – 1

Note that the coefficient associated with the pole at –1 is zero. That is because it iscanceled by the zero at –1. In other words, the (s+1) terms cancel out. It is nice to know thatthe program can do this all by itself. We do not need to know the roots to use residue(),but it is a good habit to get a better idea what we are working with.

A transfer function can be written in terms of its poles and zeros. For example,

2 If we need to write conjugate complex roots, make sure there are no spaces within acomplex number. For example, enter: [-3+4*j -3-4*j]. Either i or j can be used todenote √-1.

Page 225: Process Control

M2 - 3

F(s) = 6s2 – 12(s3 + s2 – 4s – 4)

= 6 (s – 2) (s + 2)(s + 1) (s + 2) (s – 2)

The RHS is called the pole-zero form (or zero-pole form). MATLAB provides two functionstf2zp() and zp2tf() to do the conversion. For instance,

q=[6 0 -12];

p=[1 1 -4 -4];

[zeros,poles,k]=tf2zp(q,p)

Of course we can go backward with

[q,p]=zp2tf(zeros,poles,k)

Note: The factor k is 6 here, and in the MATLAB manual, it is referred to as the "gain." Thisfactor is really the ratio of the leading coefficients of the two polynomials q(s) and p(s). Makesure you understand that the "k" here is not the steady state gain—which is the ratio of thelast constant coefficients. (In this example, the steady state gain is –12/–4 = 3.) MATLABactually has a function named dcgain to do this.

One more simple example:

zero= -2; % generate a transfer function

poles=[-4 -3 -1]; % with given poles and zeros

k=1;

[q,p]=zp2tf(zero,poles,k)

Double check that we can recover the poles and zeros with

[zero,poles,k]=tf2zp(q,p)

We can also check withroots(q)

roots(p)

Try zp2tf or tf2zp on your car’s license plate!

M2.2 Object-oriented transfer functions

Features covered in this session:• Define a transfer function object with tf() or zpk()• Determine the poles with pole()• Use of overloaded operators

MATLAB is object-oriented. Linear time-invariant (LTI) models are handled as objects.Functions use these objects as arguments. In classical control, LTI objects include transferfunctions in polynomial form or in pole-zero form. The LTI-oriented syntax allows us tobetter organize our problem solving; we no longer have to work with individual polynomialsthat we can only identify as numerators and denominators.

We will use this syntax extensively starting in Session 3. Here, we see how the object-oriented syntax can make the functions tf2zp() and zp2tf() redundant and obsolete.

Page 226: Process Control

M2 - 4

❏ To define a transfer function object, we use tf(), which takes the numerator anddenominator polynomials as arguments. For example, we define G(s) = s

s2 – 5s + 4 with

G1 = tf([1 0], [1 -5 4])

We define G(s) = 6s2 – 12(s3 + s2 – 4s – 4)

with

G2 = tf([6 0 -12], [1 1 -4 -4])

We can also use the zero-pole-gain function zpk() which takes as arguments the zeros,poles and gain factor of a transfer function. Recall our comments after zp2tf(). This gainfactor is not the steady state (or dc) gain.

For example, we define G(s) = 4s (s + 1) (s + 2) (s + 3) with

G3 = zpk([],[0 -1 -2 -3], 4) % the [] means there is no zero

❏ The tf() and zpk() functions also serve to perform model conversion from one form toanother. We can find the polynomial form of G3 with

tf(G3)

and the pole-zero form of G2 with

zpk(G2)

❏ The function pole() finds the poles of a transfer function. For example, try:

pole(G1)

pole(G2)

You can check that the results are identical to the use of roots() on the denominator of atransfer function.

❏ We may not need to use them, but it is good to know that there are functions that help usextract the polynomials, or poles and zeros back from an object. For example:

[q,p]=tfdata(G1,'v') % option 'v' for row vectors

[z,p,k]=zpkdata(G3,'v')

❏ The addition and multiplication operators are overloaded and we can use them tomanipulate or synthesize transfer functions. This capability will come in handy when weanalyze control systems. For now, let's consider one simple example. Say we are given

G1 = 1

s + 1 , and G2 =

2s + 2

We can find G1 + G2 and G1G2 easily with

G1=tf(1,[1 1]);

G2=tf(2,[1 2]);

G1+G2 % or we can use zpk(G1+G2)

G1*G2 % or we can use zpk(G1*G2)

Page 227: Process Control

M2 - 5

This example is simple enough to see that the answers returned by MATLAB are correct.

❏ With object-oriented programming, an object can hold many properties. We find theassociated properties with

get(G1)

Among the MATLAB result entries, we may find the properties InputName, OutputName,and Notes. We can set them with 3

G1.InputName = 'Flow Rate';

G1.OutputName = 'Level';

G1.Notes = 'My first MATLAB function';

You'll see the difference if you enter from now on:

G1

get(G1)

MATLAB can use symbolic algebra to do Laplace transform. Since this skill is not crucial tosolve control problems, we skip it here. You can find a brief tutorial on our Web Support,and you are encouraged to work through it if you want to know what symbolic algebrameans.

3 We are using the typical structure syntax, but MATLAB also supports the set() functionto perform the same task.

Page 228: Process Control

P.C. Chau © 2001

MATLAB Session 3This tutorial is to complement our development in Chapter 3. You may want to go over the tutorialquickly before you read the text and come back later a second time for the details.

Time Response Simulation Functionsdamp Find damping factor and natural frequencyimpulse Impulse responselsim Response to arbitrary inputsstep Unit step responsepade Time delay Padé approximation

ltiview Launch the graphics viewer for LTI objects

M3.1 Step and impulse response simulations

Features covered in this session:• Use of step() and impulse()• Time response to any given input, lsim()• Dead time approximation, pade()

Instead of spacing out in the Laplace-domain, we can (as we are taught) guess how theprocess behaves from the pole positions of the transfer function. But wouldn't it be nice ifwe could actually trace the time profile without having to do the reverse Laplace transformourselves? Especially the response with respect to step and impulse inputs? Plots of timedomain dynamic calculations are extremely instructive and a useful learning tool.1

The task of time-domain calculation is easy with MATLAB. Let's say we have

Y(s)X(s) = 1

s2 + 0.4 s + 1,

and we want to plot y(t) for a given input x(t). We can easily do

q=1;

p=[1 0.4 1]; % poles at -0.2±0.98j

G=tf(q,p)

step(G) % plots y(t) for unit step input, X(s)=1/s

impulse(G) % plots y(t) for impulse input, X(s)=1

What a piece of cake! Not only does MATLAB perform the calculation, it automatically makesthe plot with a properly chosen time axis. Nice! 2 As a habit, find out more about a functionwith help as in

help step % better yet, use helpwin or Help Desk

1 If you are interested, see our Web Support for using Runge-Kutta integration ofdifferential equations.2 How could we guess what the time axis should be? It is not that difficult if we understandhow to identify the dominant pole, the significance behind doing partial fractions, and thatthe time to reach 99% of the final time response is about five time constants.

Page 229: Process Control

M3 - 2

The functions also handle multiple transfer functions. Let's make a second transfer functionin pole-zero form,

H(s) = 2(s + 2) (s2 + 2 s + 2)

,

H=zpk([], [-2 -1+j -1-j], 2)

We can compare the unit step responses of the two transfer functions with

step(G,H)

We can, of course, choose our own axis, or rather, time vector. Putting both the unit stepand impulse response plots together may also help us understand their differences.

t=0:0.5:40; % don’t forget the semicolon!

ys=step(G,t);

yi=impulse(G,t);

plot(t,ys,t,yi)

Note: In the text, we emphasize the importance of relating pole positions of a transferfunction to the actual time-domain response. We should get into the habit of finding whatthe poles are. The time response plots are teaching tools that reaffirm our confidence indoing analysis in the Laplace-domain. So, we should find the roots of the denominator. Wecan also use the damp() function to find the damping ratio and natural frequency.

pole(G) % same result with roots(p)

damp(G) % same result with damp(p)

One more example. Consider the transfer function

Y(s)X(s) = G(s) = 2s + 1

(4s + 1) (s + 1)

We want to plot y(t) if we have a sinusoidal input, x(t) = sin(t). Here we need the functionlsim(), a general simulation function which takes any given input vector.

q=[2 1]; % a zero at -1/2

p=conv([4 1],[1 1]); % poles at -1/4 and -1

G=tf(q,p) % (can use zpk instead)

t=0:0.5:30;

u=sin(t);

y=lsim(G,u,t); % response to a sine function input

plot(t,y,t,u,'-.'), grid

Keep this exercise in mind. This result is very useful in understanding what is calledfrequency response in Chapter 8. You can repeat the simulation with higher frequencies.We can also add what we are familiar with:

hold

ys=step(G,t);

yi=impulse(G,t);

plot(t,ys,t,yi)

hold off

For fun, try one more calculation with the addition of random noise:

Page 230: Process Control

M3 - 3

u=sin(t)+rand(size(t));

y=lsim(G,u,t);

plot(t,y,'r',t,u,'b'), grid % Color lines red and blue

For useful applications, lsim() is what we need to simulate response to, say, arectangular pulse. This is one simple example using the same transfer function and timevector that we have just defined:

t=0:0.5:30; % t = [0 .5 1 1.5 2 2.5 3 … ]

u=zeros(size(t)); % make a vector with zeros

u(3:7)=1; % make a rectangular pulse from t=1 to t=3

y=lsim(G,u,t);

yi=impulse(G,t); % compare the result with impulse response

plot(t,u, t,y, t,yi,'-.');

Now, we switch gears and look into the dead time transfer function approximation. To do aPadé approximation, we can use the MATLAB function 3

[q,p]=pade(Td,n)

where Td is the dead time, n is the order of the approximation, and the results are returnedin q(s)/p(s). For example, with Td=0.2 and n=1, entering

[q,p]=pade(0.2,1) % first order approximation

will return

q = -1 s + 10

p = 1 s + 10

We have expected q(s) = –0.1s + 1, and p(s) = 0.1s + 1. Obviously, MATLAB normalizes thepolynomials with the leading coefficients. On second thought, the Padé approximation isso simple that there is no reason why we cannot do it ourselves as in a textbook. For the firstorder approximation, we have

Td=0.2;

q = [-Td/2 1];

p = [ Td/2 1];

We can write our own simple-minded M-file to do the approximation. You may now try

[q,p]=pade(0.2,2) % second order approximation

and compare the results of this second order approximation with the textbook formula.

3 When we use pade() without the left-hand argument [q,p], the function automaticallyplots the step and phase responses and compares them with the exact responses of thetime delay. Padé approximation has unit gain at all frequencies. These points will not makesense until we get to frequency response analysis in Chapter 8. So for now, keep the[q,p] on the left hand side of the command.

Page 231: Process Control

M3 - 4

M3.2 LTI Viewer

Features covered in this session:• Graphics viewer for LTI objects, ltiview 4

We can use the LTI Viewer to do all the plots, not only step and impulse responses, but alsomore general time response and frequency response plots in later chapters. If we knowhow to execute individual plot statements, it is arguable whether we really need the LTIViewer. Nonetheless, that would be your personal choice. We will provide here the basicidea and some simple instructions.

To launch the LTI Viewer, enter in the MATLAB command window:

ltiview

A blank LTI window will pop up. The first task would be to poke into features supportedunder the File and Tools pull-down menus and see what we can achieve via point-and-click.There is also a Help pull-down menu, which activates the Help Window.

The LTI Viewer runs in its own workspace, which is separate from the MATLAB workspace.The Viewer also works with only LTI objects generated by functions such as tf() andzpk(), and after Chapter 4, state space objects, ss(). So let’s generate a couple ofobjects in the MATLAB command window first:

G=tf(1,[1 0.4 1])

H=zpk([], [-2 -1+j -1-j], 2)

Now, go to the LTI Viewer window and select Import under the File pull-down menu. Adialog box will pop out to help import the transfer function objects. By default, a unit stepresponse will be generated. Click on the axis with the right mouse button to retrieve a pop-up menu that will provide options for other plot types, for toggling the object to be plotted,and other features. With a step response plot, the Characteristics feature of the pop-upmenu can identify the peak time, rise time, and settling time of an underdamped response.

The LTI Viewer was designed to do comparative plots, either comparing different transferfunctions, or comparing the time domain and (later in Chapter 8) frequency responseproperties of a transfer function. So a more likely (and quicker) scenario is to enter, forexample,

ltiview('step',G,H)

The transfer functions G and H will be imported automatically when the LTI Viewer islaunched, and the unit step response plots of the two functions will be generated.

Another useful scenario is, for example,

ltiview({'step';'bode'},G)

In this case, the LTI Viewer will display both the unit step response plot and the Bode plotfor the transfer function G. We will learn Bode plot in Chapter 8, so don't panic yet. Justkeep this possibility in mind until we get there.

4 The description is based on Version 4.0 of the MATLAB control toolbox. If changes areintroduced in newer versions, they will be presented on our Web Support.

Page 232: Process Control

P.C. Chau © 2001

MATLAB Session 4This tutorial is to complement our development in Chapter 4. You may want to go over the tutorialquickly before you read the text and come back later a second time for the details.

State Space Functionscanon Canonical state space realizationeig Eigenvalues and eigenvectorsss2ss Transformation of state space systemsss2tf Conversion from state space to transfer functiontf2ss Conversion from transfer function to state spaceprintsys Slightly prettier looking display of model equations

ltiview Launch the graphics viewer for LTI objectsss Create state space object

M4.1 Conversion between transfer function and state space

Features covered in this session:• The use of ss2tf() and tf2ss()• Generate object-oriented models with ss()

We need to revisit Example 4.1 with a numerical calculation. Let's use the values ζ = 0.5and ωn = 1.5 Hz to establish the transfer function and find the poles.

z=0.5;

wn=1.5; % Should find

q=wn*wn; % q=2.25

p=[1 2*z*wn wn*wn] % p=[1 1.5 2.25]

roots(p) % -0.75±1.3j

Based on the results in Example 4.1, we expect to find

A =

0 1– 2.25 – 1.5

; B =0

2.25; C = 1 0 ; D = 0

Now, let's try our hands with MATLAB using its transfer function to state space conversionfunction:

[a,b,c,d]=tf2ss(q,p)

and MATLAB returns with

a =

– 1.5 – 2.251 0

; b =10

; c = 0 2.25 ; d = 0

which are not the same as Example 4.1 in text. You wonder what's going on? Before youkick the computer, a closer look should reveal that MATLAB probably uses a slightly differentconvention. Indeed, MATLAB first "split" the transfer function into product form:

YU

=X2

UYX2

=1

s2 + 2ζωn s + ωn2

ωn2 =

1

s2 + 1.5 s + 2.252.25

Page 233: Process Control

M4 - 2

From X2 UX2 U = 1 (s2 + 2ζωn

s + ωn

2)1 (s2 + 2ζωn

s + ωn

2) and with the state variables defined as

x1 =d x2

d t, and x2 = x2 (i.e., same),

we should obtain the matrices a and b that MATLAB returns. From Y X2Y X2 = ωn2 , it should be

immediately obvious how MATLAB obtains the array c.

In addition, we should beware that the indexing of state variables in MATLAB is in reverseorder of textbook examples. Despite these differences, the inherent properties of themodel remain identical. The most important of all is to check the eigenvalues:

eig(a) % should be identical to the poles

A conversion from state space back to transfer function should recover the transferfunction:

[q2,p2]=ss2tf(a,b,c,d,1) % same as q/p as defined earlier

The last argument in ss2tf() denotes the i-th input, which must be 1 for our single-inputsingle-out model. To make sure we cover all bases, we can set up our own state spacemodel as in Example 4.1:

a=[0 1; -2.25 -1.5]; b=[0; 2.25]; c=[1 0]; d=0;

and check the results with

eig(a) % still the same!

[qs,ps]=ss2tf(a,b,c,d,1)

The important message is that there is no unique state space representation, but all modelmatrixes should have the same eigenvalues. In addition, the number of state variables is thesame as the order of the process or system.

The fact that the algorithm used by MATLAB does not return a normalized output matrix Ccan create problems when we do feedback calculations in Chapter 9. The easy solution is torescale the model equations. The output equation can be written as

y = [α 0] x = [1 0] x where x = αx

Substitution for x by x in dx/dt = Ax +Bu will lead to

d xd t

= Ax + αBu = Ax + Bu , where B = αB

In other words, we just need to change C to the normalized vector and multiply B with thescaling factor. We can see that this is correct from the numerical results of Example 4.1.(Again, keep in mind that the MATLAB indexing is in reverse order of textbook examples.)We will use this idea in Chapter 9.

We now repeat the same exercise to show how we can create object-oriented state-spaceLTI models. In later chapters, all control toolbox functions take these objects as arguments.We first repeat the statements above to regenerate the state matrices a, b, c, and d. Thenwe use ss() to generate the equivalent LTI object.

q=2.25;

Page 234: Process Control

M4 - 3

p=[1 1.5 2.25];

[a,b,c,d]=tf2ss(q,p);

sys_obj=ss(a,b,c,d)

We should see that the LTI object is identical to the state space model. We can retrieve andoperate on individual properties of an object. For example, to find the eigenvalues of thematrix a inside sys_obj:

eig(sys_obj.a) % find eigenvalue of state matrix a

We can get the transfer function, as analogous to using ss2tf(), with

tf(sys_obj)

Now, you may wonder if we can generate the state space model directly from a transferfunction. The answer is, of course, yes. We can use

sys2=ss(tf(q,p))

eig(sys2.a) % should be identical to the poles

MATLAB will return with matrices that look different from before:

a =

– 1.5 – 1.1252 0

; b =10

; c = 0 1.125 ; d = 0

With what we know now, we bet ss()uses a different scaling in its algorithm. This time,MATLAB factors the transfer function into this product form:

YU

=X2

UYX2

=2

s2 + 1.5 s + 2.251.125

From X2 UX2 U = 2 s2 + 1.5 s + 2.252 s2 + 1.5 s + 2.25 and with the state variables defined as

x1 =12

d x2

d t (i.e., d x2

d t= 2 x1), and x2 = x2,

we should obtain the new state matrices. Again, the key result is that the state matrix a hasthe same eigenvalue.

This exercise underscores one more time that there is no unique way to define statevariables. Since our objective here is to understand the association between transferfunction and state space models, we will continue our introduction with the ss2tf() andtf2ss() functions.

Two minor tidbits before we move on. First, the printsys() function displays the modelmatrices or polynomials in a slightly more readable format. Sample usage:

printsys(a,b,c,d)

printsys(q,p,'s')

Second, with a second order transfer function, we can generate the textbook state spacematrices given a natural frequency wn and damping ratio z:

[a,b,c,d]=ord2(wn,z) % good for only q=1

Page 235: Process Control

M4 - 4

If we examine the values of b and c, the result is restricted to a unity numerator in thetransfer function.

M4.2 Time response simulation

To begin with, we can launch the LTI Viewer with

ltiview

as we have explained in MATLAB Session 3. The graphics interface is well designed enoughthat we need no further explanation.

The use of step() and impulse() on state space models is straightforward as well. Weprovide here just a simple example. Let’s go back to the numbers that we have chosen forExample 4.1, and define

a=[0 1; -2.25 -1.5]; b=[0; 2.25]; c=[1 0]; d=0;

sys=ss(a,b,c,d);

The step() function also accepts state space representation, and to generate the unitstep response is no more difficult than using a transfer function:

step(sys)

Now we repeat the calculation in the transfer function form, and overlay the plot on top ofthe last one:

G=tf(2.25,[1 1.5 2.25]);

hold

step(G,'x')

hold off

Sure enough, the results are identical. We’d be in big trouble if it were not! In fact, weshould get the identical result with other state space representations of the model. (Youmay try this yourself with the other set of a,b,c,d returned by tf2ss() when we first wentthrough Example 4.1.)

Many other MATLAB functions, for example, impulse(), lsim(), etc., take both transferfunction and state space arguments (what you can call polymorphic). There is very littlereason to do the conversion back to transfer function once you can live in state space withpeace.

M4.3 Transformations

Features covered in this session:• Similarity and canonical transforms• Use of functions canon() and ss2ss()

We first do a demonstration of similarity transform. For a nonsingular matrix A with distincteigenvalues, we can find a nonsingular (modal) matrix P such that the matrix A can betransformed into a diagonal made up of its eigenvalues. This is one useful technique indecoupling a set of differential equations.

Page 236: Process Control

M4 - 5

Consider the matrix A from Example 4.6. We check to see if the rank is indeed 3, andcompute the eigenvalues for reference later.

A=[0 1 0; 0 -1 -2; 1 0 -10];

rank(A)

eig(A) % -0.29, -0.69, -10.02

We now enter

[P,L] = eig(A) % L is a diagonal matrix of eigenvalues

% P is the modal matrix whose columns are the

% corresponding eigenvectors

a = inv(P)*A*P % Check that the results are correct

Indeed, we should find a to be the diagonal matrix with the eigenvalues.

The second route is to diagonalize the entire system. With Example 4.6, we further define:

B=[0; 2; 0];

C=[1 0 0];

D=[0];

S=ss(A,B,C,D); % Generates the system object

SD=canon(S)

The canon() function by default will return the diagonalized system, and in thise case, inthe system object SD. For example, we should find SD.a to be identical to the matrix L thatwe obtained a few steps back.

The third alternative to generate the diagonalized form is to use the state space to statespace transformation function. The transformation is based on the modal matrix that weobtained earlier.

SD=ss2ss(S,inv(P))

To find the observable canonical form of Example 4.6, we use

SO=canon(S,'companion')

In the returned system SO, we should find SO.a and SO.b to be

A ob =

0 0 – 21 0 – 100 1 – 11

and Bob =100

Optional reading:The rest of this section requires material on our Web Support and is better read togetherwith Chapter 9. Using the supplementary notes on canonical transformation, we find thatthe observable canonical form is the transpose of the controllable canonical form. In theobservable canonical form, the coefficients of the characteristic polynomial (in reverse sign)are in the last column. The characteristic polynomial is, in this case,

P(s) = s3 + 11s2 + 10s +2

We can check that with

roots([1 11 10 2]) % Check the roots

Page 237: Process Control

M4 - 6

poly(A) % Check the characteristic polynomial of A

We can find the canonical forms ourselves. To evaluate the observable canonical form Aob,

we define a new transformation matrix based on the controllability matrix:

P=[B A*B A^2*B];inv(P)*A*P % Should be Aob as found by canon()

inv(P)*B % Shoud be Bob (Bob!)

To find the controllable canonical form:

A ctr =

0 1 00 0 1

– 2 – 10 – 11and Bctr =

001

we use the following statements based on the Web Support supplementary notes. Be verycareful when we construct the matrix M.

poly(A); %To confirm that it is [1 11 10 2]

M=[10 11 1; 11 1 0; 1 0 0];

T=P*M;

inv(T)*A*T

inv(T)*B

We now repeat the same ideas one more time with Example 4.9. We first make thetransfer function and the state space objects:

G=zpk([],[-1 -2 -3],1);

S=ss(G);

As a habit, we check the eigenvalues:

eig(S) % Should be identical to eig(G)

To find the modal matrix, we use

[P,L]=eig(S.a)

inv(P)*S.a*P % Just a check of L

The observable canonical form is

SD=canon(S)

The component SD.a is, of course, the diagonalized matrix L with eigenvalues. We cancheck that SD.b and SD.c are, respectively, computed from

inv(P)*S.b % Identical to SD.b

S.c*P % Identical to SD.c

Finally, the observable canonical form is

SO=canon(S,'companion')

The matrix SO.a is

Page 238: Process Control

M4 - 7

A ob =

0 0 – 61 0 – 110 1 – 6

meaning,P(s) = s3 + 6s2 + 11s +6

which is the characteristic polynomial

poly([-1 -2 -3])

as expected from the original transfer function.

Page 239: Process Control

P.C. Chau © 2001

MATLAB Session 5This tutorial is to complement our development in Chapters 5 and 6. You may want to go over thetutorial quickly before you read the text and come back later a second time for the details.

Feedback Simulation Functionsfeedback Generate feedback system transfer function objectsimulink Launch Simulink

M5.1 Simulink

Comments with respect to• Launching Simulink

Simulink is a user-friendly simulation tool with an icon-driven graphics interface that runswithin MATLAB. The introduction here is more conceptual than functional for two reasons.One, the Simulink interface design is very intuitive and you may not need help at all!Second, to provide a thorough introduction, we need to reproduce many of the graphicswindows. To conserve paper (and trees), we have moved these print-intensive and detailedexplanations to our Web Support. Furthermore, the HTML-based Help Desk of MATLAB isextremely thorough and should serve as our main guide for further applications.

To launch Simulink, enter in thecommand window:

simulink

and MATLAB will launch theSimulink Block Library windowwith pull-down menus. A fewsample block library icons areshown in Fig. M5.1. Each iconrepresents a toolbox andcontains within it a set of models,which will make themselvesavailable if we double-click on thetoolbox icons. For example, wecan find within the Sourcestoolbox (Fig. M5.1) a model for generating a step input function, and within the Sinkstoolbox a model for graphing results. Within the Continuous toolbox are the importantmodels for generating transfer functions and state space models (Fig. M5.2).

All we need is to drag-and-drop the icons that we need from the toolboxes into a blankmodel window. If this window is not there, open a new one with the File pull-down menu.From here on, putting afeedback loop togetherto do a simulation islargely a point-and-clickactivity. An example ofwhat Simulink cangenerate is shown inFig. M5.3.

Simulink is easy tolearn, fun, andinstructive, especially

Figure M5.1. Sample icons from the Simulink BlockLibrary Window.

Figure M5.3. A sample negative feedback closed-loop generatedwithin Simulink. This servo system has a first order process functionand uses a PID controller. The output is sent to a graphing tool forplotting.

Figure M5.2. Sample icons for model building from theSimulink Continuous Library Window.

Page 240: Process Control

M5 - 2

with more complex MIMO systems. For systems with time delays, Simulink can handle theproblem much better than the classical control toolbox. Simulink also has ready-madeobjects to simulate a PID controller.

A few quick pointers:

• Some of the features that we use most often within the Simulink Block Library:Sources: Step input; clock for simulation timeSinks : Plotting tools; output to MATLAB workspace or a fileContinuous : Transfer functions in polynomial or pole-zero form; state-space models;

transport delayMath : Sum; gain or a gain sliderNon-linear : Saturation; deadzoneBlocksets : From the Blocksets & Toolboxes, choose "Simulink Extras," and then

"Additional Linear." In there are the PID and PID with approximate derivativecontrollers.

• All Simulink simulation block diagrams are saved as ascii files with the “mdl” extension.

• Before we start a simulation, choose Parameters under the Simulation pull-down menu toselect the time of simulation. If we are using the XY Graph, we need to double-click its iconand edit its parameters to make the time information consistent.

• Simulink shares the main MATLAB workspace. When we enter information into, say, thetransfer function block, we can use a variable symbol instead of a number. We then definethe variable and assign values to it in the MATLAB command window. This allows for amuch quicker route to do parametric studies than changing the numbers within theSimulink icons and dialog boxes.

• We can build our own controllers, but two simple ones are available: an ideal PID and aPID with approximate derivative action.

For curious minds: The first time you use the PID controllers, drag the icon onto a newsimulation window, select the icon and then Look under mask under the Edit pull-downmenu. You will see how the controllers are put together. The simple PID controller is

Gc(s) = Kc +KIs + KDs

and the PID with approximate derivative controller is

Gc(s) = Kc +KIs +

KDs + 1s/N + 1

We also see the transfer functions used by each icon when we double click on it andopen up the parameter entry dialog window. So in terms of notation, we haveKI = Kc/τI, KD = KcτD, and N = 1/ατD.

Page 241: Process Control

M5 - 3

M5.2 Control toolbox functions

Features covered in this session:• Synthesize a closed-loop transfer function with feedback()

The closed-loop transfer function of a servo problem with proper handling of units is Eq. (5-11) in text:

CR

=Km GcGp

1 + GmGcGp

It can be synthesized with the MATLAB function feedback(). As an illustration, we will use asimple first order function for Gp and Gm, and a PI controller for Gc. When all is done, we testthe dynamic response with a unit step change in the reference. To make the readingeasier, we break the task up into steps. Generally, we would put the transfer functionstatements inside an M-file and define the values of the gains and time constants outside inthe workspace.

Step 1: Define transfer functions in the forward path. The values of all gains and timeconstants are arbitrarily selected.

km=2; % Gc is a PI controller

kc=10;

taui=100;

Gc=tf(km*kc*[taui 1], [taui 0]);

kp=1;

taup=5;

Gp=tf(kp, [taup 1]); % Gp is the process function

In the definition of the controller Gc, we have included the measurement gain Km, whichusually is in the feedback path and the reference (Fig. 5.4 text). This is a strategy that helpsto eliminate the mistake of forgetting about Km in the reference. One way to spot if youhave made a mistake is when the system calculation has an offset when in theory you knowthat it should not.

Step 2: Define the feedback path function. Let's presume that our measurement functionis first order too. The measurement gain has been taken out and implemented in Step 1.

taum=1; % Gm is the measurement function

Gm=tf(1, [taum 1]); % Its s.s. gain km is in Gc

Step 3: Define the closed-loop function.

Gcl=feedback(Gc*Gp,Gm); % Gcl is the closed-loop function C/R

Comments:• By default, feedback() uses negative feedback.

• With unity feedback, i.e., Gm = Km = 1, we would simply use

Gcl=feedback(Gc*Gp,1)

to generate the closed-loop function.

Page 242: Process Control

M5 - 4

• One could generate a closed-loop function with, for example, Gc*Gp/(1 + Gc*Gp), but thisis not recommended. In this case, MATLAB simply multiplies everything together with noreduction and the resulting function is very unclean.

Step 4: We can now check (if we want to) the closed-loop poles and do the dynamicsimulation for a unit step change in R.

disp('The closed-loop poles & s.s. gain:')

pole(Gcl)

dcgain(Gcl)

step(Gcl) % Of course, we can customize the plotting

This is the general idea. You can now put it to use by writing M-files for different kinds ofprocesses and controllers.

When we have a really simple problem, we should not even need to use feedback(). Yes,we can derive the closed-loop transfer functions ourselves. For example, if we have aproportional controller with Gc = Kc, and a first order process, all we need are the followingstatements, which follow Example 5.1 and Eq. (E5-1) in text:

kc=1;

kp=0.8;

taup=10;

Gcl=tf(kc*kp, [taup 1+kc*kp]);

pole(Gcl)

step(Gcl); % Again for unit step change in R

Try a proportional controller with a second order process as derived in Example 5.2 in text.This is another simple problem that we do not really need feedback().

We now finish up with what we left behind in Session 4. Let's revisit Example 4.6. Forchecking our results later, we first find the poles of the closed-loop transfer function with

q=2*[1 10];

p=[1 11 10 2];

roots(p) % –0.29, –0.69, and –10.02

Next, we define each of the transfer functions in the example:

G1=tf(1,[1 0]);

G2=tf(2,[1 1]);

H=tf(1,[1 10]);

Note that the numbering and notation areentirely arbitrary. We now generate the closed-loop transfer function, and check that it has the same closed-loop poles:

Gcl=feedback(G1*G2,H);

pole(Gcl)

And we can easily obtain a state-space representation and see that the eigenvalues of thestate matrix are identical to the closed-loop poles:

ssm=ss(Gcl);

Page 243: Process Control

M5 - 5

eig(ssm.a)

For fun, we can recover the closed-loop transfer function Gcl with:

tf(ssm)

One final check with our own derivation. We define the coefficient matrices with Eqs. (E4-23) and (E4-24) and then do the conversion:

a=[0 1 0; 0 -1 -2; 1 0 -10];

b=[0; 2; 0];

c=[1 0 0];

d=0;

eig(a) % should return the same

[q3,p3]=ss2tf(a,b,c,d,1) % eigenvalues and transfer function

If this is not enough to convince you that everything is consistent, try step() on thetransfer function and different forms of the state space model. You should see the sameunit step response.

Page 244: Process Control

P.C. Chau © 2000

MATLAB Session 6This tutorial is to complement our development in Chapter 7. You may want to go over the tutorialquickly before you read the text and come back later a second time for the details.

Root Locus Functionsrlocus Root locus plotrlocfind Find the closed-loop gain graphicallysgrid Draw the damping and natural frequency lines

rltool Launch the root locus design graphics interface

M6.1 Root locus plots

Features covered in this session:• Root locus calculation and plots, rlocus()• Frequency and damping factor grid, sgrid()• Get gain of chosen closed-loop pole, rlocfind()

In simple terms, we want to solve for s in the closed-loop equation

1 + Go(s) = 1 + kG(s) = 0

where we further write Go = kG(s), and G(s) is the ratio of two polynomials, G(s) = q(s)/p(s).

In the simplest scenario, we can think of the equation as a unity feedback system with only aproportional controller (i.e., k = Kc) and G(s) as the process function. We are interested infinding the roots for different values of the parameter k. We can either tabulate the results orwe can plot the solutions s in the complex plane—the result is the root-locus plot.

Let's pick an arbitrary function such that q(s) = 1, and p(s) = s3 + 6s2 + 11s +6. We cangenerate the root locus plot of the system with:

p=[1 6 11 6];

roots(p) % Check the poles

G=tf(1,p);

rlocus(G) % Bingo!

For the case where q(s) = s +1, we use

G=tf([1 1],p); % Try an open-loop zero at -1

rlocus(G) % to cancel the open-loop pole at -1

MATLAB automatically selects a reasonable vector for k, calculates the roots, and plots them.The function rlocus() also adds the open-loop zeros and poles of G(s) to the plot.

Let's try two more examples with the following two closed-loop characteristic equations:

1 + K 1(s + 1)(s + 3) = 0 and 1 + K 1

(s + 1)(s +2)(s + 3) = 0

G=zpk([],[-1 -3],1) % The second order example

rlocus(G)

G=zpk([],[-1 -2 -3],1) % The third order example

rlocus(G)

Page 245: Process Control

M6 - 2

The point of the last two calculations is that a simple second order system may becomeextremely underdamped, but it never goes unstable.

Reminder: We supply the polynomials q(s) and p(s) in G(s), but do not lose sight thatMATLAB really solves for s in the equation 1 + kq(s)/p(s) = 0.

Optional reading: In the initial learning stage, it can be a bad habit to rely on MATLAB toomuch. Hence the following tutorial goes the slow way in making root locus plots, whichhopefully may make us more aware of how the loci relate to pole and zero positions. Thefirst thing, of course, is to identify the open-loop poles.

q=[2/3 1]; % Redefine q(s) and p(s)

p=[1 6 11 6];

poles=roots(p)' % display poles and zeros as row vectors

zeros=roots(q)'

G=tf(q,p);

k=0:0.5:100; % define our own gains; may need

% 0:0.1:10 to better see the break off point

rlocus(G,k); % MATLAB will plot the roots with '+'

Until we have more experience, it will take some trial-and-error to pick a good range andincrement for k, but then that is the whole idea of trying it ourselves. This manual approachmakes us better appreciate the placements and changes of closed-loop poles as we varythe proportional gain.1

We may also want to override the MATLAB default format and use little dots, like how manytextbooks like to do:

r=rlocus(G,k); % Save loci to array "r" first

plot(r,'.') % Now use plot() to do the dots

hold % hold the plot to add goodies

pzmap(G) % pzmap() draws the open-loop poles

hold off % and zeros

Be careful to read where the loci are on the real axis because pzmap() traces the axis withalso little dots that can be confusing.

We may want to find the ultimate gain when the loci cross the imaginary axis. Again there aremany ways to do it. The easiest method is to estimate with the MATLAB functionrlocfind(), which we will introduce next.

There are two very useful MATLAB features. First, we can overlay onto the root locus plotlines of constant damping factor and natural frequency. These lines help us pick thecontroller gain if the design specification is in terms of the frequency or the damping factor.

sgrid % use the default grid

or better yet,

1 The gain vector generated automatically by MATLAB is not always instructive if we want toobserve the region close to the imaginary axis. We can use "tricks" like making two gainvectors with different increments, concatenating them and using the result in rlocus().However, we should not get bogged down with fine details here. Certainly, for day-to-dayroutine calculations, we can omit the gain vector and let MATLAB generate it for us.

Page 246: Process Control

M6 - 3

sgrid(zeta,wn) % plot only lines with given damping ratio

% and natural frequency

Example:

sgrid(0.7,1) % add the approx. 45° line for zeta=0.7 and

% the unit circle (frequency=1)

The second feature is the function rlocfind(), which allows us to find the gain associatedwith a closed-loop pole. We can enter

[ck,cpole]=rlocfind(G)

or rlocfind(G) % this simple form will not return

% the values of the closed-loop poles

MATLAB will wait for us to click on a point (the chosen closed-loop pole) in the root locus plotand then returns the closed-loop gain (ck) and the corresponding closed-loop poles(cpole). MATLAB does the calculation with the root locus magnitude rule, which isexplained on our Web Support.

What if we click a point not exactly on a root locus? When we select a point s*, MATLABcalculates the value k* = –p(s*)/q(s*), which will only be a real positive number if s* satisfiesthe closed-loop equation. Otherwise, k* is either complex, or negative if the pole is a realnumber. In this case, MATLAB calculates the magnitude of k*, uses it as the gain andcomputes the corresponding closed-loop poles. Thus we find the chosen points are alwaysright on the root loci no matter where we click.

We may also want to use the zoom feature of MATLAB to zoom in and out of a plot to get abetter picture of, say, the break-off point of two loci. Make sure you enter "zoom off" whenyou are done.

M6.2 Root locus design graphics interface

Features covered in this session:• Graphics user interface for doing root locus plots, rltool 2

The control toolbox supports an extremely nice root locus design graphics design tool thatis ideal for experimentation. The interface is even more intuitive and self-explanatory thanthat of Simulink. We take the same approach as our introduction to Simulink and havemoved the not so necessary and print-intensive window display and instructions to our WebSupport. A very brief conceptual introduction is provided in this section.

To launch the root locus design tool, enter within the MATLAB command window:

rltool

Or if we know beforehand the open-loop transfer function to be used:

rltool(G)

2 The description is based on Version 4.0 of the MATLAB control toolbox. If changes areintroduced in newer versions, they will be presented on our Web Support.

Page 247: Process Control

M6 - 4

A graphics window with pull-down menus and tool buttons will pop out. Here are somepointers on the usage of the tool.

• Similar to the LTI Viewer, the root locus tool runs in its own functional space. We have toimport the transfer functions under the File pull-down menu.

• The tool supports a very flexible block diagram as shown in Fig. M6.1. The import dialogbox handles all F, G, and H. The feedback can be either positive or negative.

+/–F

H

K G+

Figure M6.1. Block diagram supported by the root locus design tool.

• The default is a proportional controller, but the K block in Fig. M6.1 can easily be changedto become a PI, PD, or PID controller. The change can be accomplished in different ways.One is to retrieve the compensator-editing window by clicking on the K block or by usingthe Tools pull-down menu. The other is to use the set of arrow tools in the root locuswindow to add or move open-loop poles and zeros associated with the compensator.

• Once a root locus plot is generated, we can interactively change the locations of theclosed-loop poles and the tool will compute the closed-loop gain K for us.

• For a given system and closed-loop gain displayed in the root locus plot, we can generateits corresponding time response (step and impulse) and frequency response (Bode,Nyquist, and Nichols) plots.

In the next section, you can use the root locus tool if you prefer, but we will do theexplanation using commands. It is easier for us to get the message across with commands,and at the beginner’s learning stage, we believe entering your own command can give youa better mental imprint on the purpose of the exercise.

M6.3 Root locus plots of PID control systems

Features covered in this session:• Make root locus plots that model situations of PID control systems

Here are some useful suggestions regarding root locus plots of control systems. In thefollowing exercises, we consider only the simple unity feedback closed-loop characteristicequation:

1 + GcGp = 0

We will ignore the values of any gains. We focus only on the probable open-loop pole andzero positions introduced by a process or by a controller, or in other words, the shape of theroot locus plots.

Let's begin with a first order process Gp = 1/(s + 1). The root locus plot of a system withthis simple process and a proportional controller, Gc = Kc, is generated as follows:

Gp=tf(1,[1 1]); % open-loop pole at -1

subplot(221), rlocus(Gp) % Gc = Kc

Page 248: Process Control

M6 - 5

To implement an ideal PD controller, we'll have an additional open-loop zero. Two (ofinfinite) possibilities are

taud=2; % open-loop zero at -1/2

Gc=tf([taud 1],1);

subplot(222), rlocus(Gc*Gp)

and

taud=1/2; % open-loop zero at -2

Gc=tf([taud 1],1);

subplot(223), rlocus(Gc*Gp)

What are the corresponding derivative time constants? Which one would you prefer?

We next turn to a PI controlle. We first make a new figure and repeat proportional control forcomparison:

figure(2)

subplot(221), rlocus(Gp) % Gc = Kc

Integral control will add an open-loop pole at the origin. Again, we have two regions wherewe can put the open-loop zero:

taui=2; % open-loop zero at -1/2

Gc=tf([taui 1],[taui 0]);

subplot(222), rlocus(Gc*Gp)

and

taui=1/2; % open-loop zero at -2

Gc=tf([taui 1],[taui 0]);

subplot(223), rlocus(Gc*Gp)

Once again, what are the corresponding integral time constants? Which one would youprefer?

Finally, let's take a look at the probable root loci of a system with an ideal PID controller,which introduces one open-loop pole at the origin and two open-loop zeros. For illustration,we will not use the integral and derivative time constants explicitly, but only refer to the twozeros that the controller may introduce. We will also use zpk() to generate the transferfunctions.

figure(3)

subplot(221), rlocus(Gp) % re-do Gc = Kc

op_pole=[0]; % open-loop pole at 0

op_zero=[-0.3 -0.8]; % both zeros less than -1

Gc=zpk(op_zero,op_pole,1);

subplot(222),rlocus(Gc*Gp)

op_zero=[-1.5 -3]; % both zeros larger than -1

Gc=zpk(op_zero,op_pole,1);

subplot(223),rlocus(Gc*Gp)

Page 249: Process Control

M6 - 6

op_zero=[-0.5 -1.8]; % one zero in each region

Gc=zpk(op_zero,op_pole,1);

subplot(224),rlocus(Gc*Gp)

Yes, you know the question is coming. Which case would you prefer? We can use the ruleof thumb that the derivative time constant is usually around one-fourth the value of theintegral time constant, meaning that the zero farther away from the origin is the oneassociated with the derivative time constant.

Note that the system remains stable in all cases, as it should for a first or second ordersystem. One final question: Based on the design guidelines by which the system shouldrespond faster than the process and the system should be slightly underdamped, what arethe ranges of derivative and integral time constants that you would select for the PD, PI, andPID controllers? And in what region are the desired closed-loop poles?

We'll finish with implementing the P, PI and PD controllers on a second orderoverdamped process. As in the exercise above, try to calculate the derivative orintegral time constants, and take a minute to observe the plots and see what may lead tobetter controller designs.

Let's consider an overdamped process with two open-loop poles at –1 and –2 (timeconstants at 1 and 0.5 time units). A system with a proportional controller would have a rootlocus plot as follows. We stay with tf(), but you can always use zpk().

figure(1)

p=poly([-1 -2]); % open-loop poles -1, -2

Gp=tf(1,p);

subplot(221),rlocus(Gp) % proportional control

To implement an ideal PD controller, we now have three possible regions to put the zero.

taud=2; % open-loop zero at -1/2

Gc=tf([taud 1],1);

subplot(222), rlocus(Gc*Gp)

taud=2/3; % open-loop zero at -1.5

Gc=tf([taud 1],1);

subplot(223), rlocus(Gc*Gp)

taud=1/3; % open-loop zero at -3

Gc=tf([taud 1],1);

subplot(224), rlocus(Gc*Gp)

We will put the PI controller plots on a new figure.

figure(2)

subplot(221),rlocus(Gp) % re-do proportional control

The major regions for placing the zero are the same, but the interpretation as to the choiceof the integral time constant is very different. We now repeat adding the open-loop zeros:

taui=2; % open-loop zero at -1/2

Gc=tf([taui 1],[taui 0]);

Page 250: Process Control

M6 - 7

subplot(222), rlocus(Gc*Gp)

taui=2/3; % open-loop zero at -1.5

Gc=tf([taui 1],[taui 0]);

subplot(223), rlocus(Gc*Gp)

taui=1/3; % open-loop zero at -3

Gc=tf([taui 1],[taui 0]);

subplot(224), rlocus(Gc*Gp)

You may want to try some sample calculations using a PID controller. One way of thinking:we need to add a second open-loop zero. We can limit the number of cases if we assumethat the value of the derivative time constant is usually smaller than the integral timeconstant.

Page 251: Process Control

P.C. Chau © 2001

MATLAB Session 7This tutorial is to complement our development in Chapter 8. You may want to go over the tutorialquickly before you read the text and come back later a second time for the details.

Frequency Response Functionsbode Bode plotsfreqresp Frequency response of a transfer functionlogspace Logarithmically spaced vectormargin Gain margin and crossover frequency interpolationnichols, ngrid Nichols plotsnyquist Nyquist plots

sisotool Launch the SISO system design graphics interface

M7.1 Nyquist and Nichols Plots

Features covered in this session:• Nyquist plots, nyquist()

We will simply state that the SISO system design tool sisotool, as explained in Session 6,can be used to do frequency response plots. Now, we want to use the default view, so wejust need to enter:

sisotool

Hints to make better use of the design tool are on our Web Support. We use commandshere because they give us a better idea behind the calculations. We shall keep this sectionbrief since our main tool will be Bode plots, which will be explained in the next section.

Let say we have a simple open-loop transfer function Go of the closed-loop characteristicequation

1 + Go = 0,

and we want to find the proportional gain which will give us an unstable system. For thissimple exercise, we take Go(s) = KG(s).

p=poly([-1; -2; -3]); % Open-loop poles at -1, -2, -3

G=tf(10,p); % Arbitrary value K=10

nyquist(G); % Bingo!

We'll see two curves. By default, MATLAB maps and plots also the image of the negative Im-axis. That can make the plot too busy and confusing, at least for a beginner. So we'll stayaway from the default in the following exercises.

[re,im]=nyquist(G);

plot(re(1,:),im(1,:)) % Only the positive Im-axis image

Of course, we can define our own frequency vector.

w=logspace(-1,1); % Generate numbers between [10^-1, 10^1]

[re,im]=nyquist(G,w);

plot(re(1,:),im(1,:))

Page 252: Process Control

M7 - 2

The function logspace() generates a vector with numbers nicely spaced on thelogarithmic scale. Its use is optional. The default of the function gives 50 points and isusually adequate. For a smoother curve, use more points. For example, this command willuse 150 points: logspace(-1,1,150).

hold % to add the (-1,0) point and the axes on the plot

x=-1; y=0;

xh=[-2 2]; yh=[0 0]; % the axes

xv=[0 0]; yv=[-2 1];

plot(x,y,'o',xh,yh,'-',xv,yv,'-')

We can increase the gain K and repeat the calculation with, for example, two more trials:1

G=tf(50,p); % try again

[re,im]=nyquist(G,w);

plot(re(1,:),im(1,:))

G=tf(60,p); % and again

[re,im]=nyquist(G,w);

plot(re(1,:),im(1,:))

hold off

We do not use Nichols plot (log magnitude versus phase) much anymore, but it is nice toknow that we can do it just as easily:

p=poly([-1; -2; -3]);

G=tf(10,p);

nichols(G)

ngrid

zoom % need to zoom into the meaningful region

The plot with default settings is quite useless unless we use ngrid to superimpose theclosed-loop gain and phase grid lines. Instead of zooming in, we can reset the axes with:

axis([-360 0 -40 20])

M7.2 Magnitude and Phase Angle (Bode) Plots

Features covered in this session:• Bode plot calculation, bode()• Find the gain and phase margins, margin()• Bode plots for transfer functions with dead time

We begin with one simple example. Let's say we want to analyze the closed-loopcharacteristic equation

1 + 1

s 2 + 0 .4s + 1 = 0

We generate the Bode plot with:

1 All functions like nyquist(), bode(), etc., can take on multiple LTI objects, as in

nyquist(G1,G2,G3)

but only when we do not use left-hand side arguments.

Page 253: Process Control

M7 - 3

G=tf(1,[1 0.4 1]);

bode(G) % Done!

The MATLAB default plot is perfect! That is except when we may not want dB as the unit forthe magnitude. We have two options. One, learn to live with dB, the convention in thecontrol industry. Or two, we do our own plots. This is a task that we need to know when weanalyze systems with dead time. This is how we can generate our own plots:

w=logspace(-1,1);

[mag,phase]=bode(G,w);

mag=mag(1,:); % required since MATLAB v.5

phase=phase(1,:);

subplot(211), loglog(w,mag)

ylabel('Magnitude'), grid

subplot(212), semilogx(w,phase)

ylabel('Phase, deg'), grid

xlabel('Frequency (rad/time)')

As an option, we can omit the subplot command and put the magnitude and phase plots inindividual figures.

This is how we can make a Bode plot with dB as the scale for the magnitude.

dB=20*log10(mag); % converts mag to dB units

Now we do the plotting. Note that dB is already a logarithmic scale.

subplot(211), semilogx(w,dB) % Use semilogx for dB

ylabel('Magnitude (dB)')

grid

subplot(212), semilogx(w,phase)

ylabel('Phase angle (degree)')

xlabel('Frequency, w')

grid

We most often use radian/s as the unit for frequency. In case cycle/s or Hz is needed, theconversion is

f=w/(2*pi); % Converts w [rad/s] to [Hz]

After using the subplot() command and before doing any other plots, we should have ahabit to reset the window with

clf % clear figure

We now find the gain margin with its crossover frequency (Gm, Wcg), and phasemargin with its crossover frequency (Pm, Wcp) with either one of the following options:

[Gm,Pm, Wcg,Wcp]=margin(mag,phase,w) % option 1

where mag and phase are calculated with the function bode() beforehand. We can skip thebode() step and use the transfer function directly as the argument:

[Gm,Pm, Wcg,Wcp]=margin(G) % option 2

Page 254: Process Control

M7 - 4

or simply,

margin(G) % option 3, Gm in dB

In the last option without any left-hand side arguments, MATLAB will do the Bode plot, markthe gain margins with vertical lines, and display the margin calculations on the plot.

Two important comments:1. With G=tf(1,[1 0.4 1]), i.e., a simple second order system, it is always stable. The

gain margin calculation is meaningless. Nevertheless, MATLAB returns a set of resultsanyway. Again, a computer is not foolproof. All margin() does is an interpolationcalculation.

2. If you use option 1 or 2 above, margin() returns the "linear scale" gain margin in thevariable Gm. With option 3, however, the gain margin displayed in the plot is in the unit ofdB. You need to convert it back with 10dB/20.

To handle dead time, all we need is a simple modification using the fact that the time delaytransfer function has magnitude 1 and phase angle – tdω. We need one single statementto "tag on" the lag due to dead time, and do it after the bode() function call.

So let's start with the second order function which is always stable:

G=tf(1,[1 0.4 1]);

freq=logspace(-1,1); % freq is in radian/time

[mag,phase]=bode(G,freq);

mag=mag(1,:);

phase=phase(1,:);

Now let's say we also have dead time:

tdead=0.2; % [time unit]

The following statement is the only addition needed to introduce the phase lag due to deadtime:

phase = phase - ((180/pi)*tdead*freq); % phase is in degrees

We can now proceed with the plotting and phase/gain margin interpolation:

subplot(211), loglog(freq,mag)

ylabel('Magnitude'),title('Bode Plot')

grid

subplot(212), semilogx(freq,phase)

ylabel('Phase (degree)'),xlabel('Frequency')

grid

% now using new phase variable that includes dead time phase lag

[Gm,Pm,Wcg,Wcp]=margin(mag,phase,freq)

The whole idea of handling dead time applies to other types of frequency-domain plots, butthe Bode plot is the easiest to learn from.

Page 255: Process Control

M7 - 5

There is no magic in the functions nyquist() or bode(). We could have done all ourcalculations using the more basic freqresp() function. What it does is essentially makingthe s=jω substitution numerically in a given transfer function G(s). A sample usage is

w=logspace(-1,1);

gjw=freqresp(G,w); %does the s=jw calculation for each value in w

After that, we can use the result to do frequency response analysis. If you are interested inthe details, they are provided in the Session 7 Supplement on our Web Support.