SimulinkVersão 7.5
Gabriel de Figueiredo da Costa
Curso de MATLAB Avançado e Simulink 1
1. Introdução
• Simulação orientada a objetos
• Sinais podem ter qualquer unidade
• Blocos podem representar qualquer processo
Curso de MATLAB Avançado e Simulink 2
1. Introdução
• Acesso pela janela do MATLAB:
• Simulação apenas para visualização
• Simulação integrada com programas .m
• Simulação integrada com programas GUI
Curso de MATLAB Avançado e Simulink 3
1. Introdução
• Menu superior
Curso de MATLAB Avançado e Simulink 4
Rodar simulação
Tempo de simulação
Normal/Acelerado
1. Introdução
• Biblioteca de Blocos
– Blocos Source: fontes de sinal
– Blocos de cálculo
– Blocos Sink: visualização ou exportação
Curso de MATLAB Avançado e Simulink 5
Source Cálculos Sink
2. Blocos Source
Curso de MATLAB Avançado e Simulink 6
Cria um vetor
tempo
Cria um vetor
constante
Importa um vetor
de outra simulação
Cria uma onda
senoidal
Cria uma
função-degrau
Cria uma
função-rampa
3. Blocos Sink
Curso de MATLAB Avançado e Simulink 7
Exporta um vetor
para o MATLAB
Tela para
visualização
Gráfico XY
Exporta um vetor para
outra simulação
Exemplo 1
Curso de MATLAB Avançado e Simulink 8
Time Based
Use Simulation Time
Amplitude: 1
Frequência: 1
Fase: 0
Zoom
Automático
Parâmetros: permite
configurar vários eixos
Exemplo 2
Serão criadas duas variáveis no ambiente de
trabalho:
• tout: contém o vetor de tempo
• y: contém o valor do seno
O próprio programa de MATLAB pode rodar a
simulação usando sim(‘arquivo’).
4. Blocos de Cálculo
• Funções matemáticas
Curso de MATLAB Avançado e Simulink 10
4. Blocos de Cálculo
• Funções contínuas
Curso de MATLAB Avançado e Simulink 11
4. Blocos de Cálculo
• Roteamento de sinais
Curso de MATLAB Avançado e Simulink 12
Mux: une dois (ou mais) vetores
em uma matriz de 2 linhas
Demux: separa uma matriz de duas
(ou mais) linhas em 2 vetores
Exemplo 3
• Tanque de nível
Curso de MATLAB Avançado e Simulink 13
F0
F1=C*h
A, h
dh/dt = F0/A - C*h/A
H(s) = (1/A) / (s+C/A) * F0(s)
F. T.
dV/dt = F0 - F1
Exemplo 3
• Degrau unitário em F0 no instante t=1
• C=0.1 , A=5, tempo total=300
Curso de MATLAB Avançado e Simulink 14
Exemplo 4
• Tanque de nível com controlador PID
Curso de MATLAB Avançado e Simulink 15
F0
F1
A, h
dh/dt = F0/A – F1/A
H(s) = (1/As)*F0(s) – (1/As)*F1(s)
dV/dt = F0 - F1
PID
Exemplo 4
• Controle PID com P=1, I=0.05, D=0
Curso de MATLAB Avançado e Simulink 16
degrau em F0
Exemplo 5
• Controle PID com P=1, I=0.05, D=0
Curso de MATLAB Avançado e Simulink 17
degrau em F0
mudança no set-point
Exemplo 6
• Vários sinais em um só eixo
Curso de MATLAB Avançado e Simulink 18
Exemplo 7
• Um scope com vários eixos
Curso de MATLAB Avançado e Simulink 19
5. Bloco Personalizado (s-Function)
• Um módulo de cálculo deve possuir:
– Uma variável independente (t)
– Entradas (u(t))
– Estados (x(t))
– Saídas (y(t))
– Parâmetros (par1, par2, par3)
• Sendo definidas as equações, o módulo recebe as
entradas e os parâmetros, e calcula os estados e as
saídas.
Curso de MATLAB Avançado e Simulink 20
5. Bloco Personalizado (s-Function)
• Biblioteca: user-defined functions
Curso de MATLAB Avançado e Simulink 21
nome do arquivo “.m” usado
Valor definido para
os parâmetros
Módulos
(não será usado)
5. Bloco Personalizado (s-Function)
• Criando a função
function [sys,x0]=system(t,x,u,flag,par1,par2,par3)
switch flag
case 0
% Inicialização.
% Deve retornar em 'sys' o número de entradas, estados
% e saídas, e em 'x0' os estados iniciais.
case 1
% Deve usar 'u' e 'x' e retornar em 'sys' as derivadas.
case 2
% Não será usado.
case 3
% Deve retornar em 'sys' as saídas.
otherwise
end
Curso de MATLAB Avançado e Simulink 22
Exemplo 8
• Crescimento de bactérias com um substrato
Curso de MATLAB Avançado e Simulink 23
F0, C0, S0
F, C, S
V, C, S
μ = μMAX*S / (Ks + S)
dV/dt = F0 – F
dVC/dt = F0*C0 - F*C + μ*C
dVS/dt = F0*S0 - F*S - μ*C*Y
Exemplo 8
• Crescimento de bactérias com um substrato
Curso de MATLAB Avançado e Simulink 24
F0, C0, S0
F, C, S
V, C, S
- Entradas
F0, C0, S0, F
- Estados/Saídas
V(t=0)=10, C(t=0)=1, S(t=0)=1
- Parâmetros
Ks = 3, Y = 2, μMAX = 1
Exemplo 8
function [sys,x0]=biorreator(t,x,u,flag,par1,par2,par3)
switch flag
case 0
sys=[3,0,3,4,0,0];
% estados,0,saídas,entradas,0,0
x0=[10;1;1];
case 1
F0=u(1); C0=u(2); S0=u(3); F=u(4);
V=x(1); C=x(2); S=x(3);
Ks=par1; Y=par2; mimax=par3;
mi=mimax*S/(Ks+S);
dVdt=F0-F;
dCdt=(F0*C0-F*C+mi*C)/V;
dSdt=(F0*S0-F*S-mi*C*Y)/V;
sys=[dVdt;dCdt;dSdt];
case 3
sys=[x(1);x(2);x(3)];
otherwise
end
Curso de MATLAB Avançado e Simulink 25
Exemplo 8
Ks, Y, μMAX
Curso de MATLAB Avançado e Simulink 26
Exemplo 8
• F0 e F constantes em 0
• C0, S0 não serão usados
• As células consomem
todo o substrato e
param de se reproduzir
(atingindo 1,5 g/L).
Curso de MATLAB Avançado e Simulink 27
Exemplo 8
• F0 e F constantes em 0,1
• C0 constante em 0
• S0 constante em 1
• A saída irá conter:
– ~0,3 g/L de células
– ~0,3 g/L de substrato.
Curso de MATLAB Avançado e Simulink 28
Exemplo 8
• F0 e F constantes em 0,5
• C0 constante em 0
• S0 constante em 1
• Situação de Wash-Out:
– As células são retiradas
mais rapidamente do
que se repõem.
Curso de MATLAB Avançado e Simulink 29
Exercício
Programar o sistema de dois tanques
acoplados usando os dados do Exemplo 5.1
da apostila de MATLAB.
Curso de MATLAB Avançado e Simulink 30

