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 | |
---|