# Patent application title: SYSTEMS AND METHODS FOR MEASURING AND VERIFYING ENERGY SAVINGS IN BUILDINGS

##
Inventors:
Kirk H. Drees (Cedarburg, WI, US)
Kirk H. Drees (Cedarburg, WI, US)
Michael J. Wenzel (Oak Creek, WI, US)
Michael J. Wenzel (Oak Creek, WI, US)

Assignees:
JOHNSON CONTROLS TECHNOLOGY COMPANY

IPC8 Class: AG05F166FI

USPC Class:
700291

Class name: Specific application, apparatus or process electrical power generation or distribution system energy consumption or demand prediction or estimation

Publication date: 2016-05-12

Patent application number: 20160132068

## Abstract:

A computer system for use with a building management system in a building
includes a processing circuit configured to use historical data received
from the building management system to automatically select a set of
variables estimated to be significant to energy usage in the building.
The processing circuit is further configured to apply a regression
analysis to the selected set of variables to generate a baseline model
for predicting energy usage in the building.## Claims:

**1.**A computer system for use with a building management system in a building, comprising: a processing circuit configured to use historical data received from the building management system to automatically select a set of variables estimated to be significant to energy usage in the building; wherein the processing circuit is further configured to apply a regression analysis to the selected set of variables to generate a baseline model for predicting energy usage in the building.

**2.**The computer system of claim 1, wherein the regression analysis is a partial least squares regression.

**3.**The computer system of claim 1, wherein the processing circuit is configured to re-execute the regression analysis with a different regression parameter in response to a determination that the baseline model does not accurately estimate energy usage for test data for a historical time period.

**4.**The computer system of claim 3, wherein the different regression parameter comprises at least one of a regression model order and a number of variables in the set of variables.

**5.**The computer system of claim 1, wherein the processing circuit is further configured to store the baseline model in memory for use in at least one of: a calculation of energy savings, a validation of an expected performance, and a detection for whether baseline contract terms have changed.

**6.**The computer system of claim 1, wherein the processing circuit is configured to calculate an enthalpy value and to use the enthalpy value in the regression analysis and as part of the baseline model for predicting energy usage.

**7.**The computer system of claim 6, wherein the processing circuit uses the calculated enthalpy in the regression analysis and as part of the baseline model rather than using separate variables of temperature and humidity in the selected set of variables.

**8.**The computer system of claim 1, wherein the processing circuit is configured to calculate enthalpy and to use the calculated enthalpy to calculate heating and cooling energy days; and wherein the processing circuit uses the calculated heating and cooling energy days in the regression analysis rather than degree days.

**9.**The computer system of claim 1, wherein the processing circuit is configured to automatically identify non-representative data from the historical data and to remove or replace the non-representative data to improve integrity of the automatic selection and the regression analysis; wherein the processing circuit excludes a variable from the selected set of variables in response to a determination that there is insufficient data for the variable; wherein the processing circuit identifies the non-representative data by conducting at least one of an outlier analysis, a data cluster analysis, stuck data analysis, and a missing data analysis.

**10.**The computer system of claim 1, wherein the processing circuit determines which of energy days and degree days to use in the regression analysis.

**11.**The computer system of claim 10, wherein the processing circuit determines which of energy days and degree days to use in the regression analysis by: calculating an enthalpy balance point estimated to minimize energy usage in the building; and calculating a temperature balance point estimated to minimize energy usage in the building.

**12.**The computer system of claim 11, wherein the processing circuit further determines which of energy days and degree days to use in the regression analysis by: calculating a historical energy day value based on the calculated enthalpy balance point; calculating a historical degree day value based on the calculated temperature balance point; and comparing a variance associated with the historical energy day value to a variance associated with the historical degree day value.

**13.**The computer system of claim 11, wherein the processing circuit is configured to calculate the enthalpy balance point estimated to minimize energy usage in the building by: performing an iteratively reweighed least squares process on the enthalpy balance point.

**14.**A method for use with a building management system in a building, comprising: receiving historical data from the building management system; using the historical data to automatically select a set of variables estimated to be significant to energy usage in the building; and applying a regression analysis to the selected set of variables to generate a baseline model for predicting energy usage in the building.

**15.**The method of claim 14, wherein the regression analysis is a partial least squares regression.

**16.**The method of claim 14, further comprising: re-executing the regression analysis with a different regression parameter in response to a determination that the baseline model does not accurately estimate energy usage for test data for a historical time period.

**17.**The method of claim 14, wherein the different regression parameter comprises at least one of a regression model order and a number of variables in the set of variables.

**18.**The method of claim 14, further comprising: storing the baseline model in memory for use in at least one of: a calculation of energy savings, a validation of an expected performance, and a detection for whether baseline contract terms have changed.

**19.**The method of claim 14, further comprising: calculating an enthalpy value; and using the calculated enthalpy value in the regression analysis and as part of the baseline model for predicting energy usage.

**20.**The method of claim 19, further comprising: using calculated enthalpy in the regression analysis and as part of the baseline model rather than using separate variables of temperature and humidity in the selected set of variables.

## Description:

**CROSS**-REFERENCES TO RELATED PATENT APPLICATIONS

**[0001]**This application is a continuation of U.S. application Ser. No. 14/021,948 filed Sep. 9, 2013, which is a continuation of U.S. application Ser. No. 13/023,392 filed Feb. 8, 2011, which is a continuation-in-part of U.S. application Ser. No. 12/819,977 filed Jun. 21, 2010, which claims the benefit of and priority to U.S. Provisional Application No. 61/219,326 filed Jun. 22, 2009, U.S. Provisional Application No. 61/234,217 filed Aug. 14, 2009, and U.S. Provisional Application No. 61/302,854 filed Feb. 9, 2010. The entireties of U.S. application Ser. Nos. 14/021,948, 13/023,392, 12/819,977, 61/219,326, 61/234,217, and 61/302,854 are incorporated by reference herein.

**BACKGROUND**

**[0002]**The present disclosure generally relates to energy conservation in a building. The present disclosure relates more specifically to generation of a baseline model to measure and verify energy savings in a building.

