Anda di halaman 1dari 56

UNIVERSIDADE FEDERAL DE VIOSA CENTRO DE CINCIAS EXATAS E TECNOLGICAS DEPARTAMENTO DE ENGENHARIA CIVIL

ANLISE COMPUTACIONAL DE VIGAS CONTNUAS PELO MTODO DA FLEXIBILIDADE

MRCIO SAMPAIO SARMET MOREIRA Professor Assistente da UFV RITA DE CSSIA SILVA SANT'ANNA ALVARENGA Professora Assistente da UFV

APRESENTAO

Nos ltimos anos, o computador tornou-se um equipamento de uso obrigatrio para profissionais de engenharia. Diante disso, a Teoria das Estruturas teve de ser reorganizada, passando a ser estudada sob a forma matricial. Atualmente so enfatizados os processos de anlise estrutural denominados Processo da Rigidez e Processo da Flexibilidade, mais conhecidos como Mtodo da Rigidez e Mtodo da Flexibilidade, considerados os mais fundamentais e universais dentre todos os disponveis. Estes dois processos so especialmente apropriados para formulaes matriciais e, consequentemente, computacionais. Eles constituem o denominado Mtodo Clssico de clculo de Estruturas Hiperestticas. No que se refere anlise de vigas contnuas, por ser possvel estabelecer uma metodologia nica para escolha das incgnitas hiperestticas, o Mtodo da Flexibilidade surge como uma opo interessante e vivel de ser implementada. Este trabalho tem como objetivo introduzir os estudiosos de Engenharia Civil na anlise de estruturas reticuladas por computador, mais especificamente na anlise de vigas contnuas pelo Mtodo da Flexibilidade, tambm chamado Mtodo das Foras. Esperamos, dessa forma, contribuir positivamente para a formao dos futuros profissionais em engenharia e colocamo-nos disposio para discusses, crticas ou sugestes que possam surgir. Os autores

SUMRIO 03 MONTAGEM DO SISTEMA DE EQUAES LINEARES 1.1 - Introduo 03 1.2 - Compatibilidade de Deslocamentos 04 Angulares, Sistema de Equaes e Matriz de Flexibilidade 1.3 - Obteno da Matriz de Flexibilidade 08 1.4 - Obteno do Vetor de Termos 10 Independentes 13 CAPTULO 2 ALGORITMOS PRINCIPAIS 2.1 - Introduo 13 2.2 - Algoritmos Principais 14 2.2.1 - Leitura/Impresso de Dados 15 2.2.2 - Montagem do Sistema de 17 Equaes 2.2.3 - Soluo do Sistema de 22 Equaes pelo Mtodo de Gauss 2.2.4 - Clculo dos Valores Comple23 mentares 2.2.5 - Impresso dos Resultados 28 2.2.6 - reas de Memria para as 28 Variveis Indexadas 29 CAPTULO 3 EXEMPLOS DE APLICAO 3.1 - Introduo 29 3.2 - Viga de Dois Vos com Balano 29 Direita 3.3 - Viga de Dois Vos sobre Apoios 32 Simples 3.4 - Viga de Trs Vos sobre Apoios 34 Simples 3.5 - Viga de Quatro Vos com Balano 36 Direita 3.6 - Viga de Trs Vos com Engaste 39 Direita 41 APNDICE A1 - TABELA DE INTEGRAIS 44 APNDICE A2 - LISTAGEM DO PROGRAMA VIGACONT - PASCAL 59 REFERNCIAS BIBLIOGRFICAS CAPTULO 1 -

Captulo

MONTAGEM DO SISTEMA DE EQUAES

1.1 INTRODUO
As vigas contnuas so os elementos estruturais mais comuns na prtica de projetos estruturais. Na maioria das vezes, suficiente o clculo dos esforos solicitantes para o seu dimensionamento. Eventualmente, faz-se necessria uma avaliao do campo de deslocamentos, em geral para verificao da flecha mxima. Quando no necessria a determinao do campo de deslocamentos, o que ocorre freqentemente, possvel estabelecer uma metodologia nica para a definio das incgnitas hiperestticas. Neste caso, a utilizao do Mtodo da Flexibilidade para vigas contnuas, de seo transversal constante por tramo, torna-se um procedimento de fcil padronizao e vivel para implementao computacional. Escolhendo-se como incgnitas hiperestticas os momentos fletores que atuam na viga sobre os apoios intermedirios, obtm-se uma matriz de flexibilidade que apresenta, alm da simetria, uma distribuio tridiagonal, com coeficientes no-nulos situados apenas na diagonal principal e nas suas vizinhanas. Em razo desse fato, ocorre uma minimizao do gasto de memria e uma reduo nas operaes numricocomputacionais para a soluo do sistema de equaes correspondente. Neste trabalho, so apresentados uma formulao e os correspondentes algoritmos, para anlise de vigas contnuas utilizando o Mtodo da Flexibilidade. Os algoritmos esto descritos em Portugol, a fim de facilitar a implementao na linguagem desejada. No captulo 3 encontram-se exemplos de aplicao que demonstram a eficincia dos algoritmos. Apresenta-se, anexa, a listagem do Programa VigaCont, escrito em Pascal. Neste captulo pretende-se estudar o desenvolvimento terico do Mtodo da Flexibilidade aplicado anlise de vigas contnuas, dando-lhe um tratamento matricial. Ser obtida a matriz de Flexibilidade do sistema, bem como o vetor de termos independentes, a partir do sistema principal indicado na figura 1.1.b. Posteriormente ser apresentado um algoritmo para implementao computacional (Captulo 2).

1.2 COMPATIBILIDADE DE DESLOCAMENTOS ANGU-

LARES, SISTEMA DE EQUAES E MATRIZ DE FLEXIBILIDADE


Seja uma viga contnua arbitrria, de n apoios internos (Figura 1.1a), na qual as incgnitas hiperestticas escolhidas sejam os momentos fletores atuantes sobre esses apoios, resultando num sistema principal (S.P.) formado por uma associao de vigas simplesmente apoiadas, com liberdade de rotao nas extremidades (Figura 1.1b). As equaes de compatibilidade relativas ao campo de deslocamentos so definidas pela condio de continuidade, sobre cada um desses apoios internos, da derivada da linha elstica da viga original (Figura 1.1c).

a)

b)
X X 1 j-1 X X j j+1 X n

j+1

j+2

nv

nv+1

c)
e = jd j
(

jd
)

e j

FIGURA 1.1 - a) Viga contnua genrica; b) Sistema principal (S.P.) e incgnitas hiperestticas; e c) Linha elstica ou deformada da viga Empregando o princpio da superposio de efeitos, separando o efeito do carregamento externo e de cada hiperesttico no Sistema

Principal (S.P.) da Figura 1.3, representada na Figura 1.2 : a) Problema real


q1

tem-se para a viga contnua genrica

qi q2 qj

qn

j+1

j+2

nv

nv+1

FIGURA 1.2 - Viga contnua genrica em equilbrio

X1 X1 1 2

X2

X j-1

Xj

X j+1

Xn

j+1

j+2

nv nv+1

FIGURA 1.3 - Sistema Principal - Modelo equivalente com liberao das

rotaes sobre os apoios e aplicao dos momentos que atuavam internamente, agora como cargas externas
b) Subdiviso do problema (Superposio de Efeitos): b.1) Deslocamentos no S.P. devidos a cargas aplicadas:

10

10

10

j-1
20

j-1,0

j
j,0

j+1
j+1

n
n

= 10

+ ( 10

10 ) ...

j0

j0+ ( j0 ) ...

n0

e d n0 + ( ) n0

FIGURA 1.4 - Deslocamentos no S.P.devidos a cargas aplicadas b.2) Deslocamentos no S.P. devidos a X1= X1 x (deslocamentos devidos a X1= 1):

X1=1 11 1 2 3

21 j j+1
a

j+2
Xj = Xj x

nv

nv+1

FIGURA 1.5 - S.P. submetido ao hiperesttico X1 b.3) Deslocamentos no S.P. devidos devidos a Xj= 1): (deslocamentos

j-1,,j 1 2 3 j

Xj =1 j j

j+1,,j j+2 nv nv+1

j+1

FIGURA 1.6 - S.P. submetido ao hiperesttico Xj b.4) Deslocamentos no S.P. devidos a Xn= Xn x (deslocamentos devidos a Xn= 1): X =1
n

