LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID Temperature control using slope of output

I have a difficult problem in which I wish to maintain a constant temperature over time on the fin side of a heat exchanger by controlling the flow rate through the heat exchanger coil. I'm currently using the Time v Temp data to determine the current slope (based on the temperature history over the last say 20 seconds) and use that as the process variable for a PID controller. The issue that I am having is determining the PID constants to have a consistent response. They either seem to constantly be saturating the pump output or not changing at all even with large changes in temperature slope. What is the best way to determine the PID constants for a system of this type? Or is there a better control method to use?

0 Kudos
Message 1 of 19
(3,457 Views)

I don't think you should be using the slope of temperature vs time as your process variable (or error term). If you want a constant temperature, I assume you set the slope to zero. What if your system changes temperature, say at 1 deg / sec. A second later, you may be able to get the slope back to 0 deg / sec, but your temperature has risen by 1 deg, so you are operating at a different, constant temperature.

 

Usually the error term would be target temperature - current temperature. As long as you do not change your target temperature, the PID controller's job would be to operate at a constant temperature.

0 Kudos
Message 2 of 19
(3,453 Views)

Thanks for the response. This is how the system needs to operate though. I cannot use temperature as a setpoint because that temperature is constantly changing with other operating conditions that are out of my control. All I need to do is make sure that no matter what the actual temperature is, that is stay constant. I cannot specify temperature only that the slope of the temperature remain constant (usually equal to zero).

0 Kudos
Message 3 of 19
(3,448 Views)

I can't make total sense of what you've described.

 

You've said:

- things outside your control will cause the temperature to "constantly change"

- whatever the temperature is, it must stay constant

- you can't specify a temperature setpoint only that the slope remain constant

 

Those things simply don't make sense together.  Either the description is wrong or the requirement is impossible.  The first 2 are a direct contradiction.  And a constant slope for temperature cannot possibly be sustained except for the special case of 0 slope, i.e., constant temperature.

 

Do you actually have more than 1 temperature measurement in this system?   1 that you have knowledge of but is outside your control (perhaps internal boiler or fluid temperature) and 1 that is in your control (heat exchanger fins)?

 

That *could* be a situation where you might "feed forward" some knowledge of the slope of the uncontrolled internal temperature in order to get a head start at reducing the upcoming expected change in fin temperature.  This kind of feed-forward would normally require some math modeling and system dynamics knowledge.  And you'd still run a PID loop on the difference between desired and actual fin temperature.   The overall gain or correction term would be the sum of the PID gain and the feed-forward term.

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 4 of 19
(3,431 Views)

Kevin, thanks for taking the time to respond. Let me try to better explain the situation. 

I have a wind tunnel that is closed loop and the fan motor is inside the flow, this generates heat based on the operating speed of the fan which is more or less constant for a given test. There is a heat exchanger downstream of the fan to remove the fan's added heat from the system and bring it back down to some stable temperature which is not critical what the actual temperature is as long as its stable. The wind tunnel has a breather vent that equalizes the pressure inside the tunnel with ambient pressure/temperature. The controller I am developing needs to be able to compensate for a change in heat input into the system by controlling the flow rate of the coolant through the heat exchanger. As I mentioned before, I need to maintain a constant temperature for a given flow condition, i.e. constant fan speed and given ambient temperature, by changing the heat exchanger flow rate. I would expect the controller to "see" a sudden change in temperature slope and ramp up the flow rate until the temperature stays constant then slowly drop back to maintain that temperature.

0 Kudos
Message 5 of 19
(3,406 Views)

This sounds like a system where control will depend on a good thermodynamic model.

 

Is constant fin temperature alone really a sufficient proxy for the control you want over the system?  I'm no expert in the field but it doesn't seem to provide all the info you might need.   

 

Basically, it seems to me that you should be doing a *heat* balance rather than a pure temperature control.  That'd definitely require some system model knowledge, but I recognize that it might also require additional sensing that isn't currently feasible to integrate.

 

I'd be wanting to measure and control something like heat removal rate at the exchanger, based on fluid flow rate and delta temp from inlet to outlet.

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 6 of 19
(3,404 Views)