You are on page 1of 29

MANUAL DE INTRODUO

AO
MATLAB/SIMULINK

Elementos adaptados por:


Prof. Luis Filipe Baptista

ENIDH 2008/2009

MANUAL DE INTRODUO AO MATLAB/SIMULINK


1. OBJECTIVOS DO MANUAL
Este manual tem como objectivo familiarizar o aluno com o Matlab/Simulink, de modo a que
possa ser utilizado nos trabalhos seguintes sobre controladores contnuos e digitais,
nomeadamente:

Utilizar as ferramentas informticas na anlise dinmica de sistemas de controlo


(Control Systems Toolbox entre outras).

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

Construo de um Modelo Simples


Este exemplo mostra como construir um modelo utilizando muitos comandos de construo
de modelos e aces que o aluno poder utilizar para construir os seus prprios modelos.
O modelo composto por um integrador e um gerador de sinais sinusoidal. A onda sinusoidal
integrada e o osciloscpio (scope) apresenta os resultados. O diagrama de blocos do modelo
est representado na figura seguinte:

Para criar o modelo, primeiro digite Simulink no command window do MATLAB. No


windows, o Simulink Library Browser aparecer com o seguinte aspecto:

Selecione o boto New Model na barra de ferramentas do Library Browser conforme


indicado acima. O Simulink abrir uma nova janela para a criao de modelos.

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

Sources library (o bloco Sine Wave)


Sinks library (o bloco Scope)
Continuous library (o bloco Integrator)
Signals & Systems library (o bloco Mux)

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.

Seguidamente, arraste o bloco Sine Wave do Library browser at a janela do modelo. O


Simulink cria uma cpia no ponto em que o colocar.
Outra maneira de fazer esta operao, consiste em accionar um clique com o boto direito do
rato em Sources e selecionar a opo de abrir. Ir aparecer a janela abaixo representada.

Arraste o bloco Sine Wave da janela at o modelo.

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.

Clique e mantenha pressionado o boto do rato at entrada superior do Mux. Ir aparecer


uma linha a tracejado. Quando o cursor ficar com o formato cross hairs de linha dupla, solte
o rato de modo a concluir a ligao.

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.

2. Pressione a tecla Ctrl, clique e arraste o rato at entrada do bloco Integrator.

3. Ao soltar o boto do rato, a linha ir aparecer desenhada.


5

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.

Entre no menu Simulation e escolha Parameters para ajustar os parmetros de simulao.


Abra o bloco Scope para ver a evoluo da simulao. Mantendo a janela do Scope aberta,
ajuste o Simulink para executar a simulao em 10 segundos. Primeiro, ajuste os parmetros
da simulao, seleccionando Parameters no menu Simulation. Na caixa de dilogo que ir
aparecer, nota-se que o tempo de simulao fixado em 10.0 segundos (valor definido por
defeito).

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.

Zoom no Diagrama de Blocos


O Simulink permite que se aumente ou diminua a viso do diagrama de blocos. Para ajustar o
zoom:

Selecione Zoom In do menu View (ou digite r) para aumentar.


Selecione Zoom Out do menu View (ou digite v) para diminuir.
Selecione Fit System to View do menu View (ou aperte a barra de espao) para
ajustar o zoom de acordo com o diagrama.
Selecione Normal do menu View para ajustar ao zoom 100%.

Por definio, o Simulink ajusta o zoom de acordo com o diagrama de blocos quando abre o
diagrama.

Seleccionar Mais de Um Objecto


Pode seleccionar mais de que um objecto. Pode seleccion-los da seguinte forma:

um de cada vez
seleccione os objectos com o rato ou com a caixa de seleco
Seleccione o modelo inteiro.

Seleccionar Mltiplos Objectos Um de Cada Vez


Para seleccionar mais de um objecto, seleccione cada um dos objectos, segure a tecla Shift e
clique nos objectos. Para desmarcar, clique nos objectos de novo mantendo ainda o Shift
pressionado.

Seleccionar Mltiplos Objectos com a Caixa de Seleco


Uma maneira fcil de seleccionar mais do que um objecto numa mesma rea, desenhe uma
caixa de seleco em redor dos objectos.
1

Defina o canto para comear uma caixa de seleco posicionando o ponteiro do rato.
Assim, quando apertar o ponteiro este ir mudar.

Arraste o ponteiro ao canto oposto da caixa. Um rectngulo pontilhado inclui os


blocos e as linhas seleccionadas.

Solte o boto do rato. Todos os blocos e linhas que estiverem pelo menos parcialmente
includos dentro caixa de seleco sero seleccionados.

Copiar e Mover os Blocos de Uma Janela para a Outra


