Download - Desenvolvendo aplicações em Simulink
EQ/UFRJ
Mais de 150 mil resultados
Mundo Simulink
EQ/UFRJ
?http://newsreader.mathworks.com
Ajuda
EQ/UFRJ
Acessando o Simulink
EQ/UFRJ
A programação no Simulink segue uma interface gráfica muito mais intuitiva e fácil de usar:
Ambiente Simulink
EQ/UFRJ
Ambiente de Trabalho Simulink
Ambiente Simulink
EQ/UFRJ
Exemplos
EQ/UFRJ
Exemplo1
EQ/UFRJ
Biblioteca Math
Biblioteca Sources
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Ajuste automático da escala do gráfico:
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Ajuste manual da escala do gráfico:
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Agora quero multiplicar o resultado por -1:
Exemplo 1 – Comportamento Senoidal
Biblioteca Math
EQ/UFRJ
Configuração do bloco Product:
Número de termosda multiplicação.
Multiplicaçãode matrizes outermo a termo.
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Alterando os parâmetros de simulação:
Tempo inicial
Tempo final
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Criando um sub-sistema:
Sub-sistema
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Editando um sub-sistema:
Sub-sistema
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Algumas vezes é mais fácil tratar os dados gerados no ambiente Matlab.
Usamos o bloco “to workspace”:
Cria a variávelA no workspace
Biblioteca Sinks
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Configuração do bloco “To Workspace”:
Cria a variávelA no workspace
Formato da variável
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
>> plot(tout,A)
No Workspace...
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Rodando um bloco:
CTRL R
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Combinando dois sinais:Entre outras aplicações, permite exibir duas
ou mais curvas no mesmo gráfico.
Bloco MUXBiblioteca Signals & Sys.
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Dois ou mais gráficos:
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Dois ou mais gráficos:Configurando...
Exemplo 1 – Comportamento Senoidal
EQ/UFRJ
Exemplo2
EQ/UFRJ
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.
q1
q3
q2
h
A
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
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:
Deduzindo o modelo matemático que descreve o tanque:
Rhq /3
Exemplo 2 – Simulação de um modelo dinâmico
mmin
m2
m3
min=
EQ/UFRJ
O modelo é descrito por uma equação de balanço transiente de massa no tanque:
321 qqqdtdhA
Substituindo a hipótese ii na equação anterior ficamos com:
Rhqq
dtdhA 21
Exemplo 2 – Simulação de um modelo dinâmico
m3
mingm3
mmin
gm3
m2
EQ/UFRJ
Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chegamos as funções de
transferência:
1)(
)()('
1'1
sK
sGsqsh p
1)(
)()('
2'2
sK
sGsqsh p
onde:
AR
RK p
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
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.
Serão simulados um degrau de 1 ft3 na vazão q1 a partir do tempo igual a 0 min (step) e um degrau de 1 ft3 na
vazão q2 a partir do tempo igual a 10 min(step1).
A = 3.1415 * (0.5/2)^2A = 0.196
R = 6.37 25.1
37.6
AR
RK p
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
Corrente q1
Corrente q2
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
Biblioteca Source
Biblioteca Continuous
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
Degrau começano tempo zero
Degrau começano tempo dez
Bloco Funçãode Transferência
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
A amplitude dodegrau é 1
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
Resultado obtido:
1º estadoestacionário 2º estado
estacionário
1ª perturbação
2ª perturbação
Exemplo 2 – Simulação de um modelo dinâmico
EQ/UFRJ
Exemplo3
EQ/UFRJ
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
q3
q2
h
A
LT LChm
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
Considerando uma válvula com a seguinte função de transferência:
Considerando um medidor com a seguinte função de transferência:
psimKG vv min/0103.0 3
mpsiKG mm /24
Exemplo 3 – Controlando o tanque de nível
15psi
0psi
Linguagem de
engenharia
0 m
3,60 m
Linguagem de
máquina
EQ/UFRJ
Set-point
Valor medido
Erro: (sp - valor medido)
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
Exemplo 3 – Controlando o tanque de nível
ControladorProcesso
Medidor
Válvula
EQ/UFRJ
Bloco Ganho:
Quando a função de transferência é simplesmenteuma constante, como no caso do medidor, podemos
representa-lá pelo bloco Gain.
mpsiKG mm /24
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
Bloco PID: O controlador é representado pelo bloco
PID Controller. Podemos regular a sua ação proporcional,integral e derivativa.
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
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 umaestimativa inicial desse ajuste.
Nem todas as combinações de valores para P, I e D sãopossíveis. As vezes o processamento numérico trava.
DDIICCAA
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
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 umaestimativa inicial desse ajuste.
Tente: P = 2 2 2 2I = 0 25 1 1D = 0 0 0 5
Nem todas as combinações de valores para P, I e D sãopossíveis. As vezes o processamento numérico trava.
DDIICCAA
Exemplo 3 – Controlando o tanque de nível
EQ/UFRJ
Revisão defminsearch
EQ/UFRJ
EQ/UFRJ
Exemplo 4
Exemplo 4
EQ/UFRJ
A seguinte malha de controle foi elaborada no Simulink.Usar o Matlab para ajustar o controlador.
PID
degrau unitáriono instante 5
Exemplo 4
EQ/UFRJ
clear allclose allwarning offoptions = optimset('display','iter');global P I D erroPmin = fminsearch('custo', [1 5 1],options)
Programa principal:
Exemplo 4
EQ/UFRJ
function [erro] = custo(x)global P I D erroP=x(1);I=x(2);D=x(3);[T]=sim('malha',[0 65]);erro=sum(erro.^2);
Função “custo”:
Exemplo 4
EQ/UFRJ
Solução encontrada para degrau unitário no SP: Pmin = 4.5075 2.6329 -0.0000
Exemplo 4
EQ/UFRJ
Arquitetura Simulink usada para gerar o gráficodo slide anterior:
Exemplo 4
EQ/UFRJ
Exemplo 4b
Exemplo 4b
EQ/UFRJ
Ao invés de minimizar o somatório quadrático do erro,posso minimizar o somatório quadrático ponderado com
o tempo. Ou seja, erros em tempos mais elevados são maissignificativos.
Exemplo 4b
EQ/UFRJ
Exemplo 4b
EQ/UFRJ
clear allclose allwarning offoptions = optimset('display','iter');global P I D erro tempoPmin = fminsearch('custo', [10 5 1],options)
Programa principal:
Exemplo 4b
EQ/UFRJ
function [erro] = custo(x)global P I D erro tempoP=x(1);I=x(2);D=x(3);[T]=sim('malha',[0 65]);%erro=sum(erro.^2); % somatorio quadratico do erroerro=sum((erro.*tempo).^2); % somatorio quadratico
do erro ponderado com o tempo
Função custo:
Exemplo 4b
EQ/UFRJ
Resultado obtido:Pmin = 25.8333 5.3333 -0.0000
Chute inicial usado:10 5 1
Exemplo 4b
EQ/UFRJ
Ajuste de TF
EQ/UFRJ
?
EQ/UFRJ
EQ/UFRJ
EQ/UFRJ
Ferramenta completa para treinamento...
EQ/UFRJ
Passando dados para o Simulink
EQ/UFRJ
Gerador de dados experimentais:
EQ/UFRJ
EQ/UFRJ
Usando os dados experimentais:
EQ/UFRJ
EQ/UFRJ
Exemplo5
EQ/UFRJ
Equações para modelar um CSTR:
FFdtdV A
ARTE
AAA
AA CekCC
VF
dtdC
0
P
cARTE
AP
A
VCTTUACeHVkTTCF
dtdT
0
Exemplo 5 – Bloco S-function
EQ/UFRJ
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);
Passando as equações para o formato Matlab:
Exemplo 5 – Bloco S-function
EQ/UFRJ
onde:
Fi: vazão de alimentação do reator (ft3/h)Cai: concentração da alimentação do reator (lbm/ft3)Ca: concentração no reator (variável)k: é dado pela equação k = k0*exp(-E/(R*T))V: volume do reatorF: vazão de saída (ft3/h)Cp: calor especifico = 0.75 btu/lbm.Rro: densidade =50 lb/ft3Ti: temperatura de alimentação (R)T: temperatura do reatorDeltaH: calor de reação = -30000 BTU/ lbmU: coeficiente de troca térmica =150 BTU/(h.ft2.R)
continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
onde:
A: área de troca térmica = 250 ft2Tc: temperatura do fluido de alimentação (R)E: energia de ativação = 30000 BTU/lbmR: constante dos gases = 1.99 BTU/lbm.R
parâmetros freqüentemente alterados
parâmetros raramente alterados
parâmetros calculados
Legenda:
Exemplo 5 – Bloco S-function
EQ/UFRJ
Exemplo 5 – Bloco S-function
EQ/UFRJ
Parâmetrosfreqüentementealterados
Parâmetros raramente alterados(máscara)
Biblioteca Functions & Tables
Exemplo 5 – Bloco S-function
EQ/UFRJ
Parâmetros calculados
Exemplo 5 – Bloco S-function
EQ/UFRJ
Fi
Cai
Ca
Ko
VFCp
ro
Ti
T
DeltaH
U
A
Tc
E
R
Em resumo:
Exemplo 5 – Bloco S-function
EQ/UFRJ
Configurando o bloco S-function:
Nome do arquivo com as equações
Parâmetros alteradospela máscara
Exemplo 5 – Bloco S-function
EQ/UFRJ
Criando uma máscara:
Exemplo 5 – Bloco S-function
EQ/UFRJ
Localização do arquivo com as equações:
O arquivo com as equações deve estar localizado no mesmolocal dos arquivos Simulink!
O Current Directory do Matlab deve apontar para esse local!
Exemplo 5 – Bloco S-function
EQ/UFRJ
Criando o arquivo com as equações:
function [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 %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]'; continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
Criando o arquivo com as equações:
function [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 %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]';
• sys é a saída do modelo, cujo significado depende de flag• x0 é o vetor de condições iniciais (funciona apenas quando flag = 0 )• t é o tempo de simulação• x é o vetor de estados do modelo• u é o vetor de entradas do modelo (recebido do bloco Mux)• flag é um parâmetro que informa o tipo de informação que o integrador espera receber a cada chamado• U,...,k0 são os parâmetros adicionais que podem ser passados à função através de uma mascara (devem estar declarados na configuração do bloco S-function).
Exemplo 5 – Bloco S-function
EQ/UFRJ
Criando o arquivo com as equações:
function [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 %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]'; continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
function [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 %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]'; continua...
sys = [ número de estados contínuosnúmero de estados discretosnúmero de saídasnúmero de entradasmarcador de alimentação diretatempo de amostragem ]
Exemplo 5 – Bloco S-function
EQ/UFRJ
function [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 %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]'; continua...
Estimativas iniciais para o cálculo do sistema de equações diferenciais (cálculo numérico)
Exemplo 5 – Bloco S-function
EQ/UFRJ
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); 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];
continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
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); 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];
continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
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); 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];
continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
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); 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];
continua...
Exemplo 5 – Bloco S-function
EQ/UFRJ
case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = []; end
Exemplo 5 – Bloco S-function
EQ/UFRJ
Exemplo 5
Bloco Integrador
A outra técnica para resolver sistemas de equações diferenciais no Simulink é utilizando o bloco Integrator. A
vantagem dessa técnica é que podemos construir a equação de modo totalmente intuitivo,
como veremos abaixo.
Por simplicidade vamos trabalhar com uma única equação diferencial,
mas a técnica pode ser estendida para sistemas de equações.
Exemplo 5 – Bloco Integrador
*))((1 hhKFeAdt
dh
EQ/UFRJ
Exemplo 5 – Bloco Integrador
1/A
( h-hestrela )
EQ/UFRJ
Exemplo 5 – Bloco Integrador
Bloco Fcn(Functions
&Tables)
EQ/UFRJ
Exemplo 5 – Bloco Integrador
K ( h - hestrela )
EQ/UFRJ
Exemplo 5 – Bloco Integrador
Fe - K( h - hestrela )
EQ/UFRJ
Exemplo 5 – Bloco Integrador
(1/A) (Fe - K( h - hestrela ))