-
Notifications
You must be signed in to change notification settings - Fork 2
/
experimental-set-up.Rmd
162 lines (106 loc) · 4.46 KB
/
experimental-set-up.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
title: "Experimental Set Up & Data"
author: "Tina Lasisi"
date: "`r format(Sys.time(), '%B %d, %Y')`"
output:
workflowr::wflow_html:
toc: yes
number_sections: yes
editor_options:
chunk_output_type: console
---
```{r setup, message=FALSE, warning=FALSE, include=FALSE, paged.print=FALSE}
library(tidyverse)
library(lubridate)
library(janitor)
F = rprojroot::is_rstudio_project$make_fix_file()
knitr::opts_chunk$set(echo = TRUE, include = TRUE, eval = TRUE, warning = FALSE, message = FALSE, fig.retina = 2, fig.width = 8, fig.height = 6, out.width = "100%")
```
## Introduction
In brief, the experiments were carried out in a climate controlled chamber at the University of Loughborough (UK) using a full-body thermal manikin with 20 independently controllable zones. Human hair wigs ranging from straight to tightly curled were used to test the effect of hair on heat gain/loss in a number of conditions.
The experimental variables were:
- head covering (no wig, straight wig, moderately curled wig, tightly curled wig)
- radiation (on vs. off)
- wind speed (0.3m/s, 1m/s, 2.5m/s)
- evaporation (manikin with dry scalp vs. manikin with wet scalp)
## Set-up
Dry heat resistance experiments were carried out from October to November 2018 in a climate controlled chamber with a custom-built wind tunnel (see below).
```{r}
knitr::include_graphics("assets/manikin-chamber-setup.jpeg", error = FALSE)
```
```{r}
knitr::include_graphics("assets/manikin-chamber-setup-diagram.png", error = FALSE)
```
## Data
The raw data from the manikin is structured as follows
```{r}
raw_manikin <- read_csv(F("data/raw_manikin_output/round_1/HighCurv_RadOff_wind0_3 (run with new conditions).csv"), skip = 16) %>%
clean_names()
head(raw_manikin)
```
The data can be cleaned using the following pipeline.
```{r}
raw_manikin <- read_csv(F("data/raw_manikin_output/round_1/HighCurv_RadOff_wind0_3 (run with new conditions).csv"), skip = 16) %>%
clean_names() %>%
select(c(x1, x2, contains("head"), ambient_71:ambient_74)) %>%
rename(time_elapsed = x1,
time_hms = x2,
surface_temp = head_4,
heatflux = head_38,
avg_amb= ambient_71,
amb_1 = ambient_72,
amb_2 = ambient_73,
rh = ambient_74) %>%
slice(-(1:2)) %>%
as_tibble() %>%
mutate(across(!time_hms, as.numeric)) %>%
mutate(time_hms = hms(time_hms)) %>%
mutate(time_elapsed = dseconds(time_elapsed)) %>%
select(time_elapsed, time_hms, everything())
head(raw_manikin)
```
Since we are only interested in the head, all other zones have been dropped. The variables are as follows:
- `time_elapsed` (in seconds) describes how long the experiment has been running
- `surface_temp` (deg C) describes surface temperature for head zone
- `heatflux` (W/m2) describes heat loss in watts per meter square.
- `avg_amb` (deg C) describes average ambient temperature based on two measurements
- `amb_1` (deg C) first ambient temperature sensor
- `amb_2` (deg C) second ambient temperature sensor
- `rh` (percentage) describes relative humidity in the chamber.
```{r}
raw_manikin_long <- raw_manikin %>%
pivot_longer(cols = surface_temp:rh, names_to = "var")
```
```{r}
raw_manikin_long %>%
ggplot(aes(x = time_elapsed,
y = value,
col = var)) +
geom_line() +
facet_grid(var ~ ., scales = "free")
```
A stable period is then chosen to average.
Some information required for the calculations includes the Area of skin surface on the manikin (Ask), which is `0.0978` in meters squared.
```{r}
start_time_mins = 15
end_time_mins = 40
area = 0.0978
start_time = start_time_mins*60
end_time = end_time_mins*60
raw_manikin %>%
filter(time_elapsed > start_time & time_elapsed < end_time) %>%
summarise(across(!c(time_elapsed, time_hms), ~ mean(.x, na.rm = TRUE))) %>%
mutate(heat_resistance = (surface_temp-avg_amb)/max(0.01, heatflux),
clo = (heat_resistance/0.155))
```
Other calculations
net solar influx (W/m2) is calculated as:
$$heatflux_{(radiation)}- heatflux_{(no \ radiation)}$$
temperature correction for 4C (no radiation) is calculated as:
$$28/heat\ resistance_{(no \ radiation)} $$
temperature correction for 4C (radiation) is calculated as:
$$temp\ corrected \ heat loss_{(4C)} - solar\ influx $$
temperature correction for 30C (no radiation) is calculated as:
$$5/heat\ resistance_{(no \ radiation)} $$
temperature correction for 30C (radiation) is calculated as:
$$temp\ corrected \ heat loss_{(30C)} - solar\ influx $$