**[0003]**In many areas of the country electrical generation and transmission assets have or are reaching full capacity. One of the most cost effective ways to ensure reliable power delivery is to reduce demand (MW) by reducing energy consumption (MWh). Because commercial buildings consume a good portion of the generated electricity in the United States, a major strategy for solving energy grid problems is to implement energy conservation measures (ECMs) within buildings. Further, companies that purchase energy are working to reduce their energy costs by implementing ECMs within buildings.

**[0004]**Entities that invest in ECMs typically want to verify that the expected energy savings associated with ECMs are actually realized (e.g., for verifying the accuracy of return-on-investment calculations). Federal, state, or utility based incentives may also be offered to encourage implementation of ECMs. These programs will have verification requirements. Further, some contracts between ECM providers (e.g., a company selling energy-efficient equipment) and ECM purchasers (e.g., a business seeking lower ongoing energy costs) establish relationships whereby the ECM provider is financially responsible for energy or cost savings shortfalls after purchase of the ECM. Accordingly, Applicants have identified a need for systems and methods for measuring and verifying energy savings and peak demand reductions in buildings. Applicants have further identified a need for systems and methods that automatically measure and verify energy savings and peak demand reductions in buildings.

**SUMMARY**

**[0005]**One embodiment of the invention relates to a computer system for use with a building management system in a building. The computer system includes a processing circuit configured to use historical data received from the building management system to automatically select a set of variables estimated to be significant to energy usage in the building. The processing circuit is further configured to apply a regression analysis to the selected set of variables to generate a baseline model for predicting energy usage in the building.

**[0006]**Another embodiment of the invention relates to a method for use with a building management system in a building. The method includes receiving historical data from the building management system. The method further includes using the historical data to automatically select a set of variables estimated to be significant to energy usage in the building. The method further includes applying a regression analysis to the selected set of variables to generate a baseline model for predicting energy usage in the building.

**[0007]**Yet another embodiment of the invention relates to computer-readable media with computer-executable instructions embodied thereon that when executed by a computer system perform a method for use with a building management system in a building. The instructions include instructions for using historical data from the building management system to select a set of variables estimated to be significant to energy usage in the building. The instructions further includes instructions for applying a regression analysis to the selected set of variables to generate a baseline model for predicting energy usage in the building.

**[0008]**Alternative exemplary embodiments relate to other features and combinations of features as may be generally recited in the claims.

**BRIEF DESCRIPTION OF THE FIGURES**

**[0009]**The disclosure will become more fully understood from the following detailed description, taken in conjunction with the accompanying figures, wherein like reference numerals refer to like elements, in which:

**[0010]**FIG. 1A is a flow chart of a process for measuring and verifying energy savings and peak demand reductions in a building, according to an exemplary embodiment;

**[0011]**FIG. 1B is a simplified block diagram of a system for completing or facilitating the process of FIG. 1A, according to an exemplary embodiment;

**[0012]**FIG. 1C is a block diagram of a system for measuring and verifying energy savings in a building is shown, according to an exemplary embodiment;

**[0013]**FIG. 2 is a detailed block diagram of the baseline calculation module of FIG. 1C, according to an exemplary embodiment;

**[0014]**FIG. 3A is a flow chart of a process for selecting observed variable data to use for generation of the baseline model, according to an exemplary embodiment;

**[0015]**FIG. 3B is a flow chart of a process for selecting calculated variable data to use for generation of the baseline model, according to an exemplary embodiment;

**[0016]**FIGS. 4A-4E are more detailed flow charts of the process of FIG. 3B, according to an exemplary embodiment;

**[0017]**FIG. 5 is a flow chart of the objective function used in the golden section search of the process of FIGS. 4A-E shown in greater detail, according to an exemplary embodiment; and

**[0018]**FIG. 6 is a flow chart of a process of calculating enthalpy, according to an exemplary embodiment.

**DESCRIPTION**

**[0019]**Before turning to the figures, which illustrate the exemplary embodiments in detail, it should be understood that the disclosure is not limited to the details or methodology set forth in the description or illustrated in the figures. It should also be understood that the terminology is for the purpose of description only and should not be regarded as limiting.

**[0020]**Embodiments of the present disclosure are configured to automatically (e.g., via a computerized process) calculate a baseline model (i.e., a predictive model) for use in measuring and verifying energy savings and peak demand reductions attributed to the implementation of energy conservation measures in building. The calculation of the baseline model may occur by applying a partial least squares regression (PLSR) method to data from a building management system (BMS). The baseline model is used to predict energy consumption and peak demand reductions in a building if an ECM were not installed or used in the building. Actual energy consumption using the ECM is subtracted from the predicted energy consumption to obtain an energy savings estimate or peak demand estimate.

**[0021]**The computerized process can utilize many collinear or highly correlated data points from the BMS to calculate the baseline model using the PLSR algorithm. Data clean-up, data synchronization, and regression analysis activities of the computerized process can be used to prepare the data and to tune the baseline model for improved performance relative to the pertinent data. Further, baseline contractual agreements and violations based on the generated baseline model may be determined with a predetermined statistical confidence.

**[0022]**To provide improved performance over conventional approaches to baseline calculations, an exemplary embodiment includes the following features: one or more computerized modules for automatically identifying which predictor variables (e.g., controllable, uncontrollable, etc.) are the most important to an energy consumption prediction and a computerized module configured to automatically determine the baseline model using the identified predictor variables determined to be the most important to the energy consumption prediction.

**[0023]**While the embodiments shown in the figures mostly relate to measuring and verifying energy consumption and energy savings in a building with the use of expected values as inputs, it should be understood that the systems and methods below may be used to measure and verify peak demand consumption and savings with the use of maximum values as inputs.

**[0024]**Referring now to FIGS. 1A and 1B, a process 100 for measuring and verifying energy savings and peak demand in a building is shown, according to an exemplary embodiment. Process 100 is shown to include retrieving historical building and building environment data 120 from a pre-retrofit period (step 102). Input variables retrieved in step 102 and used in subsequent steps may include both controllable variables (i.e., variables that may be controlled by a user such as occupancy of an area and space usage) and uncontrollable variables (e.g., outdoor temperature, solar intensity and duration, humidity, other weather occurrences, etc.).

