3 ms·
PID is very simple control loop that will show over/undershoot every time there is external change (for example somebody opens a window) and will take a long ti
by lmilcin 6y ago
PID is very simple control loop that will show over/undershoot every time there is external change (for example somebody opens a window) and will take a long time to settle when disturbed.
I would use a simple model of the room (as a thermal mass with three components -- heater, air and walls -- that heat up / cool down / exchange energy at different rates).
Then I would run moving horizon estimator to predict future effect of turning on/off the heating system (for example, if I turn it off now, what will be the final temperature before it starts to drop again?)
Then you include Kalman filters to discover basic parameters of the model and then update them as system change (for example external temperature changes) so that predictions of the model are accurate.
You can even monitor the parameters of the model and response of the system and recognize different situations like open doors, windows, etc.
For example, I have made similar for my dumb espresso machine and by monitoring parameters of the model I can detect boiler scale buildup and then I can detect whether I have cleaned all scale from the boiler or there is still some of it left. It is all very simple because there are two parameters of the system: thermal mass and delay from when the heater is engaged to when the water has reached its temperature. By detecting that thermal mass has decreased and that the delay has increased it can automatically tell there is scale buildup.