NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.1k stars 384 forks source link

Exterior shading surfaces modeled using "FullInteriorAndExteriorWithReflections" can show some solar getting through. When "*WithReflections" is active a partially sunlit shading surface reflects uniformly from the entire surface. This... (CR #7872) #2652

Closed axelstudios closed 5 years ago

axelstudios commented 10 years ago

...is as designed.

Solar getting past shading surfaces for certain configurations

Added on 2009-09-17 09:48 by @mjwitte

Description

MJW 17 Sep 2009

From user ticket

User: In the attached idf model there is a simple box zone completely surrounded by shading surfaces with 0% transmission. The FullInteriorAndExteriorWithReflections solar option is used so the shading surfaces should block direct and reflected solar radiation.

We find that considerable solar radiation is being passed through the windows when it seems that, from the model description, there should be none.


MJW: After some experimenting, I suspect it has something to do with the fact that the same shading surface can be partially exposed and partially shaded. But I have not proven that yet. I've done a number of variations, and found the following, using Zone Transmitted Solar at 6:30 as an indicator:

FullInteriorAndExteriorWithReflections, Shades reflective, Ground refelective, Building reflective = 320W (original file) FullInteriorAndExterior, Shades reflective, Ground refelective, Building reflective = 990W (ground is not shaded here) FullInteriorAndExterior, Shades reflective, Ground zero refl, Building reflective = 0W FullInteriorAndExterior, Shades removed, Ground zero refl, Building reflective = 10474W FullInteriorAndExteriorWithReflections, Shades removed, Ground refelective, Building reflective = 11,427 W FullInteriorAndExteriorWithReflections, Shades reflective, Ground zero refl, Building reflective = 320W (same as original W) FullInteriorAndExteriorWithReflections, Shades zero refl, Ground refelective, Building reflective = 160 W FullInteriorAndExteriorWithReflections, Shades zero refl, Ground refelective, Building zero refl = 160 W FullInteriorAndExteriorWithReflections, Shades zero refl, Ground zero refl , Building zero refl = 160 W

Not sure what this says yet. Next thing to try is making the shading surfaces and enclosed box surrounding the zone.


MJW: Just to be clear, it's the combination of FullInteriorAndExterior (i.e. no reflections) plus zero ground reflectance which produces the expected result. The shading and building surface reflectances are not relevant.

I've done more experimenting with the shades reduced in size to form an enclosed box (no shades intersecting or extending beyond the others). This reduces the total solar entering the zone, but does not eliminate it. My current conclusion is that the "WithReflections" algorithm is leaking in some way, perhaps not fully accounting for initial or secondary shade effects. Will post a CR.


LKL: I think I'm seeing something -- line about 638 in SolarReflectionManager takes into account when heat transfer surfaces are not sunlit. But what about Shading surfaces that have no transmittence? -- this is hard because only the "front" side of a shading surface should be sunlit (and if transmittance 0, then the back would have no reflectance?) Not even sure we calculate sunlit fraction of shading surfaces -- we must, huh?


Inputs: 7872-* Weather: None

In the csv files Col L "Zone Transmitted Solar" is the key indicator, the expectation is that this should be zero at all times in all of these files. Currently, the only test file that shows zero solar into the zone is 7872-NoReflections-ZeroGroundReflectance

Since the NoReflections option does not shade the ground, then I guess we must expect some solar for this case: 7872-NoReflections

I would suggest focusing on the user's original file, 7872-Original-WithReflections-ShadeAndGroundReflective. The other test files are simply to confirm the fix for other configurations.

TH 1/13/2010 I did more runs and debugging in code. The non-zero window transmitted solar is due to the transmitted diffuse solar, the transmitted beam solar is always zero as well as the surface SunLitFac for exterior walls and windows. The non-zero transmitted diffuse solar comes from two terms - the sky diffuse reflected from obstructions, and the beam-to-diffuse reflected from obstructions. Both terms are calculated in the subroutines CalcBeamSolDiffuseReflFactors and CalcSkySolDiffuseReflFactors in the SolarReflectionManager.f90 module.

The SunLitFrac does get calc for all surfaces including shading ones in the subroutine CalcPerSolarBeam. For this original defect file, some mirrored shading surfaces have non zero SunLitFrac.

TH 4/6/2010 I think I have a better understanding of how shadings are handled in EnergyPlus after debugging CR 7872 and reading documentations. The solar leaks are only from the beam-to-diffuse reflected by shading surfaces and sky diffuse reflected by shading surfaces. Two major problems were found:

  1. The beam-to-diffuse reflected by shading surfaces The problem is due to how a shading surface and its mirrored shading surface are handled in the Subroutine CalcBeamSolDiffuseReflFactors of SolarReflectionManager.f90. If a shading surface is not inputed to be facing the shaded surface, problem also occurs. This was fixed.
  2. The sky diffuse reflected by shading surfaces When E+ calculates the reflection of sky diffuse solar from a shading surface to a receiving heat transfer surface, it tries to consider the secondary shading effect in a simplified way - by calculating a sunlit ratio = sunlit area / shading surface area, and applying it to the whole shading surface. In the CR 7872 case, the sunlit areas do reflect sky diffuse solar but they would not hit the receiving heat transfer surface, therefore the actual reflected sky diffuse solar from the shading surface should be zero. But using a uniform sunlit ratio would proportionate the reflected sky diffuse solar to the whole shading surface.

Three options seem available to address this problem - a) A workaround is to split a shading surface into separate pieces as they intercept with other shading surfaces or heat transfer surfaces. This will get rid of the special partial shading issue. b) Modify the code to have complete shading information of a shading surface- which parts are shaded and which parts are not. This will further slow down the shading calculations. c) Allow an input of ViewSkyFactor for shading surfaces. Right now it is automatically calculated based on the surface Tilt angle. In CR 7872 case, setting the ViewSkyFactor to 0 for the shading surfaces would solve the problem.

