08.04.2014 Views

primeiro colocado

primeiro colocado

primeiro colocado

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL<br />

ESCOLA DE ENGENHARIA<br />

DEPARTAMENTO DE ENGENHARIA MECÂNICA<br />

ENERGIA E FENÔMENOS DE TRANSPORTE<br />

CONSTRUÇÃO E OPERAÇÃO DE UM MEDIDOR DE VAZÃO VOLUMÉTRICA<br />

TIPO VENTURI<br />

por<br />

Daniel Savionek<br />

Francisco Kaderli<br />

Tiago Rathke<br />

Trabalho Final da Disciplina de Medições Térmicas<br />

Professor Paulo Smith Schneider<br />

Porto Alegre, julho de 2010.


RESUMO<br />

No presente trabalho é desenvolvido um sistema de medição de vazão que atenda às<br />

características específicas de medição em uma faixa de 2 a 10 l/min, com baixa incerteza e<br />

com baixa perda de carga. O medidor projetado e construído neste trabalho é o tubo Venturi<br />

clássico, com a base de cálculos e desenvolvimento derivados da equação de Bernoulli. Para<br />

leitura da vazão, obtida pela diferença entre as pressões em diferentes regiões do tubo<br />

Venturi, utilizou-se manômetros inclinados, os quais conferem uma melhor resolução ao<br />

equipamento. O medidor Venturi foi calibrado por intermédio de medições experimentais em<br />

uma bancada hidráulica, a partir das quais se determinou uma curva de ajuste para o<br />

coeficiente de descarga. Além disso, foi desenvolvido uma rotina computacional para efetuar<br />

o cálculo da vazão, a partir das leituras de altura de coluna d’água nos manômetros. Os<br />

resultados de vazão medidos, após calibração do experimento, são comparados com os<br />

valores reais de referência medidos pelo rotâmetro empregado na calibração, verificando-se<br />

baixos erros de medição, com um valor máximo em torno de 5%.<br />

PALAVRAS-CHAVES: Bernoulli, Venturi, Medidor de vazão<br />

ii


ABSTRACT<br />

The present work develops a system of flow measurement. The system meets the<br />

specific features of flow measurement within range of 2 to 10 l/min, with low measurement<br />

uncertainty and low pressure drop. The meter designed and built in this work is the classic<br />

Venturi tube, with the basis of calculations and development derived from the Bernoulli<br />

equation. To read the flow, which is obtained by the difference between pressures in different<br />

regions of the Venturi tube, inclined pressure gauges was used, which give better resolution to<br />

the equipment. The Venturi meter was calibrated through experimental measurements in a<br />

hydraulic bench, which it was determined a curve of adjustment to the discharge coefficient.<br />

Furthermore, computer software was developed, to perform the calculation of flow rate,<br />

according to the readings from the height of the water column in the manometer. The results<br />

of flow measured after calibration of the experiment are compared with the actual values<br />

measured by reference flow meter used in the calibration, verifying low measurement error,<br />

with a maximum of 5 %.<br />

KEYWORDS: Bernoulli, Venturi, Flow meter<br />

iii


SUMÁRIO<br />

RESUMO.................................................................................................................................... ii<br />

ABSTRACT .............................................................................................................................. iii<br />

SUMÁRIO ................................................................................................................................. iv<br />

LISTA DE FIGURAS ................................................................................................................ v<br />

LISTA DE TABELAS............................................................................................................... vi<br />

LISTA DE SÍMBOLOS ...........................................................................................................vii<br />

1. INTRODUÇÃO ..................................................................................................................... 1<br />

2. REVISÃO BIBLIOGRÁFICA .............................................................................................. 1<br />

2.1. VAZÃO VOLUMÉTRICA ............................................................................................ 1<br />

2.2. PRESSÃO ......................................................................................................................2<br />

2.2.1. Medição de pressão em escoamentos ......................................................................2<br />

2.2.1.1. Pressão estática ou termodinâmica ...................................................................2<br />

2.2.1.2. Pressão total ou de estagnação .........................................................................2<br />

2.2.1.3. Pressão dinâmica ou cinética ............................................................................3<br />

2.2.2.Instrumento para medição de pressão ......................................................................3<br />

2.2.2.1. Manômetro de tubo inclinado ...........................................................................3<br />

3. FUNDAMENTAÇÃO ........................................................................................................... 3<br />

4. PROJETO E CONSTRUÇÃO ............................................................................................... 5<br />

4.1. PROJETO CONCEITUAL ............................................................................................. 5<br />

4.2. DETALHAMENTO DO PROJETO ..............................................................................6<br />

4.3 FABRICAÇÃO ...............................................................................................................7<br />

5. CALIBRAÇÃO EXPERIMENTAL ...................................................................................... 9<br />

6. CALCULADORA DE VAZÃO ......................................................................................... 10<br />

7. RESULTADOS E ANÁLISES ........................................................................................... 11<br />

8. CONCLUSÕES ................................................................................................................... 11<br />

REFERÊNCIAS ....................................................................................................................... 12<br />

APÊNDICES ............................................................................................................................ 13<br />

iv


LISTA DE FIGURAS<br />

Figura 1 – Escoamento em um bocal genérico (Fonte: FOX e MCDONALD, 1995 apud<br />

SCHNEIDER, 2007). ................................................................................................................. 4<br />

Figura 2 – Perda de carga em medidores por obstrução (Fonte: FOX e MCDONALD, 1995<br />

apud SCHNEIDER, 2007). ......................................................................................................... 5<br />

Figura 3 – Vista dimétrica do tubo Venturi. ............................................................................... 6<br />

Figura 4 – Corte lateral do tubo Venturi, detalhe para dimensões e diâmetros utilizados. ........ 6<br />

Figura 5 – Detalhe construtivo do tubo Venturi. ........................................................................ 7<br />

