Building management system with automatic comfort constraint adjustment

An HVAC system for automatically adjusting setpoint boundaries of a space includes building equipment configured to provide heating or cooling to the space to affect an environmental condition of the space and a controller. The controller obtains occupant setpoint adjustment data indicating occupant setpoint increases or occupant setpoint decreases at multiple times during a time interval and partitions the occupant setpoint adjustment data into time period bins based on the multiple times associated with the occupant setpoint adjustment data, each of the time period bins containing occupant setpoint adjustment data characterized by a common time attribute. The controller determines a number of occupant setpoint increases and a number of occupant setpoint decreases indicated by the occupant setpoint adjustment data within each time period bin and adjusts a setpoint boundary of the space based on the number of occupant setpoint increases or the number of occupant setpoint decreases.

BACKGROUND

The present disclosure relates generally to control systems for an HVAC system. More particularly, the present disclosure relates to maintaining occupant comfort in a zone, building, room, or space. Different occupants can have different comfort preferences. Additionally, when occupancy of a room changes, weather conditions change, seasons change, etc., the occupant's comfort preferences can also change.

SUMMARY

One implementation of the present disclosure is an HVAC system for automatically adjusting setpoint boundaries of a space, according to some embodiments. In some embodiments, the system includes building equipment configured to provide heating or cooling to the space to affect an environmental condition of the space. In some embodiments, the system includes a setpoint adjustment controller configured to obtain occupant setpoint adjustment data indicating occupant setpoint increases or occupant setpoint decreases at multiple times during a time interval. In some embodiments, the setpoint adjustment controller is configured to partition the occupant setpoint adjustment data into time period bins based on the multiple times associated with the occupant setpoint adjustment data, each of the time period bins containing occupant setpoint adjustment data characterized by a common time attribute. In some embodiments, the setpoint adjustment controller is configured to determine a number of occupant setpoint increases and a number of occupant setpoint decreases indicated by the occupant setpoint adjustment data within each time period bin. In some embodiments, the setpoint adjustment controller is configured to adjust a setpoint boundary of the space based on the number of occupant setpoint increases or the number of occupant setpoint decreases.

In some embodiments, each of the time period bins corresponds to a particular day type and a particular daily time period. In some embodiments, the controller is configured to adjust a setpoint boundary of a particular day type and a particular daily time period based on the number of occupant setpoint increases and occupant setpoint decreases indicated by the occupant setpoint adjustment data within the corresponding time period bin.

In some embodiments, the controller is configured to increase the setpoint boundary of the space for one or more time periods associated with a particular time period bin in response to the number of setpoint increases indicated by the occupant setpoint adjustment data within the particular time period bin exceeding a predetermined threshold value. In some embodiments, the controller is configured to decrease the setpoint boundary of the space for one or more time periods associated with a particular time period bin in response to the number of setpoint decreases indicated by the occupant setpoint adjustment data within the particular time period bin exceeding the predetermined threshold value.

In some embodiments, the controller is configured to maintain a current setpoint boundary for one or more time periods associated with a particular time period bin in response to the number of setpoint decreases indicated by the occupant setpoint adjustment data within the particular time period bin being equal to the number of setpoint increases indicated by the occupant setpoint adjustment data within the particular time period bin. In some embodiments, the controller is configured to maintain a current setpoint boundary for one or more time periods associated with a particular time period bin in response to both (1) the number of setpoint decreases indicated by the occupant setpoint adjustment data within the particular time period bin being less than a first threshold value and (2) the number of setpoint increases indicated by the occupant setpoint adjustment data within the particular time period bin being less than a second threshold value.

In some embodiments, the controller is configured to increase or decrease the setpoint boundary of the space a predetermined amount to adjust the setpoint boundary.

In some embodiments, the controller is configured to independently adjust a minimum allowable setpoint boundary of the space and a maximum allowable setpoint boundary of the setpoint boundary of the space based on the number of setpoint increases and the number of setpoint decreases indicated by the occupant setpoint adjustment data.

In some embodiments, the controller is configured to determine if the occupant setpoint adjustment data does not indicate occupant discomfort and remove occupant setpoint adjustment data that does not indicate occupant discomfort to generate filtered occupant setpoint adjustment data. In some embodiments, if the building equipment is in a cooling mode, the controller determines if the occupant setpoint adjustment data does not indicate occupant discomfort by determining if a zone temperature at an occupant setpoint adjustment time exceeds a model predictive setpoint at the occupant setpoint adjustment time by at least a first predetermined amount, determining if the model predictive setpoint at the occupant setpoint adjustment time exceeds a setpoint at the occupant setpoint adjustment time, and determining that the occupant setpoint adjustment data does not indicate occupant discomfort in response to both (1) the zone temperature exceeding the model predictive setpoint by at least the first predetermined amount and (2) the model predictive setpoint exceeding the setpoint at the occupant setpoint adjustment time. In some embodiments, if the building equipment is in a heating mode, the controller determines if the occupant setpoint adjustment data does not indicate occupant discomfort by determining if the zone temperature at the occupant setpoint adjustment time is less than the model predictive setpoint at the occupant setpoint adjustment time by at least a second predetermined amount, determining if the model predictive setpoint at the occupant setpoint adjustment time is less than the setpoint at the occupant setpoint adjustment time, and determining that the occupant setpoint adjustment data does not indicate occupant discomfort in response to both (1) the zone temperature being less than the model predictive setpoint by at least the second predetermined amount and (2) the model predictive setpoint being less than the setpoint at the occupant setpoint adjustment time.

Another implementation of the present disclosure is a method for adjusting temperature setpoint boundaries to maintain occupant comfort, according to some embodiments. In some embodiments, the method includes obtaining occupant setpoint adjustment data indicating occupant setpoint increases or occupant setpoint decreases at multiple times during a time interval. In some embodiments, the method includes partitioning the occupant setpoint adjustment data into time period bins based on the multiple times associated with the occupant setpoint adjustment data. In some embodiments, each of the time period bins contain occupant setpoint adjustment data characterized by a common time attribute. In some embodiments, the method includes counting a number of occupant setpoint increases and a number of occupant setpoint decreases for each time period bin. In some embodiments, the method includes determining if the number of occupant setpoint increases exceeds a first threshold value and if the number of occupant setpoint decreases exceeds a second threshold value for each time period bin. In some embodiments, the method includes adjusting a setpoint boundary of one or more time period bins based on if the number of occupant setpoint increases exceeds the first threshold value or if the number of occupant setpoint decreases exceeds the second threshold value.

In some embodiments, partitioning the occupant setpoint adjustment data includes partitioning the occupant setpoint adjustment data by day type and into multiple time period bins for each day type.

In some embodiments, the method includes operating building equipment to affect an environmental condition of a space based on the adjusted setpoint boundary.

In some embodiments, the method includes increasing the setpoint boundary in response to the number of occupant setpoint increases exceeding a first threshold value. In some embodiments, the method includes decreasing the setpoint boundary in response to the number of occupant setpoint decreases exceeding a second threshold value. In some embodiments, the method includes maintaining a current setpoint boundary in response to the number of occupant setpoint increases being equal to the number of setpoint increases or both (1) the number of occupant setpoint increases being less than the first threshold value, and (2) the number of setpoint decreases being less than the second threshold value.

In some embodiments, the method includes increasing the setpoint boundary in response to the number of occupant setpoint increases exceeding the first threshold value, the number of occupant setpoint decreases exceeding the second threshold value, and the number of occupant setpoint increases exceeding the number of occupant setpoint decreases. In some embodiments, the method includes decreasing the setpoint boundary in response to the number of occupant setpoint increases exceeding the first threshold value, the number of occupant setpoint decreases exceeding the second threshold value, and the number of occupant setpoint decreases exceeding the number of occupant setpoint increases.

In some embodiments, increasing the setpoint boundary includes increasing a minimum boundary and a maximum boundary by a predetermined offset amount. In some embodiments, decreasing the setpoint boundary includes decreasing the minimum boundary and the maximum boundary by a predetermined offset amount.

Another implementation of the present disclosure is a method for adjusting a temperature setpoint boundary to maintain occupant comfort, according to some embodiments. In some embodiments, the method includes obtaining occupant setpoint data for a time duration and partitioning the occupant setpoint data into multiple time period bins based on multiple times associated with the occupant setpoint data. In some embodiments, each of the time period bins contains occupant setpoint data characterized by a common time attribute. In some embodiments, the method includes counting a number of occupant setpoint increases and a number of occupant setpoint decreases for each of the multiple time period bins. In some embodiments, the method includes determining if the number of occupant setpoint increases or the number of occupant setpoint decreases exceed a threshold value for each of the multiple time period bins. In some embodiments, the method includes adjusting a minimum and maximum threshold of the temperature setpoint boundary for each of the multiple time period bins that the number of occupant setpoint increases or the number of occupant setpoint decreases exceed the threshold value.

In some embodiments, the method includes increasing one of the minimum and the maximum thresholds for each of the time period bins that the number of occupant setpoint increases exceeds the threshold value. In some embodiments, the method includes decreasing one of the minimum and the maximum thresholds for each of the time period bins that the number of occupant setpoint decreases exceeds the threshold value.

In some embodiments, the method includes adjusting the minimum and maximum thresholds of all time period bins associated with a particular one of the time period bins in response to the number of occupant setpoint increases or occupant setpoint decreases exceeding the threshold value for the particular one of the time period bins.

In some embodiments, the method includes receiving a minimum model predictive setpoint boundary and a maximum model predictive setpoint boundary. In some embodiments, the method includes determining if the minimum threshold exceeds the minimum model predictive setpoint boundary and determining if the maximum threshold is less than the maximum model predictive setpoint boundary, for each of the time period bins. In some embodiments, the method includes increasing the minimum model predictive setpoint boundary to be equal to the minimum threshold and increasing the maximum model predictive setpoint boundary to be equal to a smaller of (1) the maximum model predictive setpoint boundary plus an amount the minimum model predictive setpoint boundary is increased by to equal the minimum threshold, or (2) the maximum threshold in response to the minimum threshold exceeding the minimum model predictive setpoint boundary. In some embodiments, the method includes decreasing the maximum model predictive setpoint boundary to be equal to be equal to the maximum threshold and decreasing the minimum model predictive setpoint boundary to be equal to a larger of (1) the minimum model predictive setpoint boundary plus an amount the gmaximum model predictive setpoint boundary is decreased by to equal the maximum threshold, or (2) the minimum threshold in response to the maximum threshold being less than the minimum model predictive setpoint boundary.

In some embodiments, the method includes maintaining current values of the minimum and maximum thresholds and current values of the minimum and maximum model predictive setpoint boundaries in response to both (1) the minimum threshold being less than the minimum model predictive setpoint boundary and (2) the maximum threshold being greater than the maximum model predictive setpoint boundary.

In some embodiments, the method includes operating building equipment based on the temperature setpoint boundary to affect an environmental condition of a space.

In some embodiments, the method includes removing occupant setpoint adjustments that do not indicate occupant discomfort.

DETAILED DESCRIPTION

Overview

