Home Forums PID Control / Tuning Overshooting Incubator

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • MCrooks
    Participant
    Post count: 1

    Hello,

    I’ll start be giving you a rundown of the set up. I have built a incubator for quail and chicken eggs. Its a thick walled foam box with the heating pad from a water bed as the heat source. The osPID is the heart of the system the a K-type thermo couple. Ideally with the eggs in the box the PID will bring it up to Temp then hold there indefinitely.

    I spent the better part of last weekend figuring out the system doing a dry run. It took some tome to fine tune but I got it to bring the Temp to 99.5 degrees in the box and hold it there. I’m not sure why other then possibly the quality of the thermocouple but to achieve this I had a set point of 81.1. The temp(99.5) was verified with three individual thermometers separate from the system. I also ran the auto tune witch changed the parameters in the config tab quite a bit. Once I had it tuned the relay would only turn on about a dozen times every 15-20 minutes.

    So today I picked up two dozen quail eggs and popped them in and fire it up thinking everything was good to go. Right off the bat the relay was continuously opening and closing every second. I figured this was normal as it was coming up to temp. I came back ten minutes later it was still feverishly opening and closing the the input temp had risen to 98.3. I opened it immediately to vent heat and begin trouble shooting. For what ever reason once it hits set point it won’t turn off. I tried setting the set point lower and still no change in cycles. I changed the output timing to 10 seconds and now it continuously opens and closes every ten seconds still way overshooting the set point.

    If anyone can help I would greatly appreciate it I’ve got to get these eggs going in the next 36 hours or they will not hatch-out.
    Please Help & Thank you in advance!

    Best
    Matt

    Brett
    Keymaster
    Post count: 101

    Sorry to hear you’re having problems, a couple of things to note:

    • on the pid display, take a look at the value of the Output. (“O:….”) even if the output value is really low, the relay can make quite a racket. by default it has a 5 second window that it uses, so even if the output is 1%, you’ll hear a little blip every 5 seconds as the output turns on and off for 50ms.
    • It’s common for the process to behave differently when under load then when empty; the rules are different. It’s sort of like taking a driver who’s used to driving a truck and putting him in a racecar, or vice-versa.
    • Super-insulated processes are actually very hard to heat with pid. The pid algorithm is linear, which means that it thinks that the process behaves the same way going up as it does going down. Your set-up is not like this at all. This would explain your crazy overshooting. The pid is expecting that it can back off on the output and the temperature will come right back down as fast as it was going up.

    some possible solutions:

    • Intentionally remove some of the insulation. Counter-intuative I know, but this will allow the controller to truly be able to back off.
    • Whatever your values of Kp, Ki, Kd, divide them by 10. This will make the controller way more conservative, and should let you rise up more slowly, although there will still probably be some overshoot if it’s still well-insulated
    • A little more complicated but the most likely to give you what you want: ramp the set-point. Either by hand, or using the built-in setpoint profile feature. slowly raising the setpoint from room temp to 99.5 will keep the PID from getting too crazy, and will ensure that you get smoothly from point A to point B
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.