systems and methods for estimating a time to cool down or warm up a building zone from a temperature setback condition are provided. A described method includes determining, by a controller for the building zone, at least one of a cooling demand for the building zone and a heating demand for the building zone for a time period corresponding to the temperature setback condition. The method further includes estimating a return time using at least one of the cooling demand and the heating demand. The return time is the time to cool down or warm up the building zone from the temperature setback condition.

Patent
   RE48574
Priority
Dec 16 2013
Filed
Aug 22 2019
Issued
Jun 01 2021
Expiry
Dec 16 2033
Assg.orig
Entity
Large
0
12
window open
0. 22. A controller for hvac equipment that operates to cool down or warm up a building zone, the controller comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
monitoring a control signal provided from the controller to the hvac equipment during a time period corresponding to a temperature setback condition;
estimating a return time as a function of one or more values of the control signal provided to the hvac equipment, wherein the return time is an amount of time required to cool down or warm up the building zone from the temperature setback condition; and
adjusting the control signal to cause the hvac equipment to begin cooling down or warming up the building zone at a start time based on the return time, the start time prior to a time of next scheduled occupancy for the building zone.
0. 34. A controller for hvac equipment that operates to cool down or warm up a building zone, the controller comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving a user selection between a level of comfort and a level of energy savings for the building zone;
adjusting an estimated return time based on the user selection by increasing the estimated return time in response to a user selection of the level of comfort or decreasing the estimated return time in response to a user selection of the level of energy savings, wherein the estimated return time is an estimated amount of time required to drive a temperature of the building zone to a temperature setpoint from a temperature setback condition; and
operating the hvac equipment to begin cooling down the building zone or warming up the building zone at a start time based on the estimated return time.
0. 28. A controller for hvac equipment that operates to cool down or warm up a building zone, the controller comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
monitoring an output signal provided from the controller to the hvac equipment during a time period corresponding to a temperature setback condition;
using the output signal to determine at least one of a cooling demand for the building zone or a heating demand for the building zone for the time period corresponding to the temperature setback condition;
determining a start time at which to begin cooling down the building zone or warming up the building zone using an estimated return time based on the cooling demand or the heating demand; and
operating the hvac equipment to begin cooling down the building zone or warming up the building zone at the start time prior to a time of next scheduled occupancy for the building zone.
18. A method for adjusting an estimated time to cool down or warm up a building zone from a temperature setback condition, the method comprising:
receiving a user selection between a level of energy savings and a level of comfort for the building zone;
calculating an estimated deviation of a return time prediction error using a difference between an estimated return time and an actual return time;
calculating a correction factor based on the user selection and the estimated deviation of the return time prediction error, wherein the user selection defines a multiplier for the estimated deviation of the return time prediction error; and
adjusting the estimated return time by applying the correction factor to the estimated return time, wherein the return time is the time to cool down or warm up the building zone from the temperature setback condition;
using the adjusted estimated return time to transition into a cool down state or a warm up state prior to a time of next scheduled occupancy for the building zone; and
operating hvac equipment to cool down the building zone in the cool down state or warm up the building zone in the warm up state.
21. A system for estimating a time to cool down or warm up a building zone from a temperature setback condition, the system comprising:
hvac equipment that operate operates to cool down or warm up the building zone; and
a controller configured to:
monitor an output signal provided from the controller to the hvac equipment during a time period corresponding to the temperature setback condition;
use the output signal from the controller to determine at least one of a cooling demand for the building zone and a heating demand for the building zone for the time period corresponding to the temperature setback condition;
estimate a return time using at least one of the cooling demand and the heating demand, wherein the return time is the time to cool down or warm up the building zone from the temperature setback condition;
calculate an estimated deviation of a return time prediction error using a difference between the estimated return time and an actual return time;
calculate a correction factor based on a user selection and the estimated deviation of the return time prediction error, wherein the user selection defines a multiplier for the estimated deviation of the return time prediction error;
use the estimated return time to transition into a cool down state or a warm up state prior to a time of next scheduled occupancy for the building zone; and
operate the hvac equipment to cool down the building zone in the cool down state or warm up the building zone in the warm up state.
1. A method for estimating a time to cool down or warm up a building zone from a temperature setback condition, the method comprising:
monitoring an output signal from a controller for the building zone during a time period corresponding to the temperature setback condition, wherein the output signal is provided from the controller to hvac equipment that operate operates to cool down or warm up the building zone;
using the output signal from the controller to determine, by the controller for the building zone, at least one of a cooling demand for the building zone and a heating demand for the building zone for the time period corresponding to the temperature setback condition;
estimating a return time using at least one of the cooling demand and the heating demand, wherein the return time is the time to cool down or warm up the building zone from the temperature setback condition;
calculating an estimated deviation of a return time prediction error using a difference between the estimated return time and an actual return time;
calculating a correction factor based on a user selection and the estimated deviation of the return time prediction error, wherein the user selection defines a multiplier for the estimated deviation of the return time prediction error;
using the estimated return time to transition into a cool down state or a warm up state prior to a time of next scheduled occupancy for the building zone; and
operating the hvac equipment to cool down the building zone in the cool down state or warm up the building zone in the warm up state.
2. The method of claim 1, further comprising:
identifying a current temperature of the building zone; and
estimating the return time using the current temperature of the building zone and at least one of the cooling demand and the heating demand.
3. The method of claim 1, further comprising:
comparing the estimated return time with a difference between a current time and a time of next scheduled occupancy for the building zone; and
transitioning from an unoccupied state into at least one of the cool down state and the warm up state in response to the estimated return time being greater than or equal to the difference between the current time and the time of next scheduled occupancy.
4. The method of claim 1, wherein determining at least one of the cooling demand and the heating demand comprises:
filtering the output signal from the controller using a signal filter to determine at least one of the cooling demand and the heating demand, wherein at least one of the cooling demand and the heating demand is a function of the output signal.
5. The method of claim 4, wherein the signal filter is at least one of: an analog filter, a digital filter, a low pass filter, a band pass filter, a smoothing filter, a time window filter, a normalizing filter, and an averaging filter; and
wherein the function of the output signal from the controller is at least one of: a last value of the controller output signal, an average of the controller output signal, a normalized value of the controller output signal, an integral of the controller output signal, and a transformation of the output signal from the controller.
6. The method of claim 4, wherein at least one of the cooling demand and the heating demand is an exponentially weighted moving average based on the output signal from the controller for at least a portion of the time period corresponding to the temperature setback condition.
7. The method of claim 1, wherein determining at least one of the cooling demand and the heating demand comprises:
identifying the output signal from the controller for the building zone for at least a portion of the time period corresponding to the temperature setback condition;
calculating a normalized controller output by comparing the output signal from the controller with a controller output that provides maximum cooling or maximum heating for the building zone; and
determining an exponentially weighted moving average of the normalized controller output using the calculated normalized controller output and a normalized controller output for a previous sampling time.
8. The method of claim 1, wherein the return time is estimated using an empirical model having one or more model parameters learned from previous data, wherein the estimated return time is a function of the one or more learned model parameters.
9. The method of claim 8, further comprising:
initializing values for the one or more model parameters to provide default parameters for the empirical model, wherein at least one of the model parameters is initialized to a non-zero value.
10. The method of claim 8, wherein the empirical model is at least one of: a statistical model, a parametric model, a regression model, a neural network model, a state space model, and a fuzzy logic model.
11. The method of claim 1, further comprising:
determining the return time prediction error, wherein the return time prediction error is a difference between the estimated return time and the actual return time;
estimating the deviation of the return time prediction error using a plurality of return time prediction errors; and
correcting the estimated return time by adding a function of the estimated deviation to the estimated return time.
12. The method of claim 11, further comprising:
determining the multiplier for the estimated deviation of the return time prediction error, wherein the multiplier is based on a probability of achieving an occupied setpoint temperature at a time of occupancy; and
calculating the function of the estimated deviation of the return time prediction error by multiplying the estimated deviation of the return time prediction error by the determined multiplier.
13. The method of claim 1, further comprising:
receiving the user selection between a level of energy savings and a level of comfort for the building zone, wherein the user selection corresponds to a probability of achieving an occupied setpoint temperature at a time of occupancy;
calculating the correction factor based on the user selection; and
adjusting the estimated return time by applying the correction factor to the estimated return time.
14. The method of claim 1, further comprising:
comparing a measured temperature of the building zone with an offset temperature setpoint, wherein the offset temperature setpoint is at least one of a heating setpoint minus a temperature offset and a cooling setpoint plus the temperature offset;
updating learned model parameters of an empirical model for estimating the return time in response to at least one of: the measured temperature of the building zone being less than the heating setpoint minus the temperature offset, and the measured temperature of the building zone being greater than the cooling setpoint plus the temperature offset.
15. The method of claim 14, wherein the measured temperature of the building zone that is compared with the offset temperature setpoint is at least one of: a temperature of the building zone measured at a beginning of a warm up period, and a temperature of the building zone measured at a beginning of a cool down period.
16. The method of claim 14, wherein updating the learned model parameters of the empirical model comprises:
calculating updated model parameters using at least one of: partial least squares regression, ridge regression, principal component regression, weighted least squares regression, ordinary least squares regression, least mean linear regression, and exponentially weighted regularized least squares regression.
17. The method of claim 14, further comprising:
determining whether an updated model parameter has a value that violates a constraint condition, wherein the constraint condition is based on physical realities expected values of parameters of the empirical model; and
setting the updated model parameter to a value that satisfies the constraint condition in response to a positive determination.
19. The method of claim 18, wherein adjusting the estimated return time comprises:
increasing the estimated return time in response to a user selection of a level of comfort for the building zone; and
decreasing the estimated return time in response to a user selection of a level of energy savings for the building zone.
20. The method of claim 18, wherein calculating a correction factor based on the user selection comprises:
identifying a probability of achieving an occupied setpoint temperature at a time of occupancy, the probability corresponding to the user selection; and
using the identified probability of achieving the occupied setpoint temperature at the time of occupancy to determine the correction factor.
0. 23. The controller of claim 22, wherein estimating the return time comprises:
determining at least one of a cooling demand for the building zone or a heating demand for the building zone as a function of the one or more values of the control signal provided to the hvac equipment; and
estimating the return time based on the cooling demand or the heating demand.
0. 24. The controller of claim 23, wherein determining the cooling demand or the heating demand comprises:
generating one or more normalized values of the control signal by comparing the one or more values of the control signal to a value of the control signal that provides maximum cooling or maximum heating for the building zone; and
calculating an average of the one or more normalized values of the control signal.
0. 25. The controller of claim 22, wherein the return time is estimated without requiring a measurement of an outside air temperature.
0. 26. The controller of claim 22, wherein the return time is an estimated amount of time required to drive a temperature of the building zone to a temperature setpoint from the temperature setback condition;
the operations further comprising determining the start time at which to begin cooling down the building zone or warming up the building zone by subtracting the return time from a time at which the temperature setpoint is to be achieved.
0. 27. The controller of claim 22, the operations further comprising:
receiving a user selection between a level of comfort and a level of energy savings for the building zone; and
adjusting the return time based on the user selection.
0. 29. The controller of claim 28, wherein determining the start time comprises:
estimating the return time based on the cooling demand or the heating demand, wherein the return time is an amount of time required drive a temperature of the building zone to a temperature setpoint from the temperature setback condition; and
calculating the start time by subtracting the return time from a time at which the temperature setpoint is to be achieved.
0. 30. The controller of claim 28, wherein the cooling demand or the heating demand is estimated without requiring a measurement of an outside air temperature.
0. 31. The controller of claim 28, wherein the cooling demand or the heating demand for the building zone is determined as a function of one or more values of a control signal provided to the hvac equipment.
0. 32. The controller of claim 28, wherein determining the cooling demand or the heating demand comprises:
obtaining one or more values a control signal provided to the hvac equipment during the time period corresponding to the temperature setback condition; and
calculating the cooling demand or the heating demand as a function of the one or more values of the control signal.
0. 33. The controller of claim 28, the operations further comprising:
receiving a user selection between a level of comfort and a level of energy savings for the building zone; and
adjusting the start time based on the user selection.
0. 35. The controller of claim 34, wherein the user selection corresponds to a probability that the temperature of the building zone will reach the temperature setpoint at or before a time of occupancy of the building zone.
0. 36. The controller of claim 34, the operations further comprising estimating the return time based on at least one of a cooling demand for the building zone or a heating demand for the building zone for a time period corresponding to the temperature setback condition.
0. 37. The controller of claim 34, the operations further comprising estimating the return time as a function of one or more values of a control signal provided to the hvac equipment during a time period corresponding to the temperature setback condition.
0. 38. The controller of claim 34, wherein the return time is estimated without requiring a measurement of an outside air temperature.
0. 39. The controller of claim 34, the operations further comprising calculating the start time by subtracting the estimated return time from a time at which the temperature setpoint is to be achieved.
0. 40. The controller of claim 34, wherein:
the time period corresponding to the temperature setback condition is a time period during which the building zone is unoccupied; and
the time at which the temperature setpoint is to be achieved is a beginning of a time period during which the building zone is occupied.

