1
2
3
4"use strict;";
5
7
10
20
23
25
30
44
63
76
85
91
97
100
108
122 }
123
125
127 [ 'accl', 'int', function(){ return body.accl; },
130 { def_val : 100, min : 0, max : 100, unit : '%', symbol : 'accl',
131 descr : 'Acclimatised subject 0 or 100'}
132 ],
133 [ 'drink', 'int', function(){ return body.drink; },
136 { def_val : 1, min : 0, max : 1, unit : '', symbol : 'drink',
137 descr : 'May drink freely, 0 or 1'}
138 ],
139 [ 'height', 'float', function(){ return body.height; },
141 { def_val : 1.8, min : 1.5, max : 2.4, dec_nof : 1, unit : 'm', symbol : 'height',
142 descr : 'Body height'}
143 ],
144 [ 'mass', 'float', function(){ return body.weight; },
146 { def_val : 75, min : 0, max : 120, dec_nof : 1, unit : 'kg', symbol : 'mass',
147 descr : 'Body mass'}
148 ],
149
150
151
152
153
154 [ 'sim_mod', 'int', function(){ return sim_mod; },
156 { def_val : 0, min : 0, max : 4, unit : '', symbol : 'sim_mod',
157 descr : 'Simulation model variant'}
158 ]
159 ];
160
163
165
169 { def_val : 2, min : 1, max : 3, unit : '', symbol : 'post',
170 descr : '1= sitting, 2= standing, 3= crouching'}
171 ],
172 [ 'Tair', 'float', function(){ return air.Tair; },
174 { def_val : 40, min : 15, max : 50, dec_nof : 1, unit : 'C', symbol : 'Tair',
175 descr : 'Air temperature'}
176 ],
177 [ 'Pw_air', 'float', function(){ return air.Pw_air; },
179 { def_val : 2.5, min : 0, max : 4.5, dec_nof : 1, unit : 'kPa', symbol : 'Pw_air',
180 descr : 'Partial water vapour pressure'}
181 ],
182 [ 'Trad', 'float', function(){ return air.Trad; },
184 { def_val : 40, min : 15, max : 110, dec_nof : 1, unit : 'C', symbol : 'Trad',
185 descr : 'Radiant temperature'}
186 ],
187 [ 'v_air', 'float', function(){ return air.v_air; },
189 { def_val : 0.3, min : 0, max : 3.0, dec_nof : 1, unit : 'm/s', symbol : 'v_air',
190 descr : 'Air velocity'}
191 ],
192 [ 'Met', 'int', function(){ return body.Met; },
194 { def_val : 150, min : 100, max : 400, unit : 'W/m2', symbol : 'Met',
195 descr : 'Metabolic energy production'}
196 ],
197 [ 'Icl', 'float', function(){ return cloth.Icl; },
199 { def_val : 0.5, min : 0.1 , max : 1.2 , dec_nof : 1, unit : 'clo', symbol : 'Icl',
200 descr : 'Cloth static thermal insulation'}
201 ],
202 [ 'im_st', 'float', function(){ return cloth.im_st; },
204 { def_val : 0.38, min : 0, max : 1.0, dec_nof : 2, unit : '', symbol : 'im_st',
205 descr : 'Static moisture permeability index'}
206 ],
207 [ 'fAref', 'float', function(){ return cloth.fAref; },
209 { def_val : 0.54, min : 0, max : 1.0, dec_nof : 2, unit : '', symbol : 'Ap',
210 descr : 'Fraction covered by reflective clothing'}
211 ],
212 [ 'Fr', 'float', function(){ return cloth.Fr; },
214 { def_val : 0.97, min : 0, max : 1.0, dec_nof : 2, unit : '', symbol : 'Fr',
215 descr : 'Emissivity reflective clothing'}
216 ],
219 { def_val : NaN, min : 0, max : 360, unit : 'degree', symbol : 'theta_ww',
220 descr : 'Angel betwen wind and walking direction', may_be_null : true}
221 ],
224 { def_val : NaN, min : 0, max : 1.2, dec_nof : 1, unit : 'm/s', symbol : 'v_walk',
225 descr : 'Walking speed', may_be_null : true}
226 ],
227 [ 'work', 'int', function(){ return body.work; },
229 { def_val : 0, min : 0, max : 200, unit : 'W/m2', symbol : 'body_work',
230 descr : 'Mechanical power'}
231 ]
232 ];
233
236
239
243 }
244
249 }
250
259 }
260 else {
263 }
267
272 }
273
285 }
288 }
289 else { alert( 'ERROR in calc_step_const ' + sim_mod ); }
301 }
302 else {
306 }
307 }
308 else {
312 }
323 }
324
327 }
328
339
340
351
355 }
356
363 }
364
375 }
376
382 }
383
400 }
405
413 }
414
421 }
422
430
445 }
446 else { return; }
447 }
448 alert( 'clothing_temp overun');
449 }
450
456 }
457
463
464 }
468
469 }
470 else{
475
476 }
477 else
478 {
481
482 }
483 else
484 {
486
487 }
491
492 }
493 }
494 }
499
500 }
501 else {
506
507 }
510
511 }
513 }
514
515
516
517
518
519
520 }
521
525
538 }
539 else{
540 return;
541 }
542 }
543 alert( 'core_temp_pred_std overun');
544 }
545
546
548 if ( Tcr < 36.8 ) { return 0.3; }
549 else if (Tcr > 39.0) { return 0.1; }
550 else { return 0.3 - 0.091 * (Tcr - 36.8); }
551 }
552
559
560
561
562
567 }
568 else {
570 }
571 }
574 }
575
582 }
583
589 }
590
599 }
602 }
603 }
604
606 return {
619 };
620 }
621
624 alert( 'Simulation parameter changed between steps' );
625 }
628 }
636
646 }
647 else {
649 }
652
654 }
655
657 return {
664 };
665 }
666
678 };
680 'core:Tcreq_rm_ss', 'core:Tcreq_mr', 'core:dStoreq',
681 'skin:Tsk', 'skin:Pw_sk', 'move:v_air_rel',
682 'cloth:CORcl', 'cloth:CORia', 'cloth:CORtot', 'cloth:Itot_dyn',
683 'cloth:Icl_dyn', 'cloth:CORe', 'cloth:Rtdyn',
684 'heatex:Hcdyn', 'cloth:fAcl_rad', 'cloth:Tcl', 'heatex:Hr',
685 'heatex:Conv', 'heatex:Rad', 'sweat:Ereq', 'sweat:Emax',
686 'skin:w_req', 'sweat:SWpre', 'skin:w_pre', 'sweat:Epre',
687 'core:sk_cr_rel', 'core:Tcr', 'core:Trec',
688 'sweat:SWtot', 'sweat:SWtotg'
689 ];
690
694 };
698
705 } );
706
708 }
709
710
711
712 return{
723 };
(ConstTeq) time constant, core temperature as a function of the metabolic rate
(ConstTsk) skin temperature; time constant; 3 minutes
(<lv>
)
(<lv>
)
(I_cl) <lv>
(<func>ABS
)
(<func>COS
)
(<func>EXP
)
(<func>^
)
(<func>SQR
)
(<lv>
)
Tcr547,
548,
549,
550,
554,
558,
563,
566,
566,
569,
572,
573
(<lv>
)
(<lv>
)
(<lv>
)
(<lv>
)
(<lv>
)
(<lv>
)
(<lv>
)
(<lv>
)
(()
)
({}
)
air.Tair27,
172,
173,
314,
316,
318,
366,
368,
417,
440,
452
(Ta) air temperature [C] 15-50
(Tr) mean radiant temperature [C] 15-110
(Va) air velocity [m/s] 0-3
(()
)
({}
)
(Adu) DuBois body surface area [m2]
(Met) metabolic rate [W\m2]
(accl) acclimatised subject []
(DRINK) ==1 can drink freely
(fAdu_rad) effective radiating area of the body []
(auxR) = 5.67E-08 * Ardu
(height) body height [m]
(posture) == 1 sitting, == 2 standing, == 3 crouching
(spHeat)
(weight) body weight [kg]
(Work) mechanical power [W\m2]
({}
)
({}
)
calc_dynamic_insulation384,
639
(()
)
(()
)
(()
)
(()
)
({}
)
(CORcl) correction Icl []
(CORe) correction dynamic permeability index []
(CORia) correction Ia_st []
(CORtot) correction dynamic clothing insulation []
(FclR) reduction factor radiation heat exchange clothing
(Ia_st) static boundary layer thermal insulation in quiet air [?]
(Icl) static clothing insulation [?]
(Icl_dyn) dynamic clothing insulation [?]
(Icl_st) static clothing insulation
(Itotdyn) total dynamic insulation [m2K/W]
(Itotst) total static insulation [m2K/W]
(Rtdyn) dynamic evaporative resistance [?]
cloth.Tcl59,
344,
431,
434,
438,
443,
444,
444,
452,
453,
614
(Tcl) mean temperature of the clothing [C]
(fAcl) clothing area factor []
(fAcl_rad) reflective clothing area factor []
(Ap) fraction covered by reflective clothing []
(im_dyn) dynamic moisture permeability index []
(im_st) static moisture permeability index []
(()
)
(()
)
({}
)
core.Tcr67,
337,
532,
534,
534,
536,
537,
581,
586,
612,
632
(Tcr) body core temperature [C]
(Tcr0) body core temperature SoI [C]
(<lv>Tcr1) body core temperature [C]
(Tcreq) core equilibrium temperature at this minute [C]
(core.Tcreq0) core equilibrium temperature previous minute [C]
(ConstTeq) time constant Tcreq [/minute]
(Tcreqm) equilibrium core temperature associated to the metabolic rate [C]
(Trec) rectal temperature this minute [C]
(Trec0) rectal temperature previous minute [C]
(dStoreq) heat storage, core temperature increase during this minute [?]
(TskTcrwg) skin - core weighting this minute []
(TskTcrwg) skin - core weighting previous minute []
(()
)
core_temp_pred_sk_cr_rel547,
558
(()
)
(<lv>
)
(<lv>
)
dynamic_convection_coefficient415,
640
(()
)
({}
)
(heatex.Conv
)
(heatex.Cresp
)
(heatex.Eresp
)
(heatex.Hcdyn
)
(heatex.Hr
)
(heatex.Rad
)
(heatex.Tresp
)
(heatex.Z
)
(<lv>
)
(<lv>
)
(()
)
(()
)
(<lv>
)
(<lv>
)
({}
)
(limit.rec_temp
)
(limit.sweat_max50
)
(limit.sweat_max95
)
(limit.water_loss_max50
)
(limit.water_loss_max95
)
(<lv>
)
({}
)
move.v_air_rel93,
299,
304,
305,
311,
319,
320,
321,
385,
386,
393,
393
(move.v_air_rel
)
(move.v_walk
)
(move.v_walk_in
)
(move.walk_dir
)
(move.walk_dir_in
)
(<lv>
)
(<lv>
)
par_step_mod164,
168,
173,
178,
183,
188,
193,
198,
203,
208,
213,
218,
223,
228,
322,
626
({}
)
(<lv>
)
(()
)
(<lv>
)
(()
)
(()
)
(()
)
sim_mod21,
98,
154,
155,
252,
252,
281,
281,
286,
286,
289,
644,
644,
693
sim_time22,
99,
350,
572,
588,
598,
601,
607,
629,
658,
692
(()
)
({}
)
(skin.ConstTsk
)
skin.Tsk106,
338,
380,
381,
381,
417,
441,
533,
580,
609,
635
(skin.Tsk
)
(skin.Tsk_0
)
(skin.w_max
)
(skin.w_pre
)
(skin.w_req
)
(()
)
step_core_temp_equi_mr357,
637
(()
)
(()
)
({}
)
(ConstSW) time constant sweat rate []
(Eeff_req) required evaporation efficiency []
(Emax) maximal evaporation rate [W/m2]
(Epre) predicted evaporation rate [W/m2]
(Ereq) required evaporation rate [W/m2]
(SW) sweat rate [g]
(SWg) sweat rate [W/m2]
sweat.SWmax112,
282,
283,
283,
284,
284,
287,
290,
290,
348,
467,
474,
489,
490,
618
(SWmax) maximum sweat rate as result of the metabolic rate [W/m2]
(SWpre) predicted sweat rate [W/m2]
(SWreq) required sweat rate [W/m2]
(SWtot) total water loss rate during the minutes [W/m2]
(SWtotg) total water loss [g]
(fSWmax_accl) correction factor to SWmax depending on accl []
(<lv>
)
(()
)
val128,
128,
134,
134,
140,
140,
145,
145,
155,
155,
168,
168,
173,
173,
178,
178,
183,
183,
188,
188,
193,
193,
198,
198,
203,
203,
208,
208,
213,
213,
218,
218,
223,
223,
228,
228,
697,
702,
703,
703,
704
(<lv>
)
(<lv>
)
(<lv>
)
(()
)
(()
)