-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Rule22-17.md #1388
base: develop
Are you sure you want to change the base?
Update Rule22-17.md #1388
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
|
||
# CHW&CW - Rule 22-17 | ||
|
||
**Schema Version:** 0.0.25 | ||
**Schema Version:** 0.0.37 | ||
**Mandatory Rule:** FALSE | ||
**Rule ID:** 22-17 | ||
**Rule Description:** The baseline heat rejection device shall have an efficiency of 38.2 gpm/hp | ||
|
@@ -31,35 +31,36 @@ | |
|
||
## Rule Logic: | ||
|
||
- set has_fan_shaft_power flag equal to false: `has_fan_shaft_power = false` | ||
- set has_fan_motor_nameplate_power flag equal to false: `has_fan_motor_nameplate_power = false` | ||
|
||
- create a variable additional_note_for_no_shaft_power. If the heat_rejection has the fan_shaft_power data element, this note variable will be a blank string, however if there is no fan_shaft_power, the note will be a string that describes how fan_shaft_power is calculated: `set additional_note_for_no_shaft_power = ""` | ||
- create a variable additional_note_for_motor_nameplate_power. If the heat_rejection has the fan_motor_nameplate_power data element, this note variable will be a blank string, however if there is no fan_motor_nameplate_power, the note will be a string that describes how fan_shaft_power is calculated: `set additional_note_for_motor_nameplate_power = ""` | ||
|
||
- check if the heat rejection has fan_shaft_power (not sure the exact python command for this): `if heat_rejection.fan_shaft_power: | ||
- check if the heat rejection has fan_motor_nameplate_power (not sure the exact python command for this): `if heat_rejection.fan_motor_nameplate_power: | ||
|
||
- set fan_shaft_power equal to heat_rejection.fan_shaft_power: `fan_shaft_power = heat_rejection.fan_shaft_power` | ||
- set fan_motor_nameplate_power equal to heat_rejection.fan_motor_nameplate_power: `fan_motor_nameplate_power = heat_rejection.fan_motor_nameplate_power` | ||
|
||
- set has_fan_shaft_power flag equal to true: `has_fan_shaft_power = true` | ||
- set has_fan_motor_nameplate_power flag equal to true: `has_fan_motor_nameplate_power = true` | ||
|
||
- otherwise, we need to calculate shaft power based on the motor nameplate power: `else:` | ||
- otherwise, we need to calculate shaft power based on the motor nameplate power if fan_shaft_power is defined: `elif heat_rejection.fan_shaft_power:` | ||
|
||
- set fan_shaft_power equal to the heat_rejection.fan_motor_nameplate_power * 0.9 (0.9 is a rule of thumb suggested by Michael Rosenberg in April 2023): `fan_shaft_power = heat_rejection.fan_motor_nameplate_power * 0.9 * heat_rejection.fan_motor_efficiency` | ||
- set fan_motor_nameplate_power equal to the heat_rejection.fan_shaft_power * 0.9 (0.9 is a rule of thumb suggested by Michael Rosenberg in April 2023): `fan_motor_nameplate_power = heat_rejection.fan_shaft_power * 0.9 * heat_rejection.fan_motor_efficiency` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was finding this confusing because at first when I reviewed this I assumed this meant fan motor nameplate hp but when I got to the end realized it means fan motor nameplate power in kW. I suppose that makes sense but I think hp is much more commonly reported on motor nameplates than kW although the baseline is a virtual motor any way so maybe what is commonly reported on motors does not matter then. To go from fan_shaft_power to motor nameplate power I think this should be *(1/0.9) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, in the schema the note on the right says nameplate hp. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok, updated the calculation for fan_BHP to be different depending on whether There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not following this, why would fan_BHP equal fan_motor_nameplate_power? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @KarenWGard I recommend that we discuss these comments before edits are made to avoid multiple iterations resulting from miscommunications. |
||
|
||
- if the shaft power is not directly entered, we also need to create an additional note to return with the result, describing how the calculation was completed: `addtitional_note_for_no_shaft_power = " *Note: The fan shaft power for " + heat_rejection + " was not given. For this evaluation, the fan shaft power was cacluated using a rule of thumb where fan_shaft_power = fan_motor_nameplate_power * 0.9 * fan_motor_efficiency." | ||
|
||
- calculate fan brake horsepower by multiplying the fan shaft power by 0.00134102 (the conversion from Watts to HP): `fan_BHP = fan_shaft_power * 0.00134102` | ||
- if the motor nameplate power is not directly entered, we also need to create an additional note to return with the result, describing how the calculation was completed: `addtitional_note_for_no_motor_nameplate_power = " *Note: The fan motor nameplate power for " + heat_rejection + " was not given. For this evaluation, the fan motor nameplate power was cacluated using a rule of thumb where fan_motor_nameplate_power = fan_shaft_power * 0.9 * fan_motor_efficiency." | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing ` There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To go from fan_shaft_power to motor nameplate power I think this should be *(1/0.9) |
||
|
||
- otherwise, if there is no fan motor nameplate power or no fan_shaft power, then we can't calculate at all, set a boolean: could_not_calculate to TRUE: `could_not_calculate = true` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Need |
||
- calculate fan brake horsepower by multiplying the fan shaft power by 0.00134102 (the conversion from Watts to HP): `fan_BHP = fan_motor_nameplate_power * 0.00134102` | ||
|
||
- get the rated water flow rate (assumed to be gpm): `rated_water_flowrate = heat_rejection.rated_water_flowrate` | ||
|
||
- calculate the efficiency in gpm/hp: `heat_rejection_efficiency = rated_water_flowrate / (fan_BHP)` | ||
|
||
**Rule Assertion - HeatRejection:** | ||
|
||
- Case 1: check if the efficiency is greater than the rated efficiency: `if ( ahj_flag AND ( heat_rejection_efficiency > 38.2 )): UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be " + heat_rejection_efficiency + ", which is greater than the required efficiency of 38.2 gpm / hp, resulting in a more stringent baseline. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7." + addtitional_note_for_no_shaft_power` | ||
- Case 1: the result couldn't be calcualted because fan_motor_nameplate_power and fan_shaft_power were not given: `if could_not_calculate: UNDETERMINED; note = "The project includes a cooling tower. However, we could not calculate the cooling tower efficiency because neither the fan_motor_nameplate_power nor fan_shaft_power were given" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing ` |
||
- Case 2: check if the efficiency is greater than the rated efficiency: `if ( ahj_flag AND ( heat_rejection_efficiency > 38.2 )): UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be " + heat_rejection_efficiency + ", which is greater than the required efficiency of 38.2 gpm / hp, resulting in a more stringent baseline. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7." + additional_note_for_motor_nameplate_power` | ||
|
||
- Case 2: elsif the heat_rejection_efficiency equals 38.2 gpm/hp, PASS, but include note: `if ( heat_rejection_efficiency == 38.2 ): UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be correct at 38.2 gpm / hp. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7." + addtitional_note_for_no_shaft_power` | ||
- Case 3: elsif the heat_rejection_efficiency equals 38.2 gpm/hp, PASS, but include note: `if ( heat_rejection_efficiency == 38.2 ): UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be correct at 38.2 gpm / hp. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7." + additional_note_for_motor_nameplate_power` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The description says PASS but the outcome is UNDETERMINED. |
||
|
||
- Case 3: Else: `else: UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be " + heat_rejection_efficiency + ", which is less than the required efficiency of 38.2 gpm / hp. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7. Please review the efficiency and ensure that it is correct at the rating conditions as specified in the Table 6.8.1-7." + addtitional_note_for_no_shaft_power` | ||
- Case 4: Else: `else: UNDETERMINED; note = "The project includes a cooling tower. We calculated the cooling tower efficiency to be " + heat_rejection_efficiency + ", which is less than the required efficiency of 38.2 gpm / hp. However, it was not possible to verify that the modeling inputs correspond to the rating conditions in Table 6.8.1-7. Please review the efficiency and ensure that it is correct at the rating conditions as specified in the Table 6.8.1-7." + additional_note_for_motor_nameplate_power` | ||
|
||
|
||
**Notes:** | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing `