Issue
Supplemental Documentation on the Menta OPT block for optimized start and stop.
Product Line
TAC Vista, EcoStruxure Building Operation
Environment
- Menta
- Function Block
Cause
The document below is intended to clarify the inputs and configuration parameters of the Menta OPT block and when/how to use them.
Resolution
Click here to download the example Menta macro
A Brief Overview of Optimized Control
Optimal Start
Optimal Start measures how long it takes a room temperature to reach setpoint each morning when the air-handling unit is enabled. These measurements are then used to predict how long it will take the next time. As time goes on, the predictive algorithm is refined until it becomes quite accurate. An optimally started unit saves energy by only starting as early as is needed, not just an arbitrary hour or two before occupancy.
Optimal Stop
Optimal Stop is less common. An optimally stopped unit stops running prior to the end of the day. It measures how long it takes before the measured room temperature drifts outside of an acceptable range around the setpoint. This saves energy on cooling a building until 5:00pm (for example) when the occupants are just about to walk out the door. The example in this document will not implement Optimal Stop.
Inputs to the OPT Block
RoT
Room Temperature. If there is just one room temperature sensor being served by the optimally started unit, then this is where it would be used. However, if the unit has several room temperatures or serves many VAV terminal units, consider the following options:
- Average all temperatures
- Pick one interior zone
- Highest room temperature for cooling/lowest room temperature for heating
- Use return air temperature
In all of these scenarios, some consideration should be made for if the input sensors fail:
- Averaging all temperatures is the most robust method. However, if SNVT inputs are used, it may be necessary to discard invalid values (621.8°F) from the averaging calculation.
- If one interior zone is used and the temperature sensor fails, the unit will eventually revert to starting as early as is allowed every day. The default value for this is 12 hours early; the example in this document uses 2 hours. If the primary sensor fails, use a secondary, or disable optimal start on a failed condition.
- Instead of the highest and lowest room temperatures, it may be wise to use the second highest and the second lowest room temperature. This allows for one failed sensor in each direction before the Optimal Start calculation is affected.
- Using return air theoretically is a lot like using the average of all room temperatures. Adjusting the setpoint to get the desired result might be required. A failed sensor input should disable the Optimal Start calculation.
SP
Setpoint. Using two OPT blocks – one for Optimal Start cooling, one for Optimal Start heating – allows each to be fine tuned. If there is a morning warm-up sequence, then the heating Optimal Start may be much quicker than the cooling. Using one block requires the internal calculation to adjust as the needs change from cooling to heating, and can be less agile when switching from cooling to heating requirements.
OuT
Outdoor Temperature. Resets to the curve occur based on the outside air temperature. If it is very cold or very hot outside, the unit will start sooner. This curve is reset automatically as time goes on to better predict the effect outside air temperature has on the controlled space (if AutoAdjust > 0).
OpI
Operation Indication. In the example of an air-handling unit, OpI would be the fan status. If the configuration parameter OperIndicF is set to 1, then this will be used for internal calculations. Otherwise, it will just use the command as status. This prevents a mechanically failed unit from affecting the calculation. A good rule to follow is if fan status is available, use it.
TmL
Time left. A time schedule (TSCH) input goes here. This tells the calculation how much time is left before the unit is scheduled to turn on (or off). The OPT block then starts the unit early based on this number. It also ensures that the unit always runs during the scheduled occupied time.
Mode
Mode is for heating/cooling or enabled/disabled. It is advantageous to always program in a method for disabling Optimal Start through a public variable (PVB). Many times the seeming complexity of Optimal Start is found to be undesirable by building operators and they will ask to have it disabled. Mode could be programmatically set for heating/cooling based on outside air temperature (or some other factor), but in the example in this document, two separate OPT blocks are used and are hard-coded for their respective modes.
Configuration Parameters of the OPT Block
AutoAdjust
AutoAdjust refers to whether or not the OPT block gets smarter by adjusting the curves set initially on the first download. If AutoAdjust is set to 0, then the OPT block will still adjust the start time every day based on the room temperature and outside air temperature, but it will not adjust those early start times based on past experience. Set the AutoAdjust to 1, and the curves will adjust a little every day. Set AutoAdjust to 2 and the OPT block will also adjust the holiday compensation (the unit will start a little earlier after a 3-day weekend, but may need to learn exactly how much as time goes by). To maximize the potential of the OPT block, it is suggested to set this value to 2.
RoomTempF
Room Temperature Flag. Is a room temperature sensor present? Without a room temperature sensor, it is not possible for the OPT block to adjust its curves. It is guessing at that point based on pre-determined curves. It is not recommended to use OPT without a room temperature sensor.
OperIndicF
Operation Indication Flag. If OperIndicF is set to 1, then the OpI input will be used for internal calculations. Otherwise, the OpI input is ignored and the command is used as status. This prevents a mechanically failed unit from affecting the calculation. A good rule to follow is if fan status is available, use it.
StartTimeLo
Start Time at Low Outside Air Temperatures. When it is cold outside, how much earlier should the unit start? This will change between a cooling and a heating optimal start block. If AutoAdjust is set to 1 or 2 then this is just a default value. It will adjust as needed each day, but a good default value is important.
StartTimeHi
Start Time at High Outside Air Temperatures. When it is hot outside, how much earlier should the unit start? This will change between a cooling and a heating optimal start block. If AutoAdjust is set to 1 or 2 then this is just a default value. It will adjust it as needed each day, but a good default value is important.
HolidayComp
Holiday Compensation. This is the default compensation for a holiday (longer than 48 hours of continuous unoccupied time). The value is a percentage. If there is a 3-day weekend, how much earlier should the unit start on the following Tuesday? If AutoAdjust is set to 2 then this is just a default value. It will adjust it as needed each day, but a good default value is important.
MaxStartTi
Maximum Start Time. This is the maximum amount of hours the unit is permitted to start prior to the occupied time. The default value is 12 hours. The first time the unit is downloaded, it will start this early and measure how long it takes to achieve setpoint. 12 hours is very early. The example in this document uses 2 hours. Even if something goes wrong with the internal calculation (failed sensor input, for example) the earliest it could start would be 2 hours early.
ETol
Error Tolerance. How close to the desired setpoint does the temperature sensor need to be to be considered at setpoint? An error tolerance of 0.5°F is default and is usually acceptable.
StopLoTemp, StopTimeLo, StopHiTemp, StopTimeHi, StopTimeErr
All of these parameters refer to the Optimal Stop portion of the OPT block. Setting them to 0 disables the Optimal Stop functionality.
Output of a OPT Block
There are three possible output values of an OPT block:
- 0 = The unit is off, unoccupied
- 1 = The unit is on, occupied
- 2 = The unit is on, optimally started
Putting It Into Practice
The example below is a Menta Hierarchy Function Block (HFB) and shows HFB inputs to the blocks. The top OPT block is set to heat mode and looks to a heating setpoint. The bottom OPT block is set to cool mode and looks to a cooling setpoint.
OPT_START_HEAT | OPT_START_COOL | |
AutoAdjust | 2 | 2 |
RoomTempF | 1 | 1 |
OperIndicF | 1 | 1 |
StartTimeLo | 60 | 0 |
StartTimeHi | 0 | 60 |
HolidayComp | 0 | 0 |
MaxStartTi | 2 | 2 |
Etol | 0.5 | 0.5 |
StopLoTemp | 0 | 0 |
StopTimeLo | 0 | 0 |
StopHiTemp | 0 | 0 |
StopTimeHi | 0 | 0 |
StopTimeErr | 0 | 0 |
Using the hints and tips suggested will allow not only for proper programming techniques, but also for creation of macro libraries that can be reused and shared to improve effectiveness across business units.