
re: thermal performance model
30 jan 2005
wrote:
>i'm building a house and am looking for a computer model (linux or
>windows, free or inexpensive) that can *accurately* predict my hvac
>heating loads given my exact residential floor plan, building envelope
>construction, glazing, occupancy and location (near reno).
you might write your own. thirdgraders can learn basic :)
here's a start, which reads the reno typical meterological
year (tmy2) hourly weather data file (available from nrel's
web site) and makes another simplified file called "winter."
10 pi=4*atn(1):screen 9:key off:cls
20 line (0,0)(639,349),,b:df=.434
30 for tr= 60 to 80 step 10'temp ref lines
40 line (0,3495*(tr10))(639,3495*(tr10)):next
50 f$="23185.tm2"'nrel tmy2 file name (reno)
60 open f$ for input as #1
70 open "winter" for output as #2
80 line input#1,s$'read header
90 city$=mid$(s$,8,25)
100 lat=val(mid$(s$,40,2))+val(mid$(s$,43,2))/60
110 lon=val(mid$(s$,48,3))+val(mid$(s$,52,2))/60
120 print#2,city$,lat,lon
130 gosub 190
140 pass=1
150 close #1
160 open f$ for input as #1
170 line input#1,s$'ignore header
180 gosub 190
190 for h=1 to 8760'hour of year
200 line input#1,s$
210 month=val(mid$(s$,4,2))'month of year (112)
220 if pass=0 and month<10 goto 610
230 if pass=1 and month=2 then end
240 wh=h+8760*pass
250 day=val(mid$(s$,6,2))'day of month
260 hour=val(mid$(s$,8,2)).5'hour of day
270 n=h/24'day of year (1 to 365)
280 tdb=val(mid$(s$,68,4))*.18+32'dry bulb temp (f)
290 pset(df*(wh8030),3495*(tdb10))
300 igloh=val(mid$(s$,18,4))*.317'global horizontal radiation (btu/ft^2)
310 print#2,month;day;hour;tdb;igloh;
320 idif=val(mid$(s$,30,4))*.317'diffuse horizontal radiation (btu/ft^2)
330 idir=val(mid$(s$,24,4))*.317'direct normal radiation (btu/ft^2)
340 l=pi*lat/180'phila latitude (radians)
350 t=hour'solar time (est)
360 x=sin(pi*23.45/180)*cos(2*pi*(n+10)/365.25)
370 d=atn(x/sqr(x*x+1))'sin^1(x) = declination (radians)
380 w=2*pi*(t12)/24'hour angle (radians)
390 x=cos(l)*cos(d)*cos(w)+sin(l)*sin(d)
400 thetas=atn(x/sqr(x*x+1))+pi/2'cos^1(x) = sun zenith angle (radians)
410 x=cos(d)*sin(w)/sin(thetas)
420 if x^2 >=1 then phis=1.570796327#:goto 440
430 phis=atn(x/sqr(x*x+1))'sin^1(x) = sun azimuth angle (radians)
440 for phipd=0 to 180 step 90'azimuth angle of plane (degrees)
450 phip=pi*phipd/180
460 x=sin(thetas)*cos(phisphip)
470 thetai=atn(x/sqr(x*x+1))+pi/2'incidence angle to surface (radians)
480 if thetai>=pi/2 then thetai=pi/2
490 rhog=.2'ground reflectance
500 iglop=idir*cos(thetai)+idif/2+igloh*rhog/2'radiation on surface (btu/ft^2)
510 print#2,iglop;
520 'if phipd = 0 then pset(h8030,349iglop)
530 next phipd
540 phip=pi*270/180
550 x=sin(thetas)*cos(phisphip)
560 thetai=atn(x/sqr(x*x+1))+pi/2'incidence angle to surface (radians)
570 if thetai>=pi/2 then thetai=pi/2
580 iglop=idir*cos(thetai)+idif/2+igloh*rhog/2'radiation on surface (btu/ft^2)
590 print#2,iglop
600 if hour=.5 then line (df*(wh8030),349)(df*(wh8030),345)
610 next h
620 return
here's the start of the winter file, with the month, day, hour, dry bulb
temperature (f), and btu/ft^2 of sun falling on the ground and south, west,
north, and east walls for the months of october through january. the worst
case months are december and january. i start simulating in october to make
sure house temperatures have stabilized by december.
reno nv 39.5 119.7833
10 1 .5 44.06 0 0 0 0 0
10 1 1.5 43.52 0 0 0 0 0
10 1 2.5 42.08 0 0 0 0 0
10 1 3.5 39.74 0 0 0 0 0
10 1 4.5 39.74 0 0 0 0 0
10 1 5.5 40.28 .634 .2433778 .2218999 .2218999 .8492084
10 1 6.5 41 20.288 20.40661 6.466783 6.466783 110.9118
10 1 7.5 48.92 79.884 78.2263 16.23037 16.23037 211.7582
10 1 8.5 57.02 142.333 137.1752 25.48676 25.48676 228.2724
10 1 9.5 64.94 194.638 186.9535 33.09476 33.09476 201.9825
10 1 10.5 69.98001 232.361 223.7174 38.29355 38.29355 149.5433
10 1 11.5 75.02001 247.577 240.1501 40.44915 40.44915 78.724
10 1 12.5 80.06001 245.041 240.2293 78.39368 40.03705 40.03705
10 1 13.5 80.06001 221.583 221.1326 147.2574 36.74025 36.74025
10 1 14.5 80.06001 178.154 183.0438 197.6003 30.65386 30.65386
10 1 15.5 80.06001 121.094 130.7123 218.4883 22.25336 22.25336
10 1 16.5 74.12 56.743 67.68118 185.0582 12.64827 12.64827
10 1 17.5 68 11.412 10.40487 49.15384 4.311193 4.311193
10 1 18.5 62.06 0 0 0 0 0
10 1 19.5 60.08 0 0 0 0 0
10 1 20.5 57.92 0 0 0 0 0
10 1 21.5 55.94 0 0 0 0 0
10 1 22.5 51.26 0 0 0 0 0
10 1 23.5 46.76 0 0 0 0 0
10 2 .5 42.08 0 0 0 0 0
...
here's a program that simulates an 8' r32 cube with an r2 south wall
with 80% solar transmission and a huge thermal mass using the winter
file as an input. there are much more efficient solar heating schemes
(eg those using simple air heaters or lowthermalmass sunspaces), but
this direct gain scheme is simple to simulate with a 21 line program.
10 cls:screen 9:line (0,0)(639,349),,b:df=.43
20 for tr=20 to 70 step 10'plot temp ref lines
30 line (0,3495*(tr10))(639,3495*(tr10)):next
40 rv=32'wall rvalue
50 c=20000!'house capacitance (btu/f)
increasing the rvalue or capacitance raises the worstcase temperature...
60 ti=70:timin=1000'initial house air temps (f)
70 open "winter" for input as #1:line input#1,h$
80 input#1,month,day,hour,ta,sh,ss,sw,sn,se
100 solgain=.8*64*ss(tita)*32'net south window solar gain (btu)
the solar gain is 80% of the south sun minus the heat loss to the outdoors.
110 ih=solgain(tita)*5*64/rv
120 ti=ti+ih/c'find new house temperature (f)
divide the net heatflow by the capacitance to find its temperature change.
130 if ti>70 then ti=70'limit house temp
an exhaust fan might enforce this 70 f upper comfort limit.
200 if tione that i've tried (equest) is wonderful in its detail and
>easeofuse. unfortunately, there must be a flaw in the underlying
>model calculation because increasing the south facing (double pane,
>high shgc) glass from 12% to 70% *increases* the hvac heating
>requirements.
windows lose heat at night and on cloudy days, as dj mentioned.
you might try making this south window a simple air heater that loses
no heat at night, or move it to a lowthermalmass sunspace that's
isolated from the living space and let warm air circulate between
the sunspace during the day and stop the circulation at night and
let the sunspace get cold, so the window loses little heat at night,
if your simulation program permits. lots of them don't, even doe's
latest and greatest energy 10.
changing the window to an air heater in the cube above reduces the
required thermal mass from 20k to 3.5k btu/f, for a 65 f min temp.
putting in the ceiling with a larger temp swing reduces it further,
especially with a nighttime heat setback.
>other software (e.g. the canadian hot2000, resfen 3.1 )
>does not seem to allow one to input the exact floorplan, unique
>building materials (e.g. icf's) and other data necessary for an
>accurate estimate of heating requirements. some also have artificial
>limitations (e.g. unable to specify 80% of the south facing wall as
>windows)
those are the kinds of limitations and bugs and unclear assumptions
that led me to write my own hourly simulation programs. also, being
able to change the fundamentals can give much deeper insight as to
what's going on, compared to canned programs.
nick

