Simulating dynamic tanks in EMSO (Part 1)

This post starts to our sec­tion of HOW-TO texts. My obje­tive with this spe­cific post is to intro­duce using some free tools to dif­fer­ent applications.

A clas­sic prob­lem in process engi­neer­ing is the case of a dynamic tank where the out­put flow is pro­por­tional to its level (Fig. 1). This exam­ple is part of EMSO tuto­r­ial so that more details would be to con­sult in the EMSO man­ual.

Fig. 1. Dynamic tank.

Fig. 1. Dynamic tank.

In this approach­ing, the prob­lem of dynamic tank involves 3 vari­ables and 2 para­me­ters such below:

Vari­ables:

  • Fin: Input flow (m3/h)
  • Fout: Out­put flow (m3/h)
  • h: Tank level (m)

Para­me­ters:

  • A: Tank area (m2)
  • k: Valve con­stant (m2.5/h)

This sys­tem is mod­eled as sim­ple mate­r­ial bal­ance given to:

\frac{d(h A)}{dt} = F^{in} - F^{out}

where the pro­pri­eties are con­sid­ered con­stants so that, the vol­ume that goes into tank minus the vol­ume that goes out tank are equal to accu­mu­lated volume.

The out­put flow is given to valve equation:

F^{out} = k\sqrt{h}

where Fout is pro­por­tional to square root of the tank level h and a valve con­stant k.

EMSO mod­el­ing lan­guage is based on con­cepts of object-oriented pro­gram­ing. These kinds of appli­ca­tions get us pos­si­ble to rep­re­sent the prob­lem through a code. As a result, when we are read­ing the code we are also read­ing a descrip­tion of the prob­lem. EMSO mod­el­ing lan­guage presents 3 basic enti­ties: Model, DEVICES, and Flow­Sheet. An flow­sheet of process is rep­re­sented by the entity Flow­Sheet which is con­sti­tuted by a set of com­po­nents calls DEVICES. The DEVICES are equiv­a­lent to the true units of a process. In its turn, the math­e­mat­i­cal descrip­tion of each DEVICES is rep­re­sented by the entity Model.

The Model of a sin­gle tank is given below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using "types";
 
Model tank
    PARAMETERS
    k as Real (Brief="Valve constant", Default=4, Unit='m^2.5/h');
    A as area (Brief="Tank area", Default=2);
 
    VARIABLES
in  Fin  as flow_vol(Brief="Input flow");
out Fout as flow_vol(Brief="Output flow");
    h    as length(Brief="Tank level");
 
    EQUATIONS
    "Material balance"
    diff(A*h) = Fin - Fout;
 
    "Valve equation"
    Fout = k*sqrt(h);
end

The line 1 indi­cates that Model used a exter­nal file (“types”) where con­tains all use­ful def­i­n­i­tion of unit of mea­sure­ments such as area (line 6), flow_vol (lines 9–10), length (line 11), etc. In the line 4, the para­me­ters are declared. In the line 8, the vari­ables are declared. The in and out indi­cate that are input and out­put vari­ables respectively.

Since there is a struc­ture that rep­re­sents a sin­gle tank, we can eas­ily model a set of tanks in series (Fig. 2).

Fig. 2. Dynamic tanks in series.

Fig. 2. Dynamic tanks in series.

That set of tanks in series can be rep­re­sented by Flow­Sheet below. This struc­ture requires 1 input spec­i­fi­ca­tion (line 32) and 2 ini­tial con­di­tions (line 35). The time of inte­gra­tion, step, and other spec­i­fi­ca­tions to solver are made in the sec­tion OPTIONS (line 39).

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
FlowSheet tanks
    VARIABLES
    Fin        as flow_vol;
 
    DEVICES
    tank1      as tank;
    tank2      as tank;
 
    CONNECTIONS
    Fin        to tank1.Fin;
    tank2.Fout to tank2.Fin;
 
    SPECIFY
    Fin = 10*'m^3/h';
 
    INITIAL
    tank1.h = 1*'m';
    tank2.h = 1*'m';
 
    OPTIONS
    TimeStep = 0.1;
    TimeEnd = 2;
    TimeUnit = 'h';
end

The solu­tion of prob­lem can be viewed in the own simulator’s GUI. Plots of vari­ables to an ana­lyze of the sys­tem dynam­ics are showed at Fig. 3–4.

Fig. 3. Tank input and output flows.

Fig. 3. Tank input and out­put flows.

Fig. 4. Tank levels.

Fig. 4. Tank levels.

Related Posts with Thumbnails