I currently have four 12V 6A peltiers connected to PID's, heatsinks, a power supply and I use Labview program to control them. What I want to achieve is changing the temperature of the Peltier devices from 35 degrees C to 15 degrees C under 10 seconds. It seems like Peltier devices can't keep up with the changes in voltage, always follow with a delay and reach the desired temperature a little bit later than I want. I need suggestions for this. What causes this delay? With what kind of equipment, input changes I can fix the problem? How to decrease the temperature change time in Peltier devices?
A lot of things come into my mind:
- where do you measure the temperature? Is your control target the peltier temperature, the heatsink temperature or something else (air temperature)? The farther away the target temperature is in the chain, the more thermal capacitance and resistance you have in the way, the slower the temperature change.
If you really want to control the peltier temperature, then place the temperature sensor on the peltier.
If you want to control the air temperature, then place the sensor there on the right spot, but don't be surprised, that it is going to be slower.
- thermal capacitances: mass needs time to cool down, if you can reduce the mass of the heatsink or the thing you want to cool down, you should be faster
- you can decrease thermal resistance by applying thermal paste or similar thermally conductive substances between the surfaces
- if you measure air temperature, you might need to get the air moving (fan)
- if the target temperature is close to the peltiers, by that I mean that the delay is low enough, you might be faster with an on/off control - be careful though, it might result in overshoots/undershoots
- you could try tune the PID parameters, but you won't be faster than with the on/off control, so that's your theoretical maximum with this setup and power
- if you want to control the air temperature, you might get lower thermal resistance between air and heatsink, if you increase the heatsink surface area
- if nothing else works, you might have to apply more peltier elements
Thermal inertia. You need to add up the heat capacities of whatever you are controlling, including the controlled sides of the Peltier modules themselves. That'll give you some figure in joules/Kelvin.
Divide that by your heat pumping capacity in W (Joules/second) - which varies at different temperatures and thermal gradients - and you'll get a thermal slew rate (in Kelvin/second).
Naturally the uncontrolled side (heatsink, whatever) needs to be rated to absorb both this pumped power AND the pumping power (the electrical power you supply, converned to heat). That affects its temperature, and thus the thermal gradient, and thus the pumping power available. See your Peltier's datasheet...
Or, from a desired thermal slew rate, and the available heat pumping capacity from your Peltier's datasheets, derive a maximum heat capacity to be controlled. (Then, from the specific heat capacity of the materials concerned, calculate their maximum mass. If it's less than the mass of your Peltiers and the device to be controlled, you need to re-think your approach).
EDIT : In short, at the moment, I don't suspect the PID controller is the problem, so tuning it won't help. I suspect the cooling system doesn't have the power required to exercise the control authority being asked, even when full cooling is commanded.
When you can switch the control input to "full cooling" and get 2K/second or more (20K in 10 seconds) - or you revise the demand rate to what IS achievable - then come back to the controller.