Quando se constri um modelo, frequentemente necessrio copiar blocos das bibliotecas de
blocos do Simulink, ou de outras bibliotecas, ou de outros modelos. Para fazer isto, siga estes
passos:
1

Abra a biblioteca apropriada ou o modelo.

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.

Pode tambm arrastar os blocos das Bibliotecas para uma janela.

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.

Duplicar Blocos num Modelo


Pode duplicar blocos num modelo apertando a tecla Ctrl e seleccionando o bloco com o boto
esquerdo do rato. Seguidamente, arraste para um novo local. Pode tambm fazer isto,
arrastando o bloco com o boto direito do rato. Os blocos duplicados tm o mesmo parmetro
dos blocos originais. So acrescentados nmeros de sucesso aos nomes dos novos blocos.

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.

Mudando a Orientao de Blocos


Normalmente os sinais fluem da esquerda para a direita. As portas de entrada esto esquerda
e as portas de sada esto direita. Pode mudar a orientao dos blocos escolhendo um destes
comandos do menu Format:

O comando Flip Block roda o bloco de 180.


O comando Rotate Block roda o bloco de 90 no sentido horrio.

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.

Manipular os Nomes dos Blocos


Qualquer nome de um bloco de um modelo deve ser nico e tem que conter pelo menos um
caractere. Geralmente, os nomes aparecem debaixo dos blocos quando as portas esto na
horizontal e esquerda dos blocos quando as portas esto na vertical, conforme representado
na figura.

Mudar os Nomes dos Blocos


Pode editar o nome de um bloco clicando no nome do bloco. Clique duas vezes ou arraste o
cursor para seleccionar o nome inteiro. Ento, escreva o novo nome.
Quando clica nalgum outro lugar no modelo ou entra com alguma outra em aco, o nome
ser aceito ou rejeitado. Se tentar mudar o nome de um bloco por um nome que j existe ou
por um nome sem caractere, o Simulink exibe uma mensagem de erro.
Pode modificar a fonte usada no nome de um bloco seleccionando o bloco, escolhendo a
opo Font do menu Format. Seleccione uma fonte da caixa de dilogo. Este procedimento
tambm muda a fonte de texto no cone do bloco.
Pode cancelar a edio do nome de um bloco escolhendo Undo do menu Edit.

Nota
Se mudar o nome de um bloco na biblioteca, todas as ligaes para aquele bloco passaro a
estar erradas.

Mudar a Localizao do Nome de um Bloco


Pode mudar a localizao do nome de um bloco de duas formas:

Arraste o nome do bloco para o lado oposto do bloco.

Escolha o comando Flip Name do menu Format. Este comando muda a


localizao do nome do bloco para o lado oposto do bloco.

10

Escolher se o Nome do Bloco Mostrado


Para escolher se o nome do bloco mostrado ou no, abra o menu Format e escolha:

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:

A biblioteca Sources contm blocos que geram sinais.


A biblioteca Sinks contm blocos que exibem ou escrevem os sinais.
A biblioteca Discrete contm blocos que descrevem componentes discretos no
tempo.
A biblioteca Continuous contm blocos que descrevem funes lineares.
A biblioteca Nonlinear contm blocos que descrevem funes no-lineares.
A biblioteca Math contm blocos que descrevem funes matemticas.
A biblioteca Functions & Tables contm blocos que descrevem funes gerais e
operaes de tabelas.
A biblioteca Signal & Systems contm blocos que permitem multiplexar e
desmultiplexar, entrada/sada de sinais externos, passar dados a outras partes do
modelo, criar subsistemas e executar outras funes.
As bibliotecas Blocksets and Toolboxes contm as bibliotecas de Blocos
Suplementares Especializados.
A biblioteca Demos do MATLAB contm demonstraes muito teis do Simulink.

A seguir sero feitos breves comentrios a respeito de cada bloco.

Biblioteca Sources
Nome do Bloco

Aplicao
Introduz rudo num sistema contnuo.

Gera uma onda sinusoidal com frequncia crescente.


Fornece o tempo de simulao.
Gera um valor constante.
Gera tempo de simulao ao especificar intervalo.

Gera pulsos em intervalos regulares.


L dados provenientes de um arquivo (Ficheiro)

12

Dados provenientes de uma matriz definida no workspace.

Gera pulsos em intervalos regulares.


Gera um sinal constantemente crescente ou decrescente.

Gera nmeros aleatrios normalmente distribudos.

Gera um sinal repetitivo arbitrrio.

Gera vrias formas de onda.

Gera uma onda sinusoidal.


Gera uma funo degrau.

Gera nmeros aleatrios uniformemente distribudos.

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.

Implementa um sistema em espao de estados discreto.

Executa uma integrao discreta no tempo de um sinal.

Implementa uma funo de transferncia discreta.