where ūc is an indication of the cooling demand for building zone 40 based on the controller output signal ut during unoccupied state 402 (e.g., an EWMA of the controller output signal) and where wc,1 and wc,2 are empirical parameters learned from previous data. The indication of the cooling demand ūc for building zone 40 may be calculated by occupied demand module 66 and stored in parameter module 62. The empirical model parameters wc,1 and wc,2 may be determined by parameter module 62, described in greater detail with reference to FIG. 13. The estimated cooling return time {circumflex over (τ)} may be a function of the empirical model parameters wc,1 and wc,2, the difference between the current temperature of the building zone and the occupied cooling setpoint (i.e., Tzone−Tc,set), and the cooling demand ūc for building zone 40 during unoccupied state 402. Return time estimator module 68 may store the estimated cooling return time {circumflex over (τ)}c in parameter module 62.

Return time estimator module 68 may estimate the heating return time {circumflex over (τ)}h using the equation
{circumflex over (τ)}h=wh,1(Th,set−Tzone)3+wh,2ūh
where ūh is an indication of the heating demand for building zone 40 based on the controller output signal ut during unoccupied state 402 (e.g., an EWMA of the controller output signal) and where wh,1 and wh,2 are empirical parameters learned from previous data. The indication of the heating demand ūh for building zone 40 may be calculated by occupied demand module 66 and stored in parameter module 62. The empirical model parameters wh,1 and wh,2 may be determined by parameter module 62, described in greater detail with reference to FIG. 13. The estimated heating return time {circumflex over (τ)}h may be a function of the empirical model parameters wh,1 and wh,2, the cube of the difference between the occupied heating setpoint and the current temperature of the building zone (i.e., (Th,set−Tzone)3), and the heating demand ūh for building zone 40 during unoccupied state 402. In some embodiments, the estimated heating return time {circumflex over (τ)}h is a function of the cube of the difference between the occupied heating setpoint and the current temperature of the building zone (Th,set−Tzone)3 whereas the estimated cooling return time {circumflex over (τ)}c is a function of the non-cubed difference between the current temperature of the building zone and the occupied cooling setpoint (Tzone−Tc,set). Return time estimator module 68 may store the estimated heating return time {circumflex over (τ)}h in parameter module 62.

Still referring to FIG. 10, unoccupied state module 54 is shown to include a return time corrector module 70. Return time corrector module 70 may correct the estimated return time {circumflex over (τ)} to generate a corrected return time τstart. Return time corrector module 70 may determine the corrected return time τstart using the estimated return time {circumflex over (τ)} and an estimated deviation {circumflex over (σ)} of the return time prediction error e. Prediction error e may be the absolute value of the difference between actual return time τ and estimated return time {circumflex over (τ)} (i.e., e=|{circumflex over (τ)}−τ|). For example, return time corrector module 70 may use the equation
τstart={circumflex over (τ)}+n{circumflex over (σ)}
to calculate the corrected return time τstart. The estimated return time {circumflex over (τ)} may be the estimated heating return time {circumflex over (τ)}h or the estimated cooling return time {circumflex over (τ)}c determined by return time estimator module 68. Return time corrector module 70 may retrieve {circumflex over (τ)}h and/or {circumflex over (τ)}c from parameter module 62 for use in calculating τstart.

Return time corrector module 70 may estimate the deviation {circumflex over (σ)} of the return time prediction error e using the difference between a previously-estimated return time {circumflex over (τ)}d (e.g., an estimated return time for a previous day) and an actual return time τd (e.g., the actual return time for the previous day). In unoccupied state 402, the estimated return time {circumflex over (τ)}d may be based on the temperature difference between the current temperature and the applicable setpoint temperature. In some embodiments, the deviation {circumflex over (σ)} of the return time prediction error e is a standard deviation of an average prediction error Δd. For example, {circumflex over (σ)} may be calculated using the equation

σ ^ = Δ ¯ d 2 π 1.25 Δ ¯ d
where Δd is an average (e.g., an arithmetic mean, an EWMA, etc.) of one or more prediction errors e. In other embodiments, {circumflex over (σ)} may be any other deviation metric of the average prediction error Δd (e.g., a variance, covariance, or other function or transformation of Δd other than the standard deviation). Average prediction error Δ may be calculated by cool down state module 56 and/or warm up state module 58, described in greater detail with reference to FIGS. 11-12.

Return time corrector module 70 may calculate the corrected return time τstart by adding a multiple n of the estimated deviation {circumflex over (σ)} to the estimated return time {circumflex over (τ)} (i.e., τstart={circumflex over (τ)}+n{circumflex over (σ)}). Advantageously, the value of the multiplier n can be adjusted (e.g., automatically, by a user, etc.) to increase or decrease the probability that the zone temperature will be within the occupied temperature setpoints at the time of occupancy. Higher values for n increase the probability of achieving the occupied setpoint temperature, but may result in a greater energy cost. For example, assuming that return time prediction errors are normally distributed, it is 50% likely that the occupied setpoint temperature will be achieved at the time of occupancy with a value of n=0. However, the likelihood that the occupied setpoint temperature will be achieved increases to 80% at n=0.842. The following table shows the probability of achieving the setpoint temperature at the time of occupancy for various values of n.

Probability n
  50% 0.000
  80% 0.842
  95% 1.645
  99% 2.326
99.9% 3.090

In some embodiments, return time corrector module 70 is configured to receive a user selection between a level of comfort and a level of energy savings for building zone 40. The user selection may be received via a user interface (e.g., a switch, a dial, a button, a slider, a touch sensitive panel, etc.) in communication with controller 30 and/or received electronically via communications interface 32. For example, the user interface may include a slider or switch movable between a “comfort” position and an “energy savings” position. A user may move the slider or switch between the two positions to adjust the probability of achieving the occupied setpoint temperature at the time of occupancy. The “comfort” position may correspond to higher values of n and a greater probability of achieving the setpoint temperature at the time of occupancy. The “energy savings” position may correspond to lower values of n and a lower probability of achieving the setpoint temperature at the time of occupancy. In other embodiments, a user may specify the desired probability (e.g., using a keyboard or other data entry device) and/or specify the value of n.

Return time corrector module 70 may be configured to calculate a correction factor based on the user selection. For example, return time corrector module 70 may determine a value for n based on the user input (e.g., based on a position of a user-operable switch or slider). Return time corrector module 70 may adjust the estimated return time {circumflex over (τ)} by applying the correction factor to the estimated return time {circumflex over (τ)}. For example, return time corrector module 70 may add the correction factor to the estimated return time as shown above (e.g., τstart={circumflex over (τ)}+n{circumflex over (σ)}), multiply the estimated return time by the correction factor, or otherwise adjust the estimated return time using the correction factor. Return time corrector module 70 may store the corrected return time τstart in parameter module 62.

Still referring to FIG. 10, unoccupied state module 54 is shown to include a return time comparison module 72. Return time comparison module 72 may compare the corrected return time τstart with the time remaining until the beginning of the next occupied period Tnext. If the corrected return time is greater than or equal to the time remaining until the next occupied period (i.e., τstart≥Tnext), return time comparison module 72 may determine that heating or cooling should be started in order to raise or lower Tzone to be within the occupied setpoint range by the time of occupancy. If the corrected return time is less than the time remaining until the next occupied period (i.e., τstart<Tnext), return time comparison module 72 may determine that heating or cooling should not be started until a later time.

Still referring to FIG. 10, unoccupied state module 54 is shown to include a variable update module 74. Variable update module 74 may be configured to update the current state parameter values in parameter module 62. For example, variable update module 74 may set unoccupied state status U to false in response to a determination (e.g., by return time comparison module 72) that heating or cooling should be started. Variable update module 74 may set either cool down state status C or warm up state status W to true, based on whether cooling or heating is required. In other embodiments, state transition module 52 determines whether the corrected return time is greater than or equal to the time remaining until the next occupied period (i.e., τstart≥Tnext) based on the values of τstart and Tnext stored in parameter module 62 and updates the current state parameter values at the beginning of the next time step.

In some embodiments, variable update module 74 may store one or more variables used to update the empirical model parameters wh,1, wh,2, wc,1 and wc,2. Variable update module 74 may store the one or more variables used to update the model parameters if the conditions for transitioning to cool down state 404 or warm up state 406 are satisfied. For example, if return time comparison module 72 determines that τstart≥Tnext variable update module 74 may store the current zone temperature Tzone (i.e., the zone temperature at the beginning of either cool down state 404 or warm up state 406), an indication of the heating demand ūh during unoccupied state 402, and/or an indication of the cooling demand ūc during unoccupied state 402. In some embodiments, variable update module 74 updates the variables used to update wh,1 and wh,2 upon a transition into warm up state 406 and updates the variables used to update wc,1 and wc,2 upon a transition into cool down state 404. Variable update module 74 may store the variables used to update the empirical model parameters in parameter module 62.