nn

j+1

j+2

nv

nv+1

FIGURA 1.7 - S.P. submetido ao hiperesttico Xn Aplicando a condio de compatibilidade, que tem como caracterstica o fato de as rotaes relativas das barras que convergem em cada n serem nulas, tem-se:

1r 2r . . . Jr . . . nr

=10 =20 . . . = J0 . . . =n0

+ 11 X1 + 21 X1 . . . + J1 X1 . . . + n1 X1

+ 12 X2 + 22 X2 . . . + J2 X2 . . . + n2 X2

+ . + + . + . . . + . + . . . + . +

1J XJ 2J XJ . . . JJXJ . . . nJ XJ

+.+ 1n Xn = 0 +.+ 2n Xn = 0 . . . . . +.+ Jn Xn = 0 . . . . . . +.+ nn Xn = 0 .................(1.1)

Os ndices que esto indexando as deformaes ( ij) significam a direo do efeito e da causa da deformao, respectivamente, resultando, assim, em: jj - deslocamento na direo do hiperesttico Xi devido a aplicao do hiperesttico Xj no Sistema Principal; j0 - deslocamento na direo do hiperesttico Xj devido a carregamento externo no Sistema Principal. Escrevendo o sistema de equaes (1.1) na forma matricial:

11 21 . . . j 1 . . . n 1

12 22 . . . . . .

. . . . . . . . . . . . . . . . . . . . .

1j . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . 2j . . .

j 2 . . . jj . . .

n2 . . . nj . . .

1n x1 10 20 2n x2 . . . . . . . . . = j n xj j0 . . . . . . . . . n n xn n0

............. (1.2)
Este sistema pode ser escrito de forma condensada, como: [] {X}={ 0 }; em que [] a matriz de flexibilidade do sistema principal; {X} o vetor das incgnitas hiperestticas; { 0 } o vetor dos termos independentes. Pela Figura 1.6, pode-se notar que, quando o hiperesttico genrico Xj aplicado no sistema principal, apenas as barras que convergem para este n sofrem deformaes. Assim, os coeficientes j-1,j , jj e j+1,j sero diferentes de zero, e os demais coeficientes da coluna j sero iguais a zero, resultando, portanto, numa matriz de flexibilidade com forma tridiagonal. Alm disso, com base no teorema de Menabrea, deduz-se que esta matriz simtrica. (1.3)

1.3 OBTENO DA MATRIZ DE FLEXIBILIDADE

Os coeficientes da matriz de flexibilidade podem ser obtidos aplicando o princpio dos trabalhos virtuais. Desprezando a parcela da deformao devida ao esforo cortante, tem-se: M M i j = ds, para i j 1; ij E I estr (1.4) = 0, para i j > 1.

ij

As integrais da equao 1.4 podem ser resolvidas utilizando as tabelas de integrais anexas, por meio da combinao dos diagramas de momentos fletores correspondentes (Figura1.8),resultando nas expresses:
L L L L j +1 1 j 1 j 1 j +1 + = + 3E 3 EI 3 EI I Ij j j +1 j +1

j, j

(1.5)

L 1 j = j , j 1 6 EI j L 1 j +1 = j + 1, j 6 EI j +1

(1.6)

(1.7)

Observaes: a) Para as vigas contnuas usuais, a parcela da deformao devida fora cortante desprezvel quando comparada com a parcela devida flexo. Em alguns casos particulares, como vigas de alturas elevadas ou vos muito pequenos, faz-se necessria uma avaliao mais precisa destas parcelas da deformao, para se chegar a concluses cabveis em cada situao. b) No caso de viga com extremidade engastada, o sistema principal adotado o indicado na Figura 1.9-b.

a)
1

Xj =1
1

L j ,Ij
j+1

Lj+1,Ij+1
j+2

Lj+2,Ij+2

nv

nv+1

Xj =1
j

Mj

b)
X j-1 =1
1 1

L j-1 j -1 j-1

, I

Lj , Ij
j+1 j+2

nv

nv+1

X j-1 =1

Mj-1
1

c)
Xj+1 =1
1 1

j-1

j+1

j+2

j+1

=1

Mj+1

FIGURA 1.8 - a) Diagrama de momento fletor devido aplicao do hiperesttico Xj=1 no Sistema Principal; b) Diagrama de momento fletor devido aplicao do hiperesttico Xj-1 = 1 no S. P. ; c) Diagrama de momento fletor devido aplicao do hiperesttico Xj+1 = 1 no S.P.

10

a) L ,I 2 2
2

L 1 ,I

b) X1

X2

c)
= 1 0

FIGURA 1.9 - a) Viga contnua com extremidade engastada; b) Sistema principal e c) Linha elstica

1.4 OBTENO DO VETOR DE TERMOS INDEPENDENTES

O vetor de termos independentes obtido utilizando as expresses definidas a seguir, representando as rotaes nas extremidades das barras consideradas birrotuladas:

qbc 2 = L b2 c2 / 4 A 6E I L

(1.8)

qac 2 L a 2 c2/4 = B 6E I L

(1.9)

11

c/2 A A q a L,I

c/2 B b B

FIGURA 1.10 - Viga simplesmente apoiada com carga uniforme atuando num trecho de comprimento c

pb 2 2 ; L b 6E I L (1.10)

pa 2 = L a2 B 6E I L
P A A a L ,I b B B

FIGURA 1.11 - Viga simplesmente apoiada com carga concentrada

ML 3EI
(1.11)

B
A

ML 6EI
M A B B

L,I

FIGURA 1.12 - Viga simplesmente apoiada com carga momento aplicada no apoio A

12

Captulo

ALGORITMOS PRINCIPAIS
2.1 - INTRODUO
Neste captulo, pretende-se estudar a seqncia de procedimentos para desenvolvimento de um programa computacional simples, que permita a anlise de esforos em vigas contnuas de seo transversal constante por tramo, utilizando o Mtodo da Flexibilidade. Tal formulao, embora no fornea nenhuma informao sobre o campo de deslocamentos, pode ser utilizada nos problemas em que o critrio dimensionante seja, sabidamente, os esforos solicitantes, ou mesmo para simples pr-dimensionamento. Alm disso, em razo da simplicidade da formulao, o desenvolvimento do programa correspondente pode ser bastante til para o aprendizado e contato inicial dos alunos de graduao, com os Mtodos Numricos aplicados Engenharia Civil. Um fluxograma, ou diagrama de blocos, pode ser definido como a seqncia de tarefas ou procedimentos realizados pelo programa, apresentada com recursos de diagramao grfica, que permitem uma avaliao rpida da inter-relao entre as diversas fases e tarefas. Num programa computacional de anlise estrutural tm-se, em geral, trs grandes fases: pr-processamento, processamento e psprocessamento. A fase de pr-processamento engloba as seguintes tarefas: -Leitura/Gerao/Checagem de Dados: gerais, dos materiais, da malha (coordenadas nodais e incidncia dos elementos) e dos carregamentos; - Definio de rea de memria, no caso de alocao dinmica da memria disponvel; - Reordenao da Numerao Nodal, visando minimizao do gasto de memria e de tempo de processamento para soluo do sistema de equaes; e - Traado Grfico da Malha da Estrutura. A fase de processamento propriamente dita contm as seguintes tarefas: - Montagem do Sistema de Equaes; - Soluo do Sistema; e

13

-Clculo de Valores Complementares: deslocamentos, deformaes, esforos solicitantes, tenses e reaes de apoios. A fase de ps-processamento compreende: - Impresso dos Resultados da Anlise; e - Traado Grfico dos Resultados da Anlise: deformadas e curvas de tenses. Para um programa de anlise de esforos de vigas contnuas pelo Mtodo da Flexibilidade, o fluxograma de tarefas bsicas pode ser definido como:
Incio Leitura/Impresso de Dados Montagem do Sistema de Equaes Soluo do Sistema Clculo de Valores Complementares Impresso de Resultados Fim

FIGURA 2.1 - Fluxograma bsico do programa principal para anlise de vigas contnuas pelo Mtodo da Flexibilidade

2.2 - ALGORITMOS PRINCIPAIS


Os algoritmos a seguir apresentados foram escritos em Portugol visando o emprego da linguagem Pascal, podendo, entretanto, ser facilmente utilizados para programao em outras linguagens. Assim sendo, os comandos so escritos em letras 'negrito', as variveis com ndice e os respectivos ndices em letras normais. J os escritos entre chaves referem-se aos comentrios, que podem ser mantidos nos programas.

