T
I've been making my house smarter for a few years now and one fundamental part of it is controlling the heating. For the past 2 years I've been using a pretty simplistic solution where I would just monitor the Setpoint and turning the heat up/down depending on weather the setpoint has been reached or not (+ some hysteresis)
However since it constantly overshoots or results in warm house but cold radiators, I've decided I need a PID controller to keep things stable.
So I've written up a controller using what seems to be a great set of articles here - http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/
and have been trying to tune it while going over this site - http://controlguru.com/
Let me describe my heating system:
It's a radiator based central heating system with solid fuel boiler.
The boiler heats water in a 500l accumulation tank.
The radiators do not have individual thermostats, so they are controlled all as one, via a 3T mixing valve.
The mixing valve takes hot water from the accumulation tank and return water from the radiators and send the result back into the radiators.
I've always treated the system as a two-step thing. I'm not trying to control the valve position directly from the room temperature. Instead I have another controller set up for the 3T valve that is responsible for keeping the radiator temperature at a setpoint value.
And then the room temperature controller adjusts the 3T valve controller setpoint as needed.
And this is where the road bump comes in.
All guides and examples of PID control tuning i've found seem to assume a few things that do not hold true in my case.
First - change in Control Output(CO) is immediate (in my case the valve max travel time is 120sec)
Second - a fixed% in CO corresponds to a fixed Process Value(PV) (in my case the temperature of the mixed water depends on the temperature of the water in the accumulation tank as well as the temperature of the return water from the radiators)
Third - the Sampe Time is constant (in my case it would only be possible if the sample time was set to 120+ seconds as thats the max travel time for the valve. However thats insanely long sample time for a process where major the temperature changes can happen in seconds)
I've tried driving the 3T valve directly with PID controller output values as well as using the PID controller to only "nudge" the valve in the desired direction (currentPos + PID output where PID output is limited to -5 to 5) And I just can't seem to be able to get a working solution.
I'm gonna stop here as this is getting way longer than I planned.
Long story short - does anyone feel like helping a newbie out and giving a few suggestions?
However since it constantly overshoots or results in warm house but cold radiators, I've decided I need a PID controller to keep things stable.
So I've written up a controller using what seems to be a great set of articles here - http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/
and have been trying to tune it while going over this site - http://controlguru.com/
Let me describe my heating system:
It's a radiator based central heating system with solid fuel boiler.
The boiler heats water in a 500l accumulation tank.
The radiators do not have individual thermostats, so they are controlled all as one, via a 3T mixing valve.
The mixing valve takes hot water from the accumulation tank and return water from the radiators and send the result back into the radiators.
I've always treated the system as a two-step thing. I'm not trying to control the valve position directly from the room temperature. Instead I have another controller set up for the 3T valve that is responsible for keeping the radiator temperature at a setpoint value.
And then the room temperature controller adjusts the 3T valve controller setpoint as needed.
And this is where the road bump comes in.
All guides and examples of PID control tuning i've found seem to assume a few things that do not hold true in my case.
First - change in Control Output(CO) is immediate (in my case the valve max travel time is 120sec)
Second - a fixed% in CO corresponds to a fixed Process Value(PV) (in my case the temperature of the mixed water depends on the temperature of the water in the accumulation tank as well as the temperature of the return water from the radiators)
Third - the Sampe Time is constant (in my case it would only be possible if the sample time was set to 120+ seconds as thats the max travel time for the valve. However thats insanely long sample time for a process where major the temperature changes can happen in seconds)
I've tried driving the 3T valve directly with PID controller output values as well as using the PID controller to only "nudge" the valve in the desired direction (currentPos + PID output where PID output is limited to -5 to 5) And I just can't seem to be able to get a working solution.
I'm gonna stop here as this is getting way longer than I planned.
Long story short - does anyone feel like helping a newbie out and giving a few suggestions?