Referring now to FIG. 11, a block diagram illustrating cool down state module 56 in greater detail is shown, according to an exemplary embodiment. Cool down state module 56 may control system operation in cool down state 404. Cool down state module 56 may be activated (e.g., triggered, called, run, etc.) in response to a transition into cool down state 404 as described with reference to FIG. 4. Cool down state module 56 may operate HVAC system 12 to lower the zone temperature Tzone to the occupied cooling setpoint Tc,set. Cool down state module 56 is shown to include a cooling threshold module 76, an occupancy period comparison module 78, a cooling prediction error calculator 80, a cooling prediction error averager 82, and a variable update module 84.

Cooling threshold module 76 may monitor the zone temperature Tzone during cool down state 404. In some embodiments, cooling threshold module 76 determines whether the zone temperature Tzone is less than or equal to the occupied cooling setpoint Tc,set plus the temperature offset ∈ (i.e., Tzone≤Tc,set+∈). Cooling threshold module 76 may output and/or store an indication that transition condition 424 is satisfied in response to a determination that the zone temperature Tzone is less than or equal to the occupied cooling setpoint Tc,set plus the temperature offset ∈.

While operating in cool down state 404, occupancy period comparison module 78 may determine whether the next scheduled occupancy period has begun. Occupancy period comparison module 78 may output and/or store an indication that transition condition 426 is satisfied in response to a determination that the scheduled occupancy period has begun. As described with reference to FIG. 4, satisfying either of transition conditions 424 or 426 may cause a transition from cool down state 404 to normal state 408.

Still referring to FIG. 11, cool down state module 56 is shown to include a cooling prediction error calculator 80. Cooling prediction error calculator 80 may be configured to determine an amount of time spent in cool down state 404. The amount of time spent in cool down state 404 may be determined prior to transitioning into normal state 408. In some embodiments, the amount of time spent in cool down state 404 may be defined by a cool down state start time and a cool down state end time. The cool down state start time may correspond to the time at which cool down state module 56 begins cooling building zone 40 in an attempt to lower the zone temperature Tzone to the occupied cooling setpoint Tc,set. The cool down state end time may correspond to the time at which either of transition conditions 424 or 426 are satisfied. In some embodiments, the amount of time spent in cool down state 404 defines the actual cooling return time τc.

Cooling prediction error calculator 80 may determine the cooling prediction error ec by calculating the difference between the model estimated cooling return time {circumflex over (τ)}c and the actual cooling return time τc (e.g., ec=|{circumflex over (τ)}c−τc|). The model estimated cooling return time {circumflex over (τ)}c may be determined by unoccupied state module 54 as previously described with reference to FIG. 10. In some embodiments, the model estimated cooling return time used by cooling prediction error calculator 80 is calculated differently than the estimated return time determined by unoccupied state module 54. For example, in unoccupied state 402, the estimated return time may be based on the temperature difference between the current temperature and the applicable setpoint temperature. The estimated cooling return time used by cooling prediction error calculator 80 may be based on the temperature difference between the zone temperature at the beginning of cool down state 404 and the zone temperature at the end of cool down state 404.

Still referring to FIG. 11, cool down state module 56 is shown to include a cooling prediction error averager 82. Cooling prediction error averager 82 may calculate an average cooling prediction error Δc,d using a history of cooling return time prediction errors (e.g., for previous days d). In some embodiments, cooling prediction error averager 82 determines the average cooling prediction error Δc,d by calculating the EWMA of one or more cooling prediction errors ec. For example, cooling prediction error averager 82 may calculate the average prediction error Δc,d using the equation
Δc,d=Δc,d-1+α(|{circumflex over (τ)}c,d−τc,d|−Δc,d-1)
where Δc,d-1 is the previous value of the EWMA from a previous day or time step, {circumflex over (τ)}c,d is an estimate of the return time for a day d (without correction), τc,d is the actual return time for the day d, and α is the exponential smoothing constant (e.g., α=0.05, α=0.2, etc.). The estimated return time {circumflex over (τ)}c,d may be based on the actual temperatures at the beginning and end of cool down state 404.

In some embodiments, cooling prediction error averager 82 does not calculate the average cooling prediction error Δc,d for the first several return time predictions within an implementation threshold. For example, cooling prediction error averager 82 may not calculate Δc,d for the first five, ten, or other threshold number of days and/or return time predictions upon first implementation (e.g., the first five days of cooling, etc.). Not calculating Δc,d for the threshold number of days/predictions in the cooling mode may prevent the EWMA calculation from being biased with large return time prediction errors caused by inaccurate model parameters. After the threshold number of days/predictions has passed, the learned model parameters may be significantly more accurate and Δc,d can be calculated without biasing the average.

In some embodiments, cooling prediction error averager 82 determines the average prediction error Δc,d using an arithmetic mean of return time prediction errors e. The arithmetic mean may be calculated using the equation

Δ ¯ c , d = Δ ¯ c , d - 1 + 1 k ( τ ^ c , d - τ c , d - Δ ¯ c , d - 1 )
where k is the total number of days/predictions for which Δc,d has been calculated. In some embodiments, cooling prediction error averager 82 calculates Δc,d using the arithmetic mean for only the first
1/α
days and/or predictions after the threshold number of days/predictions for which Δc,d is not calculated. For example, at the beginning of a cooling season (e.g., a one-time event or whenever the memory of cooling prediction averager 82 is cleared), cooling prediction error averager 82 may not calculate Δc,d for the first five days. Then, after the five day non-calculation period has passed, cooling prediction error averager 82 may calculate Δc,d using the arithmetic mean method for the next twenty days (e.g., if α=0.05). Then, after the twenty day arithmetic mean period has passed, cooling prediction error averager 82 may calculate Δc,d using the EWMA method. As described above, return time corrector module 70 may use Δc,d to estimate the deviation {circumflex over (σ)} for the next cooling return time estimation.

Still referring to FIG. 11, cool down state module 56 is shown to include a variable update module 84. Variable update module 84 may update the current state parameter values in parameter module 62 (e.g., by setting cool down state status C to false and setting normal state status N to true) when the conditions for transitioning into normal state 408 are satisfied. In other embodiments, state transition module 52 determines whether the transition conditions are satisfied and updates the current state parameter values at the beginning of the next time step.

Referring now to FIG. 12, a block diagram illustrating warm up state module 58 in greater detail is shown, according to an exemplary embodiment. Warm up state module 58 may control system operation in warm up state 406. Warm up state module 58 may be activated (e.g., triggered, called, run, etc.) in response to a transition into warm up state 406 as described with reference to FIG. 4. Warm up state module 58 may operate HVAC system 12 to raise the zone temperature Tzone to the occupied heating setpoint Th,set. Warm up state module 58 is shown to include a heating threshold module 86, an occupancy period comparison module 88, a heating prediction error calculator 90, a heating prediction error averager 92, and a variable update module 94.

Heating threshold module 86 may monitor the zone temperature Tzone during warm up state 406. In some embodiments, heating threshold module 86 determines whether the zone temperature Tzone is greater than or equal to the occupied heating setpoint Th,set minus the temperature offset ∈ (i.e., Tzone≥Th,set−∈). Heating threshold module 86 may output and/or store an indication that transition condition 430 is satisfied in response to a determination that the zone temperature Tzone is greater than or equal to the occupied heating setpoint Th,set minus the temperature offset ∈. As described with reference to FIG. 4, satisfying transition condition 430 may cause a transition from warm up state 406 to normal state 408.

While operating in warm up state 406, occupancy period comparison module 88 may determine whether the next scheduled occupancy period has begun and/or ended. Occupancy period comparison module 88 may output and/or store an indication that transition condition 434 is satisfied in response to a determination that the scheduled occupancy period has both begun and ended. Satisfying transition condition 434 may cause a transition from warm up state 406 to unoccupied state 402.

Still referring to FIG. 12, warm up state module 58 is shown to include a heating prediction error calculator 90. Heating prediction error calculator 90 may be configured to determine an amount of time spent in warm up state 406. The amount of time spent in warm up state 406 may be determined prior to transitioning into normal state 408 and/or unoccupied state 402. In some embodiments, the amount of time spent in warm up state 406 may be defined by a warm up state start time and a warm up state end time. The warm up state start time may correspond to the time at which warm up state module 58 begins heating building zone 40 in an attempt to raise the zone temperature Tzone to the occupied heating setpoint Th,set. The warm up state end time may correspond to the time at which either of transition conditions 430 or 434 are satisfied. In some embodiments, the amount of time spent in warm up state 406 defines the actual heating return time τh.

Heating prediction error calculator 90 may determine the heating prediction error eh by calculating the difference between the model estimated heating return time {circumflex over (τ)}h and the actual heating return time τh (e.g., eh=|{circumflex over (τ)}h−τh|). The model estimated heating return time {circumflex over (τ)}h may be determined by unoccupied state module 54 as previously described with reference to FIG. 10. In some embodiments, the model estimated heating return time used by heating prediction error calculator 90 is calculated differently than the estimated return time determined by unoccupied state module 54. For example, in unoccupied state 402, the estimated return time may be based on the temperature difference between the current temperature and the applicable setpoint temperature. The estimated heating return time used by heating prediction error calculator 90 may be based on the temperature difference between the zone temperature at the end of warm up state 406 and the zone temperature at the beginning of warm up state 406.

Still referring to FIG. 12, warm up state module 58 is shown to include a heating prediction error averager 92. Heating prediction error averager 92 may calculate an average heating prediction error Δh,d using a history of heating return time prediction errors (e.g., for previous days d). In some embodiments, heating prediction error averager 92 determines the average heating prediction error Δh,d by calculating the EWMA of one or more heating prediction errors eh. For example, heating prediction error averager 92 may calculate the average heating prediction error Δh,d using the equation
Δh,d=Δh,d-1+α(|{circumflex over (τ)}h,d−τh,d|−Δh,d-1)
where Δh,d-1 is the previous value of the EWMA from a previous day or time step, {circumflex over (τ)}h,d is an estimate of the return time for a day d (without correction), τh,d is the actual return time for the day d, and α is the exponential smoothing constant (e.g., α=0.05, α=0.2, etc.). The estimated return time {circumflex over (τ)}h,d may be based on the actual temperatures at the end and beginning of warm up state 406.

In some embodiments, heating prediction error averager 92 does not calculate the average heating prediction error Δh,d for the first several return time predictions within an implementation threshold. For example, heating prediction error averager 92 may not calculate Δh,d for the first five, ten, or other threshold number of days and/or return time predictions upon first implementation (e.g., the first five days of heating, etc.). In some embodiments, heating prediction error averager 92 determines the average prediction error Δh,d using an arithmetic mean of return time prediction errors e. The arithmetic mean may be calculated using the equation