14

2.2.1 - LEITURA / IMPRESSO DE DADOS

A - DADOS GERAIS - Dados iniciais:

LER E IMPRIMIR: NomeViga; {nome da viga (at 8 dgitos)} NS; {nmero de diferentes sees} NV; {nmero de vos} NMaxC; {nmero mximo de cargas por vo} E; {mdulo de elasticidade}
- Tipos de apoios nas extremidades da viga; {Opes: (b, balano; a, apoio simples; e, engaste)}

LER / IMP: Ae; {Tipo de apoio da esquerda: b, a ou e} SE Ae='b' Me; ENTO LER/IMP: da esquerda} LER / IMP: {Tipo de apoio da direita: b, a ou e} Ad; SE Ad='b' Md; ENTO LER/IMP da direita}
(A.1.a) - Unidades utilizadas:

{momento isosttico atuante no apoio

{momento isosttico atuante no apoio

LER / IMP: uf, uc; {unidades: uf de fora; uc de comprimento}


Observaes: 1) Os valores NV e NMaxC devem ser checados em relao aos valores utilizados no dimensionamento das variveis indexadas; 2) Com o nome da viga deve ser criado um arquivo para armazenamento de dados e resultados. B - DADOS GEOMTRICOS

15

SE

NS > 1

ENTO :

AT NV FAA: LER / IMP I; {Momento de inrcia} FIM do lao em i PARA i = 1 AT NV FAA: LER / IMP L(i); {comprimento do vo} FIM do lao em i
(A.1.b) C - DADOS DE CARGAS Para definio das cargas em cada vo necessrio definir o tipo de carga e, no caso de carga distribuda, o comprimento do trecho em que ela atua. C.1 - Opo 1 (apenas dois tipos de cargas: concentradas ou uniformemente distribudas): Neste caso a carga concentrada pode ser identificada pelo comprimento do trecho, definido igual a zero. Assim:

PARA i = 1

PARA

i = 1 AT NV FAA

LER/IMP Nc(i); {nmero de cargas ou trechos de carga do vo i} PARA j=1 AT Nc(i) FAA LER/IMP Vc(i,j), Lc(i,j); {valor e comprimento da carga j do vo i} FIM do lao em j FIM do lao em i
(A.1.c) Observaes: 1) Se Lc(i,j) = 0.0, indica carga concentrada; e

16

2)

Nc( i) Lc( i, j) = L( i) , a soma dos comprimentos dos trechos de j =1

carga deve ser igual ao comprimento do vo. C.2 - Opo 2 (vrios tipos de cargas): - Definio dos tipos de carga: carga concentrada, carga uniformemente distribuda, momento aplicado, carga triangular crescente, triangular decrescente, etc.

PARA i = 1 AT NV FAA LER/IMP Nc(i); PARA j=1 AT Nc(i) FAA LER/IMPTc(j,i), Vc(j,i), Lc(j,i); {tipo, valor e comprimento da carga} FIM do lao em j FIM do lao em i
(A.1.d)

2.2.2 - MONTAGEM DO SISTEMA DE EQUAES

A - Definies iniciais relativas ao sistema de equaes: [A]{X}={Y} em que: [A] = matriz de coeficientes conhecidos (Matriz de Flexibilidade [] do Captulo 1); {X} = vetor de incgnitas hiperestticas; {Y} = vetor independente de valores conhecidos formado pelas rotaes relativas no sistema principal devidas s cargas aplicadas (Vetor { o} do Captulo 2). (2.1)

- Determinao do nmero de incgnitas (NI):

17

NI=NV-1 SE Ae ='e' ENTO: SE Ad ='e' ENTO:

NI = NI + 1; NI = NI + 1;
(A.2.a)

B - Clculo dos coeficientes da matriz de Flexibilidade, utilizando o armazenamento integral da mesma: B.1 - Caso 1: Ae = 'e':
X1 L 1 , I1 X2 L 2 , I2
2 3

X3 L 3 , I3 L nv-1 , nv-1 I

X nv

X nv+1 L nv , I

nv

nv

nv +1

X1 L1 , I

X2 L2 , I
2

X3 L 3 , I 3 L nv-1 , I

X nv L nv , I
nv

nv-1

nv nv +1

FIGURA 2.2 - Vigas contnuas com engaste no apoio da esquerda

( L(1) ); 3E I(1) 1 L(NV) A(NV+1,NV+1) = ( ); 3E I(NV) SE NV > 1 FAA: PARA i = 2 AT NV FAA: 1 A(i,i) = ( L(i-1) + L(i)); 3E I(i-1) I(i) FIM do lao em i; A(1,1) = FIM se;

18

PARA i = 1 AT NV FAA: L(i) A(i,i+1) = 6 E I(i) ; FIM do lao em i;


B.2 - Caso 2: Ae
X1 L 1 , I1 L 2 , I2
2 3

(A.2.b) 'e':
X2 L 3 , I3 L nv-1 , I nv-1 X nv-1 X nv L nv , I
nv

nv

nv +1

X1 L 1 , I1 L 2 , I2
2

X2 L 3 , I3 L nv-1 , I nv-1

X nv-1 L nv , Inv

nv

nv +1

FIGURA 2.3 - Vigas contnuas com apoio simples no apoio da esquerda Considerando as definies anteriores, basta fazer:

SE Ae = e FAA: PARA i = 1 AT NI FAA: A(i,i) = A(i+1,i+1) A(i,i+1) = A(i+1,i+2); FIM do lao em i; FIM se;
(A.2.c) Observaes: 1) Para gerao da parte inferior da matriz de Flexibilidade:

19

PARA i = 2 AT NI FAA: A(i,i-1) = A(i-1,i); FIM do lao em i;


(A.2.d)

2) No caso de armazenamento da banda superior da matriz de Flexibilidade (elementos situados na diagonal principal ou acima dela), bastaria ter feito:

PARA i = 2 AT NV FAA: A(i,1) A(i,i);

FIM do lao em i; PARA i = 1 AT NI FAA: A(i,2) A(i,i+1);


(A.2.e) 3) Para melhor condicionamento numrico do sistema de equaes, pode-se fazer:

FIM do lao em i;

E = 1.0; PARA i = 1 AT NV FAA I(i)= I(i) / Imax FIM do lao em i;


(A.2.f) C - Algoritmo para clculo do vetor independente Y para designar { o}: C.1-Algoritmo bsico

{Imax = mximo de I(i)}

20

PARA

i = 1 AT (NV+1) FAA: {Inicializao do vetor Y }

Y(i) = 0.0; FIM do lao em i;

PARA i = 1 AT NV FAA: Lb = L(i); {Lb, parte do vo direita do centro da carga } {La, parte do vo esquerda do centro da carga } La = 0.0; AUX = 6.0 * E * I(i) * L(i); {AUX = valor auxiliar} PARA j = 1 AT Nc(i) FAA: SE Lc(i,j) = 0.0 ENTO: 2 2 Y(i) = Y(i) + (Vc(i,j) * Lb * (L (i)-Lb )) / AUX; 2 2 Y(i+1) = Y(i+1) + (Vc(i,j) * La * (L (i) - La )) / AUX; FIM SE; SE Lc(i,j) = 0.0 FAA: Lb = Lb - Lc(i,j) / 2.0; La = La + Lc(i,j) / 2.0; 2 2 2 Y(i) = Y(i) + (Vc(i,j) *Lc(i,j) * Lb * (L (i) - Lb - Lc(i,j) / 4.0)) / AUX; 2 2 2 Y(i+1) = Y(i+1) + (Vc(i,j) * Lc(i,j) * La * (L (i) - La - Lc(i,j) / 4.0)) / AUX; Lb = Lb - Lc(i,j) / 2.0; La = La + Lc(i,j) / 2.0; FIM SE; FIM do lao em j; FIM do lao em i; PARA i=1 AT Y(i) = - Y(i); FIM do lao em i; (NV+1) FAA:

(A.3.a) C.2) Caso 1: Ae 'e':

PARA i = 1 AT NI Y(i) = Y(i+1); FIMdo lao em i;

FAA:
(A.3.b)

C.3 ) Caso 2: Ae = 'b':

Y(1) = Y(1) - Me * L(1) / (6.0 * E * I(1)); {Me, momento isosttico no balano}


