Closed nmerket closed 8 years ago
Hmm, not sure that would be consistent with the general standard air density assumptions in EnergyPlus which generally use the standard barometric pressure at the local elevation. Have you found anywhere in EnergyPlus that uses sea level? @rraustad ?
I'm sorry, I was not clear in my description. This is only a problem when calculating the rated CBF because they're rated at sea level barometric pressure. In operation it should, of course, use the barometric pressure at altitude.
My question still stands, because EnergyPlus reports many other rated values. e.g. Rated Sensible Heat Ratio.
I'm not sure I follow your question. If EnergyPlus is doing a calculation using the rated humidity and air temperature, why wouldn't you also use the rated air pressure?
Rated can mean a lot of different things. In EnergyPlus, Rated Air Volume Flow Rates get converted into mass flow using the standard density at the local elevation (not sea level). So, right or wrong, if all the rated values are to be consistent with each other, it seems the rated CBF should also be at the local elevation. But I'm not 100% certain about this, so will wait for @rraustad or @Nigusse to chime in.
The DX coil is rated at standard pressure, which is hidden in the mass flow rate conversion:
DXCoil.RatedAirMassFlowRate = DXCoil.RatedAirVolFlowRate * PsyRhoAirFnPbTdbW( StdBaroPress, RatedInletAirTemp, RatedInletAirHumRat, RoutineName ); Then the coil gets sized based on sizing data and this air mass flow rate.
StdBaroPress = 101325.0; (this does not get converted based on elevation)
On 8/17/2015 3:04 PM, Michael J. Witte wrote:
/Rated/ can mean a lot of different things. In EnergyPlus, Rated Air Volume Flow Rates get converted into mass flow using the standard density at the local elevation (not sea level). So, right or wrong, if all the rated values are to be consistent with each other, it seems the rated CBF should also be at the local elevation. But I'm not 100% certain about this, so will wait for @rraustad https://github.com/rraustad or @Nigusse https://github.com/Nigusse to chime in.
— Reply to this email directly or view it on GitHub https://github.com/NREL/EnergyPlus/issues/5110#issuecomment-131931486.
Richard Raustad Florida Solar Energy Center 1679 Clearlake Road Cocoa, FL 32922 Ph: (321)638-1454 http://www.fsec.ucf.edu/en/
Program Director Electric Vehicle Transportation Center http://evtc.fsec.ucf.edu/
@rraustad That's what it is initialized to in DataEnvironment.cc, but WeatherManager changes it
StdBaroPress = 101.325 * std::pow( 1.0 - 2.25577e-05 * Elevation, 5.2559 );
StdBaroPress *= 1000.0;
StdRhoAir = PsyRhoAirFnPbTdbW( StdBaroPress, constant_twenty, constant_zero );
OK, I missed that in the search.
On 8/17/2015 3:28 PM, Michael J. Witte wrote:
@rraustad https://github.com/rraustad That's what it is initialized to in DataEnvironment.cc, but WeatherManager changes it
|StdBaroPress = 101.325 * std::pow( 1.0 - 2.25577e-05 * Elevation, 5.2559 ); StdBaroPress *= 1000.0; StdRhoAir = PsyRhoAirFnPbTdbW( StdBaroPress, constant_twenty, constant_zero ); |
— Reply to this email directly or view it on GitHub https://github.com/NREL/EnergyPlus/issues/5110#issuecomment-131936711.
Richard Raustad Florida Solar Energy Center 1679 Clearlake Road Cocoa, FL 32922 Ph: (321)638-1454 http://www.fsec.ucf.edu/en/
Program Director Electric Vehicle Transportation Center http://evtc.fsec.ucf.edu/
Yes, and when I put it in the debugger, it's definitely the modified version from the weather manager.
I just ran into this today and ended up using this locally
Psychrometrics::PsyRhoAirFnPbTdbW( 101325.0, 20.0, 0.0);
@EnergyArchmage Why? Searching for 101325 reveals quite a few places where this is being used. Seems we should have a constant for StdBaroPressSeaLevel (or such) so it's clear when one is being used vs the one at elevation. But when is it right to use sea level vs local elevation and is this being done properly everywhere.
I agree, if it existed in a general place I would use it.
Just created a new branch and pull request #5116 with:
StdBaroPressSeaLevel
as a global constant.CalcCBF
to be called with a different barometric pressure when it is necessary that defaults to the current value of StdBaroPress
otherwise.StdBaroPressSeaLevel
instead of StdBaroPress
.As to when, I now believe it can be technically correct to use a non-elevation adjusted density and pressure in certain special situations when converting "catalog" type, rated performance data that are expected to be given for sea level. Because to do otherwise is to ignore that catalog data are (typically) only given for sea level, and the less dense air at elevation does impact performance. Only rating point data used to scale or otherwise characterize the general performance of equipment should use STP (101325 PA, 20C, dry air (ala NIST); the actual primary inputs and calculations for simulating operation should use elevation-adjusted pressure and density, as is usual now. For example in the four pipe model I am working on, the user design air flow rate is normalized by dividing by a catalog rating point air flow rate. My current plan is that the numerator gets elevation-adjusted density when converting to mass flow but the denominator gets sea level density when converting to mass flow. This allows scaling performance properly I think. If both were using elevation adjusted density, then the catalog rating point will have been magically and silently transferred to be the same at elevation which seems wrong.
It is conceptually difficult and needs to be thought through on a case by case basis to figure out places where existing models may need to be improved. But for example, good candidates for investigation would be thinks like the rated air flows for different speed levels in the variable speed coils.
Good points. It seems that capacities also need to be scaled in a similar manner. If one hard sizes the flow and capacity at a given speed, for example, if both are assumed to be at sea level, then the capacity corresponds to that higher mass flow rate and should be derated when the simulation adjusts that to a smaller mass flow rate due to elevation.
Heads up: I made some more pushes to #5116 towards fixing this. Any review would be appreciated.
When a heat pump water heater is used at anywhere at elevation, the
StdBaroPress
for that elevation is used to calculate the rated coil bypass factor for that unit when it should use the barometric pressure at sea level.@jmaguire1