Baixe o app para aproveitar ainda mais
Prévia do material em texto
SCILAB APLICADO À ENGENHARIA QUÍMICA Prof.ª: Nádia Guimarães Sousa nadiagsousa@gmail.com Uberaba – 19/11/19 Universidade Federal do Triângulo Mineiro Instituto de Ciências Tecnológicas e Exatas Departamento de Engenharia Química Software livre Software livre está relacionado a liberdade e não a gratuidade. Logo, o usuário tem a liberdade de controle na execução e adaptação a sua computação e processamento de dados, assim sendo, o usuário pode executaar, copiar, distribuir, estudar, mudar e melhorar o software (código fonte aberto). Disponível em: http://www.scilab.org 2 http://www.scilab.org/ PROMPT DO SCILAB (calculadora) 3 • Realização de testes de comando • Visualização de conteúdo de variáveis e respostas geradas Desenvolvedor de código (SciNotes) SciNotes 4 OBSERVAÇÃO: Os arquivos para compilação no SciNotes podem ser salvos com as extensões: “.sci” (arquivo de inicialização) ou “.sce” (arquivo de execução). HELP 5 Operadores Matemáticos Operadores Relacionais Símbolo Operação Exemplo + soma 5+4 - subtração 5-4 * multiplicação 540*874 / Divisão à direita 4/2 \ Divisão à esquerda A\B (matrizes) ^ ou ** Potenciação 6^48 ou 6**48 ‘ Transposto A’ Símbolo Descrição > Maior que < Menor que >= Maior ou igual <= Menor ou igual == Igual ~= ou <> Diferente & Isso e aquilo | Isso ou aquilo 6 7 Variáveis especiais Constante Representação %i −1 %pi 𝜋 = 3,1415927 %e Constante e=2,7182818, base dos logaritmos naturais %eps Constante representando a precisão da máquina %nan Não é um número (not a number) %inf Infinito %s É o polinômio y(s)=s, s=poly (0,’s’) %t Constante lógica para verdadeiro (true) %f Constante lógica para falso (false) 8 Funções de uso geral Funções Descrição clc Limpa tela de comandos clear Limpa variáveis não protegidas mode(-1) Omitirá o eco dos comandos who Mostra lista de variáveis correntes help Tela de ajuda do Scilab save Salvar no formato binário load Ler no formato binário clf() Limpa janela gráfica ativa scf() Ajusta a janela gráfica subplot() Divide a janela gráfica xtitle() Coloca títulos no gráfico e eixos disp() Exibição de variáveis // Comentário 9 Funções matemáticas Função Descrição abs (x) Valor absoluto de x cos(x) Cosseno de x sin(x) Seno de x tan(x) Tangente de x exp(x) Exponencial euleriana de x imag(z) Parte imaginária do complexo z int(x) Pare inteira de x log(x) Logaritmo natural de x, base e log10(x) Logaritmo de x na base 10 log2(x) Logaritmo de x na base 2 real(z) Parte real do complexo z sqrt(x) Raiz quadrada de x Criar uma variável Comparação String Operador de Intervalo [início:incremento:final]: Ex.: a=[1:2:10] 10 Nome simples, fácil digitação e sem caracteres especiais Primeiros passos Sabendo que a reação 𝐴 → 𝐵 em fase líquida, ocorrem em um reator CSTR e que a equação de projeto do mesmo é dada por: 𝑉 = 𝐹𝐴0𝑋 −𝑟𝐴 Calcule o volume do CSTR para obter uma conversão de 80% do reagente limitante. Dados: 𝐹𝐴0 = 𝐶𝐴0. 𝑣0 𝑣0= 10 L/min 𝐶𝐴0= 0,45 mol/L K= 0,21 min-1 11 −𝑟𝐴= 𝐾(𝐶𝐴0 1 − 𝑋 ) Use a função disp( ) para imprimir o resultado no console CA V Exemplo 1 12 13 14 Vetor linha Vetor coluna Acesso de elementos de um vetor: Último elemento Vetores 15 Acesso de elementos de uma matriz: A ( i , j ) linha coluna Todas as linhas Todas as colunas Matrizes Matriz combinação de vetores 16 Matrizes Especiais Função Descrição A’ Transposta da matriz A diag(A) Produz uma matriz diagonal com os elementos do vetor A eye(m,n) Matriz m x n com 1 na diagonal principal ones(m,n) Cria uma matriz m x n de 1 zeros(m,n) Cria uma matriz m x n de 0 As operações matemáticas envolvendo matrizes e vetores são as mesmas para escalares, desde que as dimensões sejam compatíveis 17 Operação Descrição A.*B Multiplicação elemento a elemento, A e B são de mesma dimensão det(A) Determinante da matriz A expm(A) Produz a matriz exponencial e^. gsort(x) Ordena o vetor x em ordem decrescente length(x) Tamanho do vetor x [xmax, k]= max(x) Calcula o máximo do vetor x e k indica a posição do máximo [xmin, k]= min(x) Calcula o mínimo do vetor x e k indica a posição do mínimo mean(x) Calcula a média do vetor x norm(x) Calcula a norma euclidiana do vetor x size(A) Retorna as dimensões da matriz A spec(A) Calcula os autovalores e os autovetores da matriz quadrada A trace(A) Traço da matriz quadrada A (soma de todos os elementos da diagonal) tril(A) Parte triangular inferior de uma matriz quadrada A triu(A) Parte triangular superior de uma matriz quadrada A inv(A) Inversa de uma matriz quadrada A Funções com matrizes e vetores 18 Definição da matriz Extração Inserção Eliminação Um engenheiro quer estudar o comportamento do reator CSTR, projetado anteriormente, para as seguintes condições de vazão e conversão: 12.5 0.65 15.0 0.65 22.45 0.95 Escreva a matriz de condições Extraia o vetor de vazão e o vetor de conversão Calcule e imprima no console o volume do CSTR para cada conjunto de variáveis (vazão- conversão) 19 𝑣0 𝑋 Exemplo 2 20 Respostas Estrutura Básica [yp]= interp1(x, y, xp, ‘method’) 21 Interpolação polinomial Suponha que a reação que ocorre no reator, agora tem a lei de velocidade desconhecida!!! Mas experimentos revelam a variação da taxa de reação em função da conversão. Determine o valor da taxa de reação para conversões de 25, 50 e 90%. 22 Exemplo 3 X 0 0,2 0,4 0.6 0.8 1 -ra 0,1125 0,09 0,0675 0,045 0,0225 0 23 24 Se uma determinada condição for satisfeita, o programa executa um bloco de instruções if condicao then instrucao 1 instrucao 2 else instrução 3 end 25 Estrutura Básica Estrutura if Caso mais de duas condições devem ser analisadas, então usa-se a estrutura elseif if condicao 1 then instrucao 1 instrucao 2 elseif condicao 2 instrucão 3 else instrução 4 end 26 Estrutura Básica Estrutura elseif Por questões de espaço físico da unidade reacional, o reator não pode ultrapassar 150 L, porém, caso ele seja menor que 120 L a conversão do sistema será muito baixa. Assim sendo, classifique os reatores projetados anteriormente (Exemplo 2) de acordo com a tabela a seguir: 27 Faixa de Volume Classificação V <= 120 L Reator subdimensionado 120 L < V <= 150 L Reator dentro das especificações V > 150 L Reator sobredimensionado Exemplo 4 28 29 Executa um bloco de instruções durante um número especificado de vezes for indice= limite1:incremento:limite2 instrução 1 instrução 2 end 30 Estrutura Básica O laço for Executa um bloco de instruções enquanto uma determinada condição estiver sendo satisfeita while condição do instrução 1 instrução 2 end 31 Estrutura Básica Comando Função break Encerra a execução de um laço O laço while Faça a mesma classificação do exemplo 4. 32 Exemplo 5 33 34 As funções recebem dados por meio de uma lista de argumentos de entrada e retorna os resultados por uma lista de argumentos de saída 35 Estrutura Básica Funções - function function [lhs_arguments]=function_name(rhs_arguments) statements endfunction em que: function_name é o nome da função, (rhs_arguments) é a lista de argumentos de entrada, [lhs_arguments] é a lista de argumentos de saída e statements é a função a ser resolvida. 36 • É uma rotina de otimização não linear que resolveproblemas de mínimos quadrados não lineares. Forma mais simples: o [fopt, xopt]=leastsq(fun,x0) em que: fun – nome da função que contém a função, x0 – vetor com chutes iniciais, fopt – valor mínimo da função e xopt – valor que minimiza a função. leastsq Ajuste de curvas a pontos experimentais 37 𝑻 𝒐𝑪 𝑷 𝒎𝒎𝑯𝒈 -36,7 1 -19,6 5 -11,5 10 -2,6 20 7,6 40 15,4 60 26,1 100 42,2 200 60,6 400 80,1 760 Eq. Clausius Clayperon 𝑙𝑜𝑔 𝑃 = 𝐴 + 𝐵 𝑇 Exemplo 6 Modelar a pressão de vapor do benzeno com a temperatura pela equação de Clausius Clapeyron. Na tabela a seguir, são apresentados todas as pressões de vapor para várias temperaturas. 38 39 plot(x, y, <LineSpec>) 40 Estrutura Básica Gráficos bidimensionais 41 Cores/Marcadores Descrição - Linha sólida (default) -- Linha tracejada ˸ Linha pontilhada -. Linha traço-pontilhada r Vermlho g Verde b Azul m Magenta + Mais * Asterisco Cores e marcadores 42 • O comando ‘xtitle’: • xtitle(‘title’, ‘x_label’, ‘y_label’, ‘z_label’) – título e rótulos • O comando ‘xgrid’: • xgrid(style) - linhas de grade • style (estilo) – define a forma e a cor da grade • O comando ‘subplot’: • subplot(L,C,P) – L: Linhas; C: Colunas e P: Posição. • O comando ‘legend’: • legend([‘string1’, ‘string2’, ...],pos) • pos – posição das legendas pos Posição 1 Canto superior direito (default) 2 Canto superior esquerdo 3 Canto inferior esquerdo 4 Canto inferior direito 5 Usando o mouse Apresentação de gráficos 43 44 Estrutura Básica plot3d(x, y, z) plot3d Utilizado para plotar mais de um gráfico numa mesma janela gráfica 45 Estrutura Básica subplot(i, j, <posicao>) subplot(L,C,P) 46 Formatando gráficos 47 Um sistema de equações lineares pode ser representado por: 𝑎11𝑥1 + 𝑎12𝑥2 +⋯+ 𝑎1𝑛𝑥𝑛 = 𝑏1 𝑎21𝑥1 + 𝑎22𝑥2 +⋯+ 𝑎2𝑛𝑥𝑛 = 𝑏2 ⁝ 𝑎𝑛1𝑥1 + 𝑎𝑛2𝑥2 +⋯+ 𝑎𝑛𝑛𝑥𝑛 = 𝑏𝑛 Na forma matricial temos: 𝑨𝒙 = 𝒃 48 Sistema de equações lineares 49 𝐱 = 𝐀−𝟏𝐛 𝐱 = 𝐀\𝐛 𝐱 = 𝐥𝐢𝐧𝐬𝐨𝐥𝐯𝐞(𝐀,−𝐛) Resolvendo 50 Sistema de equações não lineares - fsolve Estrutura Básica [x [,v [,info]]]=fsolve(x0,fct [,fjac] [,tol]) Passando parâmetros para fsolve() lista= list(nome_fuc, p1, p2,..., pn) [x, fv, info]= fsolve(xchute, lista) 51 52 Condução unidimensional em regime permanente 1 Um gás de fornalha a temperatura 𝑇𝑔 irradia uma quantidade de calor 𝑄 para a superfície externa do tubo, cuja temperatura é 𝑇𝑠. O calor é conduzido através da parede do tubo para a superfície interna a 𝑇𝑤, e então através de um filme para a corrente de processo à temperatura 𝑇𝑝. Analisando o sistema as seguintes relações são obtidas: Fluxo de calor radiante: 𝑄 = 𝑎 𝑇𝑔 4 − 𝑇𝑠 4 Condução através da parede do tubo: 𝑄 = 𝑏 𝑇𝑠 − 𝑇𝑤 Condução através do filme: 𝑄 = 𝑐 𝑇𝑤 − 𝑇𝑝 Em que: 𝑎 = 1,2𝑥10−9; 𝑏 = 70 + 0,07 𝑇𝑠 + 𝑇𝑤 e 𝑐 = 6. Calcule 𝑄, 𝑇𝑠 e 𝑇𝑤 para 𝑇𝑝 = 900 𝐾 e 𝑇𝑔 = 1200𝐾. Modelagem e Simulação de Processos I 𝑇𝑔 Gás de fornalha 𝑇𝑝 Fluido do processo 𝑇𝑠 𝑇𝑤 Figura: Transporte de calor através de uma parede Exemplo 7 1 KWONG, W. H. Resolvendo problemas de engenharia química com software livre Scilab, EdUFSCar,2016 53 Uma equação diferencial ordinária é dada por: 𝑑𝑦 𝑑𝑥 = 𝑓 𝑥, 𝑦 𝐶𝐼: 𝑦 𝑥0 = 𝑦0 54 Sistema de Equações Diferenciais Ordinárias - ode Estrutura Básica y= ode(y0, t0, t, funcao) Pode ser substituído pela lista 55 1Exemplo 8 Num reator tubular, a composição do fluido varia de posição para posição ao longo do seu percurso, consequentemente, o balanço material, para um componente da reação, deverá ser feito para um elemento diferencial de volume 𝐴𝛿𝑧, como mostrado na figura a seguir. 𝛿𝑧 𝑢 𝐶𝐴𝑖 𝐿 𝑢𝐴𝐶𝐴 𝑢𝐴𝐶𝐴 + 𝑑 𝑢𝐴𝐶𝐴 𝑑𝐶𝐴 𝑑𝑉 = 1 𝑣 𝑟𝐴 𝑣 = 𝐹𝐴𝑖 𝐶𝐴𝑖 𝑋𝐴 = 𝐶𝐴𝑖 − 𝐶𝐴 𝐶𝐴𝑖 Modelo: Para um componente A alimentado a um reator tubular onde ocorre a seguinte reação: 𝐴 𝑘 →𝐵, a reação é de primeira ordem e elementar. Pede- se: i. Determine a conversão num reator de 10000L. ii. Qual é o volume do reator para uma conversão de 50%? Dados: 𝐹𝐴𝑖 = 200𝑚𝑜𝑙 ℎ ; 𝑘 = 0,2ℎ −1 ; 𝐶𝐴𝑖 = 0,1 𝑚𝑜𝑙 𝐿 1 KWONG, W. H. Resolvendo problemas de engenharia química com software livre Scilab, EdUFSCar,2016 56 57 Exemplo 9 Velocidade terminal de partículas em queda1 A velocidade de queda livre pode ser pode ser estimada pela mecânica dos fluidos pela expressão: 𝑣𝑡 = 4𝑔 𝜌𝑝 − 𝜌 𝐷𝑝 3𝐶𝐷𝜌 em que o coeficiente de arraste 𝐶𝐷 em partículas esféricas na velocidade terminal varia com o número de Reynolds: 𝐶𝐷 = 24 𝑅𝑒 ; 𝑅𝑒 < 0,1 𝐶𝐷 = 24 𝑅𝑒 1 + 0,14𝑅𝑒0,7 ; 0,1 ≤ 𝑅𝑒 ≤ 1000 𝐶𝐷 = 0,44; 1000 < 𝑅𝑒 ≤ 35000 𝐶𝐷 = 0,19 − 8𝑥104 𝑅𝑒 ; 35000 < 𝑅𝑒 Para: 𝑅𝑒 = 𝜌𝑣𝑡𝐷𝑝 𝜇 Calcule a velocidade terminal para as partículas de carvão com 𝜌𝑝 = 1800𝑘𝑔 𝑚 3 e 𝐷𝑝 = 0,208𝑥10 −3𝑚 em queda livre na água a 25𝑜𝐶 . As propriedades da água são: 𝜌 = 994,6 𝑘𝑔 𝑚3 e 𝜇 = 8,931𝑥10−4 𝑘𝑔 𝑚 𝑠 1 KWONG, W. H. Resolvendo problemas de engenharia química com software livre Scilab, EdUFSCar,2016 58 59 Input: é um texto fornecido ao usuário no prompt e o cursor então espera por uma entrada no teclado. 60 Estrutura Básica x= input(message) x= imput(message, “string”) número string Entrada de dados messagebox():Pode ser usado para propor uma opção de escolha 61 Entrada de dados Estrutura Básica messagebox([‘String_question’], “modal”, “question”, [“SIM” “NÃO”]) messagebox([‘Srtring_escolha’], “modal”, [“OPCÃO_1” “OPCÃO_2”...]) 62 x_mdialog(): cria uma caixa para a inserção de dados (os dados entram como uma string, por isso é comum usar a função evstr para transformar string em um número) 63 Entrada de dados Estrutura Básica var= evstr(x_mdialog([‘Título’],[‘Variável_1’; ‘Variável_2’; ...],[‘ ’; ‘ ’; ...]) 64 Entrada de dados disp(): exibe valores ou strings guardadas dentro de uma variável ao final de uma determinada sentença. printf(): exibe valores de variáveis dentro de uma sentença 65 Estrutura Básica disp(‘string’) disp(valor_numérico) Estrutura Básica printf(‘\n\t A temperatura no reator é de (%d, %0.2f) °C \n’, variavel) Saída de dados 66 Saída de dados messagebox(): Exibe o valor de uma variável bem como uma string na forma de caixa de mensagem 67 Saída de dados Estrutura Básica messagebox([“Mensagem1”+string(var1) “ ” “Mensagem2”+string(var2)... Utilizando os códigos anteriores, faça um programa que calcule o volume de reatores CSTR e PFR 1. Entrada de dados deve ser feita por meio de caixas de mensagem 2. Dar opção para selecionar o tipo de reator a ser projetado 3. Exibir o resultado por meio de caixas de mensagem 68 Exemplo 10 69
Compartilhar