Feedforward fighting feedback control PIDE

Darkzadow

Member
Join Date
Nov 2011
Location
Phily
Posts
94
Hey Forum,

I have a pass through tempering furnace that is setup and works using direct PID control using temperature PV and SP to control my burner solenoids in a zone. I am looking to add Feedforward prediction onto the PID. Right now I am using encoder tracking to track lead edges and trailing edges of the steel and bumping the feedforward to a calculated value. This works but I have the PID feedback fighting the feedforward jump until the temp drop starts to have an effect on the zone.

What solutions would help stop the PID from fighting the feedforward. I have been using WindupLIn to freeze the CV at the FF increased value for a max of 30 seconds or PV exceeds SP+10 or CV starts to contol. I also, have been looking into setpoint manipulation for a smoother operation.
 
Are you saying that when you increase the feed forward the temperature rises? If you bump up the feed forward in big steps then I am not surprised. If the PID was holding temperature to begin with the extra increase from the feed forward will make the temperature bump up until the integrator winds down.

How does the integrator term react to your steps in the FF? If the FF adds more output faster than the integrator can unwind then what do you expect? Right now I bet the integrator term starts to wind down as soon as you add the FF term. If you have the right FF term the integrator should wind back up to its original value. This means that you are adding the right amount of FF but adding it too quickly.

Good plan, you just need a little finesse in the execution. When the steel enters the zone it will not absorb heat all at once. The will be a time constant involved. Perhaps the FF needs a low pass filter with a time constant that can be adjusted to match that of the way the heat is absorbed.

In motion control we must ramp up and down the feed forwards and you will need to do so too.
 
I am using a gradual ramp based on distance into zone. My thermocouple is roughly in the middle of a zone so it is 10 feet from the entrance. So when I do anticipate the steel I will get a temp rise reading until the steel reaches the thermocouple.
The integrator does immediately wind down when not frozen, and as soon as the temp drops from the steel it returns to around the same area(a little fuss to adjust to heat absorption of the varied types of steel).
I do get that I am forcing the temp away from the setpoint but I am trying to compensate for the temp drop in the front end of the zone. Is it a better idea to only have the FF active at the point when the thermocouple will start to see a temperature response?
 
I am using a gradual ramp based on distance into zone. My thermocouple is roughly in the middle of a zone so it is 10 feet from the entrance. So when I do anticipate the steel I will get a temp rise reading until the steel reaches the thermocouple.
GOOD.

The integrator does immediately wind down when not frozen, and as soon as the temp drops from the steel it returns to around the same area(a little fuss to adjust to heat absorption of the varied types of steel).
The integrator shouldn't wind down. It does because the feed forward you are adding is too much or too quickly.

Do you know how much energy it takes to heat the steel? That is how much energy the feed forwards should be adding to keep the temperature constant. That should be a calculation that is known. Now the trick is WHEN to add this energy so the temperature doesn't vary. This is where a trend would give an idea of the time constant for the thermal mass and how to ramp up the feed forwards.

I do get that I am forcing the temp away from the setpoint but I am trying to compensate for the temp drop in the front end of the zone. Is it a better idea to only have the FF active at the point when the thermocouple will start to see a temperature response?
This is where seeing a trend would help. It would be good to have the position of the steel plotted on the trend so it makes sense to some that hasn't seen your system.
 
Also, Don't forget that your FF should include the amount of energy required to keep the furnace at temperature without any cold steel added. This should be the equivelent of the integral value at steady state and with the FF set to 0. The more accurate you can make the FF, the less work a PID controller needs to do.

I do get that I am forcing the temp away from the setpoint but I am trying to compensate for the temp drop in the front end of the zone. Is it a better idea to only have the FF active at the point when the thermocouple will start to see a temperature response?

This may be a case for moving the thermocouple or adding more and taking an average, maybe: zone entry, zone centre, zone exit. In this way you would KNOW that the temperature is dropping; presently, you only believe it is dropping.

As Peter suggests, plotting these temperatures and the PID output relative to the position of the steel in the zone would tell you a story.

My current R&D project is a drying system for a continous process coating line. I've recently been calculating the theoretical capacity (speed) for a given coat weight which is based on the available power - heat loss = power available for drying. There is one very large unknown component in my calculations that is also unknown in yours: The efficiency of the thermal transfer to the product. The specific heat capacity of carbon steel is 0.49KJ/KG/K so if you know how much steel is in your oven, for how long, the temperature rise required then this might give you good stating point for your feedforward.

Nick
 
Also, Don't forget that your FF should include the amount of energy required to keep the furnace at temperature without any cold steel added.
The integrator from the PID should already be wound up enough to match that load.

This should be the equivelent of the integral value at steady state and with the FF set to 0. The more accurate you can make the FF, the less work a PID controller needs to do.
Yes! In fact if the integrator is wound up to match the steady state load then one can tell if the feed forwards are adjust right because the integrator will not change or change little of the feed forwards are correct.