Curso de Simulink

  • 1.
    SimulinkVersão 7.5 Gabriel deFigueiredo da Costa Curso de MATLAB Avançado e Simulink 1
  • 2.
    1. Introdução • Simulaçãoorientada a objetos • Sinais podem ter qualquer unidade • Blocos podem representar qualquer processo Curso de MATLAB Avançado e Simulink 2
  • 3.
    1. Introdução • Acessopela janela do MATLAB: • Simulação apenas para visualização • Simulação integrada com programas .m • Simulação integrada com programas GUI Curso de MATLAB Avançado e Simulink 3
  • 4.
    1. Introdução • Menusuperior Curso de MATLAB Avançado e Simulink 4 Rodar simulação Tempo de simulação Normal/Acelerado
  • 5.
    1. Introdução • Bibliotecade Blocos – Blocos Source: fontes de sinal – Blocos de cálculo – Blocos Sink: visualização ou exportação Curso de MATLAB Avançado e Simulink 5 Source Cálculos Sink
  • 6.
    2. Blocos Source Cursode MATLAB Avançado e Simulink 6 Cria um vetor tempo Cria um vetor constante Importa um vetor de outra simulação Cria uma onda senoidal Cria uma função-degrau Cria uma função-rampa
  • 7.
    3. Blocos Sink Cursode MATLAB Avançado e Simulink 7 Exporta um vetor para o MATLAB Tela para visualização Gráfico XY Exporta um vetor para outra simulação
  • 8.
    Exemplo 1 Curso deMATLAB Avançado e Simulink 8 Time Based Use Simulation Time Amplitude: 1 Frequência: 1 Fase: 0 Zoom Automático Parâmetros: permite configurar vários eixos
  • 9.
    Exemplo 2 Serão criadasduas variáveis no ambiente de trabalho: • tout: contém o vetor de tempo • y: contém o valor do seno O próprio programa de MATLAB pode rodar a simulação usando sim(‘arquivo’).
  • 10.
    4. Blocos deCálculo • Funções matemáticas Curso de MATLAB Avançado e Simulink 10
  • 11.
    4. Blocos deCálculo • Funções contínuas Curso de MATLAB Avançado e Simulink 11
  • 12.
    4. Blocos deCálculo • Roteamento de sinais Curso de MATLAB Avançado e Simulink 12 Mux: une dois (ou mais) vetores em uma matriz de 2 linhas Demux: separa uma matriz de duas (ou mais) linhas em 2 vetores
  • 13.
    Exemplo 3 • Tanquede nível Curso de MATLAB Avançado e Simulink 13 F0 F1=C*h A, h dh/dt = F0/A - C*h/A H(s) = (1/A) / (s+C/A) * F0(s) F. T. dV/dt = F0 - F1
  • 14.
    Exemplo 3 • Degrauunitário em F0 no instante t=1 • C=0.1 , A=5, tempo total=300 Curso de MATLAB Avançado e Simulink 14
  • 15.
    Exemplo 4 • Tanquede nível com controlador PID Curso de MATLAB Avançado e Simulink 15 F0 F1 A, h dh/dt = F0/A – F1/A H(s) = (1/As)*F0(s) – (1/As)*F1(s) dV/dt = F0 - F1 PID
  • 16.
    Exemplo 4 • ControlePID com P=1, I=0.05, D=0 Curso de MATLAB Avançado e Simulink 16 degrau em F0
  • 17.
    Exemplo 5 • ControlePID com P=1, I=0.05, D=0 Curso de MATLAB Avançado e Simulink 17 degrau em F0 mudança no set-point
  • 18.
    Exemplo 6 • Váriossinais em um só eixo Curso de MATLAB Avançado e Simulink 18
  • 19.
    Exemplo 7 • Umscope com vários eixos Curso de MATLAB Avançado e Simulink 19
  • 20.
    5. Bloco Personalizado(s-Function) • Um módulo de cálculo deve possuir: – Uma variável independente (t) – Entradas (u(t)) – Estados (x(t)) – Saídas (y(t)) – Parâmetros (par1, par2, par3) • Sendo definidas as equações, o módulo recebe as entradas e os parâmetros, e calcula os estados e as saídas. Curso de MATLAB Avançado e Simulink 20
  • 21.
    5. Bloco Personalizado(s-Function) • Biblioteca: user-defined functions Curso de MATLAB Avançado e Simulink 21 nome do arquivo “.m” usado Valor definido para os parâmetros Módulos (não será usado)
  • 22.
    5. Bloco Personalizado(s-Function) • Criando a função function [sys,x0]=system(t,x,u,flag,par1,par2,par3) switch flag case 0 % Inicialização. % Deve retornar em 'sys' o número de entradas, estados % e saídas, e em 'x0' os estados iniciais. case 1 % Deve usar 'u' e 'x' e retornar em 'sys' as derivadas. case 2 % Não será usado. case 3 % Deve retornar em 'sys' as saídas. otherwise end Curso de MATLAB Avançado e Simulink 22
  • 23.
    Exemplo 8 • Crescimentode bactérias com um substrato Curso de MATLAB Avançado e Simulink 23 F0, C0, S0 F, C, S V, C, S μ = μMAX*S / (Ks + S) dV/dt = F0 – F dVC/dt = F0*C0 - F*C + μ*C dVS/dt = F0*S0 - F*S - μ*C*Y
  • 24.
    Exemplo 8 • Crescimentode bactérias com um substrato Curso de MATLAB Avançado e Simulink 24 F0, C0, S0 F, C, S V, C, S - Entradas F0, C0, S0, F - Estados/Saídas V(t=0)=10, C(t=0)=1, S(t=0)=1 - Parâmetros Ks = 3, Y = 2, μMAX = 1
  • 25.
    Exemplo 8 function [sys,x0]=biorreator(t,x,u,flag,par1,par2,par3) switchflag case 0 sys=[3,0,3,4,0,0]; % estados,0,saídas,entradas,0,0 x0=[10;1;1]; case 1 F0=u(1); C0=u(2); S0=u(3); F=u(4); V=x(1); C=x(2); S=x(3); Ks=par1; Y=par2; mimax=par3; mi=mimax*S/(Ks+S); dVdt=F0-F; dCdt=(F0*C0-F*C+mi*C)/V; dSdt=(F0*S0-F*S-mi*C*Y)/V; sys=[dVdt;dCdt;dSdt]; case 3 sys=[x(1);x(2);x(3)]; otherwise end Curso de MATLAB Avançado e Simulink 25
  • 26.
    Exemplo 8 Ks, Y,μMAX Curso de MATLAB Avançado e Simulink 26
  • 27.
    Exemplo 8 • F0e F constantes em 0 • C0, S0 não serão usados • As células consomem todo o substrato e param de se reproduzir (atingindo 1,5 g/L). Curso de MATLAB Avançado e Simulink 27
  • 28.
    Exemplo 8 • F0e F constantes em 0,1 • C0 constante em 0 • S0 constante em 1 • A saída irá conter: – ~0,3 g/L de células – ~0,3 g/L de substrato. Curso de MATLAB Avançado e Simulink 28
  • 29.
    Exemplo 8 • F0e F constantes em 0,5 • C0 constante em 0 • S0 constante em 1 • Situação de Wash-Out: – As células são retiradas mais rapidamente do que se repõem. Curso de MATLAB Avançado e Simulink 29
  • 30.
    Exercício Programar o sistemade dois tanques acoplados usando os dados do Exemplo 5.1 da apostila de MATLAB. Curso de MATLAB Avançado e Simulink 30