Δ ¯ h , d = Δ ¯ h , d - 1 + 1 k ( τ ^ h , d - τ h , d - Δ ¯ h , d - 1 )
where k is the total number of days/predictions for which Δh,d has been calculated. In some embodiments, heating prediction error averager 92 calculates Δh,d using the arithmetic mean for only the first
1/α
days and/or predictions after the threshold number of days/predictions for which Δh,d is not calculated. For example, at the beginning of a heating season (e.g., a one-time event or whenever the memory of heating prediction averager 92 is cleared), heating prediction error averager 92 may not calculate Δh,d for the first five days. Then, after the five day non-calculation period has passed, heating prediction error averager 92 may calculate Δh,d using the arithmetic mean method for the next twenty days (e.g., if α=0.05). Then, after the twenty day arithmetic mean period has passed, heating prediction error averager 92 may calculate Δh,d using the EWMA method. As described above, return time corrector module 70 may use {circumflex over (Δ)}h,d to estimate the deviation {circumflex over (σ)} for the next heating return time estimation.

Still referring to FIG. 12, warm up state module 58 is shown to include a variable update module 94. Variable update module 94 may update the current state parameter values in parameter module 62 by setting warm up state status W to false and setting normal state status N to true when the condition for transitioning into normal state 408 is satisfied (i.e., condition 430). Variable update module 94 may set warm up state status W to false and set unoccupied state status U to true when the condition for transitioning into unoccupied state 402 is satisfied (i.e., condition 434). In other embodiments, state transition module 52 determines whether the transition conditions are satisfied and updates the current state parameter values at the beginning of the next time step.

Referring now to FIG. 13, a block diagram illustrating parameter module 62 in greater detail is shown, according to an exemplary embodiment. Parameter module 62 is shown to include a parameter storage module 95, a model parameter initialization module 96, a model parameter update module 97, and a model parameter constraints module 98.

Parameter storage module 95 may be configured to store the various parameters and parameter values used by controller 30 to estimate the return time {circumflex over (τ)} and the corrected estimate of the return time τstart. For example, parameter storage module 95 may be configured to store values for variable inputs such as the occupied temperature setpoints Th,set and Tc,set and the unoccupied temperature setpoints Th,set,unocc and Tc,set,unocc. Parameter storage module 95 may store values for a current occupancy status O (e.g., true or false, based on a stored occupancy schedule), and/or a time to the next occupied period Tnext. The variable inputs may be specified by a user (e.g., heating and cooling setpoints), received from another system or process (e.g., a supervisory controller, another module of controller 30, etc.), or automatically calculated and stored by various modules of controller 30 (e.g., by state transition module 52, unoccupied state module 54, cool down state module 56, warm up state module 58, etc.).

Parameter storage module 95 may store one or more persistent variables that are calculated and/or set by various modules of controller 30. Persistent variables may include, for example, a previous occupancy status Oprev (e.g., true or false, based on an occupancy schedule) and one or more variables indicating the current operating state (e.g., unoccupied state status U, the cool down state status C, the warm up state status W, and the normal state status N). Unoccupied state module 54 may determine a corrected estimate of the time τstart required to cool down or warm up building zone 40. In various embodiments, the corrected estimate τstart may be stored in parameter storage module 95 or used without storing τstart along with the persistent variables.

Still referring to FIG. 13, parameter module 62 is shown to include a model parameter initialization module 96. Model parameter initialization module 96 may be configured to initialize values for the one or more learned model parameters wc,1, wc,2, wh,1, and wh,2 (e.g., to provide default parameters for the empirical model). In some embodiments, model parameter initialization module 96 initializes at least one of the model parameters to a non-zero value.

Model parameter initialization module 96 may initialize wc,1 by assuming that the cooling return time τc is approximately sixty minutes when the zone temperature Tzone is equal to the unoccupied cooling setpoint Tc,set,unocc. Assuming that wc,2=0, the initial value of wc,1 can be calculated using the equation

w c , 1 = τ c T zone - T c , set = 60 min T c , set , unocc - T c , set

Model parameter initialization module 96 may initialize wc,2 by assuming that the cooling return time τc is approximately six hours (i.e., 360 minutes) if the normalized controller output signal ūc is equal to its maximum value of one when cool down state 404 begins. Assuming that wc,1=0, the initial value of wc,2 can be calculated using the equation

w c , 2 = τ c u _ c = 3 6 0 1 = 360 min

Model parameter initialization module 96 may initialize the parameters used to predict the heating return time τh in the same manner as the parameters for cooling. For example, model parameter initialization module 96 may initialize wh,1 by assuming that the heating return time τh is approximately four hours (i.e., 240 minutes) when the zone temperature Tzone is equal to the unoccupied heating setpoint Th,set,unocc. Assuming that wh,2=0, the initial value of wh,1 can be calculated using the equation

w h , 1 = τ h ( T h , set - T zone ) 3 = 240 min ( T h , set - T h , set , unocc ) 3

Model parameter initialization module 96 may initialize wh,2 by assuming that the heating return time τh is approximately one day (i.e., 1440 minutes) if the normalized controller output signal ūh is equal to its maximum value of one when warm up state 406 begins. Assuming that wh,1=0, the initial value of wh,2 can be calculated using the equation

w h , 2 = τ h u _ h = 1 4 4 0 1 = 1440 min

Still referring to FIG. 13, parameter module 62 is shown to include a model parameter update module 97. Model parameter update module 97 may be configured to update the learned model parameters wc,1, wc,2, wh,1, and wh,2 based on previous data.

Model parameter update module 97 may retrieve one or more data values from parameter storage module 95 for use in updating the learned model parameters. For example, model parameter update module 97 may retrieve the previous values of the learned model parameters wc,1,d-1, wc,2,d-1, wh,1,d-1, and wh,2,d-1, where the “d−1” subscript denotes a model parameter value from a previous time step (e.g., the previous day). Model parameter update module 97 may retrieve one or more of temperature values Tzone,1,c and Tzone,1,h corresponding to the zone temperature at the beginning of the most recent cool down state 404 and the most recent warm up state 406, respectively. Model parameter update module 97 may retrieve one or more of temperature values Tzone,2,c and Tzone,2,h corresponding to the zone temperature at the end of the most recent cool down state 404 and the most recent warm up state 406, respectively. Model parameter update module 97 may retrieve one or more of ūc and ūh indicating the cooling demand and heating demand, respectively, of building zone 40 during the most recent unoccupied state 402. Model parameter update module 97 may retrieve the most recent measurement of the actual return time τ (e.g., stored by cool down module 56 and/or warm up module 58). In some embodiments, model parameter update module 97 also retrieves a regressor matrix P, described in greater detail below.

In some embodiments, model parameter update module 97 updates the model parameters in response to zone temperature Tzone being less than the heating setpoint minus the temperature offset (i.e., Tzone<Th,set−∈) at the beginning of warm up state 406 or greater than the cooling setpoint plus the temperature offset (i.e., Tzone>Tc,set+∈) at the beginning of cool down state 404.

In some embodiments, model parameter update module 97 uses a regression algorithm (e.g., a partial least squares regression, ridge regression, principal component regression, weighted least squares regression, ordinary least squares regression, least mean linear regression, exponentially weighted regularized least squares regression, etc.) to update the learned model parameters based on the data values retrieved from parameter storage module 95. For example, an exponentially weighted regularized least squares (EWRLS) regression process can be carried out using the following equations:

γ = 1 1 + λ - 1 uP d - 1 u T g = λ - 1 P d - 1 u T γ e = τ - uw d - 1 w d = w d - 1 + g e p d = λ - 1 P d - 1 - gg T γ
where τ is the most recent measurement of the actual return time, λ is a forgetting factor (e.g., λ=1, λ=0.98, etc.), u is a vector of current inputs, wd-1 is a vector of previous parameter weights, and Pd-1 is a matrix that summarizes previous regressor information. The values for wd-1 and Pd-1 are determined during a previous iteration of the regression process (e.g., the previous day). The vector u is given by
u=[u1 u2]
the vector of previous parameter weights wd-1 is given by

w d - 1 = [ w 1 , d - 1 w 2 , d - 1 ]
and the matrix Pd-1 is given by

P d - 1 = [ P 11 , d - 1 P 12 , d - 1 P 21 , d - 1 P 22 , d - 1 ]

Using the equations above, the prediction error e can be determined using the equation
e=τ−(u1w1,d-1+u2w2,d-1)
and the expressions for determining the updated parameter weights wd and the regressor matrix Pd can be expanded to yield

w 1 , d = w 1 , d - 1 + ( P 12 , d u 2 + P 11 , d - 1 u 1 ) e P 22 , d - 1 u 2 2 + 2 P 12 , d - 1 u 1 u 2 + P 11 , d - 1 u 1 2 + λ w 2 , d = w 2 , d - 1 + ( P 22 , d - 1 u 2 + P 12 , d - 1 u 1 ) e P 22 , d - 1 u 2 2 + 2 P 12 , d - 1 u 1 u 2 + P 11 , d - 1 u 1 2 + λ P 11 , d = ( P 11 , d - 1 P 22 , d - 1 - P 12 , d - 1 2 ) u 2 2 + P 11 , d - 1 λ λ ( P 22 , d - 1 u 2 2 + 2 P 12 , d - 1 u 1 u 2 + P 11 , d - 1 u 1 2 + λ ) P 12 , d = ( P 12 , d - 1 2 - P 11 , d - 1 P 22 , d - 1 ) u 1 u 2 + P 12 , d - 1 λ λ ( P 22 , d - 1 u 2 2 + 2 P 12 , d - 1 u 1 u 2 + P 11 , d - 1 u 1 2 + λ ) P 21 , d = P 12 , d P 22 , d = ( P 11 , d - 1 P 22 , d - 1 - P 12 , d - 1 2 ) u 1 2 + P 22 , d - 1 λ λ ( P 22 , d - 1 u 2 2 + 2 P 12 , d - 1 u 1 u 2 + P 11 , d - 1 u 1 2 + λ )

At startup, matrix P can be initialized (e.g., by model parameter initialization module 96) as

P 0 = [ 1 × 10 6 0 0 1 × 10 6 ]

The equations presented above are general and applicable for updating the parameter weights for both cooling and heating. However, vector u may vary based on whether the regression procedure is used to calculate cooling model parameters wc,1, wc,2 or heating model parameters wh,1, wh,2. For the cooling model, the input vector u is given by
uc=[δcūc]
where δc is the zone temperature at the beginning of cool down state 404 minus the zone temperature at the end of cool down state 404 (i.e., δc=Tzone,1,c−Tzone,2,c) and ūc indicates the cooling demand of building zone 40 during the most recent unoccupied state 402.

