Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Simulink 2
Apostila Simulink 2
AO
MATLAB/SIMULINK
ENIDH 2008/2009
Utilizar as ferramentas de aplicao em tempo real (Real-time Workshop e Realtime Windows Target), de modo a poder efectuar a aquisio e controlo de sistemas
didcticos existentes no laboratrio.
2. INTRODUO AO SIMULINK1
O Simulink um pacote de um software para modelar, simular, e analisar sistemas
dinmicos. Suporta sistemas lineares e no-lineares modelados em tempo contnuo, tempo
discreto ou com uma mistura dos dois. Os sistemas tambm podem ter partes diferentes que
so amostradas ou actualizadas com taxas diferentes.
Para modelar, o Simulink possui uma interface grfica com utilizador (GUI Graphical
User Interface) para construir modelos como diagramas de blocos, usando as operaes de
clicar-e-arrastar do rato. Com esta interface, o aluno pode construir os modelos da mesma
forma que se constroem numa folha de papel (ou como a maioria dos livros de controlo os
descreve). Esta abordagem constitui um enorme avano relativamente s solues tradicionais
que utilizam mtodos numricos. O Simulink inclui uma biblioteca de blocos pr-definidos,
podendo o aluno tambm personalizar e criar os seus prprios blocos.
Depois de definir um modelo, possvel simul-lo. Alguns blocos permitem que se vejam os
resultados enquanto a simulao estiver ainda a ser executada. Alm disso, o aluno pode
modificar os parmetros e observar imediatamente os resultados obtidos. Os resultados da
simulao podem ser enviados para o workspace do MATLAB para visualizao e utilizao
posterior.
Muitas outras ferramentas do MATLAB podem ser usadas no Simulink, sendo por esse facto
que o MATLAB e o Simulink esto integrados. possvel simular, analisar, e rever os
modelos em qualquer ambiente a qualquer ponto.
O Simulink permite-nos criar o modelo de qualquer tipo de artefacto, dispositivo ou aparelho
que no existe fisicamente e v-los funcionando antes que venham a ser realmente
construdos.
- Estes apontamentos foram adaptados de um manual de introduo ao Simulink da autoria de Grupo PET
Engenharia Elctrica UFMS, Brasil.
1
Para criar este modelo, preciso arrastar os blocos das bibliotecas (do library browser) para
o interior do modelo. Procure no library browser e arraste os seguintes blocos:
2
Para copiar o bloco Sine Wave do Library Browser, primeiro expanda a rvore do Library
Browser para mostrar os blocos no Sources library. Faa isto clicando primeiro no sinal + do
Simulink library para mostrar as outras bibliotecas, ento clique no sinal + do Sources
library para mostrar os seus blocos. Finalmente clique no bloco Sine Wave. Ento o Library
browser ir aparecer conforme representado na figura seguinte.
Copie os restantes blocos e arrume-os. Para mover cada bloco, clique e arraste com o rato ou
clique e mova com as setas do teclado para menores distncias.
Com todos os blocos copiados para o interior do modelo, ele dever ter o seguinte aspecto:
Vai perceber que os blocos possuem o smbolo >. Se o smbolo aponta para fora ele indica a
sada do bloco; se aponta para dentro indica uma entrada.
Para conectar o bloco Sine Wave a entrada superior do bloco Mux posicionamos o rato sobre
a sada do bloco Sine Wave at que a forma do ponteiro mude para cross hairs.
O Sine Wave tambm est ligado ao Integrator. Para o fazer, siga a sequncia:
1. Primeiro, posicione o rato em cima da linha entre o Sine Wave e Mux.
Termine as ligaes e abra o bloco Scope com um duplo clique para ver a simulao. Entre no
menu Simulation e escolha a opo Start para iniciar a simulao. Observe as curvas que vo
sendo desenhadas no Scope.
Feche a caixa de dilogo Simulation Parameters clicando no boto Ok. O Simulink aplica
os parmetros e fecha a caixa de dilogo.
Escolha Start no menu Simulation e observe as curvas no bloco Scope.
A simulao pra quando for atingido o tempo de simulao especificado em Simulation
Parameters ou quando for accionado o boto de Stop no menu Simulation.
Para gravar o modelo, escolha Save no menu File e escreva um nome na directoria desejada.
Este arquivo contm a descrio do modelo.
Este exerccio, mostra como executar algumas das tarefas de construo de modelos,
geralmente utilizados no Simulink.
Por definio, o Simulink ajusta o zoom de acordo com o diagrama de blocos quando abre o
diagrama.
um de cada vez
seleccione os objectos com o rato ou com a caixa de seleco
Seleccione o modelo inteiro.
Defina o canto para comear uma caixa de seleco posicionando o ponteiro do rato.
Assim, quando apertar o ponteiro este ir mudar.
Solte o boto do rato. Todos os blocos e linhas que estiverem pelo menos parcialmente
includos dentro caixa de seleco sero seleccionados.
Arraste o bloco que quer copiar para a janela do modelo. Para arrastar um bloco,
posicione o cursor em cima do cone do bloco, e pressione o boto do rato. Passe o
cursor janela designada e solte o boto do rato.
Nota
O Simulink oculta os nomes dos blocos Sum, Mux, Demux, and Bus Selector quando so
copiados para o modelo. Isto feito para evitar que sobrecarregue o modelo desnecessriamente. (As formas destes blocos indicam claramente as suas respectivas funes.)
Pode tambm copiar os blocos usando os comandos Copiar and Colar do menu Edit.
O Simulink escolhe um nome para cada bloco copiado.
Quando se copia um bloco, o bloco novo herda todos os parmetros do bloco original.
O Simulink usa uma grade invisvel de cinco pixels para simplificar o alinhamento de blocos.
Todos os blocos so presos a uma linha na grade. Pode mover um bloco ligeiramente
abaixo, esquerda ou direita seleccionando o bloco e apertando as teclas de seta.
Pode exibir a grade na janela do modelo, digitando o seguinte comando na janela de
MATLAB:
set_param('<model name>','showgrid','on')
Para mudar o espaamento da grade, digite:
set_param('<model name>','gridspacing',<number of
pixels>)
Por exemplo, para mudar para 20 pixels, digite:
set_param('<model name>','gridspacing',20)
8
Para todos os comandos acima indicados, pode tambm seleccionar o modelo, e digitar gcs ao
invs de <model name>.
Mover os blocos de uma janela para a outra o mesmo que copiar os blocos, excepto se
manter pressionada a tecla Shift, enquanto se selecciona o bloco.
Pode usar o comando Undo do menu Edit para remover um bloco que tenha adicionado.
Apagar Blocos
Para apagar um ou mais blocos, seleccione os blocos a serem apagados e aperte a tecla Delete
ou Backspace. Tambm pode escolher Clear ou Cut do menu Edit. O comando Cut recorta
os blocos para o clipboard. Usando o Delete, o Backspace ou o comando Clear no ser
possvel colar novamente o bloco.
Pode usar o comando Undo do menu Edit para restituir um bloco que tenha apagado.
A figura abaixo mostra como o Simulink organiza as portas depois de mudar a orientao de
um bloco usando os comandos Rotate Block e Flip Block. O texto nos blocos mostra a sua
orientao.
Redimensionar os Blocos
Para mudar o tamanho de um bloco, seleccione e arraste quaisquer uma das suas marcas de
seleco. Enquanto segura o boto do rato, um rectngulo pontilhado mostra o novo tamanho
do bloco. Quando soltar o boto do rato, o bloco fica redimensionado.
Por exemplo, a figura abaixo mostra um bloco Gerador de Sinais a ser redimensionado. A
marca do lado inferior direito foi seleccionada e arrastada at posio do cursor. Quando o
boto do rato solto, o bloco assume o novo tamanho.
Nota
Se mudar o nome de um bloco na biblioteca, todas as ligaes para aquele bloco passaro a
estar erradas.
10
O menu Hide Name mantm o nome do bloco visvel. Quando selecciona Hide
Name, ele muda o Show Name quando o bloco seleccionado.
O menu Show Name mostra o nome oculto do bloco.
11
Blocos
Bibliotecas de Blocos do Simulink
O Simulink organiza seus blocos em bibliotecas de blocos de acordo com a aplicao. A
janela do Simulink exibe os cones e os nomes da biblioteca:
Biblioteca Sources
Nome do Bloco
Aplicao
Introduz rudo num sistema contnuo.
12
Biblioteca Sinks
Nome do Bloco
Aplicao
Mostra o valor do sinal.
Exibe sinais gerados durante uma simulao.
Pra a simulao quando o sinal for diferente de zero.
Escreve os dados da simulao num arquivo (ficheiro).
Escreve os dados numa matriz no workspace.
Exibe um grfico X-Y, que utiliza uma janela de figura do
MATLAB.
13
Biblioteca Discrete
Nome do Bloco
Aplicao
Implementa funes de transferncia discretas e filtros.
Biblioteca Continuous
Nome do Bloco
Aplicao
Deriva um sinal.
Integra um sinal.
Produz o sinal de um tempo anterior.
Implementa um sistema em espao de estados linear.
Biblioteca Math
Nome do Bloco
Aplicao
Produz o valor absoluto do sinal.
Determina as razes do sinal.
15
Ganho varivel.
Aplicao
Aplica uma expresso especificada entrada.
16
Biblioteca Nonlinear
Nome do Bloco
Aplicao
Modela o comportamento de um sistema com o decorrer da
simulao.
Modelo descontnuo em zero e com ganho linear para os demais
valores.
Fornece uma zona de sada a zero.
Troca a sada entre duas entrada, manualmente.
Aplicao
Seleciona os sinais da entrada.
Representa um dado bloco seleccionado de uma biblioteca
especificada.
Define um armazenamento de dados partilhado.
17
Blocos Virtuais
Ao criar modelos, preciso estar atento ao facto de os blocos do Simulink serem de duas
categorias bsicas: os blocos virtuais e os no-virtuais. Os blocos no-virtuais tm um papel
activo na simulao de um sistema. Se adicionar ou remover um bloco no-virtual, muda o
comportamento do modelo. Os blocos virtuais, por outro lado, no tm nenhum papel activo
na simulao. Simplesmente, ajudam a organizar um modelo graficamente. Alguns blocos do
Simulink podem ser virtuais nalgumas circunstncias e no-virtuais noutras. Tais blocos so
chamados de blocos condicionalmente virtuais. A tabela seguinte lista os blocos virtuais e
condicionalmente virtuais do Simulink.
Blocos Virtuais
Nome do Bloco
Bus Selector
Sempre virtual.
Enable Port
Sempre virtual.
From
Sempre virtual.
Goto
Sempre virtual.
Sempre virtual.
Ground
Sempre virtual.
Inport
Mux
Sempre virtual.
Outport
Selector
Sempre virtual.
Subsystem
Terminator
Sempre virtual.
Test Point
Sempre virtual.
Trigger Port
20
Description
Breve descrio da finalidade do bloco.
Priority
Prioridade de execuo deste bloco em relao aos outros blocos do modelo.
Tag
Um campo de texto geral que gravado com o bloco.
Open function
MATLAB (m-) function a ser chamada quando o utilizador abrir este bloco.
21
Exemplos
Exemplo 1: Sistema Mecnico Massa-Mola
F
m
( 10.4 )
( 10.5 )
( 10.6 )
1 2
kx
2
1
Energia cintica : Ec = mv 2
2
Energia potencial: E p =
d 2x
dt
a=
d 2x
dt
k
x
m
( 10.7 )
( 10.8 )
( 10.9 )
22
-k/m
s
Integrator
posio
Integrator1
ac
acelerao
velocidade
m/2
Ec
En. Cinetica
k/2
Ep
En. Potencial
t
tempo
Clock
Para efectuar a simulao do sistema, necessrio fornecer um valor inicial para um dos dois
blocos de integrao. Essa informao ser, neste caso, o limite para a varivel de sada. Por
exemplo, desejando-se limitar o deslocamento 'x' entre os valores -20 cm (-0.2 m) e 20 cm,
fixa-se em 0.2 o valor inicial do segunda integral. Uma outra informao fundamental o
valor da constante de proporcionalidade 'k' e o valor da massa 'm'. Esses valores podem ser
introduzidos directamente na 'prompt' (rea de trabalho do MATLAB), conforme mostrado a
seguir:
k = 700;
m = 0.5;
%unidades: N/m
%unidades: Kg
As figuras seguintes foram obtidas atravs da simulao do modelo dado pela equao (10.7).
15
Energia Cintica
10
5
Energia Potencial
0
-0.2
-0.15
-0.1
-0.05
0.05
0.1
0.15
0.2
posio (m)
15
Energia Potencial
10
5
Energia Cintica
0
-8
-6
-4
-2
0
2
velocidade (m/s)
velocidade (m/s)
4
2
0
-2
-4
-6
-8
-0.2
-0.15
-0.1
-0.05
0
posio
0.05
0.1
0.15
0.2
24
Por outro lado, sabemos relacionar a tenso na resistncia e a tenso no condensador com a
corrente que os atravessam, i (t ) :
vR = Ri (t )
dv
i (t ) = C
dt
e Ri(t) v = 0 ou e RC
dv
v = 0
dt
10
26
control
To Workspace1
5
Step
Scope
controlo
Kp
0.2
10s+1
valvula
tanque
nivel
To Workspace
Fig.9
Os grficos obtidos atravs do Matlab/Simulink, para Kp=5 (azul), Kp=7.5 (vermelho) e
Kp=10 (verde), esto representados na Fig.10. Verifica-se que o erro em regime estacionrio
vai diminuindo medida que o Kp vai aumentando, como seria de esperar. No entanto, ir
existir sempre um erro residual, que s poder ser removido atravs da introduo de aco
integral (NOTA: Para mais detalhes, ver apontamentos dos Captulo 9 das folhas da
disciplina).
Notas:
O tempo de simulao utilizado foi de 20 segundos.
Para fornecer o sinal de entrada ao sistema foi utilizado o bloco Step, que gera uma entrada
degrau (neste caso unitrio).
Para obter os dados de simulao, foi utilizado um Scope e a opo de escrever os dados
numa matriz do workspace (Bloco To Workspace).
Exemplo de comandos do Matlab para gerar os grficos de simulao:
plot(tout,nivel_r,tout,nivel,'g'),grid,xlabel('tempo[s]'),ylabel('h
[m]')
27
Grficos da sada controlada (nvel do tanque) para Kp=5 (azul), 7.5 (vermelho) e 10 (verde).
1
0.9
0.8
0.7
h [m]
0.6
0.5
0.4
0.3
0.2
0.1
0
10
tempo [s]
12
14
16
18
20
Fig.10
Grficos da aco de controlo para Kp=5 (azul), 7.5 (vermelho) e 10 (verde).
10
Controlo
10
tempo [s]
12
14
16
18
20
Fig.11
28