Ya tengo escritas todas las fórmulas y los resultados me dan lo que toca. La función es esta:
resultats <- function(bCODBOD, BOD, VSS, COD, sBOD, sCOD, TSS, TKNpa, T, NH3Ne, DO, Q, TKN, MLSS, NO3Ne, RAS, tanoxic1, tanoxic2, rbCOD, SDNR1, SDNR2, tdanoxic, tanaerobic, IRp, P) {
bCOD <- bCODBOD*BOD
nbCOD <- COD-bCOD
nbVSS <- VSS*(1-((bCODBOD)*(BOD-sBOD)/(COD-sCOD)))
iTSS <- TSS-VSS
SF <- TKNpa
knt <- kn*kn0^(T-20)
kdnt <- kdn*kdn0^(T-20)
unmt <- unm*unm0^(T-20)
un <- (unmt*NH3Ne)/(knt+NH3Ne)*(DO/(ko+DO))-kdnt
kst <- ks*ks0^(T-20)
kdt <- kd*kd0^(T-20)
umt <- um*um0^(T-20)
SRTtheo <- 1/un
SRT <- SRTtheo*SF
S <- kst*(1+kdt*SRT)/(SRT*(umt-kdt)-1)
Pxbh <- Q*Y*(bCOD-S)/(1+kdt*SRT)
Pxdead <- fd*kdt*Q*Y*(bCOD-S)*SRT/(1+kdt*SRT)
Nox1 <- 0.8*TKN
Pxbnit1 <- Q*Yn*Nox1/(1+kdnt*SRT)
Pxbio1 <- Pxbh+Pxdead+Pxbnit1
Nox2 <- TKN-NH3Ne-0.12*Pxbio1/Q
Pxbnit2 <- Q*Yn*Nox2/(1+kdnt*SRT)
Pxbio2 <- Pxbh+Pxdead+Pxbnit2
Nox3 <- TKN-NH3Ne-0.12*Pxbio2/Q
Pxbnit3<- Q*Yn*Nox3/(1+kdnt*SRT)
Pxbio3 <- Pxbh+Pxdead+Pxbnit3
Pxvss <- Pxbio3+Q*nbVSS
Pxtss <- Pxbio3/0.88+Q*nbVSS+Q*(TSS-VSS)
MassMLVSS <- Pxvss*SRT
MassMLSS <- Pxtss*SRT
Vaerobic <- MassMLSS/MLSS
taerobic <- Vaerobic/Q
thaerobic <- taerobic*24
VSSfraction <- MassMLVSS/MassMLSS
MLVSS <- MLSS*VSSfraction
observedyield <- Pxtss/(Q*(bCOD-S))*bCODBOD
Xb <- SRT*Q/Vaerobic*(Y*bCOD/(1+kdt*SRT))
IR <- Nox3/NO3Ne-1-RAS
Noxfeed <- (IR*Q+RAS*Q)*NO3Ne
Vanoxic1 <- tanoxic1*Q
Vanoxic2 <- tanoxic2*Q
FMb1 <- Q*BOD/(Vanoxic1*Xb)
FMb2 <- Q*BOD/(Vanoxic2*Xb)
rbCODbCOD <- rbCOD/bCOD
SDNRt1 <- SDNR1*1.026^(T-20)
SDNRt2 <- SDNR2*1.026^(T-20)
NOr1 <- Vanoxic1*SDNRt1*Xb
NOr2 <- Vanoxic2*SDNRt2*Xb
Excesscap1 <- NOr1/Noxfeed
Excesscap2 <- NOr2/Noxfeed
Vanoxic <- tdanoxic*Q
Vanaerobic <- tanaerobic*Q
NO3reac <- NO3Ne*IRp/(1+IRp)
rbCODremov <- NO3reac*rbCODrem
rbCODava <- rbCOD-rbCODremov
biorem <- rbCODava/rbCODreq
Pbiomassg <- (Pxbh+Pxbnit3)*Pbac/Q
Premov <- Pbiomassg+biorem
Peff <- P-Premov
res <- c(bCOD, nbCOD, nbVSS, iTSS, SF, knt, kdnt, unmt, un, kst, kdt, umt, SRTtheo, SRT, S, Pxbh, Pxdead, Nox1, Pxbnit1, Pxbio1, Nox2, Pxbnit2, Pxbio2, Nox3, Pxbnit3, Pxbio3 , Pxvss, Pxtss, MassMLVSS, MassMLSS, Vaerobic, taerobic, thaerobic, VSSfraction, MLVSS, observedyield, Xb, IR, Noxfeed, Vanoxic1, Vanoxic2, FMb1, FMb2, rbCODbCOD, SDNRt1, SDNRt2, NOr1, NOr2, Excesscap1, Excesscap2, Vanoxic, Vanaerobic, NO3reac, rbCODremov, rbCODava, biorem, Pbiomassg, Premov, Peff)
names(res) <- c("bCOD", "nbCOD", "nbVSS", "iTSS", "SF", "knt", "kdnt", "unmt", "un", "kst", "kdt", "umt", "SRTtheo", "SRT", "S", "Pxbh", "Pxdead", "Nox1"," Pxbnit1", "Pxbio1", "Nox2", "Pxbnit2", "Pxbio2", "Nox3", "Pxbnit3", "Pxbio3" , "Pxvss", "Pxtss", "MassMLVSS", "MassMLSS", "Vaerobic", "taerobic", "thaerobic", "VSSfraction", "MLVSS", "observedyield", "Xb", "IR", "Noxfeed", "Vanoxic1", "Vanoxic2", "FMb1", "FMb2", "rbCODbCOD", "SDNRt1", "SDNRt2", "NOr1", "NOr2", "Excesscap1", "Excesscap2", "Vanoxic", "Vanaerobic", "NO3reac", "rbCODremov", "rbCODava", "biorem", "Pbiomassg", "Premov", "Peff")
return(res) }
Donde por ejemplo, los valores de las variables podrían ser estas:
resultats(1.6, 140, 60, 300, 70, 132, 70, 1.5, 12, 0.5, 2, 22464, 35, 3000, 6, 0.6, 0.104, 0.0625, 80, 0.22, 0.31, 0.0625, 0.0625, 2, 6)
(las constantes (kn, kdn, unm...) las tengo guardadas en el programa)
Lo que quiero preguntaros es a ver si es posible coger el valor de las variables, por ejemplo, de una data.frame. Es decir, si yo tuviera algo así:
Variable |
Valor |
Q |
22464 |
T |
12 |
BOD |
140 |
... |
... |
Y para llamar la función indicarle dónde ir a buscar cada valor de la variable en la tabla. De esta manera, en el momento de cambiar el valor de las variables sería más fácil.
No sé si me he explicado bien...
Gracias!