Figura 6 – Visão geral do medidor tubo Venturi. ....................................................................... 8<br />

Figura 7 – Detalhe da inclinação dos manômetros para uma melhor resolução do<br />

equipamento................................................................................................................................ 8<br />

Figura 8 – Curva de ajuste para o coeficiente de descarga C d. ................................................... 9<br />

Figura 9 – Software desenvolvido para o cálculo da vazão do protótipo. ................................ 10<br />

v


LISTA DE TABELAS<br />

Tabela 1 – Medições experimentais para obtenção do coeficiente de descarga C d . ................... 9<br />

Tabela 2 – Resultados das medições com Venturi calibrado. .................................................. 11<br />

vi


LISTA DE SÍMBOLOS<br />

Massa específica [kg/m³]<br />

g Aceleração da gravidade [m/s ²]<br />

Razão entre diâmetros [adimensional]<br />

E Fator de velocidade de aproximação [adimensional]<br />

C d Coeficiente de descarga [adimensional]<br />

Q Vazão volumétrica [l/min]<br />

Q R Vazão volumétrica real de referência [l/min]<br />

Q teórica Vazão volumétrica teórica [l/min]<br />

V Velocidade do fluido [m/s]<br />

h Altura de coluna de água [m]<br />

p Pressão [Pa]<br />

h 1 Altura de coluna d’água inclinada à montante do medidor [m]<br />

h 2 Altura de coluna d’água inclinada à jusante do medidor [m]<br />

h Diferença de altura de coluna de água inclinada [m]<br />

h vertical Diferença de altura de coluna de água na vertical [m]<br />

Dt Diâmetro da obstrução [m]<br />

Diâmetro da canalização [m]<br />

D 1<br />

vii


1<br />

1. INTRODUÇÃO<br />

A necessidade de se medir vazão surgiu há muitos séculos quando, depois de canalizar a<br />

água para o consumo doméstico, a administração pública descobriu uma fonte de arrecadação<br />

e estabeleceu taxas para o consumo do líquido.<br />

No século XX, a necessidade de se medir a vazão de fluidos em geral tornou-se de<br />

fundamental importância, em decorrência do crescimento da aplicação dos processos<br />

contínuos na indústria.<br />

A medição de vazão por medidores de obstrução, apesar de ser muito antiga, ainda é<br />

amplamente utilizada. Entre esses medidores por obstrução, encontramos o tubo Venturi.<br />

O tubo Venturi é um excelente medidor de vazão de obstrução que tem como principal<br />

característica a baixa perda de carga imposta ao sistema.<br />

O presente trabalho tem como objetivo geral a construção de um medidor de vazão<br />

volumétrica para líquidos. Mais particularmente, um medidor capaz de operar na faixa de<br />

vazão de 2 a 10 litros por minuto. O protótipo construído é um medidor de vazão por<br />

obstrução do tipo Venturi.<br />

Além disso, o trabalho apresenta os seguintes objetivos específicos:<br />

Imposição da menor perda de carga possível<br />

Determinação das incertezas de medição associadas ao instrumento<br />

2. REVISÃO BIBLIOGRÁFICA<br />

2.1. VAZÃO VOLUMÉTRICA<br />

Segundo FOX et al, (2006), um fluido com velocidade v , em m/s, escoando em um tubo<br />

de área transversal A , em , tem a sua vazão volumétrica Q, em , definida como:<br />

Q = vA (1)<br />

Essa equação pode ser melhor definida levando em conta alguns parâmetros, como a<br />

conservação de massa em volume de controle (V.C.) pré definido. A massa que entra nesse<br />

V.C. deve ser igual à massa que sai dele, o que nos leva a equação da continuidade:<br />

A primeira parcela da soma é a taxa de variação de massa dentro do V.C. e a segunda<br />

parcela representa a taxa líquida de fluxo de massa através da superfície de controle e sua<br />

soma resulta em zero justamente pela pré-definição de constância de massa.<br />

Em casos especiais, a Equação (2) pode ser simplificada no caso de um escoamento<br />

incompressível onde ( ) permanece constante. O <strong>primeiro</strong> termo pode ser reduzido à<br />

zero, já que a integral de dV sobre todo o volume de controle é simplesmente o volume total<br />

do V.C. e dividindo os dois termos por ( ), temos, para um V.C. constante, a<br />

simplificação da Equação (2) em:<br />

Assim, essa integral para uma seção de superfície de controle é chamada de vazão em<br />

volume Q ( ). Para um escoamento incompressível, essa vazão que entra em um V.C.<br />

(2)<br />

(3)


2<br />

deve ser igual à vazão que sai do mesmo. Sendo a área transversal A (<br />

de controle, a Equação (3) fica:<br />

) do tubo a superfície<br />

(4)<br />

sendo a equação (4) a definição de vazão volumétrica.<br />

2.2. PRESSÃO<br />

A pressão P , em Pa, para um fluido em repouso, é definida como sendo a força F , em<br />

N, exercida pelo mesmo perpendicularmente a uma área unitária A , em , (SCHNEIDER,<br />

2007), expressa como:<br />

Sendo a pressão uma propriedade local do fluido, em uma situação estática, ela tem uma<br />

grande dependência da posição e não depende da direção (SCHNEIDER, 2007). Segundo<br />

White (2002) a pressão em um fluido estático uniforme varia apenas com a distância vertical,<br />

não importando a forma do recipiente. O mesmo autor refere que a pressão é igual em todos<br />

os pontos em um plano horizontal no fluido, variando apenas com a profundidade do mesmo.<br />

2.2.1. Medição de Pressão em Escoamentos<br />

Em um fluido escoando dentro de um tubo, com certa velocidade, existem três pressões<br />

atuantes sobre ele que são: a pressão de estagnação ou total, a pressão dinâmica ou cinética e<br />

