eqe594 – controle e instrumentação de processos profa. ofélia araújo sistemas não-lineares no...

25
EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

Upload: internet

Post on 17-Apr-2015

119 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Sistemas não-lineares no Simulink

Page 2: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

FFdt

dV i

ART

E

AiA

iA CekCC

V

F

dt

dC 0

P

cART

Ei

Pi

VC

TTUACeHVkTTCF

dt

dT

0

Entradas: F i, T i,TC ,F , C iA

Page 3: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Para construir o diagrama Simulink deste modelo, além dos

blocos já utilizados, serão necessários os seguintes:

• Simulink/Signals & Systems/Mux: concatena (ou “empilha”)

escalares em um vetor (ou vetores em um vetor maior)

• Simulink/Signals & Systems/Demux: extrai (ou “desempilha”)

constantes de um vetor (ou vetores de um vetor maior)

• Simulink/Continuous/Transport Delay: aplica um atraso a uma

entrada

• Simulink/Functions & Tables/S-Function: executa uma função

de usuário, escrita em código-M, de acordo com as regras para

criação de S-Functions

Page 4: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTRO diagrama do modelo do CSTR encontra-se abaixo.

Page 5: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

O bloco Mux (u) do modelo concatena as 5 entradas em

um vetor de 5 elementos.

Page 6: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

O bloco Demux (Saída) extrai do vetor que recebe da

função-S as saídas do modelo.

Page 7: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTRO bloco Transport Delay aplica um atraso na entrada

que recebe. Para configurá-lo, basta informar (i) o valor do

(tempo de) atraso (Time Delay) e (ii) o valor inicial da saída

do bloco, ou seja, o valor que o bloco Transport Delay irá

gerar, até que o tempo de simulação iguale o atraso (Initial

input).

Page 8: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

O que há de diferente neste modelo é a não linearidade

que requer a função-S (reator.m), que trabalha diretamente

com as equações diferenciais do CSTR.

Page 9: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

É preciso seguir algumas regras específicas das funções-S.

Quando usamos “solvers” do MATLAB programas para

integrar ODE’s usamos sintaxes (dentro do programa

principal) do tipo

...

[T, Y] = ode45(‘arq’,TEMPO,Y0,[],PAR1,...,PARN)

...

A função “arq” calcula as derivadas com a seguinte sintaxe:

function saida = arq(t,y,flag,PAR1,...,PARN)

onde o vetor vazio ([]) na chamada a ode45 é um marcador

de lugar para o vetor de opções, que não está sendo alterado

