1 | #* |
---|
2 | |
---|
3 | Arquivo de exemplo do EM·SO (TM) |
---|
4 | |
---|
5 | Descrição do flowsheet de uma coluna batelada com controle ótimo |
---|
6 | de composição. |
---|
7 | Modelo proposto por Logsdson e Biegler. |
---|
8 | |
---|
9 | *# |
---|
10 | |
---|
11 | Model BatchColumn |
---|
12 | PARAMETERS |
---|
13 | Np as Integer(Brief="Number of Plates"); |
---|
14 | Nc as Integer(Brief="Number of Components"); |
---|
15 | purity as Real; |
---|
16 | Hi as Real; |
---|
17 | A(Nc) as Real; |
---|
18 | B(Nc) as Real; |
---|
19 | C(Nc) as Real; |
---|
20 | P as Real; |
---|
21 | V as Real; |
---|
22 | |
---|
23 | VARIABLES |
---|
24 | H0 as Real(Default=1); |
---|
25 | x1(Np+1) as Real(Default=0.55, Lower = 0, Upper = 1); |
---|
26 | x2(Np+1) as Real(Default=0.45, Lower = 0, Upper = 1); |
---|
27 | y1(Np+1) as Real(Default=0.3, Lower = 0, Upper = 1); |
---|
28 | y2(Np+1) as Real(Default=0.7, Lower = 0, Upper = 1); |
---|
29 | T(Np+1) as Real(Default=85, Lower = 0, Upper = 400); |
---|
30 | R as Real(Default=1); |
---|
31 | |
---|
32 | EQUATIONS |
---|
33 | "Balanço no Prato 0" |
---|
34 | diff(H0)*"s" = -V/(R+1); |
---|
35 | diff(x1(1))*"s" = V/H0 * (x1(1)-y1(1) + R * ((x1(2) - x1(1))/(R+1))); |
---|
36 | |
---|
37 | "Balanço demais pratos" |
---|
38 | diff(x1(2:Np))*"s" = V/Hi * (y1(1:Np-1) - y1(2:Np) + (R * ( x1(3:Np+1) - x1(2:Np) ) / (R+1))); |
---|
39 | |
---|
40 | "Balanço último prato" |
---|
41 | diff(x1(Np+1))*"s" = V * ( y1(Np) - x1(Np+1) )/Hi; |
---|
42 | |
---|
43 | x1 = 1 - x2; |
---|
44 | y1*P = x1 * exp(A(1) - (B(1)/(T + 273.15 + C(1))) ); |
---|
45 | y1 = 1 - y2; |
---|
46 | y2*P = x2 * exp(A(2) - (B(2)/(T + 273.15 + C(2))) ); |
---|
47 | |
---|
48 | "Equação de Controle Ótimo" |
---|
49 | x1(Np+1) = purity; |
---|
50 | |
---|
51 | INITIAL |
---|
52 | H0 = 100; |
---|
53 | x1(1) = 0.55; |
---|
54 | T(2:9) = [89.8, 87.5, 85.4, 83.8, 82.6, 81.7, 81.1, 81.0]; |
---|
55 | R = 1; |
---|
56 | end |
---|
57 | |
---|
58 | FlowSheet batch as BatchColumn |
---|
59 | SET |
---|
60 | Nc = 2; |
---|
61 | Np = 11; |
---|
62 | |
---|
63 | A = [15.7527, 16.0137]; |
---|
64 | B = [2766.63, 3096.52]; |
---|
65 | C = [ -50.5, -53.67]; |
---|
66 | |
---|
67 | purity = 0.998; |
---|
68 | P = 760; |
---|
69 | Hi = 1; |
---|
70 | V = 120; |
---|
71 | |
---|
72 | OPTIONS |
---|
73 | time = [0:0.01:0.1, 0.2:0.1:2.1]; |
---|
74 | integration = "index0"; #original, index0 or index 1 |
---|
75 | relativeAccuracy = 1e-6; |
---|
76 | absoluteAccuracy = 1e-8; |
---|
77 | DAESolver = "dasslc"; # "mebdf" |
---|
78 | end |
---|
79 | |
---|