Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

You can change the airflow of your central fan by EMS. I modelled the EMS in the ExampleFile: VAVSingleDuctReheat_EMS.idf for reference. The revised idf file is here (V22-2-0). You can refer to it, especially the following part.

EnergyManagementSystem:Actuator,
    Fan_Mass_Flow_Rate,      !- Name
    Var Vol Supply Fan 1,    !- Actuated Component Unique Name
    Fan,                     !- Actuated Component Type
    Fan Air Mass Flow Rate;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Flow_Change,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Flow_Change;    !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Flow_Change,    !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021 * 0.6,  !- Program Line 2
    ELSE,                    !- A4
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021,  !- A5
    ENDIF;                   !- A6

Output:EnergyManagementSystem,
    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    None;                    !- EMS Runtime Language Debug Output Level

You may need to read EMS Application Guide if you are not familiar with EMS. The quickest way without understanding EMS is that you should change

  1. Actuated Component Unique Name from "Var Vol Supply Fan 1" to the actual fan name in your model
  2. "1.3" to the actual fan Maximum Flow Rate [m3/s] in your model.

1.17742603470021 is the air density [kg/m3] for calculating Fan Air Mass Flow Rate. I thought either the standard air density at 20C and 1atm (1.204kg/m3) or System Node Current Density is used, but as long as I compared the simulation results of System Node Mass Flow Rate and System Node Current Density Volume Flow Rate, that "constant" number is always used in EnergyPlus. You can change the number if necessary.

Output:EnergyManagementSystem helps output edd file which includes actuators available in your model.

At first, I tried to change airflow of each AirTerminal, but the following EMS did not work.

EnergyManagementSystem:Actuator,
    Zone_1_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 1 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_2_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 2 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_3_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 3 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_VAV_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_VAV_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_VAV_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Zone_1_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 * 0.6,  !- Program Line 2
    SET Zone_2_VAV_Max_Mass_Flow_Rate = 0.36 * 1.17742603470021 * 0.6,  !- A4
    SET Zone_3_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 * 0.6,  !- A5
    ENDIF;                   !- A6

I also tried to change the Fan Maximum Mass Flow Rate, but also did not work.

EnergyManagementSystem:InternalVariable,
    Fan_Max_Mass_Flow_Rate,  !- Name
    VAR VOL SUPPLY FAN 1,    !- Internal Data Index Key Name
    Fan Maximum Mass Flow Rate;  !- Internal Data Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Max_Mass_Flow_Rate = 1.3 * 1.17742603470021 * 0.6,  !- Program Line 2
    ENDIF;                   !- A4

So, the only way I know is to change the fan flow rate (not the maximum fan flow rate). The fan changed fan flow rate becomes constant, but it's ok in your case as you said your system blows a constant amount of air. Btw, if that's the case, it's not VAV-System but CAV-System.

You can change the airflow of your central fan by EMS. I modelled the EMS in the ExampleFile: VAVSingleDuctReheat_EMS.idf for reference. The revised idf file is here (V22-2-0). You can refer to it, especially the following part.

EnergyManagementSystem:Actuator,
    Fan_Mass_Flow_Rate,      !- Name
    Var Vol Supply Fan 1,    !- Actuated Component Unique Name
    Fan,                     !- Actuated Component Type
    Fan Air Mass Flow Rate;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Flow_Change,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Flow_Change;    !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Flow_Change,    !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021 * 0.6,  !- Program Line 2
    ELSE,                    !- A4
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021,  !- A5
    ENDIF;                   !- A6

Output:EnergyManagementSystem,
    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    None;                    !- EMS Runtime Language Debug Output Level

You may need to read EMS Application Guide if you are not familiar with EMS. The quickest way without understanding EMS is that you should change

  1. Actuated Component Unique Name from "Var Vol Supply Fan 1" to the actual fan name in your model
  2. "1.3" to the actual fan Maximum Flow Rate [m3/s] in your model.

1.17742603470021 is the air density [kg/m3] for calculating Fan Air Mass Flow Rate. I thought either the standard air density at 20C and 1atm (1.204kg/m3) or System Node Current Density is used, but as long as I compared the simulation results of System Node Mass Flow Rate and System Node Current Density Volume Flow Rate, that "constant" number is always used in EnergyPlus. You can change the number if necessary.

Output:EnergyManagementSystem helps output edd file which includes actuators available in your model.

At first, I tried to change airflow of each AirTerminal, but the following EMS did not work.

EnergyManagementSystem:Actuator,
    Zone_1_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 1 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_2_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 2 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_3_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 3 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_VAV_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_VAV_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_VAV_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Zone_1_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 * 0.6,  !- Program Line 2
    SET Zone_2_VAV_Max_Mass_Flow_Rate = 0.36 * 1.17742603470021 * 0.6,  !- A4
    SET Zone_3_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 * 0.6,  !- A5
    ENDIF;                   !- A6

I also tried to change the Fan Maximum Mass Flow Rate, but also did not work.