Referring generally to the FIGURES, systems and methods for adjusting occupant discomfort are shown. In building spaces, rooms, zones, etc., a temperature differential may cause occupants to become uncomfortable. The occupants may become too cold, or too warm. A controller can be configured to operate building equipment to provide heating and/or cooling to the space to maintain occupant comfort. The controller can perform feedback control (e.g., on-off control) to determine how to operate the building equipment (e.g., to heat the space, cool the space, standby, etc.). Occupants can specify allowable or comfortable temperature ranges that the controller uses to maintain occupant comfort. However, due to the temperature differential, changing occupant preferences, outdoor temperature, seasons, etc., occupants may eventually find the temperature ranges uncomfortable.

The controller can monitor the occupant comfort by observing how frequently the occupant(s) change a temperature setpoint. For example, the controller can determine that the temperature setpoint or temperature setpoint boundaries should be increased if the occupant regularly increases the temperature setpoint. Likewise, the controller can determine that the temperature setpoint or temperature setpoint boundaries should be decreased if the occupant regularly decreases the temperature setpoint.

The controller can receive and collect occupant setpoint adjustment data/information over a time period (e.g., a month, a week, two months, etc.). The controller can filter the occupant setpoint adjustment data to identify occupant setpoint changes that indicate occupant discomfort. The controller can partition each day of occupant setpoint change data into day types (e.g., weekday and weekend). The controller may further partition the occupant setpoint change data into daily time periods (e.g., four daily time periods, eight daily time periods, etc.). The controller may then count a number of occupant setpoint increases and occupant setpoint decreases for each daily time period of each day of both day types. The controller can then adjust temperature setpoints, or temperature setpoint boundaries based on the number of occupant setpoint increases and/or the number of occupant setpoint decreases. The controller can adjust the setpoints or setpoint boundaries for all daily time periods, or may adjust the setpoints or setpoint boundaries for all daily time periods independently. For example, the controller may increase the first daily time period of all days of a particular day type based on the number of occupant setpoint increases or occupant setpoint decreases of one or more daily time periods of the particular day type.

Advantageously, this allows the controller and the system to adapt and change to the occupants' preferences. The controller can also adapt to provide comfortable conditions for when the space is occupied or during warmer/colder times of day. For example, if an occupant typically prefers the temperature in the space to be warmer at night and cooler in the morning, the controller can identify the occupant's preferences and adapt the setpoint and setpoint boundaries to reflect these preferences. Advantageously, if occupancy of the space changes, the controller can adapt the system to learn the new occupants' comfort and adjust the setpoint and/or setpoint boundaries accordingly.

Building HVAC Systems and Building Management Systems

Referring now toFIGS. 1-5, several building management systems (BMS) and HVAC systems in which the systems and methods of the present disclosure can be implemented are shown, according to some embodiments. In brief overview,FIG. 1shows a building10equipped with a HVAC system100.FIG. 2is a block diagram of a waterside system200which can be used to serve building10.FIG. 3is a block diagram of an airside system300which can be used to serve building10.FIG. 4is a block diagram of a BMS which can be used to monitor and control building10.FIG. 5is a block diagram of another BMS which can be used to monitor and control building10.

Building and HVAC System

Waterside System

Although subplants202-212are shown and described as heating and cooling water for circulation to a building, it is understood that any other type of working fluid (e.g., glycol, CO2, etc.) can be used in place of or in addition to water to serve thermal energy loads. In other embodiments, subplants202-212may provide heating and/or cooling directly to the building or campus without requiring an intermediate heat transfer fluid. These and other variations to waterside system200are within the teachings of the present disclosure.

Airside System

Cooling coil334may receive a chilled fluid from waterside system200(e.g., from cold water loop216) via piping342and may return the chilled fluid to waterside system200via piping344. Valve346can be positioned along piping342or piping344to control a flow rate of the chilled fluid through cooling coil334. In some embodiments, cooling coil334includes multiple stages of cooling coils that can be independently activated and deactivated (e.g., by AHU controller330, by BMS controller366, etc.) to modulate an amount of cooling applied to supply air310.

Each of valves346and352can be controlled by an actuator. For example, valve346can be controlled by actuator354and valve352can be controlled by actuator356. Actuators354-356may communicate with AHU controller330via communications links358-360. Actuators354-356may receive control signals from AHU controller330and may provide feedback signals to controller330. In some embodiments, AHU controller330receives a measurement of the supply air temperature from a temperature sensor362positioned in supply air duct312(e.g., downstream of cooling coil334and/or heating coil336). AHU controller330may also receive a measurement of the temperature of building zone306from a temperature sensor364located in building zone306.

Building Management Systems

Each of building subsystems428can include any number of devices, controllers, and connections for completing its individual functions and control activities. HVAC subsystem440can include many of the same components as HVAC system100, as described with reference toFIGS. 1-3. For example, HVAC subsystem440can include a chiller, a boiler, any number of air handling units, economizers, field controllers, supervisory controllers, actuators, temperature sensors, and other devices for controlling the temperature, humidity, airflow, or other variable conditions within building10. Lighting subsystem442can include any number of light fixtures, ballasts, lighting sensors, dimmers, or other devices configured to controllably adjust the amount of light provided to a building space. Security subsystem438can include occupancy sensors, video surveillance cameras, digital video recorders, video processing servers, intrusion detection devices, access control devices and servers, or other security-related devices.

Still referring toFIG. 4, BMS controller366is shown to include a communications interface407and a BMS interface409. Interface407may facilitate communications between BMS controller366and external applications (e.g., monitoring and reporting applications422, enterprise control applications426, remote systems and applications444, applications residing on client devices448, etc.) for allowing user control, monitoring, and adjustment to BMS controller366and/or subsystems428. Interface407may also facilitate communications between BMS controller366and client devices448. BMS interface409may facilitate communications between BMS controller366and building subsystems428(e.g., HVAC, lighting security, lifts, power distribution, business, etc.).

Memory408(e.g., memory, memory unit, storage device, etc.) can include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application. Memory408can be or include volatile memory or non-volatile memory. Memory408can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application. According to some embodiments, memory408is communicably connected to processor406via processing circuit404and includes computer code for executing (e.g., by processing circuit404and/or processor406) one or more processes described herein.

In some embodiments, BMS controller366is implemented within a single computer (e.g., one server, one housing, etc.). In various other embodiments BMS controller366can be distributed across multiple servers or computers (e.g., that can exist in distributed locations). Further, whileFIG. 4shows applications422and426as existing outside of BMS controller366, in some embodiments, applications422and426can be hosted within BMS controller366(e.g., within memory408).

Building subsystem integration layer420can be configured to manage communications between BMS controller366and building subsystems428. For example, building subsystem integration layer420may receive sensor data and input signals from building subsystems428and provide output data and control signals to building subsystems428. Building subsystem integration layer420may also be configured to manage communications between building subsystems428. Building subsystem integration layer420translate communications (e.g., sensor data, input signals, output signals, etc.) across a plurality of multi-vendor/multi-protocol systems.

Referring now toFIG. 5, a block diagram of another building management system (BMS)500is shown, according to some embodiments. BMS500can be used to monitor and control the devices of HVAC system100, waterside system200, airside system300, building subsystems428, as well as other types of BMS devices (e.g., lighting equipment, security equipment, etc.) and/or HVAC equipment.

BMS500provides a system architecture that facilitates automatic equipment discovery and equipment model distribution. Equipment discovery can occur on multiple levels of BMS500across multiple different communications busses (e.g., a system bus554, zone buses556-560and564, sensor/actuator bus566, etc.) and across multiple different communications protocols. In some embodiments, equipment discovery is accomplished using active node tables, which provide status information for devices connected to each communications bus. For example, each communications bus can be monitored for new devices by monitoring the corresponding active node table for new nodes. When a new device is detected, BMS500can begin interacting with the new device (e.g., sending control signals, using data from the device) without user interaction.

Some devices in BMS500present themselves to the network using equipment models. An equipment model defines equipment object attributes, view definitions, schedules, trends, and the associated BACnet value objects (e.g., analog value, binary value, multistate value, etc.) that are used for integration with other systems. Some devices in BMS500store their own equipment models. Other devices in BMS500have equipment models stored externally (e.g., within other devices). For example, a zone coordinator508can store the equipment model for a bypass damper528. In some embodiments, zone coordinator508automatically creates the equipment model for bypass damper528or other devices on zone bus558. Other zone coordinators can also create equipment models for devices connected to their zone busses. The equipment model for a device can be created automatically based on the types of data points exposed by the device on the zone bus, device type, and/or other device attributes. Several examples of automatic equipment discovery and equipment model distribution are discussed in greater detail below.

Still referring toFIG. 5, BMS500is shown to include a system manager502; several zone coordinators506,508,510and518; and several zone controllers524,530,532,536,548, and550. System manager502can monitor data points in BMS500and report monitored variables to various monitoring and/or control applications. System manager502can communicate with client devices504(e.g., user devices, desktop computers, laptop computers, mobile devices, etc.) via a data communications link574(e.g., BACnet IP, Ethernet, wired or wireless communications, etc.). System manager502can provide a user interface to client devices504via data communications link574. The user interface may allow users to monitor and/or control BMS500via client devices504.

In some embodiments, system manager502is connected with zone coordinators506-510and518via a system bus554. System manager502can be configured to communicate with zone coordinators506-510and518via system bus554using a master-slave token passing (MSTP) protocol or any other communications protocol. System bus554can also connect system manager502with other devices such as a constant volume (CV) rooftop unit (RTU)512, an input/output module (TOM)514, a thermostat controller516(e.g., a TEC5000series thermostat controller), and a network automation engine (NAE) or third-party controller520. RTU512can be configured to communicate directly with system manager502and can be connected directly to system bus554. Other RTUs can communicate with system manager502via an intermediate device. For example, a wired input562can connect a third-party RTU542to thermostat controller516, which connects to system bus554.

System manager502can provide a user interface for any device containing an equipment model. Devices such as zone coordinators506-510and518and thermostat controller516can provide their equipment models to system manager502via system bus554. In some embodiments, system manager502automatically creates equipment models for connected devices that do not contain an equipment model (e.g., IOM514, third party controller520, etc.). For example, system manager502can create an equipment model for any device that responds to a device tree request. The equipment models created by system manager502can be stored within system manager502. System manager502can then provide a user interface for devices that do not contain their own equipment models using the equipment models created by system manager502. In some embodiments, system manager502stores a view definition for each type of equipment connected via system bus554and uses the stored view definition to generate a user interface for the equipment.

Each zone coordinator506-510and518can be connected with one or more of zone controllers524,530-532,536, and548-550via zone buses556,558,560, and564. Zone coordinators506-510and518can communicate with zone controllers524,530-532,536, and548-550via zone busses556-560and564using a MSTP protocol or any other communications protocol. Zone busses556-560and564can also connect zone coordinators506-510and518with other types of devices such as variable air volume (VAV) RTUs522and540, changeover bypass (COBP) RTUs526and552, bypass dampers528and546, and PEAK controllers534and544.

Zone coordinators506-510and518can be configured to monitor and command various zoning systems. In some embodiments, each zone coordinator506-510and518monitors and commands a separate zoning system and is connected to the zoning system via a separate zone bus. For example, zone coordinator506can be connected to VAV RTU522and zone controller524via zone bus556. Zone coordinator508can be connected to COBP RTU526, bypass damper528, COBP zone controller530, and VAV zone controller532via zone bus558. Zone coordinator510can be connected to PEAK controller534and VAV zone controller536via zone bus560. Zone coordinator518can be connected to PEAK controller544, bypass damper546, COBP zone controller548, and VAV zone controller550via zone bus564.

