Você está na página 1de 20

Introduo ao clculo de curvas de regolfo pelo mtodo ca a e das diferenas nitas.

c
Esquemas expl citios para canais prismticos de seco a ca rectangular.
Rui M. L. Ferreira Instituto Superior Tcnico e ruif@civil.ist.utl.pt 15 de Novembro de 2007
Resumo As curvas de regolfo traduzem o andamento da superf livre em canais que transcie portam caudal constante. O seu clculo requer a resoluao de uma equaao diferencial a c c c a e ordinria de 1a ordem sujeita a uma condiao de fronteira. O clculo necessariamente a numrico e pode ser levado a cabo por diversos mtodos. Neste texto apresenta-se uma e e breve reviso de esquemas simples de diferenas nitas que permitem o clculo expedito a c a de curvas de regolfo em canais prismticos de secao rectangular. Mostra-se tambm a c e um exemplo de clculo, a curva de regolfo do tipo F2 . a

1
1.1

Curva de regolfo: problema de valores na fronteira


Canais prismticos a

O clculo de uma curva de regolfo num canal prismtico um problema de valores na fronteira a a e representado pela da equao diferencial ordinria ca a I J(h) dh = 2 dx 1 Fr (h) (ver [Qui80], p. 132, [Manz79], p. 166) e pela condio de fronteira ca h(0) = hmontante h(L) = hjusante se o escoamento rpido e a se o escoamento lento e (2) (1)