a pressão estática ou termodinâmica.<br />

2.2.1.1. Pressão estática ou termodinâmica<br />

A pressão estática é aquela que atua nas paredes do tubo e pode ser obtida através de um<br />

instrumento de medição conectado a um pequeno orifício feito na parede de interface do<br />

escoamento. Esse furo deve ser feito com muito cuidado, a fim de se evitar rebarbas ou<br />

qualquer irregularidade que possa perturbar a medição<br />

A medição da pressão termodinâmica é de extrema importância para se obter a<br />

velocidade e direção de um escoamento, além de identificar o estado termodinâmico do fluido<br />

(SCHNEIDER, 2007).<br />

2.2.1.2. Pressão total ou de estagnação<br />

A pressão de estagnação é medida quando o fluido desacelera até a velocidade zero por<br />

meio de um processo sem atrito (FOX et al, 2006). Assim, em um escoamento<br />

incompressível, com diferenças de elevação desprezadas e sabendo que a velocidade de<br />

estagnação é zero, temos a equação de Bernoulli reduzida a:<br />

(5)<br />

(6)<br />

onde (Pa) é a pressão de estagnação e P (Pa) a pressão estática. O termo é a pressão<br />

dinâmica e v (m/s) a velocidade local do escoamento.


3<br />

2.2.1.3. Pressão dinâmica ou cinética<br />

A diferença entre a pressão de estagnação<br />

pressão dinâmica, equacionada por:<br />

(Pa) e a pressão estática P (Pa) resulta na<br />

(7)<br />

por:<br />

Desta relação podemos encontrar a expressão da velocidade local do escoamento, dada<br />

(8)<br />

2.2.2. Instrumento para Medição de Pressão<br />

2.2.2.1. Manômetro de Tubo Inclinado<br />

Um manômetro de tubo inclinado é um instrumento que serve para medir diferenciais<br />

de pressão com maior precisão, já que tem a vantagem de operar com escalas de maior<br />

graduação que os manômetros verticais, para a mesma variação de pressão (SCHNEIDER,<br />

2007).<br />

Três parâmetros definem a sensibilidade do manômetro de tubo inclinado: a densidade do<br />

fluido manométrico, a inclinação do tubo e a relação de diâmetros. Esses parâmetros devem<br />

ser os menores possíveis a fim de se obter uma boa sensibilidade. O líquido manométrico<br />

deve possuir a menor densidade relativa possível, ser atóxico, não inflamável, possuir<br />

pequenas perdas por evaporação e ter uma coloração para melhorar sua visibilidade. A razão<br />

de diâmetros deve ser a menor possível para que a maior parte da variação no nível do líquido<br />

ocorra no tubo de medição (FOX et al, 2006).<br />

3. FUNDAMENTAÇÃO<br />

A seguir é apresentado o equacionamento empregado para a determinação da vazão<br />

volumétrica em medidores de vazão por obstrução para escoamentos incompressíveis.<br />

O equacionamento visa estabelecer uma relação da vazão com a diferença de pressão<br />

medida a montante e a jusante da obstrução. As expressões da vazão teórica são obtidas a<br />

partir das equações da continuidade e de Bernoulli, considerando-se um fluido ideal, em<br />

escoamento adiabático e sem atrito.<br />

A equação de Bernoulli, aplicada a um fluido escoando ao longo de uma linha de<br />

corrente, é dada por:<br />

onde p é a pressão, é a massa específica do fluido, V é a velocidade do escoamento, g é a<br />

aceleração da gravidade e z é a cota de altura do escoamento.<br />

No caso dos medidores de vazão por obstrução, a equação de Bernoulli deve ser<br />

aplicada em dois pontos de observação 1 e 2, antes e depois da obstrução respectivamente,<br />

como pode ser visualizado na figura abaixo.<br />

(9)


4<br />

Figura 1 – Escoamento em um bocal genérico (Fonte: FOX e MCDONALD, 1995).<br />

Tomando-se então as seções de observação 1 e 2 ao longo da linha de corrente, e<br />

assumindo que a massa específica é constante (escoamento incompressível), que o<br />

escoamento é permanente, sem atrito, sem diferença de cota z e com velocidade uniforme ao<br />

longo das seções 1 e 2, obtém-se:<br />

Também respeitando condições acima expostas, a equação da continuidade é dada por:<br />

(10)<br />

onde A 1 e A 2 representam, respectivamente, a área da canalização em 1 e a área da veia<br />

contraída em 2, conforme pode ser visualizado na Figura 1.<br />

Combinando-se as equações (10) e (11), obtém-se uma expressão para a velocidade na<br />

descarga da obstrução V 2 e consequentemente para a vazão Q, em função da diferença de<br />

pressão:<br />

(11)<br />

(12)<br />

A determinação do diâmetro D 2 é difícil de ser executada. Dessa forma, no seu lugar<br />

emprega-se o diâmetro da obstrução Dt, conforme a Figura 1, incorporado por intermédio da<br />

razão entre diâmetros β:<br />

(13)<br />

que, por sua vez, é incorporado pelo fator de velocidade de aproximação E, tal que:<br />

Dessa forma, a equação (12) para a vazão pode ser reescrita como:<br />

(14)


5<br />

(15)<br />

A equação acima é uma expressão de vazão teórica, não considerando as perdas devido<br />

ao atrito de escoamento. Para corrigir este problema, introduz-se o coeficiente adimensional<br />

de descarga C d , tal que:<br />

(16)<br />

Esta é a equação final para cálculo de vazão através de medidor por obstrução, em função<br />

da diferença de pressão ∆p (p 1 – p 2 ) medidas a montante e a jusante da obstrução.<br />

O coeficiente de descarga Cd pode ser obtido em tabelas em função do número de<br />

Raynolds e do diâmetro interno dos tubos, ou através de calibração experimental.<br />

