I am starting to investigate machine learning applications for HVAC at the commercial level. I am an HVAC controls person by trade that has recently taken some basic courses on Machine learning and Data science. I have a large (large for HVAC systems, anyhow) amount of data available and now i'm trying to figure out what the best way to try and utilize it is.

Ultimately What i want to do is predict performance for a period of time. i am unsure what period of time would be the most appropriate, but, i'm thinking probably in the range of 15 mins to an hour is about all i can expect reasonably.

To that end, I am doing some exploratory data analysis - I re-arranged the original raw data into a time series and then sorted it chronologically.

i have 35 unique data points in this data set - here is a sample of what it currently looks like:

TimeStamp          Point Name         Value
4/13/2020 12:59 HVAC 3.CoolingCoilGPM   2
4/13/2020 22:03 HVAC 3.CoolingCoilGPM   2
4/15/2020 16:06 HVAC 3.CoolingCoilGPM   2
4/16/2020 16:00 HVAC 3.CoolingCoilGPM   2
4/16/2020 16:15 HVAC 3.CoolingCoilGPM   2
4/16/2020 17:34 HVAC 3.CoolingCoilGPM   2
4/16/2020 17:46 HVAC 3.CoolingCoilGPM   2
4/17/2020 13:36 HVAC 3.RETURN_AIR   70.23748
4/17/2020 13:36 HVAC 3.DISCH_AIR    56.54999
4/17/2020 13:36 HVAC 3.MIXED_AIR    53.00623
4/17/2020 13:36 HVAC 3.CLG_COIL 54.34374
4/17/2020 13:36 HVAC 3.FB_DAMPER    2
4/17/2020 13:36 HVAC 3.CLG_VALVE    1
4/17/2020 13:36 HVAC 3.HTG_VALVE    10
4/17/2020 13:36 HVAC 3.CHW_COIL_DELTA   9.686241
4/17/2020 13:36 HVAC 3.OA_TEMP  32.55227
4/17/2020 13:36 HVAC 3.CHW_DELTA_LOOPOUT    14
4/17/2020 13:36 HVAC 3.TOD  1
4/17/2020 13:36 HVAC 3.RFAN 1
4/17/2020 13:36 HVAC 3.SFAN 1
4/17/2020 13:36 HVAC 3.ST_DISCH 0.8443742
4/17/2020 13:36 HVAC 3.RH_RETURN    31.23749
4/17/2020 13:36 HVAC 3.ST_DUCT  0.7965617
4/17/2020 13:36 HVAC 3.HTG_COIL 52.89374
4/17/2020 13:36 HVAC 3.SFAN_COMMAND 4.642393
4/17/2020 13:36 HVAC 3.RFAN_COMMAND 2.685749
4/17/2020 13:36 HVAC 3.RA_DAMPER    2.195717
4/17/2020 13:36 HVAC 3.SA_FLOW  13.19481
4/17/2020 13:40 HVAC 3.RA_FLOW  9.834915
4/17/2020 13:42 HVAC 3.RH_VALVE 8.922806
4/17/2020 13:50 HVAC 3.DISCH_AIR    55.31249
4/17/2020 13:50 HVAC 3.CoolingSensibleHeatChange    33.54900232

So - I thought this was a great idea, until i looked at the top few rows, and i realize that i need to have these individual points as features, not all in one column like this.

Then i realized that the biggest question, really, is what my target should be. i'm not sure if anyone on here has any experience in this area - so i thought i'd throw my thoughts out there and see if i can get any advice.

In general - an HVAC system tempers air in a space for comfort. unlike a home system, though, commercial systems usually bring in outside air for ventilation as well - this particular system is referred to as a "mixed air" system, because it brings in some outside air, but, is also mixes that air with air returning from the space to save energy compared to bringing in all of the air from the outside (and we can't run with just air from the building, because we need to bring in "fresh" air for proper ventilation per building code.

Now, there are a lot of things that you can use traditionally to evaluate the performance of an HVAC system - one of the most common is the energy used in tempering the air. the system in question here has a heating coil and a cooling coil. These are fed from how and cold water systems to help warm or cool the air to the discharge air temperature setpoint. using the least amount of energy via heating and cooling while still meeting the discharge air temperature setpoint (typically +/- a degree or so in systems of this type on my campus)

so it seems to me that the target would be the discharge air temperature. does that seem logical?

Now, if i were calculating this myself, there are other things that i'd like to know about - like the volume of air and amount of outside air versus return air, because you can calculate the thermal content of that air - which helps you evaluate the performance of the associated coils - since they are rated at a particular output and if they are not meeting that output then that is a problem - however: I am not sure that really has any bearing on predicting the discharge air temperature in a model - thoughts on that?

  • $\begingroup$ @santobedi thought you might have some input - i've been reading some of your posts/questions. $\endgroup$
    – seuadr
    Aug 23, 2021 at 15:44

2 Answers 2


So i've talked to some people on various platforms and came to the conclusion that the data structure that i had did indeed make no sense for what i was trying to do. I used a pivot function to reorder each unique Point Name into a column and then filled the NaN values with 0.

i resampled the data to 5 min intervals in the initial platform, but not all data had records for each 5 min interval, so there are some NaN values spread out across the dataframe.

so now i have 34 columns, 33 features and a timestamp index. i think this will work a lot better!


use the cooling coils air handler fan power as the target, that is what you what to minimize/optimize and for the features use supply air temp, supply air setpoint, fan speed (if there is any), valve opening % , and chilled water supply temp


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.