Implementa uma funo de transferncia discreta especificada


em termos de plos e zeros.
Implementa uma amostragem com aproximao de primeira
ordem.

Atraso de um perodo de amostragem da amostra.

Aproximao de ordem zero da entrada num perodo de


amostragem da amostra.

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.

Implementa uma funo de transferncia linear.


14

Atrasa o sinal por uma determinada quantia de tempo.

Atrasa o sinal por uma quantia varivel de tempo.


Implementa uma funo de transferncia especificada em termos
de plos e zeros.

Biblioteca Math
Nome do Bloco

Aplicao
Produz o valor absoluto do sinal.
Determina as razes do sinal.

Implementa uma tabela da verdade.

Calcula a fase e a amplitude de um sinal complexo.

Calcula a parte real e imaginria de um sinal complexo.

Gera o produto escalar.


Multiplica o sinal por um determinado valor (ganho).

Executa a operao lgica especificada.

Calcula um sinal complexo a partir da amplitude e fase.

Executa uma funo matemtica.

Multiplica o sinal por uma matriz.

15

Produz o mnimo ou o mximo do sinal.


Gera o produto ou quociente de sinais.

Calcula um sinal complexo a partir da parte real e imaginria.

Executa a operao especificada.

Executa uma funo de arredondamento.


Indica se o sinal positivo ou negativo.

Ganho varivel.

Efectua a soma de sinais.


(Soma)
Executa uma funo trigonomtrica.

Biblioteca Functions & Tables


Nome do Bloco

Aplicao
Aplica uma expresso especificada entrada.

Executa uma interpolao linear da entrada.

Executa uma interpolao linear de duas entradas.

Aplica uma funo do MATLAB ou expresso entrada.


Permite o acesso a uma S-function.

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.

Escolhe entre as entradas.

Discretiza um sinal num intervalo especificado.


Limita a taxa de variao de um sinal.
Varia a sada entre dois nveis (rel).
Limita a amplitude de um sinal (saturao).
Troca entre duas entradas.

Biblioteca Signals & Systems


Nome do Bloco

Aplicao
Seleciona os sinais da entrada.
Representa um dado bloco seleccionado de uma biblioteca
especificada.
Define um armazenamento de dados partilhado.

17

Dados originados de um Data Store Memory.

Escreve dados num Data Store Memory.

Converte um sinal num outro tipo de dados.

Separa um sinal vectorial em sinais escalares.


(Demux)
Acrescenta uma porta de habilitao a um subsistema.
Recebe a entrada de um bloco de Goto.
Executa a funo de chamada de um subsistema a uma
determinada taxa.
Passa a entrada para o bloco From.

Define o alcance de um bloco de Goto.


Sada nula.
Descobre o ponto de cruzamento.
Fixa o valor inicial de um sinal.
Cria uma porta de entrada para um subsistema ou uma entrada
externa.
Combina vrias linhas de entrada numa linha de escalar.
Exibe informaes de um modelo.

Combina vrias linhas de entrada numa linha de vector.


(Mux)
Cria uma porta de sada para um subsistema ou uma sada
externa.
18

Produz a largura de um sinal de entrada, o tempo de amostra,


e/ou o tipo notvel.
Representa um sistema dentro de outro sistema (sub-sistema).
Termina um sinal que no esteja conectado.
Acrescenta uma porta de gatilho a um subsistema.
Produz a largura do vector de entrada.

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

Condio na qual o bloco ser virtual


Sempre virtual.

Data Store Memory Sempre virtual.


Demux

Sempre virtual.

Enable Port

Sempre virtual.

From

Sempre virtual.

Goto

Sempre virtual.

Goto Tag Visibility

Sempre virtual.

Ground

Sempre virtual.

Inport

Sempre virtual a menos que o bloco esteja num subsistema


condicionalmente executado e tenha uma conexo directa
com um bloco outport.

Mux

Sempre virtual.

Outport

Virtual se o bloco reside dentro de algum subsistema


(condicional ou no), e no reside na raiz (nvel mais alto).
19

Selector

Sempre virtual.

Subsystem

Virtual se o bloco for condicionalmente executado.

Terminator

Sempre virtual.

Test Point

Sempre virtual.

Trigger Port

Virtual se o bloco outport no est presente.

Especificar os Parmetros dos Blocos


A interface do Simulink permite nomear os valores dos parmetros dos blocos. Alguns
parmetros so comuns a todos os blocos. Use a caixa de dialogo Block Properties para fixar
estes parmetros. Para exibir a caixa de dilogo, seleccione o bloco cujas propriedades quer
fixar. Seguidamente, seleccione a opo Proprieties do menu Edit do Simulink.
Alguns parmetros so especficos de blocos particulares. Use a caixa de dilogo SpecificBlock Parameter de um bloco para fixar estes parmetros. Clique duas vezes no bloco para
abrir a sua caixa de dilogo. Pode aceitar os valores exibidos ou ento pode mud-los.
Tambm pode usar o comando set_param para mudar os parmetros dos blocos.