A diferença de pressão ∆p é obtida através de tomadas de pressão estática medidas a<br />

montante e a jusante da obstrução, segundo a equação:<br />

∆p = g∆h vertical (17)<br />

onde ∆h vertical representa a diferença de altura vertical entre o tubo a montante e o tubo a<br />

jusante da obstrução.<br />

4. PROJETO E CONSTRUÇÃO<br />

4.1. PROJETO CONCEITUAL<br />

No projeto conceitual foram avaliados diversos tipos de medidores de vazão, tais como<br />

a placa de orifício, bocais, Venturi, anemômetro de fio quente, ultrassom, tipo turbina, dentre<br />

outros. Porém, tendo em vista os objetivos propostos para este trabalho, principalmente em<br />

relação à imposição de uma baixa perda de carga no medidor, optou-se pelo projeto do tubo<br />

Venturi. A baixa perda de carga imposta por este tipo de medidor pode ser visualizada na<br />

figura abaixo, em comparação com a placa de orifício e o bocal.<br />

Figura 2 - Perda de carga em medidores por obstrução (Fonte: FOX e MCDONALD, 1995).


6<br />

Como se pode visualizar na figura acima, enquanto os medidores de placa de orifício e<br />

bocal possuem uma perda de carga elevada, geralmente com valores acima de 50%, o tubo<br />

Venturi apresenta valores consideravelmente menores, com perdas de carga inferiores a 30%,<br />

justificando a sua escolha como o medidor de vazão a ser projetado.<br />

Além disso, outro parâmetro que influencia na perda de carga, é a razão entre os<br />

diâmetros da obstrução e da canalização (β), como também pode ser visualizado no gráfico<br />

acima. Assim, adota-se como premissa de projeto, um valor de β acima de 0,5.<br />

4.2. DETALHAMENTO DO PROJETO<br />

Definido o tipo de medidor de vazão, parte-se para seu desenvolvimento. Com o auxílio<br />

de um software de CAD (Solidworks), o tubo Venturi foi desenhado respeitando as dimensões<br />

do sistema onde ele será acoplado, e levando em consideração seus parâmetros de projeto. Na<br />

figura abaixo pode-se visualizar o projeto do tubo Venturi em vista dimétrica.<br />

Figura 3 - Vista dimétrica do tubo Venturi.<br />

Como citado no item 4.1, a razão entre os diâmetros da obstrução e da canalização (β) é<br />

de suma importância na influência da perda de carga do medidor. Sabendo que o diâmetro da<br />

canalização D 1 vale 21,4 mm, projetou-se o diâmetro da obstrução D t de 12,5mm, que<br />

corresponde a um valor de β igual a 0,584, calculado de acordo com a equação (5). Este valor<br />

de β está de acordo com o requisito definido no projeto conceitual. Pode-se visualizar na<br />

figura 4, todas as dimensões do Venturi projetado.<br />

Figura 4 - Corte lateral do tubo Venturi, detalhe para dimensões e diâmetros utilizados.


7<br />

A partir do valor de β, obtém-se um valor de fator de velocidade de aproximação E, de<br />

1,063, de acordo com equação (14). Ainda, através do diâmetro da obstrução, calcula-se a<br />

área da obstrução A t , chegando num valor de 1,227E-04 m².<br />

Podemos visualizar no corte lateral da figura 4, as tomadas de alta pressão e de baixa<br />

pressão, respectivamente. Além disso, nas extremidades do Venturi foram projetados rebaixos<br />

para um acoplamento adequado na conexão tubo-medidor. As angulações do cone<br />

convergente de 21º (à montante), e divergente de 15º (à jusante) foram adotados de acordo<br />

com especificações de um tubo Venturi Clássico (DELMEÉ, 2003). Os desenhos de projeto<br />

do tubo Venturi encontram-se nos A e B.<br />

4.3. FABRICAÇÃO<br />

O tubo Venturi foi fabricado a partir de uma barra de aço SAE 1045 através do processo<br />

de usinagem com tolerâncias de ±0,1mm. As paredes internas do medidor, após serem<br />

usinadas, foram polidas, para gerar uma superfície interna com baixa rugosidade,<br />

consequentemente, contribuindo para uma baixa perda de carga. A figura a seguir apresenta o<br />

tubo Venturi construído em detalhe.<br />

Figura 5 - Detalhe Construtivo do tubo Venturi.<br />

Nas saídas de tomadas de pressão foram soldados canos metálicos para permitir o<br />

acoplamento das mangueiras conectadas ao manômetro. As mangueiras foram conectadas<br />

com abraçadeiras nos canos metálicos para evitar vazamentos.<br />

Em cada extremidade do Venturi foram colados canos de PVC de ¾” com comprimento<br />

de 22 cm, conferindo à montante, e à jusante, um comprimento mínimo de dez diâmetros<br />

cada. No cano a montante foi acoplado uma luva para permitir o acoplamento à bancada de<br />

teste. No cano a jusante foi acoplado uma curva de 90°. Os detalhes citados podem ser<br />

visualizados na figura a seguir.<br />

Para a uma leitura mais precisa das pressões, para cada seção transversal foi utilizado<br />

duas tomadas de pressão e a leitura indicada pelo manômetro é a media destas leituras. Esta<br />

leitura media das pressões é possível através da utilização de anéis piezométricos (DELMEÉ,<br />

2003) . A figura a seguir apresenta uma visão geral do medidor tubo Venturi.


8<br />

Figura 6 - Visão geral do medidor tubo Venturi.<br />

Os 2 manômetros foram construídos com mangueiras transparentes de plástico, fixadas<br />

uma ao lado da outra. Elas foram fixadas num ângulo de 45° em relação ao eixo vertical em<br />

uma base de madeira, com o intuito de ampliar a resolução do medidor. Foram colocadas<br />

