Sie sind auf Seite 1von 43

Exemplo

1
Exemplo 3 – Controlando o tanque de nível
Considerando um sistema de controle de nível mostrado abaixo.
O nível de líquido é medido e a saída do transmissor de nível (LT) é
enviada para um controlador feedback (LC) que controla o nível pelo
ajuste da vazão volumétrica q2. A segunda vazão de fluido, q1, corresponde
à variável perturbação (corrente chegando de outra unidade,
não posso controlar essa corrente).

q1 q2

hm
LT LC

h
q3

A
Encontrando a função de transferência do tanque de nível:

Assumindo que:
- a densidade do líquido e a área da seção transversal do
tanque A são constantes.

- a relação entre a vazão e a carga é linear:

q3  h / R
Encontrando a função de transferência do tanque de nível:

O modelo é descrito por uma equação de balanço transiente de massa no


tanque:

dh
A  q1  q 2  q3
dt

Substituindo a hipótese ii na equação anterior ficamos com:

dh h
A  q1  q 2  
dt R
Encontrando a função de transferência do tanque de nível:

Introduzindo as variáveis-desvio e aplicando a Transformada


de Laplace, chegamos as funções de transferência:

h' ( s ) Kp
 G1 ( s) 
'
q1 ( s)  s 1

h' ( s ) Kp
 G2 ( s ) 
'
q 2 ( s)  s 1
onde:
Kp  R
  AR
Encontrando a função de transferência do tanque de nível:

Para o exemplo em questão considere um tanque de 1 m de diâmetro


e uma válvula na saída na linha atuando sob uma resistência
linear (R) de 6.37 min/m2.

A = 3.1415 * (1/2)^2
A = 0.785 K p  R  6.37
R = 6.37   AR  5

h' ( s ) Kp 6.37
 G2 ( s)  
'
q2 ( s )  s  1 5s  1
Função de transferência do tanque de nível:
Encontrando a função de transferência da válvula:

Considerando uma válvula com a seguinte


função de transferência:

Gv  K v  0.0103 m 3 / min psi

Válvula:
0.1545 m3/min
Linguagem
de
engenharia

0 m3/min
0 Linguagem 15
psi de psi
máquina
Função de transferência da válvula:
Encontrando a função de transferência do sensor

Considerando um medidor com a seguinte


função de transferência:

Gm  K m  5 psi / m

Sensor:
3m
Linguagem
de
engenharia

0m
0 Linguagem 15
psi de psi
máquina
Função de transferência do sensor
Malha de Controle
Exemplo 3 – Controlando o tanque de nível

Set-point Erro:
(sp - valor medido)

Valor medido
Válvula

Controlador
Processo

Medidor
Exemplo 3 – Controlando o tanque de nível

Ajuste de Controladores:

Na prática o melhor ajuste para um controlador


é obtido pela combinação da ação P (proporcional), I (integral),
e D (derivativa). Podemos usar o Simulink para obter uma
estimativa inicial desse ajuste.

D
I Nem todas as combinações de valores para P, I e D são
C possíveis. As vezes o processamento numérico trava.
A
Exemplo 3 – Controlando o tanque de nível

Ajuste de Controladores:

Na prática o melhor ajuste para um controlador


é obtido pela combinação da ação P (proporcional), I (integral),
e D (derivativa). Podemos usar o Simulink para obter uma
estimativa inicial
Tente:desse ajuste.
P= 2 2 2 2
I = 0 25 1 1
D= 0 0 0 5

D
I Nem todas as combinações de valores para P, I e D são
C possíveis. As vezes o processamento numérico trava.
A
Exemplo
2
Revisão de fminsearch
Exemplo
3
Modelagem simples de um tanque de nível
Modelagem simples de um tanque de nível

Modelagem & Dinâmica de Processos

Modelos simples - o tanque de nível


pode-se escrever o balanço de massa do sistema

dmt 
  FE  F  (2)
dt
Ainda,

dmt  dht 
 A (3)
dt dt
e, portanto,

dht  1
 FE  F  (4)
dt A

1
Modelagem simples de um tanque de nível

Modelagem & Dinâmica de Processos

Modelos simples - o tanque de nível


Freqüentemente, considera-se a vazão de saída do tanque
proporcional à altura da coluna de líquido é inversamente
proporcional a uma resistência ao escoamento (R):

h
F  (5)
R
Logo,

dht  1  h
  FE   (6)