Na equao diferencial (1), h a altura do escoamento, x a distncia a origem (medida ca e e a ` ao longo do talvegue do canal), I o declive do canal, J(h) a perda de carga unitria, Fr (h) e e a o n mero de Froude e L comprimento do trecho de canal no qual se pretende calcular a e u e curva de regolfo. e ca nua e diferencivel a Estudar-se- apenas o caso em que h : [0, L] uma funo cont a para todos os x [0, L]. A superf livre de um escoamento em que ocorram descontinuidacie des1 no , na vizinhana destas, exprim pela equao (1). Note-se tambm que a funo a e c vel ca e ca

1 Rera-se,

como exemplo de descontinuidade, o ressalto hidrulico. a

IJ(h) : \{hc } tal que (h) = 1F 2 (h) no denida nos pontos de escoamento cr a e tico, r h = hc , i.e. em todos os valores de x tais que Fr (h(x)) = 1. Assim, o comprimento L deve ser escolhido por forma a que no occorram descontinuia dades em h ou pontos de escoamento cr tico. Nestas condies, pode mostrar-se que se se co a a impuser Fr (h(0)) > 1 ento Fr (h(x)) > 1 em x [0, L] (regime rpido em todo o trecho). a Do mesmo modo, se Fr (h(L)) < 1 ento Fr (h(x)) < 1 em x [0, L] (regime lento em todo o trecho). O problema de valores na fronteira representado por (1) e (2) pode ser transformado num problema de valores iniciais orientando o eixo dos xx de acordo com o sentido da velocidade ` e das pequenas perturbaes, gh, relativamente a velocidade mdia da corrente, U . Assim, co se Fr (h(x)) > 1 tem-se U > gh o escoamento controlado por montante e o eixo dos e e xx deve orientar-se segundo o escoamento. Se Fr (h(x)) < 1, U < gh o escoamento controlado por jusante e o eixo dos xx deve orientar-se contra o escoamento. A equao ca (1) transforma-se em I J(h) dh = (3) 2 dx 1 Fr (h)

em que o parmetro +1 quando o regime do escoamento rpido e 1 quando lento. a e e a e A condio de fronteira (2) transforma-se na condio inicial ca ca h(0) = hmontante h(0) = hjusante se o escoamento rpido e a se o escoamento lento e (4)

1.2

Canais no prismticos a a

A equao (1) no vlida em canais no prismticos. Nestes, as curvas de regolfo resultam ca a e a a a da integrao de ca dH = (I J(h)), (5) dx ou de d = (gS(h)(I J(h)) + gM2 (h)). (6) dx Os parmetros e variveis envolvidos nas equaes (5) e (6) so a a co a

H =h+

Q2 , 2gS(h)2

(7)

a energia espec ca do escoamento ([Manz79], p. 136), Q, o caudal escoado, S(h), a area da seco molhada, funo da altura do escoamento, g, a acelerao da gravidade, ca ca ca Q = ghg (h)S(h) + S(h) ,
2

(8)

a quantidade de movimento total (ou impulso total) do escoamento ([Manz79], p. 154), a hg (g), a profundidade do centro de gravidade da seco transversal do escoamento, , a massa ca vol mica do uido e gM2 (h), o acrscimo de impulso hidrosttica representado pela aco u e a a ca h das paredes do canal (no prismtico) sobre o escoamento, no qual M2 (h) = 0 ()(h )d a a e () a largura da seco a altura acima do talvegue. e ca ` Alternativamente, podem resolver-se as equaes (5) ou (6) em ordem a dh , obtendo-se co dx
r I J(h) + B(h) S dh x = 2 dx 1 Fr (h)

F 2 (h)

h=cte

(9)

em que B(h) = dS a largura supercial do escoamento. dh e As condies de fronteira para as equaes (5) e (6) obtm-se a partir de (2) por aplicao co co e ca de (7) e (8). Para a resoluo da equao (9) a condio de fronteira a equao (2). ca ca ca e ca A equao (6) vlida em escoamentos que apresentam singularidades em que a energia ca e a no se conserva, nomeadamente ressaltos hidrulicos, o que no acontace com as equaes a a a co (5) e (9). Note-se, todavia, que, se o regime de escoamento mudar na descontinuidade, a resoluo da equao (6) em tudo igual a resoluo da equao (5): sero integradas de ca ca e ` ca ca a montante para jusante, entre uma seco de controlo do escoamento e a descontinuidade, se ca o regime for rpido, e a partir de jusante at ` descontinuidade, se o regime for lento. De a ea facto, o sentido f e sico de propagao de informao no meio l ca ca quido que impe a localizao o ca das condies iniciais e a direco de resoluo da equao. co ca ca ca Notar ainda que, se se optar por integrar as equaes (5) ou (6), necessrio calcular a co e a co funo h(x) em funo de H(x) ou de (x) resolvendo as equaes (7) ou (7), respetivamente. ca ca

2
2.1

Discretizao por diferenas nitas ca c


Discretizao do dom ca nio de clculo a

Procure-se, agora, resolver numericamente a equao (1). O dom ca nio de clculo, de coma primento L, deve ser discretizado em n 1 trechos de comprimento x. Existem, assim, n seces de clculo. co a A seco x = 0 a mais a jusante se o regime lento (porque o eixo dos xx orienta-se ca e e de jusante para montante). Se o regime rpido, o eixo dos xx orienta-se de montante para e a jusante e a seco x = 0 a mais a montante. ca e Se a funo h(x) for cont ca nua e diferencivel entre duas seces de clculo de abcissas xi a co a e xi+1 , sucientemente prximas para que h(x) seja montona em x [xi , xi+1 ], o teorema o o de Lagrange permite escrever hi+1 hi dh = (10) x dx xm em que xm a abcissa de uma seco entre xi e xi+1 . Portanto, o valor exacto da altura em e ca e xi+1 obtido, com base em h(xi ) hi , por hi+1 = hi + x dh dx (11)
xm

A construo grca correspondente ` equao (11) pode observar-se na Figura 1. ca a a ca

hi h(xi) dh dx hi+1 h(xi+1)


xm

xi

xm

xi+1

Figura 1: Ilustrao do teorema de Lagrange. ca

2.2

Aproximao de primeira ordem ca

Como a funo h(x) no conhecida, no poss estimar o valor da abcissa xm . Assim, ca a e a e vel a ca a derivada dh xm ter que ser estimada, processo que envolve uma aproximao e, portanto, dx um erro numrico. e Recorrendo a uma discretizao por diferenas nitas, a aproximao mais simples para ca c ca e dx ca a derivada dh xm dh xi , ou seja a derivada da altura do escoamento na seco cuja abcissa dx xi . Nesse caso, (11) transforma-se em e hi+1 = hi + x dh dx + 1 (12)

xi

e ca ca e em que 1 o erro cometido na aproximao. Expandindo a funo h(x) em srie de Taylor e em torno de xi verica-se que 1 = O x2 . Diz-se que o esquema numrico representado por (12) de 1a ordem porque o erro na diferenciao da ordem de grandeza de x. e ca e Com efeito, re-ordenando os termos de (12), obtm-se e dh hi+1 hi = x dx dh dx =
xi

+
xi

1 O x2 x (13)

hi+1 hi + O (x) x

A construo geomtrica correspondente a equao representada por (12) pode observarca e ` ca se na Figura 2.

hi dh dx e1

xi

hi +1 xi

xi+1

Figura 2: Aproximao de primeira ordem. ca Introduzindo (3) em (12) (e ignorando o termo do erro), o esquema de 1a ordem (conhecido com esquema de Euler) ca hi+1 = hi + x I J(hi ) 2 1 Fr (hi ) (14)

2.3

Aproximao de segunda ordem: esquema centrado ca

Uma melhor aproximao para a derivada dh xm pode ser obtida se se combinar as derivadas ca dx dh dh e dx xi+1 . Se se zer a mdia aritmtica de ambas, a aproximao de 2a ordem. A e e ca e dx xi 4

1 dh 2 dx hi dh dx

xi

dh dx

xi +1

xi

e2

hi +1

dh dx

xi +1

xi

xi+1

Figura 3: Aproximao de segunda ordem. Esquema centrado. ca demonstrao desta armao encontra-se no Anexo A. Assim, substituindo, em (11), ca ca dh pela mdia aritmtica de dx xi e dh xi+1 obtm-se e e e dx hi+1 = hi + x 2 dh dx +
xi dh dx xm

dh dx

xi+1

+ 2

(15)

em que 2 = O x3 . A construo grca correspondente ` equao (15) pode observar-se na Figura 3. ca a a ca e O esquema de 2a ordem resultante, chamado esquema centrado, hi+1 = hi + x 2 I J(hi ) I J(hi+1 ) + 2 2 1 Fr (hi ) 1 Fr (hi+1 ) (16)

ca e cita, i.e., Devido a no linearidade das funes J(hi+1 ) e F r(hi+1 ), a equao (16) impl ` a co no tem resoluo expl a ca cita para hi+1 . Para calcular o valor de hi+1 , a raiz adequada da equao (16) deve ser calculada numeca ricamente, por exemplo pelo mtodo de Newton. No Anexo B mostra-se como se pode obter, e por aquele mtodo, a raiz apropriada de (16). e

2.4

Aproximao de segunda ordem: esquema de Euler modicado ca

Uma outra forma de estimar a derivada dh x , mantendo uma aproximao de 2a ordem, ca e dx m o chamado esquema de Euler modicado ou predictor-corrector ([Asc95], p. 69). Neste e ca esquema, a altura do escoamento na seco xi+1 estimada, numa primeira aproximao, ca por intermdio de (14): e I J(hi ) (17) hi+1 = hi + x 2 1 Fr (hi ) A estimativa hi+1 utilizada para calcular a derivada aproximada e em xi+1 . A mdia aritmtica das derivadas e e
dh dx xi dh dx x i+1

IJ(hi+1 )
2 1Fr (hi+1 )

dh dx x i+1

permite obter uma aproximao ca

hi dh dx

1 dh 2 dx

xi

dh dx

xi +1

xi

dh dx xi

~ e2
xi +1

hi +1

hi +1 xi+1

Figura 4: Aproximao de segunda ordem. Esquema de Euler modicado. ca ca a ca de 2a ordem. A construo grca correspondente a esta aproximao pode observar-se na Figura 4. e A equao fundamental do esquema de 2a ordem resultante ca I J hi+1 x I J(hi ) + hi+1 = hi + (18) 2 2 1 Fr (hi ) 1 F 2 hi+1
r

em que hi+1 calculado por (17). e

2.5

Discretizao da equao do regolfo para canais no prismticos ca ca a a


H(0) = F (hmontante ) H(0) = F (hjusante )

Prope-se, como exemplo, a discretizao da equao (5), sujeita a o ca ca se o escoamento rpido e a , se o escoamento lento e (19)

por intermdio de uma aproximao de segunda ordem. Obtm-se o seguinte esquema e ca e Hi+1 = Hi + x ((Ii J(hi )) + (Ii+1 J(hi+1 ))) 2 (20)

em que se admite que a inclinao do fundo, I, pode variar entre seces de clculo. Substica co a ca e tuindo Hi+1 pela equao (7) obtm-se hi+1 + x Q2 x (Ii+1 J(hi+1 )) = Hi + (Ii J(hi )) 2gS 2 (hi+1 ) 2 2 (21)

A equao (21) uma equao algbrica no linear com que admite trs ra distintas, ca e ca e a e zes duas das quais correspondem `s solues de regime rpido e de regime lento. No Anexo C a co a mostra-se o procedimento algor tmico a adoptar para obter estas ra zes. A discretizao e os passos a empreender para calcular a curva de regolfo por intermdio ca e ca da equao (6) so similares aos acima descritos. Deve substituir-se i+1 pela denio (8) ca a

e a equao resultante deve ser resolvida numericamente em ordem a altura do escoamento, ca ` procurando se a ra de rpido ou a ra de lento consoante o regime do escoamento. z a z Se se optar por resolver a equao (9), os esquemas descritos em 2.2, 2.3 ou 2.4 so ca a IJ(h) de aplicao directa, tendo-se apenas que substituir a funo (h) = 1F 2 (h) por (h) = ca ca
r IJ(h)+ B(h) S | x h=cte . 2 1Fr (h) F 2 (h) r

3
3.1

Exemplo de clculo para canais prismticos a a


Estrutura algor tmica

O clculo da curva de regolfo pelo mtodo das diferenas nitas tem a seguinte estrutura a e c algor tmica: 1. determinar h1 com base em consideraes f co sicas; 2. discretizar o dom nio de clculo em trechos de comprimento x; a 3. resolver, em cada seco cuja abcissa xi+1 , as equaes (14) (esquema de 1a ordem), ca e co (16) (esquema de 2a ordem centrado) ou (17) e (18) (esquema de 2a ordem predictorcorrector ); a ca nio de clculo. a 4. executar 3. at que xi+1 corresponda ` ultima seco do dom e Deve sublinhar-se que a escolha do esquema numrico a utilizar no passo 3. no indie a e ferente. Melhores resultados sero obtidos pelo esquema de 2a ordem centrado. Os piores a resultados correspondem a discretizao de 1a ordem. Resultados de qualidade intermdia ` ca e sero obtidos pelo esquema de Euler modicado. As construes grcas apresentadas nas a co a Figuras 2 a 4 justicam este facto. Apresenta-se, de seguida, um exemplo de clculo que ilustra o valor relativo dos esquemas a discutidos. No Anexo D mostra-se a implementao, em VBA, do algoritmo relativo ao ca mtodo das diferenas nitas, aplicado a este exemplo de clculo. e c a

3.2

Clculo de uma curva de regolfo do tipo F2 a

Mostra-se, nas Figuras 5 e 6, uma comparao dos resultados dos trs tipos de discretizao. ca e ca Pretende-se calcular uma curva de regolfo do tipo F2 num canal prismtico de seco reca ca tangular de inclinao I = 0.05, largura do fundo b = 10 m e coeciente da frmula de ca o ca e Manning-Strickler K = 30 m1/3 s1 . A condio inicial h1 4, 0 m. Apresenta-se resultados para x = 3 m, 1 m, 0, 5 m e 0, 1 m. A Figura 5 mostra as cotas do fundo do canal e as cotas da superf livre para cada cie uma das solues. Na Figura 6 mostra-se as alturas do escoamento. co Verica-se que os resultados correspondentes ao passo de clculo x = 3 m so insatisa a fatrios; nenhuma soluo numrica consegue reproduzir a curva de regolfo porque a altura o ca e e h2 , calculada por qualquer dos esquemas, menor que altura do escoamento uniforme, o que imposs numa curva F2 . Este exemplo ilustra a diculdade de obteno de uma soluo e vel ca ca para problemas de valor inicial quando a variao da funo grande em comparao com ca ca e ca a medida do intervalo onde denida. estes problemas so designados por problemas e a r gidos (sti problems na literatura de l ngua inglesa, veja-se [Asc95], p. 73). O problema representado por (3) e (4) r e gido se d dh L 1 (22)

105 104 103 102 101 100 99 98 0 10 20 Distncia (m)

Dx = 3 m
Cotas (m)

105 104 103 102 101 100 99 98 0 10 20 Distncia (m)

Dx = 1 m

Cotas (m)

30 105 104 103 102 101 100 99 98

30

105 104 103 102 101 100 99 98 0

Dx = 0,5 m

Dx = 0,1 m

Cotas (m)

10 20 Distncia (m)

30

Cotas (m)

10 20 Distncia (m)

30

Figura 5: Cotas do fundo ( ) e da superf cie livre. As cotas da superf cie livre ), 2a ordem centrado ( ) e 2a ordem correspondem `s solues de 1a ordem ( a co predictor-corrector ( ). A condio inicial acima apresentada h(0) hcrit = 3, 995 m. Considerando os restantes ca e dados, obtm-se e
d dh

L 104 se se tomar como valor de L o comprimento que necessrio a

para que se obtenha a altura do regime uniforme. Como 104 1, conclui-se que o clculo a ca o ca tico, um e de uma curva F2 , dada uma condio inicial prxima da condio de regime cr problema r gido. A forma mais simples de ultrapassar os problemas associados ` resoluo deste tipo de a ca problemas operar a reduo do passo de clculo x. Pode provar-se que a maior variao e ca a ca IJ(h) c ca a de (h) = dh = 1F 2 (h) ocorre na vizinhana da primeira seco de clculo. Assim, se numa dx r vizinhana de x = 0, se aproximar a equao diferencial (3) por c ca (h1 ) dh = h dx h1 (23)

a condio de estabilidade para problemas lineares, |1 x| < 1 em que = (h1 ) (veja-se ca h1 [Asc95], p. 72), permite obter x 1, 0 m. Assim, para valores do passo de clculo menores que 1, 0 m, verica-se que as solues a co a numricas reproduzem uma curva do tipo F2 . Os resultados so tanto melhores quanto mais e na a discretizao, i.e., quanto menor o valor de x. e ca e E notrio que a pior soluo corresponde a discretizao de 1a ordem, facto acentuado o ca ` ca para a discretizao mais grosseira. As discretizaes de 2a ordem apresentam valores muito ca co prximos independentemente do valor de x. o 8

4 3

Dx = 3 m
h (m)

4 3 2 1 0

Dx = 1 m

h (m)

2 1 0 0 2.5 5 7.5 Distncia (m) 10

2.5

5 7.5 Distncia (m)

10

4 3

Dx = 0,5 m

4 3

Dx = 0,1 m

h (m)

2 1 0 0 2.5 5 7.5 Distncia (m) 10

h (m)

2 1 0 0 2.5 5 Distncia (m) 7.5 10

Figura 6: Alturas do escoamento correspondentes `s solues de 1a ordem ( a co centrado ( ) e 2a ordem predictor-corrector ( ).

), 2a ordem

Referncias e
[Qui80] Quintela, A. (1980). Hidrulica. 8a edio, Edies Calouste Gulbenkian, Lisboa. a ca co [Manz79] Manzanares, A. (1980). Hidrulica Geral. Edies Associao dos Estudantes do a co ca Instituto Superior Tcnico, Lisboa. e [Asc95] Ascher, U. M., Mattheij, R. M. M. & Russell, R. D. (1995). Numerical solution of boundary value problems for ordinary dierential equations. Classics in Applied Mathematics, Society for Industrial and Applied Mathematics.

Anexo A: Ordem do esquema correspondente ` equao a ca (15)


Se se expandir h(x) em srie de Taylor em torno de xi obtm-se e e hi+1 = hi + x dh dx +
xi

x d2 h 2 dx2 x d2 h 2 dx2

+ O x3
xi

(24)

A expanso h(x) em srie de Taylor em torno de xi+1 a e e hi = hi+1 x dh dx +


xi+1

+ O x3
xi+1

(25)

Multiplicando (24) por 1 e adicionando a (25) obtm-se e hi+1 hi = hi hi+1 + x + x 2


d h dx2 x i
2

dh dx xi

+ x

dh dx xi+1

+ (26)

d h dx2 x i+1
2

+ O x3

Expandindo a segunda derivada de h(x) em torno de xi e de xi+1 obtm-se, respectivae mente, d2 h d3 h d2 h = + x + O x2 (27) 2 2 dx xi+1 dx xi dx3 xi e d2 h dx2 =
xi

d2 h dx2

xi+1

d3 h dx3

+ O x2
xi+1

(28)

Multiplicando (27) por 1 e adicionando a (28) obtm-se e


d2 h dx2 x i d h dx2
2

d h dx3
3

d2 h dx2 x i+1 xi+1

=
d3 h dx3 xi

xi+1

d h dx2
2

xi

+ O x2

d2 h dx2

xi

d2 h dx2

xi+1 2

x 2
2

d3 h dx3

+
xi+1

d3 h dx3

+ O x2
xi

d h dx2

xi

d h dx2

= O (x)
xi+1

(29)

Substituindo (29) em (26) obtm-se e hi+1 hi = hi hi+1 + x x 2 dh dx +


xi

dh dx

+
xi+1

x2 O (x) + O x3 2!

hi+1 = hi +

dh dx

+
xi

dh dx

+ O x3
xi+1

(30)

Reordenando os termos de (30), verica-se que 1 2 dh dx +


xi

dh dx

=
xi+1

hi+1 hi + O x2 x

(31)

` ca e O erro da aproximao em (31) O x2 . O esquema associado a equao (15) , ca e portanto, de segunda ordem.

Anexo B: Clculo da raiz apropriada da equao (16) pelo a ca mtodo de Newton. e


O esquema de 2a ordem pressupe a resoluo da equao algbrica no linear (16) em cada o ca ca e a seco de clculo cuja abcissa xi+1 . Pretende-se a raiz (valor de hi+1 ) sicamente correcta ca a e

10

da equao (16). Deve escrever-se aquela equao da forma mais simples. Assim, as seguintes ca ca manipulaes so aconselhadas: co a hi+1 = hi + hi+1 x 2 I J(hi ) I J(hi+1 ) + 2 2 1 Fr (hi ) 1 Fr (hi+1 ) (32)

x I J(hi+1 ) x I J(hi ) = hi + 2 (h 2 2 1 Fr i+1 ) 2 1 Fr (hi )

IJ(hi ) Como as grandezas na seco xi so conhecidas, o conjunto hi + x 1F 2 (hi ) uma ca a e 2 r constante numrica para os efeitos do clculo das ra de (32). Assim, esta ca e a zes

hi+1

x I J(hi+1 ) C =0 2 2 1 Fr (hi+1 ) x (I J(hi+1 )) = 0 2 h. Procurar-se-o as ra da equao a zes ca x (I J(h)) = 0 2


1

2 (hi+1 C) 1 Fr (hi+1 )

(33)

Simplicando a notao, seja hi+1 ca

2 F (h) = 0 (h C) 1 Fr (h)

(34)

A estrutura algor tmica do mtodo de Newton e e hk+1 = hk F hk dh dx (35)


hk

a E necessrio determinar a derivada de F (h). E fcil vericar que a dF d x 2 = (h C) 1 Fr (h) (I J(h)) = dh dh 2 d x d 2 (h C) 1 Fr (h) (I J(h)) = dh 2 dh x dJ d 2 = 1 Fr (h) (h C) (36) F2 + dh r 2 dh As derivadas do n mero de Froude e da perda de carga unitria so, respectivamente u a a = d d F2 = dh r dh e d dJ = dh dh Q KSR
2 3

Q2 B gS 3
2

2 = Fr

dB 1 B 3 dh B S 4 1 dP 10 B 3 P dh 3 S

(37)

=J

(38)

Introduzindo (37) e (38) em (36) obtm-se e dF 2 2 = 1 Fr (h) (h C) Fr dh dB 1 B 3 dh B S + x J 2 4 1 dP 10 B 3 P dh 3 S (39)

Introduzindo (39) e a denio de F (h) (ver equao 34) em (35) obtm-se ca ca e hk+1 = hk ( hk C )(h
k 2 1Fr (hk ) 2 Fr (hk )

C )

2 1 Fr (hk ) x I J(hk ) 2
B(hk ) 1 dB dh hk B(hk ) 3 S(hk )

/ (40)

+ x J(hk ) 2

dP 1 4 10 B(hk ) 3 P (hk ) dh hk 3 S(hk )

11

Para calcular a raiz correcta da equao (16), o valor inicial para o clculo numrico ca a e representado pela equao (40) h0 = hi (altura do escoamento na seco anterior) ou h0 = ca e ca heq.18 (altura do escoamento na prpria seco calculada pelo algoritmo Euler modicado). o ca i+1 A equao (40) deve ser aplicada recursivamente at que hk+1 hk < em que um ca e e erro previamente estipulado (por exemplo = 106 m). No nal do clculo da raiz da equao (16) tem-se hi+1 hk+1 . a ca

Anexo C: Clculo da raiz apropriada da equao (21) por a ca iterao do ponto xo. ca
A resoluo da equao algbrica no linear (21) em cada seco de clculo pode ser levada ca ca e a ca a a cabo pelo mtodo da iterao do ponto xo. Este mtodo, de convergncia mais lenta que e ca e e o mtodo de Newton, tem a vantagem de permitir duas estruturas algor e tmicas pelas quais se obtm directamente as ra e zes correspondentes aos regimes rpido e lento. Simplicando a agrupando os termos em i obtm-se e hi+1 + x Q2 (Ii+1 J(hi+1 )) = Ci . 2gS 2 (hi+1 ) 2 (41)

A ra correspondente ao regime rpido pode ser obtida se se resolver a equao (41) em z a ca ordem ` seco do escoamento, S(hi+1 ): a ca S(hi+1 ) = Q2 2g 1 Ci hi+1 + x (Ii+1 J(hi+1 )) 2 (42)

A ra correspondente ao regime lento obtm-se resolvendo a equao (41) em ordem a hi+1 : z e ca hi+1 = Q2 2gS 2 (h
i+1 )

x (Ii+1 J(hi+1 )) + Ci . 2

(43)

O valor inicial deve estar de acordo com o tipo de ra que se pretende calcular em z cada um dos algoritmos (43) e (42). Assim, em regime lento, deve ter-se h0 > hcrit e, em regime rpido, necessrio que h0 < hcrit em que hcrit a altura do escoamento cr a e a e tico. Os algoritmos devem ser aplicados recursivamente at que hk+1 hk < em que um erro e e a ca previamente estipulado (por exemplo = 106 m). No nal do clculo da raiz da equao (21) tem-se hi+1 hk+1 .

Anexo D: Cdigo em VBA para o clculo de uma curva o a de regolfo do tipo F2.
Mostra-se, de seguida, o cdigo, em VBA, relativo ao exemplo apresentado em 3.1. o Sub Dim Dim Dim Dim Dim Regolfo_F() Q As Double L, I As Double Be, Br, m As Double Dx As Double h(50000), d(50000) As Double

12

Dim h1 As Double Dim SumDx As Double Dim j As Integer Dim Ks As Double Dim S, P, R, B, S_p, P_p, R_p, B_p, S_j, P_j, R_j, B_j, S0, P0, R0, B0 As Double Dim dPdh0, dBdh0 As Double Dim Sf, Fr, Sf_p, Fr_p, Sf_j, Fr_j, Sf0, Fr0 As Double Dim d0, dd As Double Dim F, dFdh As Double Dim k As Integer ler os dados geomtricos e Q = Sheets("Sheet1").Cells(3, 5) I = Sheets("Sheet1").Cells(4, 5) L = Sheets("Sheet1").Cells(5, 5) Br = Sheets("Sheet1").Cells(6, 5) m = Sheets("Sheet1").Cells(7, 5) Be = Sheets("Sheet1").Cells(8, 5) Ks = Sheets("Sheet1").Cells(9, 5) Dx = Sheets("Sheet1").Cells(10, 5) h1 = Sheets("Sheet1").Cells(12, 5) Range(Cells(15, 3), Cells(35000, 10)).Clear anteriores Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, Sheets("Sheet1").Cells(15, h(1) = h1 d(1) = h1 SumDx = 0# j = 1 elimina os clculos a

3) = "x(m)" 4) = "z(m)" 5) = "h(m),1aordem" 6) = "Y(m),1aordem" 7) = "h(m),2aordem(p-c)" 8) = "Y(m),2aordem(p-c)" 9) = "h(m),2aordem" 10) = "Y(m),2aordem"