escalas de medição atrás das mangueiras, para possibilitar a medição da diferença de altura de<br />

coluna de água. A possibilidade mínima de leitura é de 1 em 1 mm na posição inclinada.<br />

Assim, pela equação a seguir podemos chegar a uma leitura de variação mínima na posição<br />

vertical de 0,707 mm.<br />

Δh vertical = (h 1 -h 2 )sen(45º) (18)<br />

Na figura a seguir, pode-se visualizar a inclinação dos manômetros em 45º adotadas no<br />

medidor.<br />

Figura 7 - Detalhe da inclinação dos manômetros para uma melhor resolução do equipamento.


9<br />

5. CALIBRAÇÃO EXPERIMENTAL<br />

O procedimento de calibração experimental consiste na determinação do coeficiente de<br />

descarga C d do Venturi, por intermédio de medições de vazão realizadas na bancada<br />

hidráulica disponibilizada pelo Laboratório de Ensaios Térmicos e Aerodinâmicos (LETA). A<br />

bancada é composta por uma bomba hidráulica, uma válvula de controle de vazão, um<br />

rotâmetro e uma tomada hidráulica com rosca macho de ¾″ de tubo PVC, a partir da qual o<br />

Venturi é conectado. Após passar pelo medidor Venturi, o escoamento é liberado para o<br />

ambiente. Antes de iniciar o procedimento de medição é necessário certificar-se que não<br />

existem bolhas de ar nos tubos de tomada de pressão.<br />

Para determinação do coeficiente de descarga Cd foram realizadas várias medições,<br />

impondo vazões conhecidas, ajustadas pela leitura no rotâmetro. Essas vazões são definidas<br />

como as vazões reais Q R . A partir da leitura das alturas h 1 e h 2 , calcula-se o ∆h e o ∆h vertical .<br />

Então, com auxílio das equações (15) e (17), para a massa específica da água de 997 kg/m 3 ,<br />

aceleração gravitacional g de 9,81 m/s 2 , e fator de velocidade de aproximação E e área da<br />

obstrução A t , como definidos na seção 4 do trabalho, calcula-se os valores de vazão teóricas<br />

Q teórica . Assim, o coeficiente de descarga C d pode ser obtido por:<br />

A tabela a seguir apresenta os coeficientes de descarga C d obtidos na calibração<br />

experimental para valores de vazão real Q R contidos na faixa de 2 a 10 l/min.<br />

Tabela 1 – Medições experimentais para obtenção do coeficiente de descarga C d .<br />

(19)<br />

A partir dos dados acima, plota-se um gráfico de dispersão dos coeficientes de descarga<br />

C d versus a variação de altura na vertical ∆h vertical , como se pode visualizar na figura abaixo.<br />

Figura 8 – Curva de ajuste para o coeficiente de descarga C d .


10<br />

No gráfico acima, os pontos em azul representam os valores do coeficiente de descarga<br />

C d obtidos experimentalmente em função do ∆h vertical . A partir desses pontos insere-se uma<br />

curva de ajuste para o coeficiente de descarga C d , representada por um polinômio de 4ª<br />

ordem, como indicado pela linha vermelha do gráfico acima. A curva adotada possui um<br />

coeficiente de correção R² de 0,956, representando uma boa qualidade de ajuste. Assim,<br />

obtém-se a seguinte equação do coeficiente de descarga C d em função da variação do ∆h vertical :<br />

C d = -74282∆h vertical 4 + 16703∆h vertical 3 - 1333∆h vertical 2 + 45,01∆h vertical + 0,406 (20)<br />

Esta equação então é empregada para determinação do coeficiente de descarga C d usado<br />

na equação (16) para o cálculo da vazão medida pelo Venturi construído.<br />

6. CALCULADORA DE VAZÃO<br />

Juntamente com o protótipo, foi desenvolvido em paralelo, um software para o auxílio do<br />

calculo da vazão, levando em consideração todas as variáveis mencionadas neste trabalho, e<br />

de acordo com o equacionamento apresentado na seção 3. Este software, denominado “Vazão<br />

Express” foi desenvolvido na linguagem de programação JAVA. O código fonte do software<br />

pode ser visualizado no Apêndice C. A figura abaixo, demonstra o layout do software, no qual<br />

possui comandos simples, e de fácil compreensão.<br />

Figura 9 - Software desenvolvido para o cálculo da vazão do protótipo.<br />

Para utilização do software, basta visualizar e inserir as respectivas alturas lidas nos<br />

manômetros inclinados (h 1 e h 2 em mm), e pressionar o botão “Calcular”. As saídas do<br />

programa serão:<br />

- A variação da altura manométrica já decomposta na direção vertical, Δh vertical , em m;<br />

- A variação de pressão ΔP, em N/m²;<br />

- A vazão calculada Q, em m³/s;<br />

- A vazão calculada Q, em l/min;


11<br />

Tendo todos os valores em mãos, caso haja a necessidade de verificar o erro de medição<br />

do protótipo, o software possibilita o seu cálculo. Para isso, basta preencher o campo, com a<br />

vazão real do escoamento.<br />

7. RESULTADOS E ANÁLISES<br />

Os valores de vazão obtidos nas medições com o Venturi, empregando a curva de ajuste<br />

definida na calibração, encontram-se listados na tabela abaixo.<br />

Tabela 2 – Resultados das medições com Venturi calibrado.<br />

Na tabela acima, pode-se visualizar o erro associado a cada medição, comparando-se o<br />

valor medido pelo Venturi com a vazão real de referência ajustada no rotâmetro. Nota-se que<br />

para as vazões mais próximas de 2 l/min os erros de medição são maiores, com um erro<br />

máximo de 5,57%.<br />

8. CONCLUSÕES<br />

O projeto, construção e calibração do medidor de vazão tipo Venturi foram realizados<br />

