Today is...
Wednesday, May 23, 2018
Welcome to Control.com, the global online
community of automation professionals.
Featured Video...
A tutorial introduction to programming using the QuickBuilder Programming Environment.
Help keep our servers running...
Lambda tuning for PID
PID loops tuned by the "lambda" or "setpoint" method supposedly give "no overshoot" and "no oscillation" in response to setpoint changes. How do you calculate the proper tuning values?
By Ron Beaufort on 22 June, 2003 - 7:15 pm

I have been experimenting for quite some time trying to learn more about PID control. Most of my lab experiments are performed on a small heater application (basically a soldering iron) whose temperature I can control with an Allen-Bradley PLC-5/20. For the experiments covered in this post I am using the Dependent Gains (ISA standard) equation.

Lately I have become interested in a procedure known as the "lambda" or "setpoint" tuning method. My understanding is that this particular tuning method provides PID control which will neither oscillate nor overshoot whenever a step change is made to the system setpoint. I recently used Rockwell's RSTune software to automatically come up with a set of lambda tuning values for my little experimental heater system. I have posted the results of using RSTune's suggested values as Figure 1 at:

After applying the lambda tuning values, my system responded to a setpoint change without oscillation or overshoot – exactly as desired. Note that in setting up RSTune, I specified a "lambda" time of four minutes. My understanding is that after four lambda time periods (in other words, after 4*4 minutes=16 minutes) the process should be approximately (98%) "on target" at the new setpoint. As shown in Figure 1, RSTune was successful in achieving this level of control.

Based on the successful results of using the RSTune software, I know that lambda tuning is possible with my system. My next objective is to learn how to calculate the lambda tuning values manually – as opposed to relying on a software package. My main purpose for doing this is for my own personal education. Even though I presently have access to products such as RSTune, I've found that working through the steps of manual calculations (such as the Ziegler-Nichols method) has helped me visually analyze how various systems respond to different control strategies. I hope that learning how to manually make the lambda calculations will also prove helpful.

Several years ago a local engineer was kind enough to help me by explaining the procedures required to manually calculate the proper values for the proportional, integral, and derivative settings to obtain a lambda tuning response. Unfortunately since that time I have moved (twice) and can no longer find my notes on this subject. I'm hoping that someone will respond to this post and point me in the right direction.

If I remember correctly, the manual calculations necessary for lambda tuning are based on a set of simple formulas which are very similar to those used for the Ziegler-Nichols "Process-Reaction Curve" method. Recently I placed my experimental heater in the manual mode and made a step change to the CV (Control Variable) setting and graphed the system's response. I have posted the results as Figure 2 on the same forum as linked above.

This figure includes all of the measurements that I think might be of interest – but again, since I'm working from memory here, some of the values included are probably not required. On the other hand, if I've left some necessary stone unturned, I will be glad to provide more detail in response to any posted or emailed questions.

I would truly appreciate any information on how to manually calculate the proper settings for lambda tuning - and also any links which you might consider helpful. Nothing which I have been able to find on the web has been specific enough to answer my questions.

beauforr@mc-mc.com

By Dick Caro on 22 June, 2003 - 10:58 pm

Ron, I can't help you with lambda tuning, but I can give you some advice. Lambda tuning gives you an overdamped response. By definition, this condition is desirable for a process operated at some critical limit. For most processes, the object is to arrive at the setpoint as rapidly as possible. The criteria in tuning most processes is to minimize the sum of error about the setpoint (actually the sum of the least square error). This results in (the ideal) some deviation about the setpoint in a pattern called quarter amplitude damping that stabilizes quickly after about 4 cycles. This is great for temperature control, but is often less stable (oscillates more than 4 cycles) for processes that have some deadtime in the response to setpoint or load change. There is nothing wonderful, amazing, or even desirable in lambda tuning that gives much more error deviation from setpoint, even though it is all the same sign error.

Dick Caro
============================================
Richard H. Caro, CEO
CMC Associates
2 Beth Circle, Acton, MA 01720
Tel: +1.978.635.9449 Mobile: +1.978.764.4728
Fax: +1.978.246.1270
E-mail: RCaro@CMC.us
Web: http://www.CMC.us
============================================