**[0025]**Process 100 further includes using the data obtained in step 102 to calculate and select a set of variables significant to energy usage in the building (step 104). Step 104 may include calculating variables that may be used to determine energy usage in the building. For example, calculated variables such as cooling degree days, heating degree days, cooling energy days, or heating energy days that are representative of energy usage in the building relating to an outside air temperature and humidity may be calculated. Energy days (cooling energy days and heating energy days) are herein defined as a predictor variable that combines both outside air temperature and outside air humidity. Energy days differ from degree days at least in that the underlying integration is based on the calculated outside air enthalpy. Step 104 may include the selection of a set of calculated variables, variables based on a data set from the data received in step 102, or a combination of both. For example, the set of variables may include variables associated with a data set of the building (e.g., occupancy and space usage of an area, outdoor air temperature, humidity, solar intensity) and calculated variables (e.g., occupancy hours, degree days, energy days, etc.). Variables and data that are not significant (e.g., that do not have an impact on energy usage in the building) may be discarded or ignored by process 100.

**[0026]**The set of variables is then used to create a baseline model 126 that allows energy usage or power consumption to be predicted (step 106). With reference to the block diagram of FIG. 1B, baseline model 126 may be calculated using a baseline model generator 122 (e.g., a computerized implementation of a PLSR algorithm).

**[0027]**Process 100 further includes storing agreed-upon ranges of controllable input variables and other agreement terms in memory (step 108). These stored and agreed-upon ranges or terms are used as baseline model assumptions in some embodiments. In other embodiments the baseline model or a resultant contract outcome may be shifted or changed when agreed-upon terms are not met.

**[0028]**Process 100 further includes conducting an energy efficient retrofit of building equipment (step 110). The energy efficient retrofit may include any one or more process or equipment changes or upgrades expected to result in reduced energy consumption by a building. For example, an energy efficient air handling unit having a self-optimizing controller may be installed in a building in place of a legacy air handling unit with a conventional controller.

**[0029]**Once the energy efficient retrofit is installed, process 100 begins obtaining measured energy consumption 130 for the building (step 112). The post-retrofit energy consumption 130 may be measured by a utility provider (e.g., power company), a system or device configured to calculate energy expended by the building HVAC system, or otherwise.

**[0030]**Process 100 further includes applying actual input variables 124 of the post-retrofit period to the previously created baseline model 126 to predict energy usage of the old system during the post-retrofit period (step 114). This step results in obtaining a baseline energy consumption 128 (e.g., in kWh) against which actual energy consumption 130 from the retrofit can be compared.

**[0031]**In an exemplary embodiment of process 100, estimated baseline energy consumption 128 is compared to measured energy consumption 130 by subtracting measured energy consumption 130 during the post-retrofit period from estimated baseline energy consumption 128 (step 116). This subtraction will yield the energy savings 132 resulting from the retrofit. The energy savings 132 resulting from the retrofit is multiplied or otherwise applied to utility rate information for the retrofit period to monetize the savings (step 118). Steps 114 and 116 may further include determining a peak demand reduction in the building and monetizing cost related to the reduction.

**[0032]**Referring now to FIG. 1C, a more detailed block diagram of a BMS computer system 200 for measuring and verifying energy savings in a building is shown, according to an exemplary embodiment. System 200 includes multiple inputs 202 from disparate BMS sources. Inputs 202 are received and parsed or otherwise negotiated by an information aggregator 204 of the processing circuit 254.

**[0033]**BMS computer system 200 includes a processing circuit 250 including a processor 252 and memory 254. Processor 252 can 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. Memory 254 is one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing and/or facilitating the various processes, layers, and modules described in the present disclosure. Memory 254 may be or include volatile memory or non-volatile memory. Memory 254 may 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 disclosure. According to an exemplary embodiment, memory 254 is communicably connected to processor 252 via processing circuit 250 and includes computer code for executing (e.g., by processing circuit 250 and/or processor 252) one or more processes described herein.

**[0034]**Memory 254 includes information aggregator 204. Information aggregator 204 may serve as middleware configured to normalize communications or data received from the multiple inputs. Information aggregator 204 may be a middleware appliance or module sold by Johnson Controls, Inc. Information aggregator 204 is configured to add data to a BMS database 206. A data retriever 208 is configured to retrieve (e.g., query) data from BMS database 206 and to pass the retrieved data to baseline calculation module 210.

**[0035]**Baseline calculation module 210 is configured to create a baseline model using historical data from the multiple inputs and aggregated in BMS database 206 or other data sources. Some of the information may be received from sources other than building data sources (e.g., weather databases, utility company databases, etc.). The accuracy of the baseline model will be dependent upon errors in the data received.

**[0036]**Baseline calculation module 210 is shown to include data clean-up module 212. Data clean-up module 212 receives data from data retriever 208 and prefilters the data (e.g., data scrubbing) to discard or format bad data. Data clean-up module 212 conducts one or more checks to determine whether the data is reliable, whether the data is in the correct format, whether the data is or includes a statistical outlier, whether the data is distorted or "not a number" (NaN), whether the sensor or communication channel for a set of data has become stuck at some value, and if the data should be discarded. Data clean-up module 212 may be configured to detect errors via, for example, threshold checks or cluster analysis.

**[0037]**Baseline calculation module 210 is further shown to include data synchronization module 214. Data synchronization module 214 receives the data after the data is "cleaned up" by data clean-up module 212 and is configured to determine a set of variables for use in generating the baseline model. The variables may be calculated by module 214, may be based on received data from data retriever 208 and data clean-up module 212, or a combination of both. For example, data synchronization module 214 may determine variables (e.g., cooling and heating degree days and cooling and heating energy days) that serve as a proxy for energy usage needed to heat or cool an area of the building. Data synchronization module 214 may then further determine which type of calculated variable to use (e.g., whether to use degree days or energy days in the regression analysis that generates the baseline model). Further, data synchronization module 214 may identify and use measured data received from data retriever 208 and formatted by data clean-up module for use in the set of variables. For example, module 214 may select temperature data received from data retriever 208 as a predictor variable for energy usage in the building.