My current R&D project is a drying system for a continous process coating line. I've recently been calculating the theoretical capacity (speed) for a given coat weight which is based on the available power - heat loss = power available for drying. There is one very large unknown component in my calculations that is also unknown in yours: The efficiency of the thermal transfer to the product. The specific heat capacity of carbon steel is 0.49KJ/KG/K so if you know how much steel is in your oven, for how long, the temperature rise required then this might give you good stating point for your feedforward.

Nick
This is the kind of information that is needed. Now one can calculate the KJ of energy required as a function of the kg of steel/minute and the temperature increase. Also that thermal transfer rate should be known. It may be that the steel goes through a zone and can only be heated up so fast so it may take a few zones to get the steel to the right temperature.
 
If your feed forward is perfect then the integral value would be 0. Why wouldn't you want that? I agree that the integral should be already wound up to the right level but how would anyone know that when they looked at it in passing?

Nick
 
If your feed forward is perfect then the integral value would be 0.
This assumes that the FF takes into account heat losses to ambient but ambient changes. Let the PID's integrator wind up to account for heat losses to ambient and use the feed forward to compensate for load changes.




Why wouldn't you want that?
I don't. Didn't say so. The PID should take care of changes in heat loss and any modeling errors in the changes in load due to the rate of steel entering the zone to be heated.

I agree that the integral should be already wound up to the right level but how would anyone know that when they looked at it in passing?
Nick
Easy, the error between SP and PV is 0.

In motion control I can tell if the FF are tune right by looking at a plot or trend of the integrator term. If it stays close to 0 the FF are tuned right. If not then some adjustment must be made. Then I look to see if the integrator is deviating from 0 when the actuator is accelerating or at steady state. This tells me which FF to adjust.
 
Peter,

We obviously take different views based on the needs of the work we do. I've spent most of my working life in the business of tension control for web transport systems. Many of these systems were open loop and so, effectively, 100% feedforward. Even for the closed loop systems, it has always been desirable to run them either open loop or closed loop.

I once upgraded a winder for a customer where the load cells were damaged so the winder ran for 6 months in open loop while they sorted out the load cells; when the winder was switched back to closed loop there was no discernable difference. This was only posible because the feed forward included all the losses (static friction, dynamic friction curve, inertia compensation) plus the predicted torque.

So it is from this background that I like to include as much as posible in my feed forward, whether it is strictly necessary or not.

Nick
 
My current R&D project is a drying system for a continous process coating line. I've recently been calculating the theoretical capacity (speed) for a given coat weight which is based on the available power - heat loss = power available for drying. There is one very large unknown component in my calculations that is also unknown in yours: The efficiency of the thermal transfer to the product. The specific heat capacity of carbon steel is 0.49KJ/KG/K so if you know how much steel is in your oven, for how long, the temperature rise required then this might give you good stating point for your feedforward.
I'm doing a similar project in which I have added infrared transmitters to entry and exit as well as 6 temp zones in the oven and 2 in the fire box. It makes for nice trends that are useful in balancing the oven. Hint: look at air flow in your zones also. Increasing flow at the entry and decreasing at the exit may give a more balanced oven.
 
Hint: look at air flow in your zones also. Increasing flow at the entry and decreasing at the exit may give a more balanced oven.

Thanks for the tip. I too have added 5 IR sensors and have a set of nozzles that are adjustable/removeable.

Appologies to the OP for the OT comments.

Nick
 
OT Comments are fine by me.

I am letting the PID take care of steady state and the FF is calculated on the steel thermal transfer rate and burner tuned BTU. so my FF will ramp from 0 to Needed amount. I have adjusted the start time to when I do see a temperature change so integrator only fluctuates to minor compensations and fights the FF minimally. So now I have a stead PV around the SP and previous PV dips are compensated for.


On the topic of knowledge of temp drop before I register it with my single Thermocouple. My metallurgy department has a black box that sits on a plate to measure actual surface, core, and air temperatures. So I do see in the trend that air temperature drops before the thermocouple reads the change. I will put in for more thermocouples, but metallurgy is happy with a dip as it enters a zone as long as I compensate. I now only see a 5 degree difference in SP and PV during execution as opposed to the -30 on enter zone and +20 on exiting zone. Furnace was PID control Only before I started adding controls.
 
Last edited:

Similar Topics

I'm working in implementing a bias into logic for a Compactlogix PLC using the PID instruction. I have it close to working but there's one part...
Replies
19
Views
5,861
Just to check my sanity even though I think I found the solution. So, for this loop with long lag time we got 2 PID loops with the Outer Loop...
Replies
1
Views
1,165
Hi, I am looking at doing some optimization works for a processing plant. The plant utilizes a 5 stage counter current decantation circuit (5...
Replies
1
Views
1,723
Hi, I have a feedforward implementation I am trying to accomplish. I was wondering what would happen when cv is at 70 and Feedforward wanted to...
Replies
5
Views
3,405
PLC 5/20 using PD type control block When implemetning a feedforward control do ya'll use the .bias or do you just add the feed forward to the PID...
Replies
2
Views
2,995
Back
Top Bottom