By Ben Janvier, Process Control Consultant on 23 June, 2003 - 1:22 pm

Ron,

EnTech Controls have beeb pushing Lambda tuning for more than 15 years now. Lmbda tuning is really a tuning technique called Internal Model Control. Lambda is simply defined as the closed loop time constant.
Lambda tuning is the method being used successfully in the industry in the drive to reduce process variability. In the simplest sense, Lambda Tuning attempts to achieve a non oscillatory loop with a desired speed of response. The speed of response is set by choosing a closed loop time constant which is often called Lambda ( ). It is by selecting this closed loop time constant that the control engineer is able to coordinate the collective tuning of a group of loops in a unit process, so that their joint action helps to establish the desired dynamics of the entire process. The rationale for selecting a particular time constant varies with the loop and its role in the overall control strategy. The most common reasons for selecting a given speed of response are as follows:

1) Make the loop as fast as practically possible, subject to ensuring robust behavior and preventing excessive resonance.

2) Make the speed of response of this loop exactly the same as another loop which controls a parallel stream.

3) Make the speed of response of this loop appropriately slower than that of another loop which is coupled through the process and is more important than this one in order to prevent interaction.

4) Make the speed of response of this loop appropriately faster than the next outer cascade loop.

5) Make the speed of response of this loop, typically a surge capacity tank level controller, as slow as possible while ensuring that the level controller will be able to handle all normal demand changes, while minimizing its resulting upsets on coupled loops.

6) Match the closed loop time constant to the stochastic disturbance noise structure in order to minimize variability.

The basis for the Lambda Tuning concept can be traced to the analytical design method of Newton, Gould and Kaiser [8] in 1957. In a nutshell, the method synthesizes the controller needed once the process dynamics are known and the desired closed loop dynamics have been selected. Typically, the process dynamics are identified by performing a series of small open loop "bump tests", and fitting an appropriate transfer function model to the results. The work of E.B. Dahlin [9] in 1968 on digital controllers gave the main impetus to Lambda tuning. It was Dahlin who described the desired closed loop speed of response as "Lambda" and coined the term "Lambda Tuning". Whereas Dahlin only concerned himself with the first order plus deadtime response, the work of Morari [10], Chien [11] and others have generalized the technique to the general transfer function. The basis of the design method is that of pole-zero cancellation, with controller zeros being used to cancel process poles. Although the method goes far beyond PID, the most important results can be summarized in the following table:

Process Transfer Function
Kc=tau/(Kp*(lambda+td))
Tr=lambda (in theory but you have to be careful)
Kc=(2*lambda+td)/(Kp((Lambda+td)^2))
Tr=2*lambda+td

By Ron Beaufort on 24 June, 2003 - 1:28 pm

To Dick Caro,

Thank you for your quick response - and I sincerely appreciate the advice you offered. Judging from your reply, it appears that I might need to elaborate a little on my interest in lambda tuning - beyond the reasons which I mentioned in my original post. I am not an engineer and so I'm not really in the business of actually going out and tuning PID control loops. I work for an Allen-Bradley distributor - and one of my job duties is fielding phone calls from our customers when they request technical help with the PLC systems that they have purchased. Once in awhile - four or five times a year on average - the customer's problem relates to PID control. These requests never seem to come from seasoned engineers - but always from some poor Joe who's just trying to "get the darned thing working" - and often with the boss breathing down his neck. Usually we can solve the problem over the phone by just carefully going over the basic PID setup - timing issues, signal scaling, etc. But then occasionally we also have to tackle loop tuning. I've had pretty good luck in the past by falling back on the old tried-and-true Ziegler-Nichols methods. Basically I have the customer perform a step-change to the system under manual control - and then have him email or fax a screen dump of the test results to me. I print the picture - draw the lines - make the calculations - and then call the customer back with advice along the lines of: "Try setting Kc to 1.11; set Ti to 1.23; set Td to 0.05 ... then cross your fingers and try it out again." It's amazing how often this simple Fred Flintstone approach works. Sure the loop could certainly use some fine tuning and tweaking - but at least the PLC is now controlling the process - and the customer has an "in the ball park" set of values to get him out of hot water.

