/[ascend]/trunk/models/solar/absorbed_radiation_with_tracking.a4l
ViewVC logotype

Contents of /trunk/models/solar/absorbed_radiation_with_tracking.a4l

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2594 - (show annotations) (download) (as text)
Fri Apr 13 20:20:33 2012 UTC (10 years, 2 months ago) by jpye
File MIME type: text/x-ascend
File size: 5233 byte(s)
Renaming sunpos.a4c to sunpos_db.a4c. 
Changing angle convention for NREL SPA to accord with DB & Grena.
Adding model to compare the three sunpos models.
Updating files depending on sunpos_db.a4c.
1 REQUIRE "atoms.a4l";
2 REQUIRE "solar/solar_types.a4l";
3 REQUIRE "johnpye/thermo_types.a4c";
4 REQUIRE "johnpye/sunpos_db.a4c";
5
6
7 MODEL sunpos_tracker1 REFINES sunpos_db;
8 (* The collector is rotated about a horizontal east-west axis with single daily adjustment such that the solar beam is normal to the collector aperture plane at solar noon *)
9
10 cos(beta) * cos(phi - delta) + cos(gamma) * sin(beta) * sin(phi - delta) = 1;
11
12 METHODS
13 METHOD specify;
14 FIX t, L_st, L_loc, phi; (* time and location *)
15 FIX gamma; (* surface orientation *)
16
17 FREE beta;
18 END specify;
19
20 METHOD bound_self;
21 beta.lower_bound := 0 {deg};
22 beta.upper_bound := 90 {deg};
23 END bound_self;
24
25 METHOD values;
26 L_st := -90{deg}; (* USA Central time*)
27 L_loc := -89.4{deg};
28 phi := +43{deg}; (* t := 32.4375 {d}; *)
29 t := 32{d} + 10{h}+30{min};
30
31 (* surface orientation *)
32 gamma := 15{deg};
33 END values;
34
35 METHOD default_self;
36 beta := 45{deg};
37 END default_self;
38
39 METHOD on_load;
40 RUN specify;
41 RUN bound_self;
42 RUN values;
43 RUN default_self;
44 END on_load;
45 END sunpos_tracker1;
46
47
48 MODEL sunpos_tracker2 REFINES sunpos_db;
49 (* The collector is rotated about a horizontal east-west axis with continuous adjustment to minimize the angle of incidence *)
50
51 sin(delta) * ( sin(phi)*sin(beta) + cos(phi)*cos(beta)*cos(gamma) ) = cos(delta) * cos(omega) * ( sin(phi) * cos(beta) * cos(gamma) - cos(phi) * sin(beta) ) + cos(delta) * cos(beta) * sin(gamma) * sin(omega);
52
53 METHODS
54 METHOD specify;
55 FIX t, L_st, L_loc, phi; (* time and location *)
56 FIX gamma; (* surface orientation *)
57 END specify;
58
59 METHOD bound_self;
60 beta.lower_bound := 0 {deg};
61 beta.upper_bound := 90 {deg};
62 END bound_self;
63
64 METHOD values;
65 L_st := -90{deg};
66 L_loc := -89.4{deg};
67 phi := +43{deg};
68 (* t := 32.4375 {d}; *)
69 t := 32{d} + 10{h}+30{min};
70 gamma := 15{deg}; (* surface orientation *)
71 END values;
72
73 METHOD default_self;
74 beta := 45{deg};
75 END default_self;
76
77 METHOD on_load;
78 RUN specify;
79 RUN values;
80 RUN bound_self;
81 RUN default_self;
82 END on_load;
83 END sunpos_tracker2;
84
85
86 MODEL absorbed_intensity;
87 gamma IS_A angle; (* surface azimuth angle, south=0, west positive *)
88 beta IS_A angle; (* surface inclination, horiz=0, +90deg=vertical *)
89 theta IS_A angle; (* angle of incidence of sun onto inclined surface *)
90 theta_z IS_A angle; (* zenith angle of the sun *)
91
92 S IS_A intensity; (* Absorbed Intensity *)
93
94 G IS_A intensity;
95 Gt IS_A intensity;
96 Gd IS_A intensity;
97 Gb IS_A intensity;
98
99 Fs IS_A factor;
100 Fg IS_A factor;
101 Rb IS_A factor;
102 r IS_A factor;
103 rg IS_A factor;
104
105
106 S = Gt * r;
107
108 Gt = Gb*Rb + Fs*Gd + Fg*rg*G;
109 G = Gb + Gd;
110 Gd = 0.177 * G;
111
112 Fs = (1 + cos(beta))/2;
113 Fg = (1 - cos(beta))/2;
114 Rb = cos(theta) / cos(theta_z);
115
116 METHODS
117 METHOD specify;
118 FIX G, rg, r;
119 END specify;
120 END absorbed_intensity;
121
122
123 MODEL absorbed_intensity_tracking_method_1;
124
125 sp IS_A sunpos_tracker1;
126 abs IS_A absorbed_intensity;
127
128 S IS_A intensity; (* Absorbed Intensity *)
129
130 S, abs.S ARE_THE_SAME;
131 abs.beta, sp.beta ARE_THE_SAME;
132 abs.gamma, sp.gamma ARE_THE_SAME;
133 abs.theta, sp.theta ARE_THE_SAME;
134 abs.theta_z, sp.theta_z ARE_THE_SAME;
135
136
137 METHODS
138 METHOD specify;
139 RUN abs.specify;
140 RUN sp.specify;
141 END specify;
142
143 METHOD bound_self;
144 RUN sp.bound_self;
145 END bound_self;
146
147 METHOD default_self;
148 RUN sp.default_self;
149 END default_self;
150
151 METHOD values;
152 abs.G := 950 {W/m^2};
153 abs.rg := 0.9;
154 abs.r := 0.8;
155
156 sp.L_st := -90{deg}; (* USA Central time*)
157 sp.L_loc := -89.4{deg};
158 sp.phi := +43{deg};
159 (* t := 32.4375 {d}; *)
160 sp.t := 32{d} + 10{h}+30{min};
161
162 (* surface orientation *)
163 sp.gamma := 15{deg};
164 END values;
165
166 METHOD on_load;
167 RUN specify;
168 RUN bound_self;
169 RUN default_self;
170 RUN values;
171 END on_load;
172
173 END absorbed_intensity_tracking_method_1;
174
175
176 MODEL absorbed_intensity_tracking_method_2;
177
178 sp IS_A sunpos_tracker2;
179 abs IS_A absorbed_intensity;
180
181 S IS_A intensity; (* Absorbed Intensity *)
182
183 S, abs.S ARE_THE_SAME;
184 abs.beta, sp.beta ARE_THE_SAME;
185 abs.gamma, sp.gamma ARE_THE_SAME;
186 abs.theta, sp.theta ARE_THE_SAME;
187 abs.theta_z, sp.theta_z ARE_THE_SAME;
188
189
190 METHODS
191 METHOD specify;
192 RUN abs.specify;
193 RUN sp.specify;
194 END specify;
195
196 METHOD bound_self;
197 RUN sp.bound_self;
198 END bound_self;
199
200 METHOD default_self;
201 RUN sp.default_self;
202 END default_self;
203
204 METHOD values;
205 abs.G := 950 {W/m^2};
206 abs.rg := 0.9;
207 abs.r := 0.8;
208
209 sp.L_st := -90{deg}; (* USA Central time*)
210 sp.L_loc := -89.4{deg};
211 sp.phi := +43{deg};
212 (* t := 32.4375 {d}; *)
213 sp.t := 32{d} + 10{h}+30{min};
214
215 (* surface orientation *)
216 sp.gamma := 15{deg};
217 END values;
218
219 METHOD on_load;
220 RUN specify;
221 RUN bound_self;
222 RUN default_self;
223 RUN values;
224 END on_load;
225
226 END absorbed_intensity_tracking_method_2;

Properties

Name Value
svn:executable *

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22