#' @title IREQ and Dlim
#' @description Calculate minimal and neutral values of REQUIRED CLOTHING INSULATION (IREQ) and DURATION LIMITED EXPOSURE (Dlim).
#' @aliases calcireq
#' @aliases IREQ
#' @aliases ireq
#' @usage calcIREQ(M,W,ta,tr,p,w,v,rh,clo)
#' @param M a numeric value presenting metabolic energy production (58 to 400 W/m2) in [W/m2]
#' @param W a numeric value presenting Rate of mechanical work, (normally 0) in [W/m2]
#' @param ta a numeric value presenting ambiant air temperature in [degree C]
#' @param tr a numeric value presenting mean radiant temperature in [degree C]
#' @param p a numeric value presenting air permeability (low < 5, medium 50, high > 100 l/m2s) in [l/m2s]
#' @param w a numeric value presenting walking speed (or calculated work created air movements) in [m/s]
#' @param v a numeric value presenting relative air velocity(0.4 to 18 m/s) in [m/s]
#' @param rh a numeric value presenting relative humidity [\%]
#' @param clo a numeric value presenting clothing insulation level in [clo]
#' @details The function gives IREQ Insulation of clothing required to maintain thermal equilibrium of the body at specified levels of physiological stress.
#' @returns \code{calcIREQ} returns
#' \item{IREQminimal }{Lower bound of insulation required in [clo]}
#' \item{IREQneutral }{Upper bound of insulation required in [clo]}
#' \item{ICLminimal }{Lower bound of REQUIRED basic clothing insulation (ISO 9920) in [clo]}
#' \item{ICLneutral }{Upper bound of REQUIRED basic clothing insulation (ISO 9920) in [clo]}
#' \item{DLEminimal }{Lower bound of duration limited exposure in [hours]}
#' \item{DLEneutral }{upper bound of duration limited exposure in [hours]}
#' @examples calcIREQ(116,0,-15,-15,8,0.3,0.4,85,2.5)
#' @references ISO 11079, 2007-12-15, ERGONOMICS OF THE THERMAL ENVIRONMENT - DETERMINATION AND INTERPRETATION OF COLD STRESS WHEN USING REQUIRED CLOTHING INSULATION (IREQ) AND LOCAL COOLING EFFECTS
#' @note The authors disclaim all obligations and liabilities for damages arising from the use or attempted use of the information, including, but not limited to, direct, indirect, special and consequential damages, and attorneys' and experts' fees and court costs. Any use of the information will be at the risk of the user.
#' @author Developed by Ingvar Holmer and Hakan O. Nilsson, 1990 in java and transferred to R by Shoaib Sarwar. Further contribution by Marcel Schweiker.
#' @export
calcIREQ <- function(M,W,ta,tr,p,w,v,rh,clo){
S<-1
if (M <= 58){
M <- 58
}
if (M >= 400){
M<-400
}
if (ta >= 10){
ta<-10
}
# Calculation of stationary w (m/s)
if (w <= 0.0052*(M-58)) {
w<-0.0052*(M-58)
}
if (w >= 1.2) {
w<-1.2
}
if (v <= 0.4) {
v<-0.4
}
if (v >= 18) {
v<-18
}
clo <- clo * 0.155
Ia <-0.092*exp(-0.15 * v - 0.22 * w) - 0.0045
calculation<-0
while(calculation<2){
calculation<-calculation+1
#Calculation of Tsk (C) and wetness (%)
if (calculation==1) {
#For IREQminimal, DLEminimal !
Tsk<-33.34-0.0354*M
wetness<-0.06
}
else {
#For IREQneutral, DLEneutral !
Tsk<-35.7-0.0285*M
wetness<-0.001*M
}
#Calculation of Tex (C) and Pex,Psks,Pa (Pa)
Tex<-29+0.2*ta
Pex<-0.1333*exp(18.6686-4030.183/(Tex+235))
Psks<-0.1333*exp(18.6686-4030.183/(Tsk+235))
Pa<-(rh/100)*0.1333*exp(18.6686-4030.183/(ta+235))
#Calculation of IREQ (m2C/W),Rt (m2kPa/W),fcl (n.d.),hr W/m2C with stepwise iteration
IREQ<-0.5
hr<-3
ArAdu<-0.77
factor<-0.5 #Initial values !
Balance<-1
#W<-1
while (abs(Balance) > 0.01) {
fcl<-1+1.197*IREQ
Rt<-(0.06/0.38)*(Ia+IREQ)
E<-wetness*(Psks-Pa)/Rt
Hres<-1.73e-02*M*(Pex-Pa)+1.4e-03*M*(Tex-ta)
Tcl<-Tsk-IREQ*(M-W-E-Hres)
hr<-5.67e-08*0.95*ArAdu*(exp(4*log(273+Tcl))-
exp(4*log(273+tr)))/(Tcl-tr)
hc<-1/Ia-hr
R<-fcl*hr*(Tcl-tr)
C<-fcl*hc*(Tcl-ta)
Balance<-M-W-E-Hres-R-C
if (Balance>0) {
IREQ<-IREQ-factor
factor<-factor/2
}
else {
IREQ<-IREQ+factor
}
}
IREQ=(Tsk-Tcl)/(R+C)
# *** Calculation of Dlimneutral and Dlimminimal ***
# Calculation of S (W/m2), Rt (m2kPa/W), fcl (n.d.), hr W/m2C with stepwise iteration
Tcl<-ta
hr<-3
S<--40
ArAdu<-0.77
factor<-500
Iclr<-clo # Initial values !
Balance<-1
#W<-1
#DLE<-1
while (abs(Balance) > 0.01) {
fcl<-1+1.197*Iclr
Iclr<-((clo+0.085/fcl)*(0.54*exp(-0.15*v-0.22*w)*(p^0.075)-0.06*log(p)+0.5)-
(0.092*exp(-0.15*v-0.22*w)-0.0045)/fcl)
Rt<-(0.06/0.38)*(Ia+Iclr)
E<-wetness*(Psks-Pa)/Rt
Hres<-1.73e-02*M*(Pex-Pa)+1.4e-03*M*(Tex-ta)
Tcl<-Tsk-Iclr*(M-W-E-Hres-S)
hr<-5.67e-08*0.95*ArAdu*(exp(4*log(273+Tcl))-
exp(4*log(273+tr)))/(Tcl-tr)
hc<-1/Ia-hr
R<-fcl*hr*(Tcl-tr)
C<-fcl*hc*(Tcl-ta)
Balance<-M-W-E-Hres-R-C-S
if (Balance>0) {
S<-S+factor
factor<-factor/2
}
else {
S<-S-factor
}
}
DLE <- -40/S
if (calculation==1) {
IREQminimal<-round((IREQ/0.155)*10)/10
ICLminimal<-round((((IREQ+Ia/fcl)/(0.54*exp(-0.15*v-0.22*w)*
(p^0.075)-0.06*log(p)+0.5))-0.085/fcl)/0.155*10)/10
#cat("\nIREQminimal value: ", IREQminimal)
#cat("\nICLminimal value: ", ICLminimal)
if (S>-8){
DLEminimal<-"more than 8"
#cat("\nDLEminimal value is: ", DLEminimal)
}
else{
DLEminimal<-round(DLE*10)/10
#cat("\nDLEminimal value: ", DLEminimal)
}
}
else{
IREQneutral<-round((IREQ/0.155)*10)/10
ICLneutral<-round((((IREQ+Ia/fcl)/(0.54*exp(-0.15*v-0.22*w)*
(p^0.075)-0.06*log(p)+0.5))-0.085/fcl)/0.155*10)/10
#cat("\nIREQneutral value: ", IREQneutral)
#cat("\nICLneutral value: ", ICLneutral)
if (S>-8){
DLEneutral<-"more than 8"
#cat("\nDLEneutral value is: ", DLEneutral)
}
else{
DLEneutral<-round(DLE*10)/10
#cat("\nDLEneutral value: ", DLEneutral)
}
if (clo/0.155>ICLneutral){
message<-"AVAILABLE > REQUIRED MINIMAL & NEUTRAL basic clothing insulation"
print(message)
}
}
}
data.frame(IREQminimal,IREQneutral, ICLminimal,ICLneutral,DLEminimal,DLEneutral)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.