Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Tridium, Inc.

3951 Westerre Parkway


Suite 350
Richmond, Virginia 23233
USA

Energy Management Objects


APPLICATION ENGINEERING NOTES

This note covers the following topics relating to the collection of custom program objects used to perform
energy logging and energy management strategies:
• Sliding Window Demand Calculation
• Electric Demand Limiting
• Output Load Shed
• Setpoint Load Shed
• Setpoint Offset (Reset) Control
• Optimized Start Stop
• Outside Air Optimization
• Night Purge Control
• Degree Day Calculation.
A sample database is available as a supplement to this document and may be used as a guide for configuring
applying these objects.
Figure 1 Sample Energy Management objects database open in JDE.

Energy Management Objects Application Engineering Notes


1
Niagara Release 2.3 Revised: January 2, 2003
Sliding Window Demand Calculation

Figure 2 The Energy Management objects may also be found individually in your local library.

Sliding Window Demand Calculation


The SWD simulates a thermal demand meter and calculates the sliding window demand for 5, 15, and 30-minute
demand intervals based on an accumulative pulse counter input. It also calculates the total KWH since last reset
and the hourly and daily KWH values.
The hourly, and daily KWH values can then be logged by a standard analog log object setup to execute
on-trigger only. The SWD object fires the hourly and daily triggers to align the KWH data correctly to actual
clock values.
The pulse input into the SWD object is assumed to be accumulative (not delta pulses) that roll over after reaching
the 16 bit limit (65535).
The SWD object can be configured to reset all the calculated accumulative values on a preset interval such as
at “noon on the first Sunday, every month”.

Energy Management Objects Application Engineering Notes


2 Niagara Release 2.3 Revised: January 2, 2003
Sliding Window Demand Calculation
Notes

Notes
A thermal demand meter measures peak demand using thermal electromechanical components. In proportion to
the rate of electrical consumption over a interval such as 15 or 30 minutes, an element in the meter heats up,
pushing an indicator to a new demand level position. The utility meter will record the highest average interval
rate (KW), which will be billed as the “Demand Charge.” At the end of the billing cycle, peak demand will be
read and the demand will be rest to zero for the start of a new billing cycle. The total consumption (KWH) is
also totalized by the meter to determine the “Usage Charge.”
The sliding window demand calculation object can simulate the thermal demand meter by calculating the
average value over an interval. On a normal update frequency, the KW data from the oldest sample is replaced
by the KW data from the most recent sample. This constant updating of the KW information every scan is called
a “Sliding Window Demand Value.”
The highest “Sliding Window” demand reading may be higher than the utility demand since the calculation
updates average demand every 2 seconds and the utility meter may be resetting on a fixed or discrete 15 or 30
minute interval.

Figure 3 Sliding window demand calculation object example.

Link these trigger outputs to


the execute trigger inputs of
The Pulse Gen object simulates the the logs to synchronize the
real world pulse contact commonly data logging.
output from the meter. The Pulse
Counter object then takes these on/off
transitions and provides a output
representing a running total.

Commands
None

Properties
• KWHPerPulse—KWH value per pulse, this value is usually noted on the meter or provided by the power
company. It is how much power each pulse represents.
• EnableReset—flag to enable recurring automatic reset
• DayOfMonth—day of month for recurring automatic reset
• DayOfWeek—day of week for recurring automatic reset
• time—Time of day for recurring automatic reset

Energy Management Objects Application Engineering Notes


3
Niagara Release 2.3 Revised: January 2, 2003
Electric Demand Limiting
Inputs

Inputs
• currentPulseCount—link to pulse counter input object to read running total of pulses

Outputs
• hourTrigger— trigger for link to Hourly Log. Log object must be set to execute on-trigger
• dayTrigger— trigger for link to Daily Log. Log object must be set to execute on-trigger
• resetTime—time of last reset
• Demand5KW—sliding 5 minute demand KW value
• Demand15KW—sliding 15 minute demand KW value
• Demand30KW—sliding 30 minute demand KW value
• KWH—running consumption KWH value since last reset
• KWHHourly—running consumption KWH value since last hourly reset
• KWHLastHour—consumption KWH value for last hour
• KWHDaily—running consumption KWH value since last daily reset
• KWHLastDay—consumption KWH value for last day

