Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2018
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.16 KB | None | 0 0
  1.  
  2.  
  3. void setup() {
  4. Serial.begin(9600);
  5. //Serial.println("CLEARDATA"); //Limpa a pasta do excel
  6. Serial.println("VAZAO,COEF GLOBAL 1,COEF GLOBAL 2, TEMP DE SAIDA 1, TEMP DE SAIDA 2, CALOR");
  7.  
  8. double Temp_Ambiente = 23; //Temp_Ambiente = temperatura ambiente (°C) - Sensor DHT 22
  9. double UR = 60; //UR = umidade relativa do ar (%) - Sensor DHT 22
  10. double Patm = 101325; //Patm = pressão atmosferica (Pa) - Sensor BMP 280
  11. double Te1 = 23; //Te1 = temperatura de entrada na placa 1 (°C) - SENSOR DSB1820
  12. double Ts1 = 24; //Ts1 = temperatura de saída da placa 1 e entrada na placa 2 (°C) - SENSOR DSB1820
  13. double Tw1 = 58; //Tw1 = temperatura superficie aquecedor 1 (°C) - SENSOR DSB1820
  14. double Tw2 = 70; //Tw2 = temperatura superficie aquecedor 2 (°C) - SENSOR DSB1820
  15. double Ts2 = 25; //Ts2 = temperatura de saída da placa 2 (°C) - SENSOR DSB1820
  16. double Vel_Vento = 2; //Vel_Vento = Vel_Ventoocidade do vento (m/s) - Anemometro Caseiro
  17. double Ti1 = 40; //Ti1 = temperatura inferior aquecedor (°C) - SENSOR DSB1820
  18. double Ti2 = 45; //Ti2 = temperatura inferior aquecedor 2 (°C) - SENSOR DSB1820
  19. double Va = 0.0000167; //Va = vazão de agúa no aquecedor (m³/s) - Sensor Hall Medidor Fluxo Água 3/4 2-45l - Freq = 8.1 Q-3
  20. double Rad = 880; //Rad = Radiação Solar (W/m²) - LDR 5mm -
  21.  
  22. //Capacidades físicas da Ar:
  23.  
  24. const double Kar = 0.03; //Condutiblidade Termica do ar (W/m°C)
  25. const double Prar = 0.707; //N° de Prandl do ar (-)
  26. const double Uar = 17.4 * pow(10.0, -6.0); //Viscosidade Dinamica do ar (Pa.s)
  27. const double Cpar = 1004.831565; //Capacidade Calorifica do ar (J/kg°C)
  28.  
  29. //Caracteristicas Físicas do Aquecedor Solar
  30.  
  31. const double De = 1.71; //Diametro externo aquecedor (m)
  32. const double Di = 0.46; //Diametro interno aquecedor (m)
  33. const double Pi = 3.14159265359; //Número pi
  34. const double Per = (De * Pi); //Perimetro aquecedor (m)
  35. const double Aes = ((De * De - Di * Di) * Pi * 0.25); //Área de exposição solar (m²)
  36. const double Lc = Aes / Per; //Comprimento caracteristico (m)
  37. const double di0 = 0.0195; //Diametro interno do tubo (m)
  38. const double de0 = 0.0225; //Diametro externo do tubo (m)
  39. const double L = 100; //Comprimento Tubo (m)
  40. const double At = de0 * Pi * L; //Aréa total de Troca de calor (m²)
  41. const double Ed = 0.001 / di0;
  42. const double Ai = Pi * L * di0;
  43. const double Ae = Pi * L * de0;
  44. const double Kp = 0.17;
  45. //Massa Especifica do Ar Úmido (kg/m³):
  46.  
  47. double Psat, Pv, Pd, par, termo1, termo2;
  48.  
  49. termo1 = (7.5 * Temp_Ambiente) / (Temp_Ambiente + 237.3);
  50. termo2 = pow(10.0, termo1);
  51. Psat = (6.1078 * termo2); //Pressão de saturação do ar
  52. Pv = Psat * UR; //Pressão de vapor do ar
  53. Pd = Patm - Pv; //Pressão dinamica
  54. par = (Pd / (287.058 * (Temp_Ambiente + 273.15))) + (Pv / (461.495 * (273.15 + Temp_Ambiente))); //Massa Especifica do Ar
  55.  
  56. //**************************************************Calculo do Coeficiente Convectivo com o ar placa 1 e 2:****************************************
  57.  
  58. //N° de Reynolds para Escoamento do Vento na Superficie do Aquecedor:
  59.  
  60. double Re, Gr1, Gr2, Ri1, Ri2, Ra1, Ra2, Nuf1, Nuf2, Nu1, Nu2, Nun1, Nun2;
  61.  
  62. Re = (Vel_Vento * par * Lc) / Uar; //N° de Reynolds
  63. Gr1 = (9.81 * (1 / (Temp_Ambiente + 273.15) * (Tw1 - Temp_Ambiente) * pow(Lc, 2.0)) / (Uar / par)); //N° de Grashft placa 1
  64. Gr2 = (9.81 * (1 / (Temp_Ambiente + 273.15) * (Tw2 - Temp_Ambiente) * pow(Lc, 2.0)) / (Uar / par)); //N° de Grashft placa 2
  65. Ri1 = Gr1 / pow(Re, 2.0); //N° de Richardson placa 1
  66. Ri2 = Gr2 / pow(Re, 2.0); //N° de Richardson placa 2
  67. Ra1 = Gr1 * Prar; //N° de Rayleigh placa 1
  68. Ra2 = Gr2 * Prar; //N° de Rayleigh placa 2
  69. Nuf1 = 1.72 * pow(Re, 0.5) * pow(Prar, (1.0 / 3.0)); //Nussfelt forçado placa 1
  70. Nuf2 = 1.72 * pow(Re, 0.5) * pow(Prar, (1.0 / 3.0)); //Nussfelt forçado placa 2
  71.  
  72. //********************************Condicional para escolha do tipo de escoamento exterior:************************************************
  73.  
  74. //Nussfelt natural para placa 1 :
  75.  
  76. if (Ra1 >= 104 && Ra1 <= 109) {
  77. Nun1 = 0.59 * pow(Ra1, (1.0 / 4.0));
  78. }
  79. else if (Ra1 > 109 && Ra1 <= 1012) {
  80. Nun1 = 0.13 * pow(Ra1, (1.0 / 3.0));
  81. }
  82. else {
  83. Nun1 = 0;
  84. }
  85. //Nussfelt natural para placa 2 :
  86.  
  87. if (Ra2 >= 104 && Ra2 <= 109) {
  88. Nun2 = 0.59 * pow(Ra2, (1.0 / 4.0));
  89. }
  90. else if (Ra2 > 109 && Ra2 <= 1012) {
  91. Nun2 = 0.13 * pow(Ra2, (1.0 / 3.0));
  92. }
  93. else {
  94. Nun2 = 0;
  95. }
  96. //Nussfelt forçada para placa 1
  97.  
  98. if (Ri1 <= 0.1) {
  99. Nu1 = Nuf1;
  100. }
  101. else if (Ri1 > 0.1 && Ri1 <= 10) {
  102. Nu1 = Nun1 + Nuf1;
  103. }
  104. else {
  105. Nu1 = Nun1;
  106. }
  107.  
  108. //Nussfelt forçada para placa 2
  109.  
  110. if (Ri2 <= 0.1) {
  111. Nu2 = Nuf2;
  112. }
  113. else if (Ri2 > 0.1 && Ri2 <= 10) {
  114. Nu2 = Nun2 + Nuf2;
  115. }
  116. else {
  117. Nu2 = Nun2;
  118. }
  119.  
  120. //Coeficiente Convectivo com o ar:
  121.  
  122. double hconv1 = Nu1 * Kar / Lc; //Coeficiente convectivo externo placa 1 (W/m²°C)
  123. double hconv2 = Nu2 * Kar / Lc; //Coeficiente convectivo externo placa 2 (W/m²°C)
  124.  
  125. //Quantidade de calor perdida por convecção com o ar:
  126.  
  127. double Qconv1 = hconv1 * Aes * (Tw1 - Temp_Ambiente); //Calor perdido na placa 1 p/ ar (W)
  128. double Qconv2 = hconv1 * Aes * (Tw2 - Temp_Ambiente); //Calor perdido na placa 2 p/ ar (W)
  129.  
  130. //**********************************************Fim Do calculo do coef. convectivo com o ar************************************************************
  131.  
  132. //Fluxo de Calor por Radiação solar:
  133.  
  134. double Qsolar = Rad * Aes * 0.9; //Calor que entra no sistema (W)
  135.  
  136. //Perda de calor por irradiação:
  137.  
  138. double TaK = Temp_Ambiente + 273.15;
  139. double Tw1K = Tw1 + 273.15;
  140. double Tw2K = Tw2 + 273.15;
  141. double Qrad1 = 5.6697 * pow(10, (-8.0)) * Aes * 0.95 * ((pow(Tw1K, 4.0)) - (pow((0.0552 * pow(TaK, 1.5)), 4.0)));
  142. double Qrad2 = 5.6697 * pow(10, (-8.0)) * Aes * 0.95 * ((pow(Tw2K, 4.0)) - (pow((0.0552 * pow(TaK, 1.5)), 4.0)));
  143.  
  144. //Vel_Ventoocidade agua no interior do tubo:
  145.  
  146. double Vagua = Va / (pow(0.0195, 2.0) * Pi * 0.25); //Vel_Ventoocidade de escoamento água nos tubos //(m/s)
  147.  
  148. //Temeperaturas acessorias para os calculos:
  149.  
  150. double Twi1 = Tw1 - (((Qsolar * 0.35 * log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17))); //Temperatura interna da parede tubo 1
  151. double Twi2 = Tw2 - (((Qsolar * 0.35 * log(0.0225 / 0.0195)) / (2 * Pi * 100 * 0.17))); //Temperatura interna da parede tubo 2
  152. double Tm1 = (Te1 + Ts1) * 0.5; //Temperatura média da água placa 1
  153. double Tm2 = (Ts1 + Ts2) * 0.5; //Temperatura média da água placa 2
  154.  
  155.  
  156. //*****************Curvas para cálculo dos elementos das caracteristicas físico-quimicas da água:*********************************************
  157.  
  158. //Massa Especifica da água (kg/m³) :
  159.  
  160.  
  161. double Rou1 = ((0.0035) * Tm1 * Tm1) - 0.0722 * Tm1 + 1000.7;
  162. double Rou2 = ((0.0035) * Tm2 * Tm2) - 0.0722 * Tm2 + 1000.7;
  163.  
  164. //Viscosidade dianamica da água ud1 (Pa.s):
  165.  
  166. double ud1 = (-2.0 * pow(10, - 9.0) * pow(Tm1, 3.0)) + (6 * pow(10.0, - 7.0) * pow(Tm1, 2.0)) - (5 * pow(10, - 5.0) * Tm1) + 0.0017;
  167. double ud2 = (-2.0 * pow(10, - 9.0) * pow(Tm2, 3.0)) + (6 * pow(10.0, - 7.0) * pow(Tm2, 2.0)) - (5 * pow(10, - 5.0) * Tm2) + 0.0017;
  168.  
  169. //Condutibilidade termica da água(W/m°C) :
  170. double Ka1, Ka2;
  171. Ka1 = 1 * pow(10, -8.0) * pow(Tm1, 3.0) - 9 * pow(10, -6.0) * pow(Tm1, 2.0) + 0.002 * (Tm1) + 0.5604;
  172. Ka2 = 1 * pow(10, -8.0) * pow(Tm2, 3.0) - 9 * pow(10, -6.0) * pow(Tm2, 2.0) + 0.002 * (Tm2) + 0.5604;
  173.  
  174. //Capacidade termica da água(J/kg°C):
  175.  
  176. double Cp1 = ((9 * pow(10, -5.0)) * pow(Tm1, 3.0)) + (0.0291 * pow(Tm1, 2.0)) - (1.9549 * Tm1) + 4210.2;
  177. double Cp2 = ((9 * pow(10, -5.0)) * pow(Tm2, 3.0)) + (0.0291 * pow(Tm2, 2.0)) - (1.9549 * Tm2) + 4210.2;
  178.  
  179. //Numero de Prandl da água:
  180.  
  181. double Prh1 = Cp1 * ud1 / Ka1;
  182. double Prh2 = Cp2 * ud2 / Ka2;
  183.  
  184. //Viscosidade dianamica da água a temperatura da parede do tubo:
  185.  
  186. double ut1 = ((-2 * pow(10, - 9.0)) * pow(Twi1, 3.0) + ((6 * pow(10, -7.0)) * pow(Twi1, 2.0)) - (5 * pow(10, - 5.0) * Twi1)) + 0.0017;
  187. double ut2 = ((-2 * pow(10, - 9.0)) * pow(Twi2, 3.0) + ((6 * pow(10, -7.0)) * pow(Twi2, 2.0)) - (5 * pow(10, - 5.0) * Twi2)) + 0.0017;
  188.  
  189. //Número de Reynolds no interior do tubo:
  190. double rey2, rey1;
  191. rey1 = (Vagua * 0.0195 * Rou1) / (ud1); //Tubo 1
  192. rey2 = (Vagua * 0.0195 * Rou2) / (ud2); //Tubo 2
  193.  
  194. //Definição do coeficiente de atrito por Colebrook placa 1 - equação implicita
  195.  
  196. double F01 = 0.3164 * pow(rey1, -0.25);
  197. double erro1 = 1;
  198.  
  199. do {
  200. double func1, dfunc1, f1;
  201. func1 = 1 / pow(F01, 0.5) + 2 * log(Ed / 3.72 + 2.51 / (rey1 * pow(F01, 0.5))) / log(10);
  202. 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.0 / 2.0)));
  203. f1 = F01 - func1 / dfunc1;
  204. erro1 = abs(F01 - f1);
  205. F01 = f1;
  206.  
  207. } while (erro1 <= 0.00000000000000000000000001);
  208.  
  209. // Definição do coeficiente de atrito por Colebrook placa 2 - equação implicita/////////////////////////////
  210.  
  211. double F02 = 0.3164 * pow(rey2, -0.25);
  212. double erro2 = 1;
  213. do {
  214. double func2, dfunc2, f2;
  215. func2 = 1 / pow(F02, 0.5) + 2 * log(Ed / 3.72 + 2.51 / (rey2 * pow(F02, 0.5))) / log(10);
  216. 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.0 / 2.0)));
  217. f2 = F02 - func2 / dfunc2;
  218. erro2 = abs(F02 - f2);
  219. F02 = f2;
  220. } while (erro2 <= 0.00000000000000000000000001);
  221.  
  222. //Calculo do Nussfelt no interior do tubo 1:
  223.  
  224. double a1, a2, b1, b2, c1, c2, d1, d2, Nus1, Nus2, Nus1c, Nus2c;
  225. a1 = (F01 / 8.0);
  226. b1 = (rey1 - 1000) * Prh1;
  227. c1 = 12.7 * ((pow((F01 / 8.0), 0.5)) * ((pow(Prh1, (2.0 / 3.0))) - 1));
  228. d1 = (ud1 / ut1);
  229. a2 = (F02 / 8);
  230. b2 = (rey2 - 1000.0) * Prh2;
  231. c2 = 12.7 * ((pow((F02 / 8.0), 0.5)) * ((pow(Prh2, (2.0 / 3.0))) - 1));
  232. d2 = (ud2 / ut2);
  233.  
  234. if (rey1 <= 2200) {
  235. Nus1 = 3.657;
  236. }
  237.  
  238. else(rey1 > 2200); {
  239.  
  240. Nus1 = ((a1 * b1) / (c1)) * d1;
  241. }
  242. if (rey2 <= 2200) {
  243. Nus2 = 3.657;
  244. }
  245.  
  246. else(rey2 > 2200); {
  247. Nus2 = ((a2 * b2) / (c2)) * d2;
  248. }
  249.  
  250. //Nusfelt corrigido para serpentina:
  251.  
  252. Nus1c = 1.0 + 3.4 * (2 * 0.0195 / 1.71) * Nus1;
  253. Nus2c = 1.0 + 3.4 * (2 * 0.0195 / 1.71) * Nus2;
  254.  
  255. //Coeficiente de troca de calor no interior dos tubos:
  256.  
  257. double h1, h2;
  258. h1 = Nus1c * Ka1 / 0.0195;
  259. h2 = Nus2c * Ka2 / 0.0195;
  260.  
  261. //Fluxo de calor no interior dos tubos:
  262.  
  263. double Q1, Q2;
  264. Q1 = h1 * Aes * (Twi1 - Tm1);
  265. Q2 = h2 * Aes * (Twi2 - Tm2);
  266.  
  267. //Fluxo de calor por condução:
  268.  
  269. const double lt = 0.006; //expessura telha
  270. const double kT = 0.35; //coef de cond. telha
  271.  
  272. double Q1cond = kT * Aes * (Ti1 - Temp_Ambiente) / lt;
  273. double Q2cond = kT * Aes * (Ti2 - Temp_Ambiente) / lt;
  274.  
  275. //Coeficiente de troca de calor por condução:
  276.  
  277. double hcond = kT / lt;
  278.  
  279. //Calculo do calor util pela Vazao_h2o massica:
  280.  
  281. double Vmass1 = Va * Rou1; //Vazao_h2o massica 1
  282. double Vmass2 = Va * Rou2; //Vazao_h2o massica 2
  283. double Qvm1;
  284. double Qvm2;
  285.  
  286. //Calculo do Coeficiente Global metodo 1:
  287.  
  288. double U1 = 1 / ((1 / hconv1) + ((Ae * log(de0 / di0)) / (2 * Pi * L * Kp)) + ((Ae / h1 * Ai)));
  289. double U2 = 1 / ((1 / hconv2) + ((Ae * log(de0 / di0)) / (2 * Pi * L * Kp)) + ((Ae / h2 * Ai)));
  290.  
  291. double QU1 = U1 * (Aes) * (((Tw1 - Te1) - (Tw1 - Ts1)) / log((Tw1 - Te1) / (Tw1 - Ts1)));
  292. double QU2 = U2 * (Aes) * (((Tw2 - Ts1) - (Tw2 - Ts2)) / log((Tw2 - Ts1) / (Tw2 - Ts2)));
  293.  
  294.  
  295. double T1 = Ts1;
  296. double T2 = Ts2;
  297. double TS2;
  298. double Vm1, Vm2, MLDT1, MLDT2, TS1, Vm1a, Vm2a, MLDT1a, MLDT2a, Te2, U1a, U2a, TS1a, TS2a;
  299. double diferenca = 1;
  300. double erroa = 1;
  301. double errob = 1;
  302. int i;
  303. int j;
  304. double Vazao_testeconv;
  305. double Qmaximo;
  306.  
  307. for (double Vazao_teste = 0.0000167; Vazao_teste < 0.0010000000000000; Vazao_teste = Vazao_teste + 0.00000835) {
  308.  
  309.  
  310. double vaz = Vazao_teste;
  311.  
  312. do {
  313.  
  314. do {
  315. Tm1 = (T1 + Te1) / 2.0;
  316. Cp1 = (((-9 * pow(10, -5.0)) * pow(Tm1, 3.0)) + (0.0291 * pow(Tm1, 2.0)) - 1.9549 * Tm1) + 4210.3;
  317. Rou1 = ((0.0035) * pow(Tm1, 2.0) - 0.0722 * Tm1 + 1000.7);
  318. Vm1 = vaz * Rou1;
  319. MLDT1 = ((Tw1 - Te1) - (Tw1 - T1)) / log((Tw1 - Te1) / (Tw1 - T1));
  320. TS1 = (((U1 * At * MLDT1)) / (Vm1 * Cp1)) + Te1;
  321. erroa = abs(T1 - TS1);
  322. T1 = TS1;
  323. Te2 = T1;
  324. Tm2 = (Te2 + T2) / 2.0;
  325. Cp2 = (((-9 * pow(10, -5.0)) * pow(Tm2, 3.0)) + (0.0291 * pow(Tm2, 2.0)) - 1.9549 * Tm2) + 4210.3;
  326. Rou2 = ((0.0035) * pow(Tm2, 2.0) - 0.0722 * Tm2 + 1000.7);
  327. Vm2 = vaz * Rou2;
  328. MLDT2 = ((Tw2 - Te2) - (Tw2 - T2)) / log((Tw2 - Te2) / (Tw2 - T2));
  329. TS2 = (((U2 * (At) * MLDT2)) / (Vm2 * Cp2)) + Te2;
  330. erroa = abs(T2 - TS2);
  331. T2 = TS2;
  332.  
  333. } while (erroa >= 0.01 && errob >= 0.01);
  334.  
  335. double Vaguaa = vaz / (pow(0.0195, 2.0) * Pi * 0.25);
  336. Tm1 = (Te1 + T1) * 0.5;
  337. Tm2 = (T1 + T2) * 0.5;
  338. ud1 = (-2.0 * pow(10, - 9.0) * pow(Tm1, 3.0)) + (6 * pow(10.0, - 7.0) * pow(Tm1, 2.0)) - (5 * pow(10, - 5.0) * Tm1) + 0.0017;
  339. ud2 = (-2.0 * pow(10, - 9.0) * pow(Tm2, 3.0)) + (6 * pow(10.0, - 7.0) * pow(Tm2, 2.0)) - (5 * pow(10, - 5.0) * Tm2) + 0.0017;
  340. Ka1 = 1 * pow(10, -8.0) * pow(Tm1, 3.0) - 9 * pow(10, -6.0) * pow(Tm1, 2.0) + 0.002 * (Tm1) + 0.5604;
  341. Ka2 = 1 * pow(10, -8.0) * pow(Tm2, 3.0) - 9 * pow(10, -6.0) * pow(Tm2, 2.0) + 0.002 * (Tm2) + 0.5604;
  342. Prh1 = Cp1 * ud1 / Ka1;
  343. Prh2 = Cp2 * ud2 / Ka2;
  344. rey1 = (Vaguaa * 0.0195 * Rou1) / (ud1);
  345. rey2 = (Vaguaa * 0.0195 * Rou2) / (ud2);
  346.  
  347. do {
  348. double func1, dfunc1, f1;
  349. func1 = 1 / pow(F01, 0.5) + 2 * log(Ed / 3.72 + 2.51 / (rey1 * pow(F01, 0.5))) / log(10);
  350. 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.0 / 2.0)));
  351. f1 = F01 - func1 / dfunc1;
  352. erro1 = abs(F01 - f1);
  353. F01 = f1;
  354. } while (erro1 <= 0.0000000000000000000001);
  355. double F02 = 0.3164 * pow(rey2, -0.25);
  356. double erro2 = 1;
  357. do {
  358. double func2, dfunc2, f2;
  359. func2 = 1 / pow(F02, 0.5) + 2 * log(Ed / 3.72 + 2.51 / (rey2 * pow(F02, 0.5))) / log(10);
  360. 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.0 / 2.0)));
  361. f2 = F02 - func2 / dfunc2;
  362. erro2 = abs(F02 - f2);
  363. F02 = f2;
  364. } while (erro2 <= 0.0000000000000000000000001);
  365. a1 = (F01 / 8.0);
  366. b1 = (rey1 - 1000) * Prh1;
  367. c1 = 12.7 * ((pow((F01 / 8.0), 0.5)) * ((pow(Prh1, (2.0 / 3.0))) - 1));
  368. d1 = (ud1 / ut1);
  369. a2 = (F02 / 8);
  370. b2 = (rey2 - 1000.0) * Prh2;
  371. c2 = 12.7 * ((pow((F02 / 8.0), 0.5)) * ((pow(Prh2, (2.0 / 3.0))) - 1));
  372. d2 = (ud2 / ut2);
  373. if (rey1 <= 2200) {
  374. Nus1 = 3.657;
  375. }
  376. else(rey1 > 2200); {
  377. Nus1 = ((a1 * b1) / (c1)) * d1;
  378. }
  379. if (rey2 <= 2200) {
  380. Nus2 = 3.657;
  381. }
  382. else(rey2 > 2200); {
  383. Nus2 = ((a2 * b2) / (c2)) * d2;
  384. }
  385.  
  386. Nus1c = 1.0 + 3.4 * (2 * 0.0195 / 1.71) * Nus1;
  387. Nus2c = 1.0 + 3.4 * (2 * 0.0195 / 1.71) * Nus2;
  388.  
  389.  
  390. h1 = Nus1c * Ka1 / 0.0195;
  391. h2 = Nus2c * Ka2 / 0.0195;
  392.  
  393. U1 = 1 / (((1 / hconv1) + ((Ae * log(de0 / di0)) / (2 * Pi * L * Kp)) + ((Ae / h1 * Ai))));
  394. U2 = 1 / (((1 / hconv2) + ((Ae * log(de0 / di0)) / (2 * Pi * L * Kp)) + ((Ae / h2 * Ai))));
  395.  
  396. TS1a = ((U1 * Ae * MLDT1) / (Vm1 * Cp1)) + Te1;
  397. TS2a = ((U2 * Ae * MLDT2) / (Vm2 * Cp2)) + Te2;
  398.  
  399. diferenca = abs(TS2a - T2);
  400.  
  401. T1 = TS1a;
  402. T2 = TS2a;
  403.  
  404. Qmaximo = ((Vm1 * Cp1 * pow((T1 - Te1), 3.0)) + (Vm2 * Cp2 * pow((T2 - T1), 3.0)));
  405. Vazao_testeconv = Vazao_teste * 59880.00;
  406.  
  407. } while (diferenca >= 0.01);
  408.  
  409. // Serial.print("DATA,TIME,");
  410. // delay(100);
  411. Serial.print((Vazao_testeconv), 2);
  412. // delay(100);
  413. Serial.print(" , ");
  414. // delay(100);
  415. Serial.print(U1, 4);
  416. // delay(100);
  417. Serial.print(" , ");
  418. // delay(100);
  419. Serial.print(U2, 4);
  420. // delay(100);
  421. Serial.print(" , ");
  422. // delay(100);
  423. Serial.print(T1, 4);
  424. // delay(100);
  425. Serial.print(" , ");
  426. // delay(100);
  427. Serial.print(T2, 4);
  428. // delay(100);
  429. Serial.print(" , ");
  430. // delay(100);
  431. Serial.print(Qmaximo, 4);
  432. Serial.println(" , ");
  433.  
  434. }
  435. }
  436. void loop() {
  437. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement