First time here? Check out the Help page!
1 | initial version |
The EMS:CurveOrTableIndexVariable is used to map an existing curve so that you can use your own inputs to the curve instead of those that would normally be used by the program. I don't see an example of this object in the EMSApplicationGuide document so I will try to create on for you. I replicated the EMS:ConstructionVariableIndex example in the EMSApplicationGuide document. I have never used this method so there may be some mistakes I am not aware of. Most likely my first attempt is probably wrong. Try this in your input file and let me know how it works for you.
EnergyPlus input file curve object:
Curve:Biquadratic,
Mycurve, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.000683770, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
0.000005249, !- Coefficient5 y**2
-0.000009720, !- Coefficient6 x*y
Map the existing curve object for use in EMS programming:
EnergyManagementSystem:CurveOrTableIndexVariable,
MyCurve, !- Index
Mycurve; !- Performance Curve or Table Name
Then use the index in the EMS Program using the @CurveValue object:
EnergyManagementSystem:Program,
CalcCurveOutput,
Set X = 12.0,
Set Y = 21.5,
MyCurveOutput = @CurveValue(MyCurve, X, Y),
SomeVariableInYourProgram = MyCurveOutput * 0.01;
EnergyManagementSystem:ProgramCallingManager,
EMSBasedCurveManager, !- Name
BeginTimestepBeforePredictor, !- EnergyPlus Model Calling Point
CalcCurveOutput; !- Program Name 1
The EMS variable SomeVariableInYourProgram can be used to actuate something in your simulation. For example, another curve:
EnergyManagementSystem:Actuator,
CurveOverwrite, !- Name
SomeOtherCurveName, !- Actuated Component Unique Name
Curve, !- Actuated Component Type
SomeVariableInYourProgram; !- Actuated Component Control Type
There is also an example file named EMSCurveOverride_PackagedTerminalHeatPump which uses a different method to adjust performance curves (or tables) values. This may be what you looking for and this method I know does work. Review the EMS program in that example file before you attempt the method described above.
2 | No.2 Revision |
The EMS:CurveOrTableIndexVariable is used to map an existing curve so that you can use your own inputs to the curve instead of those that would normally be used by the program. I don't see an example of this object in the EMSApplicationGuide document so I will try to create on for you. I replicated the EMS:ConstructionVariableIndex example in the EMSApplicationGuide document. I have never used this method so there may be some mistakes I am not aware of. Most likely my first attempt is probably wrong. Try this in your input file and let me know how it works for you.
EnergyPlus input file curve object:
Curve:Biquadratic,
Mycurve, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.000683770, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
0.000005249, !- Coefficient5 y**2
-0.000009720, !- Coefficient6 x*y
Map the existing curve object for use in EMS programming:
EnergyManagementSystem:CurveOrTableIndexVariable,
MyCurve, !- Index
Mycurve; !- Performance Curve or Table Name
Then use the index in the EMS Program using the @CurveValue object:
EnergyManagementSystem:Program,
CalcCurveOutput,
Set X = 12.0,
Set Y = 21.5,
Set MyCurveOutput = @CurveValue(MyCurve, X, Y),
SomeVariableInYourProgram = MyCurveOutput * 0.01;
EnergyManagementSystem:ProgramCallingManager,
EMSBasedCurveManager, !- Name
BeginTimestepBeforePredictor, !- EnergyPlus Model Calling Point
CalcCurveOutput; !- Program Name 1
The EMS variable SomeVariableInYourProgram can be used to actuate something in your simulation. For example, another curve:
EnergyManagementSystem:Actuator,
CurveOverwrite, !- Name
SomeOtherCurveName, !- Actuated Component Unique Name
Curve, !- Actuated Component Type
SomeVariableInYourProgram; !- Actuated Component Control Type
There is also an example file named EMSCurveOverride_PackagedTerminalHeatPump which uses a different method to adjust performance curves (or tables) values. This may be what you looking for and this method I know does work. Review the EMS program in that example file before you attempt the method described above.
3 | No.3 Revision |
The EMS:CurveOrTableIndexVariable is used to map an existing curve so that you can use your own inputs to the curve instead of those that would normally be used by the program. I don't see an example of this object in the EMSApplicationGuide document so I will try to create on for you. I replicated the EMS:ConstructionVariableIndex example in the EMSApplicationGuide document. I have never used this method so there may be some mistakes I am not aware of. Most likely my first attempt is probably wrong. Try this in your input file and let me know how it works for you.
EnergyPlus input file curve object:
Curve:Biquadratic,
Mycurve, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.000683770, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
0.000005249, !- Coefficient5 y**2
-0.000009720, !- Coefficient6 x*y
Map the existing curve object for use in EMS programming:
EnergyManagementSystem:CurveOrTableIndexVariable,
MyCurve, !- Index
Mycurve; !- Performance Curve or Table Name
Then use the index in the EMS Program using the @CurveValue object:
EnergyManagementSystem:Program,
CalcCurveOutput,
Set X = 12.0,
Set Y = 21.5,
Set MyCurveOutput = @CurveValue(MyCurve, X, Y),
Set SomeVariableInYourProgram = MyCurveOutput * 0.01;
EnergyManagementSystem:ProgramCallingManager,
EMSBasedCurveManager, !- Name
BeginTimestepBeforePredictor, !- EnergyPlus Model Calling Point
CalcCurveOutput; !- Program Name 1
The EMS variable SomeVariableInYourProgram can be used to actuate something in your simulation. For example, another curve:
EnergyManagementSystem:Actuator,
CurveOverwrite, !- Name
SomeOtherCurveName, !- Actuated Component Unique Name
Curve, !- Actuated Component Type
SomeVariableInYourProgram; !- Actuated Component Control Type
There is also an example file named EMSCurveOverride_PackagedTerminalHeatPump which uses a different method to adjust performance curves (or tables) values. This may be what you looking for and this method I know does work. Review the EMS program in that example file before you attempt the method described above.
4 | No.4 Revision |
The EMS:CurveOrTableIndexVariable is used to map an existing curve so that you can use your own inputs to the curve instead of those that would normally be used by the program. I don't see an example of this object in the EMSApplicationGuide document so I will try to create on for you. I replicated the EMS:ConstructionVariableIndex example in the EMSApplicationGuide document. I have never used this method so there may be some mistakes I am not aware of. Most likely my first attempt is probably wrong. Try this in your input file and let me know how it works for you.
EnergyPlus input file curve object:
Curve:Biquadratic,
Mycurve, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.000683770, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
0.000005249, !- Coefficient5 y**2
-0.000009720, !- Coefficient6 x*y
Map the existing curve object for use in EMS programming:
EnergyManagementSystem:CurveOrTableIndexVariable,
MyCurve, !- Index
Mycurve; !- Performance Curve or Table Name
Then use the index in the EMS Program using the @CurveValue object:
EnergyManagementSystem:Program,
CalcCurveOutput,
Set X = 12.0,
Set Y = 21.5,
Set MyCurveOutput = @CurveValue(MyCurve, X, Y),
Set SomeVariableInYourProgram = MyCurveOutput * 0.01;
EnergyManagementSystem:ProgramCallingManager,
EMSBasedCurveManager, !- Name
BeginTimestepBeforePredictor, !- EnergyPlus Model Calling Point
CalcCurveOutput; !- Program Name 1
The EMS variable SomeVariableInYourProgram can be used to actuate something in your simulation. For example, another curve:
EnergyManagementSystem:Actuator,
CurveOverwrite, SomeVariableInYourProgram, !- Name
SomeOtherCurveName, !- Actuated Component Unique Name
Curve, !- Actuated Component Type
SomeVariableInYourProgram; Curve Result; !- Actuated Component Control Type
There is also an example file named EMSCurveOverride_PackagedTerminalHeatPump which uses a different method to adjust performance curves (or tables) values. This may be what you looking for and this method I know does work. Review the EMS program in that example file before you attempt the method described above.