For the heating model, the input vector u is given by
uh=[δh3ūh]
where δh is the zone temperature at the end of warm up state 406 minus the zone temperature at the beginning of warm up state 406 (i.e., δh=Tzone,2,h−Tzone,1,h) and ūh indicates the heating demand of building zone 40 during the most recent unoccupied state 402. Model parameter update module 97 may store and/or output updated values for the learned model parameters wc,1, wc,2, wh,1, and wh,2 for use (e.g., by return time estimator module 68) in estimating the return time {circumflex over (τ)}.

Still referring to FIG. 13, parameter module 62 is shown to include a model parameter constraints module 98. Model parameter constraints module 98 may be configured to determine whether an updated parameter value has a value that violates a constraint condition. The constraint condition may be based on physical realities of the empirical model. For example, in the model {circumflex over (τ)}c=wc,1(Tzone−Tc,set)+wc,2ūc, both terms are expected to be greater than zero. For the first term wc,1(Tzone−Tc,set), a greater temperature differential (Tzone−Tc,set) is expected to result in a greater return time {circumflex over (τ)}c. Thus, the value of model parameter wc,1 is expected to be non-negative. For the second term wc,2ūc, a greater value for the zone cooling demand ūc is expected to result in a greater return time {circumflex over (τ)}c. Thus, the value of model parameter wc,2 is also expected to be non-negative. The same arguments can be made to explain why the parameters wh,1 and wh,2 are expected to be greater than or equal to zero in the example described above.

In some embodiments, parameter constraints module 98 imposes maximum value constraints on one or more of the learned model parameters. For example, parameter constraints module 98 may impose a maximum value of approximately twelve hours (i.e., 720 minutes) for the parameter wc,2 and a maximum value of two days (i.e., 2880 minutes) for the parameter wh,2.

If an updated parameter value violates a constraint condition, model parameter constraints module 98 may be configured to replace the parameter value with a value that satisfies the constraint condition. For example, if any of model parameters wc,1, wc,2, wh,1, and wh,2 have a negative value, model parameter constraints module 98 may replace the value with a zero value or a positive value. Model parameter constraints module 98 may constrain the model parameters to within expected and/or permissible values after each update of the parameters by model parameter update module 97.

In various embodiments, controller 30 provides several advantages over existing setback controllers. First, controller 30 may predict the return time using only the zone temperature Tzone (e.g., measured by a temperature sensor within the zone) and an indication of the cooling or heating demand (e.g., an EWMA of the controller output signal ut). Controller 30 does not rely on a measurement of the outside air temperature and an outside air temperature sensor is not needed to predict the return time. The EWMA of the cooling or heating demand provides an indication of the recent history of the cooling or heating load on the zone and can account for intermittent heating or cooling that is required to keep the room temperature within the bounds of the unoccupied setpoints.

Second, controller 30 is configured to apply a correction term based on an estimate of the deviation of the prediction error. The correction term can include a multiplier for the deviation of the prediction error, with larger values of the multiplier yielding higher probabilities that comfort is satisfied at occupancy. The multiplier can be adjusted (e.g., by a user) to switch between energy efficiency (at relatively lower multiplier values) and comfort (at relatively higher multiplier values).

Another distinguishing feature of controller 30 is the difference between cool down state 404 and warm up state 406. Cool down state 404 may end at the beginning of an occupied period because the loads during the occupied period would tend to lengthen the return time and potentially result in unrealistically large parameter weights. The large parameter weights could potentially lead to an over-prediction of the return time and subsequent energy waste. However, warm up state 406 may extend into an occupied period because the loads during the occupied period will tend to reduce the return time. Such a reduction in the return time could contribute to under-predicting the return times for heating. However, the correction term can help mitigate this effect.

In both the cool down state 404 and the warm up state 406, an offset from the occupied temperature setpoints may be used to raise the temperature at which cool down state 404 ends by a small amount and to lower the temperature at which warm up state ends by a small amount. The offset may improve the performance of zones with sluggish control (e.g., an overdamped system). Without the offset, the recovery time may include a period of time (perhaps significant in length) during which the zone temperature is nearly equal to the setpoint, but is approaching the setpoint very slowly. Advantageously, the offset may slightly increase the temperature at which controller 30 determines that cool down is complete and slightly decrease the temperature at which controller 30 determines that warm up is complete, thereby reducing or eliminating the effects of a slow asymptotic change in zone temperature near the occupied setpoints.

Referring now to FIG. 14, a flow chart of a process 1400 for estimating a time to cool down or warm up a building zone from a temperature setback condition is shown, according to an exemplary embodiment. Process 1400 may be performed by controller 30 and the various modules thereof, as described with reference to FIGS. 3-13.

Process 1400 is shown to include determining at least one of a cooling demand and a heating demand for a building zone for a time period corresponding to a temperature setback condition (step 1402). In some embodiments, step 1402 is performed by unoccupied demand module 66 of controller 30. Step 1402 may include using an output signal ut from a controller for the building zone (e.g., controller 30) to determine the heating demand or the cooling demand for the building zone. The output signal ut may be highly correlated to the actual return time τ and can be used to significantly improve the estimated return time {circumflex over (τ)} relative to traditional return time estimation techniques. The output signal ut may provide an indication of the recent history of the cooling load or the heating load on the building zone and can account for intermittent heating or cooling that is required to maintain the zone temperature Tzone between the unoccupied temperature setpoints Th,set,unocc and Tc,set,unocc. Advantageously, the output signal ut may provide a significantly better estimate of the actual heating or cooling load on the building zone than the predictor variables used by traditional return time estimation techniques (e.g., outside air temperature, a difference between Tzone and outside air temperature, etc.). Additionally, because output signal ut is directly available from controller output data, no additional temperature sensors to measure the outside air temperature are required.

In some embodiments, step 1402 includes identifying and using a portion of output signal ut produced by the zone controller during an unoccupied state (e.g., unoccupied state 402) to determine the heating or cooling demand for the building zone. Step 1402 may include filtering the controller output signal ut (e.g., using a signal filter) to determine at least one of the cooling demand and the heating demand. For example, the heating or cooling demand may be a function of output signal ut. In various embodiments, the signal filter may be at least one of an analog filter, a digital filter, a low pass filter, a band pass filter, a smoothing filter, a time window filter, a normalizing filter, and an averaging filter. The function of output signal ut may be at least one of a last value of ut, an average of ut, a normalized value of ut, an integral of ut, and a transformation ut. Step 1402 may include determining the heating or cooling demand from control signal ut using any type and/or combination of filters, functions, transformations, or operations in addition to or in place of the exemplary filters and functions listed above.

In one embodiment, step 1402 includes determining the unoccupied heating or cooling demand by calculating an exponentially weighted moving average (EWMA) of the controller output signal ut. Step 1402 may include calculating the EWMA for at least a portion of control signal ut during the unoccupied state. In some embodiments, step 1402 includes normalizing the control signal ut. For example, step 1402 may include calculating a normalized control signal by dividing control signal ut by a controller output umax that provides maximum cooling or maximum heating for the building zone. The EWMA of the normalized controller output can be calculated using the following equation:

u _ t = u _ t - 1 + α ( u t u max - u _ t - 1 )
where ut is the controller output at time t, umax is the controller output that provides maximum heating or cooling, ūt-1 is the value of the EWMA at the previous sampling time, and α is a smoothing constant. The value of α can be selected by a user, retrieved from memory, or automatically determined by another process or module. In some embodiments, α is set to a value of approximately 0.05. The value for α can be adjusted to give greater or lesser significance to previous EWMA values.

In some embodiments, the initial value for ūt may be reset to zero each time the controller transitions into the unoccupied state. Resetting ūt upon each transition into the unoccupied state may help ensure that the heating or cooling demand calculated in step 1402 is an accurate representation of the actual demand during the unoccupied state. In some embodiments, step 1402 includes waiting to update ūt for a predetermined time period (e.g., ten minutes, one hour, two hours, etc.) after the unoccupied state begins. The average demand may not be updated and may remain at zero during the predetermined time period. By not updating ūt during the predetermined time period in step 1402, the controller can prevent the calculated heating or cooling demand from being dependent on the heating or cooling loads during an occupied time period prior to the beginning of the unoccupied state.

Still referring to FIG. 14, process 1400 is shown to include estimating a return time using at least one of the cooling demand and the heating demand (step 1404). The estimated return time may be the time to cool down or warm up the building zone from the temperature setback condition. In some embodiments, step 1404 is performed by return time estimator module 68 of controller 30.

In some embodiments, step 1402 includes using an empirical model to estimate the return time {circumflex over (τ)}. The empirical model may be any type of model (e.g., a parametric model, a regression model, a neural network model, a state space model, a fuzzy logic model, etc.) and may include one or more empirical model parameters. The empirical model parameters may be learned from previous data (e.g., previous measurements of the actual return time τ, etc.) and the estimated return time {circumflex over (τ)} may be a function of the one or more learned model parameters.

In some embodiments, step 1404 includes using the same empirical model to estimate both the heating return time {circumflex over (τ)}h (i.e., the time required to raise Tzone to the occupied heating setpoint Th,set) and the cooling return time {circumflex over (τ)}c (i.e., the time required to lower Tzone to the occupied cooling setpoint Tc,set). In other embodiments, different empirical models may be used to estimate {circumflex over (τ)}h and {circumflex over (τ)}c.

In some embodiments, step 1404 includes estimating the cooling return time {circumflex over (τ)}c using the equation
{circumflex over (τ)}c=wc,1(Tzone−Tc,set)+wc,2ūc
where ūc is an indication of the cooling demand for the building zone based on the controller output signal ut during the unoccupied state (e.g., an EWMA of the controller output signal) and where wc,1 and wc,2 are empirical parameters learned from previous data. The indication of the cooling demand ūc for the building zone may be calculated in step 1402. The empirical model parameters wc,1 and wc,2 may be determined by parameter module 62, as described with reference to FIG. 13. The estimated cooling return time {circumflex over (τ)}c may be a function of the empirical model parameters wc,1 and wc,2, the difference between the current temperature of the building zone and the occupied cooling setpoint (i.e., Tzone−Tc,set), and the cooling demand ūc for the building zone during the unoccupied state.

In some embodiments, step 1404 includes estimating the heating return time {circumflex over (τ)}h using the equation
{circumflex over (τ)}h=wh,1(Th,set−Tzone)3+wh,2ūh
where ūh is an indication of the heating demand for the building zone based on the controller output signal ut during the unoccupied state (e.g., an EWMA of the controller output signal) and where wh,1 and wh,2 are empirical parameters learned from previous data. The indication of the heating demand ūh for the building zone may be calculated in step 1402. The empirical model parameters wh,1 and wh,2 may be determined by parameter module 62, as described with reference to FIG. 13. The estimated heating return time {circumflex over (τ)}h may be a function of the empirical model parameters wh,1 and wh,2, the cube of the difference between the occupied heating setpoint and the current temperature of the building zone (i.e., (Th,set−Tzone)3), and the heating demand ūh for the building zone during the unoccupied state. In some embodiments, the estimated heating return time {circumflex over (τ)}h is a function of the cube of difference between the occupied heating setpoint and the current temperature of the building zone (Th,set−Tzone)3 whereas the estimated cooling return time {circumflex over (τ)}c is a function of the non-cubed difference between the current temperature of the building zone and the occupied cooling setpoint (Tzone−Tc,set). In some embodiments, step 1402 includes storing the estimated return time (e.g., in a data storage device) and/or outputting the estimated return time (e.g., via a data communications interface, to a user via a user interface device such as an electronic display, etc.).