esquemas de 1a ordem e de 2a ordem "predictor-corrector" esquema de 2a ordem

Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15 Sheets("Sheet1").Cells(15

+ + + + + + + +

j, j, j, j, j, j, j, j,

3) = SumDx 4) = 100 - SumDx * I 5) = h(j) 6) = 100 - SumDx * I + h(j) 7) = h(j) 8) = 100 - (SumDx + Dx) * I + h(j) 9) = d(j) 10) = 100 - (SumDx + Dx) * I + d(j)

13

ciclo principal While (SumDx < L) esquema de 1a ordem... S = Area(Br, h(j)) P = Per(Br, h(j)) R = RaioH(P, S) B = Bsup(Br, h(j)) Sf = Jota(Q, S, R, Ks) isto e o J (perda de carga unitria) a Fr = Fr2(Q, S, B) ^ 0.5 h(j + 1) = h(j) + Dx * ((I - Sf) / (1# - Fr ^ 2)) escrita dos resultados do Sheets("Sheet1").Cells(15 + Sheets("Sheet1").Cells(15 + Sheets("Sheet1").Cells(15 + Sheets("Sheet1").Cells(15 + + h(j + 1) esquema de 1a ordem j + 1, 3) = SumDx + Dx j + 1, 4) = 100 - (SumDx + Dx) * I j + 1, 5) = h(j + 1) j + 1, 6) = 100 - (SumDx + Dx) * I

complemento para o esquema de 2a ordem "predictor-corrector" h_p = h(j + 1) h(j+1) passa a ser uma previs~o a (h_p do "verdadeiro" h(j+1)) S_p = Area(Br, h_p) P_p = Per(Br, h_p) R_p = RaioH(P_p, S_p) B_p = Bsup(Br, h_p) Sf_p = Jota(Q, S_p, R_p, Ks) isto e o J (perda de carga unitria) a Fr_p = Fr2(Q, S_p, B_p) ^ 0.5 h(j + 1) = h(j) + (Dx / 2#) * ((I - Sf) / (1# - Fr ^ 2) + (I - Sf_p) / (1# - Fr_p ^ 2)) escrita do resultado de 2a ordem Sheets("Sheet1").Cells(15 + j + 1, 7) = h(j + 1) Sheets("Sheet1").Cells(15 + j + 1, 8) = 100 - (SumDx + Dx) * I + h(j + 1) esquema de 2a ordem S_j = Area(Br, d(j)) P_j = Per(Br, d(j)) R_j = RaioH(P_j, S_j) B_j = Bsup(Br, d(j)) Sf_j = Jota(Q, S_j, R_j, Ks) Fr_j = Fr2(Q, S_j, B_j) ^ 0.5

14

mtodo de Newton para o clculo de d(j+1) e a d0 = h(j + 1) valor inicial para o mtodo de Newton o e e valor da altura do escoamento do esquema predictor corrector Constante = d(j) + (Dx / 2#) * ((I - Sf_j) / (1# - Fr_j ^ 2)) dd = 999999# para forar a entrada no ciclo c k = 0 While ((Abs(dd) > 0.000001) And (k < 200)) erro da ordem da milsima de milmetro e S0 = Area(Br, d0) P0 = Per(Br, d0) R0 = RaioH(P0, S0) B0 = Bsup(Br, d0) Sf0 = Jota(Q, S0, R0, Ks) isto e o J (perda de carga unitria) a Fr0 = Fr2(Q, S0, B0) ^ 0.5 dPdh0 = dPdh(Br, d0) dBdh0 = dBsupdh(Br, d0) F = (d0 - Constante) * (1# - Fr0 ^ 2) - (Dx / 2#) * (I - Sf0) dFdh = (1 - Fr0 ^ 2) - (d0 - Constante) * Fr0 ^ 2 * (dBdh0 / B0 - 3# * B0 / S0) + (Dx / 2#) * Sf0 * ((4# / 3#) * dPdh0 / P0 - (10# / 3#) * B0 / S0) If (Abs(dFdh) < 0.0001) Then dd = 0# mtodo de newton n~o encontrou solu~o e a ca Else dd = -F / dFdh End If d0 = d0 + dd k = k + 1 Wend d(j + 1) = d0 Sheets("Sheet1").Cells(15 + j + 1, 9) = d(j + 1) Sheets("Sheet1").Cells(15 + j + 1, 10) = 100 - (SumDx + Dx) * I + d(j + 1) d(j) = d(j + 1) actualiza~o para o prximo passo de clculo ca o a SumDx = SumDx + Dx j = j + 1 Wend End Sub 15

Anexo E: Cdigo em MatLab para o clculo de uma curva o a de regolfo num canal no prismtico. a a
Apresenta-se um cdigo, em MatLab, para a resoluo da equao (21). Resolve-se esta o ca ca equao num canal de seco rectangular cuja largura do fundo alarga 5 m, ao longo de 200 ca ca m. % % % % % % % % % % % % % % % % % % % % % % % calculo de uma curva de regolfo num canal n~o prismtico a a Rui Ferreira, 17 de Novembro de 2007 variaveis: x - variaveis independentes (dist^ncia a origem) a ` dx - largura da malha de calculo N - nmero de sec~es de clculo u co a Q - caudal escoado h() - altura do escoamento zb() - cota do fundo u() - velocidade media do escoamento b() - largura do fundo mi - inverso do declive dos taludes = 0 S() - rea da sec~o transversal do escoamento a ca h_crit() - alturas dos escoamentos crticos h_unif() - alturas dos escoamentos uniformes, calculadas em cada sec~o, ca que se estabeleceriam em canais prismticos com essa sec~o a ca S0 - declive do fundo K - coeficiente da frmula de Manning-Strickler o Hesp() - energia especfica M() - quantidade de movimento total Y() - cota da superfcie livre Fr - nmero de Froude u

close all clear all clc % discretiza~o ca dx = 2; % canal com 200 metros de comprimento N = 101; x = [0:dx:200]; % defini~o da geometria: canal de sec~o trapezoidal com alargamento suave ca ca b = [10:.05:15]; % 101 sec~es, b varivel entre 10 e 15 co a %mi(1:101) = 0. % 101 sec~es, mi constante = 0 (sec~o rectangular) co ca % inicializa~o ca 16

Q = 10; % m3s-1 K = 75; % m1/3s-1 S0 = 0.01; % zb(1:101) = 2 - S0.*x; h_crit(1:101) = (Q^2./(9.8*b.^2)).^(1/3); h_unif(1:101) = calcula_hu(Q,b(1:101),K,S0); % fun~o que calcula ca %a altura do escoamento uniforme. clculo numico, itera~o do ponto fixo a e ca h(1:101) = 1; % inicializa o vector das alturas do escoamento

% condi~o de fronteira de montante (valor inicial para a ca %integra~o da eq. diferencial ordinria) ca a h(1) = .99*h_crit(1); % regime rpido imposto a montante a rapido = true; i = 1; while ( (i < N) && ( rapido ) ) h(i+1) = calcula_prox_h_rapido(dx,h(i),Q,b(i),K,S0); if (h(i+1) < .95*h_crit(i+1)) rapido = true; else rapido = false; end i = i + 1 end S(1:101) = b .* h; hg(1:101) = h/2; Hesp(1:101) = h + Q^2./(2 * 9.8 .* S ); M(1:101) = 1000 * 9.8 * ( hg .* S ) + Q^2./( b .* h); Y(1:101) = h + zb; u(1:101) = Q./S; % escrita dos resultados nome_fich = regolfo_out.res; file_1 = fopen(nome_fich,wt); fprintf(file_1, Ficheiro %20s \n , nome_fich); 17

fprintf(file_1, contador \t distancia(m) \t z(m) \t Y(m) \t h(m) \t ... u(m/s) \t H(m) \t M(N) \n); % escrita no final e encerramento for i = 1 : N fprintf(file_1, %10.0d \t %10.5f \t %10.5f \t %10.5f ... \t %10.5f \t %10.5f \t %10.5f \t %10.5f \n, i, x(i), ... zb(i), Y(i), h(i), u(i), Hesp(i), M(i)); end fclose(file_1); fprintf(ficheiro criado); % abertura para fazer o grafico file_1 = fopen(nome_fich,r); cabecalho = fgets(file_1); cabecalho = fgets(file_1); [A, count] = fscanf(file_1,%f, [8 Inf]); fclose(file_1); hf1=figure(outerposition,[10 50 600 400]); set(gcf,Color,[1 1 1]); plot(A(2,:),A(3,:),k,A(2,:),A(4,:),b); xlabel(distancia (m),Fontsize,12,Fontname,Times), ylabel(Cotas do fundo e da superfcie livre (m),Fontsize,12,Fontname,Times), set(gca,xtick,0:25:200,Fontsize,12,Fontname,Times), set(gca,ytick,0:.5:3,Fontsize,12,Fontname,Times), axis([0 200 0.0 3.0]);

hf2=figure(outerposition,[10 100 600 400]); set(gcf,Color,[1 1 1]); plot(A(2,:),A(6,:),k); xlabel(distancia (m),Fontsize,12,Fontname,Times), ylabel(velocidade (m/s),Fontsize,12,Fontname,Times), set(gca,xtick,0:25:200,Fontsize,12,Fontname,Times), set(gca,ytick,0:.5:5,Fontsize,12,Fontname,Times), axis([0 200 0.0 5.0]); hf3=figure(outerposition,[10 150 600 400]); set(gcf,Color,[1 1 1]); plot(A(2,:),A(5,:),k); xlabel(distancia (m),Fontsize,12,Fontname,Times), ylabel(profundidade do escoamento (m),Fontsize,12,Fontname,Times), set(gca,xtick,0:25:200,Fontsize,12,Fontname,Times), set(gca,ytick,0:.1:.5,Fontsize,12,Fontname,Times), 18

axis([0 200 0.0 .5]); fim = 1

%%%%%%%%%%%%%%%%%%%% function calcula_prox_h = funcao(dx,xhi,xQ,xb,xK,xS0) % Function calcula_prox_h % resolve a equa~o implcita que resulta do esquema de segunda ordem ca % baseado na energia especfica para a equa~o do regolfo ca % - canais rectangulares apenas % % Calling sequence: % funcao(flow_depth_i,discharge,bed_width,K_strickler,bed_slope) % constante0 = (xhi + xQ^2/(2*9.8*(xb*xhi)^2)) + dx/2*(xS0 - Jota(xhi,xQ,xb,xK,xS0)) h_trial = xhi erro = 99999 while (erro >= 0.00001) constante1 = (dx/2)*( xS0 - Jota(h_trial,xQ,xb,xK,xS0) ) - h_trial seccao = h_trial*xb funcao_S = ( (xQ^2/(2*9.8))/(constante0 + constante1) )^.5 erro = abs(funcao_S - seccao); h_trial = funcao_S/xb end calcula_prox_h = h_trial %end % function calcula_prox_h = funcao(xi,xhi)

%%%%%%%%%%%%%%%%%%%%%%%%%%% function Jota = funcao(xh,xQ,xb,xK,xS0) % Function Jota % calcula a perda de carga unitria a % - canais rectangulares apenas % % Calling sequence: % funcao(discharge,bed_width,K_strickler,bed_slope) % xS = xb*xh 19

xR = xb*xh/(xb + 2*xh) Jota = (xQ/(xK*xS*xR^(2/3)))^2 %end % function Jota = funcao(xQ,xb,xK,xS0)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function calcula_hu = funcao(xQ,xb,xK,xS0) % Function calcula_hu % calcula a altura de um escoamento uniforme num canal de sec~o ca % rectangular % % Calling sequence: % funcao(discharge,bed_width,strickler_K,bed_slope) % h_trial(1:101) = xb./2 erro(1:101) = 99999 while (erro>= 0.00001) seccao = xb.*h_trial; raioh = (xb.*h_trial)/(xb + 2*h_trial); seccao1 = xQ./(xK*xS0^.5 .* raioh.^(2/3)); erro = abs(seccao - seccao1); h_trial = seccao1./xb end calcula_hu = h_trial %end % function calcula_hu = funcao(xQ,xb,xK,xS0)

20