Cascade PID's

jim767

Member
Join Date
Sep 2006
Location
ohio
Posts
84
Want to learn a little on these in RS5000 Ladder logic. I have a test stand and have the following.

Master PID PV = 0-20 vdc
Slave PID PV = 0-20 vdc

I want to control a CV of +/- 10 vdc and placed this IO point in the CV of the Master PID instruction. Set the .SP to 10.

I am not sure whether it goes in the master. Also what goes in the CV of the Slave PID instruction?

Answers and links to something for the CLX would be appreciated.
 
Master PID PV = 0-20 vdc
Slave PID PV = 0-20 vdc

Does the CLX platform accept these signal ranges? Sounds odd to me, but I don't know the CLX range that well.


To get a intelligent response here, you probably need to describe what you are trying to simulate in your cascade loop configuration.
 
Last edited:
You are right I'm coming in with 0-10.

The scenario I'm thinking about is:
The 0-10 is a readout of a strips width progressing down a line. The measurements are taken at two different locations hence the values placed in the PV's of the PID's. I want to control a single output +/- 10 vdc which changes the strips width upstream of both measuring devices. Update frequency or changing the width will be based on line speed and the error at each location from a desired width value. The width of the strip reduces as it goes downstream (shrinkdown). I'm not even sure if this would be a case for using a cascade. Like I said I am dabbling with it to get a rough idea how it works. I have some analog IO on the bench and was trying the cascaded instructions. Thanks
 
Jim,

A cascade loop is used when your have a Control Variable that is dependent on TWO different inputs or Process Variables. Usually one of these is the CV from the first PID and is used as the setpoint of the second PID.
 
Thanks Lancie, I do have two different inputs or PV's and one output. On the master PID instruction I'm using the output to the IO point. What would I put in the CV of the Slave instruction.
 
An example of a real life cascade pid arrangement.
You have a jacketed pressure vessel.
The PV of the Master is the vessel contents temperature, the the Master CV is the slave setpoint. The Slave PV is the jacket cooling water temperature, the CV controls a proportional valve that controls the amount of chilled water entering the jacket loop.
 
I don't think your application would properly use a cascaded PID control. It seems to me that your two input variables are actually the same variable (width of strips), but measured at two different times. Would not some type of weighting (averaging) of the two measurements be more useful and appropriate?

I would assign a weight to each input, and then average the two based on that. If Measurement 1 has the most effect, so assign it 4/5, or 80%, and Measurement 2 has some effect, but only 1/5, or 20%. Multiply Measurement 1 by 4, add it to Measurement 2, divide by 5, then use that as your Process Variable for only one PID.

PV = ((4*M1)+M2) /5

Then experiment with different weights and PID gain to find the best control for the process.

Final question: Why would not the final, last measurement of the width (after it has shrunk the most) not be the best process variable to use to control the width?
 
Last edited:
Lancie, the two are the same thing but due to a shrinkdown the measurements are not the same. Actually what you described for averaging is what I have in the field now. One of the guys had mentioned using a cascade PID for control and I figured it would be a good time to learn something on company time. I just jumped in head over heels.

Ken, on your example the the Master CV is the slave setpoint, does this mean I would enter "Slave_PID.SP" in the spot where you enter the Control Variable for the Master PID instruction. I apologize for clogging up the bandwidth but I'm on a "mission" to learn. Thanks all.
 
Something like this might work.

SP for Measure 2 }-->PID1-->CV1-->
Measurement 2 PV }

CV1-->Setpoint for Measure 1}-->PID2-->CV2 (Strip Width)
Measurement 1 PV}
 
Last edited:
Typically, cascade loops are employed where the controlled process is slow and the controlling element is fast. As in Ken's example, the tank contents change temperature slowly but the cooling water flow can be changed quickly. The benefit over using a single loop is the possibility of tighter regulation and faster response.

The master or outer loop monitors the slow process (temperature of tank contents) and the slave or inner loop monitors the fast process (cooling water flow). The output (CV) of the master loop provides a setpoint to the slave (flow) and the output of the slave controls the cooling water flow.

I have no idea if your case is suited to cascade control or not, but to find out I would set it up this way.
  • master setpoint = desired width after shrinkage
  • master PV = measured width after shrinkage
  • slave setpoint = master CV = width to cut
  • slave PV = measured width after cutting
  • slave CV = controlling output to cutter
 
Cascaded loops will not help

Why not have just one final width sensor to use as a PV? If this isn't possible then the technique you are using is probably used to estimate the final width.

It isn't clear if the widths shrink based on time or distance traveled but I would definitely use this information to compute the final width or SP.
 
In the field case I'm thinking of the width at both sensors is changing very slowly and is based on time and distance. Rubberized material then say 100 ft down the line measured with the sensor and naturally cooling causing width to shrink 1/2", then going through cooling and at the sensor 200 ft down the line showing a shrink total of 2". These values would vary depending on type of material, speed of the line, how well it's being cooled etc. Typically for this situation the upstream sensor was the only one used but did not achieve the proper width at the exit end when randomly measured. The upstream sensor allowed for a more stable control because the downstream sensor is so far away.

I am going to plug in some values for a scenario like Gerry suggested to see if I can get one of these working. Thanks all. Jim
 
For situations like that (which we have also), we either pre-compensate with a manually entered 'Shrinkage' setpoint, or dynamically calculate the actual shrinkage, and apply that as the 'Shrinkage' setpoint when it becomes valid.

The 'Shrinkage' setpoint is applied as an adder to the (in our case) main diameter/wall-thickness setpoint at the hot end. If for example, we wanted a 100 mil wall, and had an expected shrinkage of 25% at the cool end, our setpoint would be 100 mil + .25 * 100 mil = 125 mils.

Dynamically calculating shrinkage requires the use of a footage counter, and knowing the distance from the hot measurement point to the cold. Simply put, we start with the manual shrinkage, and then track the hot measurement in a shift register (one shift per foot, usually), and as each hot measured point crosses the cold sensor, we calculate the actual shrinkage based on the cold sensor and the footage-shifted hot sensor.

The dynamic method still requires a manual 'estimated' shrinkage value to start with, so you don't end up with several hundred feet of scrap.
 

Similar Topics

Hi Folks I am beginner at plc programming and I have got some questions about PID cascade. I look for some programs( I work on Step 7, Tia...
Replies
1
Views
1,356
Hi, I am trying to automatically regulate a process ( liquid ) in a tube using an ultrasonic sensor, differential level meter, control valve...
Replies
3
Views
3,194
Hey guys, After spending most of a day Googling looking for the answer, I finally decided to make a thread and ask the experts. I'm trying to...
Replies
5
Views
3,622
Hello!! I'm working on a project that requires a Cascaded PID Loop to control solution temperature in a tank with a water jacket. The tank has...
Replies
2
Views
2,442
RS5000 vs.20, 1769-L35E Processor, I have had an issue that I have seemed to work out between all of the PID posts I could find here and listening...
Replies
0
Views
5,417
Back
Top Bottom