(A.3.c)

21

C.4) Caso 3: Ad = 'b':

Y(ni) = Y(ni) - Md * L(nv) / (6.0 * E * I(nv)); {Md, momento isosttico no balano}


(A.3.d)
2.2.3 SOLUO DO SISTEMA DE EQUAES PELO MTODO DE GAUSS

A - Matriz Cheia: A.1 - Fase 1 - Triangularizao da matriz e modificao do vetor independente:

PARA i = 1 AT (NI-1) FAA: PARA j = (i+1) AT NI FAA: s = A(i,j) / A(i,i); Y(j) = Y(j) - s * Y(i); PARA m = (i+1) AT NI FIM m; FIM j; FIM i;
(A.4.a) A.2 - Fase 2 - Retrosubstituio do vetor independente:

FAA:

A(j,m) = A(j,m) - s * A(i,m);

PARA i = NI AT 1 FAA: X(i) = Y(i) / A(i,i); PARA j = (i-1) AT 1 FAA: Y(j) = Y(j) - A(j,i) * X(i); FIM j; FIM i;
(A.4.b) Observao: Na realidade, o vetor X pode ocupar a mesma rea de memria do vetor Y.

22

B - Matriz em Banda, com Armazenamento da Parte Superior, sendo a semilargura de banda = 2:

{FASE 1} PARA i = 1 AT (NI-1) FAA: j = i + 1; s = A(i,2) / A(i,1); Y(j) = Y(j) - s * Y(i); A(j,1) = A(j,1) - s * A(i,2); FIM i; {FASE 2} PARA i = NI AT 2 FAA: X(i) = Y(i) / A(i,1); j = i - 1; Y(j) = Y(j) - A(j,2) * X(i); FIM i; Y(1) = Y(1) / A(1,1);
(A.4.c)

2.2.4 - CLCULOS DOS VALORES COMPLEMENTARES

A - Ordenao dos momentos nos apoios A.1 - Esquema:


Me X 1 X 2 X nv-1 Md

1 X = Me 1

2 X =X 2 1

3 X =X 3 2

nv X nv = Xnv-1

nv+1 X nv+1 = Md

FIGURA 2.4 - Ordenao dos momentos nos apoios

A.2 - Algoritmo:

23

SE Ae = 'e' ENTO FAA: Xa1 = X(1); X(1) = Me; PARA i = 2 AT (NI+1) FAA: Xa2 = X(i); X(i) = Xa1; Xa1 = Xa2; FIM i; FIM SE; SE Ad = 'e' ENTO FAA: X(nv+1) = Md; FIM SE
B - Clculo dos cortantes nos apoios: B.1 - Esquema:
Xi
i

(A.5.a)

Xj

Qd i

Qj

Q Xi
i

0,d i

0,e j

Xj
j

Q ij

Qd =Q i

0,d i

+ Q ij

Q ij

- Q ij Q je = Q 0,e j Q ij = (X j -X ) / L i
i

FIGURA 2.5 - Esforos cortantes nos apoios B.2 - Algoritmo:

24

{Clculo dos cortantes no Sistema Principal} { Q(i,1), cortante esquerda do apoio i} { Q(i,2), cortante direita do apoio i} PARA i = 1 AT (NV+1) FAA: PARA j = 1 AT 2 FAA: Q(i,j) = 0.0; FIM j; FIM i; {Inicializao da matriz Q [(nv+1) x 2]

PARA i = 1 AT NV FAA: Lb = L(i); La = 0.0; PARA j = 1 AT Nc(i) FAA: SE Lc(i,j) = 0.0 ENTO FAA: Q(i,2) = Q(i,2) + Vc(i,j) * Lb / L(i); Q(i+1,1) = Q(i+1,1) + Vc(i,j) * La / L(i); FIM SE; SE Lc(i,j) = 0.0 ENTO FAA: Lb = Lb - Lc(i,j) / 2.0; La = La + Lc(i,j) / 2.0; Q(i,2) = Q(i,2) + Vc(i,j) * Lb*Lc(i,j) / L(i); Q(i+1,1) = Q(i+1,1) + Vc(i,j) * La*Lc(i,j) / L(i); Lb = Lb - Lc(i,j) / 2.0; La = La + Lc(i,j) / 2.0; FIM SE; FIM j; FIM i; {Clculo dos cortantes finais nos apoios} PARA i = 1 AT NV FAA: DQ =(X(i) - X(i+1)) / L(i); Q(i,2) = Q(i,2) - DQ; Q(i+1,1) = Q(i+1,1) + DQ; FIM i; PARA i = 2 AT(NV+1) FAA: Q(i,1) = - Q(i,1); FIM i;

(A.5.b)

25

Observaes: 1) Pode-se utilizar a rea da matriz do sistema para armazenamento da matriz Q ou calcular os cortantes no sistema principal junto com o vetor independente. 2) Pode ser de interesse, principalmente no caso de vigas de concreto armado de maiores dimenses, obter os esforos solicitantes (momento fletor e esforo cortante) em outras sees pr-definidas, por exemplo dcimos de vos ou incio e fim dos trechos de carga, que permitem o fcil traado dos respectivos diagramas. C - Clculo do momento positivo mximo no vo: C.1 - Esquema

X i i d Qi d Q i

Li

j Q e j

m(i)

e j

M V,MX (i)

x -

dM =Q=O dx

FIGURA 2.6 - Momento mximo no vo

C.2 - Algoritmo:

26

{Clculo dos momentos positivos mximos nos vos} PARA i = 1 AT NV FAA: SE Q(i,2) > 0.0 ENTO FAA: Qa=Q(i,2); Xm(i) = 0.0; {Coordenada do momento mximo no vo} j = 0; REPETIR AT j = Nc(i) ou Qa 0.0; j = j+1; SE Lc(i,j) = 0.0 ENTO FAA: SE Qa - Vc(i,j) > 0.0 ENTO FAA: Qa = Qa - Vc(i,j); SE Qa - Vc(i,j) <= 0.0 ENTO FAA: Qa = 0.0; FIM SE; SE Lc(i,j) > 0.0 ENTO FAA: SE Qa - Vc(i,j) * Lc(i,j) > 0.0 ENTO FAA: Qa = Qa - Vc(i,j) * Lc(i,j); Xm(i) = Xm(i) + Lc(i,j); FIM SE; SE Qa - Vc(i,j) * Lc(i,j) <= 0.0ENTO FAA: Xm(i) = Xm(i) + Qa / Vc(i,j); Qa = 0.0; FIM SE; FIM SE; FIM REPETIR; SE Qa 0.0 ENTO FAA: Mv(i) = X(i) + Q(i,2) * Xm(i); Lx = Xm(i); PARA k =1 AT (j-i) FAA: SE Lc(i,k) = 0.0 ENTO FAA: Mv(i) = Mv(i) - Vc(i,k) * Lx; SE Lc(i,k) > 0.0 ENTO FAA: Mv(i) = Mv(i) - Vc(i,k) * Lc(i,k) * (Lx - Lc(i,k) / 2.0); Lx = Lx - Lc(i,k); FIM SE; FIM k; SE Lc(i,j) > 0.0 ENTO FAA: Mv(i) = Mv(i) - Vc(i,j) * Lx * Lx/2; FIM SE; FIM SE; FIM i;

27

2.2.5 IMPRESSO DOS RESULTADOS

A - Imprimir os esforos nos apoios e a posio e o valor do momento mximo, nos vos:

IMPRIMIR: VO(i) X(i) X(i+1) Xm(i)

Mv(i) Qd(i) Qe(i+1);

max

PARA i = 1 AT NV FAA: max IMPRIMIR:VO(i), X(i), X(i+1), Xm(i), Mv(i), Q(i,2), Q(i+1,1); FIM i; (A.6)

2.2.6 REAS DE MEMRIA PARA AS VARIVEIS INDEXADAS