Electric Demand Limiting


This Program object provides electrical demand limiting. On each new minute, this object predicts a demand
average of a sliding window interval (the length of which is user defined) by combining projected usage with
historical samplings and averaging over the interval. The user controls the assumed position (in percentage)
within the sliding window. The user may divide the day into three sections, each with its own demand limit. The
projected demand is compared to the limit for the current time-of-day to decide whether “shedding” or
“reloading” loads is appropriate in a fixed priority. The time, date and value of new demand limits are saved for
both this month and the previous month.

Notes
This object provides an output that can be linked to the Shed Control objects that actually perform the equipment
control. A message is output with each calculation to provide an indication of the object's calculated result or
recommendation. When reloading from a shed condition the projected demand is must be less than the demand
setpoint by greater than at least the value of the power associated with that shed level. For example if the
property of shed level 1 is assigned a value of 100 KW, it won’t be restored until the projected demand is at least
100 KW less than the setpoint.

Commands
Execution of this object can be enabled or disabled (default) either automatically or manually (via right click).

Energy Management Objects Application Engineering Notes


4 Niagara Release 2.3 Revised: January 2, 2003
Electric Demand Limiting
Properties

Figure 4 Electric Demand Limiting.

These objects simulate the


pulse meter and summation of
those pulses as a total.

The EDL object is linked to the pulse total and These objects respond to the load shed request and are
outputs the number of loads to shed based on covered individually latter in this section.
the projected demand verses demand setpoint.

Properties
• billingStartDay—Day that monthly historical values are transferred to last month's values
• demandInterval—Length of demand interval (default is 15 minutes)
• percentIntervalElapsed—Percent of demand period that is assumed to have elapsed
• demandPeriod1Start—Time of the beginning of first demand period
• demandPeriod2Start—Time of the beginning of second demand period
• demandPeriod3Start—Time of the beginning of third demand period
• demandLimitPeriod1—Limit for first demand period determined by demandPeriod1Start
• demandLimitPeriod2—Limit for second demand period determined by demandPeriod2Start
• demandLimitPeriod3—Limit for third demand period determined by demandPeriod3Start
• demandLimitingDeadband—Deadband used in determining whether loads can be restored
• powerShedLevel[1-32]—Table for power associated with each shed/reload level

Inputs
• powerInput—Linked to the power source representation
• predictionEnabled—Allows manual or automatic enabling/disabling of demand prediction

Energy Management Objects Application Engineering Notes


5
Niagara Release 2.3 Revised: January 2, 2003
Output Load Shed
Outputs

Outputs
• sOut—Linked to Shed Control object (number of levels that should be shed)

Output Load Shed


This program object provides shed control for binary outputs. It can control outputs representing up to 16
contiguous shed levels, starting from a user specified level. This object receives a shed level value (1-32) from
the Electric Demand Limiting (EDL) object which specifies the number of load levels that should be shed. A
secondary link can also be made and used as a backup when the primary shed level is not available. It provides
an output message that indicates this object's state in reference to the overall demand limiting control scheme.
See Figure 4, “Electric Demand Limiting.”

Notes
The shed levels refer to loads that are linked to each shed level output. As the requested shed level input value
increases a corresponding number of shed outputs will change state from auto to false. The output from this
object would then link to the priority array of binary output objects that are actually controlling the loads. The
base level for shedding provides the starting point in the shed level sequence that this shed object will respond
to. For example if the base level for shedding is set to 1, the outputs will correspond to shed levels 1-16. If the
base level for shedding is set to 17, the outputs will correspond to shed level 17-32. Multiple output load shed
objects can be used for maximum flexibility.