TH 4/7/2010 After today's conf call, the census is to checkin code to fix the beam-to-diffuse reflection, and describe item 2 a) in the IORef (also Tips and Tricks).

Two modified defect files were uploaded:

'7872 Shades Cut.idf' - shading surfaces were trim to form a rectangular box, used to test sky diffuse reflected by shading surfaces which should be 0.

'7872 Shades Fixed.idf' - facing of shading surfaces and negative Zs were fixed, used to test beam-to-diffuse reflection which should be 0.

These two files also added related report variables in the timestep reports.

The fix for this CR also added Surface%MirroredSurf to replace the use of 'Mir' in the IF comparison statements: to avoid string comparison and allow shadig surface names to start with 'Mir'.

TH, Mike, Linda 4/12/2010 Added to Tips and Tricks to clarify the limitations of current sky diffuse solar reflection. Work-around is described.

TH 4/12/2010 Running the file '7872 Shades Cut.idf' - shading surfaces were trim to form a rectangular box - revealed small solar leak. This can be due to the rounding error in the clipping of shadows to determine the heat transfer surface sunlit area. If we set SunLitFrac = 0.0 when SunLitFrac < 0.01, and set FracIlluminated = 0.0 when FracIlluminated < 0.01, the problem goes away. In Winkelman's code, a few places used the check of SunLitFrac < 0.01, so we actually maintain consistency! See the code changes in the Attachments tab.

MJW 20 Apr 2010 Per Tianzhen, will add this check after v5.0 release. But in general, this is "as-designed".

TH 5/19/2010 suggestion of 4/12/2010 implemented. Code checked in.

MJW 25 May 2010 Linda reverted the checkin, so reopening this CR.

TH 3/7/2011 Re-assigned to Tyler as he dived deep into solar shading now. Hoep he can provide a fresh look at the CR.

Workaround

If using WithReflections, shading surfaces should be broken into multiple surfaces at lines of intersection with another shading surface. This also includes places where another surface may tee into a shading surface. For example, a building is shaded by surface A, 20m long by 6 m high, running North-South. Shading surface B, running East-West, connects to surface A. Surface A should be broken into two parts at the point where Surface B connects to it.

External Ref: Ticket 1211

JasonGlazer commented 8 years ago

Updated the test files to EnergyPlus. 8.4.0. The 7872ShadesCut_V840.idf in Stuttgart still shows 709:Zone Windows Total Transmitted Solar Radiation Rate W for timestep 6:30 with a value of 14.9 W. So some "leaking" may still be occurring. The code has changed some since the issue was discussed in 2010.