-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Hello, @FedericoTartarini. Congratulations for your work and thank you for sharing it! You've saved me a lot of time!
I've tried to use your implementation for different scenarios, running loops and varying DTB, RU, WV (wind velocity) and it worked really well. However, there is a limitation for the effect of WV in the PMV model: depending on temperature, it stops cooling. For simulations increasing in 1ºC, it stops when DTB is above 33ºC (I'm using MRT=DTB).
Here's the PMV calling inside the loops:
WV_r = v_relative(WV,MET)
PMV = pythermalcomfort.pmv(DBT,MRT,WV_r,RU,MET,CLO,standard='ISO')
line = {'MET':MET,'CLO':CLO,'MRT [C]':MRT,'DBT [C]':DBT,'RU [%]':RU,'WV [m/s]':WV,'PMV n':PMV,'PMV':PMV_name}
CT_test = CT_test.append(line, ignore_index=True)
Here are the outputs I'm addressing (there as XLSX file attached):
MET | CLO | MRT [C] | DBT [C] | RU [%] | WV [m/s] | PMV n | PMV
-- | -- | -- | -- | -- | -- | -- | --
1,4 | 0,57 | 34 | 34 | 45 | 0,1 | 2,73 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 0,3 | 2,74 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 0,6 | 2,75 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 1 | 2,76 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 1,3 | 2,77 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 1,6 | 2,77 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 2 | 2,78 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 2,3 | 2,78 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 2,6 | 2,78 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 3 | 2,79 | Hot
1,4 | 0,57 | 34 | 34 | 45 | 4 | 2,8 | Hot
github_pythermalcomfort_pmvScenarios.xlsx
As you can see, as I increase the WV, for the same conditions in other variables, the PMV doesn't decrease. Am I missing something?
Also, do you know if there's a function which limits WV for the ISO standard? From what I've analyzed, you only generate warnings -- which are being raised in intervals different from the warnings, as shown below. I'd also like to use WV up to 10m/s in my simulations and, for what I've tested, there isn't anything that would interfere, but I'd love if you could confirm that to me.
elif params['standard'] == 'iso': # based on table 7.3.4 ashrae 55 2017
for key, value in params.items():
if key == 'tdb':
if value > 30 or value < 10:
warnings.warn("ISO air temperature applicability limits between 10 and 50 °C", UserWarning)
if key == 'tr':
if value > 40 or value < 10:
warnings.warn("ISO air temperature applicability limits between 10 and 50 °C", UserWarning)
if key in ['v', 'vr']:
if value > 1 or value < 0:
warnings.warn("ISO air velocity applicability limits between 0 and 2 m/s", UserWarning)
if key == 'met':
if value > 4 or value < 0.8:
warnings.warn("ISO met applicability limits between 1.0 and 2.0 met", UserWarning)
if key == 'clo':
if value > 2 or value < 0:
warnings.warn("ISO clo applicability limits between 0.0 and 1.5 clo", UserWarning)
Again, thank you and congratulations for your work!
Obs.: I'm currently running Python 3.7 through Anaconda, in Windows 10.