Commands
Execution of this object can be enabled or disabled (default) either automatically or manually (via right click).

Properties
• baseLevelForShedding—Specifies the shed level associated with the first control output (pOut1)

Inputs
• shedEnabled—Allows manual or automatic enabling/disabling of shed control
• primaryShedLevel—Linked to Demand Monitoring object (number of levels that should be shed)
• secondaryShedLevel—Linked to Demand Monitoring object (number of levels that should be shed)

Outputs
• pOut[1-16]—Linked to equipment that is to be controlled by demand limiting, typically a BO’s priority
array

Energy Management Objects Application Engineering Notes


6 Niagara Release 2.3 Revised: January 2, 2003
Setpoint Load Shed
Notes

Setpoint Load Shed


The Setpoint Load Shed object will provide the application engineer with an easy method of implementing load
shedding strategies. In response to a link to a shed level output, a linked setpoint will be raised or lowered by a
specific offset depending on wether the mode is heating or cooling. The offset is “added” to the setpoint input
so the offset can be either positive or negative.
See Figure 4, “Electric Demand Limiting.”

Notes
Generally this object solves the problem often found in many temperature control sequences where shutting
down an output directly may be complicated by other control dependencies. By changing the setpoint based on
a shed request, the output is shut down under the direction of the control sequence and the interdependencies are
maintained.

Commands
None.

Properties
• priorityForWriting—priority at which command is issued

Inputs
• shedInhibit—'false' input causes setpoint to be adjusted by offset
• setpointIn—Setpoint input that will be adjusted by this object
• htgOffset—Setpoint will be adjusted by this signed (+ or -) amount if active and in heating mode
• clgOffset—Setpoint will be adjusted by this signed (+ or -) amount if active and in cooling mode
• modeIn—0 = off; 1 = cooling; 2 = heating

Outputs
• offsetInEffect—Output to indicate if setpointOut has been adjusted
• setpointOutStatus—Adjusted setpoint if active otherwise passes through original setpoint
• setpointOutPrioritized—Adjusted setpoint if active otherwise passes through original setpoint

Energy Management Objects Application Engineering Notes


7
Niagara Release 2.3 Revised: January 2, 2003
Setpoint Offset (Reset) Control
Notes

Setpoint Offset (Reset) Control


This object will apply the offset in proportion to the relative value of the shed level input to the
shedLevelHighLimit and shedLevelLowLimit properties.
See Figure 4, “Electric Demand Limiting.”

Notes
This object receives a shed level value (1-32) from the Electric Demand Limiting (EDL) object which specifies
the number of load levels that it is requesting to be shed. A control setpoint is also linked to this object and gets
reset proportionally based on the EDL input. The as the input shed level increases beyond the shed level low
limit the effective setpoint output is offset in proportion to the shed level high limit. For example, if the mode is
presently cooling, the cooling offset is set to 5 degrees, the shed level low limit is 1 and the high limit is 5. The
effective setpoint will increase 1 degree with each level of shed starting at 1, resulting in a setpoint of 76 degrees
(at level 5 the setpoint would be 80 degrees).

Commands
None.

Properties
• shedLevelHighLimit—Shed level for maximum offset
• shedLevelLowLimit—Shed level at which offset begins
• priorityForWriting—Priority at which command is issued

Inputs
• shedInhibit—'false' input causes setpoint to be adjusted by offset
• setpointIn—Setpoint input that will be adjusted by this object
• htgOffset—Setpoint will be adjusted by this signed (+ or -) amount if active and in heating mode
• clgOffset—Setpoint will be adjusted by this signed (+ or -) amount if active and in cooling mode
• modeIn—0 = off; 1 = cooling; 2 = heating
• shedLevel—Shed level in effect

Outputs
• offsetInEffect—Output to indicate if setpointOut has been adjusted
• setpointOutStatus—Adjusted setpoint if active otherwise passes through original setpoint
• setpointOutPrioritized—Adjusted setpoint if active otherwise passes through original setpoint

