View
58
Download
0
Category
Preview:
DESCRIPTION
Sistemas não-lineares no Simulink. Simulando um CSTR. Entradas: F i , T i ,T C ,F , C i A. Simulando um CSTR. Para construir o diagrama Simulink deste modelo, além dos blocos já utilizados, serão necessários os seguintes: - PowerPoint PPT Presentation
Citation preview
EQE594 – Controle e Instrumentação de ProcessosProfa. 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
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
EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo
Simulando um CSTRO diagrama do modelo do CSTR encontra-se abaixo.
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.
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.
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).
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.
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.
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)
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
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.
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 ]
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.
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.
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
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
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
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
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).
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.
EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo
Simulando um CSTR
EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo
Simulando um CSTR
EQE594 – Controle e Instrumentação de ProcessosProfa. Ofélia Araújo
Simulando um CSTR
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:
Recommended