A single model of zone coordinator506-510and518can be configured to handle multiple different types of zoning systems (e.g., a VAV zoning system, a COBP zoning system, etc.). Each zoning system can include a RTU, one or more zone controllers, and/or a bypass damper. For example, zone coordinators506and510are shown as Verasys VAV engines (VVEs) connected to VAV RTUs522and540, respectively. Zone coordinator506is connected directly to VAV RTU522via zone bus556, whereas zone coordinator510is connected to a third-party VAV RTU540via a wired input568provided to PEAK controller534. Zone coordinators508and518are shown as Verasys COBP engines (VCEs) connected to COBP RTUs526and552, respectively. Zone coordinator508is connected directly to COBP RTU526via zone bus558, whereas zone coordinator518is connected to a third-party COBP RTU552via a wired input570provided to PEAK controller544.

Zone controllers524,530-532,536, and548-550can communicate with individual BMS devices (e.g., sensors, actuators, etc.) via sensor/actuator (SA) busses. For example, VAV zone controller536is shown connected to networked sensors538via SA bus566. Zone controller536can communicate with networked sensors538using a MSTP protocol or any other communications protocol. Although only one SA bus566is shown inFIG. 5, it should be understood that each zone controller524,530-532,536, and548-550can be connected to a different SA bus. Each SA bus can connect a zone controller with various sensors (e.g., temperature sensors, humidity sensors, pressure sensors, light sensors, occupancy sensors, etc.), actuators (e.g., damper actuators, valve actuators, etc.) and/or other types of controllable equipment (e.g., chillers, heaters, fans, pumps, etc.).

Each zone controller524,530-532,536, and548-550can be configured to monitor and control a different building zone. Zone controllers524,530-532,536, and548-550can use the inputs and outputs provided via their SA busses to monitor and control various building zones. For example, a zone controller536can use a temperature input received from networked sensors538via SA bus566(e.g., a measured temperature of a building zone) as feedback in a temperature control algorithm. Zone controllers524,530-532,536, and548-550can use various types of control algorithms (e.g., state-based algorithms, extremum seeking control (ESC) algorithms, proportional-integral (PI) control algorithms, proportional-integral-derivative (PID) control algorithms, model predictive control (MPC) algorithms, feedback control algorithms, etc.) to control a variable state or condition (e.g., temperature, humidity, airflow, lighting, etc.) in or around building10.

Setpoint Boundary Adjustment

Setpoint Adjustment System

Referring now toFIGS. 6 and 7, a control system600is shown. Control system600can be configured to adjust setpoint boundaries (e.g. minimum and maximum allowable setpoint boundaries) to maintain a level of comfort in a space. Control system600includes a setpoint adjustment controller604, building equipment612, and a model predictive control (MPC) system630. In some embodiments, MPC system630is a remote server. In some embodiments, MPC system630is local or on site. MPC system630is configured to perform model predictive control to determine optimal setpoint boundaries that minimize costs associated with operating equipment to provide heating and/or cooling to building10. In some embodiments, MPC system630is configured to determine the setpoint boundaries using any of the systems, techniques, methods, etc., described in greater detail in U.S. application Ser. No. 15/473,496, filed Mar. 29, 2017, the entire disclosure of which is incorporated by reference herein.

Control system600is configured to receive setpoints, setpoint boundaries, etc., from MPC system630. In some embodiments, setpoint adjustment controller604is communicably connected with MPC system630. Any of the functionality of MPC system630can be implemented by setpoint adjustment controller604. In some embodiments, setpoint adjustment controller604is located off-site and is configured to generate control signals for building equipment612and provide the control signals to building equipment612wirelessly. In some embodiments, setpoint adjustment controller604is wiredly communicably connected with building equipment612.

Setpoint adjustment controller604is configured to generate control signals to operate building equipment612to serve a room, a zone, a space, etc., shown as room607. Room607includes an interior606, according to some embodiments. Depending on various system parameters of room607(e.g., where building equipment612is located, radiative heat transfer through windows620, how room607stores heat, orientation of building10, etc.), an un-even temperature distribution may be present in room607. Room607can store heat unevenly throughout an interior606, thereby resulting in a temperature differential throughout room607. In some embodiments, environmental conditions (e.g., temperature, humidity, sunlight, etc.) can also affect the temperature differential throughout room607. Room607is shown to include a horizontal or a first direction608and a vertical or second direction610. As shown inFIG. 6, the temperatures as various locations throughout room607vary.

Building equipment612can be configured to provide heating and/or cooling to room607. In some embodiments, building equipment612is configured to receive the control signals from setpoint adjustment controller604and provide heating and/or cooling to room607through a vent632. For example, building equipment612can be a variable refrigerant flow (VRF) system, a variable air volume (VAV) system, a room air conditioning system (RAC), a packaged air conditioning system (PAC), etc. In some embodiments, building equipment612provides hot or cold air to vent632and the hot or cold air is discharged or recirculated into interior606of room607to heat or cool room607. Building equipment612can be any HVAC equipment configured to heat or cool room607.

Setpoint adjustment controller604can be configured to communicate with a thermostat, a zone controller, etc., shown as thermostat622of room607. In some embodiments, thermostat622and setpoint adjustment controller604are the same device. For example, setpoint adjustment controller604can be configured to perform any of the functionality of thermostat622. Likewise, thermostat622can be configured to perform any of the functionality of setpoint adjustment controller604. In some embodiments, thermostat622includes a user interface616configured to receive an occupant adjustment to the setpoint of room607. In some embodiments, the user interface can also receive minimum and maximum desired allowable temperatures. For example, an occupant can indicate a minimum temperature of room607that is comfortable and a maximum temperature of room607that is comfortable. In some embodiments, thermostat622is configured to provide setpoint adjustment controller604with the occupant defined temperature setpoint and/or the minimum and maximum allowable/desired temperatures. In some embodiments, thermostat622and/or setpoint adjustment controller604is configured to provide MPC system630with any of the minimum and maximum temperature values input by the occupant via thermostat622. In some embodiments, MPC system630uses the minimum and maximum allowable temperature values indicated by the occupant as constraints during MPC.

In some embodiments, thermostat622includes a temperature sensor618. Temperature sensor618can be any thermistor, thermocouple, etc., or any other temperature sensor. In some embodiments, temperature sensor618is configured to measure a temperature, Tzone, of room607and provide setpoint adjustment controller604with the measured temperature Tzone. In some embodiments, setpoint adjustment controller604uses the measured temperature Tzoneof room607as feedback. Setpoint adjustment controller604can use the measured temperature Tzoneand the setpoint temperature (and the minimum and maximum desired/allowable temperatures) to generate control signals for building equipment612. In some embodiments, setpoint adjustment controller604includes a feedback controller and uses the measured temperature Tzoneone as a value of a performance variable. For example, the feedback controller of setpoint adjustment controller604can be a PI controller, a PID controller, an extremum seeking controller, a self-optimizing controller, etc., or any other feedback controller.

In some embodiments, thermostat622includes a humidity sensor. The humidity sensor can be configured to measure a humidity or a relative humidity in room607. In some embodiments, the humidity sensor measures the humidity of room607at a location that is approximately the same as the location of temperature sensor618. Thermostat622can also be configured to measure a concentration of particulate matter (e.g., PM 2.5) within interior606of room607. In some embodiments, thermostat622and/or setpoint adjustment controller604receive sensor measurements from sensors (e.g., temperature sensors, humidity sensors, etc.) that are positioned about room607.

In some embodiments, an occupant may become uncomfortable in certain areas of room607due to excessively high or low temperature or humidity values. For example, thermostat622can measure that various environmental conditions (e.g., temperature, humidity, etc.) are within comfortable ranges while various parts of room607may be at uncomfortable environmental conditions. This is due to the temperature differential throughout room607, according to some embodiments. The temperature differential can be due to a variety of factors, including but not limited to, location of vent632, heating or cooling mode of building equipment612, wall insulation of room607, radiative heat transfer through windows620, electric appliances in room607, heat loss or transfer through or around windows620, doors, etc.

Referring toFIG. 7, a surface graph700includes a surface702that illustrates the temperature or environmental condition differential throughout room607, according to some embodiments. Surface702includes various peaks and valleys. If thermostat622is configured to measure temperature or humidity at one of the peaks or valleys, the temperature or humidity measurement may be unrepresentative of an average temperature in the room. This can result in an occupant becoming uncomfortable and changing the temperature setpoint at thermostat622. In some embodiments, setpoint adjustment controller604is configured to monitor occupant initiated setpoint changes and adjust the setpoint of room607or boundaries of the allowable temperature of room607. Advantageously, control system600can adapt to the occupants preferred environmental conditions. Additionally, setpoint adjustment controller604can also learn occupant comfort preferences (e.g., a preferred temperature) for different day types, times of day, etc. Advantageously, this improves occupant comfort and provides an environmental condition control system that adapts to occupant preferences.

Referring toFIG. 8, a graph800shows setpoint temperature (the Y-axis) over time (the X-axis). Graph800includes series802and series808, according to some embodiments. Series802is an actual setpoint temperature of a room, a space, a zone, etc. Series808is the setpoint temperature of the room as determined or provided by MPC system630, according to some embodiments. The Y-axis value of series808is shown equal to TMPC(the setpoint received from MPC system630).

The Y-axis value of series802is the actual setpoint, Tsp, of one of the rooms that setpoint adjustment controller604serves, according to some embodiments. As shown in graph800, the actual setpoint Tspof room607is increased at time t1by an occupant of room607, thereby resulting in a difference between series802and series808. The difference can remain for a time interval804from time t1to time t2when the actual setpoint Tspis reset to the estimated setpoint TMPC. In some embodiments, this is due to the actual setpoint Tspbetween time t1and time t2being outside of a maximum allowable temperature boundary.

Setpoint adjustment controller604can monitor and count setpoint changes as shown inFIG. 8and determine adjustments to the minimum and maximum boundaries of Tspto improve occupant comfort. In some embodiments, setpoint adjustment controller604also adjusts the setpoint Tsp. Setpoint adjustment controller604can use historical data and adapt over time to the occupant comfort preferences.

Referring now toFIG. 9, an environmental control system900includes setpoint adjustment controller604, MPC system630, and a weather service902. Weather service902can provide setpoint adjustment controller604with various outside environmental conditions. In some embodiments, setpoint adjustment controller604is configured to receive any of outdoor air temperature Toa, outdoor relative humidity RH, cloud cover % CC, and solar irradiance SI from weather service902. In some embodiments, setpoint adjustment controller604collects time series data of the outdoor air temperature Toa, the outdoor relative humidity RH, the cloud cover % CC, and the solar irradiance SI over a time period. For example, setpoint adjustment controller604can collect weather time series data over a month. In some embodiments, weather service902is a remote device or network (e.g., the National Weather Service). In some embodiments, weather service902is a collection of various sensors configured to measure any of the weather data described herein and provide the weather data to setpoint adjustment controller604. Setpoint adjustment controller604can collect the weather data over a time period and use the weather data to determine setpoint or setpoint boundary adjustments.

