·

Engenharia Química ·

Modelagem e Simulação de Processos

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Considere duas colunas de destilação c1 e c2 A coluna 1 c1 é alimentada com nafta cujo custo é de US42barril 40 dessa alimentação sai no topo como uma Corrente Leve preço de venda US35barril e o restante sai na base como um Resíduo r1 o qual alimenta a coluna 2 c2 Em c2 são produzidos dois solventes O Solvente Médio US68barril é obtido no topo de c2 e compreende de 50 a 70 de r1 enquanto o Solvente Pesado é obtido na corrente de fundo em c2 compreende de 30 a 50 de r1 e pode ser vendido por US42barril Em outra parte da Planta são utilizados 200 barrisdia de Solvente Médio além disso um adicional de 200 barrisdia desse produto pode ser comercializado no mercado externo A vazão máxima alimentada na coluna 1 é 2000 barrisdia Os custos operacionais utilidades associados a cada coluna são US 125barril alimentado a Proponha uma funçãoobjetivo para esse problema b Escreva explicitamente as restrições consideradas nesse problema c Escreva o problema de programação de otimização e resolvao utilizando a função fmincon do Matlab Enunciado Considere o esquema ilustrativo abaixo de duas colunas de destilação A coluna 1 é alimentada com nafta cujo custo é de U42barril 40 dessa alimentação sai no topo como uma corrente leve L1 preço de revenda igual a U53barril e o restante sai na base como resíduo R1 o qual alimenta a coluna 2 Na coluna 2 são produzidos dois solventes O solvente médio L2 é obtido no topo e tem preço de revenda igual a U68barril Ele compreende 50 a 70 de R1 O solvente pesado R2 é obtido na corrente de fundo Ele tem preço de revenda igual a U42barril e compreende de 30 a 50 de R1 Em outra parte da planta são utilizados 200 barris por dia de solvente médio L2 Além disso um adicional de 200 barris por dia desse produto pode ser comercializado no mercado externo A vazão máxima alimentada na coluna 1 é de 200 barrisdia Os custos operacionais de cada coluna são iguais a U125barril alimentado Resolução a Propor a função objetivo deste problema O objetivo neste problema é maximizar o lucro diário Equação 1 1 2 Feed F x1 40 light ends L1 x3 Medium solvente L2 x4 Heavy solvent R2 x5 60 bottoms R1 x2 𝐿𝑢𝑐𝑟𝑜 𝑈 𝑑𝑖𝑎 𝑉𝑒𝑛𝑑𝑎𝑠 𝑈 𝑑𝑖𝑎 𝐶𝑢𝑠𝑡𝑜 𝑈 𝑑𝑖𝑎 1 As vendas são obtidas das correntes L1 L2 e R2 O custo é obtido da corrente de alimentação F e da operação das colunas As vendas podem ser expressas por meio das Equações 2 e 3 respectivamente Assim obtémse a função objetivo deste problema Equação 4 As unidades das correntes são barrildia 𝑉𝑒𝑛𝑑𝑎𝑠 𝑈 𝑑𝑖𝑎 𝐿1 𝑥 𝑉𝑒𝑛𝑑𝑎𝐿1 𝐿2 𝑥 𝑉𝑒𝑛𝑑𝑎𝐿2 𝑅2 𝑥 𝑉𝑒𝑛𝑑𝑎𝑅2 𝑉𝑒𝑛𝑑𝑎𝑠 𝑈 𝑑𝑖𝑎 53 𝑥 𝐿1 68 𝑥 𝐿2 42 𝑥 𝑅2 2 𝐶𝑢𝑠𝑡𝑜 𝑈 𝑑𝑖𝑎 𝐹 𝑥 𝐶𝑢𝑠𝑡𝑜 𝑏𝑎𝑟𝑟𝑖𝑙𝐹 125 𝑥 𝐹 𝑅1 𝐶𝑢𝑠𝑡𝑜 𝑈 𝑑𝑖𝑎 4325 𝑥 𝐹 125 𝑥 𝑅1 3 𝐿𝑢𝑐𝑟𝑜 𝑈 𝑑𝑖𝑎 53 𝐿1 68 𝐿2 42 𝑅2 4325 𝐹 125 𝑅1 4 Há ainda mais duas informações acerca de balanço de massa 40 da alimentação da coluna 1 F se transforma em L1 e os outros 60 restantes se transformam em R1 Portanto vale a Equação 5 e finalmente obtémse a função objetivo do problema Equação 6 𝐿1 040 𝐹 𝑅1 060 𝐹 5 𝐿𝑢𝑐𝑟𝑜 𝑈 𝑑𝑖𝑎 53 𝑥 040 𝐹 68 𝐿2 42 𝑅2 4325 𝐹 125 𝑥 060 𝐹 𝑳𝒖𝒄𝒓𝒐 𝑼 𝒅𝒊𝒂 𝟔𝟖 𝑳𝟐 𝟒𝟐 𝑹𝟐 𝟐𝟐 𝟖 𝑭 𝟔 b Pedese para escrever as restrições do problema Elas seguem apresentadas nas Equações 711 São quatro restrições de desigualdade e uma de igualdade Quanto a alimentação da coluna 1 corrente F há a restrição de no máximo 2000 barris por dia Logo 𝑭 𝟐𝟎𝟎𝟎 𝒃𝒂𝒓𝒓𝒊𝒍 𝒅𝒊𝒂 𝟕 O solvente de topo da coluna 2 L2 é produzido entre 50 a 70 de R1 enquanto que o solvente de fundo da mesma coluna R2 é produzido entre 30 a 50 de R1 Logo 050 𝑅1 𝐿2 070 𝑅1 030 𝑅1 𝑅2 050 𝑅1 5 𝟎 𝟑𝟎 𝑭 𝑳𝟐 𝟎 𝟒𝟐 𝑭 𝟎 𝟏𝟖 𝑭 𝑹𝟐 𝟎 𝟑𝟎 𝑭 𝟖 A produção mínima de solvente médio L2 deve ser de 200 barris por dia para atender a uma planta em anexo Ao mesmo tempo no máximo podese vender 200 barrisdia deste produto Logo 𝟐𝟎𝟎 𝑳𝟐 𝟒𝟎𝟎 𝟗 Há também a restrição do balanço de massa do problema Equação 10 𝐹 𝐿1 𝐿2 𝑅2 5 𝐹 040𝐹 𝐿2 𝑅2 𝟎 𝟔𝟎𝑭 𝑳𝟐 𝑹𝟐 𝟏𝟎 Todas as vazões devem ser positivas 𝑭 𝟎 𝑳𝟐 𝟎 𝑹𝟐 𝟎 𝟏𝟏 c Escrever o problema de otimização e resolvêlo no Matlab Este problema de otimização apresenta uma função objetivo Equação 6 e três funções de restrição Equações 711 Desejase maximizar o valor da Equação 6 usando o comando fmincon do Matlab Para maximizar o lucro devese minimizar o negativo do lucro A seguir o código desenvolvido no Scilab x0 é o chute inicial das três correntes F L2 e R2 respectivamente As desigualdades lineares foram definidas por meio de uma matriz Ax b e a restrição por igualdade foi definida por meio de Aeqx beq As variáveis lb lower bound e ub upper bound representam os limites superior e inferior das variáveis Elas devem ser maior que zero L2 deve ser maior que 200 E todas devem ser menor que 2000 para respeitar o balanço de massa O conjunto vazio representa as desigualdades nãolineares inexistentes neste problema O solver sqp foi o escolhido clear clc Profitfunction function fprofitx x1 F Feed to Column 1 barrildia x2 L2 Medium Solvent barrildia x3 R2 Heavy Solvent barrildia f 68x2 42x3 228x1 Minimizing Lucro end 1 Initial guess for the variables F L2 R2 x0 1000 300 200 2 Linear Inequalities F 2000 030F L2 0 042F L2 0 L2 042F 018F R2 0 030F R2 0 R2 030F A 1 0 0 030 1 0 042 1 0 018 0 1 030 0 1 b 2000 0 0 0 0 3 Linear Equality 060F L2 R2 Aeqx beq 060F L2 R2 0 Aeq 060 1 1 beq 0 4 Bounds lb 0 200 0 F 0 L2 200 R2 0 ub 2000 400 2000 F 2000 L2 400 R2 2000 F is the only feed so the maximum value for every variables is 2000 barrisday 5 Run optimizaiton xoptimal fvaloptimal fotfminconprofit x0 A b Aeq beq lb ub sqp 6 Display results fprintfCondição ótima de operação fprintf Feed F 2f barrisday xoptimal1 fprintf Medium Solvent L2 2f barrisday xoptimal2 fprintf Heavy Solvent R2 2f barrisday xoptimal3 optimalprofit fvaloptimal fprintfMáximo Lucro diário U2f optimalprofit Calculate L1 and R1 based on optimal F L1optimal 040 xoptimal1 R1optimal 060 xoptimal1 fprintf Light Ends L1 2f barrisday L1optimal fprintf Residue1 R1 2f barrisday R1optimal Infelizmente tive um problema com o pacote fmincon Por algum motivo tentei instalar o Toolbox necessário e não deu certo Então sobraram três alternativas leastsq PSO e um código Python Optei pela última alternativa Abaixo o código utilizado A descrição do código é muito semelhante ao Scilab Usouse o solver linprog O vetor c representa os coeficientes da função custo A ordem dos coeficientes representa a ordem das variáveis O sinal negativo indica que a função já foi colocada em negativo para que o mínimo gere o máximo lucro As desigualdades e a igualdade de restrição foram construídas da mesma maneira O mesmo vale para os limites de cada variável import numpy as np from scipyoptimize import linprog Defining the vector c c nparray228 68 42 Minimize Profit 228F 68L2 42R2 First variable F Second variable L2 Third variable R2 Defining the linear inequality constraints Aub x bub Aub nparray 1 0 0 F 2000 030 1 0 030F L2 0 042 1 0 042F L2 0 018 0 1 018F R2 0 030 0 1 030F R2 0 bub nparray2000 0 0 0 0 Defining the linear equality constraints Aeq x beq Aeq nparray060 1 1 beq nparray0 Defining the lower and upper bounds bounds 0 2000 200 400 0 2000 Using the linprog solver optimum linprogc AubAub bubbub AeqAeq beqbeq boundsbounds methodhighs Display results if optimumsuccess xoptimal optimumx fvalminnegprofit optimumfun printOptimal Operating Conditions printf Feed F xoptimal02f barrelsday printf Medium Solvent L2 xoptimal12f barrelsday printf Heavy Solvent R2 xoptimal22f barrelsday L1optimal 040 xoptimal0 R1optimal 060 xoptimal0 printf Light Ends L1 L1optimal2f barrelsday printf Residue R1 R1optimal2f barrelsday optimalprofit fvalminnegprofit printfMaximum Daily Profit Uoptimalprofit2f else printOptimization failed optimummessage O resultado da otimização é o seguinte 𝐿𝑢𝑐𝑟𝑜 𝑑𝑖á𝑟𝑖𝑜 𝑚á𝑥𝑖𝑚𝑜 𝑈 1360000 𝐹 133333 𝑏𝑎𝑟𝑟𝑖𝑠𝑑𝑖𝑎 𝐿1 53333 𝑏𝑎𝑟𝑟𝑖𝑠 𝑑𝑖𝑎 𝑅1 800 𝑏𝑎𝑟𝑟𝑖𝑠 𝑑𝑖𝑎 𝐿2 400 𝑏𝑎𝑟𝑟𝑖𝑠 𝑑𝑖𝑎 𝑅2 400 𝑏𝑎𝑟𝑟𝑖𝑠 𝑑𝑖𝑎 Enunciado Considere o esquema ilustrativo abaixo de duas colunas de destilação A coluna 1 é alimentada com nafta cujo custo é de U42barril 40 dessa alimentação sai no topo como uma corrente leve L1 preço de revenda igual a U53barril e o restante sai na base como resíduo R1 o qual alimenta a coluna 2 Na coluna 2 são produzidos dois solventes O solvente médio L2 é obtido no topo e tem preço de revenda igual a U68barril Ele compreende 50 a 70 de R1 O solvente pesado R2 é obtido na corrente de fundo Ele tem preço de revenda igual a U42barril e compreende de 30 a 50 de R1 Em outra parte da planta são utilizados 200 barris por dia de solvente médio L2 Além disso um adicional de 200 barris por dia desse produto pode ser comercializado no mercado externo A vazão máxima alimentada na coluna 1 é de 200 barrisdia Os custos operacionais de cada coluna são iguais a U125barril alimentado Resolução a Propor a função objetivo deste problema O objetivo neste problema é maximizar o lucro diário Equação 1 60 bottoms R1 x2 Heavy solvent R2 x5 Medium solvente L2 x4 40 light ends L1 x3 Feed F x1 2 1 Lucro U diaVendas U diaCusto U dia1 As vendas são obtidas das correntes L1 L2 e R2 O custo é obtido da corrente de alimentação F e da operação das colunas As vendas podem ser expressas por meio das Equações 2 e 3 respectivamente Assim obtémse a função objetivo deste problema Equação 4 As unidades das correntes são barrildia Vendas U dia L1x Vend aL 1L2 xVend aL2R2x Vend aR 2 Vendas U dia 53 x L168 x L242 x R22 Custo U dia F x Cust obarril F125 x FR1 Custo U dia 4325 x F125x R13 Lucro U dia53 L168L242 R24325 F125 R14 Há ainda mais duas informações acerca de balanço de massa 40 da alimentação da coluna 1 F se transforma em L1 e os outros 60 restantes se transformam em R1 Portanto vale a Equação 5 e finalmente obtémse a função objetivo do problema Equação 6 L1040 F R1060F 5 Lucro U dia53 x 040F68 L242R24325F125 x060 F Lucro U dia68 L242 R2228F6 b Pedese para escrever as restrições do problema Elas seguem apresentadas nas Equações 711 São quatro restrições de desigualdade e uma de igualdade Quanto a alimentação da coluna 1 corrente F há a restrição de no máximo 2000 barris por dia Logo F2000 barril dia 7 O solvente de topo da coluna 2 L2 é produzido entre 50 a 70 de R1 enquanto que o solvente de fundo da mesma coluna R2 é produzido entre 30 a 50 de R1 Logo 0 50 R1 L2070 R1 030R1R20 50 R15 030F L20 42F 018 F R2030F8 A produção mínima de solvente médio L2 deve ser de 200 barris por dia para atender a uma planta em anexo Ao mesmo tempo no máximo podese vender 200 barrisdia deste produto Logo 200 L24009 Há também a restrição do balanço de massa do problema Equação 10 FL1L2R25 F040 FL2R2 060 FL2R210 Todas as vazões devem ser positivas F0 L20 R20 11 c Escrever o problema de otimização e resolvêlo no Matlab Este problema de otimização apresenta uma função objetivo Equação 6 e três funções de restrição Equações 711 Desejase maximizar o valor da Equação 6 usando o comando fmincon do Matlab Para maximizar o lucro devese minimizar o negativo do lucro A seguir o código desenvolvido no Scilab x0 é o chute inicial das três correntes F L2 e R2 respectivamente As desigualdades lineares foram definidas por meio de uma matriz Ax b e a restrição por igualdade foi definida por meio de Aeqx beq As variáveis lb lower bound e ub upper bound representam os limites superior e inferior das variáveis Elas devem ser maior que zero L2 deve ser maior que 200 E todas devem ser menor que 2000 para respeitar o balanço de massa O conjunto vazio representa as desigualdades nãolineares inexistentes neste problema O solver sqp foi o escolhido clear clc Profitfunction function fprofitx x1 F Feed to Column 1 barrildia x2 L2 Medium Solvent barrildia x3 R2 Heavy Solvent barrildia f 68x2 42x3 228x1 Minimizing Lucro end 1 Initial guess for the variables F L2 R2 x0 1000 300 200 2 Linear Inequalities F 2000 030F L2 0 042F L2 0 L2 042F 018F R2 0 030F R2 0 R2 030F A 1 0 0 030 1 0 042 1 0 018 0 1 030 0 1 b 2000 0 0 0 0 3 Linear Equality 060F L2 R2 Aeqx beq 060F L2 R2 0 Aeq 060 1 1 beq 0 4 Bounds lb 0 200 0 F 0 L2 200 R2 0 ub 2000 400 2000 F 2000 L2 400 R2 2000 F is the only feed so the maximum value for every variables is 2000 barrisday 5 Run optimizaiton xoptimal fvaloptimal fotfminconprofit x0 A b Aeq beq lb ub sqp 6 Display results fprintfCondição ótima de operação fprintf Feed F 2f barrisday xoptimal1 fprintf Medium Solvent L2 2f barrisday xoptimal2 fprintf Heavy Solvent R2 2f barrisday xoptimal3 optimalprofit fvaloptimal fprintfMáximo Lucro diário U2f optimalprofit Calculate L1 and R1 based on optimal F L1optimal 040 xoptimal1 R1optimal 060 xoptimal1 fprintf Light Ends L1 2f barrisday L1optimal fprintf Residue1 R1 2f barrisday R1optimal Infelizmente tive um problema com o pacote fmincon Por algum motivo tentei instalar o Toolbox necessário e não deu certo Então sobraram três alternativas leastsq PSO e um código Python Optei pela última alternativa Abaixo o código utilizado A descrição do código é muito semelhante ao Scilab Usouse o solver linprog O vetor c representa os coeficientes da função custo A ordem dos coeficientes representa a ordem das variáveis O sinal negativo indica que a função já foi colocada em negativo para que o mínimo gere o máximo lucro As desigualdades e a igualdade de restrição foram construídas da mesma maneira O mesmo vale para os limites de cada variável import numpy as np from scipyoptimize import linprog Defining the vector c c nparray228 68 42 Minimize Profit 228F 68L2 42R2 First variable F Second variable L2 Third variable R2 Defining the linear inequality constraints Aub x bub Aub nparray 1 0 0 F 2000 030 1 0 030F L2 0 042 1 0 042F L2 0 018 0 1 018F R2 0 030 0 1 030F R2 0 bub nparray2000 0 0 0 0 Defining the linear equality constraints Aeq x beq Aeq nparray060 1 1 beq nparray0 Defining the lower and upper bounds bounds 0 2000 200 400 0 2000 Using the linprog solver optimum linprogc AubAub bubbub AeqAeq beqbeq boundsbounds methodhighs Display results if optimumsuccess xoptimal optimumx fvalminnegprofit optimumfun printOptimal Operating Conditions printf Feed F xoptimal02f barrelsday printf Medium Solvent L2 xoptimal12f barrelsday printf Heavy Solvent R2 xoptimal22f barrelsday L1optimal 040 xoptimal0 R1optimal 060 xoptimal0 printf Light Ends L1 L1optimal2f barrelsday printf Residue R1 R1optimal2f barrelsday optimalprofit fvalminnegprofit printfMaximum Daily Profit Uoptimalprofit2f else printOptimization failed optimummessage O resultado da otimização é o seguinte Lucrodiário máximoU 1360000 F133333barrisdia L153333 barris dia R1800 barris dia L2400 barris dia R2400 barris dia