Tricky PID Program

jr26

Member
Join Date
Oct 2013
Location
Pa
Posts
5
Hi all,

I am just out of school and working in my first engineering position doing mostly PLC (SLC500) work at a small company. I have been fine so far, but I was recently presented with a very complex challange, and would love the advice of those more experienced than myself.

We are going to be feeding a solid material into a jet mill. The feed (which is on a VFD) will be running on a PID based on the amps of the mill. This way we maximize throughput for the particular material of each run. This is common, and I do it all the time. However, now they want me to control two liquid flows into the mill based on the rate of solid going into the mill. One of them is 15% by weight and the other 4.5% by weight of the rate the solid is going in. So for every 100kg/hr of solid, I need to be moving at 15kg/hr and 4.5kg/hr of the liquids. But my solid rate is the result of a PID. So it is complicated. I will be measuring the rate of the solid by loss in weight of the feed bin.

I will have my solid rate jumping around a bit because it is on a PID. Then I will multiply that by .15 and .045 to get my liquid setpoints (which will be jumping around a bit), and the liquid will be controlled by the pump VFD's based on the flow meters. If anyone even understands what the hell I'm describing here, I will be impressed, but I'm really looking for advice on how to run a PID where the setpoint is constantly changing.

JR
 
Welcome to the forum.
It sounds like you've got a pretty good handle on things. What you're doing sounds like straightforward ratio control. You can do it a couple of ways.
1) If you're happy with how the solids loss-of-weight control tracks, you can ratio the liquid setpoints off of the solids setpoint.
2) If you want to ratio the liquids off a somewhat noisy solids rate, you can either filter the solids rate or just detune the liquid PI controllers. By detune, I mean the response would otherwise seem a bit sluggish or overdamped and would be achieved most probably with an integral controller (and little proportional action). Basically, the integral controller acts as a filter. Also, note that you don't want the liquids control to try to track a noisy setpoint signal.
3) If you need to batch it so that the total liquid added is in proper ratio to the total solids added, you'll need to do something else (advise if this is the case).
Good luck and have fun with it.
 
James,

Thanks a lot for the response. I guess I will attempt to do some kind of filtering, because I really don't have a setpoint for the solids. What I have is a setpoint for the mill amps, which is the max it can handle. The solid material rate varies depending on things like particle size and moisture content. Depending on where we are in the run, it can range anywhere from 200 to 400kg/hour. But we tie that feed rate to the mill amps so we know we're always giving the mill all it can handle. If mill amps drop, we give it more feed, and vice versa. As a result, the feed rate jumps around to stabilize the mill amps. I hope that makes sense.

The upshot is, I'm trying to slave these other rates to a changing rate. So my liquid flow PIDs have setpoints that keep moving. I guess my only option is to filter the solids rate and try to get somewhat steady liquid rates that keep everything in spec. If nothing else, it's an interesting project!
 
Why the reluctance to let the liquid flow rate vary with the solids flow rate?

What's wrong with"
If it the solids rate slows, the liquid flow should slow, at whatever the ratio is.

If the solids rate increases, the liquid flow should increase, at whatever the ratio is.
 
Dan,

Thanks for the response. This is exactly what I want to do. The problem is that I can't just dictate the liquid flow rates. These rates are on PIDs also, with the pump speed adjusting to stabilize the input from a flow meter. So, I calculate the setpoint based on the ratio to the solids, just like you are suggesting, but that setpoint constantly changes. It makes it tough to get the PID to work well.
 
We run systems like this on the feed to mixing systems and my experience is as follows:-
Using the pumps to regulate flow did not work very well (with centrifugal pumps) because the response was not linear enough for good control.
We changed our pumping system to a recirculating loop with pressure control to maintain a constant delivery pressure at the liquid source.
We control the final flow with a V-Port control valve in the liquid delivery line.
We also have a separate shut off valve which we use to turn the liquid on and off. When the liquid is turned off the PID loop is turned into manual and the CV held at its last value. When the liquid is turned back on the PID loop restarts with its last CV after a short delay to allow the flow to come back up to its working value. Using the control valve to start and stop the flow never worked well for us as the PID control has to ramp back up to the required CV after every interruption.
The above may not be required for your purposes, particularly if you are using positive displacement pumps, but it is the system which works best for us.
 
