• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

PI controller for PWM fans

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.


New Member
Oct 23, 2016
The requirements

I want to control PWM fans to maintain some HDDs in a server at about 35°C, the absolute value isn't critical, however I want the temperature to be stable regardless of the ambiant temperature (within reasonable limits of course, if the ambiant temperature is 40 °C then obviously it can't work).

I already designed a controller based on a LM35 (which will be attached to the case of one of the drives) but it was proportional only. Then I modified it to add an integral term to avoid any steady-state error (mainly due to the ambiant temperature changes).

The circuit

U1:A is the error amplifier
U1:B is the triangle wave generator (I know it'll not generate a perfect triangle signal, it's ok for me)
U1:C is the final comparator who generate the PWM signal (not connected because it doesn't matter for now)
U1:D is the PI filter

The problems

1) I don't know how to chose the values for R9, R10 and C3 (they're just placeholder for now) because all I can find on PI(D) controllers is for software controllers (and, no, I don't want to use an arduino or any other MCU).

2) I don't know how I can control the Kp and Ki parameters independently and what their values should be for this application.

3) I'm not sure of the components arrangement around U1:D.

NB: The drives have a huge thermal inertia so I guess the loop will probably be very stable without too much tuning, but if someone can confirm it would be great. Minimizing system settling time isn't a concern at all here.

Thanks to anyone who can help :)