dt A R

1
Modelagem simples de um tanque de nível

Modelagem & Dinâmica de Processos

Modelos simples - o tanque de nível


Este modelo simples de um tanque de nível, sem balanço de
energia, possui uma solução analítica:

 t

ht   RFE 1  e RA 

(7)
 

Para simular este modelo, basta escolher os valores das


constantes R, A e FE, das condições iniciais h0 e t0.
A simulação da solução analítica do modelo do tanque de
nível é mostrada a seguir.

1
Modelagem simples de um tanque de nível

% Definição das constantes do modelo


R = 1; % h/m2
A = 2; % m2
Fe = 10; % m3/h
% Tempo de simulação
t = 0.0 : 0.01 : 10.0; %h
% Simulação da altura de líquido
h = R*Fe*(1 - exp(-t/(R*A))); %m
% Visualização da simulação
plot(t,h);
title('Simulação do tanque de nível');
xlabel('Tempo (h)');
ylabel('Altura (m)');
Modelagem simples de um tanque de nível

Verifique a consistência do calculo: a


matriz “h” gerada também deve ser 1x1000, já que
cada instante “t” gerou um valor “h”. É sempre útil
conferir a dimensão das variáveis, principalmente a
medida que as rotinas forem tornando-se
complexas.

Dica!
Exemplo
4
Modelagem de um tanque de nível via ED
Modelagem & Dinâmica de Processos

Muitas vezes é muito trabalhoso, ou mesmo impossível,


Modelos simples - o tanque de nível
encontrar a solução analítica para o conjunto de
equaçõesFreqüentemente,
diferenciais. Nesse casoatemos
considera-se quesaída
vazão de simular
do tanque
usando soluçãoà numérica
proporcional altura da das equações
coluna diferenciais.
de líquido é inversamente
Vamos assumir aque
proporcional umaoresistência
modelo ao doescoamento
exemplo (R):
1 não tivesse
solução analítica, e então usar o Matlab para estudar o
comportamento da altura dohnível com o tempo. A
F  (5)
equação diferencial
R será:
Logo,

dht  1  h
  FE   (6)
dt A R

1
Modelagem de um tanque de nível via ED

% Definição das constantes do modelo


R = 1; % h/m2
A = 2; % m2
Fe = 10; % m3/h function dh = dhdt(t,h,flag,par)
% Tempo de simulação R = par(1);
A = par(2);
t = 0.0 : 0.01 : 10.0; % h
Fe = par(3);
% Simulação da altura de líquido dh = (Fe-(h/R))/A;
[t,h] = ode45('dhdt',t, 0,[],[R A Fe]);
% Visualização da simulação
plot(t,h);
title('Simulação do tanque de nível');
xlabel('Tempo (h)');
ylabel('Altura (m)');
Modelagem de um tanque de nível via ED

Nesse caso temos uma equação diferencial, então deveremos


usar uma função Matlab específica para a resolução de eq.
diferenciais. No caso temos a ODE45. A função ODE45
implementa um esquema de solução de sistemas de EDO’s por
método de Runge-Kutta de ordem média (consulte o help sobre
ODE45 para maiores detalhes).

[t,h] = ode45('dhdt',t, 0,[],[R A Fe]);


Modelagem de um tanque de nível via ED

Os parâmetros enviados entre parênteses são aqueles que


devemos passar para a ODE45:

-1º argumento de ode45 é uma string contendo o nome do arquivo .m


com as equações diferenciais. Neste caso, o arquivo chama-se dhdt.m.

-2º argumento é um vetor que pode conter (i) dois elementos: os


tempos inicial e final da integração, ou (ii) todos os valores de tempo para
os quais deseja-se conhecer o valor da variável integrada.

-3º argumento é o vetor contendo as condições iniciais das variáveis


dependentes das EDO’s. Os valores dos elementos do vetor de condições
iniciais precisam estar na mesma ordem em que as variáveis
correspondentes são calculadas na função passada como 1º argumento
para ode45 (neste caso, dhdt.m). Nesse caso em particular só temos uma
variável dependente, assim temos uma única condição inicial.
Modelagem de um tanque de nível via ED

-4º argumento é o vetor de opções de ode45. Há várias opções do


método que podem ser ajustadas. Entretanto, não deseja-se alterar
os valores-padrão. Neste caso, é passado um vetor vazio, apenas para
marcar o lugar das opções.