Energy Management Objects Application Engineering Notes


8 Niagara Release 2.3 Revised: January 2, 2003
Optimized Start Stop
Outputs

Optimized Start Stop


This program uses space temperature, a comfort range and mechanical equipment capacity parameters to
calculate the time in advance of a scheduled event that equipment should be started for the space temperature to
reach the comfort zone or can be stopped yet remain within the comfort zone at the scheduled event time.
The default mechanical equipment capacity parameters are under user control. The actual parameters used for
the start/stop calculation may be programmatically adjusted to reflect an analysis of observed results.
A message is output for each start and stop command and at the completion of each analysis. For each start and
stop command, a trigger output is also activated which could initiate auxiliary control sequences.

Figure 5 Optimized Start Stop.

Starting in Niagara Build 2.301.330 (and later builds). Prior to Niagara Build 2.301.330.

Right mouse click this object to reset the Right mouse click this
runtime / drifttime back to user defined values. object to reset the
runtime / drifttime back
to user defined values.

Actually a Composite
object containing two
Program objects (OSS
and TriggerTime).

Note As shown in Figure 5 above, the Optimized Start Stop (OSS) program contains multiple objects.
Starting in Niagara build 2.301.330 (and later), the use of a Composite object was dropped. The OSS
Program was also modified to accommodate a condition in which exceptionally long leadtimes resulted
when large heating/cooling factors were multiplied by the difference between the space temperature and
its target comfort limit.
Prior to the 2.301.330 build version, if the optimum start time (calculated by subtracting the calculated
leadtime from the scheduled start time) resulted in a time prior to midnight, the start time comparison
failed—and no advance start occurred (that is, ahead of the normal scheduled start time).
In the build 2.301.330 (and later builds), the OSS program will now start the equipment at midnight if
a pre-midnight start is indicated.

Energy Management Objects Application Engineering Notes


9
Niagara Release 2.3 Revised: January 2, 2003
Optimized Start Stop
Notes

Notes
Operation modes of the updated Optimized Start Stop program are described in the following sections:
• Start Time
• Stop Time

Start Time
If the space temperature is outside the range defined by the lower and upper comfort limits, the difference
between the space temperature and the closer limit represents the number of degrees the mechanical equipment
must make up during the prestart period. The run-time heating or cooling factors (depending on the direction
the space temperature must move) are multiplied by the temperature differential to determine the number of
run-time minutes required to achieve the comfort limit at occupancy, as defined by the schedule's start time.
When the system's time is later than the schedule's time offset by the calculated leadtime, the optimum start
outputs will be enabled. If the calculated leadtime is so large that an optimum start time prior to midnight is the
result, the optimum start will occur at midnight. It is worthwhile to note that an optimum start will be performed
only for the first scheduled start for the day.

Stop Time
If the space temperature is inside the range defined by the lower and upper comfort limits AND the schedule's
status is active, the difference between the space temperature and one of the limits (depending on the mode)
represents the number of degrees the temperature can drift between the time the mechanical equipment is
stopped and the schedule's inactive event time. The lead-time calculation is similar to the one for Start Time but
using the drift-time heating and cooling factors. As a precaution, the mechanical equipment will not be stopped
prior to the time specified by the object's earliestStopTime property. Optimum stop will be performed for each
of the schedule's inactive events.

Commands
The determination of heating/cooling mode and enabling/disabling of both start and stop optimization can be
done either manually or automatically.

Properties
• upperComfortLimit—Cooling mode target.
• lowerComfortLimit—Heating mode target.
• dynamicParameterAdjust—Controls whether calculation parameters are programmatically adjusted.
• oldParameterMultiplier—Ratio (x:1) of old calculation parameter to observed change rate in
determining new parameter.
• earliestStopTime—NO stop command will be issued BEFORE this time.
• drifttimePerDegreeCoolingUserDefined—User-defined default minutes per degree space temp
changes when equipment stops in cooling mode.
• drifttimePerDegreeHeatingUserDefined—User-defined default minutes per degree space temp
changes when equipment stops in heating mode.

