Velocity Form PID woes

cardosocea

Member
Join Date
Nov 2016
Location
Fields of corn
Posts
2,622
Hello,

I have a reactor with a cascaded PID control for control of the batch and jacket inlet temperature.

We throw in all the required products into the reactor but the reagent, and then bring the batch temperature to 60 degrees. We do this by having the PID in Cascade mode (Batch PID controlling the jacket).
Once the batch temperature is at around 58 degrees, we change the mode of the jacket control PID from Cascaded to Auto and give it the 60 degree setpoint. This is to reach a point where the batch and jacket have the same temperature at which point the reagent goes in and we wait for the reaction.

The system is running on a L83EP, and the instructions are the PPID that are available on the Process controllers. The mode used is dependent.

Now, the system works reasonably well heating up the batch without many issues and we really don't cool the batch in a controlled way. Once finished, it gets brute force cooling until a certain point and gets dropped to the next stage of the process, so the cooling there isn't monitored and has no impact at all.

The point at the batch I'm having issues is precisely when we move the jacket controller to auto and ask for it to cool from about 120 to 60-ish degrees. The heating gains aren't adequate since we have far more cooling power than heating. I've played with values and came up with a set that is better than the values I found originally, but still nowhere near what the response should be. The response still oscillates.

Where I'm having issues is understanding where and how to tweak the gains since the velocity form sort of changes what I'm used to seeing. The gain for example, can be fairly useless when used with the error difference in slow moving processes. Looking online there isn't a lot of information about the behaviour of this particular PID form and the impact of each parameter as well as the importance of the cycle time in the grand scheme of things.

Anyone here have any tips or information I can look at?
 
Hi Ken,

Yes in software. The PID 0 output is 50% CV. It then goes through a split range function block and writes to individual output for heating and cooling.
 
I have encountered similar situations, I move different tuning parameters to the loop depending on the mode. In Cascade use parameters "X" in auto use parameters "Y". In my case steam valve was 3 inch, cooling valve was 12". Large difference in system response.
 
Ken has the right idea

Obviously the open loop gain and time constant while heating is different from the open loop time constant while actively cooling. Therefore there controller gains and time constants should change when the mode of operation changes. This is not a problem with the PID, it is how you are using it.

Why not use two PIDs? One for heating and the other for cooling. Each PID has its own parameter for its mode of temperature change. The heating range would go from 0-100% and the cooling one the same except its controller gain would be negative.
 
Originally posted by cardosocea:

The gain for example, can be fairly useless when used with the error difference in slow moving processes.

This is only true if your sum lacks the resolution to account for a single scan change. The per-scan proportional effort is captured in the output sum every scan.

Consider these two pseudo-code examples:

Out = Kp * E

OR

Out = Out + (Kp * (E - Eold))
Eold = E

Assume a Kp of 1. Start with E = 0 and then step it to a constant E = 5. What will the two outputs be after 100 scans? Yep, they will both be 5.
So, while the PER-SCAN proportional contribution in the velocity (incremental) form of the PID may be minimal the total proportional correction is still baked into the output.

Keith

NOTE:
I picked 100 scans arbitrarily to demonstrate that the output will not change over time. in both cases the output assumes the value after a single scan.
 
Last edited:
The PID algorithm takes a fair bit of effort to get perfect but not so much to get close enough; unless this system exhibits some obvious pathological (e.g. significantly non-linear) response, then something else is abusing the assumptions PID relies on.

If oscillations remain despite reasonably competent attempts at tuning, then I would be more suspicious of mechanical linkages (hysteresis) in the physical parts of the control system and other such issues. @Peter Nachtwey has some excellent videos on this. Don't forget the Ed Lisi 100-lira coin test.
 

Similar Topics

Hi all, I am having a problem with my servo motor and I'm absolutely stuck as to why it wont run. Without any gearbox or any load attached to...
Replies
9
Views
3,480
A query for the motion control experts: I have an app where I measure the position (encoder ∝ K * angle) of a rotating device, and use that along...
Replies
15
Views
3,691
Hi folks, I am upgrading a SLC to a ControlLogix platform. The goal of the project isn't simply to get the same program to run on different...
Replies
7
Views
2,771
Hello All, We are developing a machine that will pull in corrugated pipe into a system. The machine in general is like a worm, as in the pipe has...
Replies
9
Views
3,309
I'm using a three term equation to control position, but the velocity profile from point A to B is failing expectation. I'm assuming the...
Replies
3
Views
1,410
Back
Top Bottom