Source code for eppy.fanpower

# -*- coding: utf-8 -*-
# Copyright (c) 2017 Santosh Philip
# =======================================================================
#  Distributed under the MIT License.
#  (See accompanying file LICENSE or copy at
#  http://opensource.org/licenses/MIT)
# =======================================================================
"""quick and dirty functions for get fan power BHP or Watts
"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

# from eppy.bunch_subclass import BadEPFieldError
# import eppy.bunch_subclass


[docs]def pascal2inh2o(pascal): """convert pressure in Pascals to inches of water""" # got this from a google search return pascal * 0.00401865
[docs]def inh2o2pascal(inh2o): """convert pressure in inches of water to Pascals""" return (inh2o * 1.0) / 0.00401865
[docs]def m3s2cfm(m3s): """convert flow meter^3/second to cfm""" # from http://www.traditionaloven.com/tutorials/flow-rate/convert-m3-cubic-meter-per-second-to-ft3-cubic-foot-per-minute.html return (m3s * 1.0) * 2118.880003
[docs]def cfm2m3s(cfm): """convert flow cfm to meter^3/second""" return cfm / 2118.880003
[docs]def fan_bhp(fan_tot_eff, pascal, m3s): """return the fan power in bhp given fan efficiency, Pressure rise (Pa) and flow (m3/s)""" # from discussion in # http://energy-models.com/forum/baseline-fan-power-calculation inh2o = pascal2inh2o(pascal) cfm = m3s2cfm(m3s) return (cfm * inh2o * 1.0) / (6356.0 * fan_tot_eff)
[docs]def bhp2pascal(bhp, cfm, fan_tot_eff): """return inputs for E+ in pascal and m3/s""" inh2o = bhp * 6356.0 * fan_tot_eff / cfm pascal = inh2o2pascal(inh2o) m3s = cfm2m3s(cfm) return pascal, m3s
[docs]def bhp2watts(bhp): """convert brake horsepower (bhp) to watts""" return bhp * 745.7
[docs]def watts2bhp(watts): """convert watts to brake horsepower (bhp)""" return watts / 745.7
[docs]def fan_watts(fan_tot_eff, pascal, m3s): """return the fan power in watts given fan efficiency, Pressure rise (Pa) and flow (m3/s)""" # got this from a google search bhp = fan_bhp(fan_tot_eff, pascal, m3s) return bhp2watts(bhp)
[docs]def watts2pascal(watts, cfm, fan_tot_eff): """convert and return inputs for E+ in pascal and m3/s""" bhp = watts2bhp(watts) return bhp2pascal(bhp, cfm, fan_tot_eff)
[docs]def fanpower_bhp(ddtt): """return fan power in bhp given the fan IDF object""" from eppy.bunch_subclass import ( BadEPFieldError, ) # here to prevent circular dependency try: fan_tot_eff = ddtt.Fan_Total_Efficiency # from V+ V8.7.0 onwards except BadEPFieldError as e: fan_tot_eff = ddtt.Fan_Efficiency pascal = float(ddtt.Pressure_Rise) if str(ddtt.Maximum_Flow_Rate).lower() == "autosize": # str can fail with unicode chars :-( return "autosize" else: m3s = float(ddtt.Maximum_Flow_Rate) return fan_bhp(fan_tot_eff, pascal, m3s)
[docs]def fanpower_watts(ddtt): """return fan power in bhp given the fan IDF object""" from eppy.bunch_subclass import ( BadEPFieldError, ) # here to prevent circular dependency try: fan_tot_eff = ddtt.Fan_Total_Efficiency # from V+ V8.7.0 onwards except BadEPFieldError as e: fan_tot_eff = ddtt.Fan_Efficiency pascal = float(ddtt.Pressure_Rise) if str(ddtt.Maximum_Flow_Rate).lower() == "autosize": # str can fail with unicode chars :-( return "autosize" else: m3s = float(ddtt.Maximum_Flow_Rate) return fan_watts(fan_tot_eff, pascal, m3s)
[docs]def fan_maxcfm(ddtt): """return the fan max cfm""" if str(ddtt.Maximum_Flow_Rate).lower() == "autosize": # str can fail with unicode chars :-( return "autosize" else: m3s = float(ddtt.Maximum_Flow_Rate) return m3s2cfm(m3s)