Baixe o app para aproveitar ainda mais
Prévia do material em texto
Trabalho 2 de Volumes Finitos Professor: José Adilson Aluno: Renner Egalon Pereira - PGMEC Estudo da condução 1D em uma barra composta por 3 materiais diferentes e condutividade térmica variando com a temperatura para cada material Modelamento Matemático: O problema baseia no estudo da condução de calor e gradiente de temperatura de três barras dispostas em série (fluxo constante), que possuem comprimentos diferentes. Para o estudo foram utilizados os materiais cobre, ferro e ouro, dispostos nesta ordem da esquerda para direita num domínio de 0 à L, onde L é o comprimento final da “barra composta”. Foram utilizados 10, 20 e 50 volumes de controle unitários (um de cada vez), ou seja, por unidade de comprimento (m). A multiplicação deste volume unitário pelo comprimento de cada barra dava o número de volumes por barra. O comprimento total da barra composta “L” foi dado pela soma dos comprimentos das barras. Cada volume de controle contém uma temperatura a ser calculada de forma iterativa pelo algoritmo de Thomas. Para este problema, foram utilizadas temperaturas inicias “T_Ghost” nos lados esquerdo e direito da barra, Phi1_Chute e Phi2_Chute, respectivamente. A equação fundamental para análise do problema na direção x é dada por: ΓΦe 𝑑Φ 𝑑𝑥 | 𝑒 − ΓΦw 𝑑Φ 𝑑𝑥 |𝑤 = 0 Para este trabalho, os materiais das barras tem condutividade térmica variando com a temperatura, k=k(T), ou seja, ΓΦe ≠ ΓΦw para cada temperatura. Neste caso, os gamas nas interfaces são dados pela média harmônica dos gamas adjacentes. Γ𝑒 = 2 Γ𝑃 Γ𝐸 Γ𝑃+ Γ𝐸 Γ𝑤 = 2 Γ𝑃 Γ𝑊 Γ𝑃+ Γ𝑊 Assim, os coeficientes do algoritmo de Thomas são dados por: 𝑏𝑖 = 𝐴𝐸 = Γ𝑖 Γ𝑖+1 0.5 Δ𝑋𝑖 Γ𝑖+1 + 0.5 Δ𝑋𝑖+1Γ𝑖 𝑐𝑖 = 𝐴𝑊 = Γ𝑖−1 Γ𝑖 0.5 Δ𝑋𝑖−1 Γ𝑖 + 0.5 Δ𝑋𝑖 Γ𝑖−1 𝑎𝑖 = 𝐴𝑃 = 𝑏𝑖 + 𝑐𝑖 Figura 1 – Esquema ilustrativo dos volumes de controle ao longo do domínio da barra composta Baseando-se no método da temperatura “Ghost”, a análise se iniciou considerando uma temperatura “Ghost” no infinito,), Phi2_Chute, que está fora do domínio da barra, ou seja, uma temperatura do ambiente à direita da barra. A partir do input desta temperatura (chute de um valor inicial para esta temperatura “Ghost”) e conhecida a condição de contorno de gradiente de temperatura para a extremidade direita da barra (em TB), foi possível encontrar uma relação para TB, até então desconhecido: 𝜙𝐵 = 𝜙𝐶ℎ𝑢𝑡𝑒2 + ( 𝛿𝑥 2 ) ∗ 𝑑𝑇 𝑑𝑥 | 𝑥(𝐿) Assim, a temperatura de chute ou temperatura “Ghost” pôde ser atualizada no primeiro passo iterativo, da seguinte forma: 𝑇𝐶ℎ𝑢𝑡𝑒 = 𝑇𝑁 + 𝛿𝑥 ∗ 𝑑𝑇 𝑑𝑥 | 𝑥(𝐿) O procedimento foi repetido para inúmeros passos iterativos até que a diferença entre o vetor de temperaturas do passo atual e o vetor de temperaturas do passo anterior fosse menor ou igual a tolerância especificada para o problema, no caso, 0.001. Assim, em cada passo iterativo era calculada uma nova temperatura 𝜙𝐵. Inicialmente, neste caso, foi necessária chutar um vetor de Temperaturas T* inicial, para que fossem calculado o vetor gama, até então, desconhecido. 𝑇∗ = { 𝑇2 𝑇3 ⋮ 𝑇𝑁 𝑇𝑁+1} A partir deste chute, os gamas iniciais foram calculados para cada temperatura. Em sequências as temperaturas e os gamas eram atualizados de forma iterativa utilizando o algoritmo de Thomas, até atingir o critério de parada. Os coeficientes de condutividade térmica dos materiais são válidos entre as temperaturas de 100K e 1200K e suas equações são: i) Cobre Puro k(T) = 0.0001 ∗ T2 − 0.2457 ∗ T + 478.86 ii) Ferro Puro k(T) = 0.0001 ∗ T2 − 0.2093 ∗ T + 141.27 iii) Ouro k(T) = −0.00001 ∗ T2 − 0.0514 ∗ T + 333.09 Resultados: 1º Caso: 𝒅𝑻 𝒅𝒙 | 𝒙(𝑳) < 𝟎 Entrada>>> PhiA = 873 'Temperatura para x=0 (K) NU = 10 'Número de volumes por unidade de comprimento (Volumes/metro) l1 = 1 'comprimento da barra 1 (m) l2 = 2 ' comprimento da barra 2 (m) l3 = 3 'comprimento da barra 3 (m) dPhidx = -10 'Gradiente de Temperatura em x=L (K/m) Phi1_Chute = 873 'Temperatura de chute ghost lado esquerdo (K) Phi2_Chute = 473 'Temperatura de chute ghost lado direito (K) tolerancia = 0.001 'Condição de Parada Conhecida a condição de contorno de temperatura TA = 873K (600°C) (em x=0), para 10 volumes de controles unitários e conhecidos os comprimentos das barras e o gradiente de temperatura de -10K/m para x=L (a partir de uma temperatura de chute 2 para o ponto “Ghost” à direita de 473K (200°C), foi possível analisar o comportamento estacionário da temperatura na barra ao longo das iterações a fim de se estabelecer a condição de parada. Foram necessárias 1642 iterações até atingir o critério de parada e observa-se que pelo fluxo ser negativo na extremidade direita, a temperatura da barra decresce de 873K a partir de x=0. Figura 2 – Evolução da temperatura da barra ao longo das iterações. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L ouro cobre ferro Observa-se, claramente, a mudança de inclinação e perfil da curva ao fina da cada barra, em 1 e 3m, respectivamente, mercadas com um círculo vermelho nos gráficos. Isso é devido a mudança no coeficiente de condutividade térmica. Percebe-se, ainda, que o ferro (barra 2), entre 1 e 3 m no gráfico, possui uma variação brusca de temperatura, maior inclinação. Isso é devido a ter o menor coeficiente de condutividade térmica dentre os materiais analisados, consequentemente, possuindo um maior gradiente de temperatura. A condutividade térmica é inversamente proporcional ao gradiente de temperatura. A tabela para última iteração é mostrada abaixo. Posição (m) Temperatura (K) 0 873 0,05 871,6248879 0,15 868,8746638 0,25 866,1260348 0,35 863,3790101 0,45 860,6335992 0,55 857,8898113 0,65 855,1476557 0,75 852,4071413 Figura 3 – Temperatura da barra na última iteração. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L 0,85 849,6682774 0,95 846,9310729 1,05 832,6631352 1,15 807,2597955 1,25 782,6524341 1,35 758,8419591 1,45 735,8180451 1,55 713,5620464 1,65 692,0494702 1,75 671,2519877 1,85 651,1390108 1,95 631,6788908 2,05 612,8398016 2,15 594,5903728 2,25 576,9001244 2,35 559,7397531 2,45 543,0813069 2,55 526,8982772 2,65 511,1656329 2,75 495,8598127 2,85 480,9586896 2,95 466,4415169 3,05 457,7523342 3,15 454,7050978 3,25 451,6596863 3,35 448,6160944 3,45 445,574317 3,55 442,5343492 3,65 439,4961858 3,75 436,4598219 3,85 433,4252524 3,95 430,3924723 4,05 427,3614768 4,15 424,3322608 4,25 421,3048194 4,35 418,2791477 4,45 415,2552408 4,55 412,2330939 4,65 409,2127021 4,75 406,1940607 4,85 403,1771646 4,95 400,1620093 5,05 397,1485899 5,15 394,1369017 5,25 391,1269399 5,35 388,1186998 5,45 385,1121768 5,55 382,1073661 5,65 379,1042631 5,75 376,1028631 5,85 373,1031616 5,95 370,1051539 6 368,60615 Para o mesmo caso anterior, agora, NU = 20 'Número de volumes por unidade de comprimento Figura 4 – Evolução da temperatura da barra ao longo das iterações. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L 0 100200 300 400 500 600 700 800 900 1000 0 2 4 6 Te m p er at u ra T (K ) Posição da Barra x(m) Temperatura na Barra Iterações = 2909 Posição (m) Temperatura (K) 0 873 ⋮ ⋮ 6 368,7800229 Para o mesmo caso anterior, agora, N = 50 'Número de volumes de controle Figura 5 – Temperatura da barra na última iteração. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L 0 100 200 300 400 500 600 700 800 900 1000 0 2 4 6 Te m p er at u ra T (K ) Posição da Barra x(m) Temperatura na Barra Iteração Nº 2909 Figura 6 – Temperatura da barra na última iteração. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L Figura 7 – Evolução da temperatura da barra ao longo das iterações. Gradiente negativo de temperatura em x=L faz a temperatura barra atingir aproximadamente 369K em x=L Posição (m) Temperatura (K) 0 873 ⋮ ⋮ 6 369,5412122 Percebe-se que o aumento no número de volumes de controle acarreta um aumento no número de iterações de solução, porém aumenta a precisão de cálculo uma vez que aumenta-se o número de pontos e diminui o incremento do volume de controle. 2º Caso: 𝒅𝑻 𝒅𝒙 | 𝒙(𝑳) = 𝟎 Agora com o gradiente de temperatura nulo na extremidade direita, espera-se que a temperatura ao longo da barra se mantenha constante em 873K (600°C). Com um input de temperatura de 773K, a temperatura fica em torno de 873K ao final das iterações. Entrada >>> PhiA = 873 'Temperatura para x=0 (K) NU = 10 'Número de volumes por unidade de comprimento (Volumes/metro) l1 = 1 'comprimento da barra 1 (m) l2 = 2 ' comprimento da barra 2 (m) l3 = 3 'comprimento da barra 3 (m) dPhidx = 0 'Gradiente de Temperatura em x=L (K/m) Phi1_Chute = 873 'Temperatura de chute ghost lado esquerdo (K) Phi2_Chute = 773 'Temperatura de chute ghost lado direito (K) tolerancia = 0.001 'Condição de Parada Percebe-se que a temperatura da barra se mantém praticamente constante ao final da última iteração, com T = 0,4K entre as extremidades direita e esquerda da barra composta. O fluxo em x=L neste caso é nulo, como condição inicial. Figura 8 – Temperatura da barra na última iteração. Gradiente nulo de temperatura em x=L faz a temperatura barra manter 873K de 0 a L Figura 9 – Evolução da temperatura da barra ao longo das iterações. Gradiente nulo de temperatura em x=L faz a temperatura barra manter 873K de 0 a L Posição (m) Temperatura (K) 0 873 0,05 872,9991784 0,15 872,9975352 0,25 872,9958921 0,35 872,9942489 0,45 872,9926057 0,55 872,9909625 0,65 872,9893194 0,75 872,9876762 0,85 872,986033 0,95 872,9843899 1,05 872,9755195 1,15 872,9594221 1,25 872,943325 1,35 872,9272282 1,45 872,9111315 1,55 872,8950352 1,65 872,8789391 1,75 872,8628433 1,85 872,8467477 1,95 872,8306524 2,05 872,8145574 2,15 872,7984626 2,25 872,7823681 2,35 872,7662738 2,45 872,7501798 2,55 872,734086 2,65 872,7179926 2,75 872,7018993 2,85 872,6858064 2,95 872,6697136 3,05 872,6606702 3,15 872,658676 3,25 872,6566817 3,35 872,6546875 3,45 872,6526932 3,55 872,650699 3,65 872,6487047 3,75 872,6467105 3,85 872,6447162 3,95 872,642722 4,05 872,6407277 4,15 872,6387335 4,25 872,6367392 4,35 872,634745 4,45 872,6327508 4,55 872,6307565 4,65 872,6287623 4,75 872,626768 4,85 872,6247738 4,95 872,6227796 5,05 872,6207853 5,15 872,6187911 5,25 872,6167969 5,35 872,6148026 5,45 872,6128084 5,55 872,6108142 5,65 872,6088199 5,75 872,6068257 5,85 872,6048315 5,95 872,6028373 6 872,6018401 Para N = 20 'Número de volumes de controle 3º Caso: 𝒅𝑻 𝒅𝒙 | 𝒙(𝑳) > 𝟎 Considerando agora um gradiente positivo, partindo de uma temperatura de 473K na esquerda, a temperatura da barra cresce a partir de x=0, dada uma temperatura de chute para a extremidade direita de 673K. Entrada >>> PhiA = 473 'Temperatura para x=0 (K) Posição (m) Temperatura (K) 0 873 ⋮ ⋮ 6 872,2030557 Figura 10 – Temperatura da barra na última iteração. Gradiente nulo de temperatura em x=L faz a temperatura barra manter 873K de 0 a L Figura 11 – Evolução da temperatura da barra ao longo das iterações. Gradiente nulo de temperatura em x=L faz a temperatura barra manter 873K de 0 a L NU = 10 'Número de volumes por unidade de comprimento (Volumes/metro) l1 = 1 'comprimento da barra 1 (m) l2 = 2 ' comprimento da barra 2 (m) l3 = 3 'comprimento da barra 3 (m) dPhidx = 10 'Gradiente de Temperatura em x=L (K/m) Phi1_Chute = 473 'Temperatura de chute ghost lado esquerdo (K) Phi2_Chute = 673 'Temperatura de chute ghost lado direito (K) tolerancia = 0.001 'Condição de Parada Partindo de uma temperatura do infinito de 473K (200°C) e que o fluxo seja positivo em x=L, era de se esperar que a barra ganhasse calor e sua temperatura aumentasse de x=0 para x=L. A temperatura chegou em torno de 937K em x=L. Figura 12 – Temperatura da barra na última iteração. Gradiente positivo de temperatura em x=L faz a temperatura da barra chegar em torno de 937K em x=L Posição (m) Temperatura (K) 0 473 0,05 474,076815 0,15 476,2304449 0,25 478,3858912 0,35 480,543153 0,45 482,7022299 0,55 484,8631211 0,65 487,025826 0,75 489,1903437 0,85 491,3566737 0,95 493,524815 1,05 501,3479549 1,15 514,990138 1,25 528,9702293 1,35 543,3046915 1,45 558,010888 Figura 13 – Evolução da temperatura ao longo das iterações. Gradiente positivo de temperatura em x=L faz a temperatura da barra chegar em torno de 937K em x=L 1,55 573,1070853 1,65 588,6124367 1,75 604,5469392 1,85 620,931354 1,95 637,787079 2,05 655,1359593 2,15 673,0000173 2,25 691,4010812 2,35 710,3602884 2,45 729,8974356 2,55 750,0301494 2,65 770,7728522 2,75 792,1355075 2,85 814,1221448 2,95 836,7291914 3,05 849,6547496 3,15 852,5916138 3,25 855,5305731 3,35 858,471634 3,45 861,4148026 3,55 864,3600853 3,65 867,3074885 3,75 870,2570187 3,85 873,2086823 3,95 876,1624856 4,05 879,1184354 4,15 882,076538 4,25 885,0368 4,35 887,9992281 4,45 890,9638288 4,55 893,9306088 4,65 896,8995749 4,75 899,8707336 4,85 902,8440919 4,95 905,8196564 5,05 908,7974339 5,15 911,7774314 5,25 914,7596557 5,35 917,7441137 5,45 920,7308123 5,55 923,7197586 5,65 926,7109595 5,75 929,7044221 5,85 932,7001535 5,95 935,6981608 6 937,1971645 Para N = 20 'Número de volumes de controle Figura 14 – Temperatura da barra na última iteração. Gradiente positivo de temperatura em x=L faz a temperatura da barra chegar em torno de 937K em x=L Posição (m) Temperatura (K) 0 873 ⋮ ⋮ 6 936,63052 Figura 15 – Evolução da temperatura ao longo das iterações. Gradiente positivo de temperatura em x=L faz a temperatura da barra chegar em torno de 937K em x=L Código Principal Public l As Double Sub Barra_Condução_Trabalho_Final()Application.ScreenUpdating = False Sheets("Dados").Select Call Limpar_Excel Call Deletar_Grafico_Trabalho_2 Sheets("Trabalho").Select ActiveWindow.FreezePanes = False Call Deletar_Grafico_Trabalho Call Limpar_Excel PhiA = 473 'Temperatura para x=0 (K) NU = 20 'Número de volumes por unidade de comprimento (Volumes/metro) l1 = 1 'comprimento da barra 1 (m) l2 = 2 ' comprimento da barra 2 (m) l3 = 3 'comprimento da barra 3 (m) dPhidx = 10 'Gradiente de Temperatura em x=L (K/m) Phi1_Chute = 473 'Temperatura de chute ghost lado esquerdo (K) Phi2_Chute = 673 'Temperatura de chute ghost lado direito (K) tolerancia = 0.001 'Condição de Parada N1 = Round(NU * l1, 0) 'Número de Volumes Barra 1 N2 = Round(NU * l2, 0) 'Número de Volumes Barra 2 N3 = Round(NU * l3, 0) 'Número de Volumes Barra 3 N = N1 + N2 + N3 'Número de Volumes de Controle Total l = l1 + l2 + l3 'Comprimento Total da Barra Composta (m) Deltax = l / N 'Comprimento para 1 volume de controle (m) Dim a(), b(), c(), Phi(), T_anterior(), T(), x(), d(), P(), q(), residuo(), gama() As Double ReDim a(2 To N + 1), b(2 To N + 1), c(2 To N + 1), Phi(2 To N + 1), T_anterior(1 To N + 2), T(1 To N + 2), x(1 To N + 2), d(2 To N + 1), P(2 To N + 1), q(2 To N + 1), residuo(1 To N + 2), gama(1 To N + 2) As Double Dim i, j, w, cont, passo, z, y As Long 'Zerar inicialmente os vetores _____________________________________________________ For i = 2 To N + 1 a(i) = 0 b(i) = 0 c(i) = 0 d(i) = 0 P(i) = 0 q(i) = 0 Phi(i) = 0 gama(i) = 0 Next For i = 1 To N + 2 T(i) = 0 T_anterior(i) = 0 Next '________________________________________________________________________ ___________ 'Vetor Posição x(m) For i = 3 To N + 1 x(1) = 0 x(2) = x(1) + ((Deltax) / 2) x(i) = x(i - 1) + Deltax x(N + 2) = x(N + 1) + ((Deltax) / 2) Cells(1, 8) = x(1) Cells(2, 8) = x(2) Cells(i, 8) = x(i) Cells(N + 2, 8) = x(N + 2) Next '________________________________________________________________________ ____________ 'CHUTE DE TEMPERATURAS INICIAIS PARA TODOS OS PHI'S A SEREM CALCULADOS PhiB = dPhidx * (Deltax / 2) + Phi2_Chute 'PARA VOLUME GHOST ESQUERDO Phi(2) = 2 * PhiA - Phi1_Chute 'PARA VOLUME GHOST DIREITO Phi(N + 1) = 2 * PhiB - Phi2_Chute 'Chutes da temperaturas iniciais do passo 1 For i = 3 To N Phi(i) = ((Phi(N + 1) - Phi(2)) / ((N - 1) * Deltax)) * ((i - 2) * Deltax) + Phi(2) Next '________________________________________________________________________ ________________ PhiB = 0 passo = 0 For cont = 1 To N + 2 Do passo = passo + 1 For w = 1 To N + 2 T_anterior(w) = T(w) Next PhiB = dPhidx * (Deltax / 2) + Phi2_Chute 'a(1) = Ae + 2 * Aw 'b(1) = Ae 'd(1) = Aw * (2 * Phi1) 'a(N) = Ae + 2 * Aw 'c(N) = Aw 'd(N) = Ae * (2 * Phi2) For i = 2 To (N1 + 1) gama(i) = 0.0001 * Phi(i) ^ 2 - 0.2457 * Phi(i) + 478.86 'k(T) para cobre puro Next For i = (N1 + 2) To (N1 + N2) + 1 gama(i) = 0.0001 * Phi(i) ^ 2 - 0.2093 * Phi(i) + 141.27 'k(T) para ferro puro Next For i = (N1 + N2) + 2 To (N + 1) gama(i) = -0.00001 * Phi(i) ^ 2 - 0.0514 * Phi(i) + 333.09 'k(T) para ouro Next 'Cálculo dos Coeficients do Algoritmo de Thomas For i = 3 To N b(i) = (gama(i) * gama(i + 1)) / (0.5 * Deltax * gama(i + 1) + 0.5 * Deltax * gama(i)) 'b3 à bN c(i) = (gama(i - 1) * gama(i)) / (0.5 * Deltax * gama(i) + 0.5 * Deltax * gama(i - 1)) 'c3 à cN a(i) = b(i) + c(i) d(i) = 0 Cells(i - 1, 1) = a(i) Cells(i - 1, 2) = b(i) Cells(i - 1, 3) = c(i) Cells(i - 1, 4) = d(i) Next b(2) = (gama(2) * gama(3)) / (0.5 * Deltax * gama(3) + 0.5 * Deltax * gama(2)) c(N + 1) = (gama(N) * gama(N + 1)) / (0.5 * Deltax * gama(N + 1) + 0.5 * Deltax * gama(N)) c(2) = 0 b(N + 1) = 0 a(N + 1) = c(N + 1) + 2 * b(N) a(2) = b(2) + 2 * c(3) d(2) = c(3) * (2 * PhiA) d(N + 1) = b(N) * (2 * PhiB) 'Algoritmo de Thomas '1º PASSSO: P(2) = b(2) / a(2) q(2) = d(2) / a(2) Cells(1, 1) = a(2) Cells(N, 1) = a(N + 1) Cells(1, 2) = b(2) Cells(N, 2) = b(N + 1) Cells(1, 3) = c(2) Cells(N, 3) = c(N + 1) Cells(1, 4) = d(2) Cells(N, 4) = d(N + 1) Cells(1, 5) = P(2) Cells(1, 6) = q(2) '2º PASSO: For i = 3 To N + 1 'c(2) = 0 'b(N + 1) = 0 P(i) = b(i) / (a(i) - c(i) * P(i - 1)) q(i) = (d(i) + c(i) * q(i - 1)) / (a(i) - c(i) * P(i - 1)) Cells(i - 1, 5) = P(i) Cells(i - 1, 6) = q(i) Next '3º PASSO: Phi(N + 1) = q(N + 1) Cells(N, 7) = Phi(N + 1) Phi2_Chute = Phi(N + 1) + dPhidx * Deltax '4º PASSO: For i = N To 2 Step -1 Phi(i) = P(i) * Phi(i + 1) + q(i) Cells(i - 1, 7) = Phi(i) Next 'Vetor Temperatura T(°C) For i = 2 To N + 1 T(1) = PhiA T(i) = Phi(i) T(N + 2) = PhiB Cells(1, 9) = T(1) Cells(i, 9) = T(i) Cells(N + 2, 9) = T(N + 2) Next For j = 1 To N + 2 residuo(j) = Abs(T(j) - T_anterior(j)) Cells(j, 10) = residuo(j) Next 'Escrever as temperatura para cada iteração na plan Dados Sheets("Dados").Select For z = 2 To N + 3 Cells(z, passo + 1) = T(z - 1) Next Cells(1, passo + 1) = "Iteração " & passo Sheets("Trabalho").Select Loop Until residuo(cont) <= tolerancia Next 'Escrever gama final For i = 2 To N + 1 Cells(i - 1, 12) = gama(i) Next Cells(1, 11) = passo Call Inserir_Cabeçalho Call Copiar_Vetor_Posição Call Gráfico_Iterativo Sheets("Trabalho").Select 'Gráfico _________________________________________________________________ 'Temperatura T(°C) X Posição x(m) Call Grafico_TFinal MsgBox "Número de Passos Iterativos = " & passo End Sub
Compartilhar