desta forma (i.e.: defaults do MATLAB são assumidos.

Page 10: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

No caso do Simulink, você não escreverá a chamada a

ode45, precisando se importar apenas com a declaração da

função que calcula as derivadas e com as regras de chamada

desta função.

Esta função não apenas calculará as derivadas do

modelo, como também irá informar ao integrador as condições

iniciais.

Uma função-S deve ser declarada da seguinte forma:

function [sys, x0] = model(t,x,u,flag,PAR1,...,PARN)

Page 11: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Onde

• sys é a saída de model, cujo significado depende de flag

• x0 é o vetor de condições iniciais

• t é o tempo de simulação

• x é o vetor de estados do modelo

• u é o vetor de entradas do modelo

• flag é um parâmetro que informa a model o tipo de

informação que o integrador espera receber

• PAR1,...,PARN são os parâmetros adicionais que podem ser

passados à função model

Page 12: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Vamos agora tentar entender como funciona a

simulação de um modelo usando uma função-S.

Ao contrário do que acontecia com as funções de

transferência, usando uma função-S, você pode trabalhar

com valores absolutos das suas derivadas. Para isso, é

preciso conhecer as condições iniciais da integração (o que

não é pedido em nenhuma parte da configuração da

simulação).

Além disso, o Simulink precisa de informações sobre o

modelo, se as variáveis são contínuas ou discretas, quantas

entradas, saídas e estados o modelo possui, etc.

Page 13: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Antes de começar a simulação, o Simulink instruirá o

integrador a chamar a função model com um valor de flag

igual a 0. Isso significa que model deve retornar em sys um

vetor de configuração do modelo e em x0 o vetor de

condições iniciais dos estados. Assim, para flag = 0, o vetor

sys deve conter 6 elementos:

sys = [ número de estados contínuos

número de estados discretos

número de saídas

número de entradas

marcador de alimentação direta

tempo de amostragem ]

Page 14: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Como nós sempre estaremos simulando modelos

contínuos simples, apenas os elementos 1, 3 e 4 do vetor sys

nos interessam. Os elementos referentes a modelos discretos

e à alimentação direta de entradas devem ter valor zero.

É preciso ter muito cuidado ao inicializar o modelo.

Assegure-se que o número de entradas e saídas

correpondem às entradas e saídas do diagrama do Simulink,

e que todos os estados têm sua condição inicial

corretamente atribuída no vetor x0.

Page 15: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Ao longo da integração, o Simulinik instruirá o integrador a

chamar model com vários valores de flag, dois dos quais de

nosso interesse.

Quando model for chamado com flag = 1, o integrador

espera dele os valores das derivadas dos estados contínuos. Ou

seja, para flag = 1, sys deve conter os valores das derivadas.

ondições iniciais dos estados.

Por fim, para flag = 3, o integrador espera em sys o valor

das saídas. Nos casos de modelos simples (como o do CSTR), as

saídas correspondem aos estados.

Leia com atenção o código de reator.m, a seguir.

Page 16: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTRfunction [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)%% Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina%% U = 150 BTU/(h.ft2.R), coeficiente de troca térmica% A = 250 ft2, área de troca térmica% DeltaH = -30000 BTU/lbm, calor de reação% ro = 50 lb/ft3, densidade% Cp = 0.75 BTU/(lbm.R), calor específico% E = 30000 BTU/lbm, energia de ativação% R = 1.99 BTU/(lbm.R), constante dos gases% k0 = 7.08e10 1/h, termo pré-exponencial da constante de reação%switch flag case 0 % Dimensiona o sistema e inicializa os estados % sys=[estados,0,saídas,entradas,0,0] sys = [3,0,3,5,0,0]; % Condições iniciais ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; reator.m - 1ª parte

Page 17: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

reator.m - 2ª parte

case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação Fi = u(2); %ft3/hr, vazão de alimentação F = u(3); %vazão de retirada Tc = u(4); %R, temperatura do fluido de refrigeração Ti = u(5); %R, temperatura da alimentação % Cálculo das derivadas Ca = x(1); T = x(2); V = x(3); k = k0*exp(-E/(R*T)); dCa = (Fi*(cai-Ca)/V) - k*Ca; dV = Fi-F; dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV];

case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = [];end

Page 18: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

O código de reator.m introduz uma nova estrutura de

controle de fluxo de execução, a estrutura CASO. A sintaxe da

estrutura CASO é a seguinte:

AVALIE expressão

CASO valor 1

bloco de código 1

CASO 2

bloco de código 2

...

DE OUTRA FORMA

bloco de código de tratamento de exceções

FIM

Page 19: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Em código M, esta sintaxe é escrita como abaixo:

switch <expressão>

case <valor 1>

<bloco de código 1>

case <valor 2>

<bloco de código 2>

...

otherwise

<bloco de código de tratamento de exceções>

end

Page 20: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Após escrever o código-M da função-S, basta inserir um

bloco S-Function e configurá-lo. A configuração exige apenas o

nome do arquivo-M e a lista de parâmetros opcionais (caso a

função os possua).

Page 21: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Após inserir e configurar o bloco, pode-se criar uma

máscara para ele. A máscara do bloco irá gerar uma janela para

entrada dos parâmetros opcionais pelo usuário.

Para criar uma máscara, selecione o bloco S-Function e, no

menu Edit, escolha a opção Edit Mask.

Na aba Icon, pode-se entrar o nome do bloco que

aparecerá no diagrama.

Na aba Initialization, edita-se a lista de parâmetros que o

usuário deverá entrar, antes da simulação.

Page 22: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Page 23: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Page 24: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

Page 25: EQE594 – Controle e Instrumentação de Processos Profa. Ofélia Araújo Sistemas não-lineares no Simulink

EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo

Simulando um CSTR

O modelo já pode ser simulado. As saídas são: