I am preparing to build a beer-brewing tank that will be temperature controlled. The goal is to keep the vessel at a very steady 72*F. Depending on the time of year, this might require heating and/or cooling 24 hours per day, or heating during the night and cooling during the day. Since the only heat load on the vessel is the heat leakage through its insulation, the total amount of heat that needs to be pumped is fairly low. This might be a good application for a Peltier heat pump since the heat load is low and the heat pump direction might need to be changed often.
As I mentioned in my aquarium chiller post, the Peltier module must not be controlled by PWM (pulse width modulation) or on/off thermostatic control. During the 'off' part of the cycle, heat will flow backward through the Peltier device and decrease efficiency almost to zero. Ideally, the PWM output should be smoothed with an L-C (inductor-capacitor) circuit to provide clean DC power to the device.
I happened to disassemble a thermoelectric refrigerator (and replaced its guts with a refrigerant-based system in a previous post) and had a 115VAC Peltier power supply and Peltier module. The power supply uses a TL494 IC to control a 115V->12V high-frequency transformer. The output of the transformer is smoothed with an L-C circuit. The TL494 is controlled by the output of a thermistor and digital thermostat, thus sending more power into the transformer when the fridge's temperature exceeds the thermostat set-point, and reducing power when the temperature falls below the set-point. I couldn't figure out the analog side of the circuit which had a few op-amps. Instead, I discovered that I could throttle the power supply by putting voltage on the TL494's DTC (dead-time control) pin, which wasn't used in the original circuit. Cool. So now I have an efficient power supply that I can throttle from 0V to 12.5V (full power) to the Peltier.
Next, I need a thermostat to control the power supply and also reverse the polarity of the Peltier device (to switch from heating to cooling). I thought about using an Arduino to do the whole thing: sense the temperature, provide a UI with LCD and buttons, process the PID loop, and send output to the power supply. My biggest worry was the UI. There are actually a lot of parameters in a PID loop, and I didn't feel like writing code to make all of them user-selectable. I also had another Eurotherm 2132 PID controller (same as the aquarium project) which I really like. I decided to use the Eurotherm and build a circuit to convert its output into a control signal for the power supply.
The Eurotherm has two outputs, a relay and a driver output for an external solid-state relay. I removed its internal relay and directed the relay's coil wire connections to the Eurotherm's rear terminals. I then used an optoisolator to interface the Eurotherm's floating outputs to the rest of my signal-converter circuit. The Eurotherm can be configured so that its output 'cycle' for each output is 1 second. Thus, it essentially outputs a PWM signal at 1Hz for cooling, and another 1Hz PWM signal for heating. I wrote a little code for an Atmel AVR ATMega8 that reads the two control signals from the Eurotherm and outputs a voltage that controls the Peltier power supply. It does this by generating high-frequency PWM and smoothing it with a simple R-C low-pass filter. The current draw is very low. The AVR also controls an NPN transistor that drives a DPDT relay. The relay will reverse the polarity of the Peltier device.
All of the above-mentioned circuitry is crammed into an acrylic box that I made for this project (left). The Peltier module has a small heatsink and a large heatsink with two fans (right).
I modified the power supply (by removing a fuse, and adding a fan), and tested it with two Peltier devices hooked in parallel. It seemed fine at 12.5V and 7A.
The next step is to mount the Peltier devices onto the brew tank and test it out.
The tank will hold 5 gallons. For thermodynamic analysis, I will assume it's water. So, that's about 20 liters, and water has a specific heat of 4.2J/g*C, so the tank will require 4.2(20)(1000)=84KJ to change 1*C. If the Peltiers are consuming 12.5(7)=88W, and are 50% efficient, they will be pumping about 44W (in cooling mode), which is 44J/s.
In order to change the tank's temperature by 1*C, the system will need 84000/44 = 1900 seconds, or 30 minutes. This is good and bad. The good news is that the tank will remain very stable, as it is not in danger of being quickly influenced by the Peltier. The bad news is that the tank must start out fairly close to the target temperature, or else it will take a long time to be regulated by the system.