You are on page 1of 13

SAENQ99

MATLAB 5.3
Luciano Andr Farina
Maurcio Posser

Aula 4
Simulink

Aula 4
SIMULINK

O que o SIMULINK

SIMULINK - ferramenta interativa, baseada em


estrutura de diagrama de blocos, voltada
para a modelagem, simulao, anlise e
controle de sistemas.
sistemas
Comando de linha:
simulink
simulink

Aula 4
SIMULINK

Exemplo: simulao
da termodinmica
de um modelo de
aquecimento de
uma casa

Comando de linha:
thermo
thermo

Exemplo do potencial
da ferramenta

Aula 4
SIMULINK

Construo de um
modelo simples

Modelo proposto:
Descrio do modelo:
simulao dinmica da
funo x2, de sua
primeira derivada e de
sua integral no tempo

Aula 4
SIMULINK

Construo do modelo:
simulink
simulink

Construo de um
modelo simples

Aula 4
SIMULINK

Construo do modelo:

Construo de um
modelo simples

Aula 4
SIMULINK

Simulao do modelo:

Construo de um
modelo simples

Aula 4
SIMULINK

Escolha dos parmetros de simulao:

Construo de um
modelo simples

Aula 4
SIMULINK

Objetivo do sistema:
retornar a soluo (y)
para uma equao de
reta do tipo y=m.x+b

Criao de uma mscara para um


sistema simples

Construo do sistema:

Aula 4
SIMULINK

Determina condies iniciais


Calcula tamanho do prximo passo
(apenas para blocos com passo varivel)

Estgio da simulao

Rotina da S-Function Flag

Inicializao

mdlInitializeSizes

flag = 0

Clculo do prximo passo mdlGetTimeOfNext


(opcional)
VarHit

flag = 4

Clculo das sadas

mdlOutputs

flag = 3

Atualizao dos estados


discretos

mdlUpdate

flag = 2

Clculo das derivadas

mdlDerivatives

flag = 1

Trmino da simulao

mdlTerminate

flag = 9

Calcula sadas
Atualiza estados discretos
Recalcula sadas
Calculata derivadas
Terminao, executa
qualquertarefa exigida

Integrao

y f t , x ,u
x x g( t , x ,u )
t

y
sadas

Passo de simulao

u
entradas

x
estados

S-functions

Criao de uma
S-function simples

Aula 4
SIMULINK

Objetivo do sistema:
integrao do sinal de
entrada

function [sys, x0] = sfint(t,x,u,flag)


if flag == 0,
x0 = 0;
sys = [1 0 1 1 0 0]';
elseif abs(flag) == 1,
sys = u;
elseif flag == 3,
sys = x;
else
sys = [];

Modelo:

x x

y x x

end

dt u dt

% Condies iniciais
% Definio do
% tamanho dos vetores
% dx/dt = u
% y = x
% No utilizar
% demais flags

Aula 4
SIMULINK

Objetivo:
modelagem de
um tanque

Criao de uma S-function


para uma simulao de um processo

Balano de massa:

dV
FO FI
dt
Dimenses e hidrulica:

FI

V Ab h
V
h

Ab

F O K h

Reescrevendo:

FO

dh FI K h

dt
Ab
h( t0 ) h0

h( t , FI )

Aula 4
SIMULINK

Criao de uma S-function


para uma simulao de um processo

function [sys, x0] = sftank(t,x,u,flag,par)


if ~exist('par')
par = [1 1 .2 100]; % Valores default
end

dh FI K h

dt
Ab
h( t0 ) h0

h( t , FI )

K = par(1);
ro = par(2);
A = par(3);
h0 = par(4);

%kg m^-0,5 s^-1


%kg/m^3
%m^2
%m

switch flag
case 0
x0 = h0;
% Condies iniciais
sys = [1 0 2 1 0 0]'; % Tamanho dos vetores
case 1
sys = (u-K*sqrt(x))/(ro*A); % EDO do sist.
case 3
sys(1) = x;
% h (nvel do tanque)
sys(2) = K*sqrt(x); % Fo (vazo de sada)
case {1, 2, 4, 9}
sys = [];
% No utilizar flags
end