**[0038]**Baseline calculation module 210 further includes regression analysis module 216. Regression analysis module 216 is configured to generate the baseline model based on the set of variables from data synchronization module 214. According to one exemplary embodiment, a partial least squares regression (PLSR) method may be used to generate the baseline model. According to other embodiments, other regression methods (e.g., a principal component regression (PCR), ridge regression (RR), ordinary least squares regression (OLSR)) are also or alternatively used in the baseline model calculation. The PLSR method is based on a linear transformation from the set of variables from module 214 to a linear model that is optimized in terms of predictivity.

**[0039]**Baseline calculation module 210 further includes cross-validation module 218. Cross-validation module 218 is configured to validate the baseline model generated by regression analysis module 216. Validation of the baseline model may include ensuring there is no overfitting of the baseline model (e.g., having too many variables or inputs influencing the model), determining a correct order or number of components in the model, or conducting other tests or checks of the baseline module output by regression analysis module 216. Baseline calculation module 210 and sub-modules 212-218 are shown in greater detail in FIG. 2 and subsequent figures.

**[0040]**Post retrofit variable data 222 is applied to baseline model 220 generated by baseline calculation module 210 (e.g., data relating to estimated energy use of the building) to obtain a resultant baseline energy consumption. Measured energy consumption 224 from the building is subtracted from the resultant baseline energy consumption at element 225 to obtain energy savings data 226. Energy savings data 226 may be used to determine payments (e.g., from the retrofit purchaser to the retrofit seller), to demonstrate the new equipment's compliance with a guaranteed level of performance, or as part of a demand-response commitment or bid validation. Energy savings data 226 may relate to overall energy consumption and/or peak demand reduction.

**[0041]**Energy savings data 226 or other information from the prior calculations of the system is used to monitor a building after retrofit to ensure that the facility occupants have not violated the terms of the baseline agreement (e.g., by substantially adding occupants, by changing the building space use, by bringing in more energy using devices, by substantially changing a setpoint or other control setting, etc.). Conventionally this involves making periodic visits to the facilities, reviewing job data, and/or making specialized measurements. Because visits and specialized reviews are time consuming, they are often not done, which puts any savings calculations for a period of time in question.

**[0042]**System 200 includes an Exponentially Weighted Moving Average (EWMA) control module 228 configured to automate a baseline term validation process. EWMA control module 228 monitors the difference between the predicted and measured consumption. Specifically, EWMA control module 228 checks for differences between the predicted and measured consumption that are outside of predetermined statistical probability thresholds and provides the results to a facility monitoring module 230. Any statistically unlikely occurrences can cause a check of related data against baseline agreement information 232, used to update baseline agreement information, or are provided to a user output/system feedback module 234. User output/system feedback module 234 may communicate alarm events to a user in the form of a displayed (e.g., on an electronic display) EWMA chart configured to highlight unexpected shifts in the calculated energy savings. Input calibration module 236 may receive feedback from module 234 and additionally provide data to data retriever 208 regarding instructions to add or remove variables from consideration for the baseline model in the future. In other embodiments, different or additional control modules may implement or include statistical process control approaches other than or in addition to EWMA to provide baseline validation features.

**[0043]**BMS computer system 200 further includes a user input/output (I/O) 240. User I/O 240 is configured to receive a user input relating to the data set used by baseline calculation module 210 and other modules of system 200. For example, user I/O 240 may allow a user to input data into system 200, edit existing data points, etc. System 200 further includes communications interface 242. Communications interface 242 can be or include wired or wireless interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications with the BMS, subsystems of the BMS, or other external sources via a direct connection or a network connection (e.g., an Internet connection, a LAN, WAN, or WLAN connection, etc.).

**[0044]**Referring now to FIG. 2, baseline calculation module 210 is shown in greater detail, according to an exemplary embodiment. Baseline calculation module 210 includes data clean-up module 212. Data clean-up module 212 generally receives data from the BMS computer system of the building and pre-filters the data for data synchronization module 214 and the other modules of baseline calculation module 210. Data clean-up module 212 includes outlier analysis module 256, data formatting module 258, and sorting module 260 for pre-filtering the data. Data clean-up module 212 uses sub-modules 256-260 to discard or format bad data by normalizing any formatting inconsistencies with the data, removing statistical outliers, or otherwise preparing the data for further processing. Data formatting module 258 is configured to ensure that like data is in the same correct format (e.g., all time-based variables are in the same terms of hours, days, minutes, etc.). Sorting module 260 is configured to sort data for further analysis (e.g., place in chronological order, etc.).

**[0045]**Outlier analysis module 256 is configured to test data points and determine if a data point is reliable. For example, if a data point is more than a threshold (e.g., three standard deviations, four standard deviations, or another set value) away from the an expected value (e.g., the mean) of all of the data points, the data point may be determined as unreliable and discarded. Outlier analysis module 256 may further calculate the expected value of the data points that each data point is to be tested against. Outlier analysis module 256 may be configured to replace the discarded data points in the data set with a NaN or another flag such that the new value will be skipped in further data analysis.

**[0046]**According to another exemplary embodiment, outlier analysis module 256 can be configured to conduct a cluster analysis. The cluster analysis may be used to help identify and remove unreliable data points. For example, a cluster analysis may identify or group operating states of equipment (e.g., identifying the group of equipment that is off). A cluster analysis can return clusters and centroid values for the grouped or identified equipment or states. The centroid values can be associated with data that is desirable to keep rather than discard. Cluster analyses can be used to further automate the data clean-up process because little to no configuration is required relative to thresholding.

**[0047]**Data clean-up module 212 may further include any other pre-filtering tasks for sorting and formatting the data for use by baseline calculation module 210. For example, data clean-up module 212 may include an integrator or averager which may be configured to smooth noisy data (e.g., a varying number of occupants in a building area). The integrator or averager may be used to smooth data over a desired interval (e.g., a 15 minute average, hourly average, etc.).

**[0048]**Baseline calculation module 210 includes data synchronization module 214. Data synchronization module 214 is configured to select a possible set of variables estimated to be significant to energy usage in the building. Data synchronization module 214 selects the possible set of variables (e.g., a preliminary set of variables) that are provided to stepwise regression module 284 for selection of the actual set of variables to use to generate the baseline model. According to various exemplary embodiments, the selection of some or all of the set of variables to use for baseline model generation may occur in data synchronization module 214, stepwise regression analysis 284, or a combination of both. Data synchronization module 214 includes sub-modules for calculating predictor variables and selecting one or more of the predicted variables to include in the possible set of variables. Data synchronization module 214 further includes sub-modules for selecting observed (e.g., measured) data points for the set of variables.