A - Definies iniciais: . NVMax, nmero mximo de vos; . NIMax, nmero mximo de incgnitas ( NVMax + 1); . NCMax, nmero mximo de cargas por vo; B - Vetores de valores reais: .{L} = L(i), i = 1 ### NVMax; .{I} = I(i), i = 1 ### NVMax; .{Y} = {X} = X(i), i = 1### NIMax; .{Xm} = Xm(i), i = 1 ### NVMax; .{Mvmax} = Mvmax(i), i = 1 ### NVMax; C - Vetores de valores inteiros: .{NC} = NC(i), i = 1### NVMax; D - Matrizes de valores reais: .[Lc] = Lc(i,j), i = 1 ### NVMax, j = 1 ### NCMax; .[Vc] = Vc(i,j), i = 1### NVMax, j = 1 ### NCMax; .[A] = [###] = ###(i,j), i = 1 ### NIMax, j = 1### 2. Observao: Como j referido anteriormente, o vetor X pode ocupar a mesma rea de memria do vetor Y. Igualmente, a matriz Q pode ocupar a mesma rea de memria da matriz ###.

28

Captulo

EXEMPLOS DE APLICAO

3.1 INTRODUO
Neste captulo sero apresentados alguns exemplos de aplicao do programa desenvolvido em linguagem Pascal, denominado VigaCont, cuja listagem encontra-se no Apndice (A.2). A eficincia do VigaCont, bem como a simplicidade na entrada de dados, podem ser avaliadas pelos exemplos a seguir, em que so calculadas vigas apoiadas, engastadas e em balano, para diversos vos e carregamentos. A entrada de dados e os resultados obtidos esto impressos em cada exemplo. Para interpretar melhor os resultados, so traados os diagramas de esforos solicitantes.

3.2 VIGA DE DOIS VOS COM BALANO DIREITA

40KN

10KN/M 3m 2

12KN

17KN/M

2m

1m

4,5m

1,5m

Seo transversal : 20 x 50 cm

2 Mdulo de Elasticidade (E) : 210000 KN/cm

29

47,73 27,73 + 12,27 42,27 54,27

48,58 + 25,5 + 27,92 DEC (KN)

64,27

65,61

19,13 6,34 3,80 DMF (KN.m)

75,46

**** PROVIGAS **** ** Dados da Viga ** vg1 1 2 5 1 210000.0000 ab 0.0000000000E+00-1.9125000000E+01 kn m 0.0021 6.0000 4.5000 5 10.00 2.00 40.00 0.00 10.00 3.00 12.00 1 17.00 4.50 ** Resultados Parciais **

0.00 10.00

1.00

30

Matriz de Flexibilidade da Viga A[1,1]= 1680.2688 Vetor Independente Y[ 1]=-110248.4731 Soluo do Sistema Y[ 1]= -65.6136 Momentos nos Apoios Y[ 1]= 0.0000 Y[ 2]= -65.6136 Y[ 3]= -19.1250 ** Resultados da Analise da Viga ** Nome da Viga : vg1 NS = 1 Nv = 2 Vo(i) X,e X,d Mv(i) Xm(i) Q(i),e Q(i),d 1 .0000 -65.6136 75.4621 2.0000 47.7311 -64.2689 2 -65.6136 -19.1250 3.8009 2.8577 48.5808 -27.9192 Valores dos Momentos nos Pontos Finais dos Trechos de Carga vo( 1) Xm( 1) Mom( 1) Xm( 2) Mom( 2) 2.0000 75.4621 2.0000 75.4621 Xm( 3) Mom( 3) Xm( 4) Mom( 4) 5.0000 -6.3447 5.0000 -6.3447 Valores dos Cortantes nos Pontos Finais dos Trechos de Carga vo( 1) Xq( 1) Cort( 1) Xq( 2) Cort( 2) Xq( 3) 2.0000 27.7311 2.0000 -12.2689 5.0000 Cort( 3) Xq( 4) Cort( 4) -42.2689 5.0000 -54.2689

3.3 VIGA DE DOIS VOS SOBRE APOIOS SIMPLES

31

9KN/M 3,0m

37KN

17KN/M 4,35m

1,25m

2 Mdulo de Elasticidade [E]:210000 KN/cm 47,12 19,62 7,38 44,38 DEC (KN) 26,83 55,63 44,14 DMF (KN.m) 18,36 21,39 21,17

2 Seo transversal:20x40 cm

**** PROVIGAS **** ** Dados da Viga ** vg2 1 2 3 1 210000.0000 aa 0.0000000000E+00 0.0000000000E+00 kn m 0.0011 4.2500 4.3500 3 9.00 3.00 37.00 0.00 9.00 1.25 1 17.00 4.35

32

** Resultados Parciais ** Matriz de Flexibilidade da Viga A[1,1]= 2686.6604 Vetor Independente Y[ 1]=-118594.7441 Soluo do Sistema Y[ 1]= -44.1421 Momentos nos Apoios Y[ 1]= 0.0000 Y[ 2]= -44.1421 Y[ 3]= ** Resultados da Analise da Viga ** Nome da Viga : vg2 NS = 1 Nv = 2 Vo(i) X,e X,d Mv(i) Xm(i) Q(i),e Q(i),d 1 .0000 -44.1421 21.3879 2.1801 19.6210 -55.6290 2 -44.1421 0.0000 21.1679 2.7719 47.1226 -26.8274 Valores dos Momentos nos Pontos Finais dos Trechos de Carga vo( 1) Xm( 1) Mom( 1) Xm( 2) Mom( 2) 3.0000 18.3630 3.0000 18.3630 Valores dos Cortantes nos Pontos Finais dos Trechos de Carga vo( 1) Xq( 1) Cort( 1) Xq( 2) Cort( 2) 3.0000 -7.3790 3.0000 -44.3790 0.0000

3.4 VIGA DE TRS VOS SOBRE APOIOS SIMPLES

33

13,2KN/M 2,0m 2,4m

18KN/M

13,2KN/M 4,1m

2,0m

2 Mdulo de Elasticidade (E) : 210000 KN/cm

2 Seo transversal : 20 x 4 0cm

28,67

33,99

4,59 21,81

+ 3,01 -

+ DEC (KN) 20,12

39,01

28,43 17,2 DMF (KN.m) 0,80 13,93 15,34

**** PROVIGAS **** ** Dados da Viga ** vg3 1 3 2 1 210000.0000 aa 0.0000000000E+00 0.0000000000E+00 kn m 0.0011

34

2.0000 4.4000 4.1000 1 13.20 2.00 2 13.20 2.40 18.00 2.00 1 13.20 4.10 ** Resultados Parciais ** Matriz de Flexibilidade da Viga A[ 1,1]= 1999.3752 A[ 1,2]= 687.2852 A[ 2,1]= 2655.4202 Vetor Independente Y[ 1]=-53949.3227 Y[ 2]=-87314.9229 Soluo do Sistema Y[ 1]= -17.2113 Y[ 2]= -28.4271 Momentos nos Apoios Y[ 1]= 0.0000 Y[ 2]= -17.2113 Y[ 3]= -28.4271 Y[ 4]= ** Resultados da Analise da Viga ** Nome da Viga : vg3 NS = 1 Nv = 3 Vo(i) X,e X,d Mv(i) Xm(i) Q(i),e Q(i),d 1 0.0000 -17.2113 0.7996 0.3481 4.5944 -21.8056 2 -17.2113 -28.4271 13.9299 2.1722 28.6728 -39.0072 3 -28.4271 0.0000 15.3439 2.5753 33.9934 -20.12 Valores dos Momentos nos Pontos Finais dos Trechos de Carga vo( 2) Xm( 1) Mom( 1) 2.4000 13.5874 Valores dos Cortantes nos Pontos Finais dos Trechos de Carga vo( 2) Xq( 1) Cort( 1) 2.4000 -3.0072 0.0000

3.5

VIGA DE CINCO VOS COM BALANO DIREITA

35

40KN

12KN/M

100KN

10KN/M

1,5m 5m 5m

1,60m 4,3m

4m

2,2m

1,2m

2 Seo transversal : 20 x 50cm 2 Mdulo de Elasticidade (E) : 210000 KN/cm 84,87 50,15 + 32,15 28,31 + 7,85 49,85 31,68 31,13 58,13 47,67 39,23 5,83 4,4 45,16 7,2 0,8 3,5 DMF (KN.m) + 31,49 + 7,37 8,51 14,64 12,00 DEC (KN) 68,87

61,73 75,33

**** PROVIGAS **** ** Dados da Viga ** vg4 1 5 3 1 210000.0000 ab 0.0000000000E+00-7.2000000000E+00 kn m 0.0021 5.0000 5.0000 4.3000 4.0000 2.2000 3 12.00 1.50 40.00 0.00 12.00 3.50

36

1 12.00 3 10.00 1 10.00 1 10.00

