simulação em MA usando Java

Transcrição

simulação em MA usando Java
Tanque.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
11/Jul/2010
import java.io.*;
public class Tanque
{
public static void main(String[] args) throws IOException
{
// CONSTANTES
// parametros do modelo do sistema
final
final
final
final
final
double
double
double
double
double
g
D
d
A
a
= 9.81;
= 1.00;
= 0.50;
= (Math.PI*D*D/4);
= (Math.PI*d*d/4);
final double h0 =
1.25;
//
//
//
//
//
aceleracao da gravidade
diametro do tanque
diametro do ralo
area da secao do tanque
area da secao do ralo
(m/s2)
(m)
(m)
(m2)
(m2)
// nivel inicial do tanque (m)
// parametros da simulacao
final double dt
final double tmax
final int
iplot
=
=
=
0.001;
10.0;
10;
// intervalo de integracao (s)
// período de simulacao
(s)
// intervalos de integracao por ponto plotado
=
=
1.0;
2.0;
// fluxo de entrada
// instante inicial
// sinal de entrada
final double Q
final double tstart
// VARIAVEIS
// variaveis da simulacao
double
double
double
double
double
double
t;
Qin;
Qout;
h;
ha;
v;
//
//
//
//
//
//
tempo
(s)
fluxo de entrada (m3/s)
fluxo de saida
(m3/s)
nivel do tanque (m)
nivel do tanque no passo anterior
(m)
taxa de variacao do nivel do tanque (m/s)
int k;
// inicializacao
ha = h0;
h = ha;
for (t=0,k=0; t<tmax; t+=dt,k++)
{
// obter o fluxo de entrada (vazão Qin)
if (t >= tstart) Qin = Q; else Qin=0;
// calcular o fluxo de saida no passo anterior
Qout = a * Math.sqrt(2*g*h);
// calcular a taxa de variacao do nivel do tanque dh/dt
v = (Qin - Qout)/A;
// integrar pelo metodo Euler explicito
ha = h;
h = ha + dt*v;
// gravar resultado
if ((k%iplot)==0) System.out.println(t+";"+h);
}
}
}
1 of 1
(m3/s)
(s)

Documentos relacionados