com sucesso, atendendo os requisitos de medição de vazão em uma faixa de 2 a 10 l/min.<br />

Além disso, todo projeto foi desenvolvido visando uma baixa imposição de perda de carga no<br />

sistema.<br />

A curva adotada na calibração apresentou boa qualidade de ajuste, fazendo com que os<br />

resultados de medição de vazão obtidos pelo Venturi ficassem muito próximos dos valores<br />

medidos pelo rotâmetro (valores de referência).<br />

Segundo outro aspecto, o desenvolvimento do software de cálculo de vazão (Vazão<br />

Express), contribuiu para a otimização das medições, tornando a tarefa rápida e intuitiva.<br />

Por fim, conclui-se que é possível construir um medidor de vazão eficiente, empregandose<br />

técnicas de fabricação e montagem relativamente simples, juntamente com a utilização de<br />

materiais de fácil aquisição no mercado.


12<br />

REFERÊNCIAS<br />

DELMÉE, G. J. Manual de Medição de Vazão. Editora Edgard Blücher Ltda, 3ª edição, São<br />

Paulo, 2003.<br />

FOX, R. W.; MCDONALD, A. T.; PRITCHARD, P. J. Introdução à Mecânica dos Fluidos.<br />

Editora LTC, 6ª edição, Rio Janeiro, 2006.<br />

SCHNEIDER, P. S. Medição de Velocidade e Vazão de Fluidos. Departamento de Engenharia<br />

Mecânica, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2007.<br />

SCHNEIDER, P. S. Medição de Pressão. Departamento de Engenharia Mecânica, Universidade<br />

Federal do Rio Grande do Sul, Porto Alegre, 2007.


13<br />

APÊNDICES<br />

APÊNDICE A – Vista dimétrica do tubo Venturi


APÊNDICE B – Corte lateral do tubo Venturi, detalhe para dimensões e diâmetros utilizados.<br />

14


15<br />

APÊNDICE C – Código fonte do software “Vazão Express”.<br />

/*<br />

* To change this template, choose Tools | Templates<br />

* and open the template in the editor.<br />

*/<br />

/*<br />

* CalculoVazao.java<br />

*<br />

* Created on 03/07/2010, 18:21:50<br />

*/<br />

/**<br />

*<br />

* @author Francisco<br />

*/<br />

public class CalculoVazao extends javax.swing.JFrame {<br />

/** Creates new form CalculoVazao */<br />

public CalculoVazao() {<br />

initComponents();<br />

}<br />

/** This method is called from within the constructor to<br />

* initialize the form.<br />

* WARNING: Do NOT modify this code. The content of this method is<br />

* always regenerated by the Form Editor.<br />

*/<br />

@SuppressWarnings("unchecked")<br />

// //GEN-BEGIN:initComponents<br />

private void initComponents() {<br />

jPanel1 = new javax.swing.JPanel();<br />

jLabel1 = new javax.swing.JLabel();<br />

jLabel3 = new javax.swing.JLabel();<br />

jButton1 = new javax.swing.JButton();<br />

jTextFieldH1 = new javax.swing.JTextField();<br />

jTextFieldH2 = new javax.swing.JTextField();<br />

jLabel10 = new javax.swing.JLabel();<br />

jLabel9 = new javax.swing.JLabel();<br />

jButtonLimpar = new javax.swing.JButton();<br />

jLabel2 = new javax.swing.JLabel();<br />

jLabel4 = new javax.swing.JLabel();<br />

jLabel5 = new javax.swing.JLabel();<br />

jLabel6 = new javax.swing.JLabel();<br />

jLabel7 = new javax.swing.JLabel();<br />

jTextFieldDeltaH = new javax.swing.JTextField();<br />

jTextFieldCd = new javax.swing.JTextField();<br />

jTextFieldDeltaP = new javax.swing.JTextField();<br />

jTextFieldQm3s = new javax.swing.JTextField();<br />

jTextFieldQlmin = new javax.swing.JTextField();<br />

jPanelErro = new javax.swing.JPanel();<br />

jLabelClique = new javax.swing.JLabel();<br />

jPanel2 = new javax.swing.JPanel();<br />

jLabelQreal = new javax.swing.JLabel();<br />

jTextFieldQreal = new javax.swing.JTextField();<br />

jPanel3 = new javax.swing.JPanel();<br />

jButtonCalcularErro = new javax.swing.JButton();<br />

jLabelErro = new javax.swing.JLabel();<br />

jTextFieldErro = new javax.swing.JTextField();<br />

jLabel8 = new javax.swing.JLabel();<br />

jLabel11 = new javax.swing.JLabel();<br />

jLabel12 = new javax.swing.JLabel();<br />

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);<br />

setTitle("Vazão Express");<br />

jLabel1.setText("Valor h1:");<br />

jLabel3.setText("Valor h2:");<br />

jButton1.setText("Calcular");<br />

jButton1.addActionListener(new java.awt.event.ActionListener() {<br />

public void actionPerformed(java.awt.event.ActionEvent evt) {


16<br />

});<br />

}<br />

jButton1ActionPerformed(evt);<br />

jLabel10.setText("mm");<br />

jLabel9.setText("mm");<br />

jButtonLimpar.setText("Limpar");<br />

jButtonLimpar.addActionListener(new java.awt.event.ActionListener() {<br />

public void actionPerformed(java.awt.event.ActionEvent evt) {<br />

jButtonLimparActionPerformed(evt);<br />

}<br />

});<br />

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);<br />

jPanel1.setLayout(jPanel1Layout);<br />

jPanel1Layout.setHorizontalGroup(<br />

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addGap(20, 20, 20)<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addComponent(jLabel3)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jTextFieldH2, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

41, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addComponent(jLabel1)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jTextFieldH1)))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addComponent(jLabel10)<br />

.addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, 359,<br />