From what I understand the op states:-
Has a solids PID which gets its setpoint from the Mill Amps.
Has a VSD PID which gets its setpoint from a 0.15 ratio of solids PID
Has a VSD PID which gets its setpoint from a 0.45 ratio of solids PID
These two VSD's have flow meters to complete there loops.
The Mill Amps dictate the solids PID.
Op wants to slave the VSD's of this solid PID which fluctuates.
Is dampening an answer or does it matter that the VSD's fluctuate?
Is the differential crucial can one lessen the gain?
Should a polled average of the solids PID be the setpoint/ratio for the VSD's PID.

Suggestion - let the VSD use the flow meter for there PID loops as you have it.
Then take a timed average of the solids PID and feed this into your VSD setpoint.
This way your VSD loops will change steadily every timed setpoint.
The timed average 'time' can vary by a ratio of your solids differential.
 
Last edited:
The timed average 'time' can vary by a ratio of your solids differential.

I think I have confused myself.
The timed average 'time' can vary by an inverse ratio of your solids integral.
The time between setting the setpoint of the VSD should vary accordingly to the solid material that is called for, but inversely.
If a small amount of change then a long time - if a large amount of change then a short time.
 
Andy and rigicon, thanks a lot for the advice. It is much appreciated. I am going to try to get this thing working smoothly with a timed average, as you have suggested. Because the material remains in the mill for a period of time (I'm told a good twenty to thirty seconds), if I'm getting the ratio right on average, then I should be fine. If this does not work, maybe I will try a control valve as Andy suggested. That sounds like it would probably give me better control than the VFDs on the pumps.
 
You should consider using just a first order filter rather than a 'timed average'. See here for a description of averaging and first order filters... http://lorien.ncl.ac.uk/ming/filter/filter.htm

Say you update your filtered measurement every quarter second, Wf is the filtered value, and W is the weight from the instrument. The new update is
Wf = a * Wf(from previous update) + (1 - a) * W, where
'a' is a filter constant between zero (no filtering) and one (heavy filtering). Choosing 'a' is a tradeoff between noise reduction and speed of response to actual process changes.

If filtering is available at the instrument (transmitter), it may be preferable to do it there.
 
James,

Thanks a lot for this suggestion. I have a lot of applications where I could consider this filter.
 
The feed (which is on a VFD) will be running on a PID based on the amps of the mill.
The running Amps of the mill is the variable on which all else is controlled. For that reason, it will really help if you make this a very steady even number, with no sharp jumps that can upset the rest of the process. I would average the current over some time period (5 to 10 seconds based on the mill retention time of 10 to 20 seconds), depending on how "jumpy" the mill current is. Use this current average then to set your ratio controllers for the other variables.
 
Last edited:

Similar Topics

Good Eve Gentlemen, We had this cold room which was converted to hot room before I joined this work. Everthing was fine until a month ago, they...
Replies
9
Views
2,098
Hi Here's a question I'm about to ask Omron.. as soon as I can figure out who to ask.. It's complicated asking support.. their web email form...
Replies
2
Views
3,112
I have a controller that gets turned on by the push of a momentary push button with one set of contacts, and remains on using a single SPDT non...
Replies
19
Views
6,142
We have faced a tricky problem . The panel view Plus 1000 is not going online..The network guy "Ping" from system and shows that the node is ok...
Replies
4
Views
2,216
Hi guys, Simple question, but I cannot find simple answer to it: How to read the instance DB symbolic name from within FB? If this is not clear...
Replies
7
Views
2,544
Back
Top Bottom