5.00 1.60 100.00 4.00 2.20

0.00 10.00

2.70

** Resultados Parciais ** Matriz de Flexibilidade da Viga A[ 1,1]= 1600.2560 A[ 1,2]= 400.0640 A[ 2,1]= 1488.2381 A[ 2,2]= 344.0550 A[ 3,1]= 1328.2125 A[ 3,2]= 320.0512 A[ 4,1]= 992.1587 Vetor Independente Y[ 1]=-81853.0965 Y[ 2]=-102178.2136 Y[ 3]=-76133.1162 Y[ 4]=13664.5863 Soluo do Sistema Y[ 1]= -39.2326 Y[ 2]= -47.6697 Y[ 3]= -45.1637 Y[ 4]= 0.7964

Momentos nos Apoios Y[ 1]= 0.0000 Y[ 2]= -39.2326 Y[ 3]= -47.6697 Y[ 4]= -45.1637 Y[ 5]= 0.7964 Y[ 6]= -7.2000 ** Resultados da Analise da Viga ** Nome da Viga : vg4 NS = 1 Nv = 5 Vo(i) X,e X,d Mv(i) Xm(i) Q(i),e Q(i),d 1 0.0000 -39.2326 61.7302 1.5000 50.1535 -49.8465 2 -39.2326 -47.6697 -5.8325 2.3594 28.3126 -31.6874 3 -47.6697 -45.17 75.3279 1.6000 84.8735 -58.1265 4 -45.1637 0.7964 4.4173 3.1490 31.4900 -8.5100 5 0.7964 -7.2000 3.5087 0.7365 7.3653 -14.6347 Valores dos Momentos nos Pontos Finais dos Trechos de Carga vo( 1) Xm( 1) Mom( 1) Xm( 2) Mom( 2) 1.5000 61.7302 1.5000 61.7302 vo( 3) Xm( 1) Mom( 1) Xm( 2) Mom( 2) 1.6000 75.3279 1.6000 75.3279 Valores dos Cortantes nos Pontos Finais dos Trechos de Carga

37

vo( 1)

Xq( 1) 1.5000

Cort( 1) Xq( 2) Cort( 2) 32.1535 1.5000 -7.8465 Xq( 2) Cort( 2) 1.6000 -31.1265

vo( 3)

Xq( 1) Cort( 1) 1.6000 68.8735

3.6 VIGA DE TRS VOS COM ENGASTE DIREITA

38

30 KN/M

8m

6m

8m

2 Seo transversal : 20 x 50 cm 2 Mdulo de Elasticidade (E) : 210000 KN/cm

98,42

101,38

109,56

+ -

+ 78,62 130,44 DEC (KN)

141,58

187,83 172,64 104,34 1,33 DMF (KN.m) 95,73 161,44

***

* PROVIGAS **** ** Dados da Viga ** vg5 1 3 1 1 210000.0000

39

ae 0.0000000000E+00 0.0000000000E+00 kn m 0.0036 8.0000 6.0000 8.0000 1 30.00 8.00 1 30.00 6.00 1 30.00 8.00 ** Resultados Parciais ** Matriz de Flexibilidade da Viga A[ 1,1]= 1296.2963 A[ 1,2]= 277.7778 A[ 2,1]= 1296.2963 A[ 2,2]= 370.3704 A[ 3,1]= 740.7407 Vetor Independente Y[ 1]=-252777.7778 Y[ 2]=-252777.7778 Y[ 3]=-177777.7778 Soluo do Sistema Y[ 1]= -172.6415 Y[ 2]= -104.3396 Y[ 3]= -187.8302 Momentos nos Apoios Y[ 1]= 0.0000 Y[ 2]= -172.6415 Y[ 3]= -104.3396 Y[ 4]= 187.8302 ** Resultados da Analise da Viga ** Nome da Viga : vg5 NS = 1 Nv = 3 Vo(i) X,e X,d Mv(i) 1 0.0000 -172.6415 161.4410 2 -172.6415 -104.3396 -1.3308 3 -104.3396 -187.8302 95.7304 Xm(i) 3.2807 3.3795 3.6521 Q(i),e Q(i),d 98.4198 -141.5802 101.3836 -78.6164 109.5637 -130.4363

Valores dos Momentos nos Pontos Finais dos Trechos de Carga Valores dos Cortantes nos Pontos Finais dos Trechos de Carga

40

Apndice

A2

LISTAGEM DO PROGRAMA VigaCont


Program VigaCont(imput, output); { Programa para Analise de Esforos em Viga Continua pelo Mtodo das Forcas } uses crt; const NVMax = 10; { Numero mximo de vos } NIMax = 11; { Numero mximo de incgnitas } NCMax = 10; { Numero mximo de cargas por vo } NSMax = 9; { Numero mximo de sees internas para analise} var L,Iz,Xm,Mv : array [1..NVMax] of real; Y : array [1..NIMax] of real; NC : array [1..NVMax] of integer; Lc,Vc,Mom,Cort : array [1..NCMax,1..NVMax] of real; Q,A : array [1..NIMax,1..2] of real; i,j,k,m : integer; viga1,viga2 : text; respd,respr,ch,Ae,Ad : char; nomeviga : string[12]; vigadat,vigares : string[12]; NI,NS,Nv,NMaxC : integer; Ea,La,Lb,EE,E,Qa : real; Me,Md,Aux,S : real; Uf,Uc : string[3]; Lx,DQ,QQ,Xa1,Xa2 : real; NDiv,NSA,is,ic : integer; Delta,DX,LTX,LXA,LTC,LTCA,Qesq,Mesq : real; Ms : array [1..NSMax,1..NVMax] of real; Qs : array [1..2,1..NSMax,1..NVMax] of real; Procedure Inicializao; { Inicializao das variveis indexadas} begin for i:=1 to NIMax do Y[i]:=0; for i:=1 to NVMax do Xm[i]:=0;

41

for i:=1 to NVMax do Mv[i]:=0; for j:=1 to 2 do for i:=1 to NIMax do Q[i,j]:=0; for j:=1 to 2 do for i:=1 to NIMax do A[i,j]:=0; for j:=1 to 2 do for is :=1 to NSMax do for i:= 1 to NVMax do Qs[j,is,i] := 0.0; end; Procedure Leitdados; { Leitura dos Dados } begin readln(viga1,nomeviga); readln(viga1,NS,Nv,NMaxC,NDiv,E); { Dados gerais da viga: NS = num.de diferentes sees; Nv = num.de vos NMaxC = num.mximo de cargas por vo; NDiv = num. de divises do vo; modulo de elasticidade (opcional) } readln(viga1,Ae,Ad); { Tipo de apoio da esquerda e direita: a - apoio simples; b - balano; e - engaste } readln(viga1,Me,Md); { Momento no apoio a esquerda e no apoio a direita } readln(viga1,Uf,Uc); { Unidades: Uf,fora ; Uc,comprimento } if NS > 1 then begin for i:= 1 to Nv do read(viga1,Iz[i]); readln(viga1); end else begin readln(viga1,Iz[1]); for i:= 1 to Nv do Iz[i]:=Iz[1]; end; { Iz(i) = momento de inrcia do vo i } for i:= 1 to Nv do read(viga1,L[i]); readln(viga1);

42

{ L(i) = comprimento do vo i } for i:= 1 to Nv do begin read(viga1,Nc[i]); for j:= 1 to Nc[i] do read(viga1,Vc[j,i],Lc[j,i]); readln(viga1); end; if (respd = 's') or (respd = 'S') then begin writeln(viga2); writeln(viga2,' **** PROVIGAS ****'); writeln(viga2); writeln(viga2,' ** Dados da Viga ** '); writeln(viga2); writeln(viga2,nomeviga); writeln(viga2,NS,' ',Nv,' ',NMaxC,' ',NDiv,' ',E:10:4); writeln(viga2,Ae,Ad); writeln(viga2,Me,Md); writeln(viga2,Uf,Uc); if NS > 1 then begin for i:= 1 to Nv do write(viga2,Iz[i]:10:4); writeln(viga2); end else writeln(viga2,Iz[1]:10:4); for i:= 1 to Nv do write(viga2,L[i]:10:4); writeln(viga2); for i:= 1 to Nv do begin write(viga2,Nc[i]); for j:= 1 to Nc[i] do write(viga2,Vc[j,i]:6:2,' ',Lc[j,i]:6:2,' '); writeln(viga2); end; end; { Leitura do Carregamento de cada Vo: Nc(i), numero de trechos de cargas no vo i; Lc(j,i), comprimento do trecho de carga j do vo i; Vc(j,i), valor da carga do trecho j do vo i; Se Lc(j,i) = 0 ==> carga j concentrada } end; Procedure MontSist; {Montagem do Sistema de Equaes }