**[0049]**According to one exemplary embodiment, data synchronization module 214 is configured to calculate degree days and energy days (e.g., a predictor variable associated with heating or cooling of a building) and determine which of these predictors should be used to yield a better baseline model. The outputs of data synchronization module 214 (e.g., inputs provided to regression analysis module 216) may include the measurements or predictor variables to use, a period of time associated with the measurements or predictor variables, and errors associated with the data included in the measurements or predictor variables.

**[0050]**Data synchronization module 214 includes enthalpy module 262, balance point module 264, model determination module 266, regression period module 268, integration module 270, NaN module 272, missing days module 274, workdays module 276, and observed variable selection module 278. Enthalpy module 262 is configured to calculate an enthalpy given a temperature variable and a humidity variable. Enthalpy module 262 combines an outdoor temperature variable and an outside air humidity variable via a nonlinear transformation or another mathematical function into a single variable. The single variable may then be used by baseline calculation module 210 as a better predictor of a building's energy use than using both temperature and humidity values separately.

**[0051]**Balance point module 264 is configured to find an optimal balance point for a calculated variable (e.g., a variable based on an enthalpy value calculated in enthalpy module 262, an outdoor air temperature variable, etc.). Balance point module 264 determines a base value for the variable for which the estimated variance of the regression errors is minimized. Model determination module 266 is configured to determine a type of baseline model to use for measuring and verifying energy savings. The determination may be made based on an optimal balance point generated by balance point module 264. Modules 264, 266 are described in greater detail in FIGS. 4A-4E.

**[0052]**Regression period module 268 is configured to determine periods of time that can be reliably used for model regression by baseline calculation module 210 and data synchronization module 214. Regression period module 268 may identify period start dates and end dates associated with calculated and measured variables for the data synchronization. Regression period module 268 may determine the start date and end date corresponding with the variable with the longest time interval (e.g., the variable for which the most data is available). For example, regression period module 268 determines the period by finding the period of time which is covered by all variables, and providing the start date and end date of the intersection to data synchronization module 214. Regression period module 268 is further configured to identify data within the periods that may be erroneous or cannot be properly synchronized.

**[0053]**Integration module 270 is configured to perform an integration over a variable structure from a given start and end time period (e.g., a time period from regression period module 268). According to an exemplary embodiment, integration module 270 uses a trapezoidal method of integration. Integration module 270 may receive an input from balance point module 264 or another module of data synchronization module 214 for performing an integration for a balance point determined by balance point module 264. NaN module 272 is configured to identify NaN flags in a variable structure. NaN module 272 is further configured to replace the NaN flags in the variable structure via interpolation. NaN module 272 may receive an input from, for example, data clean-up module 212, and may be configured to convert the outlier variables and NaNs determined in module 212 into usable data points via interpolation.

**[0054]**Missing days module 274 is configured to determine days for which is there is not enough data for proper integration performance. Missing days module 274 compares the amount of data for a variable for a given day (or other period of time) and compares the amount to a threshold (e.g., a fraction of a day) to make sure there is enough data to accurately calculate the integral. Workdays module 276 is configured to determine the number of work days in a given interval based on the start date and end date of the interval. For example, for a given start date and end date, workdays module 276 can determine weekend days and holidays that should not figure into the count of number of work days in a given interval. Modules 274, 276 may be used by data synchronization module 214 to, for example, identify the number of days within a time interval for which there exists sufficient data, identify days for which data should not be included in the calculation of the baseline model, etc.

**[0055]**Observed variable selection module 278 is configured to receive observed or measured data from the BMS and determine which observed data should be used for baseline model generation based on the selection of calculated data in modules 264-266. For example, when balance point module 264 determines a calculated variable, observed variable selection module 278 is configured to determine if there is enough predictor variable data for the observed variable. According to an exemplary embodiment, the predictor variable data and observed variable data for a specific variable (e.g., temperature) may only be used when sufficient predictor variable data (e.g., degree days) for the observed variable data exists. For example, if the predictor variable data is available over a specified range (e.g., 20 days, 2 months, or any other length of time), then module 278 may determine there is enough predictor variable data such that the predictor variable data and observed variable data can be used for baseline model generation. Observed variable selection module 278 is described in greater detail in FIG. 3A.

**[0056]**Baseline calculation module 210 further includes regression analysis module 216. Regression analysis module 216 is configured to generate the baseline model via a PLSR method. Regression analysis module 216 includes baseline model generation module 280 for generating the baseline model and PLSR module 282 for receiving data from data synchronization module 214, applying the data to a PLSR method for, and providing baseline model generation module 280 with the method output.

**[0057]**Baseline model generation module 280 is configured to generate the baseline model. Baseline model generation module 280 is configured to use PLSR module 282 to perform PLSR of the data and stepwise regression module 284 to determine the predictor variables for the baseline model and to eliminate insignificant variables. Module 280 is configured to provide, as an output, the baseline model along with calculating various statistics for further analysis of the baseline model (e.g., computing the number of independent observations of data in the data set used, computing the uncertainty of the model, etc.).

**[0058]**Regression analysis module 216 is further shown to include stepwise regression module 284. Stepwise regression module 284 is configured to perform stepwise linear regression in order to eliminate statistically insignificant predictor variables from an initial set of variables selected by data synchronization module 214. In other words, stepwise regression module 284 uses stepwise regression to add or remove predictor variables from a data set (e.g., the data set from data synchronization module 214) for further analysis.

**[0059]**A stepwise regression algorithm of module 284 is configured to add or remove predictor variables from a set for further analysis in a systematic way. At each step the algorithm conducts statistical hypothesis testing (e.g., by computing a probability of obtaining a test statistic, otherwise known as a p-value, of an F-statistic, which is used to describe the similarity between data values) to determine if the variable should be added or removed. For example, for a particular variable, if the variable would have a zero (or near zero) coefficient if it were in the baseline model, then the variable is removed from consideration for the baseline model. According to various alternative embodiments, other approaches to stepwise regression are used (e.g., factorial designs, principal component analysis, etc.). Referring also to FIG. 1C, instructions to add or remove variables from future consideration based on the analysis of module 216 may be provided to, for example, input calibration module 236 for affecting the queries run by data retriever 208.