Short.MAX_VALUE)))<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addGap(46, 46, 46)<br />

.addComponent(jButton1)<br />

.addGap(85, 85, 85)<br />

.addComponent(jButtonLimpar)))<br />

.addContainerGap())<br />

);<br />

jPanel1Layout.setVerticalGroup(<br />

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel1Layout.createSequentialGroup()<br />

.addGap(16, 16, 16)<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel1)<br />

.addComponent(jTextFieldH1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabel9))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel3)<br />

.addComponent(jTextFieldH2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabel10))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9,<br />

Short.MAX_VALUE)<br />

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jButton1)<br />

.addComponent(jButtonLimpar))<br />

.addContainerGap())<br />

);<br />

jLabel2.setText("Δh vertical:");


17<br />

jLabel4.setText("Coeficiente de descarga adotado (Cd):");<br />

jLabel5.setText("ΔP:");<br />

jLabel6.setText("Q[m³/s]:");<br />

jLabel7.setFont(new java.awt.Font("Tahoma", 1, 14));<br />

jLabel7.setText("Q[l/min]:");<br />

jTextFieldDeltaP.addActionListener(new java.awt.event.ActionListener() {<br />

public void actionPerformed(java.awt.event.ActionEvent evt) {<br />

jTextFieldDeltaPActionPerformed(evt);<br />

}<br />

});<br />

jTextFieldQlmin.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N<br />

jLabelClique.setText("Caso necessite verificar o erro, digite o valor da vazão real:");<br />

jLabelQreal.setText("Vazão real [l/min]:");<br />

jButtonCalcularErro.setText("Calcular");<br />

jButtonCalcularErro.addActionListener(new java.awt.event.ActionListener() {<br />

public void actionPerformed(java.awt.event.ActionEvent evt) {<br />

jButtonCalcularErroActionPerformed(evt);<br />

}<br />

});<br />

jLabelErro.setText("Erro:");<br />

jLabel8.setText("%");<br />

javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);<br />

jPanel3.setLayout(jPanel3Layout);<br />

jPanel3Layout.setHorizontalGroup(<br />

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel3Layout.createSequentialGroup()<br />

.addContainerGap()<br />

.addComponent(jButtonCalcularErro)<br />

.addGap(18, 18, 18)<br />

.addComponent(jLabelErro)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jTextFieldErro, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jLabel8)<br />

.addContainerGap(27, Short.MAX_VALUE))<br />

);<br />

jPanel3Layout.setVerticalGroup(<br />

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel3Layout.createSequentialGroup()<br />

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jButtonCalcularErro)<br />

.addComponent(jLabelErro)<br />

.addComponent(jTextFieldErro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabel8))<br />

.addContainerGap(19, Short.MAX_VALUE))<br />

);<br />

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);<br />

jPanel2.setLayout(jPanel2Layout);<br />

jPanel2Layout.setHorizontalGroup(<br />

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel2Layout.createSequentialGroup()<br />

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel2Layout.createSequentialGroup()<br />

.addGap(71, 71, 71)<br />

.addComponent(jLabelQreal)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addComponent(jTextFieldQreal, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

24, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(jPanel2Layout.createSequentialGroup()


18<br />

.addGap(33, 33, 33)<br />

.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)))<br />

.addContainerGap(76, Short.MAX_VALUE))<br />

);<br />

jPanel2Layout.setVerticalGroup(<br />

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanel2Layout.createSequentialGroup()<br />

.addContainerGap()<br />

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabelQreal)<br />

.addComponent(jTextFieldQreal, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18,<br />

Short.MAX_VALUE)<br />

.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addContainerGap())<br />

);<br />

javax.swing.GroupLayout jPanelErroLayout = new javax.swing.GroupLayout(jPanelErro);<br />

jPanelErro.setLayout(jPanelErroLayout);<br />

jPanelErroLayout.setHorizontalGroup(<br />

jPanelErroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanelErroLayout.createSequentialGroup()<br />

.addContainerGap()<br />

.addGroup(jPanelErroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabelClique, javax.swing.GroupLayout.DEFAULT_SIZE, 325,<br />

Short.MAX_VALUE))<br />

.addContainerGap())<br />

);<br />

jPanelErroLayout.setVerticalGroup(<br />

jPanelErroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(jPanelErroLayout.createSequentialGroup()<br />

.addGap(33, 33, 33)<br />

.addComponent(jLabelClique)<br />

.addGap(18, 18, 18)<br />

.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))<br />

);<br />

jLabel11.setText("m");<br />

jLabel12.setText("N/m²");<br />

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());<br />

getContentPane().setLayout(layout);<br />

layout.setHorizontalGroup(<br />

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(layout.createSequentialGroup()<br />

.addGap(18, 18, 18)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jLabel2)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jTextFieldDeltaH, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

62, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 31,<br />

javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jLabel4)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addComponent(jTextFieldCd, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

46, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(layout.createSequentialGroup()<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jLabel7)


19<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jTextFieldQlmin, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

50, Short.MAX_VALUE))<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jLabel6)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addComponent(jTextFieldQm3s, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

66, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jLabel5)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addComponent(jTextFieldDeltaP, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

59, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addGap(7, 7, 7)<br />

.addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

25, Short.MAX_VALUE)))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addComponent(jPanelErro, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

Short.MAX_VALUE)))<br />

.addContainerGap())<br />

.addGroup(layout.createSequentialGroup()<br />

.addContainerGap()<br />

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

Short.MAX_VALUE))<br />

);<br />

layout.setVerticalGroup(<br />

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(layout.createSequentialGroup()<br />

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jTextFieldDeltaH, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabel11))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel4)<br />