Referring now to FIG. 15, a flowchart of a process 1500 for controlling a HVAC system in an unoccupied state is shown, according to an exemplary embodiment. Process 1500 may be performed by controller 30 and the various modules thereof, as described with reference to FIGS. 3-13. In some embodiments, process 1500 is performed by unoccupied state module 54 to control HVAC system 12 in unoccupied state 402.

Process 1500 is shown to include starting the unoccupied state (step 1502). Step 1502 may correspond to a transition into the unoccupied state and may be performed in response to satisfying one or more conditions for transitioning into the unoccupied state. For example, step 1502 may be performed in response to a determination (e.g., by controller 30) that an occupied period has ended based on a current occupancy schedule.

Still referring to FIG. 15, process 1500 is shown to include determining whether a scheduled occupancy period has begun (step 1504). Step 1504 may be performed in the unoccupied state to determine whether to transition into the normal state. If a scheduled occupancy period has begun, process 1500 may include setting the normal state to active and setting the unoccupied state to inactive (step 1506). Step 1506 may include updating the unoccupied state status variable U (e.g., setting U=false) and the normal state status variable N (e.g., setting N=true) in parameter module 62. Upon setting the normal state to active and setting the unoccupied state to inactive, process 1500 may end (step 1508). At the beginning of the next time step, state transition module 52 may read the updated state status variables and transition the system into the normal operating state.

Still referring to FIG. 15, process 1500 is shown to include determining whether the zone temperature Tzone is greater than the occupied cooling setpoint Tc,set (step 1510) and determining whether the zone temperature Tzone is less than the occupied heating setpoint Th,set(step 1512). Steps 1510 and 1512 may be performed in response to a determination in step 1504 that the scheduled occupancy period has not yet begun. In some embodiments, steps 1510 and 1512 are performed sequentially (e.g., step 1510 and then step 1512, step 1512 and then step 1510, etc.). In other embodiments, steps 1510 and 1512 may be performed concurrently and/or in any order relative to each other.

If the zone temperature Tzone is neither greater than the occupied cooling setpoint Tc,set nor less than the occupied heating setpoint Th,set, process 1500 may include determining that the zone temperature is between the occupied heating and cooling setpoints (i.e., Th,set≤Tzone≤Tc,set) (step 1514). If the zone temperature is between the occupied heating and cooling setpoints, it may be unnecessary to heat or cool the building zone to raise or lower the zone temperature Tzone to be within the occupied setpoint temperature range. Accordingly, if the zone temperature is between the occupied heating and cooling setpoints (i.e., Th,set≤Tzone≤Tc,set), process 1500 may end (step 1516). At the beginning of the next time step, conditions may be reevaluated and process 1500 may be repeated, starting with step 1502.

Still referring to FIG. 15, process 1500 is shown to include calculating the EWMA of the cooling control signal (step 1518). Step 1518 may be performed in response to a determination in step 1510 that the zone temperature is greater than the occupied cooling setpoint (i.e., Tzone>Tc,set). The EWMA of the cooling control signal may represent the cooling demand of the building zone during the unoccupied state. The EWMA of the cooling control signal may be calculated by unoccupied demand module 66 as previously described with reference to FIG. 10. In various embodiments, step 1518 may include using other indications of the zone cooling demand in place of the EWMA of the cooling control signal (e.g., arithmetic mean, last value, low pass filtered value, etc.). Advantageously, the cooling control signal may be highly correlated with the cooling return time and may provide an accurate indication of the time required to lower Tzone to the occupied cooling setpoint Tc,set.

Still referring to FIG. 15, process 1500 is shown to include calculating the estimated cooling return time {circumflex over (τ)}c (step 1520). Step 1520 may be performed by return time estimator module 68 as previously described with reference to FIG. 10. In some embodiments, step 1520 includes using an empirical model to estimate the cooling return time {circumflex over (τ)}c. The empirical model may be any type of model (e.g., a parametric model, a regression model, a neural network model, a state space model, a fuzzy logic model, etc.) and may include one or more empirical model parameters. The empirical model parameters may be learned from previous data such as previous measurements of the actual cooling return time τc.

In some embodiments, step 1520 includes estimating the cooling return time {circumflex over (τ)}c using the equation
{circumflex over (τ)}c=wc,1(Tzone−Tc,set)+wc,2ūc
where ūc is an indication of the cooling demand for the building zone based on the controller output signal ut during the unoccupied state (e.g., an EWMA of the controller output signal) and where wc,1 and wc,2 are empirical parameters learned from previous data. The indication of the cooling demand ūc for the building zone may be calculated in step 1518. The empirical model parameters wc,1 and wc,2 may be determined by parameter module 62, as described with reference to FIG. 13. The estimated cooling return time {circumflex over (τ)}c may be a function of the empirical model parameters wc,1 and wc,2, the difference between the current temperature of the building zone and the occupied cooling setpoint (i.e., Tzone−Tc,set), and the cooling demand for the building zone during the unoccupied state.

Still referring to FIG. 15, process 1500 is shown to include calculating a corrected estimate of the return time (step 1522). In some embodiments, step 1522 is performed by return time corrector module 70, as described with reference to FIG. 10. Step 1522 may include calculating a corrected return time τstart using the estimated cooling return time {circumflex over (τ)}c and an estimated deviation {circumflex over (σ)} of the cooling return time prediction error ec. Prediction error ec may be the absolute value of the difference between estimated cooling return time {circumflex over (τ)}c and actual cooling return time τc (i.e., ec=|{circumflex over (τ)}c−τc|).

In some embodiments, step 1522 includes calculating the corrected return time τstart by adding a multiple n of the estimated deviation {circumflex over (σ)} to the estimated cooling return time {circumflex over (τ)}c. For example, the equation
τstart=τc+nσ
may be used in step 1522 to calculate the corrected return time τstart. Advantageously, the value of the multiplier n can be adjusted (e.g., automatically, by a user, etc.) to increase or decrease the probability that the zone temperature Tzone will be less than or equal to the occupied cooling setpoint Tc,set at the time of occupancy. Higher values for n increase the probability of achieving the occupied setpoint temperature, but may result in a greater energy cost. Lower values for n use less energy but decrease the probability of achieving the setpoint temperature at the time of occupancy.

Still referring to FIG. 15, process 1500 is shown to include determining whether the time until occupancy is less than or equal to the corrected return time (step 1524). Step 1524 may be performed by return time comparison module 72 as previously described with reference to FIG. 10. Step 1524 includes comparing the value of τstart calculated in step 1522 with the time Tnext until the beginning of the next scheduled occupancy period. Tnext may be calculated by subtracting the current time from the time of the next scheduled occupancy (e.g., based on a stored occupancy schedule).

If the time until the next occupancy period is less than or equal to the corrected return time (i.e. Tnext≤τstart), process 1500 may include setting the cool down state to active and setting the unoccupied state to inactive (step 1526). Step 1526 may include updating the unoccupied state status variable U (e.g., setting U=false) and the cool down state status variable C (e.g., setting C=true) in parameter module 62. Upon setting the cool down state to active and setting the unoccupied state to inactive, process 1500 may end (step 1528). At the beginning of the next time step, state transition module 52 may read the updated state status variables and transition the system into the cool down operating state.

If the time until the next occupancy period is greater than the corrected return time (i.e., Tnextstart), process 1500 may end (step 1528) without setting the cool down state to active or setting the unoccupied state to inactive. Process 1500 may be repeated at the beginning of the next time step so long as the unoccupied state remains active.

Still referring to FIG. 15, process 1500 is shown to include calculating the EWMA of the heating control signal (step 1530). Step 30 may be performed in response to a determination in step 1512 that the zone temperature is less than the occupied heating setpoint (i.e., Tzone<Th,set). The EWMA of the heating control signal may represent the heating demand of the building zone during the unoccupied state. The EWMA of the heating control signal may be calculated by unoccupied demand module 66 as previously described with reference to FIG. 10. In various embodiments, step 1530 may include using other indications of the zone heating demand in place of the EWMA of the heating control signal (e.g., arithmetic mean, last value, low pass filtered value, etc.). Advantageously, the heating control signal may be highly correlated with the heating return time and may provide an accurate indication of the time required to raise Tzone to the occupied heating setpoint Th,set.

Still referring to FIG. 15, process 1500 is shown to include calculating the estimated heating return time {circumflex over (τ)}h (step 1532). Step 1532 may be performed by return time estimator module 68 as previously described with reference to FIG. 10. In some embodiments, step 1532 includes using an empirical model to estimate the heating return time {circumflex over (τ)}h. The empirical model may be any type of model (e.g., a parametric model, a regression model, a neural network model, a state space model, a fuzzy logic model, etc.) and may include one or more empirical model parameters. The empirical model parameters may be learned from previous data such as previous measurements of the actual heating return time τh.

In some embodiments, step 1532 includes estimating the heating return time {circumflex over (τ)}h using the equation
{circumflex over (τ)}h=wh,1(Th,set−Tzone)3+wh,2ūh
where ūh is an indication of the heating demand for the building zone based on the controller output signal ut during the unoccupied state (e.g., an EWMA of the controller output signal) and where wh,1 and wh,2 are empirical parameters learned from previous data. The indication of the heating demand ūh for the building zone may be calculated in step 1530. The empirical model parameters wh,1 and wh,2 may be determined by parameter module 62, as described with reference to FIG. 13. The estimated heating return time {circumflex over (τ)}h may be a function of the empirical model parameters wh,1 and wh,2, the cube of the difference between the occupied heating setpoint and the current temperature of the building zone (i.e., (Th,set−Tzone)3), and the heating demand ūh for the building zone during the unoccupied state.

Still referring to FIG. 15, process 1500 is shown to include calculating a corrected estimate of the return time (step 1534). In some embodiments, step 1534 is performed by return time corrector module 70, as described with reference to FIG. 10. Step 1534 may include calculating a corrected return time τstart using the estimated heating return time {circumflex over (τ)}h and an estimated deviation {circumflex over (σ)} of the heating return time prediction error eh. Prediction error eh may be the absolute value of the difference between estimated heating return time {circumflex over (τ)}h and actual heating return time τh (i.e., eh=|{circumflex over (τ)}h−τh|).