**[0060]**PLSR module 282 is configured to receive a subset of the variables from data synchronization module 214 which has been selected by stepwise regression module 284, and to compute a partial least squares regression of the variables in order to generate a baseline model. According to various alternative embodiments, other methods (e.g., a principal component regression (PCR), ridge regression (RR), ordinary least squares regression (OLSR)) are also or alternatively used in the baseline model calculation instead of a PLSR method.

**[0061]**Baseline models calculated using historical data generally include four possible sources of error: modeling errors, sampling errors, measurement errors, and errors relating to multiple distributions in the data set. Sampling errors occur when the number of data samples used is too small or otherwise biased. Measurement errors occur when there is sensor or equipment inaccuracy, due to physics, poor calibration, a lack of precision, etc. Modeling errors (e.g., errors associated with the data set) occur due to inaccuracies and inadequacies of the algorithm used to generate the model. Errors relating to multiple distributions in the data set occur as more data is obtained over time. For example, over a one to three year period, data may be collected for the period and older data may become obsolete as conditions change. The older data may negatively impact the prediction capabilities of the current baseline model.

**[0062]**Conventional baseline energy calculations use ordinary least squares regression (OLS). For example, ASHRAE Guideline 14-2002 titled "Measurement of Energy Demand Savings" and "The International Performance Measurement and Verification Protocol" (IPMVP) teach that OLS should be used for baseline energy calculations. For OLS:

**y**=1*β

_{0}+Xβ

_{OLS}+ε

**where y is a vector of the response variables**, X is a matrix consisting of n observations of the predictor variables, β

_{0}is an unknown constant, β

_{OLS}is an unknown vector of OLS regression coefficients, and ε is a vector of independent normally distributed errors with zero mean and variance σ

^{2}. The regression coefficients are determined by solving the following equation:

**β**

_{OLS}=(X

^{TX})

^{-1}X.sup.Ty.

**[0063]**PLSR may outperform OLS in a building environment where the inputs to an energy consumption can be many, highly correlated, or collinear. For example, OLS can be numerically unstable in such an environment resulting in large coefficient variances. This occurs when X

^{TX}, which is needed for calculating OLS regression coefficients, becomes ill-conditioned in environments where the inputs are many and highly correlated or collinear. In alternative embodiments, PCR or RR are used instead of or in addition to PLSR to generate a baseline model. In the preferred embodiment PLSR was chosen due to its amenability to automation, its feature of providing lower mean square error (MSE) values with fewer components than methods such as PCR, its feature of resolving multicollinearity problems attributed to methods such as OLS, and due to its feature of using variance in both predictor and response variables to construct model components.

**[0064]**Baseline calculation module 210 is further shown to include cross-validation module 218. Cross-validation module 218 is configured to validate the baseline model generated by regression analysis module 216 (e.g., there is no overfitting of the model, the order and number of variables in the model is correct, etc.) by applying data for a test period of time (in the past) to the model and determining whether the model provides a good estimate of energy usage. Cross-validation of the baseline model is used to verify that the model will fit or adequately describe varying data sets from the building. According to one exemplary embodiment, cross-validation module 218 may use a K-fold cross-validation method. The K-fold cross validation method is configured to randomly partition the historical data provided to baseline calculation module 210 into K number of subsamples for testing against the baseline model. In other embodiments, a repeated random sub-sampling process (RRSS), a leave-one-out (LOO) process, a combination thereof, or another suitable cross-validation routine may be used by cross-validation module 218.

**[0065]**Referring now to FIG. 3A, a flow chart of a process 290 for determining observed or measured variables to use in generation of a baseline model is shown, according to an exemplary embodiment. Process 290 is configured to select observed variables based on predictor variables generated by the data synchronization module of the baseline calculation module. Process 290 includes receiving data (step 291). Process 290 further includes determining the largest period of time for which there is data for predictor variables and observed variables (step 292). The period of time determined in step 292 may represent a period of time for which there will be enough predictor variable data for the corresponding data received in step 291. Step 292 may include, for example, removing insufficient data points and determining the longest period for which there is enough data. For example, if there is too little data for one day, it may be determined that a predictor variable for that day may not be generated and therefore the day may not be used in ultimately determining a baseline model.

**[0066]**Process 290 includes initializing the observed variable (step 293). Initializing the observed variable includes determining a start and end point for the observed variable data, determining the type of data and the units of the data, and any other initialization step. Step 293 is used to format the received data from step 291 such that the observed data is in the same format as the predictor variable data.

**[0067]**Process 290 includes determining if enough predictor variable data exists (step 294). For example, if there is enough predictor variables (e.g., energy days) for a set period of time (e.g., 20 days), then process 290 determines that the predictor variables and its associated observed variable (e.g., enthalpy) may be used for baseline model generation.

**[0068]**Referring now to FIG. 3B, a flow chart of a process 300 for determining calculated variables to use in generation of a baseline model is shown, according to an exemplary embodiment. Selecting some calculated variables for inclusion in a regression analysis used to generate a baseline model may provide better results than selecting some other calculated variables for inclusion, depending on the particulars of the building and its environment. In other words, proper selection of calculated variables can improve a resultant baseline model's ability to estimate or predict a building's energy use. Improvements to energy use prediction or estimation capabilities can improve the performance of algorithms that rely on the baseline model. For example, an improved baseline model can improve the performance of demand response algorithms, algorithms for detecting abnormal energy usage, and algorithms for verifying the savings of an energy conservation measure (e.g., M&V calculations, etc.).

**[0069]**Process 300 provides a general process for selecting calculated variables to use in generation of a baseline model. FIGS. 4A-4E provide a more detailed view of process 300. The output of process 300 (and of the processes shown in FIGS. 4A-4E) is the selection of calculated variables to use to generate the baseline model. Particularly, in an exemplary embodiment, process 300 selects between cooling energy days, heating energy days, cooling degree days, and heating degree days. The selection relies on a calculation of balance points (e.g., optimal base temperatures or enthalpies) of a building and using the calculations to calculate the potential variables (e.g., the energy days and degree days) for selection into the set of variables used to generate the baseline model.