As you pointed out in your post, most of the time a system response whose oscillations die out within about four cycles is considered a highly workable tuning solution. And in those cases the Ziegler-Nichols method has usually answered my limited "in the ball park" requirements very well. But - just once or twice in the past - I've been asked to provide a tuning solution that gives NO overshoot - or NO oscillation. And in those rare cases I've always been totally unable to come up with an "over the phone" solution to help the customer out of a jam. Now I'm pretty sure that my little drawing (linked in my original post) has all of the information necessary to allow a manual calculation of the tuning values for a lambda response. Well - all of the information except for the actual "multiply _ by _" formulas themselves. So that's the information that I'm looking for. And in addition to my "I just want to know" reasons for asking - I'm also trying to get my ducks in a row before the next time I need to perform another tuning miracle over the telephone lines.

Again, thanks for your response. I really do appreciate the time it took you to prepare it.

Best regards, Ron
beauforr@mc-mc.com

By Fred Thomasson on 23 June, 2003 - 8:33 pm

Ron,

Calculating the tuning gains using the Lambda method is straightforward. The example I will give assumes the interactive PID algorithm. This is the most common one.

Step 1. Place the loop in manual. Make sure the process is in steady state. Make a small step change in the controller output (say 5%). You need a trend to record the results of the "bump" test.

Step 2. Select a simple process model that best fits the response. A first order plus deadtime(FOPDT) transfer function adequately represents the dynamics of many processes. Of course there are second order models and models for integrating models (tank levels). Let us assume the process is FOPDT. We need three parameters:

1. Process Gain(Kp)
3. Time Constant(T)
4. Range of Transmitter(R)

Where Kp = (Change in Process Variable)/
(Change in Controller output[%])

and K = 100/R (all times in seconds)

Let us assume that: T=28 sec, D=4 sec, Kp=5, K=0.2 (R=500)

In this case we choose to only use PI control (no derivative). Using the tuning equation for FOPDT and letting Lambda 25.0 sec.

Proport. Gain: Kc=T/{KpK(Lambda+D)] = 0.97

Integral Gain: Ki=60/T = 2.14 repeats per minute

There is a Table of Tuning Equations for for various process step responses. One place where you can find it from TAPPI Press. The document is called "Tuning Guide for Basic Control Loops" TAPPI is the pulp and paper organization. Put "tappi press" in a google search to find the address and other contact information.

And by the way you can use this method to tune loops faster than the open loop time costant but you will get overshoot if there is significant deadtime. Many people think this method is only for overdamped tuning.

By H. Brittain, Ph.D. on 23 June, 2003 - 9:48 pm

Ron,

You are correct. Lambda tuning is based on a set of equations, not unlike those used for Zeigler-Nichols tuning. Be aware, however, that Lambda tuning will provde an extremely slow response.

To begin, you need a first order model of the process:

Gp=process gain
Tau=process time constant

The controller equation is critical. For the ISA standard PID algorithm:

CO=bias + Kp(e + (1/Ti)* int(e)dt + Td(de/dt), the lambda equations are:

Kp=Tau/(lambda*Gp)
Ti=Tau
Td=0
The miminum that lambda can be without overshoot is 1.63*td.

If you have a different controller, you need to convert the values.

If you have more questions, check out www.topcontrol.com and send us an email.

Best Regards,

- Hank

By Ron Beaufort on 7 October, 2004 - 11:01 pm

this is just to thank once again everyone who helped by responding ... and to "close the loop" by saying that the "official" procedures for lambda tuning are available as an e-book titled "Tuning Guide for Basic Control Loops" from TAPPI Press at:

http://www.tappi.org/index.asp?rc=1&pid=6680&ch=8&ip=&bhcd2=1097092329

this has answered all of my questions on this particular subject ...

best regards,
Ron