Académique Documents
Professionnel Documents
Culture Documents
CAMPINAS
MAIO - 2017
KARLA HOLZMEISTER SIMON
Campinas - 2017
2
Questo
O filsofo romano naturalista Plnio, o Velho, supostamente teve uma fonte
intermitente em seu jardim. Como na Figura 1, a gua entra em um tanque cilndrico, em
uma taxa constante Qentrada, e enche o tanque at atingir o nvel yalto. Neste ponto, a gua
escoa para fora do tanque atravs de um tubo de descarga circular (um sifo), produzindo
uma fonte na sada do tubo. A fonte funciona at que o nvel de gua diminua para ybaixo;
depois disso o sifo enche-se com ar e a fonte para. O ciclo ento repetido medida que
o tanque enche-se at atingir yalto e a fonte jorra de novo.
Quando o sifo est funcionando, o fluxo para fora Qsada pode ser calculado com
a frmula a seguir baseada na lei de Torricelli:
= 2 2
Dados:
RT = 0,1 m
Yalto = 0,1 m
Qentrada = 50 x 10-6 m3/s
r = 0,007 m
C = 0,6
Ybaixo = 0,025 m
g = 9,81 m/s2
3
Soluo do Problema
1. Modelagem
Balano de tanque
= +
Sabendo que o volume do cilindro pode ser calculado pela equao abaixo
= 2
(2 )
=
=
2
Ainda sabemos que o valor de Qsada segue a frmula baseada na lei de Torricelli
quando o tanque atingiu o yalto at que a gua desa at o nvel de ybaixo, e igual
zero quando o nvel da gua est subindo novamente. Dessa forma para a
implementao do problema em Octave utilizaremos uma varivel auxiliar (aux)
para simular esse comportamento.
2 2
=
2
4
2. Implementao em Octave
Para resolver essa EDO no Octave primeiro escrevemos uma funo que
determina o valor da varivel aux dependendo de y e calcula o lado direito da
EDO.
function dxdt=fun_ode(t,x)
global aux
Qentrada = 50e-6;
Rt=0.1;
r = 0.007;
C=0.6;
g=9.81;
if y <=0.025
aux=0;
elseif y >=0.1
aux=1;
endif
dxdt(1)=(Qentrada - aux*C*((2*g*y)^0.5)*pi*r^2)/(pi*(Rt^2));
endfunction
aux = 0;
t0 = [0 500];
y0 = 0;
[t,y]=ode45(@fun_ode,t0,y0);
5
Posteriormente foram testadas as funes ode23, ode78 e escrita uma rotina que
resolvia a equao utilizando Runge-Kutta de quarta ordem com passo fixo.
3. Resultados
Figura 2: Grfico do Nvel de gua no tanque em funo do tempo, utilizando a funo ode45
6
Figura 3: Grfico do Nvel de gua no tanque em funo do tempo, utilizando a funo ode23.
A figura 4 apresenta o resultado utilizando a funo ode78, e mais uma vez o comportamento
incorreto. A soluo chega mais prxima do valor correto para o acionamento do sifo, mas o
mesmo desligado muito acima do nvel em que o sifo se esvazia e a fonte para de jorrar.
Figura 4: Grfico do Nvel de gua no tanque em funo do tempo, utilizando a funo ode78.
Na tentativa de obter uma resposta mais prxima da soluo exta foi imposto um tamanho de
passo mximo na funo ode45 e conseguimos alcanar uma soluo que parece correta.
7
possvel observar na figura 5 o comportamento esperado para o problema, temos em um
primeiro momento o tanque enchendo de gua at atingir o nvel de 0,1 m, a partir desse
momento a fonte comea a jorrar e o nvel vai sendo reduzido gradativamente at atingir 0,025
m no qual o sifo se enche de ar e a fonte para e o tanque se encha novamente at que a gua
alcance mais uma vez o y = 0,1 m.
Figura 5: Grfico do Nvel de gua no tanque em funo do tempo, utilizando a funo ode45 com passo mximo.
8
Figura 6: Grfico do Nvel de gua no tanque em funo do tempo, utilizando a funo Runge-Kutta de quarta
ordem.
4. Discusses e concluso
Para entendermos porque uma funo to amplamente utilizada como a ode45 obtm
um resultado incorreto para o nosso problema primeiro precisamos observar que nos
pontos onde o sifo "ligado e desligado a EDO descontinua, temos o valor da
derivada mudando repentinamente de uma constante 0.0015915 m/s para -0.0068174 m/s,
no primeiro ponto de descontinuidade.
A funo ode45 utiliza o mtodo de Runge-Kutta de quarta e quinta ordem para
ajustar o passo, logo em toda iterao calculada a diferena entre as predies do mtodo
de Runge-Kutta em ordens diferentes e com essas predies estimado o erro de
truncamento local, se o erro for menor que a tolerncia se valida o passo que vinha sendo
utilizado e propem-se um novo passo maior para a prxima iterao, contudo se o erro
for maior que a tolerncia o passo reduzido para a diminuio do erro.
Em nosso problema, a princpio temos uma reta com inclinao constante, e no
definimos um valor de passo inicial, a funo utiliza um passo grande de 50 s que
corresponde a 10% do nosso intervalo de derivao para a primeira iterao e obtm um
valor y = 0,07958 m, como o erro obtido entre as duas ordens de RK so menores que a
tolerncia, na prxima iterao, a funo ode45, continuar utilizando um passo grande,
a funo ento faz a predio para a soluo utilizando RK de quarta e quinta ordem e
obtm um erro maior do que a tolerncia instruindo-o a reduzir o tamanho do passo
utilizado, contudo o y obtido nesse momento foi superior a yalto = 0,1 m portanto para a
funo, o sifo foi ligado e a derivada assume um valor negativo, deste modo mesmo
passando a utilizar um passo menor a varivel auxiliar j adotou o valor de 1, e s
retornar a 0 quando o nvel atingir ybaixo. O mesmo acontece para a seo prxima ao
ponto de y = 0,025 m, o passo utilizado relativamente grande e o y calculado pela funo
9
inferior ao limite de ybaixo fazendo com que seja acionado o mecanismo para o
desligamento do sifo, isto , a varivel auxiliar assume o valor de 0, e o tamanho do
passo reduzido. Dessa forma obtemos uma soluo em que aparentemente o sifo
acionado antes de atingir yalto e desligado sem chegar a ybaixo. Na realidade dentro do
programa os ys calculados atingem valores superiores e inferiores aos limites alto e
baixo, mas esses valores so descartados da soluo pois o erro de truncamento foi
superior a tolerncia definida para o mtodo.
De forma geral, esse tipo de rotina com controle adaptativo no lida muito bem com
esse modelo de descontinuidade pois o mesmo utiliza a inferncia do comportamento da
soluo com comparao de diferentes passos. Em contrapartida, essas rotinas so muito
teis e confiveis quando temos problemas com reas onde tamanhos de passo diferentes
so necessrios.
A soluo adequada de nosso problema pode ser encontrada impondo um tamanho
mximo de passo para a ode45, presente na figura 5. Neste caso foi imposto um passo
mximo de 0,1 s, esse passo mximo garante que a funo chegue mais prximo do valor
yalto antes que a varivel auxiliar assuma o valor de 1. O mesmo acontecer para o limite
inferior. Outra soluo utilizar a rotina com o passo fixo.
Apesar de chegarmos em uma soluo mais prxima da soluo correta temos um
custo computacional mais alto associado a imposio de um passo mximo. A soluo
utilizando o controle adaptativo do passo sem restries calcula a soluo em um tempo
computacional de 0,098741 s enquanto que com passo mximo esse tempo sobe para
3,2269 s, 32 vezes maior que o anterior. Para a soluo utilizando Runge-Kutta de quarta
ordem com passo fixo esse tempo inferior ao ode45 com restrio, 1,1860 s.
Dessa maneira conclumos que para a soluo de problemas onde o passo adaptativo
no descreve bem o comportamento da funo, a utilizao de uma rotina de passo fixo
possui custo computacional menor do que a imposio de uma restrio no passo, pois o
mtodo realizar menos clculos uma vez que no ser necessrio avaliar se o tamanho
do passo o adequado.
Outra observao importante que sempre que se realiza uma simulao deve-se
conhecer muito bem o problema sendo descrito, em uma anlise superficial poderia ter
sido aceita a soluo imposta pela rotina ode45 pois temos um comportamento que se
assemelha ao da fonte intermitente, o nvel sobe e desce como era de se esperar, mas,
contudo, no descreve corretamente o problema.
5. Bibliografia
10