.addComponent(jTextFieldCd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />

.addGroup(layout.createSequentialGroup()<br />

.addGap(20, 20, 20)<br />

.addComponent(jPanelErro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,<br />

javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addGroup(layout.createSequentialGroup()<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br />

.addComponent(jLabel5)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jTextFieldDeltaP, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)<br />

.addComponent(jLabel12)))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel6)<br />

.addComponent(jTextFieldQm3s, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))<br />

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />

.addComponent(jLabel7)


20<br />

.addComponent(jTextFieldQlmin, javax.swing.GroupLayout.PREFERRED_SIZE,<br />

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))<br />

.addContainerGap(63, Short.MAX_VALUE))<br />

);<br />

pack();<br />

}// //GEN-END:initComponents<br />

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-<br />

FIRST:event_jButton1ActionPerformed<br />

double h1, h2, deltaH, cD, deltaP, qm3s, qlmin;<br />

h1 = Float.parseFloat(jTextFieldH1.getText());<br />

h2 = Float.parseFloat(jTextFieldH2.getText());<br />

deltaH = ((h1-h2)*0.7071)*0.001;<br />

deltaP = 997*9.81*deltaH;<br />

cD = -74282*Math.pow(deltaH, 4)+16703*Math.pow(deltaH, 3)-1333*Math.pow(deltaH,<br />

2)+45.01*deltaH+0,406;<br />

qm3s = cD*1.063834947*0.000122718*Math.pow((2*deltaP)/997, 0.5);<br />

qlmin = qm3s*60000;<br />

jTextFieldDeltaH.setText(String.valueOf(trunc(deltaH,5)));<br />

jTextFieldDeltaP.setText(String.valueOf(trunc(deltaP,2)));<br />

jTextFieldCd.setText(String.valueOf(trunc(cD,3)));<br />

jTextFieldQm3s.setText(String.valueOf(trunc(qm3s,8)));<br />

jTextFieldQlmin.setText(String.valueOf(trunc(qlmin,2)));<br />

}//GEN-LAST:event_jButton1ActionPerformed<br />

private void jTextFieldDeltaPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-<br />

FIRST:event_jTextFieldDeltaPActionPerformed<br />

// TODO add your handling code here:<br />

}//GEN-LAST:event_jTextFieldDeltaPActionPerformed<br />

private void jButtonLimparActionPerformed(java.awt.event.ActionEvent evt) {//GEN-<br />

FIRST:event_jButtonLimparActionPerformed<br />

jTextFieldDeltaH.setText(null);<br />

jTextFieldDeltaP.setText(null);<br />

jTextFieldCd.setText(null);<br />

jTextFieldQm3s.setText(null);<br />

jTextFieldQlmin.setText(null);<br />

jTextFieldH1.setText(null);<br />

jTextFieldH2.setText(null);<br />

jTextFieldQreal.setText(null);<br />

jTextFieldErro.setText(null);<br />

}//GEN-LAST:event_jButtonLimparActionPerformed<br />

private void jButtonCalcularErroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-<br />

FIRST:event_jButtonCalcularErroActionPerformed<br />

float qReal, qlmin, erro;<br />

qReal = Float.parseFloat(jTextFieldQreal.getText());<br />

qlmin = Float.parseFloat(jTextFieldQlmin.getText());<br />

erro = ((qlmin*100)/qReal)-100;<br />

jTextFieldErro.setText(String.valueOf(trunc(erro,2)));<br />

}//GEN-LAST:event_jButtonCalcularErroActionPerformed<br />

/* retorna o valor truncado no numero de decimais especificadas */<br />

public static double trunc(double value, int decimais) {<br />

double p = Math.pow(10, decimais);<br />

return Math.floor(value * p) / p;<br />

}<br />

/**<br />

* @param args the command line arguments<br />

*/<br />

public static void main(String args[]) {<br />

java.awt.EventQueue.invokeLater(new Runnable() {<br />

public void run() {<br />

try {<br />

Thread.sleep(5000);<br />

} catch (InterruptedException e) {<br />

}<br />

new CalculoVazao().setVisible(true);<br />

}


21<br />

}<br />

});<br />

// Variables declaration - do not modify//GEN-BEGIN:variables<br />

private javax.swing.JButton jButton1;<br />

private javax.swing.JButton jButtonCalcularErro;<br />

private javax.swing.JButton jButtonLimpar;<br />

private javax.swing.JLabel jLabel1;<br />

private javax.swing.JLabel jLabel10;<br />

private javax.swing.JLabel jLabel11;<br />

private javax.swing.JLabel jLabel12;<br />

private javax.swing.JLabel jLabel2;<br />

private javax.swing.JLabel jLabel3;<br />

private javax.swing.JLabel jLabel4;<br />

private javax.swing.JLabel jLabel5;<br />

private javax.swing.JLabel jLabel6;<br />

private javax.swing.JLabel jLabel7;<br />

private javax.swing.JLabel jLabel8;<br />

private javax.swing.JLabel jLabel9;<br />

private javax.swing.JLabel jLabelClique;<br />

private javax.swing.JLabel jLabelErro;<br />

private javax.swing.JLabel jLabelQreal;<br />

private javax.swing.JPanel jPanel1;<br />

private javax.swing.JPanel jPanel2;<br />

private javax.swing.JPanel jPanel3;<br />

private javax.swing.JPanel jPanelErro;<br />

private javax.swing.JTextField jTextFieldCd;<br />

private javax.swing.JTextField jTextFieldDeltaH;<br />

private javax.swing.JTextField jTextFieldDeltaP;<br />

private javax.swing.JTextField jTextFieldErro;<br />

private javax.swing.JTextField jTextFieldH1;<br />

private javax.swing.JTextField jTextFieldH2;<br />

private javax.swing.JTextField jTextFieldQlmin;<br />

private javax.swing.JTextField jTextFieldQm3s;<br />

private javax.swing.JTextField jTextFieldQreal;<br />

// End of variables declaration//GEN-END:variables<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!