Caixa de Dilogo de Block Proprieties


A caixa de dilogo Block Properties permite que seleccione alguns dos parmetros comuns.

A caixa de dilogo contm os seguintes campos:

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.

Attributes format string


Valor actual do parmetro AttributesFormatString do bloco. Este parmetro especifica
quais os parmetros a mostrar prximo do cone do bloco. Os attributes format
string podem ser algum string com nome de parmetros embutidos. Um nome de
parmetro embutido o nome de um parmetro precedido por %< e seguido por >, por
exemplo, %<priority>. O Simulink mostra os attributes format string prximo do cone
do bloco, substituindo cada nome de parmetros pelos correspondentes valores dos
parmetros. Pode usar os caracteres de linhas (\n) para mostrar cada parmetro em
linhas separadas. Por exemplo, especificando os attributes format string
pri=%<priority>\ngain=%<Gain> para o bloco Gain, este ir mostrar:

Se o valor de um parmetro no for um string ou um inteiro, o Simulink exibe N/S


(not supported) para o valor desse parmetro.

21

Exemplos
Exemplo 1: Sistema Mecnico Massa-Mola

F
m

Fig.1: Representao do Sistema mecnico Massa-Mola

Equaes bsicas da Fsica:


dv d 2 x
Acelerao: a =
=
dt dt 2
dx
Velocidade: v =
= adt
dt
Deslocamento: x = vdt

( 10.4 )
( 10.5 )
( 10.6 )

Equaes bsicas do sistema massa-mola:


Fora: F = -kx = ma kx = m

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 )

Verifica-se da anlise s equaes acima indicadas, que no sistema massa-mola, a acelerao


directamente proporcional ao deslocamento 'x'. O factor de proporcionalidade a constante
'-k/m'. Esta a informao inicial para comear a construir o modelo dado pela equao
(10.7).

22

-k/m

s
Integrator

posio

Integrator1

ac

acelerao

velocidade
m/2

Ec
En. Cinetica

k/2

Ep
En. Potencial

t
tempo

Clock

Fig. 2: Modelo do Simulink para o Sistema Massa-Mola

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 e Potencial (J)

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)

Fig.3: Energia Cintica e Potencial versus Deslocamento


23

Energia Cintica e Potencial (J)

15

Energia Potencial
10

5
Energia Cintica

0
-8

-6

-4

-2
0
2
velocidade (m/s)

Fig.4: Energia Cintica e Potencial versus Velocidade


8
6

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

Fig.5: Velocidade versus Deslocamento

24

Exemplo 2: Circuito RC Srie


Considere o circuito elctrico da Fig. 10.11, que possui um resistncia R e um condensador C
em srie, alimentados por uma fonte constante (E). O condensador possui uma tenso inicial
v(0) = 10 V e deseja-se obter a resposta v(t ) t para t 0.

Fig.6: Circuito eltrico RC srie com uma fonte de tenso contnua.

Modelo Matemtico do Circuito


A modelao matemtica do circuito obtida por aplicao da 2a Lei de Kirchoff ao percurso
fechado, e usando a forma genrica e, para expressar a tenso:
e vR v = 0

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

Assim, a equao diferencial geral fica:


dv
1
1
+
v=
e
dt RC
RC
Substituindo os valores de R = 1k e C = 1mF e e = E = 5V na equao acima, resulta na
seguinte equao:
dv
+v =5
dt
onde : v(0) = 10
25

Soluo do Circuito Utilizando o Simulink


Para utilizar o Simulink devemos expressar a equao diferencial da seguinte forma:
1
(10.11)
(e v)dt
RC
A expresso acima conseguida facilmente isolando apenas o termo dv dt e aplicando depois
a integrao (que a operao inversa da derivao). Essa forma ideal para a simulao
usando o Simulink. Constri-se ento o modelo representado na Figura 7.
v=

Fig.7: Diagrama de blocos do Simulink para o Circuito elctrico da eq.10.11.


10
9.5
9
8.5
8
7.5
7
6.5
6
5.5
5

10

Fig.8: Sada grfica v(t ) t para t 0 para o Circuito elctrico RC.

26

Exemplo 3: Sistema de controlo contnuo em anel fechado


Considere o seguinte diagrama de blocos no Simulink de um sistema de controlo em anel
fechado (nvel de gua). Neste caso, utilizado um controlador proporcional (Kp), o ganho
do actuador (vlvula) e a funo de transferncia do sistema fludico (tanque):
nivel_r

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

You might also like