EnergyManagementSystem:InternalVariable,
    Fan_Max_Mass_Flow_Rate,  !- Name
    VAR VOL SUPPLY FAN 1,    !- Internal Data Index Key Name
    Fan Maximum Mass Flow Rate;  !- Internal Data Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Max_Mass_Flow_Rate = 1.3 * 1.17742603470021 * 0.6,  !- Program Line 2
    ENDIF;                   !- A4

So, the only way I know is to change the fan flow rate (not the maximum fan flow rate). The fan changed fan flow rate becomes constant, but it's ok in your case as you said your system blows a constant amount of air. Btw, if that's the case, it's not VAV-System but CAV-System.

You can change the airflow of your central fan by EMS. I modelled the EMS in the ExampleFile: VAVSingleDuctReheat_EMS.idf for reference. The revised idf file is here (V22-2-0). You can refer to it, especially the following part.

EnergyManagementSystem:Actuator,
    Fan_Mass_Flow_Rate,      !- Name
    Var Vol Supply Fan 1,    !- Actuated Component Unique Name
    Fan,                     !- Actuated Component Type
    Fan Air Mass Flow Rate;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Flow_Change,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Flow_Change;    !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Flow_Change,    !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021 1.17742603469114 * 0.6,  !- Program Line 2
    ELSE,                    !- A4
    SET Fan_Mass_Flow_Rate = 1.3 * 1.17742603470021, 1.17742603469114,  !- A5
    ENDIF;                   !- A6

Output:EnergyManagementSystem,
    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    None;                    !- EMS Runtime Language Debug Output Level

You may need to read EMS Application Guide if you are not familiar with EMS. The quickest way without understanding EMS is that you should change

  1. Actuated Component Unique Name from "Var Vol Supply Fan 1" to the actual fan name in your model
  2. "1.3" to the actual fan Maximum Flow Rate [m3/s] in your model.

1.17742603470021 1.17742603469114 is the air density [kg/m3] for calculating Fan Air Mass Flow Rate. I thought either the Rate for this ExampleFile. The standard air density at 20C and 1atm (1.204kg/m3) or is 1.204kg/m3, but the air density is adjusted according to System Node Current DensityElevation is used, but as long as I compared the simulation results of System Node Mass Flow RateSite:Location and in EnergyPlus/DesignBuilder. Please refer to this post, but the R (Gas Constant) in the post might be slightly different from what EnergyPlus actually uses. I consider R = 287.00461429615 so that the Air Terminal VAV Damper Position is reduced to exactly 60%. System Node Current Density Volume Flow RateElevation, that "constant" number of this ExampleFile is always used in EnergyPlus. You can change the number if necessary.190m, so the air density = 101325 * (1.0 − 190 * 0.0000225577)^5.2559 / (287.00461429615 * (20 + 273.15)) = 1.17742603469114 [kg/m3]

Output:EnergyManagementSystem helps output edd file which includes actuators available in your model.

At first, I tried to change airflow of each AirTerminal, but the following EMS did not work.

EnergyManagementSystem:Actuator,
    Zone_1_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 1 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_2_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 2 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    Zone_3_VAV_Max_Mass_Flow_Rate,  !- Name
    Zone 3 Reheat Air Outlet Node,  !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Mass Flow Rate Maximum Available Setpoint;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_VAV_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_VAV_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_VAV_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Zone_1_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 1.17742603469114 * 0.6,  !- Program Line 2
    SET Zone_2_VAV_Max_Mass_Flow_Rate = 0.36 * 1.17742603470021 1.17742603469114 * 0.6,  !- A4
    SET Zone_3_VAV_Max_Mass_Flow_Rate = 0.47 * 1.17742603470021 1.17742603469114 * 0.6,  !- A5
    ENDIF;                   !- A6

I also tried to change the Fan Maximum Mass Flow Rate, but also did not work.

EnergyManagementSystem:InternalVariable,
    Fan_Max_Mass_Flow_Rate,  !- Name
    VAR VOL SUPPLY FAN 1,    !- Internal Data Index Key Name
    Fan Maximum Mass Flow Rate;  !- Internal Data Type

EnergyManagementSystem:ProgramCallingManager,
    EMSPCM_Fan_Max_Flow_Change_Not_Work,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMSP_Fan_Max_Flow_Change_Not_Work;  !- Program Name 1

EnergyManagementSystem:Program,
    EMSP_Fan_Max_Flow_Change_Not_Work,  !- Name
    IF (Hour >= 22) || (Hour <= 5),  !- Program Line 1
    SET Fan_Max_Mass_Flow_Rate = 1.3 * 1.17742603470021 1.17742603469114 * 0.6,  !- Program Line 2
    ENDIF;                   !- A4

So, the only way I know is to change the fan flow rate (not the maximum fan flow rate). The changed fan flow rate becomes constant, but it's ok in your case as you said your system blows a constant amount of air. Btw, if that's the case, it's not VAV-System but CAV-System.