I've built a microcontroller based thermostat that I am using to control my home HVAC system. The actual programming and physical assembly has been straightforward. I'm using DS18B20 sensors, so I have far more precision available than I actually need. I take a sample once a second from the sensors.
What I'm trying to figure out is what the appropriate value for hysteresis and averaging period for temperature measurements are. Hysteresis is pretty easy to implement. I have a value of 1.33 F presently, meaning I turn off the AC when the temperature reaches 1.33 F below my set temperature. I'm using an exponential weighted moving average for the temperature value. This is because I don't have much RAM available. I used the typical
alpha = 2/(N+1) with
N=360 for an approximately six minute averaging period.
The combination of the above two values seems to have produced a system that behaves acceptably. Initial experiments with
N=60 for the exponential weighted moving average resulted in a system that cycled on and off very fast.
Are there any industry standards for implementing things like this? My goal is to avoid short cycling the system. I live in a net cooling climate if that matters. Also my system isn't terribly oversized. In the peak heat of the summer the system needs to run greater than an 85% duty cycle to keep the house cool.