43

var i : integer; Izmax : real; begin { Modificaes pra melhorar o condicionamento numrico do sistema} Ea := 1.0; { Calculo do numero de incgnitas} NI := Nv - 1; if Ae = 'e' then NI := NI + 1; if Ad = 'e' then NI := NI + 1; if NI > Nv then Iz[NI] := Iz[Nv]; { Calculo dos coeficientes da Matriz, com Armazenamento da parte superior} A[1,1] := L[1] / (3.0 * Ea * Iz[1]); A[Nv + 1, 1] := L[Nv] / (3.0 * Ea * Iz[Nv]); if Nv > 1 then for i := 2 to Nv do A[i,1] := (L[i-1]/Iz[i-1] + L[i]/Iz[i]) / (3.0 * Ea); for i := 1 to NI do A[i,2] := L[i] / (6.0 * Ea * Iz[i]); if Ae <> 'e' then for i := 1 to NI do begin A[i,1] := A[i+1,1]; A[i,2] := A[i+1,2]; end; { Impresso parcial dos resultados } if ((respr = 's') or (respr = 'S')) then begin writeln(viga2); writeln(viga2,' ** Resultados Parciais ** '); writeln(viga2); writeln(viga2,'Matriz de Flexibilidade da Viga'); if NI = 1 then writeln(viga2,' A[1,1]=', A[i,1]:10:4) else begin for i:=1 to (NI-1) do writeln(viga2,' A[',i:2,',1]=', A[i,1]:10:4,' A[',i:2,',2]=',A[i,2]:10:4); writeln(viga2,' A[',NI:2,',1]=', A[NI,1]:10:4); end; end; end; Procedure CalcVetInd; { Calculo do Vetor Independente} var i,j : integer;

44

Lb, La, aux : real; begin for i := 1 to (Nv + 1) do Y[i] := 0.0; for i := 1 to Nv do begin Lb := L[i]; La := 0.0; aux := 6.0 * Ea * Iz[i] * L[i]; for j := 1 to Nc[i] do begin if Lc[j,i] = 0.0 then begin Y[i] := Y[i] + (Vc[j,i] * Lb * (L[i]*L[i] - Lb*Lb)) / aux; Y[i+1] := Y[i+1] + (Vc[j,i] * La * (L[i]*L[i] - La * La )) / aux; end else begin Lb := Lb - Lc[j,i] / 2.0; La := La + Lc[j,i] / 2.0; Y[i] := Y[i] + (Vc[j,i] * Lc[j,i] * Lb * (L[i]*L[i] - Lb*Lb Lc[j,i]*Lc[j,i]/4.0)) / aux; Y[i+1] := Y[i+1] + (Vc[j,i]*Lc[j,i]*La*(L[i]*L[i] - La*La Lc[j,i]*Lc[j,i]/4.0)) / aux; Lb := Lb - Lc[j,i] / 2.0; La := La + Lc[j,i] / 2.0; end; end; end; for i := 1 to (Nv + 1) do Y[i] := - Y[i]; if Ae <> 'e' then for i:= 1 to NI do Y[i] := Y[i+1]; if Ae = 'b' then Y[1] := Y[1] - Me * L[1] / (6.0 * Ea * Iz[1]); if Ad = 'b' then Y[NI] := Y[NI] - Md * L[Nv] / (6.0 * Ea * Iz[Nv]); { Impresso parcial dos resultados } if ((respr = 's') or (respr = 'S')) then begin writeln(viga2); writeln(viga2,'Vetor Independente'); i := 1; Repeat begin for j:= i to (i+6) do if j <= NI then write(viga2,' Y[',j:2,']=',Y[j]:10:4); writeln(viga2); i := j; end; Until i >= NI;

45