In some embodiments, step 1534 includes calculating the corrected return time τstart by adding a multiple n of the estimated deviation {circumflex over (σ)} to the estimated heating return time {circumflex over (τ)}h. For example, the equation
τstart={circumflex over (τ)}h+n{circumflex over (σ)}
may be used in step 1534 to calculate the corrected return time τstart. Advantageously, the value of the multiplier n can be adjusted (e.g., automatically, by a user, etc.) to increase or decrease the probability that the zone temperature Tzone will be greater than or equal to the occupied heating setpoint Th,set at the time of occupancy. Higher values for n increase the probability of achieving the occupied setpoint temperature, but may result in a greater energy cost. Lower values for n use less energy but decrease the probability of achieving the setpoint temperature at the time of occupancy.

Still referring to FIG. 15, process 1500 is shown to include determining whether the time until occupancy is less than or equal to the corrected return time (step 1536). Step 1536 may be performed by return time comparison module 72 as previously described with reference to FIG. 10. Step 1536 includes comparing the value of τstart calculated in step 1534 with the time Tnext until the beginning of the next scheduled occupancy period. Tnext may be calculated by subtracting the current time from the time of the next scheduled occupancy (e.g., based on a stored occupancy schedule).

If the time until the next occupancy period is less than or equal to the corrected return time (i.e., Tnext≤τstart), process 1500 may include setting the warm up state to active and setting the unoccupied state to inactive (step 1538). Step 1538 may include updating the unoccupied state status variable U (e.g., setting U=false) and the warm up state status variable W (e.g., setting W=true) in parameter module 62. Upon setting the warm up state to active and setting the unoccupied state to inactive, process 1500 may end (step 1540). At the beginning of the next time step, state transition module 52 may read the updated state status variables and transition the system into the warm up operating state.

If the time until the next occupancy period is greater than the corrected return time (i.e., Tnextstart), process 1500 may end (step 1540) without setting the warm up state to active or setting the unoccupied state to inactive. Process 1500 may be repeated at the beginning of the next time step so long as the unoccupied state remains active.

Referring now to FIG. 16, a flowchart of a process 1600 for controlling a HVAC system in a cool down state is shown, according to an exemplary embodiment. Process 1600 may be performed by controller 30 and the various modules thereof, as described with reference to FIGS. 3-13. In some embodiments, process 1600 is performed by cool down state module 56 to control HVAC system 12 in cool down state 404.

Process 1600 is shown to include starting the cool down state (step 1602). Step 1602 may correspond to a transition into the cool down state and may be performed in response to satisfying one or more conditions for transitioning into the cool down state. For example, step 1602 may be performed in response to a determination (e.g., by controller 30) that the current zone temperature is greater than an occupied cooling setpoint (i.e., Tzone>Tc,set) and that the time until the next occupancy period is less than or equal to the estimated cooling return time (i.e., Tnext≤τstart).

Still referring to FIG. 16, process 1600 is shown to include determining whether the zone temperature is less than or equal to the occupied cooling setpoint plus a temperature offset (step 1604) and determining whether a scheduled occupancy period has begun (step 1606). In some embodiments, step 1604 is performed by cooling threshold module 76 and step 1606 is performed by occupancy period comparison module 78, as described with reference to FIG. 11. Step 1604 may include monitoring the zone temperature Tzone to determine whether the zone temperature Tzone is less than or equal to the occupied cooling setpoint Tc,set plus the temperature offset ∈ (i.e., Tzone≤Tc,set+∈).

Still referring to FIG. 16, process 1600 is shown to include setting the normal state to active and setting the cool down state to inactive (step 1608). Step 1608 may be performed in response to a determination that the zone temperature is less than or equal to the occupied cooling setpoint plus a temperature offset (e.g., in step 1604) and/or that the scheduled occupancy period has begun (e.g., in step 1606). Step 1608 may include updating the cool down state status variable C (e.g., setting C=false) and the normal state status variable N (e.g., setting N=true) in parameter module 62.

If the zone temperature is greater than the occupied cooling setpoint plus the temperature offset and the scheduled occupancy period has not yet begun, process 1600 may end (step 1622) without updating the state status variables. Process 1600 may be repeated at the beginning of the next time step so long as the cool down state remains active.

Still referring to FIG. 16, process 1600 is shown to include calculating an actual cooling return time τc (step 1610). The actual cooling return time τc may be defined by the amount of time spent in the cool down state. In some embodiments, the amount of time spent in the cool down state may be determined by subtracting a cool down state start time from a cool down state end time. The cool down state start time may correspond to the time at which controller 30 begins cooling the building zone in an attempt to lower the zone temperature Tzone to the occupied cooling setpoint Tc,set. The cool down state end time may correspond to the time at which either of the determinations in step 1604 and step 1606 yield a positive result (i.e., the zone temperature is less than or equal to the occupied cooling setpoint plus a temperature offset and/or the scheduled occupancy period has begun).

Still referring to FIG. 16, process 1600 is shown to include calculating a cooling prediction error ec (step 1612). The cooling prediction error ec may be determined by calculating the difference between the model estimated cooling return time {circumflex over (τ)}c and the actual cooling return time τc (e.g., ec=|{circumflex over (τ)}c−τc|). The model estimated cooling return time {circumflex over (τ)}c may be determined by unoccupied state module 54 as previously described with reference to FIG. 10. In some embodiments, the model estimated cooling return time used by in step 1612 is calculated differently than the estimated return time determined by unoccupied state module 54. For example, in unoccupied state 402, the estimated return time may be based on the temperature difference between the current temperature and the applicable setpoint temperature. In step 1612, the estimated return time may be based on the temperature difference between the zone temperature at the beginning of cool down state 404 and the zone temperature at the end of cool down state 404.

Process 1600 is shown to further include determining whether the zone temperature at startup is greater than the occupied cooling setpoint plus the temperature offset (step 1614). The zone temperature at startup may be the temperature Tzone measured at the beginning of the cool down state (e.g., upon a transition from the unoccupied state to the cool down state).

Still referring to FIG. 16, process 1600 is shown to include calculating an average cooling prediction error (step 1616) and calculating updates for the model parameters (step 1618). Steps 1616 and 1618 may be performed in response to a determination in step 1614 that the zone temperature at startup is greater than the occupied cooling setpoint plus the temperature offset (i.e., Tzone>Tc,set+∈). In some embodiments, steps 1616 and 1618 are performed only if Tzone>Tc,set+∈ at the beginning of the cool down state. In other embodiments, steps 1616 and 1618 may be performed even if Tzone≤Tc,set+∈ at the beginning of the cool down state.

In some embodiments, step 1616 includes calculating an average cooling prediction error Δc,d using a history of cooling return time prediction errors (e.g., for previous days d). In some embodiments, step 1616 includes determining the average cooling prediction error Δ by calculating the EWMA of one or more cooling prediction errors ec. For example, step 1616 may include calculating the average prediction error Δc,d using the equation
Δc,d=Δc,d-1+α(|{circumflex over (τ)}c,d−τc,d|−Δc,d-1)
where Δc,d-1 is the previous value of the EWMA from a previous day or time step, {circumflex over (τ)}c,d is an estimate of the return time for a day d (without correction), τc,d is the actual return time for the day d, and α is the exponential smoothing constant (e.g., α=0.05, α=0.2, etc.).

In some embodiments, step 1616 includes waiting to calculate the average cooling prediction error Δc,d for the first several return time predictions within an implementation threshold. For example, Δc,d may not be calculated for the first five, ten, or other threshold number of days and/or return time predictions upon first implementation (e.g., the first five days of cooling, etc.). Not calculating Δc,d for the threshold number of days/predictions in the cooling mode may prevent the EWMA calculation from being biased with large return time prediction errors caused by inaccurate model parameters. After the threshold number of days/predictions has passed, the learned model parameters may be significantly more accurate and Δc,d can be calculated without biasing the average.

In some embodiments, step 1616 includes determining the average prediction error Δc,d using an arithmetic mean of cooling return time prediction errors ec. The arithmetic mean may be calculated using the equation

Δ ¯ c , d = Δ ¯ c , d - 1 + 1 k ( τ ^ c , d - τ c , d - Δ ¯ c , d - 1 )
where k is the total number of days/predictions for which Δc,d has been calculated. In some embodiments, step 1616 includes calculating Δc,d using the arithmetic mean for only the first
1/α
days and/or predictions after the threshold number of days/predictions for which Δc,d is not calculated. For example, at the beginning of a cooling season (e.g., a one-time event or any time the model parameters are reinitialized), Δc,d may not be calculated for the first five days. Then, after the five day non-calculation period has passed, Δc,d may be calculated using the arithmetic mean method for the next twenty days (e.g., if α=0.05). Then, after the twenty day arithmetic mean period has passed Δc,d may be calculated using the EWMA method.

Step 1618 may include using a regression algorithm (e.g., a partial least squares regression, ridge regression, principal component regression, weighted least squares regression, ordinary least squares regression, least mean linear regression, exponentially weighted regularized least squares regression, etc.) to update the learned model parameters. For example, an exponentially weighted regularized least squares (EWRLS) regression process can be carried out using the following equations:

γ = 1 1 + λ - 1 uP d - 1 u T g = λ - 1 P d - 1 u T γ e = τ - uw d - 1 w d = w d - 1 + g e p d = λ - 1 P d - 1 - gg T γ
where τ is the most recent measurement of the actual return time, λ is a forgetting factor (e.g., λ=1, λ=0.98, etc.), u is a vector of current inputs, wd-1 is a vector of previous parameter weights, and Pd-1 is a matrix that summarizes previous regressor information. The values for wd-1 and Pd-1 are determined during a previous iteration of the regression process (e.g., the previous day).

For the cooling model, the input vector u is given by
uc=[δcūc]
where δc is the zone temperature at the beginning of cool down state 404 minus the zone temperature at the end of cool down state 404 (i.e., δc=Tzone,1,c−Tzone,2,c) and ūc indicates the cooling demand of building zone 40 during the most recent unoccupied state 402.

Still referring to FIG. 16, process 1600 is shown to include resetting heating and cooling input EWMA values and counters to initial values (step 1620) and ending process 1600 (step 1622). Step 1620 may include resetting the history of controller output values used to determine the cooling demand of building zone 40 during the most recent unoccupied state 402. At the beginning of the next time step, the system may transition into the normal state (e.g., if the normal state is set to active in step 1608) or continue in the cool down state (e.g., if step 1608 is not performed).

Referring now to FIG. 17, a flowchart of a process 1700 for controlling a HVAC system in a warm up state is shown, according to an exemplary embodiment. Process 1700 may be performed by controller 30 and the various modules thereof, as described with reference to FIGS. 3-13. In some embodiments, process 1700 is performed by warm up state module 58 to control HVAC system 12 in warm up state 406.

Process 1700 is shown to include starting the warm up state (step 1702). Step 1702 may correspond to a transition into the warm up state and may be performed in response to satisfying one or more conditions for transitioning into the warm up state. For example, step 1702 may be performed in response to a determination (e.g., by controller 30) that the current zone temperature is less than an occupied heating setpoint (i.e., Tzone<Th,set) and that the time until the next occupancy period is less than or equal to the estimated heating return time (i.e., Tnext≤τstart).

