Caros, boa tarde,

Eu estou tentando montar um programa de troca de calor com um reservatório. Dentro de uma janela de tempo de 63 minutos, se uma dada combinação é maior ou igual a 3, então o reservatório é aberto e recebe uma quantidade de calor. Ele é fechado se essa combinação atinge 0.5, ou se ela atinge um valor que é igual a de abertura mais 2, ou se atinge o limite de tempo, 63 minutos.

Como é possível ver abaixo, a operação fecha duas vezes, abre e fecha no mesmo instante( então ele não esta mudando o j para que feche com o valor de abertura +2) e ainda está usando o tempo limite sem precisar.

O resultado era para ser uma abertura no instante 17, um encerramento no 44, uma abertura no instante 45 e um encerramento por tempo no instante 63 já que ele não atinge 6.0176641+2 ou 0.5).

Eu sei que que o erro está nas posições dos laços mas já mexi de várias formas e nada. Alguém saberia me dizer onde estou errando?

Muito obrigada,

Michelle 

 vF18
 [1] -0.3121193 -0.3121193 -0.3121193 -0.3121193 -2.0091919 -0.3121193 -0.3121193 -0.3121193
 [9] -0.3121193 -0.3121193 -0.3121193 -0.3121193 -0.3121193 -0.3121193 -2.0091919  1.0156736
[17]  3.6570085  1.0599739  1.0599739  1.0599739  3.7013087  3.7013087  4.1291396  1.5321050
[25]  2.4320670  1.5321050  1.5321050  2.9041981  2.4763673  3.8041601  3.3763293  3.3763293
[33]  3.8484604  5.5455330  2.9484984  3.8484604  3.8484604  3.8484604  4.3205915  2.6235189
[41]  3.8927606  1.2957260  3.4206295  8.6146987  6.0176641  6.4454950  6.4454950  9.0425296
[49]  6.4454950  6.4454950  4.3205915  4.3205915  4.3205915  3.4649298  3.8927606  3.8927606
[57]  3.8927606  3.8927606  3.8927606  3.8927606  3.8927606  3.8927606  3.8927606
> matrizzF18<-matrix(NA,n,2)
> colnames(matrizzF18)<-c("Abre F18","Fecha F18")
> j <- 1
> while (j <= n) { 
+ k<-1
+   
+   if(abs(vF18[j])>=3 && j<63){
+     abre_F18<-5*s.F18[j]-round(c18_17)*5*s.F17[j]-round(c18_19)*5*s.F19[j]
+     matrizzF18[j,1]<-abre_F18
+     while (abs(vF18[j + k])>0.5 && j+k<63) { 
+       
+       if(abs(vF18[j + k])>abs(vF18[j])+2){ 
+         fecha_F18<--5*s.F18[j+k]+round(c18_17)*5*s.F17[j+k]+round(c18_19)*5*s.F19[j+k]
+         matrizzF18[j + k,2]<-fecha_F18
+       
+       k<-k+1
+       break
+       }
+       else k <- k + 1 }
+    
+     fecha_F18<--5*s.F18[j+k]+round(c18_17)*5*s.F17[j+k]+round(c18_19)*5*s.F19[j+k]
+     matrizzF18[j + k,2]<-fecha_F18
+   }
+   
+   j=j+k
+ }
> print(matrizzF18)
      Abre F18 Fecha F18
 [1,]       NA        NA
 [2,]       NA        NA
 [3,]       NA        NA
 [4,]       NA        NA
 [5,]       NA        NA
 [6,]       NA        NA
 [7,]       NA        NA
 [8,]       NA        NA
 [9,]       NA        NA
[10,]       NA        NA
[11,]       NA        NA
[12,]       NA        NA
[13,]       NA        NA
[14,]       NA        NA
[15,]       NA        NA
[16,]       NA        NA
[17,]      0.4        NA
[18,]       NA        NA
[19,]       NA        NA
[20,]       NA        NA
[21,]       NA        NA
[22,]       NA        NA
[23,]       NA        NA
[24,]       NA        NA
[25,]       NA        NA
[26,]       NA        NA
[27,]       NA        NA
[28,]       NA        NA
[29,]       NA        NA
[30,]       NA        NA
[31,]       NA        NA
[32,]       NA        NA
[33,]       NA        NA
[34,]       NA        NA
[35,]       NA        NA
[36,]       NA        NA
[37,]       NA        NA
[38,]       NA        NA
[39,]       NA        NA
[40,]       NA        NA
[41,]       NA        NA
[42,]       NA        NA
[43,]       NA        NA
[44,]       NA     -0.45
[45,]      0.4     -0.40
[46,]       NA        NA
[47,]       NA        NA
[48,]       NA     -0.45
[49,]      0.4     -0.40
[50,]       NA        NA
[51,]       NA        NA
[52,]       NA        NA
[53,]       NA        NA
[54,]       NA        NA
[55,]       NA        NA
[56,]       NA        NA
[57,]       NA        NA
[58,]       NA        NA
[59,]       NA        NA
[60,]       NA        NA
[61,]       NA        NA
[62,]       NA        NA
[63,]       NA     -0.35