Feed Forward questions

rupej

Member
Join Date
Sep 2014
Location
NC
Posts
967
I do a lot of hot water set projects, which are simply a steam heat exchanger with a steam control valve that adjusts to a PID setpoint- the water outlet temperature. These are often controlled by MicroLogix 1400s. Lately I've been experimenting with using feed forward to adjust the CV output based on water flow rate, as the greater the water flow, the more steam is required to maintain temperature. This greatly improves the performance of the PID, but leaves me with two questions:

1. What the heck are the units for feed forward in a Logix 500 PID? The manual includes a whole single sentence on using feed forward, and doesn't cover units as far as I can tell.

2. Is there a clean way to include a deadband for the FF to avoid jitter? In my hot water sets, the flow rate is constantly changing slightly, as flow does naturally, which causes the control valve to constantly make unnecessary slight adjustments, which increases wear. How do y'all handle it for situations like that?

Thanks!
 
I will have to double check, but I believe that feedforward in the ML1400 is scaled the same as the PV, and where I have used it, its 0-16383.

When I have used feedforward, I have done two things to smooth the value, first, run the raw data through a simple filter and dampen it quite a bit, and secondly, use a deadband like you describe, so that the value going into the PID is only updated after a significant change has occurred.

I have a program that controls filter level in a pair of small rapid gravity water filters to try to achieve a steady output flow rate while also maintaining a steady level in the filter. I use the raw water flow entering the plant as the feedforward since the amount of water leaving the filters should be pretty close to the amount leaving them give or take a little dead time ... I am planning to be in the office later today, and can open up that program and double check the units I ended up with.
 
Thanks Okie! I'll try adding some filtering, that makes a lot of sense.

Though I am struggling with the deadband logic- the only way I can think to implement it effectively seems overly complex to program. Maybe it just has to be to work well though.

I'm thinking that as the FF input is rising, keep writing it to a "highest value" integer, which is fed into the FF input on the PID, and calculate a value just below that (say 1% lower) that to be the "re-enable FF value". So if the value drops from the highest, don't change the FF input to the PID until it drops below the "re-enable FF value". And then calculate the other way as the input is falling where you have a "lowest value" which is fed into the PID and you calculate a value 1% higher than that to re-enable the FF being written to the PID.

Is that pretty much how you do it, or is there a simpler way I'm missing? Thanks again!🍻
 
Last edited:
Looks like what I am doing is updating the PID.FF at ten second intervals by taking the (mathematically 1st order filtered) raw flow and scaling it from GPM to 0-16383.

The SCP block I'm using has a quite high range for input max (about 5 times what the highest raw flow could be) so that has the effect of only applying about 20% FF to the equation. In my case, the raw flow travels through a large clarifier before hitting the filters so a change in the raw flow can take a couple of minutes to affect what the filter output valves should be doing. I think that is why I settles on a small amount of FF so as not to over react.

If I remember right, I was thinking of doing a deadband around the raw flow number to restrict how often it updates but I already had that ten second timer contact doing other things and it worked well enough that I didn't need to go further.

I think your situation might call for some trials and trends, but generally the FF can do a lot of the work for you if your PLC "knows" the disturbances and anticipated them accurately there will be less error for the rest of the equation to deal with.
 
Last edited:

Similar Topics

Hey All, I am working on the programming to maintain level and pressure in a 80 gallon surge tank. This tank feeds fillers that fill either 2.5...
Replies
2
Views
1,539
I have a startup issue in need of a solution, the problem involves 3 valves on a evaporation system. The three valves are a evaporator feed water...
Replies
3
Views
1,521
Hi guys! It seems to me that PID loops with feed forward are underutilized. Maybe it's just me but I think almost every loop would work better...
Replies
6
Views
2,716
I have a conveyor full of product in an oven, I am trying to control the final temperature of the product using conveyor speed. I have 4 product...
Replies
0
Views
1,456
What technique would I employ when I have a tank that I am pumping out of at the same time water is flowing into it and I want to keep the flow as...
Replies
22
Views
7,446
Back
Top Bottom