Still referring to FIG. 17, process 1700 is shown to include determining whether the zone temperature is greater than or equal to the occupied heating setpoint minus a temperature offset (step 1704) and determining whether a scheduled occupancy period has begun and ended (step 1706). In some embodiments, step 1704 is performed by heating threshold module 86 and step 1706 is performed by occupancy period comparison module 88, as described with reference to FIG. 12. Step 1704 may include monitoring the zone temperature Tzone to determine whether the zone temperature Tzone is greater than or equal to the occupied heating setpoint Th,set minus the temperature offset ∈ (i.e., Tzone≥Th,set−∈).

Still referring to FIG. 17, process 1700 is shown to include setting the normal state to active and setting the warm up state to inactive (step 1708). Step 1708 may be performed in response to a determination in step 1704 that the zone temperature is greater than or equal to the occupied heating setpoint minus the temperature offset. Step 1708 may include updating the warm up state status variable W (e.g., setting W=false) and the normal state status variable N (e.g., setting N=true) in parameter module 62.

Process 1700 is shown to further include setting the unoccupied state to active and setting the warm up state to inactive (step 1710). Step 1710 may be performed in response to a determination in step 1706 that the scheduled occupancy has begun and ended. Step 1710 may include updating the warm up state status variable W (e.g., setting W=false) and the unoccupied state status variable U (e.g., setting U=true) in parameter module 62. Step 1710 may be performed to transition directly from the warm up state to the unoccupied state without an intermediate transition through the normal state.

If the zone temperature is less than the occupied heating setpoint minus the temperature offset (i.e., 1704=no) and the scheduled occupancy period has not yet begun and ended (i.e., 1706=no), process 1700 may end (step 1724) without updating the state status variables. Process 1700 may be repeated at the beginning of the next time step so long as the warm up state remains active.

Still referring to FIG. 17, process 1700 is shown to include calculating an actual heating return time τh (step 1712). The actual heating return time τh may be defined by the amount of time spent in the warm up state. In some embodiments, the amount of time spent in the warm up state may be determined by subtracting a warm up state start time from a warm up state end time. The warm up state start time may correspond to the time at which controller 30 begins heating the building zone in an attempt to raise the zone temperature Tzone to the occupied heating setpoint Th,set. The warm up state end time may correspond to the time at which either of the determinations in step 1704 or step 1706 yield a positive result (i.e., the zone temperature is greater than or equal to the occupied heating setpoint minus a temperature offset and/or the scheduled occupancy period has begun and ended).

Still referring to FIG. 17, process 1700 is shown to include calculating a heating prediction error eh (step 1714). The heating prediction error eh may be determined by calculating the difference between the actual heating return time τh and the model estimated heating return time {circumflex over (τ)}h (e.g., eh=|{circumflex over (τ)}h−τh|). The model estimated heating return time τh may be determined by unoccupied state module 54 as previously described with reference to FIG. 10. In some embodiments, the model estimated heating return time used in step 1714 is calculated differently than the estimated return time determined by unoccupied state module 54. For example, in unoccupied state 402, the estimated return time may be based on the temperature difference between the current temperature and the applicable setpoint temperature. The estimated heating return time used in step 1714 may be based on the temperature difference between the zone temperature at the end of warm up state 406 and the zone temperature at the beginning of warm up state 406.

Process 1700 is shown to further include determining whether the zone temperature at startup is less than the occupied heating setpoint minus the temperature offset (step 1716). The zone temperature at startup may be the temperature Tzone measured at the beginning of the warm up state (e.g., upon a transition from the unoccupied state to the warm up state).

Still referring to FIG. 17, process 1700 is shown to include calculating an average heating prediction error (step 1718) and calculating updates for the model parameters (step 1720). Steps 1718 and 1720 may be performed in response to a determination in step 1716 that the zone temperature at startup is less than the occupied heating setpoint minus the temperature offset (i.e., Tzone<Th,set−∈). In some embodiments, steps 1718 and 1720 are performed only if Tzone<Th,set−∈ at the beginning of the warm up state. In other embodiments, steps 1718 and 1720 may be performed even if Tzone≥Th,set−∈ at the beginning of the warm up state.

In some embodiments, step 1718 includes calculating an average heating prediction error Δh,d using a history of heating return time prediction errors (e.g., for previous days d). In some embodiments, step 1718 includes determining the average heating prediction error Δh,d by calculating the EWMA of one or more heating prediction errors eh. For example, step 1718 may include calculating the average prediction error Δh,d using the equation
Δh,d=Δh,d-1+α(|{circumflex over (τ)}h,d−τh,d|−Δh,d-1)
where Δh,d-1 is the previous value of the EWMA from a previous day or time step, {circumflex over (τ)}h,d is an estimate of the return time for a day d (without correction), τh,d is the actual return time for the day d, and α is the exponential smoothing constant (e.g., α=0.05, α=0.2, etc.).

In some embodiments, step 1718 includes waiting to calculate the average heating prediction error Δh,d for the first several return time predictions within an implementation threshold. For example, Δh,d may not be calculated for the first five, ten, or other threshold number of days and/or return time predictions upon first implementation (e.g., the first five days of heating, etc.). Not calculating Δh,d for the threshold number of days/predictions in the heating mode may prevent the EWMA calculation from being biased with large return time prediction errors caused by inaccurate model parameters. After the threshold number of days/predictions has passed, the learned model parameters may be significantly more accurate and Δh,d can be calculated without biasing the average.

In some embodiments, step 1718 includes determining the average prediction error Δh,d using an arithmetic mean of return time prediction errors e. The arithmetic mean may be calculated using the equation

Δ ¯ h , d = Δ ¯ h , d - 1 + 1 k ( τ ^ h , d - τ h , d - Δ ¯ h , d - 1 )
where k is the total number of days/predictions for which Δh,d has been calculated. In some embodiments, step 1718 includes calculating Δh,d using the arithmetic mean for only the first
1/α
days and/or predictions after the threshold number of days/predictions for which Δh,d is not calculated. For example, at the beginning of a heating season (e.g., a one-time event or any time the model parameters are reinitialized), Δh,d may not be calculated for the first five days. Then, after the five day non-calculation period has passed, Δh,d may be calculated using the arithmetic mean method for the next twenty days (e.g., if α=0.05). Then, after the twenty day arithmetic mean period has passed Δh,d may be calculated using the EWMA method.

Step 1720 may include using a regression algorithm (e.g., a partial least squares regression, ridge regression, principal component regression, weighted least squares regression, ordinary least squares regression, least mean linear regression, exponentially weighted regularized least squares regression, etc.) to update the learned model parameters. For example, an exponentially weighted regularized least squares (EWRLS) regression process can be carried out using the following equations:

γ = 1 1 + λ - 1 uP d - 1 u T g = λ - 1 P d - 1 u T γ e = τ - uw d - 1 w d = w d - 1 + g e p d = λ - 1 P d - 1 - gg T γ
where τ is the most recent measurement of the actual return time, λ is a forgetting factor (e.g., λ=1, λ=0.98, etc.), u is a vector of current inputs, wd-1 is a vector of previous parameter weights, and Pd-1 is a matrix that summarizes previous regressor information. The values for wd-1 and Pd-1 are determined during a previous iteration of the regression process (e.g., the previous day).

For the heating model, the input vector u is given by
uh=[δh3ūh]
where δh is the zone temperature at the end of warm up state 406 minus the zone temperature at the beginning of warm up state 406 (i.e., δh=Tzone,2,h−Tzone,1,h) and ūn indicates the heating demand of building zone 40 during the most recent unoccupied state 402.

Still referring to FIG. 17, process 1700 is shown to include resetting heating and cooling input EWMA values and counters to initial values (step 1722) and ending process 1700 (step 1724). Step 1722 may include resetting the history of controller output values used to determine the heating demand of building zone 40 during the most recent unoccupied state 402. At the beginning of the next time step, the system may transition into the normal state (e.g., if the normal state is set to active in step 1708), the unoccupied state (e.g., if the unoccupied state is set to active in step 1710), or continue in the warm up state (e.g., if steps 1708 and 1710 are not performed).

Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software embodied on a tangible medium, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium may be tangible and non-transitory.

The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

The term “client or “server” include all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display), OLED (organic light emitting diode), TFT (thin-film transistor), plasma, other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc., by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an embodiment of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an internetwork (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

While this specification contains many specific embodiment details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product embodied on a tangible medium or packaged into multiple such software products.

Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain embodiments, multitasking and parallel processing may be advantageous.

House, John M., Seem, John E.

Patent Priority Assignee Title
Patent Priority Assignee Title
4522336, Dec 09 1982 Honeywell Inc. Adaptive optimum start/stop control system
4660759, Nov 13 1984 Honeywell Inc. Optimum start/stop dependent upon both space temperature and outdoor air temperature
4897798, Dec 08 1986 American Telephone and Telegraph Company; AT&T Information Systems Inc. Adaptive environment control system
5025984, Jun 22 1990 Honeywell Inc. Setback thermostat with recovery start time selected non-linearly
5219119, Sep 21 1992 Honeywell Inc. Thermostat-type setback controller having a recovery set point which depends on the time-based value of a sensor signal
5270952, Sep 30 1991 Honeywell Inc.; HONEYWELL INC A CORPORATION OF DELAWARE Self-adjusting recovery algorithm for a microprocessor-controlled setback thermostat
5402333, Jun 15 1992 E. I. Du Pont de Nemours & Co., Inc.; E I DU PONT DE NEMOURS & CO INC System and method for improving model product property estimates
6594554, Jul 28 1999 Johnson Controls Technology Company Apparatus and method for intelligent control of the fan speed of air-cooled condensers
7099748, Jun 29 2004 York International Corp. HVAC start-up control system and method
20050267606,
20080099570,
20120305661,
///
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 13 2013SEEM, JOHN EJohnson Controls Technology CompanyASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0505180073 pdf
Dec 13 2013HOUSE, JOHN M Johnson Controls Technology CompanyASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0505180073 pdf
Aug 22 2019Johnson Controls Technology Company(assignment on the face of the patent)
Date Maintenance Fee Events
Aug 22 2019BIG: Entity status set to Undiscounted (note the period is included in the code).


Date Maintenance Schedule
Jun 01 20244 years fee payment window open
Dec 01 20246 months grace period start (w surcharge)
Jun 01 2025patent expiry (for year 4)
Jun 01 20272 years to revive unintentionally abandoned end. (for year 4)
Jun 01 20288 years fee payment window open
Dec 01 20286 months grace period start (w surcharge)
Jun 01 2029patent expiry (for year 8)
Jun 01 20312 years to revive unintentionally abandoned end. (for year 8)
Jun 01 203212 years fee payment window open
Dec 01 20326 months grace period start (w surcharge)
Jun 01 2033patent expiry (for year 12)
Jun 01 20352 years to revive unintentionally abandoned end. (for year 12)