[1] | 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 |
---|
[32] | 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))); |
---|
[1] | 36 | |
---|
| 37 | "Balanço demais pratos" |
---|
[32] | 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))); |
---|
[1] | 39 | |
---|
| 40 | "Balanço último prato" |
---|
[32] | 41 | diff(x1(Np+1))*"s" = V * ( y1(Np) - x1(Np+1) )/Hi; |
---|
[1] | 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; |
---|
[7] | 77 | DAESolver = "dasslc"; # "mebdf" |
---|
[1] | 78 | end |
---|
| 79 | |
---|