-5º argumento é um vetor contendo parâmetros de entrada para a


função dhdt.m. Observe que a função .m deve ler esses parâmetros
na ordem correta (recebe como variável local “par”).

Os resultados da simulação são obtidos nos dois parâmetros


entre colchetes (t , h).
Modelagem de um tanque de nível via ED

A codificação do arquivo .m segue o mesmo formato já explicado para


funções porém com algumas particularidades.

No caso específico de um arquivo .m que deve ser chamado por uma


função de solução EDO’s (todas as ODExx), a declaração deste arquivo
deve seguir a sintaxe:

function dy = nomefun(t, y, flag, arg1, ..., argN)

onde
•dy é o valor da(s) derivada(s) retornadas
•t e y são as variáveis independente e dependente, respectivamente.
•Opcional: caso deseje-se receber outros parâmetros, a função deve
receber um argumento marcador de lugar chamado flag. Após este,
ela recebe quaisquer outros parâmetros.
Exemplo
5
Modelagem de um tanque de aquecimento
Modelagem de um tanque de aquecimento
Modelagem & Dinâmica de Processos
Modelagem & Dinâmica de Processos

Modelos simples - tanque de aquecimento


Modelos simples - tanque de aquecimento
Como no caso anterior, o balanço de massa pode ser escrito
como    V dT
d :VT
T
dV  dT
 A h T
dh 
 (9)
dt dt dt  h dt dt 
dht  1
  FE   (6)
dt A R
 dT T  h 
C p A  h   FE     FE HE  FH   Q (10)
O dt A
balanço de energia R  como:
é escrito

dT C1p d F
VTT  UT 
E E   FhE H
  FH
 F   QU 
 (8)
  dt  E T E
 (11)
dt h  A C p   A
 C p 

1 1
Modelagem de um tanque de aquecimento

Traduzindo as equações diferenciais para o Matlab:

Matlab Real

dy(1) dh/dt

y(1) h

dy(2) dT/dt

y(2) T
Modelagem de um tanque de aquecimento

% Definição das constantes do modelo


R = 1; % h/m2
A = 2; % m2
Fe = 10; % m3/h
Cp = 0.75; % kJ/(kg . K)
Ro = 1000; % kg/m3
U = 150; % kJ/(m2 . s . K)
Te = 530; %K
Th = 540; %K

% Tempo de simulação
t = 0.0 : 0.01 : 10.0; % h

% Simulação do modelo
[t,y]=ode45('dydt',t,[(5/A) Th],[],[U A Ro Cp Fe R Te Th]);
Modelagem de um tanque de aquecimento

% Visualização da simulação
figure(1);
plot(t,y(:,1));
title('Tanque de aquecimento');
xlabel('Tempo (h)');
ylabel('Altura (m)');
figure(2);
plot(t,y(:,2));
title('Tanque de aquecimento');
xlabel('Tempo (h)');
ylabel('Temperatura (K)');
Modelagem de um tanque de aquecimento

A única modificação em relação ao exemplo anterior é que


estamos passando duas condições iniciais (pois existem duas
variáveis dependentes):

[t,y]=ode45('dydt',t,[(5/A) Th],[],[U A Ro Cp Fe R Te Th]);


Modelagem de um tanque de aquecimento

A função .m tem o código apresentado a seguir:

function dy = dydt(t,y,flag,par);
U = par(1);
A = par(2);
Ro = par(3);
Cp = par(4);
Fe = par(5);
R = par(6);
Te = par(7);
Th = par(8);
dy(1) = (Fe-(y(1)/R))/A;
dy(2) = (1/y(1))* ( ((Fe*Te/A)+(U*Th/(Ro*Cp)))...
- ( y(2)*((Fe/A)+(U/(Ro*Cp)))) );
dy = dy(:);
Modelagem de um tanque de aquecimento

O vetor dy é criado como vetor linha (dy(1)) e


(dy(2)). Porém temos que retornar como vetor coluna.

Use o comando:
matriz coluna = matriz linha (:)

Dica!
Modelagem de um tanque de aquecimento

Quando for fazer os gráficos no programa principal


lembre-se que a primeira coluna de “dy” refere-se a “h” e a
segunda a “T”. Então para graficar h vs. tempo faça:

figure(1);
plot(t,y(:,1));
title('Tanque de aquecimento');
xlabel('Tempo (h)');
ylabel('Altura (m)');

Dica!

Das könnte Ihnen auch gefallen