Energy Management Objects Application Engineering Notes


10 Niagara Release 2.3 Revised: January 2, 2003
Optimized Start Stop
Inputs

• runtimePerDegreeCoolingUserDefined—User-defined default minutes per degree space temp changes


when equipment starts in cooling mode.
• runtimePerDegreeHeatingUserDefined—User-defined default minutes per degree space temp changes
when equipment starts in heating mode.
• drifttimePerDegreeCooling—Minutes per degree space temp changes when equipment stops in cooling
mode.
• drifttimePerDegreeHeating—Minutes per degree space temp changes when equipment stops in heating
mode.
• runtimePerDegreeCooling—Minutes per degree space temp changes when equipment starts in cooling
mode.
• runtimePerDegreeHeating—Minutes per degree space temp changes when equipment starts in heating
mode.

Inputs
• controlMode—Determines heating/cooling mode for optimized stop.
• parameterResetTime—Signals the object to copy the user-defined drifttime and runtime parameters to
their corresponding namesakes used for actual control.
• startEnableDisable—Allows manual or automatic enabling/disabling of optimized start function.
• stopEnableDisable—Allows manual or automatic enabling/disabling of optimized stop function.
• nextEventValue—Linked to a schedule for the action for next event.
• scheduleStatus—Linked to a schedule for the present schedule status.
• nextEventTime—Linked to a schedule for the time of next event.
• outsideTemp—Linked to outside temperature (for information only).
• spaceTemp—Linked to space temperature of area affected by mechanical equipment.

Outputs
• startTimeCommand—Optimized start command linked to controlled equipment.
• stopTimeCommand—Optimized stop command linked to controlled equipment.
• startTimeTrigger—Provides link for auxiliary sequences at issuance of start command.
• stopTimeTrigger—Provides link for auxiliary sequences at issuance of stop command.

Energy Management Objects Application Engineering Notes


11
Niagara Release 2.3 Revised: January 2, 2003
Outside Air Optimization
Notes

Outside Air Optimization


This object uses the two sets of temperature and humidity inputs to find the air supply with the least amount of
heat. The freeCooling output will be set to auto if outside greater than or equal to inside and set to the property
freeCoolingCommand if outside less than or equal to inside - (abs)thresholdSpan. The user can select
temperature or enthalpy comparisons. There is also a low temperature check to protect against freezing.

Figure 6 Outside air optimization.

Notes
This object is commonly linked to the economizer control sequence to enable free cooling. Free cooling is the
process of bringing in outside air and using that air stream as a cooling source in place of, or to supplement
mechanical cool.

Commands
Set outside air low limit to disable free cooling below a specified setpoint.

Properties
• thresholdSpan—Deadband used to prevent toggling
• useEnthalpy—“true” if enthalpy is comparison variable
• freeCooling—CommandCommand to output when free cooling is available
• priorityForWriting—Priority at which command is issued

Inputs
• outsideTemp—Outside air temperature

Energy Management Objects Application Engineering Notes


12 Niagara Release 2.3 Revised: January 2, 2003
Night Purge Control
Outputs

• outsideHumidity—Outside air humidity


• insideTemp—Inside air temperature
• insideHumidity—Inside air humidity
• lowTemperatureLimit—User-controlled freeze protection limit

Outputs
• outsideEnthalpy—Calculated outside enthalpy
• outsideEnthalpyString—Formatted string to include BTU/lb
• insideEnthalpy—Calculated inside enthalpy
• insideEnthalpyString—Formatted string to include BTU/lb
• freeCooling—Outputs freeCoolingCommand if free cooling is available otherwise, auto is output
• modeString—String describing object's present mode
– “Input error”—bad sensor input
– “Input out of range”—enthalpy equal to or less than zero
– “Free Cooling”—free cooling is available
– “No Free Cooling”—free cooling is not available
– “Low temperature”—outside temperature less than lowTemperatureLimit

