Advertisement
Guest User

Untitled

a guest
Aug 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.51 KB | None | 0 0
  1. /////////////////////////////////Variavies obtidas nos sensores:////////////////////////
  2.  
  3. //Ta = temperatura ambiente (°C) - Sensor DHT 22
  4. //UR = umidade relativa do ar (%) - Sensor DHT 22
  5. //Patm = pressão atmosferica (Pa) - Sensor BMP 280
  6. //Te = temperatura de entrado na placa 1 (°C) - SENSOR DSB1820
  7. //Ts1 = temperatura de saída da placa 1 e entrada na placa 2 (°C) - SENSOR DSB1820
  8. //Ts2 = temperatura de saída da placa 2 (°C) - SENSOR DSB1820
  9. //Tw1 = temperatura superficie aquecedor 1 (°C) - SENSOR DSB1820
  10. //Tw2 = temperatura superficie aquecedor 2 (°C) - SENSOR DSB1820
  11. //Vel = velocidade do vento (m/s) - Anemometro Caseiro
  12. //Ti1 = temperatura inferior aquecedor (°C) - SENSOR DSB1820
  13. //Ti2 = temperatura inferior aquecedor 2 (°C) - SENSOR DSB1820
  14. //vazao = vazão de agúa no aquecedor (l/s) - Sensor Hall Medidor Fluxo Água 3/4 2-45l - Freq = 8.1 Q-3
  15. //Rad = Radiação Solar (W/m²) - LDR 5mm -
  16.  
  17. ////////////////////////Capacidades físicas da Ar:////////////////////////////////////
  18.  
  19. Kar = 0.03; //Condutiblidade Termica do ar (W/m°C)
  20. Prar = 0.707; //N° de Prandl do ar (-)
  21. Uar = 17.4 * pow(10,-6); //Viscosidade Dinamica do ar (Pa.s)
  22. Cpar = 1004.831565; //Capacidade Calorifica do ar (J/kg°C)
  23.  
  24. ///Caracteristicas Físicas do Aquecedor Solar
  25.  
  26. De = 1.71; //Diametro externo aquecedor (m)
  27. Di = 0.46; //Diametro interno aquecedor (m)
  28. Pi = 3.14159265359; //Número pi
  29. Per = (De * Pi); //Perimetro aquecedor (m)
  30. Aes = ((De * De - Di *Di) * Pi * 0.25); //Área de exposição solar (m²)
  31. Lc = Aes / Per; //Comprimento caracteristico (m)
  32. di0 = 0.0195; //Diametro interno do tubo (m)
  33. de0 = 0.0225; //Diametro externo do tubo (m)
  34. L = 100; //Comprimento Tubo (m)
  35. At = de0*Pi*L //Aréa total de Troca de calor (m²)
  36. /////////////////////Massa Especifica do Ar Úmido (kg/m³)////////////////////////////////////
  37.  
  38. Psat = (6.1078 * pow(10,((7.5 * (Ta)) / (Ta + 237.3))); //Pressão de saturação do ar
  39. Pv = Psat * UR; //Pressão de vapor do ar
  40. Pd = Patm - Pv; //Pressão dinamica
  41. par = (Pd / (287.058 * (Ta + 273.15))) + (Pv / (461.495 * (273.15 + Ta))); //Massa Especifica do Ar
  42.  
  43. ///////////////Calculo do Coeficiente Convectivo placa 1 e 2:////////////////////////////////
  44.  
  45. //N° de Reynolds para Escoamento do Vento na Superficie do Aquecedor:
  46.  
  47. Re = (vel * par * Lc) / Uar; //N° de Reynolds
  48. Gr1 = (9.81 * (1 / (Ta + 273.15) * (Tw1 - Ta) * pow(Lc,2)) / (Uar / par)); //N° de Grashft placa 1
  49. Gr2 = (9.81 * (1 / (Ta + 273.15) * (Tw2 - Ta) * pow(Lc,2)) / (Uar / par)); //N° de Grashft placa 2
  50. Ri1 = Gr1 / pow(Re,2); //N° de Richardson placa 1
  51. Ri2 = Gr2 / pow(Re,2); //N° de Richardson placa 2
  52. Ra1 = Gr1 * Prar; //N° de Rayleigh placa 1
  53. Ra2 = Gr2 * Prar; //N° de Rayleigh placa 2
  54. Nuf1 = 1.72 * pow(Re,0.5) * pow(Prar,(1/3)); //Nussfelt forçado placa 1
  55. Nuf2 = 1.72 * pow(Re,0.5) * pow(Prar,(1/3)); //Nussfelt forçado placa 2
  56.  
  57. ///////Condicional para escolha do tipo de escoamento exterior:///////////////////////
  58.  
  59. ////Nussfelt natural para placa 1 :
  60.  
  61. if (Ra1 >=104,Ra1 <= 109)
  62. {
  63. Nun1 = 0.59 * pow(Ra1,(1/4));
  64. }
  65. else if (Ra1 > 109,Ra1 <= 1012)
  66. {
  67. Nun1 = 0.13 * pow(Ra1,(1/3));
  68. }
  69. else
  70. {
  71. Nun1 = 0;
  72. }
  73. end if
  74.  
  75. ////Nussfelt natural para placa 2 :
  76.  
  77. if (Ra2 >= 104,Ra2 <= 109)
  78. {
  79. Nun2 = 0.59 * pow(Ra2,(1/4));
  80. }
  81. else if (Ra2 > 109,Ra2 <= 1012)
  82. {
  83. Nun2 = 0.13 * pow(Ra2,(1/3));
  84. }
  85. else
  86. {
  87. Nun2 = 0;
  88. }
  89. end if
  90.  
  91. ////Nussfelt forçada para placa 1
  92.  
  93. if (Ri1 <= 0.1)
  94. {
  95. Nu1 = Nuf1;
  96. }
  97. else if (Ri1 > 0.1,Ri1 <= 10)
  98. {
  99. Nu1 = Nun1 + Nuf1;
  100. }
  101. else
  102. {
  103. Nu1 = Nun1;
  104. }
  105. end if
  106.  
  107. ////Nussfelt forçada para placa 2
  108.  
  109. if (Ri2 <= 0.1)
  110. {
  111. Nu2 = Nuf2;
  112. }
  113. else if (Ri2 > 0.1,Ri2 <= 10)
  114. {
  115. Nu2 = Nun2 + Nuf2;
  116. }
  117. else
  118. {
  119. Nu2 = Nun2;
  120. }
  121. end if
  122.  
  123. ////Coeficiente Convectivo com o ar://////////////////////////////////////////////
  124.  
  125. hconv1 = Nu1 * Kar / Lc; //Coeficiente convectivo externo placa 1 (W/m²°C)
  126. hconv2 = Nu2 * Kar / Lc; //Coeficiente convectivo externo placa 2 (W/m²°C)
  127.  
  128. ////Quantidade de calor perdida por convecção com o ar:///////////////////////////
  129.  
  130. Qconv1 = hconv1 * Aes * (Tw1 - Ta); //Calor perdido na placa 1 p/ ar (W)
  131. Qconv2 = hconv1 * Aes * (Tw2 - Ta); //Calor perdido na placa 2 p/ ar (W)
  132.  
  133. /////Fluxo de Calor por Radiação solar://////////////////////////////////////////
  134.  
  135. Qsolar = Rad * Aes * 0.9; //Calor que entra no sistema (W)
  136.  
  137. /////////////Perda de calor por irradiação://///////////////////////////////////
  138. TaK = Ta + 273.15;
  139. Tw1K = Tw1 + 273.15;
  140. Tw21K = Tw2 + 273.15;
  141. Qrad1 = 5.6697 * 10 ^ (-8) * Aes * 0.95 * ((pow(Tw1K,4)) - (pow((0.0552 * pow(TaK,1.5)),4)); //(W)
  142. Qrad2 = 5.6697 * 10 ^ (-8) * Aes * 0.95 * ((pow(Tw2K,4)) - (pow((0.0552 * pow(TaK,1.5)),4)); //(W)
  143.  
  144. //////////////////////////Velocidade agua no interior do tubo://///////////////////////////////////////
  145.  
  146. Vagua = (4 * (vazao * 0.001) / (pow(0.0195,2) * Pi));//Velocidade de escoamento água nos tubos //(m/s)
  147.  
  148. //////////////////Temeperaturas acessorias para os calculos:///////////////////////
  149.  
  150. Twi1 = Tw1 - (((Qsolar * 0.35 * Log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17))); //Temperatura interna da parede tubo 1
  151. Twi2 = Tw2 - (((Qsolar * 0.35 * Log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17))); //Temperatura interna da parede tubo 2
  152. Tm1 = (Te1 + Ts1) * 0.5; //Temperatura média da água placa 1
  153. Tm2 = (Ts1 + Ts2) * 0.5; //Temperatura média da água placa 2
  154.  
  155. ////Curvas para cálculo dos elementos das caracteristicas físico-quimicas da água:////////////////////////////
  156.  
  157. //Massa Especifica da água (kg/m³) :
  158.  
  159. Rou1 = ((0.0035) * Tm1*Tm1) - 0.0722 * Tm1 + 1000.7;
  160. Rou2 = ((0.0035) * Tm2*Tm2) - 0.0722 * Tm2 + 1000.7;
  161.  
  162. //Viscosidade dianamica da água ud1 (Pa.s):
  163.  
  164. ud1 = ((-2 * pow(10,- 9)) * pow(Tm1,3)) + ((6 * pow(10,- 7)) * pow(Tm1,2)) - (5 * pow(10,- 5) * Tm1) + 0.0017;
  165. ud2 = ((-2 * pow(10,- 9)) * pow(Tm2,3)) + ((6 * pow(10,- 7)) * pow(Tm2,2)) - (5 * pow(10,- 5) * Tm2) + 0.0017;
  166.  
  167. //Condutibilidade termica da água(W/m°C) :
  168.  
  169. Ka1 = (1 * pow(10,(-8)) * pow((Tm1,3))) - 9 * pow(10,(-6)) * pow((Tm1,2)) + 0.002 * (Tm1) + 0.5604;
  170. Ka2 = (1 * pow(10,(-8)) * pow((Tm2,3))) - 9 * pow(10,(-6)) * pow((Tm2,2)) + 0.002 * (Tm2) + 0.5604;
  171.  
  172. //Capacidade termica da água(J/kg°C):
  173. Cp1 = ((-9 * pow(10,-5)) * pow(Tm1,3)) + (0.0291 * pow(Tm1,2)) - (1.9549 * Tm1 + 4210.2);
  174. Cp2 = ((-9 * pow(10,-5)) * pow(Tm2,3)) + (0.0291 * pow(Tm2,2)) - (1.9549 * Tm2 + 4210.2);
  175.  
  176. //Numero de Prandl da água:
  177.  
  178. Prh1 = Cp1 * ud1 / Ka1;
  179. Prh2 = Cp2 * ud2 / Ka2;
  180.  
  181. //Viscosidade dianamica da água a temperatura da parede do tubo:
  182.  
  183. ut1 = ((-2 * pow(10,- 9)) * pow(Twi1,3) + ((6 * pow(10,-7)) * pow(Twi1,2)) - (5 * pow(10,- 5 * Twi1)) + 0.0017;
  184. ut2 = ((-2 * pow(10,- 9)) * pow(Twi2,3) + ((6 * pow(10,-7)) * pow(Twi2,2)) - (5 * pow(10,- 5 * Twi2)) + 0.0017;
  185.  
  186. //Número de Reynolds no interior do tubo:
  187.  
  188. rey1 = (Vagua * 0.0195 * Rou1) / (ud1); //Tubo 1
  189. rey2 = (Vagua * 0.0195 * Rou2) / (ud2); //Tubo 2
  190.  
  191. //Definição do coeficiente de atrito por Colebrook placa 1 - equação implicita
  192.  
  193. ra = 0.001; //Rugosidade aparente
  194. Ed = ra / di0; //Rugosidade Relativa
  195.  
  196.  
  197. F01 = 0.3164 * pow(rey1,-0.25);
  198. float erro1 = 1;
  199. while (erro1>= 0.0001)
  200. {
  201. func1 = 1 / pow(F01,0.5) + 2 * Log(Ed / 3.72 + 2.51 / (rey1 * pow(F01,0.5))) / Log(10);
  202.  
  203. dfunc1 = -2.51 / (Log(10) * pow(F01,(3 / 2)) * rey1 * (Ed / 3.72 + 2.51 / (rey1 * pow(F01,0.5)))) - 1 / (2 * pow(F01,(3 / 2));
  204.  
  205. f1 = F01 - func1 / dfunc1;
  206.  
  207. erro1 = Abs(F01 - f1);
  208.  
  209. F01 = f1;
  210.  
  211. }
  212. end while
  213.  
  214. // Definição do coeficiente de atrito por Colebrook placa 2 - equação implicita
  215.  
  216. F02 =0.3164 * pow(rey2,-0.25);
  217. float erro1 = 1;
  218. while (erro1>= 0.0001)
  219. {
  220. func2 = 1 / pow(F02,0.5) + 2 * Log(Ed / 3.72 + 2.51 / (rey1 * pow(F02,0.5))) / Log(10);
  221.  
  222. dfunc2 = -2.51 / (Log(10) * pow(F02,(3 / 2)) * rey2 * (Ed / 3.72 + 2.51 / (rey2 * pow(F02,0.5)))) - 1 / (2 * pow(F02,(3 / 2));
  223.  
  224. f2 = F02 - func2 / dfunc2;
  225.  
  226. erro2 = Abs(F02 - f2);
  227.  
  228. F02 = f2;
  229. }
  230. end while
  231.  
  232. ///////////////////////////Calculo do Nussfelt no interior do tubo 1:///////////////////////////////////
  233.  
  234. a1 = (f1 / 8);
  235. b1 = (rey1 - 1000) * Prh1;
  236. c1 = 12.7 * ((pow((f1 / 8),0.5)) * ((pow(Prh1,(2 / 3))) - 1));
  237. d1 = (ud1 / ut1);
  238. a2 = (f2 / 8);
  239. b2 = (rey2 - 1000) * Prh2;
  240. c2 = 12.7 * ((pow((f2 / 8),0.5)) * ((pow(Prh2,(2 / 3))) - 1));
  241. d2 = (ud2 / ut2);
  242.  
  243. if (rey1 <= 2200)
  244. {
  245. Nus1 = 3.657;
  246. }
  247. else (rey1 > 2200)
  248. {
  249. Nus1 = ((a1 * b1) / (c1)) * d1;
  250. }
  251. end if
  252.  
  253. if (rey2 <= 2200)
  254. {
  255. Nus2 = 3.657;
  256. }
  257. else if (rey2 > 2200)
  258. {
  259. Nus2 = ((a2 * b2) / (c2)) * d2;
  260. }
  261. end if
  262.  
  263. //Nusfelt corrigido para serpentina:
  264.  
  265. Nus1c = 1# + 3.4 * (2 * 0.0195 / 1.71) * Nus1;
  266. Nus2c = 1# + 3.4 * (2 * 0.0195 / 1.71) * Nus2;
  267.  
  268. //Coeficiente de troca de calor no interior dos tubos:
  269.  
  270. h1 = Nusc1 * Ka1 / 0.0195;
  271. h2 = Nusc2 * Ka2 / 0.0195;
  272.  
  273. //Fluxo de calor no interior dos tubos:
  274.  
  275. Q1 = h1 * Aes * (Twi1 - Tm1);
  276. Q2 = h2 * Aes * (Twi2 - Tm2);
  277.  
  278. //Fluxo de calor por condução:
  279.  
  280. lt = 0.006; //expessura telha
  281. kT = 0.35; //coef de cond. telha
  282.  
  283. Q1cond = kT * Aes * (Ti1 - ta) / lt;
  284. Q2cond = kT * Aes * (Ti2 - ta) / lt;
  285.  
  286. ///Coeficiente de troca de calor por condução:
  287.  
  288. hcond = kT / lt;
  289.  
  290. ///Calculo do calor util pela vazao massica:
  291.  
  292. Vmass1 = vazao * Rou1; //vazao massica 1
  293. Vmass2 = vazao * Rou2; //vazao massica 2
  294.  
  295.  
  296. ///Calculo do Coeficiente Global metodo 1:
  297.  
  298. U1 = 1 / ((1 / hconv1) + (hcond) + ((Math.Log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17)) + (1 / h1));
  299. U2 = 1 / ((1 / hconv2) + (hcond) + ((Math.Log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17)) + (1 / h2));
  300.  
  301.  
  302. // Calculo do Rendimento total:////////////////
  303.  
  304. //// Calculo da Temperatura de saída alternando vazão://///////////////////////////////////////
  305. float Vv = 0.5;
  306. while(Vv ==45); // varia a vazão de 0.5l/s a 45l/s
  307. {
  308. //Iteração para temperatura, Tscalc = Temperatura de saída calculada, varia até que a última Tscalc calculada diminuida da anterior tenha uma diferença <=0.01.
  309.  
  310. float Tscalc1 = Ts1; //define a temperatura de saida calculada inicial como a ultima medida pelo sensor
  311. int N1 = 0; //define o indice da Tscal
  312. diferenca1 = abs(Tscalc1(N1) - Tscalc1(N1-1)) //calcula a diferença da temperatura calculada atual e a anterior
  313. for (diferenca1 <= 0.01; N1++) //estipula a diferença minima para o calculo parar
  314. {
  315. Tmcalc1 = (Tscalc1 + Te1)/2; //calcula a temperatura media para o calculo da temperatura de saída
  316. Cpc1 =((-9 * pow(10,-5)) * pow(Tmcalc1,3)) + (0.0291 * pow(Tmcalc1,2)) - (1.9549 * Tmcalc1 + 4210.2); //calcula a capacidade especifica para o calculo da temp de saida
  317. Rouc1 = ((0.0035) * pow(Tmcalc1,2) - 0.0722 * Tmcalc1 + 1000.7; //calcula a massa especifica calculo da temp de saida
  318. Vmassc1 = (Vv * Rouc1) //calcula a vazao massica p calculo da temp de saida
  319. TScalc1(N1) = (((Vmassc1 * Cpc1 * Te1) - (0.5 * U * At * ta) + U * At * Ta)) / (Vmassc1 * Cpc1 - U * At * 0.5) //calcula a temp de saida
  320. }
  321. Tsc1 = Tscalc1; //grava a temp de saida calculada
  322.  
  323. //Iteração para temperatura na placa 2:
  324.  
  325. float Tscalc2 = Ts2;
  326. int N2 = 0;
  327. diferenca2 = abs(Tscalc1(N2) - Tscalc1(N2-1));
  328. for (diferenca2 <= 0.01; N2++)
  329. {
  330. Tmcalc2 = (Tscalc2 + Tsc1)/2; //calcula a temperatura media para o calculo da temperatura de saída
  331. Cpc2 =((-9 * pow(10,-5)) * pow(Tmcalc2,3)) + (0.0291 * pow(Tmcalc2,2)) - (1.9549 * Tmcalc2 + 4210.2); //calcula a capacidade especifica para o calculo da temp de saida
  332. Rouc2 = ((0.0035) * pow(Tmcalc2,2) - 0.0722 * Tmcalc2 + 1000.7; //calcula a massa especifica calculo da temp de saida
  333. Vmassc2 = (Vv * Rouc2) //calcula a vazao massica p calculo da temp de saida
  334. TScalc2(N2) = (((Vmassc2 * Cpc2 * Tsc1) - (0.5 * U * At * ta) + U * At * Ta)) / (Vmassc2 * Cpc2 - U * At * 0.5) //calcula a temp de saida
  335. }
  336. Tsc2 = Tscalc2; //grava a temp de saida calculada
  337. }
  338.  
  339. Qutil1 = Vmassc1 * Cpc1 * (Tsc1 - Te1); //Calor Útil 1
  340. Qutil2 = Vmassc2 * Cpc2 * (Tsc2 - Tsc1); //Calor Útil 2
  341.  
  342. Rend = (Quti11 + Qutil2) / (Qrad * 2);
  343.  
  344. **Equação para escolher a Vv que retorna o maior Rendimento....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement