Solução do Problema de Deflexão de Vigas com o Método das Diferenças Finitas

Autor: Viviane Colucci, Clicia Geovana Alves Pereira, Adilandri Mércio Lobeiro, Gabrielle Piezzoti Oliveira
Rok vydání: 2014
Zdroj: Proceeding Series of the Brazilian Society of Computational and Applied Mathematics.
ISSN: 2359-0793
DOI: 10.5540/03.2014.002.01.0074
Popis: Este trabalho trata da obtencao das solucoes analitica e numerica de um Problema de Valor de Contorno (PVC) para o problema de Deflexao de Vigas. Em particular, considera-se uma viga bi-apoiada de secao transversal retangular, de modo que as extremidades nao sofrem deflexao, com uma carga uniformemente distribuida sobre ela, como apresentada na Figura 1. Figura 1: Viga com extremidades apoiadas, sujeita a carga uniforme A Equacao Diferencial Ordinaria Linear que aproxima o caso a situacao fisica e dada por: d2w dx2 S EI w qx 2EI (x l), onde w(x) e a deflexao a uma distância x a partir da extremidade esquerda da viga, l representa o comprimento da viga, q a intensidade de carga uniforme a que esta submetida, E o modulo da elasticidade, S o esforco nas extremidades e I representa o momento de inercia central. Como nao ha deflexao nas extremidades da viga, vale as condicoes: w(0) 0 e w(l) 0. Para um estudo de caso, considera-se uma viga de aco com as seguintes caracteristicas: l 120pol, q 100lb/pe 100 12 lb/pol, E 3, 0 107lb/pol2 , S 1000lb e I 625pol4 . bolsista de Iniciacao Cientifica PICME, CNPq/Capes Obtem-se entao o Problema de Valor de Contorno (PVC) d2w dx2 1.0 · 10 4 1875 w 1.0 · 109 4.5 (x2 120x) w(0) 0 e w(120) 0 , cuja solucao analitica e dada por w(x) c1e mx c2e mx c3x2 c4x c5 , onde c1 ( 532 · 106)(1 e2· 3/125) e2· 3/125 e2· 3/125 , c2 ( 532 · 106)(e2· 3/125 1) e2· 3/125 e2· 3/125 , m 3 7500 , c3 1 240 , c4 1 2 e c5 5 32 · 106. Para obter a solucao numerica do PVC, foi aplicado o metodo das Diferencas Finitas, substituindo-se as derivadas da equacao pelas formulas de diferencas centrais [1] wi1 ( 2 h2 ( 1.0 · 104 1875 )) wi wi1 h2 ( 1.0 · 109 4.5 ) (x2 120x) w0 0 e wN1 0 , obtendo um sistema linear de equacoes, para i variando de 1 ate N . Dividiu-se o intervalo [0, 120] (comprimento da viga) em 1200 subintervalos iguais, cujas extremidades sao os pontos da malha xi ih, para i 0, ..., 1201, sendo h 0, 1 (passo), para os quais busca-se a aproximacao wi. Quanto mais discretizado o intervalo, mais precisas sao as aproximacoes. No entanto, tendo em vista o custo computacional e que a discretizacao aplicada foi suficiente para se obter um resultado satisfatorio, nao foi necessario um passo menor. A forma matricial do sistema gerado trabalha com uma matriz de coeficientes tridiagonal 1199 1199. O codigo em MATLAB a seguir implementa o metodo e resolve o sistema. Codigo 1: Solucao Numerica de um PVC com o Metodo de Diferencas Finitas syms x %w’’ p(x)w’ q(x)w r(x), [a,b] dados inputdlg ({’P: ’, ’Q: ’, ’R: ’, ’n: ’},’Dados ’); limites inputdlg ({’a: ’, ’f(a): ’, ’b: ’, ’f(b): ’},’PVC’); passo (str2num(limites {3}) - str2num(limites {1}))/str2num(dados {4}); xVector str2num(limites {1}) : passo : str2num(limites {3}); %Sistema matricial: Aw d. Obtendo a matriz tridiagonal A: a(1) 2 (passo 2)*subs(dados {2},x,xVector (2)); %diagonal principal b(1) -1 (passo /2)*subs(dados {1},x,xVector (2)); %diagonal superior d(1) -(passo 2)*subs(dados {3},x,xVector (2)) ((1 (passo /2)*subs( dados {1},x,xVector (2)))*str2num(limites {2})); for i 2: length(xVector)-3 a(i) 2 (passo 2)*subs(dados {2},x,xVector(i1)); b(i) -1 (passo /2)*subs(dados {1},x,xVector(i1)); c(i) -1 - (passo /2)*subs(dados {1},x,xVector(i1)); %inferior d(i) -(passo 2)*subs(dados {3},x,xVector(i1)); end a(i1) 2 (passo 2)*subs(dados {2},x,xVector(i2)); c(i1) -1 - (passo /2)*subs(dados {1},x,xVector(i2)); d(i1) -(passo 2)*subs(dados {3},x,xVector(i2)) ((1 - (passo /2)*subs (dados{1},x,xVector(i2)))*str2num(limites {4})); %Fatoracao LU l(1) a(1); u(1) b(1)/a(1); z(1) d(1)/l(1); for i 2: length(xVector)-3 l(i) a(i) - (c(i)*u(i-1)); u(i) b(i)/l(i); z(i) (d(i) - (c(i)*z(i-1)))/l(i); end l(i1) a(i1) - (c(i1)*u(i)); z(i1) (d(i1) - (c(i1)*z(i)))/l(i1); %Resolvendo o sistema w(1) str2num(limites {2}); w(length(xVector)) str2num(limites {4}); w(length(xVector) -1) z(length(xVector) -2); for i length(xVector) -2: -1 : 2 w(i) z(i-1) - (u(i-1)*w(i1)); end A Figura 2 apresenta os graficos de ambas as solucoes. Figura 2: Solucoes Graficas Com as solucoes graficas fica visivel a proximidade entre os resultados. A Tabela a seguir exemplifica alguns dos valores encontrados, tambem para facilitar a comparacao entre as solucoes. xi w(xi) wi Erro absoluto Erro percentual 0 0 0 0 0 20 0.0006073605 0.0006073609 0.0000000004 0.0000658587 40 0.0010428818 0.0010428824 0.0000000006 0.0000575329 60 0.0011999063 0.0011999070 0.0000000007 0.0000583379 80 0.0010428818 0.0010428824 0.0000000006 0.0000575329 100 0.0006073605 0.0006073609 0.0000000004 0.0000658587 120 0 0 0 0 Tabela 1: Resultados e Erros Pode-se concluir, pela ordem de magnitude dos erros, que ficou entre 0.00005% e 0.00007%, a eficacia do metodo numerico.
Databáze: OpenAIRE