**[0070]**The calculation and selection of calculated variables (for inclusion into the baseline model generation) is based in part on calculated balance points and may be accomplished in different ways according to different exemplary embodiments. According to one embodiment, a nonlinear least squares method (e.g., a Levenburg-Marquardt method) may be used to find the best calculated variables. Such a method, for example, may use daily temperature and energy meter readings to calculate balance points. A nonlinear least squares method may then be applied to the balance points to generate and select the appropriate calculated variables.

**[0071]**According to another embodiment, an optimization scheme may be used to determine the best balance point or points. The optimization scheme may include an exhaustive search of the balance points, a gradient descent algorithm applied to the balance points to find a local minimum of the balance points, a generalized reduced gradient method to determine the best balance point, and a cost function that is representative of the goodness of fit of the best balance point. The cost function may be an estimated variance of the model errors obtained from an iteratively reweighted least squares regression method, according to an exemplary embodiment. The iteratively reweighted least squares regression method is configured to be more robust to the possibility of outliers in the set of balance points generated and can therefore provide more accurate selections of calculated variables.

**[0072]**The optimization scheme algorithm may also use statistics (e.g., a t-statistic representative of how extreme the estimated variance is) to determine if building energy use is a function of, for example, heating or cooling. The statistics may be used to determine which balance points to calculate as necessary (e.g., calculating balance points relating to heating if statistics determine that building energy use is based on heating the building.

**[0073]**Referring to FIG. 3B and FIGS. 4A-4E, an optimization scheme is described which uses a golden section search rule to calculate energy days and degree days and to determine which of the calculated variables to use based on a statistics to determine the type of energy use in the building.

**[0074]**Process 300 includes receiving data such as temperature data, humidity data, utility meter data, etc. (step 302). Process 300 further includes using the received data to calculate possible balance points (step 304). For example, step 304 may include using the received temperature data and humidity data to calculate an enthalpy. As another example, step 304 may include determining an optimal base temperature using the received temperature data. Process 300 further includes steps 306-318 for determining a calculated variable to use for baseline model generation based on enthalpy and temperature data calculated in step 304; according to various exemplary embodiments, steps 306-318 of process 300 may be used to determine calculated variables based on other types of balance points.

**[0075]**Process 300 includes steps 306-310 for determining optimal predictor variables based on the enthalpy calculated in step 304. Process 300 includes determining a type of baseline model for cooling or heating energy days using the enthalpy (step 306). Process 300 further includes finding an optimal enthalpy balance point or points and minimum error variance for the resultant cooling and/or heating energy days (step 308). The optimal enthalpy balance point relates to, for example, a preferred base enthalpy of the building, and the minimum error variance relates to the variance of the model errors at the optimal balance point (determined using IRLS). Process 300 further includes determining if the optimal predictors determined in step 308 are significant (step 310).

**[0076]**Process 300 includes steps 312-316 for determining optimal predictor variables based on a temperature (e.g., temperature data received in step 302 by baseline calculation module 210). Process 300 includes determining a type of baseline model for cooling or heating degree days using the temperature (step 312). Process 300 further includes finding an optimal temperature balance point and minimum error variance for the cooling and/or heating degree days (step 314). Process 300 also includes determining if the optimal predictors determined in step 314 are significant (step 316). Using the results of steps 306-316, process 300 determines which of energy days and degree days yields a better (e.g., more accurate) baseline model (step 318) when used by baseline calculation module 210.

**[0077]**Referring now to FIGS. 4A-4E, a detailed flow chart of process 300 of FIG. 3B is shown, according to an exemplary embodiment. Process 400 of FIGS. 4A-4E is shown using enthalpy and temperature to determine the balance points. The balance points are used to calculate the optimal degree or energy days predictor variable and in determining which calculated variables to use for baseline model generation. According to other embodiments, other methods may be used to determine the balance points. Referring more specifically to process 400 shown in FIG. 4A, process 400 may calculate an enthalpy using temperature data input 402 and humidity data 404 (step 408). According to an exemplary embodiment, enthalpy may be calculated using a psychometric calculation. Process 400 includes receiving meter data 406 and enthalpy data and averages the data over all periods (step 410) for use in the rest of process 400.

**[0078]**Process 400 includes determining possible baseline model types (i.e., whether both the heating and cooling balance points are needed to describe energy use in the building) based on the calculated enthalpy (step 412). For example, step 412 includes the method of determining a predictor variable associated with minimum energy use and then sorting all of the calculated variables (e.g., the variables determined in steps 408-410) and finding where the minimum energy predictor variable ranks compared to the other predictor variables.

**[0079]**Process 400 includes determining if using cooling base enthalpy in the baseline model calculation is feasible (step 414). If the predictor variable associated with the minimum energy found in step 412 is close enough to the maximum calculated variable, then it may be determined that a cooling base does not exist because cooling does not significantly impact energy consumption in the building or it cannot be found due to lack of data. If using the cooling base enthalpy is not feasible, the cooling base enthalpy is set to NaN and the minimum sigma is set to infinity (step 428) such that both values will be "ignored" later by process 400.

**[0080]**If using a cooling base enthalpy is feasible, a range of feasible cooling base enthalpies is set (step 416). The range may vary from the maximum average monthly enthalpy to ten units less than the predictor variable associated with the minimum energy use.

**[0081]**Process 400 includes finding the base temperature of the predictor variable (e.g., via balance point module 264) by finding the base enthalpy for which the estimated variance of the regression errors is minimized. According to one exemplary embodiment, the minimization may be performed using the golden section search rule. Process 400 includes initializing the golden section search (step 418) and iterating the golden section search (step 420) until a desired base tolerance has been reached (step 422). The base tolerance may be predetermined via a logarithmic function of the size of the range, according to an exemplary embodiment. The golden section search of steps 420-422 provides an optimal balance point. The optimal balance point is then used to calculate a measure of variability and determine the t-statistic for the predictor variable.

**[0082]**When a desired base tolerance has been reached for the golden section search (step 422), process 400 may determine whether the t-statistic is significant (step 424). If the t-statistic is not significant, the minimum sigma representative of the t-statistic is set to infinity (step 428). If the t-statistic is significant, it is used in a later step of process 400 to determine the best predictor variable to use for the baseline model.

**[0083]**Referring now to FIG. 5, the objective function used in the golden section search of FIGS. 4A-4E is shown in greater detail, according to an exemplary embodiment. Process 500 is configured to calculate the objective function for use in the golden section search. Process 500 includes receiving data from, for example, step 416 of process 400 relating to a range of enthalpies or temperatures (or other measurements) that may be used for the baseline model. Process 500 includes, for all periods, finding an average predictor variable for each given balance point (step 502). For example, the following integral may be used to find the predictor variable:

**1 T ∫ periodstart periodend max ( 0 , X ( t ) - b ) t ##EQU00001##**

**while the following integral may be used to determine the average**response variable:

**1 T ∫ periodstart periodend Y ( t ) t ##EQU00002##**

**where b is the balance point and T is the length of the period**.

**[0084]**After obtaining the predictor variable, process 500 includes performing an iteratively reweighted least squares method (IRLS) (step 504). IRLS is used because it is more robust to outliers than standard OLS methods. Process 500 includes using the results of step 504 to obtain an estimate of the error variance (step 506) which is used by process 400 to determine the predictor variable with the best fit for generating a baseline model.

**[0085]**Referring back to FIGS. 4A-4B, process 400 further includes repeating the steps of steps 414-428 for the heating base enthalpy instead of the cooling base enthalpy. Referring now to FIG. 4B, process 400 includes determining if heating base enthalpy is feasible (step 430), setting a range of feasible heating base enthalpies (step 432), initializing a golden section search (step 434), iterating the golden section search (step 436) until a desired base tolerance is reached (step 438), and determining if the t-statistic is significant (step 440). If the t-statistic is not significant, the minimum sigma is set to infinity (step 444), and if otherwise, the t-statistic will be used later in process 400.

**[0086]**Process 400 further includes repeating the steps shown in FIGS. 4A-B, only for the temperature instead of the enthalpy. Referring now to FIG. 4C, process 400 includes determining possible model types based on the temperature data (step 446). Process 400 further includes determining if cooling base temperature is feasible (step 448), setting a range of feasible cooling base temperatures (step 450), initializing a golden section search (step 452), iterating the golden section search (step 454) until a desired base tolerance is reached (step 456), and determining if the t-statistic is significant (step 458). Referring now to FIG. 4D, process 400 includes determining if heating base temperature is feasible (step 464), setting a range of feasible heating base temperatures (step 466), initializing a golden section search (step 468), iterating the golden section search (step 470) until a desired base tolerance is reached (step 472), and determining if the t-statistic is significant (step 474). If the t-statistic is insignificant for either, the cooling or heating base temperature is set to NaN and the minimum sigma for the cooling or heating base temperature is set to infinity (steps 462, 478 respectively).

**[0087]**Process 400 is then configured to recommend a predictor variable based on the base temperatures and minimum sigmas determined in the process. Process 400 includes recommending a default cooling degree day calculation (step 484) as a predictor variable if both the cooling base temperature and cooling base enthalpy were both set to NaN in process 400 (step 480). Process 400 may also recommend cooling degree days as a predictor variable if the minimum sigma for cooling energy days is better (e.g., lower) than the minimum sigma for cooling degree days (step 482). Otherwise, process 400 recommends using cooling energy days (step 486).

**[0088]**Process 400 may repeat steps 488-494 for heating degree days and heating energy days. Process 400 includes recommending a default heating degree day calculation (step 492) as a predictor variable if both the heating base temperature and heating base enthalpy were both set to NaN in process 400 (step 488). Process 400 may also recommend heating degree days as a predictor variable if the minimum sigma for heating energy days is better than the minimum sigma for heating degree days (step 490). Otherwise, process 400 recommends using heating energy days (step 494).

**[0089]**Referring now to FIG. 6, a flow chart of a process 600 of calculating enthalpy is shown, according to an exemplary embodiment. Process 600 includes receiving temperature and humidity data (step 602). Step 602 may further include identifying and removing humidity data points that are NaN, converting temperature data points to the correct format, or any other pre-processing steps.

**[0090]**Process 600 further includes, for each temperature data point, finding a corresponding humidity data point (step 604). For example, for a given time stamp for a temperature data point, step 604 includes searching for a corresponding time stamp for a humidity data point. According to an exemplary embodiment, a humidity data point with a time stamp within 30 minutes (or another period of time) of the time stamp of the temperature data point may be chosen as a corresponding humidity data point. Step 604 may further include searching for the closest humidity data point time stamp corresponding with a temperature data point time stamp. If a corresponding humidity data point is not found for a temperature data point, an enthalpy for the time stamp of the temperature data point is not calculated.

**[0091]**Process 600 further includes, for each corresponding temperature and humidity data point, calculating the enthalpy for the corresponding time stamp (step 606). The enthalpy calculation may be made via a nonlinear transformation, according to an exemplary embodiment. The calculation includes: converting the temperature data into a Rankine measurement and calculating the partial pressure of saturation using the below equation:

**pws**= exp { C 1 T + C 2 + C 3 T + C 4 T 2 + C 5 T 3 + C 6 T 4 + C 7 ln ( T ) } ##EQU00003##

**where C**1 through C7 are coefficients and T is the temperature data. The coefficients may be, for example, based on ASHRAE fundamentals. The enthalpy calculation further includes: calculating the partial pressure of water using the partial pressure of saturation:

**pw**= H 100 * pws ##EQU00004##

**where H is the relative humidity data**. The enthalpy calculation further includes calculating the humidity ratio:

**W**= 0.621945 * pw p - pw ##EQU00005##

**where W is in terms of pounds water per pound of dry air**. The enthalpy calculation further includes the final step of calculating the enthalpy in BTUs per pound dry air:

**Enthalpy**=0.24*T+W*(1061+0.444*T)

**Once the enthalpy is calculated**, the enthalpy is used rather than temperature data or humidity data in regression analysis to generate the baseline model (step 608).

**Configurations of Various Exemplary Embodiments**

**[0092]**The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.

**[0093]**The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.

**[0094]**Although the figures may show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.

User Contributions:

Comment about this patent or add new information about this topic: