Académique Documents
Professionnel Documents
Culture Documents
?
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink
A programação no Simulink segue uma interface
gráfica muito mais intuitiva e fácil de usar:
MATLAB Avançado - Simulink
Ambiente de Trabalho Simulink
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink
Exemplos
MATLAB Avançado - Simulink
1
Exemplo
MATLAB Avançado - Simulink
Biblioteca Biblioteca
Sources Math
Ajuste automático da escala do gráfico:
MATLAB Avançado - Simulink
Ajuste manual da escala do gráfico:
MATLAB Avançado - Simulink
Agora quero multiplicar o resultado por -1:
Biblioteca
Math
MATLAB Avançado - Simulink
Configuração do bloco Product:
Número de termos
da multiplicação.
MATLAB Avançado - Simulink
Multiplicação
de matrizes ou
termo a termo.
Alterando os parâmetros de simulação:
MATLAB Avançado - Simulink
Tempo inicial
Tempo final
Criando um sub-sistema:
Sub-sistema
MATLAB Avançado - Simulink
Editando um sub-sistema:
Sub-sistema
MATLAB Avançado - Simulink
Algumas vezes é mais fácil tratar os dados gerados no
ambiente Matlab.
Biblioteca
Sinks
MATLAB Avançado - Simulink
Cria a variável
A no workspace
Configuração do bloco “To Workspace”:
Cria a variável
A no workspace
MATLAB Avançado - Simulink
Formato da variável
No Workspace...
>> plot(tout,A)
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink
Rodando um bloco:
CTRL R
Combinando dois sinais:
Entre outras aplicações, permite exibir duas
ou mais curvas no mesmo gráfico.
MATLAB Avançado - Simulink
Bloco MUX
Biblioteca Signals & Sys.
MATLAB Avançado - Simulink
2
Exemplo
Temos a simulação de um tanque de nível sob a influência de uma
perturbação degrau na vazão da alimentação. A figura descreve
o sistema físico que será simulado.
MATLAB Avançado - Simulink
q1 q2
h
q3
A
Deduzindo o modelo matemático que descreve o tanque:
Assumindo que:
- a densidade do líquido e a área da seção transversal do
tanque A são constantes.
MATLAB Avançado - Simulink
q3 h / R
O modelo é descrito por uma equação de balanço transiente de massa no
tanque:
dh
A q1 q 2 q3
dt
MATLAB Avançado - Simulink
dh h
A q1 q 2
dt R
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
MATLAB Avançado - Simulink
h' ( s ) Kp
G2 ( s )
'
q 2 ( s) s 1
onde:
Kp R
AR
Para o exemplo em questão considere um tanque de 0.5 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 * (0.5/2)^2
A = 0.196 K p R 6.37
R = 6.37 AR 1.25
MATLAB Avançado - Simulink
Corrente q1
Corrente q2
Biblioteca
Source
MATLAB Avançado - Simulink
Biblioteca
Continuous
Degrau começa
no tempo zero
Degrau começa
no tempo dez
MATLAB Avançado - Simulink
Bloco Função
de Transferência
MATLAB Avançado - Simulink
degrau é 1
A amplitude do
Resultado obtido:
1º estado
MATLAB Avançado - Simulink
estacionário 2º estado
estacionário
1ª 2ª
perturbação perturbação
MATLAB Avançado - Simulink
3
Exemplo
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).
MATLAB Avançado - Simulink
q1 q2
hm
LT LC
h
q3
A
Considerando uma válvula com a seguinte função de transferência:
Set-point
MATLAB Avançado - Simulink
Valor medido
Válvula
Controlador
Processo
MATLAB Avançado - Simulink
Medidor
Bloco Ganho:
Gm K m 24 psi / m
Bloco PID:
O controlador é representado pelo bloco
PID Controller. Podemos regular a sua ação proporcional,
integral e derivativa.
MATLAB Avançado - Simulink
Ajuste de Controladores:
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
Ajuste de Controladores:
Tente:
P = ajuste
Na prática o melhor 2 para2 um 2controlador
2
I =
é obtido pela combinação da ação 0 25 1 I (integral),
P (proporcional), 1
e D (derivativa). Podemos
D= usar o0 Simulink
0 para0 obter uma
5
MATLAB Avançado - Simulink
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
MATLAB Avançado - Simulink
4
Exemplo
Equações para modelar um CSTR:
dV
FA F
dt
MATLAB Avançado - Simulink
E
dC A
dt
FA A
V
C A C A k0e RT C A
E
dT
A
F CP T A
T HVk0e
RT C
A UAT Tc
dt VC P
Passando as equações para o formato Matlab:
dV = Fi-F;
MATLAB Avançado - Simulink
continua...
onde:
Legenda:
parâmetros freqüentemente alterados
parâmetros calculados
MATLAB Avançado - Simulink
Biblioteca
Functions & Tables
Parâmetros
freqüentemente
alterados
MATLAB Avançado - Simulink
Parâmetros calculados
Em resumo:
Fi T
Cai DeltaH
Ca U
Ko A
MATLAB Avançado - Simulink
V Tc
F E
Cp R
ro
Ti
Configurando o bloco S-function:
equações
Parâmetros alterados
pela máscara
MATLAB Avançado - Simulink
%
switch flag
MATLAB Avançado - Simulink
% 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]';
continua...
Criando o arquivo com as equações:
%
switch flag
MATLAB Avançado - Simulink
%
switch flag
MATLAB Avançado - Simulink
% 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]';
continua...
sys = [ número de estados contínuos
número de estados discretos
function [sys,x0]
número =dereator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
saídas
% número de entradas
% Simulamarcador
um reatordeCSTR (mistura direta
alimentação perfeita) no qual se conduz uma
% reaçãotempo
exotérmica (A->B), resfriado
de amostragem ] por serpentina
%
switch flag
MATLAB Avançado - Simulink
% 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]';
continua...
function [sys,x0]
Estimativas iniciais= para
reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
o cálculo do sistema de equações diferenciais
%
(cálculo numérico)
% Simula um reator CSTR (mistura perfeita) no qual se conduz uma
% reação exotérmica (A->B), resfriado por serpentina
%
switch flag
MATLAB Avançado - Simulink
% 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]';
continua...
case 1 % Calcula as derivadas
% Atualiza entradas
cai = u(1); %lbm/ft3, concentração da alimentação=0.5;
Fi = u(2); %ft3/hr, vazão de alimentação=40
F = u(3); %vazão de retirada=40
Tc = u(4); %R, temperatura do fluido de refrigeração=594.6
Ti = u(5); %R, temperatura da alimentação=530
% Cálculo das derivadas
Ca = x(1);
MATLAB Avançado - Simulink
T = x(2);
V = x(3);
k = k0*exp(-E/(R*T));
continua...
case 1 % Calcula as derivadas
% Atualiza entradas
cai = u(1); %lbm/ft3, concentração da alimentação=0.5;
Fi = u(2); %ft3/hr, vazão de alimentação=40
F = u(3); %vazão de retirada=40
Tc = u(4); %R, temperatura do fluido de refrigeração=594.6
Ti = u(5); %R, temperatura da alimentação=530
% Cálculo das derivadas
Ca = x(1);
MATLAB Avançado - Simulink
T = x(2);
V = x(3);
k = k0*exp(-E/(R*T));
continua...
case 1 % Calcula as derivadas
% Atualiza entradas
cai = u(1); %lbm/ft3, concentração da alimentação=0.5;
Fi = u(2); %ft3/hr, vazão de alimentação=40
F = u(3); %vazão de retirada=40
Tc = u(4); %R, temperatura do fluido de refrigeração=594.6
Ti = u(5); %R, temperatura da alimentação=530
% Cálculo das derivadas
Ca = x(1);
MATLAB Avançado - Simulink
T = x(2);
V = x(3);
k = k0*exp(-E/(R*T));
continua...
case 1 % Calcula as derivadas
% Atualiza entradas
cai = u(1); %lbm/ft3, concentração da alimentação=0.5;
Fi = u(2); %ft3/hr, vazão de alimentação=40
F = u(3); %vazão de retirada=40
Tc = u(4); %R, temperatura do fluido de refrigeração=594.6
Ti = u(5); %R, temperatura da alimentação=530
% Cálculo das derivadas
Ca = x(1);
MATLAB Avançado - Simulink
T = x(2);
V = x(3);
k = k0*exp(-E/(R*T));
continua...
case 3 % Calcula as saídas
otherwise
sys = [];
MATLAB Avançado - Simulink
end
MATLAB Avançado - Simulink