end; end; Procedure SolSist; { Soluo do Sistema de Equaes} var i,j : integer; s : real ; begin {Fase de triangularizao da matriz e modificao do vetor independente} for i := 1 to (NI - 1) do begin j := i + 1; s := A[i,2] / A[i,1]; Y[j] := Y[j] - s * Y[i]; A[j,1] := A[j,1] - s * A[i,2]; end; { Fase de retrosubstituio do vetor independente } for i:=NI downto 2 do begin Y[i] := Y[i] / A[i,1]; j := (i-1); Y[j] := Y[j] - A[j,2] * Y[i]; end; Y[1]:= Y[1] /A[1,1]; { Impresso parcial dos resultados } if ((respr = 's') or (respr = 'S')) then begin writeln(viga2); writeln(viga2,Soluo do Sistema'); i := 1; Repeat begin for j:= i to (i+6) do if j <= NI then write(viga2,' Y[',j:2,']=',Y[j]:10:4); writeln(viga2); i := j; end; Until i >= NI; end; end; Procedure Ordincog; { Ordenao das incgnitas } var

46

i,j : integer; Ya1, Ya2 : real; begin if Ae <> 'e' then begin Ya1 := Y[1]; Y[1] := Me; for i:= 2 to (NI + 1) do begin Ya2 := Y[i]; Y[i]:=Ya1; Ya1:= Ya2 end; end; if Ad <> 'e' then Y[Nv + 1] := Md; { Impresso parcial dos resultados } if ((respr = 's') or (respr = 'S')) then begin writeln(viga2); writeln(viga2,'Momentos nos Apoios'); i := 1; Repeat begin for j:= i to (i+6) do if j <= (Nv+1) then write(viga2,' Y[',j:2,']=',Y[j]:10:4); writeln(viga2); i := j; end; Until i >= (Nv+1); end; end; Procedure Cortantes; { Calculo dos Cortantes nos Apoios } begin { Q(i,1) = Cortante a esquerda do apoio de ordem i Q(i,2) = Cortante a direita do apoio de ordem i } for i:= 1 to (NV) do begin { Calculo dos cortantes iniciais (isostticos) } Lb:=L[i]; { Lb = parte do vo a direita da carga } La:=0; { La = parte do vo a esquerda da carga } for j:= 1 to NC[i] do begin if LC[j,i] = 0 then

47

begin Q[i,2]:= Q[i,2] + VC[j,i] * Lb / L[i]; Q[i+1,1]:= Q[i+1,1] + VC[j,i] * La / L[i]; end else begin Lb:= Lb - LC[j,i] / 2; La:= La + LC[j,i] / 2; Q[i,2]:= Q[i,2] + VC[j,i] * Lb * LC[j,i] / L[i]; Q[i+1,1]:= Q[i+1,1] + VC[j,i] * La * LC[j,i] / L[i]; Lb:= Lb - LC[j,i] / 2; La:= La + LC[j,i] / 2; end; end; end; { Calculo dos cortantes finais nos apoios } for i:= 1 to NV do begin DQ:= (Y[i] - Y[i+1]) / L[i]; Q[i,2] := Q[i,2] - DQ; Q[i+1,1]:= Q[i+1,1] + DQ; end; for i:= 2 to (nv+1) do Q[i,1]:= - Q[i,1]; end; Procedure Momentos; { Calculo dos Momentos Positivos Mximos nos vos } begin for i:= 1 to NV do begin if Q[i,2] > 0 then begin QQ:= Q[i,2]; Xm[i]:=0; j:=0; repeat j:=j+1; if LC[j,i]=0 then begin if QQ-VC[j,i]>0 then QQ:=QQ-VC[j,i] else QQ :=0; end; if LC[j,i] > 0 then begin if QQ - VC[j,i] * LC[j,i] > 0 then

48

begin QQ:= QQ - VC[j,i] * LC[j,i]; Xm[i]:= Xm[i] + LC[j,i]; end else begin Xm[i]:= Xm[i] + QQ / VC[j,i]; QQ:= 0; end; end; until (j = NC[i]) or ((QQ <= 0.01) and (QQ >= -0.01)); if (QQ <= 0.01) and (QQ >= -0.01) {=0} then begin Mv[i]:= Y[i] + Q[i,2]*Xm[i]; Lx:= Xm[i]; for k:= 1 to (j-1) do begin if LC[k,i] = 0 then Mv[i]:= Mv[i] - VC[k,i] * Lx; if LC[k,i] > 0 then begin Mv[i]:= Mv[i] - VC[k,i] * LC[k,i] * (Lx - LC[k,i]/2); Lx:= Lx - LC[k,i]; end; end; if LC[j,i] > 0 then Mv[i]:= Mv[i] - VC[j,i] * sqr(Lx) / 2; end; end; end; end; Procedure Esforos; { Calculo dos Momentos nos Trechos de Cargas } begin for i:=1 to NV do begin Lx := 0.0; if Nc[i] > 1 then begin for j := 1 to (Nc[i]-1) do if LC[j,i] > 0 then begin Lx := Lx + Lc[j,i]; Mom[j,i]:= Y[i] + Q[i,2] * Lx; for k:= 1 to (j-1) do begin

49

if LC[k,i] = 0 then Mom[j,i]:= Mom[j,i] - VC[k,i] * Lx; if LC[k,i] > 0 then begin Mom[j,i]:= Mom[j,i] - VC[k,i] * LC[k,i] * (Lx - LC[k,i]/2); Lx:= Lx - LC[k,i]; end; end; Mom[j,i]:= Mom[j,i] - VC[j,i] * sqr(Lx) / 2; end else if j > 1 then Mom[j,i]:= Mom[j-1,i]; end; end; { Calculo dos Cortantes nos Trechos de Cargas } for i:=1 to NV do if Nc[i] > 1 then begin Qa := Q[i,2]; for j := 1 to (Nc[i]-1) do begin if LC[j,i] = 0 then Qa := Qa - VC[j,i]; if LC[j,i] > 0 then Qa := Qa - VC[j,i] * LC[j,i]; Cort[j,i] := Qa; end; end; end; Procedure Sees; begin if NDiv > 1 then begin NSA := NDiv - 1; for i:=1 to Nv do begin DX := L[i]/NDiv; Delta := DX/(1000.0*L[i]); LTX := Delta; for is:= 1 to NSA do begin LTC := 0.0; LTX := LTX + DX; ic := 0; repeat ic := ic+1; LTC := LTC + Lc[ic,i];

50

until LTC > LTX; LTCA := LTC - Lc[ic,i]; LXA := LTX-LTCA; if ic = 1 then begin Qesq := Q[i,2]; Mesq := Y[i]; end else begin Qesq := Cort[ic-1,i]; Mesq := Mom[ic-1,i]; end; if LXA > 2 * Delta then begin Qs[2,is,i] := Qesq - Vc[ic,i]*LXA; MS[is,i] := Mesq + Qesq * LXA - Vc[ic,i]*LXA*LXA/2; end else begin Qs[2,is,i] := Qesq ; MS[is,i] := Mesq ; if Lc[ic-1,i] = 0.0 then Qs[1,is,i] := Qesq + Vc[ic-1,i]; end; end; end; end; end; Procedure ImpresResult; { Impresso de Resultados } begin writeln(viga2); writeln(viga2); writeln(viga2,' ** Resultados da Analise da Viga **'); writeln(viga2); writeln(viga2,'Nome da Viga : ',nomeviga); writeln(viga2,'NS =',NS:2,' Nv =',Nv:2); writeln(viga2); writeln(viga2,Vo(i) X,e X,d Mv(i) Xm(i) Q(i),e Q(i),d'); for i := 1 to NV do writeln(viga2,i:5,' ',Y[i]:11:4,' ',Y[i+1]:11:4,' ',Mv[i]:11:4,' ',Xm[i]:11:4,' ',Q[i,2]:11:4,' ',Q[i+1,1]:11:4); writeln(viga2);

51

writeln(viga2,' Valores dos Momentos nos Pontos Finais dos Trechos de Carga'); for i := 1 to NV do if Nc[i] > 1 then begin write(viga2,' vo(',i:2,') '); for j:= 1 to (NC[i]-1) do write(viga2,' Xm(',j:2,')',' Mom(',j:2,')'); writeln(viga2); write(viga2,' '); La := 0.0; for j := 1 to (NC[i]-1) do begin La := La + Lc[j,i]; write(viga2,La:12:4,' ',Mom[j,i]:12:4); end; writeln(viga2);writeln(viga2); end; writeln(viga2,' Valores dos Cortantes nos Pontos Finais dos Trechos de Carga'); for i := 1 to NV do if Nc[i] > 1 then begin write(viga2,' vo(',i:2,') '); for j:= 1 to (NC[i]-1) do write(viga2,' Xq(',j:2,')',' Cort(',j:2,')'); writeln(viga2); write(viga2,' '); La := 0.0; for j := 1 to (NC[i]-1) do begin La := La + Lc[j,i]; write(viga2,La:12:4,' ',Cort[j,i]:12:4); end; writeln(viga2);writeln(viga2); end; if NDiv > 1 then begin writeln(viga2,' Valores dos Momentos/Cortantes nas Sees Internas'); writeln(viga2); for i := 1 to Nv do begin k := 1; Repeat begin write(viga2,' vo(',i:2,') '); for j:= k to (k+3) do if j <= NSA then write(viga2,' M/Q ou M/Qe/Qd S',j:1,' ');

52

writeln(viga2); write(viga2,' '); for j := k to (k+3) do if j <= NSA then if Qs[1,j,i] = 0.0 then write(viga2,' ',Ms[j,i]:8:2,'/',Qs[2,j,i]:8:2,' ') else write(viga2,' ',Ms[j,i]:7:2,'/',Qs[1,j,i]:7:2,'/',Qs[2,j,i]:7:2,' '); writeln(viga2); writeln(viga2); k := k + 4; end; Until j >= NSA; writeln(viga2); writeln(viga2); end; { for i := 1 to NV do begin write(viga2,' vo(',i:2,') '); for j:= 1 to NSA do write(viga2,' M/Q ou M/Qe/Qd S',j:1,' '); writeln(viga2); write(viga2,' '); for j := 1 to NSA do if Qs[1,j,i] = 0.0 then write(viga2,' ',Ms[j,i]:8:2,'/',Qs[2,j,i]:8:2,' ') else write(viga2,' ',Ms[j,i]:7:2,'/',Qs[1,j,i]:7:2,'/',Qs[2,j,i]:7:2,' '); writeln(viga2);writeln(viga2); end; } end; end; { PROGRAMA PRINCIPAL } Begin clrscr; writeln; write('Nome do Arquivo para Leitura dos Dados (max.12 dgitos):'); readln(vigadat); writeln; assign(viga1,vigadat); reset(viga1); write(' Nome do Arquivo para Impresso dos Resultados (max.12 dgitos):'); readln(vigares); assign(viga2,vigares); rewrite(viga2); writeln; write(' Quer imprimir os dados no arquivo de resultados (S/N):'); readln(respd); writeln; write(' Quer impresso dos resultados parciais (S/N):'); readln(respr);

53

while not eof(viga1) do begin{while} writeln('Calculando...'); Inicializao; Leitdados; MontSist; CalcVetInd; SolSist; Ordincog; Cortantes; Momentos; Esforos; Sees; ImpresResult; end; {while} close(viga1); close(viga2); End.

54

REFERNCIAS BIBLIOGRFICAS

1. TIMOSHENKO, S. P. & YOUNG, D. H. Theory of structural,New York: McGraw-Hill, 1965. 2. SUSSEKIND, J. C. Curso de Anlise Estrutural, Rio de Janeiro: Editora Globo, 1977. v.2. 3. GERE & WEAVER Anlise de Estruturas Reticuladas, Rio de Janeiro: Editora Guanabara II,1981. 4. TURBO PASCAL User's Guide, Borland International,1988. 5. TURBO PASCAL Reference
Guide, Borland International,1988.

6. DUTTON, F. Ferramentas em Turbo Pascal. Traduo: Eduardo Alberto Barbosa. Rio de Janeiro: Cincia Moderna, 1990. 396p. 7. PRESSMAN, R.S. Software Engineering. Singapore : Mcgraw-Hill, 1982. 352p. 8. STAA, A. V. Engenharia de Programas. 2.ed. Rio de Janeiro: Livros Tcnicos e Cientificos, 1987. 296p.

55

9. WOOD, S. Turbo Pascal: Guia do Usurio. Traduo: Maria Cludia S. R. Ratto. So Paulo: McGraw-Hill, 1987. 175p.

Anda mungkin juga menyukai