Referring still toFIG. 9, setpoint adjustment controller604is shown receiving data from various zones or rooms607. In some embodiments, zones607are rooms, spaces, areas, etc., of a building or a campus. For example, setpoint adjustment controller604can receive Dataifrom any n number of zones607. In some embodiments, setpoint adjustment controller604receives Dataifrom thermostat622of any ith zone607of the n number of zones607. In some embodiments, setpoint adjustment controller604receives some of the data of Dataifrom thermostat622, and some of Dataifrom MPC system630.

In some embodiments, setpoint adjustment controller604receives the actual setpoint Tsp,ifrom thermostats622. In some embodiments, setpoint adjustment controller604receives the minimum and maximum setpoint boundaries Tsp,min,iand Tsp,max,ifrom thermostats622. In some embodiments, setpoint adjustment controller604receives the zone temperature (as measured by temperature sensor618and/or thermostat622) Tzone,ifrom zones607. In some embodiments, setpoint adjustment controller604receives the setpoint estimate TMPC,ifrom MPC system630. In some embodiments, setpoint adjustment controller604receives a binary value of whether or not comfort adjustment (e.g., the functionality of setpoint adjustment controller604) is enabled for the ith zone607. The binary value indicating whether or not comfort adjustment is enabled can be referred to as pi. In some embodiments, piis a Boolean quantity. In some embodiments, setpoint adjustment controller604receives pifrom zones607or from thermostats22. In some embodiments, setpoint adjustment controller604receives a model training schedule from zones607(e.g., thermostats622) and/or MPC system630. In some embodiments, setpoint adjustment controller604receives a binary mode variable (e.g., heating or cooling mode) Bmode,ifrom thermostats622. In some embodiments, Bmode,iindicates whether building equipment612that serves the ith zone607is in the heating or the cooling mode. In some embodiments, setpoint adjustment controller receives an MPC operational mode variable, Mmode,ifrom thermostats622and/or MPC system630. The MPC operational mode variable can be a binary variable that indicates whether MPC system630is operating in an advisory mode or an automatic mode. In some embodiments, setpoint adjustment controller604receives a unit enable variable Eifrom thermostats622. In some embodiments, unit enable variable Eiis a binary variable that indicates whether thermostat622is active or not (e.g., whether or not building equipment612is active.

Setpoint adjustment controller604can receive and collect any of the variables, data, sensor data, schedules, etc., described hereinabove over a time duration Δt. In some embodiments, the time duration Δt is one month. In other embodiments, the time duration Δt is a predetermined value that is greater than one month or less than one month (e.g., two months, a week, etc.). Setpoint adjustment controller604can receive and produce a time series data vector for any of the data, variables, sensor data, schedules, etc., described hereinabove. In some embodiments, setpoint adjustment controller604also generates a time vector over the time duration Δt. For example, setpoint adjustment controller604can receive the actual setpoint from the first zone607Tsp,1over a month and construct a vector Tsp,1that includes all the values of the actual setpoint Tsp,1received over the time duration Δt. In some embodiments, setpoint adjustment controller604also generates a time vector t. The time vector t and the vector Tsp,1can have a same length or size. In this way, setpoint adjustment controller604can store and retrieve the various actual setpoint values from vector Tsp,1and the time at which the actual setpoint values were recorded from the time vector t. Setpoint adjustment controller604can similarly construct vectors for any of the other data described hereinabove.

Setpoint Adjustment Controller

Referring now toFIG. 10, setpoint adjustment controller604is shown in greater detail. Setpoint adjustment controller604is configured to receive any of the data described in greater detail above with reference toFIG. 9over a time duration, and analyze the received data to determine changes to the setpoint boundaries. In some embodiments, setpoint adjustment controller604is configured to analyze the received data to identify occupant setpoint changes. Setpoint adjustment controller604can use the identified occupant setpoint changes to determine appropriate changes to the setpoint boundaries to improve occupant comfort.

Referring still toFIG. 10, setpoint adjustment controller604is shown to include a communications interface1008. Communications interface1008may facilitate communications between setpoint adjustment controller604and external applications (e.g., MPC system630, thermostats622, building equipment612, etc.) for allowing control and monitoring of zones607or any of the components, devices, equipment, sensors, etc., of a plant. Communications interface1008may also facilitate communications between setpoint adjustment controller604and client devices. Communications interface1008may facilitate communications between setpoint adjustment controller604and building subsystems, thermostats, sensors, other systems, devices, etc.

Communications interface1008can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications with building equipment612, thermostats622, MPC system630, etc., or other external systems or devices. In various embodiments, communications via communications interface1008can be direct (e.g., local wired or wireless communications) or via a communications network (e.g., a WAN, the Internet, a cellular network, etc.). For example, communications interface1008can include an Ethernet card and port for sending and receiving data via an Ethernet-based communications link or network. In another example, communications interface1008can include a Wi-Fi transceiver for communicating via a wireless communications network. In another example, communications interface1008can include cellular or mobile phone communications transceivers. In one embodiment, communications interface1008is a power line communications interface. In other embodiments, communications interface1008is an Ethernet interface.

Still referring toFIG. 10, setpoint adjustment controller604is shown to include a processing circuit1002including a processor1004and memory1006. Processing circuit1002can be communicably connected to communications interface1008such that processing circuit1002and the various components thereof can send and receive data via communications interface1008. Processor1004can be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components.

Memory1006(e.g., memory, memory unit, storage device, etc.) can include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application. Memory1006can be or include volatile memory or non-volatile memory. Memory1006can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application. According to some embodiments, memory1006is communicably connected to processor1004via processing circuit1002and includes computer code for executing (e.g., by processing circuit1002and/or processor1004) one or more processes described herein.

In some embodiments, setpoint adjustment controller604is implemented within a single computer (e.g., one server, one housing, etc.). In various other embodiments setpoint adjustment controller604can be distributed across multiple servers or computers (e.g., that can exist in distributed locations).

Referring still toFIG. 10, setpoint adjustment controller604includes a data collector/aggregator1010, according to some embodiments. In some embodiments, data collector1010is configured to receive any of the data described in greater detail above with reference toFIG. 9. In some embodiments, data collector1010is configured to collect any of the zone and MPC data received from MPC system630and thermostats622. In some embodiments, data collector1010also receives equipment operational data from building equipment612. For example, data collector1010can receive power consumption, efficiency, operating point, etc., data from building equipment612.

Data collector1010is configured to collect any of the receive data over the time duration Δt and generate any of the time series data vectors described in greater detail above with reference toFIG. 9. For example, data collector1010can generate time series data vectors for any of the received data. Data collector1010can also generate time vector t.

Data collector1010can provide the time series data to occupancy adjustment identifier1012and occupant adjustment manager1020, according to some embodiments. In some embodiments, occupant adjustment identifier1012is configured to identify times at which an occupant adjusted the setpoint of thermostat622. In some embodiments, occupant adjustment manager1020is configured to analyze various conditions at times of the occupant adjustments to determine if the occupant adjustment to the setpoint indicates that the occupant is uncomfortable.

In some embodiments, occupant adjustment identifier1012counts a number of occupant adjustments to the setpoint of thermostat622(e.g., increases or decreases). In some embodiments, occupant adjustment identifier1012counts a number of instances of occupant setpoint increases or decreases, regardless of a magnitude of the change/adjustment to the setpoint. For example, if an occupant changes the setpoint from 70 degrees F. to 80 degrees F. at a particular time, occupant adjustment identifier1012can count this setpoint change as a single setpoint adjustment. Likewise, if the occupant later decreases the setpoint from 80 degrees F. to 75 degrees F., occupant adjustment identifier1012may count an additional setpoint change, regardless of the magnitude of the change. In this way, any change to the setpoint (regardless of a magnitude of the change) can be counted by occupant adjustment identifier1012as a single occupant setpoint increase or decrease (depending on the direction of the adjustment/change). The magnitude is not necessarily considered since if an occupant increases or decreases a setpoint, the new setpoint does not necessarily indicate a temperature that the occupant finds comfortable, but rather, that current temperature in the room is uncomfortable to the occupant.

Data collector1010is also configured to provide the zone temperature Tzone,ito feedback controller1022as a performance variable. In some embodiments, feedback controller1022can use the zone temperature to determine values of a manipulated variable u to adjust operation of building equipment612. In some embodiments, data collector1010provides feedback controller1022with real-time values of the zone temperature Tzone,i.

Occupant adjustment identifier1012can receive an estimated setpoint time series vector TMPC,ifrom data collector1010. In some embodiments, occupant adjustment identifier1012also receives the time vector t and a time series data vector of the actual setpoint Tsp,i. Occupant adjustment identifier1012can compare all values of the vector TMPC,ito the vector Tsp,ito determine if any values of the vector Tsp,ideviate from corresponding values of the vector TMPC,i. Vectors TMPC,iand Tsp,imay have the same length. For example, if vectors Tsp,iand TMPC,ihave a length of k, occupant adjustment identifier1012can compare all the values of Tsp,ito corresponding values of TMPC,i.

Occupant adjustment identifier1012can determine a difference vector ΔTsp(j)=Tsp,i(j)−TMPC,i(j) for all values of Tsp,iand TMPC,i(i.e., from j=1 to j=k). If a jth value of ΔTspis greater than zero, this indicates that the jth value of Tsp,iis greater than the jth value of TMPC,i, which may result from an occupant setpoint increase. Similarly, if a jth value of ΔTspis less than zero, this indicates that the jth value of Tsp,iis less than the jth value of TMPC,i, which may result from an occupant setpoint decrease.

In some embodiments, occupant adjustment identifier1012compares consecutive values of Tsp,ito previous values of Tsp,ito determine if an occupant has adjusted the setpoint Tsp,i. For example, occupant adjustment identifier1012can compare Tsp,i(j) to Tsp,i(j−1) to determine if the occupant has manually adjusted the setpoint. In some embodiments, occupant adjustment identifier1012compares Tsp,i(j) to Tsp,i(j−1) for all consecutive integer values of j=2 to j=k.

Occupant adjustment identifier1012uses the changes in Tsp,iand the difference between Tsp,iand TMPC,ifor the various values over the time duration Δt to determine times at which the occupant has manually adjusted (e.g., increased or decreased) the setpoint Tsp,i. In some embodiments, occupant adjustment identifier1012constructs or generates a vector of adjustment times tadj. Occupant adjustment identifier1012can identify times at which the setpoint is adjusted by the occupant and retrieve corresponding values of the time vector t. For example, if occupant adjustment identifier1012determines that the setpoint is adjusted at j=5, j=14, and j=50, the vector tadjmay be defined as tadj=[t(5) t(14) t(50)]. The length of vector tadjis the number of occupant adjustments, according to some embodiments. The values of vector tadjare the corresponding values of the time vector t at which the occupant adjustments to the setpoint occur. In some embodiments, vector tadjhas a same length as vectors Tsp,iand TMPC,i. Vector tadjcan be a vector of binary values (e.g., 1 or 0) indicating times at which the occupant adjusts the setpoint. For example, if the occupant adjusts the setpoint at j=5,, j=14, and j=50, the vector tadjcan be a vector of values of zero (indicating that the setpoint is not adjusted by the occupant at these times), with tadj(5)=tadj(14)=tadj(50)=1 (indicating that the setpoint is adjusted by the occupant at times t(5), t(14), and t(50)).

Occupant adjustment manager1020receives the vector tadjfrom occupant adjustment identifier1012and determines if the occupant adjustments indicate discomfort at the adjustment times, according to some embodiments. In some embodiments, occupant adjustment manager1020receives the vector of values of the zone temperature Tzone,iand the vector of values of the setpoint Tsp,ifrom data collector1010. In some embodiments, occupant adjustment manager1020also receives the vector of values of the MPC or estimated setpoint TMPC,i. In some embodiments, occupant adjustment manager1020also receives a unit enable vector Eiand a mode vector Bmode,ifrom data collector1010.

Occupant adjustment manager1020uses the zone temperature and the setpoint values corresponding to the times that occupant adjustment identifier1012determines that occupant setpoint adjustments have been made. In some embodiments, occupant adjustment manager1020determines a filtered vector of adjustment times, tadj,filtered. In some embodiments, the filtered vector of adjustment times tadj,filteredis a filtered version of tadjthat removes or disregards certain occupant setpoint changes (e.g., occupant setpoint changes that do not indicate discomfort).

Occupant adjustment manager1020can perform the following procedure for each of the adjustment times indicated by the vector tadj. For example, if the vector tadjincludes five adjustment times, occupant adjustment manager1020performs the following techniques for each of the adjustment times in tadjwith the corresponding values of vectors Tzone,i, Tsp,i, TMPC,i, Ei, and Bmode,i(e.g., five times, once for each adjustment time). Occupant adjustment manager1020can retrieve the corresponding values of Tzone,i,TMPC,i, and Tsp,iat the adjustment times. For example, occupant adjustment manager1020can retrieve the values of Tzone,i, TMPC,i, and Tsp,ifor the various values of tadj.

If the value of Bmode,iindicates that building equipment612is in the cooling mode of operation at the time of the occupant setpoint change, occupant adjustment manager1020determines a difference between the zone temperature and the estimated or MPC setpoint, according to some embodiments. Occupant adjustment manager1020can determine Tzone,i−TMPC,ifor occupant setpoint changes when building equipment612is in the cooling mode of operation. Occupant adjustment manager1020can also compare the corresponding values of TMPC,iand Tspto each other to determine if the estimated/MPC setpoint value is less than or greater than (or equal to) the actual setpoint temperature. If both Tzone,i−TMPC,iis greater than a predetermined threshold value (e.g., 1 degree Celsius), and TMPC,iis greater than the Tsp,i, occupant adjustment manager1020determines that the occupant setpoint change should be disregarded since either the zone temperature is in a transient phase or the system is saturated. Occupant adjustment manager1020can perform this process for each of the identified adjustment times (e.g., for all of the values of tadj) to determine which of the occupant setpoint changes should be removed.

If the value of Bmode,iindicates that building equipment612is in the heating mode of operation at the time of the occupant setpoint change, occupant adjustment manager1020determines a difference between the estimated or MPC setpoint and the zone temperature, according to some embodiments. Occupant adjustment manager1020can determine TMPC,i−Tzone,ifor occupant setpoint changes when building equipment612is in the heating mode of operation. Occupant adjustment manager1020can also compare the corresponding values of TMPC,iand Tspto each other to determine if the estimated/MPC setpoint value is less than or greater than (or equal to) the actual setpoint temperature. If both TMPC,i−Tzone,iis greater than a predetermined threshold value (e.g., 1 degree Celsius), and TMPC,iis less than Tsp,i, occupant adjustment manager1020determines that the occupant setpoint change should be disregarded since either the zone temperature is in a transient phase or the system is saturated. Occupant adjustment manager1020can perform this process for each of the identified adjustment times (e.g., for all of the values of tadj) to determine which of the occupant setpoint changes should be removed.

If the setpoint Tsp,iis between the zone temperature Tzone,iand the MPC setpoint TMPC,i, occupant adjustment manager1020disregards these occupant setpoint changes, according to some embodiments. These occupant setpoint changes can be removed by occupant adjustment manager1020regardless of a mode of operation of building equipment612. Occupant adjustment manager1020performs these processes to remove various occupant setpoint changes to generate the reduced or filtered set/vector of occupant setpoint changes tadj,filtered. In some embodiments, occupant adjustment manager1020provides the reduced set of occupant setpoint changes tadj,filteredto subset manager1016and setpoint adjuster1018.

Subset manager1016receives the reduced set of occupant setpoint changes tadj,filteredfrom occupant adjustment manager1020as well as the time vector t from data collector1010. Subset manager1016is configured to analyze the time vector t to identify various day types and setpoint changes that occur during these day types. In some embodiments, subset manager1016partitions the reduced set of occupant setpoint changes tadj,filteredinto subsets by day type. Subset manager1016can define day types based on weekday or weekend, day of the week, holidays, occupancy schedules, occupant work schedules, etc. For example, if subset manager1016partitions the reduced set of occupant setpoint changes tadj,filteredinto weekday and weekend subsets, subset manager1016can create a first subset of the occupant setpoint changes tadj,filteredthat occur during weekends (e.g., that occur on Saturdays and Sundays) and a second subset of the occupant setpoint changes tadj,filteredthat occur during weekdays (e.g., that occur on any of Monday, Tuesday, Wednesday, Thursday, or Friday). Likewise, subset manager1016can create seven subsets of the occupant setpoint changes tadj,filteredto partition the occupant setpoint changes tadj,filteredinto weekday subsets.

In some embodiments, subset manager1016further divides each of the subsets (partitioned by day types) into various time periods for each day. For example, subset manager1016can partition each day into an ndailyamount of time periods. In some embodiments, ndailytime periods depends on the day type. For example, weekdays may be partitioned into four time periods, while weekends may be partitioned into 12 time periods. In some embodiments, ndailytime periods is the same for all day types.

In some embodiments, subset manager1016divides the reduced set of occupant changes tadj,filteredfor each day, regardless of day type, into the same ndailyamount of time periods. For example, the reduced set of occupant changes tadj,filteredcan be divided into two sets (weekday and weekend). The two sets of weekday and weekend occupant setpoint changes are divided into four time periods for each day (e.g., a first time period from midnight to 6 AM, a second time period from 6 AM to noon, a third time period from noon to 6 PM, and a fourth period from 6 PM to midnight), according to some embodiments. In some embodiments, the time periods are equal in length/duration (e.g., 24/4=6 hours). In some embodiments, the time periods of each day are unequal in length/duration. For example, the first time period may be 6 hours (from midnight to 6 AM), the second time period may be 6 hours (from 6 AM to noon), the third time period may be 9 hours (from noon to 9 PM), and the fourth time period may be 3 hours (from 9 PM to midnight). In some embodiments, occupant setpoint changes that occur during similar day types and similar time periods are aggregated. For example, all of occupant setpoint changes of the first time period of weekdays can be aggregated, all of the occupant setpoint changes of the second time period of weekdays can be aggregated, etc.

Subset manager1016provides setpoint adjuster1018with the reduced set of occupant changes tadj,filtereddivided or partitioned by day type and daily time periods. Setpoint adjuster1018is configured to receive the reduced set of occupant changes tadj,filtereddivided/partitioned according to day type and daily time periods and use the reduced set of occupant changes tadj,filteredto adjust the setpoint boundaries (i.e., to increase or decrease Tsp,min,iand Tsp,max,iconcurrently or independently).

Setpoint adjuster1018is configured to count the number of occupant setpoint increases and decreases for each daily time period of each day type of the reduced set of occupant setpoint changes tadj,filtered, according to some embodiments. In some embodiments, setpoint adjuster1018counts the number of setpoint increases and decreases for each daily time period of each day type of the reduced set of occupant setpoint changes tadj,filteredsince a previous setpoint boundary adjustment (e.g., time tsp,adjust).

The number of occupant setpoint increases counted for the first time period of the weekend day type is referred to as n1,we,inc, according to some embodiments. The number of occupant setpoint increases counted for the second time period of the weekend day types is referred to as n2,we,inc, according to some embodiments. The number of occupant setpoint increases counted for the second time period of the weekend day types is referred to as n3,we,inc, according to some embodiments. The number of occupant setpoint increases counted for the second time period of the weekend day types is referred to as n4,we,inc, according to some embodiments. The number of occupant setpoint decreases counted for the various time periods of the weekend day type are referred to similarly as variables n1,we,dec, n2,we,dec, n3,we,dec, and n4,we,dec, according to some embodiments. Similar variables are defined for weekday occupant setpoint increases/decreases that are counted by setpoint adjuster using “wd” as the second subscript.

Generally, the number of occupant setpoint changes counted by setpoint adjuster1018based on the reduced set of occupant setpoint changes tadj,filteredare referred to as variables nx,y,z, where the first subscript x is an integer indicating which time period of day the count is associated with (e.g., 1 for the first time period, 2 for the second time period, etc.), the second subscript y is the day type (e.g., “we” for weekend day type, “wd” for weekday day type, etc.), and the third subscript z indicates whether the count is for occupant setpoint increases or decreases (e.g., “inc” or “dec”).

In some embodiments, for each of the time periods of each day, setpoint adjuster1018considers setpoint increases as positive values and setpoint decreases as negative values (e.g., +1 or −1). In this way, the number of occupant setpoint changes counted by setpoint adjuster1018can be referred to as variables nx,y, where the first subscript x is an integer indicating which time period of day the count is associated with (e.g., 1 for the first time period, 2 for the second time period, etc.), the second subscript y is the day type (e.g., “we” for weekend day type, “wd” for weekday day type, etc.), and the value of n is a sum of setpoint increases or decreases across a corresponding daily time period, with setpoint increases increasing nx,yby some predetermined amount, and setpoint decreases decreasing nx,yby the predetermined amount.

In some embodiments, the counters nx,y,zand/or the counters nx,yare normalized based on a proportion of time duration of day type. For example, if tadj,filteredis collected over a week, and is partitioned/divided according to weekday/weekend day type, the counters can be normalized by a factor of 5/7 or 2/7. Generally, the counters can be normalized according to a proportion of day type time to total time. In the case of a week, the total time duration that tadj,filteredis collected over is 7 days, while the time duration of weekend day type if 2 days, and the time duration of weekday day types if 5 days. Accordingly, the counters can be normalized such as

For example, if setpoint adjuster1018counts 10 setpoint increases over the second daily time period of a particular weekday, and 5 setpoint decreases over the second daily time period of the particular weekday, then n2,wd,inc=10, n2,wd,dec=2, and n2,wd,inc=n2,wd,inc−n2,wd,dec=8. Setpoint adjuster1018can count setpoint increases and decreases cumulatively (e.g., with setpoint increases being a positive value and setpoint decreases being a negative value) or can count setpoint increases and decreases separately.

In some embodiments, setpoint adjuster1018compares nx,y,zand/or nx,yto a predetermined threshold value. In some embodiments, the predetermined threshold value is a minimum amount of setpoint changes that trigger setpoint boundary changes. The predetermined threshold value can be the same for setpoint increases and setpoint decreases or can be different for setpoint increases and decreases. In some embodiments, the predetermined threshold value is referred to as nthreshold(or nthreshold,incand nthreshold,decif the increase and decrease thresholds are different).

If nx,y,zfor a particular daily time period (e.g., the first daily time period) of a particular day type exceeds nthresholdof any day of a particular day type, setpoint adjuster1018increases both Tsp,min,iand Tsp,max,iin the direction of the setpoint change, according to some embodiments. For example, if n2,we,incis greater than (or greater than or equal to) nthresholdfor any of the days, setpoint adjuster1018increases both Tsp,min,iand Tsp,max,iin the direction of the setpoint changes (e.g., an increase in this example). In some embodiments, setpoint adjuster1018increases both Tsp,min,iand Tsp,max,iin the direction of the setpoint change for all similar day types and time periods.

For example, in the case when the day type is divided according to weekend and weekday and each day is divided into four time periods, setpoint adjuster1018can identify if any of the setpoint increases or decreases of any of the first time period of any similar day types exceeds the corresponding threshold values. If n1,wd,incof any weekdays exceeds nthreshold, setpoint adjuster1018can increase the setpoint boundaries of the first time period of all weekdays (all similar day types) by a predetermined amount. Likewise, if n1,wd,decexceeds nthreshold, setpoint adjuster1018can decrease the setpoint boundaries of the first time period of all weekdays (all similar day types) by the predetermined amount. If both n1,wd,incand n1,wd,decexceed the threshold nthreshold, the setpoint boundaries are increased or decreased by the predetermined amount in the direction of whichever of n1,wd,incand n1,wd,decis greater. If n1,wd,incand n1,wd,decare equal to each other, the setpoint boundaries are not changed, according to some embodiments.

Setpoint adjuster1018repeats this process for every time period (e.g., the first, second, third, and fourth time period) and for each day type (e.g., weekday and weekend), according to some embodiments. In some embodiments, setpoint adjuster1018proceeds to increase or decrease both of the setpoint boundaries Tsp,min,iand Tsp,max,ithe predetermined amount ΔTsp. In some embodiments, the predetermined amount ΔTspis one degree Celsius. In this way, the setpoint boundaries can be increased or decreased for similar time periods of similar day types to maintain occupant comfort. When the setpoint boundaries are adjusted, setpoint adjuster1018rewrites or redefines the time tsp,adjustas the current time (the time at which the setpoint boundaries are adjusted), according to some embodiments. Setpoint adjuster1018can increase or decrease the setpoint boundaries Tsp,min,iand Tsp,max,ifor each daily time period independently (e.g., increasing certain first time periods, but not other first time periods) or can increase/decrease the setpoint boundaries for all of a particular type of time period (e.g., increasing the setpoint boundaries for all of the first time periods).

In some embodiments, the setpoint boundaries (i.e., Tsp,min,iand Tsp,max,i) are adjusted the same amount in the same direction such that an offset (e.g., a delta value) between the setpoint boundaries remains the same. In some embodiments, the setpoint boundaries are adjusted (e.g., increased or decreased) independently such that the offset between the setpoint boundaries changes. For example, Tsp,min,iand Tsp,max,ican be increased or decrease independently from each other or different amounts (e.g., in different amounts and/or in different directions). For example setpoint adjuster1018can determine that the minimum setpoint boundary of a particular daily time period should be increased for weekdays, but that the maximum setpoint boundary of the particular daily time period should be decreased for all weekdays.

In some embodiments, setpoint adjuster1018updates the time tsp,adjustwith the current time in response to changing or updating setpoint boundaries or the setpoint of room607. Setpoint adjuster1018can then use the updated time tsp,adjustfor future iterations and future determinations of setpoint boundary adjustments or setpoint adjustments.

Setpoint adjuster1018can provide the adjusted setpoint boundaries (i.e., Tsp,min,iand Tsp,max,i) to feedback controller1022and MPC system630. In some embodiments, MPC system630uses the adjusted setpoint boundaries to perform an optimization. For example, MPC system630can apply the adjusted setpoint boundaries as constraints to a cost function. MPC system630can determine an MPC setpoint for room607that minimizes costs but is within the adjusted setpoint boundaries. In some embodiments, MPC system630provides the MPC setpoint to feedback controller1022.

Feedback controller1022can use the MPC setpoint and the adjusted setpoint boundaries to operate building equipment612. In some embodiments, feedback controller1022is configured to generate a value of a manipulated variable u based on the adjusted setpoint boundaries and the MPC setpoint. The manipulated variable u can indicate a mode of operation of building equipment612(e.g., heating mode, cooling mode, standby, etc.). In some embodiments, feedback controller1022provides the value of the manipulated variable u to control signal generator1024. Feedback controller1022can also be configured to receive zone temperature from data collector/aggregator1010, according to some embodiments. In some embodiments, feedback controller1022uses the zone temperature received from data collector/aggregator1010as a performance variable y. Feedback controller1022can be configured to perform any closed loop feedback control scheme. For example, feedback controller1022can use a PI control scheme, a PID control scheme, a self-optimizing control scheme, an extremum seeking control scheme, etc.

Control signal generator1024receives the value of the manipulated variable u and generates control signals for building equipment612based on the manipulated variable u, according to some embodiments. In some embodiments, control signal generator1024provides the control signals to building equipment612to operate building equipment612to affect an environmental condition or variable state of room607. In some embodiments, building equipment612uses the control signals to provide heating or cooling to room607to affect a temperature in room607.

Referring still toFIG. 10, setpoint adjuster1018can be configured to adjust the setpoint boundaries independently. In some embodiments, the setpoint boundaries (i.e., Tsp,min,iand Tsp,max,i) as described in greater detail above are setpoint boundaries used by MPC system630to perform cost optimization. In some embodiments, setpoint adjuster1018defines new setpoint boundaries and adjusts the new setpoint boundaries. In some embodiments, the new setpoint boundaries (e.g., the new minimum and maximum allowable temperature boundaries) are used by setpoint adjuster1018to ensure that the MPC setpoint boundaries (e.g., Tsp,min,iand Tsp,max,i) are maintained within these adjusted boundaries.

Setpoint adjuster1018can use any of the techniques, functionality, methods, processes, approaches, etc., described in greater detail above to adjust the new boundaries. For each time period, if any of the number of setpoint increases or the number of setpoint decreases exceeds the corresponding threshold, setpoint adjuster1018adjusts/offsets one of the new setpoint boundaries in the direction of occupant adjustments (e.g., setpoint adjuster1018increases one of the new setpoint boundaries by 1 degree Celsius in response to the number of setpoint increases exceeding the corresponding threshold value or decreases one of the new setpoint boundaries by 1 degree Celsius in response to the number of setpoint decreases exceeding the corresponding threshold value). If the number of setpoint increases and decreases (e.g., as adjusted by the occupants) are equal, setpoint adjuster1018does not change the new setpoint boundaries, according to some embodiments.

In some embodiments, setpoint adjuster1018increases or decreases one of the new setpoint boundaries based on a mode of operation of building equipment712. For example, if building equipment712is in a heating mode of operation, setpoint adjuster1018can determine to increase/decrease an upper one of the new setpoint boundaries while if building equipment is in a cooling mode of operation, setpoint adjuster1018can determine to increase/decrease a lower one of the new setpoint boundaries, or vice versa.

In some embodiments, setpoint adjuster1018increases or decreases a difference between the new setpoint boundaries. For example, setpoint adjuster1018may increase the upper one of the new setpoint boundaries by some amount while decreasing the lower one of the new setpoint boundaries by the same amount. In some embodiments, setpoint adjuster1018decreases the upper one of the new setpoint boundaries while increasing the lower one of the new setpoint boundaries.

If any of the changes to the new setpoint boundaries results in a difference between the upper and lower of the new setpoint boundaries being less a predetermined threshold (e.g., 2 degrees Celsius, which may be specified as an internal parameter), then setpoint adjuster1018can increase or decrease the lower one or the upper one of the new setpoint boundaries to maintain the predetermined threshold, depending on which of the lower or upper one of the new setpoint boundaries are currently being adjusted.

Advantageously, using separate setpoint boundaries for comfort and MPC system630enables the occupants to specify setpoint boundary patterns while also allowing setpoint adjustment controller604to adjust the setpoint boundaries to maintain the user specified setpoint boundary pattern. Using the new setpoint boundaries, the MPC setpoint boundaries (e.g., and Tsp,min,iand Tsp,max,i) can be adjusted by setpoint adjuster1018.

If the lower/minimum of the new setpoint boundaries exceeds the minimum MPC setpoint boundary (i.e., setpoint adjuster1018can increase the minimum MPC setpoint boundary (i.e., to be equal to the lower/minimum of the new setpoint boundaries. At the same time, setpoint adjuster1018can increase the maximum MPC setpoint boundary (i.e., Tsp,max,i) to the smaller of (1) the maximum MPC setpoint boundary (e.g., Tsp,max,i) plus the amount that the minimum MPC setpoint boundary is increased, or (2) the maximum/upper of the new setpoint boundaries.

If the upper/maximum of the new setpoint boundaries exceeds the maximum MPC setpoint boundary (i.e., Tsp,max,i), setpoint adjuster1018can decrease the maximum MPC setpoint boundary to be equal to the upper/maximum of the new setpoint boundaries. At the same time, setpoint adjuster1018can decrease the minimum MPC setpoint boundary (i.e., Tsp,min,i) to the larger of (1) the minimum MPC setpoint boundary (i.e., Tsp,min,i) minus the amount that the maximum MPC setpoint boundary is increased or (2) the minimum/lower of the new setpoint boundaries.

Setpoint adjuster1018can adjust the MPC setpoint boundaries using the techniques described hereinabove and provide MPC system630with the adjusted/updated MPC setpoint boundaries (e.g., Tsp,min,iand Tsp,max,i).

In some embodiments, setpoint adjuster1018is configured to partition occupant setpoint adjustment data (e.g., the filtered setpoint data) into time period bins (e.g., daily time periods and day types). In some embodiments, each bin is specific to a particular day type (e.g., a weekend day type, a weekday day type, etc.) as well as a particular daily time period within that day type (e.g., from 9 AM to 10 AM). In some embodiments, the occupant comfort data collected during corresponding daily time periods on days having a corresponding or same day type are sorted into the same time period bin. In some embodiments, setpoint adjuster1018partitions, sorts, divides, etc., the setpoint data and/or the filtered setpoint data into bins using any of the techniques described herein, or using any of the techniques described in greater detail with reference to U.S. application Ser. No. 13/439,779, filed Apr. 4, 2012, now U.S. Pat. No. 9,606,520, the entire disclosure of which is incorporated herein by reference. Setpoint adjuster1018can adjust the setpoint, setpoint boundaries, new setpoint boundaries, etc., for common time period bins. For example, in response to the number of occupant setpoint adjustments/overrides exceeding a corresponding threshold value for a particular time period bin, setpoint adjuster1018can increase or decrease the setpoint boundaries for all other time period bins that share a common time attribute (e.g., a same day type and/or a same daily time period).

Sample Graphs

Referring now toFIG. 11, a graph1100illustrates the various time periods over which setpoint adjuster1018can count occupant initiated setpoint adjustments, according to some embodiments. Graph1100shows a weekend time interval1102and a weekday time interval1104. Weekend time interval1102includes two days (i.e., Saturday and Sunday), according to some embodiments. Weekday time interval1104includes five days (i.e., Monday, Tuesday, Wednesday, Thursday, and Friday), according to some embodiments. Weekend time interval1102includes weekend day types (“we”), while weekday time interval1104includes weekday day types (“wd”). Each day of weekend time interval1102and weekday time interval1104can be divided or partitioned into a predetermined number of daily time periods. For example, graph1100shows each day of both weekend time interval1102and weekday time interval1104being divided or partitioned into four daily time periods.

Setpoint adjuster1018is configured to count the number of occupant initiated increases or decreases of the setpoint that indicate discomfort for each daily time period of each day type. For example, setpoint adjuster1018can generate the counters nx,y,z, as shown inFIG. 11for each daily time period of each day type. Setpoint adjuster1018can adjust the setpoint boundaries (e.g., the MPC setpoint boundaries or the new setpoint boundaries) in response to the counters exceeding a predetermined threshold value.

For example, setpoint adjuster1018may count 5 setpoint increases over the first time period of Saturday (i.e., ni,we,inc=5) that indicate occupant discomfort. In response to counting 5 setpoint increases over the first time period of Saturday that indicate occupant discomfort (if the threshold/trigger value is less than 5), setpoint adjuster1018may (1) adjust setpoint boundaries associated with the first daily time period of all weekend day types, (2) adjust setpoint boundaries associated with the first daily time period of all days (both weekday and weekend type days), or (3) adjust setpoint boundaries associated with any time period of a weekend day type. Likewise, if setpoint adjuster1018counts 10 setpoint increases over the second time period of Tuesday (i.e., n2,wd,dec) that indicate occupant discomfort, and the threshold/trigger value is less than 10, setpoint adjuster1018may adjust setpoint boundaries associated with all of the second daily time periods of weekday type days.

In some embodiments, setpoint adjuster1018adjusts setpoint boundaries in response to at least one of the counters for a particular time period of a particular day type exceeding the threshold value. If the occupant setpoint changes result in contradictory setpoint adjustments (e.g., if one of the counters n3,wd,dec=10 and one of the counters n3,wd,inc=10 where the trigger/threshold value is 10 or less), setpoint adjuster1018can change the definition of day types (e.g., increase the granularity of day types). For example, in this case, setpoint adjuster1018may increase the granularity of day types so that every day of the week is a day type (e.g., seven day types).

Referring now toFIG. 12, a graph1200showing temperature setpoint over time includes series1208and series1210. Series1208represents Tsp,min,iand series1210represents according to some embodiments. As shown in graph1200, both Tsp,min,iand Tsp,max,iare adjusted (e.g., increased) by an offset amount1202. Setpoint adjuster1018can adjust (e.g., increase or decrease by offset amount1202) both Tsp,min,iand Tsp,max,iin response to the number of occupant setpoint changes indicating occupant discomfort and exceeding a corresponding threshold value.

Referring now toFIGS. 13-14, graphs1300and1400show how setpoint adjustment controller604can adjust MPC setpoint boundaries1302and1304over time, according to some embodiments. In graph1300, minimum and maximum allowable setpoint boundaries1306and1308are outside of MPC boundaries1302and1304, and therefore setpoint adjustment controller604does not adjust MPC boundaries1302and1304. Setpoint adjustment controller604can adjust minimum setpoint boundary1306and maximum setpoint boundary1308until minimum setpoint boundary1306is greater than minimum MPC boundary1302and/or until maximum setpoint boundary1308is less than maximum MPC boundary1304. In graph1400, during one time period, minimum setpoint boundary1306exceeds minimum MPC boundary1302, and therefore MPC boundaries1302and1304are adjusted using any of the techniques, methods, approaches, etc., described in greater detail above with reference toFIG. 10.

Referring now toFIGS. 15 and 16, graphs1500and1600show the differences between an offset based approach (e.g., by simply offsetting the minimum and maximum setpoint boundaries) and a minimum/maximum allowable setpoint approach that setpoint adjuster1018can use, according to some embodiments. Graph1500includes minimum MPC setpoint boundary1502and maximum MPC setpoint boundary1504, according to some embodiments. Graph1500also includes adjusted minimum MPC setpoint boundary1508and adjusted maximum MPC setpoint boundary1506. Setpoint adjuster1018can adjust minimum MPC setpoint boundary1502and maximum MPC setpoint boundary1504by offsetting boundaries1502and1504a predetermined amount (e.g., 1 degree Celsius) to account for occupant setpoint changes. Advantageously, adjusting boundaries1502and1504facilitates maintaining occupant comfort and tailoring MPC system630to occupant preferences.

Setpoint Adjustment Processes

Referring now toFIG. 17, a process1700for adjusting setpoint boundaries based on occupant setpoint overrides is shown. Process1700includes steps1702-1728. Process1700can be performed by setpoint adjustment controller604. Process1700can be performed to increase or decrease setpoint boundaries to maintain occupant comfort within a space.

Process1700includes collecting weather data from a weather service (step1702), according to some embodiments. The weather data can include any of relative humidity, outside temperature, outside air temperature, solar irradiance, cloud cover, etc. The weather data can be collected from a weather service (e.g., weather service902), or from sensors. In some embodiments, historical weather data is collected. In some embodiments, step1702is performed by data collector/aggregator1010.

Process1700includes collecting zone data from zone controllers or thermostats (step1704), according to some embodiments. In some embodiments, the zone data includes any of temperature setpoints, setpoint adjustments, zone temperature, mode of operation of building equipment, etc. Step1704can be performed by data collector/aggregator1010. In some embodiments, the zone data collected from the zone controllers or thermostats is historical data. In some embodiments, the zone data is collected from thermostats622.

Process1700includes identifying times that the occupant adjusted the zone setpoint (step1706), according to some embodiments. In some embodiments, the times at which the occupant adjusted the zone setpoint are determined based on the zone setpoint data received in step1704. Step1706can include determining if the occupant increased or decreased the zone setpoint, according to some embodiments. In some embodiments, step1706is performed by occupant adjustment identifier1012using any of the techniques, functionality, methods, approaches, etc., described in greater detail above with reference toFIG. 10.

Process1700includes determining if the occupant adjustments to the zone setpoint indicate occupant discomfort (step1708), according to some embodiments. In some embodiments, step1708is performed by occupant adjustment manager1020using any of the techniques, functionality, etc., described in greater detail above with reference toFIG. 10. In some embodiments, step1708includes filtering the zone setpoint data by removing occupant adjustments that dot not indicate occupant discomfort. In some embodiments, step1708includes identifying occupant setpoint adjustments/overrides that indicate occupant discomfort and removing other occupant setpoint adjustments/overrides that do not indicate occupant discomfort.

Process1700includes partitioning a time period into day types (step1710), according to some embodiments. In some embodiments, the time period is time duration of the filtered setpoint data that does not include occupant setpoint changes that do not indicate occupant discomfort. In some embodiments, the occupant setpoint changes/overrides of step1710are partitioned into day types. The day types can include any of weekday and weekend, day of the week, holidays, occupant schedules, etc. In some embodiments, step1710is performed by subset manager1016.

Process1700includes partitioning each day of into time periods (step1712), according to some embodiments. The filtered setpoint data can be further partitioned into daily time periods. For example, the filtered setpoint data can be partitioned into four daily time periods. In some embodiments, the daily time periods have a same time duration. In other embodiments, some of the daily time periods are longer or shorter than each other. Step1712can be performed by subset manager1016. The occupant overrides can be filtered into the daily time periods by subset manager1016.

Process1700includes counting setpoint increases and decreases that indicate occupant discomfort for each time period of each day type since a previous offset change time (step1714), according to some embodiments. Step1714can include counting setpoint increases and setpoint decreases independently (e.g., with separate counters). Step1714can include counting the setpoint increases and decreases for each daily time period of each day type. Step1714can be performed by setpoint adjuster1018.

Process1700includes determining if a number of setpoint increases is equal to a number of setpoint decreases (step1716), according to some embodiments. Step1716can be performed for each daily time period of each day type. For example, step1716can be performed four times for each day of each day type (if four daily time periods are used). Step1716can be performed by setpoint adjuster1018.

In response to the number of setpoint increases being equal to the number of setpoint decreases (step1716, “YES”), process1700proceeds to keeping setpoint boundaries the same (step1722), according to some embodiments. In some embodiments, steps1716and1722are performed for each daily time period of each day of each day type. In some embodiments, if all of the setpoint increases and decreases are equal for a particular daily time period of a particular day type (step1716, “YES”), process1700proceeds to step1722. In some embodiments, step1722is performed by setpoint adjuster1018.

Process1700includes checking if the number of setpoint increases is greater than a threshold (step1718), according to some embodiments. In some embodiments, step1718is performed concurrently with step1716. In some embodiment, step1718is performed in response to the number of setpoint increases not being equal to the number of setpoint decreases (step1716, “NO”). In some embodiments, step1718is performed by setpoint adjuster1018. In some embodiments, step1718is performed for each daily time period of each day of each day type. In some embodiments, if any of the number of setpoint increases of any daily time period of one or more days of a particular day type exceeds the threshold value (step1718, “YES”), process1700proceeds to step1724.

Process1700includes increasing setpoint boundaries for a specific daily time period of a specific day type (step1724) in response to the number of setpoint increases exceeding the threshold value (step1718, “YES”), according to some embodiments. In some embodiments, step1724includes increasing both minimum and maximum setpoint boundaries for all similar daily time periods of a particular day type in response to one or more of the number of setpoint increases for a similar daily time period exceeding the threshold value. For example, if the number of setpoint increases of one or more of the first daily time periods of a weekday day type exceed the threshold value (step1718, “YES”), step1724can include increasing the setpoint boundaries (e.g., both the minimum and the maximum setpoint boundaries) of all the first daily time periods of weekday day types by a predetermined amount. In some embodiments, step1724is performed by setpoint adjuster1018.

Process1700includes checking if the number of setpoint decreases is greater than a threshold (step1720), according to some embodiments. In some embodiments, the threshold of step1720is the same as the threshold of step1718. In some embodiments, the threshold of step1720is greater than or less than the threshold of step1718. Step1720can be performed concurrently with step1718. In some embodiments, step1720is performed by setpoint adjuster1018. In some embodiments, if the number of setpoint decreases are greater than the threshold for any daily time periods of any days of a particular day type (step1720, “YES”), process1700proceeds to step1722.

Process1700includes decreasing the setpoint boundaries (step1726) in response to the number of setpoint decreases exceeding the threshold (step1720, “YES”), according to some embodiments. In some embodiments, both the minimum and the maximum setpoint boundaries are decreased in response to the number of setpoint decreases exceeding the threshold. In some embodiments, step1726includes decreasing the setpoint boundaries for a corresponding daily time period. For example, if the number of setpoint decreases for a second daily time period of a weekend day type exceeds the threshold (step1720, “YES”), step1726can include decreasing the setpoint boundaries of the second daily time period for all weekend day types.

Process1700includes keeping the setpoint boundaries the same (step1722) in response to the number of setpoint decreases not exceeding the threshold (step1720, “NO”), according to some embodiments. In some embodiments, step1722is performed for each daily time period of each day type in response to the number of setpoint increases/decreases being less than the corresponding threshold. For example, if the setpoint increases and decreases of all of the third daily time periods of weekday day types are less than the corresponding threshold values, process1700can proceed to step1722and may keep the setpoint boundaries the same.

In some embodiments, process1700includes updating the previous offset change time with a current time in response to adjusting (e.g., increasing or decreasing) the setpoint boundaries. Specifically, process1700can include updating the previous offset change time with the current time in response to performing step1724or step1726. In some embodiments, steps1724and1726include increasing or decreasing the setpoint boundaries by a predetermined amount (e.g., 1 degree Celsius).

Process1700can be performed by setpoint adjustment controller604to adjust or tailor the setpoint boundaries to occupant preferences. In some embodiments, the setpoint boundaries are used to control equipment to adjust or affect an environmental condition of an occupied space. In some embodiments, the setpoint boundaries are provided to and used by MPC system630. If the number of setpoint increases and the number of setpoint decreases for a particular daily time period both exceed the corresponding thresholds (e.g., steps1718and1720, “YES”), the setpoint boundaries can be increased or decreased based on whether the setpoint was increased or decreased more frequently. For example, if both the number of setpoint increases and the number of setpoint decreases exceed the threshold value, but the number of setpoint increases is greater than the number of setpoint decreases, process1700can proceed to step1724. Likewise, if both the number of setpoint increases and the number of setpoint decreases exceed the corresponding threshold values, but the number of setpoint decreases is greater than the number of setpoint increases, process1700can proceed to step1726.

Referring now toFIGS. 18A-18B, a process1800for adjusting setpoint boundaries is shown. Process1800includes steps1802-1832, according to some embodiments. In some embodiments, process1800includes steps that are the same as or similar to steps in process1700. Process1800can be performed by setpoint adjustment controller604.

Process1800includes performing steps1702-1714or process1700(step1802), according to some embodiments. In some embodiments, steps1702-1714of process1700are performed to identify, partition, and count setpoint adjustments (e.g., increases or decreases) that are occupant initiated.

Process1800includes defining new allowable setpoint boundaries (step1804), according to some embodiments. In some embodiments, the new allowable setpoint boundaries are defined by an occupant or by an occupant's preferred schedule. In some embodiments, step1804includes defining Tmin,newand Tmax,new. In some embodiments, the new minimum and maximum boundaries are used by setpoint adjustment controller604to maintain occupant comfort. In some embodiments, the new minimum and maximum boundaries are used to operate building equipment configured to affect an environmental condition of an occupied space. Boundaries used by MPC system630can be referred to as Tmin,MPCand Tmax,MPC. In some embodiments, step1804is performed by setpoint adjuster1018.

Process1800includes steps1806-1818, according to some embodiments. In some embodiments, steps1806-1818are the same as or similar to steps1716-1722of process1700. In some embodiments, process1800performs some or all of steps1806-1810concurrently. In some embodiments, process1800performs steps1806,1810, and1814concurrently.

Process1800includes determining/checking if the number of setpoint increases is equal to the number of setpoint decreases (step1806), according to some embodiments. In some embodiments, step1806is the same as or similar to step1716. If the number of setpoint increases are equal to the number of setpoint decreases for a particular daily time period of a particular day type (step1806, “YES”), process1800proceeds to step1808and keeps the new allowable setpoint boundaries the same.

Process1800includes determining if the number of setpoint increases is greater than a corresponding threshold (step1810), according to some embodiments. In some embodiments, step1810is the same as or similar to step1716of process1700. If the number of setpoint increases exceeds the corresponding threshold (step1810, “YES”), process1800proceeds to step1812, according to some embodiments. Process1800includes increasing a setpoint boundary range between Tmin,newand Tmax,new(step1812) in response to determining that the number of setpoint increases exceeds or is equal to the corresponding threshold value (step1810, “YES”), according to some embodiments. In some embodiments, one of the new allowable setpoint boundaries is increased (e.g., only Tmin,newor Tmax,newis increased). In some embodiments, the new allowable setpoint boundaries are increased independently from each other. In some embodiments, the new allowable setpoint boundaries are increased (or decreased in step1816) a predetermined amount (e.g., by 1 degree Celsius).

Process1800includes determining if the number of setpoint decreases exceeds a corresponding threshold value (step1814), according to some embodiments. In some embodiments, step1814is the same as or similar to step1720of process1700. In some embodiments, if the number of setpoint decreases exceeds the corresponding threshold value (step1814, “YES”), process1800proceeds to step1816. Process1800includes decreasing the setpoint boundary range (e.g., decreasing one or both of Tmin,newor Tmax,new, step1816) in response to the number of setpoint decreases exceeding the corresponding threshold value (step1814, “YES”). Process1800includes keeping the setpoint boundary range the same (step1818) in response to the number of setpoint decreases not exceeding (e.g., being less than) the corresponding threshold value (step1814, “NO”), according to some embodiments.

In response to performing steps1806-1818, process1800proceeds to determining if the new minimum setpoint boundary Tmin,newis greater than Tmin,MPC(step1820), according to some embodiments. In some embodiments, if the new minimum setpoint boundary Tmin,newis greater than Tmin,MPC(step1820, “YES”), process1800proceeds to step1822. If the new minimum setpoint boundary Tmin,newis less than Tmin,MPC, process1800proceeds to step1826.

Process1800includes setting or increasing Tmin,MPCto be equal to Tmin,new(step1822), according to some embodiments. In some embodiments, step1822is performed in response to the new minimum setpoint boundary Tmin,newbeing greater than Tmin,MPC(step1820, “YES”). Process1800also includes increasing Tmax,MPCto be equal to the smaller of (1) Tmax,MPC+Tmin,MPC,incor (2) Tmax,new(step1824), where Tmin,MPC,incis the amount that Tmin,MPCwas increased to be equal to Tmin,newin step1822, according to some embodiments. In some embodiments, step1824is performed in response to step1822.

In some embodiments, process1800proceeds to step1826in response to performing step1824, or in response to the new minimum setpoint boundary Tmin,newbeing less than Tmin,MPC(step1820, “NO”). Step1826includes determining if the new maximum allowable setpoint boundary Tmax,newis less than Tmax,MPC, according to some embodiments. In some embodiments, if Tmax,newis less than Tmax,MPC(step1826, “YES”), process1800proceeds to step1828. In some embodiments, if Tmax,newis not less than Tmax,MPC(e.g., is greater than, is greater than or equal to, etc., step1826“NO”), process1800proceeds to step1832and ends.

Process1800includes setting or decreasing Tmax,MPCto be equal to Tmax,new(step1828) in response to Tmax,MPCbeing greater than Tmax,new(step1826, “YES”), according to some embodiments. In some embodiments, process1800proceeds to step1830in response to performing step1828. Step1830includes decreasing Tmin,MPCto be equal to the larger of (1) Tmin,MPC−Tmax,MPC,decor (2) Tmin,newwhere Tmax,MPC,decis the amount that Tmax,MPCwas decreased in step1828to be equal to Tmax,new. In response to performing step1830, process1800proceeds to step1832and ends. In some embodiments, steps1820-1830are performed by setpoint adjuster1018.

System Identification

Referring again toFIG. 10, setpoint adjustment controller604can be configured to perform a system identification experiment. Since setpoint adjustment controller604is configured to adjust setpoint boundaries, setpoints, etc., setpoint adjustment controller604can also be extended to adjust minimum and maximum temperature setpoint boundaries during a system identification experiment. System identification experiments are often executed during periods when a corresponding building (e.g., building10), room, space, zone, area, etc., is unoccupied, which allows a wide range of temperature values to be considered (e.g., by setpoint adjustment controller604). One goal of the system identification experiment is to provide a rich data set of training data to a system identification algorithm (e.g., that is performed by setpoint adjustment controller604or performed cooperatively with setpoint adjustment controller604), which indicates that HVAC equipment (e.g., building equipment612) is providing/removing sensible heat to/from the building. The training data is most useful if it captures a range of conditions of the HVAC equipment and the building space and demonstrates the temperature dynamics of the space in response to heating/cooling provided by the HVAC equipment. Therefore, it may be beneficial to operate the HVAC equipment to ensure that the building space is in a transient state (i.e., heating or cooling active) in order to best capture the temperature dynamics.

To ensure that a rich set of training data is generated for the system identification experiment, any of the functionality of setpoint adjustment controller604can be used to adjust temperature setpoints of the building or room during the system identification experiment to ensure that the HVAC system is providing heating/cooling to the building/space. In other words, the temperature setpoints can be artificially adjusted as part of the system identification experiment to ensure that the HVAC equipment are active and the temperature of the space is changing in order to capture system dynamics. Specifically, using the same data associated with the minimum and maximum allowable temperature-based approach (described in greater detail above with reference toFIGS. 10 and 18A-18B), setpoint adjustment controller604can be modified to also input HVAC heating and/or cooling loads.

Setpoint adjustment controller604can then determine if there is a significant heating/cooling need (i.e., a substantial heating/cooling load) with current setpoint ranges. If there is not a substantial heating/cooling load, setpoint adjustment controller604can adjust the setpoint boundaries accordingly such that additional heating/cooling is provided to the space. In this case, setpoint adjustment controller604can monitor the setpoint range and potentially adjust the setpoint range on an hourly or more granular basis as opposed to a daily or less granular basis.

User Override Enhancements

Referring still toFIGS. 9 and 10, setpoint adjustment controller604can be configured to allow a user to customize how MPC system630handles user overrides or occupant setpoint adjustments. In some embodiments, a separate algorithm is performed by setpoint adjustment controller604that functions as an MPC post-processor (e.g., running every 15 minutes) and requires a day of historical data along with predicted MPC results. This separate algorithm can allow a user to customize how MPC system630handles occupant setpoint adjustments, thereby providing additional flexibility. The input data used by the MPC post-processor for each zone607in a zone group can include a maximum occupant setpoint override persistence, MPC setpoints for the previous day plus one hour predicted, and an actual temperature setpoint over a previous day, according to some embodiments. In some embodiments, the default value of the maximum occupant setpoint override persistence is zero.

Setpoint adjustment controller604and/or MPC system630can check for occupant setpoint adjustments and persist them for as long as specified by the maximum occupant setpoint override persistence value. For each zone607in a zone group, setpoint adjustment controller604and/or MPC system630can determine if the actual setpoint is currently different then the MPC setpoint, which implies that the occupant has adjusted the setpoint, according to some embodiments. Setpoint adjustment controller604and/or MPC system630then computes a duration that the setpoint has been overridden, according to some embodiments. If the duration is less than the maximum occupant setpoint override persistence value, setpoint adjustment controller604and/or MPC system630then overrides the setpoint to the previous occupant dictated setpoint, according to some embodiments. If the duration is not less than the maximum occupant setpoint override persistence value, setpoint adjustment controller604and/or MPC system630maintains the current MPC setpoint, according to some embodiments. The the setpoint can then be used by setpoint adjustment controller604and provided to building equipment612(e.g., a VRF indoor unit).

Configuration of Exemplary Embodiments