Night Purge Control


This object uses the two sets of temperature and humidity inputs to find the air supply with the least amount of
heat when the purgeEnabled input is 'true'. The freeCooling output will be set to auto if outside greater than or
equal to inside and set to the property freeCoolingCommand if outside less than or equal to inside -
(abs)thresholdSpan. The user can select temperature or enthalpy comparisons. There is also a low temperature
check to protect against freezing.

Energy Management Objects Application Engineering Notes


13
Niagara Release 2.3 Revised: January 2, 2003
Night Purge Control
Notes

Figure 7 Night purge control.

Notes
This object is commonly linked to the economizer control sequence to enable free cooling. Free cooling is the
process of bringing in outside air and using that air stream as a cooling source in place of, or to supplement
mechanical cool. Night purge cycle takes advantage the cooler temperatures at night and provides free cooling
in return for additional fan energy for a fan that normally would be off.

Commands
Set outside air low limit to disable free cooling below a specified setpoint. The purge setpoint also be specified.

Properties
• thresholdSpan—Deadband used to prevent toggling
• useEnthalpy—“true” if enthalpy is comparison variable
• freeCooling—CommandCommand to output when free cooling is available
• priorityForWriting—Priority at which command is issued

Inputs
• purgeEnabled—Object enable/disable
• outsideTemp—Outside air temperature
• outsideHumidity—Outside air humidity
• insideTemp—Inside air temperature

Energy Management Objects Application Engineering Notes


14 Niagara Release 2.3 Revised: January 2, 2003
Degree Day Calculation
Outputs

• insideHumidity—Inside air humidity


• nightSetpoint—User-controlled temperature setpoint target
• lowTemperatureLimit—User-controlled freeze protection limit

Outputs
• outsideEnthalpy—Calculated outside enthalpy
• outsideEnthalpyString—Formatted string to include BTU/lb
• insideEnthalpy—Calculated inside enthalpy
• insideEnthalpyString—Formatted string to include BTU/lb
• freeCooling—Outputs freeCoolingCommand if free cooling is available otherwise, auto is output
• modeString—String describing object's present mode
– “Input error”—bad sensor input
– “Input out of range”—enthalpy equal to or less than zero
– “Free Cooling”—free cooling is available
– “No Free Cooling”—free cooling is not available
– “Low temperature”—outside temperature less than lowTemperatureLimit
– “Night purge disabled”—purgeEnabled is false
– “Setpoint satisfied”—target setpoint was reached
– “Night purge complete”—night purge completed but setpoint was not reached
– “Temperature inhibited”—outside temperature is greater than inside

Degree Day Calculation


This program object will perform the math to calculate and degree days for a particular day.
A degree day is a unit of measure of recording how hot or how cold it has been over a 24-hour period. The
number of degree days applied to any particular day of the week is determined by calculating the mean
temperature for the day and then comparing the mean temperature to a base value of 65 degrees F. The mean
temperature is calculated by adding together the high for the day and the low for the day, and then dividing the
result by 2.
If the mean temperature for the day is, say, 10 degrees higher than 65, then there have been 10 cooling degree
days. On the other hand, if the mean temperature is, say, 5 degrees lower than the mean temperature then there
have been 5 heating degree days.

Energy Management Objects Application Engineering Notes


15
Niagara Release 2.3 Revised: January 2, 2003
Degree Day Calculation
Notes

Figure 8 Degree day calculator.

Notes
None

Commands
None

Properties
None

Inputs
• tempIn—link to outside air temperature

Outputs
• minTemp—minimum temperature value since last reset or last midnight
• maxTemp—maximum temperature value since last reset or last midnight
• meanTemp—mean temperature value calculated at midnight when the day of week changes
• clgDegDays—cooling degree days value for yesterday
• htgDegDays—heating degree days value for yesterday

Energy Management Objects Application Engineering Notes


16 Niagara Release 2.3 Revised: January 2, 2003

You might also like