1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Electronics fan speed regulation: linear or exponential?

Discussion in 'Modding' started by mottl3y, 15 Dec 2006.

  1. mottl3y

    mottl3y What's a Dremel?

    Joined:
    1 Nov 2004
    Posts:
    156
    Likes Received:
    0
    Hi folks, long time no post.

    I've been looking around at DIY/home-made fan controllers. They all seem to change the speed of the fan vs. temperature in a linear fashion (when exponential seems more appropriate to me).

    I assume there is a particular reason for this, I'm just not sure what it is.

    Possible problems:
    -how on earth do you do exponentials on a PIC?
    -the voltage range used to control a fan is too small to necessitate anything other than linear.

    Thanks for your help!

    m.
     
  2. hydro_electric_655

    hydro_electric_655 Dremelly Dude

    Joined:
    13 Jul 2006
    Posts:
    1,492
    Likes Received:
    0
    Ya you got the second on eright. You couldn't have really any temp var. and yo uwould end up with super high voltage which you ahve a limited range.
     
  3. Xiachunyi

    Xiachunyi What's a Dremel?

    Joined:
    3 Nov 2003
    Posts:
    1,404
    Likes Received:
    0
    Think of it this way, how do you perform multiplication using only addition? Just perform successive addition.

    How do you perform exponentiation? Just perform successive multiplication or... successive addition in groups.
     
  4. fat-tony

    fat-tony What's a Dremel?

    Joined:
    26 Mar 2006
    Posts:
    23
    Likes Received:
    0
    If you're ok with powers of 2, you can use the bitshift << operator.
     
  5. cpemma

    cpemma Ecky thump

    Joined:
    27 Nov 2001
    Posts:
    12,328
    Likes Received:
    55
    You're looking at this from the wrong angle. With a temperature-controlled environment, it takes a fan speed/voltage/flow of X to produce equilibrium at temperature T.

    PC fan controllers are a compromise, they don't try to hold the temperature steady whatever the heat being produced, they'll let it creep up to a still-safe level by which temperature the cooling device is running at full speed.

    So you need control such that the fan will still start at minimum temp and be full speed at maximum temp. Roughly linear in between may give the most pleasing overall noise relationship, though it might be generally quieter under "normal" use to ramp the speed up more gently in the first half of the temperature curve then rapidly at higher temperature - an exponential curve as you say. It's just not easy unless you use a uPC.
     
  6. OtakuHawk

    OtakuHawk What's a Dremel?

    Joined:
    30 Apr 2003
    Posts:
    666
    Likes Received:
    0
    I find it's just more effective to get 120mm fans that are tolerably quiet at full speed. :D
     
  7. Hazer

    Hazer In time,you too will be relixalated

    Joined:
    14 Apr 2003
    Posts:
    957
    Likes Received:
    2
    First: You can do floating point math routines on a pic. Dont sell it short just because its 8 bit.

    Now here's the real answer:
    As said, temperature control is not an absolute. You have system constraints. What would be most apropriate for a dynamic control would be a PID system. In order to do this, you have to look at what your system is. Your fan control is a voltage level between say 7-12Vdc (7-10.5Vdc if you use an adjustable regulator). Your system creates heat dynamically, meaning it can produce more heat when the CPU is under load. Your fans only have so much efficiency.

    To start, you measure the temperature for when your CPU is at full load and your fans are at maximum speed. Then bring down the load of the CPU and measure the temperature again. This will give you your temperature range. From there, it is possible to make a PID control scheme. If you plan to use a PIC, there is an appnote on the Microchip website that explains in detail how to do a PID system.

    Its alot of work, but its the right way to control a dynamic system.
     

Share This Page