Você está na página 1de 58

Instituto Federal da Bahia

Coordenação de Automação e Controle Industrial

Curso:
Introdução ao Matlab/Simulink

Profa. : Andrea Bitencourt

Prof.: Justino de Medeiros

Salvador
2010
Introdução ao Matlab/Simulink

SUMÁRIO

1 - Apresentação .......................................................................................................................................................... 4
1 - Apresentação .......................................................................................................................................................... 4
2 - Ambiente Matlab ................................................................................................................................................... 5
2.1 – Menus ............................................................................................................................................................... 6
3 - Funções básicas ...................................................................................................................................................... 7
4 – Criando uma Variável ........................................................................................................................................ 11
4.1 – Variáveis ........................................................................................................................................................ 11
4.1.1 – Variáveis Permanentes............................................................................................................................ 13
4.1.2 – Variáveis Simbólicas ............................................................................................................................... 13
5 - Operações com matrizes ...................................................................................................................................... 15
6 - Números complexos ............................................................................................................................................. 20
7 - Noções gerais de polinômios................................................................................................................................ 23
7.1 – Definição ........................................................................................................................................................ 23
7.1.1 - Definindo-se um polinômio no Matlab .................................................................................................... 23
7.1.2 - Cálculo das raízes de um polinômio ........................................................................................................ 23
7.1.3 - Calculando os coeficientes de um polinômio partindo de suas raízes ..................................................... 24
7.1.4- Operações com polinômios ....................................................................................................................... 24
8 – M-File (Arquivo .m) ............................................................................................................................................ 26
8.1 – Definição ........................................................................................................................................................ 26
9- Gráficos em 2D ...................................................................................................................................................... 27
9.1 - Funções gráficas elementares ......................................................................................................................... 27
9.2 - Plotagens combinadas: Usando a mesma linha de comando .......................................................................... 28
9.3 - Plotando funções com o Matlab ..................................................................................................................... 29
9.4. - Visualizando as raízes de um polinômio ........................................................................................................ 29
9.5 – Outras formas de gráficos .............................................................................................................................. 31
9.5.1 - Gráficos de barras ................................................................................................................................... 31
9.5.2 - A Função compass ................................................................................................................................... 31
10- Exercícios: ........................................................................................................................................................... 32
11. Simulink ............................................................................................................................................................... 33
11.1. Construindo Modelos SIMULINK .................................................................................................................. 34
11.1.1. Elementos dos Modelos .......................................................................................................................... 34
11.1.2. Criando um modelo ................................................................................................................................. 34
11.2. Manuseando o Simulink ................................................................................................................................. 36
11.2.1. Zoom no Diagrama de Blocos ................................................................................................................. 36
11.2.2. Selecionando Mais de Um Objeto ........................................................................................................... 37
11.2.3. Duplicando Blocos em um Modelo ......................................................................................................... 37
11.2.4. Apagando Blocos .................................................................................................................................... 38
11.2.5. Mudando a Orientação de Blocos ........................................................................................................... 38
11.2.6. Redimensionando os Blocos ................................................................................................................... 38
11.2.7. Manipulando os Nomes dos Blocos ........................................................................................................ 39
11.3. Bibliotecas de Blocos do Simulink ................................................................................................................. 39
11.3.1. Biblioteca Sources ................................................................................................................................... 40
11.3.2. Biblioteca Sinks ...................................................................................................................................... 41
11.3.3. Biblioteca Discrete .................................................................................................................................. 42
11.3.4. Biblioteca Continuous ............................................................................................................................. 43
11.3.5. Biblioteca Math ....................................................................................................................................... 44
11.3.6. Biblioteca Functions & Tables ................................................................................................................ 46
11.3.7. Biblioteca Nonlinear ............................................................................................................................... 47
11.3.8. Biblioteca Signals & Systems ................................................................................................................. 48
11.4. Especificando os Parâmetros dos Blocos ....................................................................................................... 50
11.5. Exemplos ........................................................................................................................................................ 51
11.5.1. Exemplo 1: Sistema Massa-Mola ............................................................................................................ 51
11.5.2. Exemplo 2: Circuito RC Série ................................................................................................................. 52
11.5.3. Exemplo: Simulação de um modelo dinâmico ........................................................................................ 54
11.5.4. Exemplo 4: Controlando o tanque de nível ............................................................................................. 56
12. Referências Bibliográficas .................................................................................................................................. 58

IFBA/SCTC 2010 2
Introdução ao Matlab/Simulink

ÍNDICE DE FIGURAS

Figura 01 – Área de trabalho do Matlab ......................................................................................... 5


Figura 02 – Resultado do comando “ver” no Command Window .................................................. 6
Figura 03 – Flowchart das variáveis ............................................................................................. 12
Figura 04 – Tela de acesso ao M-file............................................................................................. 26
Figura 05 – Apresentação do botão Run ....................................................................................... 26
Figura 06 – Descrição dos comandos para plotagens combinadas ............................................... 28
Figura 07 – Resultado dos gráficos com a plotagem combinada .................................................. 29
Figura 08 – Gráfico de visualização das raízes de um polinômio ................................................. 30
Figura 09 – Gráfico utilizando a função compass ......................................................................... 31
Figura 10 – Tela de acesso ao Simulink ........................................................................................ 33
Figura 11: Apresentação do Simulink........................................................................................... 33
Figura 12 - Elementos de um Modelo SIMULINK ....................................................................... 34
Figura 13 – Tela de acesso a opção New Model ........................................................................... 34
Figura 14 - Bloco Sine Wave ........................................................................................................ 35
Figura 15 - Botão Start Simulation ............................................................................................... 35
Figura 16 – Representação gráfica da sine wave........................................................................... 36
Figura 17 – Passos para a seleção de múltiplos objetos com a caixa de seleção .......................... 37
Figura 18 – Mudando a orientação dos blocos .............................................................................. 38
Figura 19 – Redimensionamento de um Gerador de Sinais .......................................................... 39
Figura 20 – Manipulando os nomes dos blocos ............................................................................ 39
Figura 21 – Representação do Sistema Massa-Mola .................................................................... 51
Figura 22 – Modelo do Simulink para o Sistema Massa-Mola ..................................................... 51
Figura 23 – Energia Cinética e Potencial versus Deslocamento ................................................... 52
Figura24 – Energia Cinética e Potencial versus Velocidade......................................................... 52
Figura 25 – Velocidade versus Deslocamento .............................................................................. 52
Figura 26 – Circuito elétrico RC série com uma fonte de tensão contínua. .................................. 53
Figura 27 – Diagrama de blocos do Simulink do Circuito Elétrico ............................................... 54
Figura 28 – Saída gráfica v(t ) × t para t ≥ 0 ................................................................................ 54
Figura 29 – Simulação de um tanque de nível .............................................................................. 54
Figura 30 – Diagrama de blocos do Simulink do tanque de nível ................................................. 55
Figura 31 – Resposta da simulação do tanque de nível................................................................. 56
Figura 32 – Sistema de controle de nível do tanque ..................................................................... 56
Figura 33 – Diagramas de blocos do sistema de controle de nível do tanque............................... 57
Figura 34 – Apresentação do bloco do ganho (gain) .................................................................... 57
Figura 35 – Apresentação do bloco PID ....................................................................................... 57

IFBA/SCTC 2010 3
Introdução ao Matlab/Simulink

1 - Apresentação

Esta apostila é orientada aos estudantes do minicurso de Matlab/Simulink, com objetivo de auxiliar na
aprendizagem durante a realização do curso e servir para que cada participante se autodesenvolva e
aprofunde os conhecimentos desta ferramenta na sua área específica. A versão utilizada nesta apostila é a
7.8.0.347 R2009a.

O MATLAB (MATRIX LABORATORY) é um software criado pela Mathworks em 1984, originalmente


desenvolvido para ser um "Laboratório para estudo de Matrizes", porém atualmente suas capacidades
ultrapassam em muitas vezes as possibilidades de sua versão original. Desta forma, o MATLAB é hoje
um dos principais sistemas interativos e uma das mais importantes linguagens de programação para
computação técnica e científica em geral, permitindo implementar e resolver problemas matemáticos
muito mais rápidos e eficientemente que através de outras linguagens como C, Basic, Pascal ou Fortran.

Sua primeira versão foi escrita na Universidade do Novo México e na Universidade de Stanford, no final
da década de 70, e destinava-se a cursos de teoria matricial, álgebra linear e análise numérica. Hoje, o
MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais, imagens, sons,
construção de gráficos, análise, modelagem e simulação de sistemas e algoritmos. Devido à sua
praticidade, essa ferramenta computacional vem sendo utilizada em ambientes acadêmicos e em empresas
do mundo todo.

MATLAB também contempla uma família de aplicativos específicos chamados “toolboxes”. Esses
aplicativos foram desenvolvidos por profissionais de expressão em cada uma das áreas e foram totalmente
concebidos na forma de coleções de funções MATLAB (M-files), estendendo o ambiente MATLAB na
solução de problemas particulares. Entre outros, temos os seguintes toolboxes: Processamento de Sinais;
Projeto de Sistemas de Controle; Simulação de Sistemas Dinâmicos; Identificação de Sistemas; Redes
Neurais; Otimização; etc.

IFBA/SCTC 2010 4
Introdução ao Matlab/Simulink

2 - Ambiente Matlab

A área de trabalho do MATLAB assemelha-se bastante ao ambiente Windows padrão, com a diferença
que o programa oferece uma linha de prompt (como no antigo MS-DOS), onde o usuário pode digitar os
comandos.

Pode-se destacar as seguintes áreas:

• Command Window: área na qual os dados e instruções são digitados e os resultados são
apresentados;

• Workspace: área da memória de trabalho do Matlab, na qual as variáveis são criadas e


armazenadas;

• Current Directory (diretório atual): área onde pode-se observar o conteúdo da pasta atual
(ou diretório atual). É sempre um bom procedimento que os arquivos que estejam sendo
vistos nesta janela, sejam os que se pretende utilizar. Caso contrário o Matlab não
reconhecerá os comandos por não estar direcionado ao diretório atual;

• Command History: área na qual todo o histórico das instruções já executadas são
armazenadas.

A figura 01 apresenta a área de trabalho do Matlab.

Pasta Atual Área do arquivo .m Workspace


(M-FILE)

Histórico de
Comandos
Área de Trabalho

Figura 01 – Área de trabalho do Matlab

IFBA/SCTC 2010 5
Introdução ao Matlab/Simulink

A área de trabalho (prompt), serve para entrada de comandos e parâmetros, a figura 02 apresenta um exemplo do
comando, descrito abaixo:

Sintaxe:
>> ver
>>

Figura 02 – Resultado do comando “ver” no Command Window

Como resultado, o usuário recebe as informações acerca das versões do Matlab, do Simulink e de todos
os toolboxes instalados no computador. O sinal de prompt “>>” dessa janela indica que o sistema está
apto a receber comandos.

O funcionamento do prompt de comando é semelhante ao do promtp de comando do sistema


. Inclusive vários comandos que lá se utilizava permanecem no Matlab.

2.1 – Menus

A primeira parte da barra de ferramentas do Matlab segue o ambiente Windows: File, Edit, View, Web,
Window e Help.

(a) Menu FILE: permite que o usuário abra, feche e salve arquivos ou a área de trabalho. Permite
ainda, que se alterem as configurações do software, que se envie arquivos para impressão,
que se abra o editor de janelas e se encerre o programa;

IFBA/SCTC 2010 6
Introdução ao Matlab/Simulink

(b) Menu EDIT: possui as opções padrão do Windows, tais como undo, copy, paste. Além disso,
permite que se limpe a área de trabalho;

(c) Menu WINDOW: menu que permite a alternância entre as várias janelas abertas durante a
execução do programa;

(d) Menu HELP: contém os tópicos de ajuda e informações gerais sobre o software.

As demais opções são próprias do Matlab:

(a) New M-File, Open, Cut, Copy, Paste, Undo e Redo;

(b) Simulink: abre um modelo do Simulink;

(c) Current Directory: apresenta o diretório de trabalho corrente;

(d) Browse for folder: busca um novo diretório de trabalho.

3 - Funções básicas

As tabelas abaixo apresentam algumas funções básicas do Matlab.

Tabela 01: Utilitários para a janela de comandos

Comandos Descrição

format Altera o formato dos dados na tela

disp Mostra matriz ou texto na tela

clc Apaga janela de comandos

clear Apaga variáveis

home Move o cursor para o topo da tela

Ativa/desativa exibições de linha individuais durante a execução de um arquivo


echo
.m

quit Termina o programa

IFBA/SCTC 2010 7
Introdução ao Matlab/Simulink

Tabela 02: Utilitários para tratamento de arquivos

Comandos Descrição

cd Muda de diretório

delete Deleta arquivo ou objeto gráfico

dir Mostra diretório

exist Confere se uma variável ou função existe

load Carrega varáveis gravadas em disco

save Salva variáveis em disco

type Lista o conteúdo de um arquivo ou função

what Mostra os nomes dos arquivos .m e .mat no diretório corrente

who Mostra as variáveis existentes na tela de comando

chdir Muda o diretório de trabalho

Tabela 03: Caracteres especiais usados na janela de comandos

Caracteres Descrição

= Comando de atribuição

[] Delimitar elementos de matrizes e vetores

() Alternar a ordem de precedência das expressões aritméticas

. Ponto decimal

, Separa argumento de funções e elementos de matrizes e vetores

; Finalizador de linha com supressão de impressão

% Comentário

IFBA/SCTC 2010 8
Introdução ao Matlab/Simulink

: Geração de um vetor com intervalos definidos

! Execução de um programa do sistema operacional

Tabela 04: Funções matemáticas básicas

Função Descrição

acos Arco-coseno

asin Arco-seno

atan Arco-tangente

cos Coseno

cosh Coseno hiperbólico

exp Exponencial com base e

fix Arredondamento para o inteiro mais próximo até zero

log Logaritmo natural

log10 Logaritmo decimal

rand Gera números aleatórios com distribuição uniforme

randn Gera números aleatórios com distribuição normal

rat Aproximação racional

round Arredonda o número para o inteiro mais próximo

sign Retorna 1 se for positivo e 0 se for negativo ou zero

sin Seno

sinh Seno hiperbólico

IFBA/SCTC 2010 9
Introdução ao Matlab/Simulink

sqrt Raiz quadrada

tan Tangente

tanh Tangente hiperbólica

NOTA: O Matlab trabalha com ângulos em radianos.

As regras de precedência aritmética são válidas também no Matlab, ou seja, pela ordem temos:
potenciação – multiplicação e divisão – adição e subtração. Os símbolos utilizados para representação
destas operações são:

Tabela 05: Símbolos das principais operações matemáticas

^ Exponenciação

/ Divisão à direita

\ Divisão à esquerda

* Multiplicação

+ Adição

- Subtração

‘ Transposição

Deve-se notar que existem dois símbolos para divisão: as expressões 1/4 e 4\1 possuem o mesmo valor
numérico, isto é, 0,25. Parênteses são usados em sua forma padrão para alterar o mesmo a precedência
usual dos operadores aritméticos.

NOTA: O Matlab faz distinção entre os caracteres maiúsculos e minúsculos.

IFBA/SCTC 2010 10
Introdução ao Matlab/Simulink

4 – Criando uma Variável

Para criar uma variável no Matlab é simples, basta para isso atribuir um valor, um caractere ou uma
string, não há a necessidade de declararmos qualquer variável no Matlab Ao jogar dados numa variável, o
programa aloca memória automaticamente. Um exemplo de definição de uma variável numérica segue
abaixo:

>> x = 3.1416927

Uma variável também pode guardar um string, como mostrado abaixo:

>> y = ‘teste’

Observe que a diferenciação entre um string e uma função é feita apenas pelos apóstrofos.

Ao necessitarmos de ajuda sobre qualquer função do MATLAB, basta que digitemos help ‘nome do
comando ou função’. Este procedimento mostra na área de trabalho uma breve explicação sobre o
comando em questão. Por exemplo, experimente digitar:

>> help help

As mensagens de erro, quando acontecem, tentam explicar os motivos pelo qual o erro ocorreu. Por
exemplo:
» hep
??? Undefined function or variable 'hep'.

A variável criada fica na memória do Matlab e assim podem ser usadas em várias partes do programa.
Portanto um cuidado é necessário para não haver confusão com elas.

4.1 – Variáveis

O Matlab trabalha essencialmente com um tipo de variável: uma matriz contendo números, complexos ou
não (um escalar é uma matriz 1 x 1). Em alguns casos, um tratamento especial é dado a uma matriz 1 x 1
(escalar) ou a matrizes 1 x n ou n x 1 (vetores). Na figura 03 é apresentado um flowchart para melhor
visualização das variáveis.

IFBA/SCTC 2010 11
Introdução ao Matlab/Simulink

Figura 03 – Flowchart das variáveis

Alguns exemplos:
Tabela 06: Exemplos de Matrizes

Tipo de Matriz Exemplo


>> 2
escalar ans =
2
>> [1 2 3]
vetor linha (1× n ) ans =
123
>> [1;2;3]
ans =
vetor coluna ( n×1) 1
2
3
>> [1 2 3;4 5 6;7 8 9]
ans =
matriz bidimensional
1 2 3
(m×n)
4 5 6
7 8 9

Seguem abaixo algumas orientações para atribuição das variáveis:

IFBA/SCTC 2010 12
Introdução ao Matlab/Simulink

(a) envolva os elementos com colchetes, [ ];

(b) separe cada elemento com espaços ou vírgulas;

(c) use ponto-e-vírgula (;) para indicar fim da linha.

(d) pode conter o caractere “_”;

(e) pode possuir no máximo 32 caracteres;

(f) não pode ser uma palavra reservada, como “for” ou “while”.

OBS: Para que o computador realize a operação e não mostre a saída, basta terminar a expressão com
ponto-e-vírgula (;). Isto é muito útil para evitar que o computador fique mostrando números de
cálculos intermediários e para acelerar as operações.

4.1.1 – Variáveis Permanentes

Existem algumas variáveis que são intrínsecas ao Matlab e que não podem ser apagadas. Algumas são
interessantes:
Tabela 07: Variáveis Permanentes

4.1.2 – Variáveis Simbólicas

No Matlab, é possível manipularmos expressões que além de números e variáveis numéricas, contêm
também variáveis simbólicas. Por exemplo:

>> syms x
>> simplify((sin(x))^2+(cos(x))^2)
ans =
1

Primeiro é necessário determinar que x é uma variável simbólica (comando sym), depois pedimos para
simplificar a expressão que envolve x. Neste caso usamos uma função chamada simplify. Neste caso, a
função simplify tem como argumento de entrada uma expressão simbólica e de saída também.

IFBA/SCTC 2010 13
Introdução ao Matlab/Simulink

Uma vez definido que a variável x é uma variável simbólica, podemos definir expressões que envolvem
esta variável. Por exemplo, dadas duas funções f(x) = 2x2+3x-5 e g(x) = x2-x+7, podemos fazer uma série
de operações algébricas envolvendo estas funções. Por exemplo:

>> f=2*x^2+3*x-5; g=x^2-x+7;

>> f+g

ans =

3*x^2+2*x+2

>> f-g

ans =

x^2+4*x-12

>> f*g

ans =

(2*x^2+3*x-5)*(x^2-x+7)

>> expand(ans)

ans =

2*x^4+x^3+6*x^2+26*x-35

>> f/g

ans =

(2*x^2+3*x-5)/(x^2-x+7)

>> expand(ans)

ans =

2/(x^2-x+7)*x^2+3/(x^2-x+7)*x-5/(x^2-x+7)

O Matlab pode realizar operações mais avançadas sobre expressões simbólicas. A função compose
calcula a composição das funções f(x) e g(x) em f(g(x)), a função finverse encontra a inversa funcional de
uma expressão e a função subs substitui uma variável por um número (ou por outra variável) em uma
expressão. Por exemplo:

>> f=1/(1-x^2); g=sin(x);


>> compose(f,g)
ans = 1/(1-sin(x)^2)

IFBA/SCTC 2010 14
Introdução ao Matlab/Simulink

>> compose(g,f)

ans = sin(1/(1-x^2))

>> finverse(g)

ans = asin(x)

>> subs(f,x,2)

ans = -1/3

Abaixo segue um resumo das funções para manipulação de expressões algébricas:

Tabela 08: Principais funções para expressões algébricas

FUNÇÕES DESCRIÇÃO

compose(f,g) Determina a composta f(g(x)).

expand(expr) Expande uma expressão expr

finverse(expr) Determina a inversa funcional da expressão expr

pretty(expr) Exibe a expressão expr numa forma mais bonita

simple(expr) Procura encontrar uma forma mais simples de escrever uma expressão expr

simplify(expr) Simplifica a expressão expr

solve(expr) Acha a(s) solução(es) da equação expr = 0

subs(expr,x,a) Substitui na expressão expr a variável x por a

syms x y z a b Define as variáveis simbólicas x, y, z, a e b


calcula a derivada de f.
diff(f)

Existem várias outras funções para manipulação de expressões algébricas. Pode-se obter informações
sobre elas digitando help symbolic. Uma função interessante que mostra as capacidades do Matlab em
tratar com funções matemáticas é funtool que é uma calculadora para funções.

5 - Operações com matrizes

Uma matriz é um arranjo de elementos na forma de uma tabela retangular, sendo que a forma
geral é um arranjo de m linhas e n colunas. No MATLAB, uma matriz pode ser definida de maneira
semelhante aos vetores, diferenciando-se apenas no fato da necessidade da digitação de um ‘enter’ ou um
‘;’ para a separação das diferentes colunas. Vejamos alguns exemplos:

IFBA/SCTC 2010 15
Introdução ao Matlab/Simulink

>> a = [1 2 3; 4 5 6; 7 8 9] Ou:
a= >> b = [9 8 7
1 2 3 654
4 5 6 3 2 1]
7 8 9 b=
9 8 7
6 5 4
3 2 1

Da mesma forma que fizemos com vetores, as matrizes também podem ter seus elementos escritos como
expressões. Além disso, as matrizes podem ter seus elementos identificados (e operados) individualmente. Por
exemplo:

>>b (2,1)
ans =
6

Este comando devolveu em ans o valor do elemento da segunda linha e primeira coluna da matriz b.

O tamanho de uma matriz qualquer pode ser obtido através da função size.

>> size (a)


ans =
3 3

A matriz a possui 3 linhas e 3 colunas. A concatenação de matrizes é bastante semelhante à


concatenação dos vetores. Vejamos dois exemplos:
>> c = [a b] d=
c= 1 2 3
1 2 3 9 8 7 4 5 6
4 5 6 6 5 4 7 8 9
7 8 9 3 2 1 9 8 7
6 5 4
>> d = [a; b] 3 2 1

Para extrairmos uma submatriz de uma matriz qualquer procedemos da seguinte forma:
>> e = d(1:2, 1:2)
e=
1 2
4 5

IFBA/SCTC 2010 16
Introdução ao Matlab/Simulink

Este comando retirou a primeira e segunda linha e a primeira e segunda coluna da matriz d e armazenou
na matriz e. Se quisermos que todas as linhas da matriz antiga compusessem a nova matriz bastaria colocarmos
‘:’ no primeiro parâmetro da matriz d. Suponhamos agora que precisemos inserir uma linha na matriz e. O
comando é o seguinte:
>> e = [e; 1 0]
e=
1 2
4 5
1 0

Nas operações de adição e subtração de matrizes, os elementos de uma matriz são somados ou
subtraídos com o seu correspondente na outra matriz. Esta é a razão pela qual as duas matrizes envolvidas
devem ter o mesmo número de linhas e colunas.
>> soma = a + b
soma = >> sub = a - b
10 10 10 sub =
10 10 10 -8 -6 -4
10 10 10 -2 0 2
4 6 8

A multiplicação e divisão de uma matriz por escalares é efetuada elemento a elemento. Por exemplo:
>> mult = 3 * a
mult = >> div = a / 3
3 6 9 div =
12 15 18 0.3333 0.6667 1.0000
21 24 27 1.3333 1.6667 2.0000
2.3333 2.6667 3.0000

A exponenciação individual dos elementos de uma matriz podem ser feitos pelo comando ‘.^’ .
>> a .^2
ans =
1 4 9
16 25 36
49 64 81

IFBA/SCTC 2010 17
Introdução ao Matlab/Simulink

A multiplicação de matrizes é uma ferramenta bastante útil no Matlab. Vale a pena ressaltar que na
multiplicação de uma matriz a qualquer por uma matriz b qualquer, só pode acontecer se o número de colunas
da matriz a for igual ao número de linhas da matriz b ou vice-versa. Vejamos um exemplo: Queremos
multiplicar a matriz c pela matriz d. Primeiramente vamos verificar se o número de linhas de uma é igual ao
número de colunas da outra.
>> size (c) >> size (d)
ans = ans =
3 6 6 3

Percebe-se que a multiplicação destas duas matrizes é possível. Então:


>> c * d
ans =
180 162 144
162 162 162
144 162 180

Perceba que o resultado teria sido diferente se tivéssemos feito d vezes c:


>> d * c
ans =
30 36 42 30 24 18
66 81 96 84 69 54
102 126 150 138 114 90
90 114 138 150 126 102
54 69 84 96 81 66
18 24 30 42 36 30

Este tipo de preocupação não é necessária quando estamos trabalhando com matrizes quadradas de
mesmo tamanho.

A fim de mostrar a divisão de duas matrizes, vamos definir duas novas matrizes:
>> y = [3 -1 2; -5 1 1; 0 3 4]
>> x = [15 10 8; 7 1 0; 2 5 1] y=
x= 3 -1 2
15 10 8 -5 1 1
7 1 0 0 3 4
2 5 1

Agora, vamos dividir a matriz x pela matriz y:

IFBA/SCTC 2010 18
Introdução ao Matlab/Simulink

>> x/y
ans =
-2.0213 -4.2128 4.0638
-0.5745 -1.7447 0.7234
-1.8511 -1.5106 1.5532

Note que a divisão de y por x poderia ser efetuada utilizando-se a divisão à direita, como segue:
>> x\y
ans =
-0.7033 0.0239 0
-0.0766 0.8325 1.0000
1.7895 -1.2105 -1.0000

Houve um motivo simples para termos definido novas matrizes a fim de demonstrarmos a divisão. As
matrizes a e b eram singulares, ou seja, possuíam determinante nulo. Ao dividirmos duas matrizes singulares, o
resultado é uma matriz com componentes infinitos, conforme nos mostra o Matlab:
>> a/b
Warning: Matrix is singular to working precision.
ans =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf

A potenciação de matrizes equivale a sucessivas multiplicações dela por ela mesma. Por exemplo,
façamos a ao cubo:
>> a ^ 3
ans =
468 576 684
1062 1305 1548
1656 2034 2412

A transposta de uma matriz (troca das colunas pelas linhas) é obtida da mesma maneira que a transposta
de um vetor. O operador é o apóstrofo ‘ :
>> a'
ans =
1 4 7
2 5 8
3 6 9

IFBA/SCTC 2010 19
Introdução ao Matlab/Simulink

Na próxima tabela são mostrados as mais importantes funções para tratar matrizes no MATLAB:

Tabela 09: Principais funções para matrizes

FUNÇÕES DESCRIÇÃO

det Determinante de uma matriz

eye Gera uma matriz identidade

inv Calcula a inversa da matriz

ones Gera uma matriz unitária

rand Gera uma matriz randômica

tril Transforma/gera uma matriz triangular inferior

triu Transforma/gera uma matriz triangular superior

zeros Gera uma matriz de zeros (nula)

6 - Números complexos

Segue abaixo um breve resumo dos números complexos:

Def.: É todo número que pode ser escrito na forma:

z = a + b i, onde a = Re(z) e b = Im(z)

Módulo de um número complexo: | z | = (a2+b2)1/2

Forma polar dos números complexos: z = a+bi = r cos(ø) + r i sen(ø) = r (cos ø + i sen ø), onde

Ø =arctg(b/a) => argumento(fase)

A seguir serão apresentadas orientações como trabalhar com números complexos no Matlab. A parte imaginária
é simbolizada pelas letras i ou j indistintamente:

>> i^2 >> j^2


ans = ans =
-1.0000 + 0.0000i -1.0000 + 0.0000i

IFBA/SCTC 2010 20
Introdução ao Matlab/Simulink

Note que mesmo que utilizemos a letra j, na resposta oferecida pelo Matlab sempre aparece a letra i.

Utilizando o sistema de coordenadas cartesianas, um número complexo pode ser definido no Matlab da
seguinte maneira:
>> z1 = 3 + 4i
z1 =
3.0000 + 4.0000i

Ao trabalharmos com números complexos um ponto deve ser levado em consideração: não devemos
utilizar as letras i e j para definir variáveis ou constantes, pois isto feito, elas não mais poderão ser usadas para
definir complexos.

O conjugado de um número complexo (o próprio número com o sinal da parte imaginária trocado) pode
ser obtido utilizando-se a função conj:

>> conj(z1)
ans =
3.0000 - 4.0000i

As operações com números complexos utilizam os operadores usuais, como podemos ver nos exemplos
a seguir:
>> z2 = 4 + 3i
z2 =
4.0000 + 3.0000i >> z1 * z2
ans =
>> z1 + z2
0 +25.0000i
ans =
7.0000 + 7.0000i
>> z1 / z2
>> z1 - z2 ans =
ans = 0.9600 + 0.2800i
-1.0000 + 1.0000i

A potenciação, como visto com as matrizes, corresponde à multiplicação sucessiva do número por ele mesmo.
Vejamos um exemplo:

>> z1 * z1 >> z1 ^ 2
ans = ans =
-7.0000 +24.0000i -7.0000 +24.0000i

IFBA/SCTC 2010 21
Introdução ao Matlab/Simulink

Vejamos agora algumas funções úteis quando trabalhamos com números complexos:

Tabela 10: Principais funções para números complexos

FUNÇÃO DESCRIÇÃO

real Retorna a parte real do número complexo

imag Retorna a parte imaginária do número complexo

abs Retorna o módulo do vetor complexo (representação


trigonométrica)

angle Retorna o ângulo do vetor complexo (representação trigonométrica)

Os números complexos também podem formar vetores ou matrizes, como os números reais. Vejamos
dois exemplos simples:
>> matriz = [z1 z2; z2 z1]
>> vetor = [z1 z2] matriz =
vetor = 3.0000 + 4.0000i 4.0000 + 3.0000i
3.0000 + 4.0000i 4.0000 + 3.0000i 4.0000 + 3.0000i 3.0000 + 4.0000i

Para o cálculo da transposta existem dois operadores ( ‘ ) e ( .’ ). O primeiro deles calcula a transposta
do conjugado e o outro a transposta normal. Vejamos estes exemplos com a matriz definida anteriormente:

>> matriz'
ans =
3.0000 - 4.0000i 4.0000 - 3.0000i
4.0000 - 3.0000i 3.0000 - 4.0000i

>> matriz.'
ans =
3.0000 + 4.0000i 4.0000 + 3.0000i
4.0000 + 3.0000i 3.0000 + 4.0000i

IFBA/SCTC 2010 22
Introdução ao Matlab/Simulink

7 - Noções gerais de polinômios

7.1 – Definição

Polinômios são funções do tipo P(x)=anxn+an-1xn-1+...+a1x1+a0x0 onde n e a são reais, x pode ser real ou
complexo e n é o grau do polinômio.

7.1.1 - Definindo-se um polinômio no Matlab

Define-se um polinômio no Matlab colocando-se os seus coeficientes de forma ordenada em um vetor


linha.

Seja o seguinte polinômio:

x3-3x2+4x-4

No Matlab ele será definido da seguinte forma:

» poli = [1 -3 4 -4];

Note que o coeficiente –4, apesar de aparentemente não estar acompanhado da variável x, aparece entre
os coeficientes. Isso ocorre porque na verdade ele está sim acompanhado de x, porém como temos x0 que é igual
a 1, torna-se por norma não representá-lo.

7.1.2 - Cálculo das raízes de um polinômio

As raízes de um polinômio P(x) são os valores das variáveis para os quais as igualdade P(x)=0 é satisfeita.

Vamos definir um outro polinômio no Matlab;

>> coef = [1 2 1];

O polinômio assim definido no Matlab corresponde a: x2+2x+1.

A fim de calcularmos as raízes deste polinômio, o igualaríamos a zero e teríamos:

x2+2x+1=0

No Matlab, para calcular as raízes deste polinômio, devemos encontrar o valor de x para que a
igualdade seja satisfeita. Para tanto, usamos o comando roots da seguinte forma:
>> r = roots (coef)
r=
-1
-1

IFBA/SCTC 2010 23
Introdução ao Matlab/Simulink

O polinômio em questão possui duas raízes iguais. Note que –1 é o valor que atribuído a x torna
verdadeira a igualdade.

Suponha agora que você tenha que encontrar as raízes da equação:

x3-15x=4

O procedimento é o seguinte:

• Escrever a equação com todos os termos no primeiro membro e igualando-se a zero.

x3+15x-4=0

• Colocar zero no coeficiente quando não possui o termo, o exemplo acima não possui o termo x2.
>> coef = [ 1 0 -15 -4];
>> r = roots(coef)
r=
4.0000
-3.7321
-0.2679

7.1.3 - Calculando os coeficientes de um polinômio partindo de suas raízes

Podemos, com as raízes do polinômio coef utilizado anteriormente, obter os coeficientes deste mesmo
polinômio utilizando a função poly:
>> = poly(r)
p=
1.0000 0.0000 -15.0000 -4.0000

7.1.4- Operações com polinômios

Com a mesma facilidade que operamos com números reais, vetores, matrizes e números complexos,
podemos também operar com polinômios. Vejamos algumas operações possíveis:

a. Multiplicação e divisão de polinômios:

Deixaremos por conta do leitor a revisão da teoria de divisão de polinômios, caso queira acompanhar os
resultados obtidos no Matlab. Ex.: Sejam dois polinômios:

p1= 2s2+3s+1
p2= 5s-2

IFBA/SCTC 2010 24
Introdução ao Matlab/Simulink

Queremos p1*p2. Sabemos que o resultado esperado é:

p1*p2=10s3+11s2-s-2

Teremos:
>> p1=[2 3 1];
>> p2=[5 -2];

A função conv é utilizada para a multiplicação entre dois polinômios:


>>p3=conv(p1,p2)
p3 =
10 11 -1 -2

Enquanto a função conv é utilizada para realizar multiplicações, o contrário, ou seja a divisão, é
efetuada com a função deconv.

Observe como é feito:


>> [Q R]=deconv(p3,p1)
Q=
5 -2
R=
0 0 0 0

O vetor Q contém os coeficientes do quociente polinomial, que no nosso caso, são os coeficientes do
próprio polinômio p2. O vetor R contém os coeficientes do polinômio que corresponde ao resto da divisão
polinomial. Como a divisão de p3 por p1 é exata, o resto é zero.

Vamos agora , substituir o polinômio p3 pelo polinômio p4 assim definido:

p4=10s3+11s2+2s

>> p4=[10 11 2 0];

Realizando a divisão:
>> [Q R]=deconv(p4,p1)
Q=
5 -2
R=
0 0 3 2

Agora já temos um resto na divisão, ou seja, o polinômio 3s+2

IFBA/SCTC 2010 25
Introdução ao Matlab/Simulink

8 – M-File (Arquivo .m)

8.1 – Definição

O M-File é uma ferramenta do Matlab que auxilia a funções e scripts. Para criar escolher a opção New
M-File, como mostra a figura 04.

Figura 04 – Tela de acesso ao M-file

Será aberto um editor de textos. Este é mais um ambiente de programação do Matlab. Os comandos
usados nesse editor são os mesmos do Command Window. Uma grande utilidade do M-File é facilitar a vida do
usuário, através da execução de scripts, que são arquivos que possuem uma lista de comandos que devem ser
executados sequencialmente (também chamados de procedimentos). Assim, quando se quiser executar mais de
uma vez um conjunto de comandos seqüenciais relativamente grandes e trabalhosos para serem digitados, não
será necessário digitá-los um a um na Command Window, basta digitar os comandos no M-File, salvar o arquivo
e executá-lo.

Segue um exemplo de script para calcular a distância entre dois pontos:

p=[1 2];
q=[4 5];
temp=((p(1)-q(1))^2+(p(2)
distancia=sqrt(temp);

O primeiro passo para executar um script é salvá-lo. O M-File salva os arquivos no seu diretório padrão,
com a extensão .m. Para salvar, deve-se entrar no menu File e escolher a opção Save. Existem duas opções para
se executar o script, a primeira é clicar no botão Run, que está localizado no centro da barra de ferramentas do
M-File, em verde, apresentado na figura 05:

Figura 05 – Apresentação do botão Run

IFBA/SCTC 2010 26
Introdução ao Matlab/Simulink

A outra opção é usar o atalho F5. As consequências da execução são as mesmas que seriam observadas
se os comandos tivessem sido executados na Command Window: as variáveis declaradas estarão todas
disponíveis no Workspace e os resultados de cada operação estarão presentes na tela.

O M-File é um ambiente de programação, portanto existem algumas funções, bem parecidas com as da
linguagem C, por exemplo, que podem ser utilizadas.

9- Gráficos em 2D

9.1 - Funções gráficas elementares

A seção gráfica do Matlab possui variadas e sofisticadas técnicas para representar e visualizar dados. Um ponto
negativo deve-se a forma com que as ferramentas são aplicadas a uma entidade gráfica, através de comandos,
diferenciando-se da maioria dos softwares com aplicações dessa ordem, onde as alterações são efetuadas de
forma mais amigável, com uso do mouse e atalhos que facilitam as ações.

Os principais comandos utilizados na edição e criação de gráficos são listados abaixo:

Tabela 11: Principais funções para construção de gráficos

Função Descrição

plot plota um vetor ou uma função

title adiciona título ao gráfico

xlabel adiciona um rótulo ao eixo x;

ylabel adiciona um rótulo ao eixo y

text insere um texto numa determinada posição da janela gráfica

grid traça linhas de grade

gtext insere um texto no gráfico usando o mouse como posicionador

A formatação de cor e estilo da linha pode ser facilmente ajustada através da edição dos argumentos do
comando plot.

A tabela a seguir mostra as opções.

IFBA/SCTC 2010 27
Introdução ao Matlab/Simulink

Tabela 12: Dados para formatação de tabelas

Cor da Linha Estilo da Linha

Caractere Cor Caractere Estilo

y amarela . Ponto

m magenta o Círculo

c cyan x marca "x"

r vermelha + Mais

g verde * Asterisco

b azul - Sólido

w branca : Pontilhado

k preta -- Tracejado

Observe o formato da linha de comando:

>> plot (x,y,'ro')

Note que o argumento de cor ou formato de linha deve ser escrito entre aspas simples. Podem ser usados
um argumento para cor e um para estilo de linha, ou apenas uma das opções.

9.2 - Plotagens combinadas: Usando a mesma linha de comando

Podemos efetuar várias plotagens na mesma tela com apenas um comando plot. Veja na figura 06 os
comandos e na figura 07 exemplos de gráficos.

Figura 06 – Descrição dos comandos para plotagens combinadas

IFBA/SCTC 2010 28
Introdução ao Matlab/Simulink

Figura 07 – Resultado dos gráficos com a plotagem combinada

9.3 - Plotando funções com o Matlab

Para plotar a função exp(x) no intervalo [0 10], poderíamos criar um vetor x e um vetor y em seguida
plotar um em função do outro. Porém para funções matemáticas já definidas no programa, ou novas funções
definidas pelo usuário temos o comando fplot.

>> fplot('exp', [0 10])


>> grid

Note, entre apóstrofos ' ', temos a função. Entre colchetes [ ], o intervalo de análise.

9.4. - Visualizando as raízes de um polinômio

Seja a equação: y=x3-3x2-6x+8

Para visualizar as raízes graficamente, inicialmente calcula-se as raízes do polinômio:


>> coef = [ 1 -3 -6 8];
>> roots(coef)
ans =
4.0000
-2.0000
1.0000

Uma vez definida as raízes, temos que definir o domínio de x que contém estas raízes:

>> x= -3: .1 :5;

IFBA/SCTC 2010 29
Introdução ao Matlab/Simulink

Observe que x é um vetor contendo vários números; dentre eles as raízes do polinômio.
Agora vamos utilizar uma nova função que vai calcular para cada valor de x um valor correspondente
para y. Essa é a função polyval. Ela é utilizada com dois argumentos, sendo primeiro o vetor de coeficientes e o
outro é o vetor que contém as raízes que queremos plotar:

>> y = polyval(coef,x);

Agora só nos resta fazer a plotagem na janela gráfica.

>> plot(x,y)
>> grid
>> title('Gráfico de y=x^3 -3x^2-6x+8')
>>xlabel('eixo x')
>> ylabel('eixo y')
>> zoom

O resultado é apresentado na figura 08.

Figura 08 – Gráfico de visualização das raízes de um polinômio

Você pode observar no gráfico que, como era de se esperar, onde temos x=4, -2 e 1 temos y=0. O último
comando realizado, zoom, permite efetuarmos um zoom em gráficos 2D. Utilize este recurso e realize uma
aproximação na área onde a curva corta o eixo x e verifique as raízes do polinômio.

IFBA/SCTC 2010 30
Introdução ao Matlab/Simulink

9.5 – Outras formas de gráficos

9.5.1 - Gráficos de barras

Para visualizar dados em forma de barras, para aplicações onde tal característica seja útil, utilizamos o
comando bar.

Sua aplicação é fácil:

>> b=[1 2 3 4 5 4 3 2 1];


>> bar(b)

Importante: as configurações para cor e estilo de linha vistas para o comando plot são válidas aqui também.

9.5.2 - A Função compass

Para representar números complexos com amplitude e ângulo.


» a=3+j*4
» compass(a)

Note que a janela apresenta o módulo e a fase do número "c".

Figura 09 – Gráfico utilizando a função compass

IFBA/SCTC 2010 31
Introdução ao Matlab/Simulink

10- Exercícios:
1. Armazene no workspace os seguintes valores:
a = 3.132;
b = -23.004;
c = 5*pi;
d = (3 5.4 7.43)
e = (-2.234 0 pi/2)

2. Verifique o resultado das seguintes das seguintes operações:


a) a + b +eps e) g – c * f e) g – c * f
b) c – b * (a / b) f) A * B f) A * B
c) d – e g) a * A – B / c g) a * A – B / c
d) e’ + 2 * f h) f * B h) f * B

3. Sejam os polinômios p = x4 – 3x2 +5x – 30 e q = 2x4 –7x3 +2x –15. Calcule:


a) p x q d) p /q
b) p(2) e) raízes q
c) Represente as raízes graficamente

4. Atribua as seguintes expressões às variáveis:


a) 3.34 * a – pi/c para x
b) log(d + 34.0054) para y
c) log(A) para Z
t
d) f * B para t

5. Salve as variáveis x, Z, B em um arquivo chamado exerc1.mat.

6. Saia do MATLAB, entre novamente e carregue as variáveis salvas anteriormente.

7. Plote as seguintes funções no intervalo especificado:


a) f(x,y) = x2 + y2, x, y Є [-5;5] e) f(x,y) = (x + y)/(x – y), x, y Є[-10;10]
2 2 ½
b) f(x,y) = (1 - x - y ) , x, y Є [-0.5;0.5] f) f(x,y) = x × y /(x2 + y2), x, y Є [-10;10]
c) f(x,y) = x × y , x, y ЄÎ [0;1] g) f(x,y) = sen(x/2) × cos(y/3), x, y Є [-p;p]
d) f(x,y) = arctg(x2 + y2) , x, y Є [-8;8]

8. Plote os seis primeiros gráficos do item anterior na mesma figura.

IFBA/SCTC 2010 32
Introdução ao Matlab/Simulink

11. Simulink

Para iniciar o Simulink existem duas opções, a primeira é clicar no botão simulink no centro da barra de
ferramenta do ambiente Matlab, como mostra a figura 10. Simulink

Figura 10 – Tela de acesso ao Simulink

A outra opção é digitar o seguinte comando na área de trabalho:

>> Simulink

A figura 11 apresenta a tela que abrirá em resposta ao comando simulink.

Bibliotecas
disponíveis

Blocos
pertencentes à
biblioteca
selecionada

Descrição de
cada bloco
selecionado

Figura 11: Apresentação do Simulink

A janela é subdividida em três partes principais. No lado esquerdo estão presentes todas as bibliotecas
disponíveis. Estão presentes bibliotecas de Sistema Aeroespaciais, Sistemas de Controle Dinâmicos, Lógica
Fuzzy, etc. No lado direito da tela estão disponíveis todos os blocos pertencentes à biblioteca selecionada. Na
parte inferior da tela está presente a descrição de cada bloco selecionado.

IFBA/SCTC 2010 33
Introdução ao Matlab/Simulink

11.1. Construindo Modelos SIMULINK

11.1.1. Elementos dos Modelos

Um modelo SIMULINK consiste de 3 tipos de componentes, como mostra a figura 12: Fontes, o sistema
e dispositivo de saída.

Figura 12 - Elementos de um Modelo SIMULINK

O elemento central, o sistema, é a representação de um diagrama em blocos de um sistema dinâmico a ser


modelado no SIMULINK. As fontes são as entradas aplicadas ao sistema dinâmico. Podem incluir constantes,
geradores de funções como senóides ou degrau, ou ainda sinais personalizados pelo usuário criados no
MATLAB. São encontrados na biblioteca de fontes (sources).

A saída do sistema é entregue aos dispositivos de saída. Alguns exemplos são: gráficos e arquivos de
saída. Tais blocos são encontrados na biblioteca de Dispositivos de Saída (sinks).

Freqüentemente, em modelos SIMULINK um ou mais desses 3 elementos pode faltar. Por exemplo, pode-
se desejar modelar o comportamento na ausência de forças de um sistema inicialmente fora de sua condição de
equilíbrio. Tal modelo não deve ter entradas mas deve conter blocos de sistema, tais como ganho, integradores
etc, e provavelmente dispositivos de saída. Também é possível construir modelos que possuem fontes e
dispositivos de saída, mas nenhum blocos de sistema. suponha por exemplo que se necessita de um sinal que
seja composto da soma de vários outros sinais. Tais sinais podem facilmente gerados usando as fontes do
SIMULINK e enviados ao MATLAB ou a um arquivo no disco rígido.

11.1.2. Criando um modelo

Para a criação de um modelo é necessário abrir uma nova janela. Para isso basta abrir o menu File e escolher a
opção New Model, como mostra a figura 13.

Figura 13 – Tela de acesso a opção New Model

IFBA/SCTC 2010 34
Introdução ao Matlab/Simulink

Uma janela de modelos do Simulink será então aberta, onde toda a montagem, modificação e testes dos sistemas
são realizados.

O Matlab salva esse arquivo de simulação com a extensão .mdl e, assim como no M-File, para que o sistema
seja executado é necessário que ele esteja salvo. Como um primeiro exemplo, pode-se mostrar na tela uma onda
senoidal. Para montar esse sistema são necessários dois dispositivos: um dispositivo que seja capaz de mostrar o
gráfico da onda e um bloco que simula a própria onda. Seguem abaixo os passos que devem ser realizados pelo
usuário.

• Para adicionar uma onda senoidal seleciona-se a biblioteca Source na janela de bibliotecas do
Simulink. Quando selecionamos essa biblioteca, aparece no lado direito um conjunto de sinais
que podem ser usa entrada do sistema, tais como sinal de Rampa, sinal de Degrau, onda
senoidal, etc. O Bloco, apresentado na figura 14, referente à onda senoidal se chama Sine Wave.
Para adicionar o bloco à janela basta clicar com o botão direito do mouse e escolher a opção
“Add to nome_da_janela”.

Figura 14 - Bloco Sine Wave

O bloco será adicionado na janela de modelos aberta.

• Tendo a forma de onda de entrada, basta ter o dispositivo capaz de mostrar a onda na tela. Esse
dispositivo está presente na biblioteca Sink, o nome do bloco Scope. Para adicionar esse bloco o
procedimento é o mesmo.

• Depois dos blocos serem adicionados é necessário interligá-los. Para isso basta clicar na seta
presente na lateral de um dos blocos, manter o botão pressionado e levar a linha tracejada até a
seta presente no outro bloco. Se a cor da linha que liga os dois blocos ficar preta e o tracejado se
manter contínuo, a operação foi realizada corretamente.

• O sistema está pronto, para executá-lo basta clicar no botão Start Simulation, na barra superior,
indicado na figura 15.

Figura 15 - Botão Start Simulation

IFBA/SCTC 2010 35
Introdução ao Matlab/Simulink

O sistema foi simulado. Para visualizar a onda, dá-se um duplo clique no Scope. Surgirá na tela a forma de onda
de Sine Wave. O resultado final pode ser visto na figura 16.

Figura 16 – Representação gráfica da sine wave

Apesar de o sistema criado ser simples, alguns detalhes ainda podem ser explorados. Ao se dar duplo
características da forma de onda gerada. Aparecerá na tela uma janela onde podem ser modificados alguns
parâmetros do sinal, tais como amplitude, frequência, deslocamento vertical, ângulo de fase e domínio.

São operações como essa de clique-e-arraste, de execução e de adição e interligação de blocos que governam o
Simulink. Não é necessário um extenso programa com diversas diretivas e já está embutido nos blocos do
Simulink.

11.2. Manuseando o Simulink

11.2.1. Zoom no Diagrama de Blocos

O Simulink permite o aumento ou diminuição da visão do diagrama de blocos. Seguem abaixo algumas orienta-
ções para regular 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 espaço) para ajustar o zoom de
acordo com o diagrama.

• Selecione Normal do menu View para ajustar ao zoom 100%.

IFBA/SCTC 2010 36
Introdução ao Matlab/Simulink

11.2.2. Selecionando Mais de Um Objeto

Pode-se selecionar mais de um objeto selecionando-os um de cada vez, selecionando os objetos com o mouse ou
com a caixa de seleção, ou selecionar o modelo inteiro.

(a) Selecionando Múltiplos Objetos Um de Cada Vez

Para selecionar mais de um objeto selecionando cada objeto individualmente, segure a tecla Shift e clique nos
objetos. Para desmarcar, clique nos objetos de novo mantendo ainda o Shift pressionado.

(b) Selecionando Múltiplos Objetos com a Caixa de Seleção

Uma maneira fácil de selecionar mais de um objeto numa mesma área é desenhando a caixa de seleção ao redor
dos objetos. A figura 17 ilustra os passos a seguir.

1. Defina o canto para começar uma caixa de seleção posicionando o ponteiro do mouse, então quando apertar
o desenho do ponteiro mudará.

2. Arraste o ponteiro ao canto oposto da caixa. Um retângulo pontilhado inclui os blocos e as linhas
selecionadas.

3. Solte o botão do mouse. Todos os blocos e linhas que estiverem pelo menos parcialmente incluídos dentro
caixa de seleção serão selecionados.

Figura 17 – Passos para a seleção de múltiplos objetos com a caixa de seleção

11.2.3. Duplicando Blocos em um Modelo

Pode-se duplicar os blocos em um modelo apertando a tecla Ctrl e selecionando o bloco com o botão esquerdo
do mouse, então arraste a um local novo. Também pode fazer isto arrastando o bloco com o botão direito do
mouse. Os blocos duplicados têm o mesmo parâmetro dos blocos originais. São acrescentados números de
sucessão aos nomes dos novos blocos.

IFBA/SCTC 2010 37
Introdução ao Matlab/Simulink

11.2.4. Apagando Blocos

Para apagar um ou mais blocos, selecione os blocos a serem apagados e aperte a tecla Delete ou Backspace.
Também 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 não sera possível colar o bloco depois. Pode-se usar o
comando Undo do menu Edit para restituir um bloco apagado.

11.2.5. Mudando a Orientação de Blocos

Normalmente os sinais fluem da esquerda para a direita. As portas de entrada estão na esquerda, e as portas de
saída estão à direita. Você pode mudar a orientação dos blocos escolhendo um destes comandos do menu
Format:

• O comando Flip Block rotaciona o bloco de 180°.

• O comando Rotate Block rotaciona o bloco de 90° no sentido horário.

A figura 18 mostra como o Simulink organiza as portas depois de mudar a orientação de um bloco usando os
comandos Rotate Block e Flip Block. O texto nos blocos mostram a sua orientação.

Figura 18 – Mudando a orientação dos blocos

11.2.6. Redimensionando os Blocos

Para mudar o tamanho de um bloco, selecione e arraste quaisquer de suas marcas de seleção. Enquanto está
seguro o botão do mouse, um retângulo pontilhado mostra novo tamanho para o bloco. Quando é solto o botão
do mouse, o bloco é redimensionado.

Por exemplo, a figura 19 mostra um bloco de Gerador de Sinais sendo redimensionada. A marca do lado inferior
direito foi selecionada e arrastada à posição do cursor. Quando o botão do mouse é solto, o bloco assume o seu
novo tamanho.

IFBA/SCTC 2010 38
Introdução ao Matlab/Simulink

Figura 19 – Redimensionamento de um Gerador de Sinais

11.2.7. Manipulando os Nomes dos Blocos

Todo o nome de bloco em um modelo deve ser único e tem que conter pelo menos um caractere. Geralmente, os
nomes aparecem debaixo dos blocos quando as portas estão na horizontal e à esquerda dos blocos quando as
portas estão na vertical, como mostra esta figura 20.

Figura 20 – Manipulando os nomes dos blocos

11.3. Bibliotecas de Blocos do Simulink

Simulink organiza seus blocos em bibliotecas de blocos de acordo com a aplicação. A janela do Simulink
exibe os ícones e os nomes da biblioteca:

• A biblioteca Sources contém blocos que geram sinais.

• A biblioteca Sinks contém blocos que exibem ou escrevem os sinais.

• A biblioteca Discrete contém blocos que descrevem componentes discretos no tempo.

• A biblioteca Continuous contém blocos que descrevem funções lineares.

• A biblioteca de Nonlinear contém blocos que descrevem funções não-lineares.

• A biblioteca de Math contém blocos que descrevem funções matemáticas.

• A biblioteca Functions & Tables contém blocos que descrevem funções gerais e operações de tabelas.

• A biblioteca Signal & Systems contém blocos que permitem multiplexar e demultiplexar, entrada/saída
de sinais externos, passar dados a outras partes do modelo, criar subsistemas e executar outras funções.

• As bibliotecas Blocksets and Toolboxes contém as bibliotecas de Blocos Suplementares Especializados.

• A biblioteca Demos do MATLAB contém úteis demonstrações de Simulink.

A seguir serão feitos breves comentários a respeito de cada bloco.

IFBA/SCTC 2010 39
Introdução ao Matlab/Simulink

11.3.1. Biblioteca Sources

Tabela 13: Biblioteca Sources

Nome do Bloco Aplicação

Introduz ruído em um sistema contínuo.

Gera uma onda senoidal com freqüência crescente.

Provê o tempo de simulação.

Gera um valor constante.

Gera tempo de simulação ao especificar intervalo.

Gera pulsos a intervalos regulares.

Dados provenientes de um arquivo.

Dados provenientes de uma matriz definida no workspace.

Gera pulsos em intervalos regulares.

Gera um sinal constantemente crescente ou decrescente.

IFBA/SCTC 2010 40
Introdução ao Matlab/Simulink

Gera números randômicos normalmente distribuídos.

Gera um sinal repetitivo arbitrário.

Gera várias formas de onda.

Gera uma onda senoidal.

Gera uma função degrau.

Gera números randômicos uniformemente distribuídos.

11.3.2. Biblioteca Sinks

Tabela 14: Biblioteca Sinks

Nome do Bloco Aplicação

Mostra o valor do sinal.

Exibição de sinais gerados durante uma simulação.

Para a simulação quando o sinal for diferente de zero.

IFBA/SCTC 2010 41
Introdução ao Matlab/Simulink

Escreve os dados em um arquivo.

Escreve os dados em uma matriz no workspace.

Exibe um gráfico de X-Y, que usa uma janela de figura do MATLAB.

11.3.3. Biblioteca Discrete

Tabela 15: Biblioteca Discrete

Nome do Bloco Aplicação

Implementa funções de transferência discretas e filtros.

Implementa um sistema estado-espaço discreto.

Executa integração discreta no tempo de um sinal.

Implementa uma função de transferência discreta.

Implementa uma função de transferência discreta especificada em


termos de pólos e zeros.

IFBA/SCTC 2010 42
Introdução ao Matlab/Simulink

Implementa uma amostragem e aproximação de primeira ordem.

Atraso de um período de amostra.

Aproximação de ordem zero da entrada num período de amostra.

11.3.4. Biblioteca Continuous

Tabela 16: Biblioteca Continous

Nome do Bloco Aplicação

Deriva um sinal.

Integra um sinal.

Produz o sinal de um tempo anterior.

Implementa um sistema estado-espaço linear.

Implementa uma função de transferência linear.

Atrasa o sinal por uma determinada quantia de tempo.

IFBA/SCTC 2010 43
Introdução ao Matlab/Simulink

Atrasa o sinal por uma quantia variável de tempo.

Implementa uma função de transferência especificada em termos de


pólos e zeros.

11.3.5. Biblioteca Math


Tabela 17: Biblioteca Math

Nome do Bloco Aplicação

Produz o valor absoluto do sinal.

Encontra as raízes do sinal.

Implementa uma tabela da verdade.

Produz a fase e a magnitude de um sinal complexo.

Produz as partes reais e imaginárias de um sinal complexo.

Gera o produto escalar.

Multiplica o sinal por um determinado valor.

IFBA/SCTC 2010 44
Introdução ao Matlab/Simulink

Executa a operação lógica especificada.

Produz um sinal complexo a partir da magnitude e da fase.

Executa uma função matemática.

Multiplica o sinal por uma matriz.

Produz o mínimo ou o máximo do sinal.

Gera o produto ou quociente de sinais.

Produz um sinal complexo a partir da parte real e da imaginária.

Executa a operação relacional especificada.

Executa uma função de arredondamento.

Indica se o sinal é positivo ou negativo.

IFBA/SCTC 2010 45
Introdução ao Matlab/Simulink

Ganho variável.

Gera a soma de sinais.

(Soma)

Executa uma função trigonométrica.

11.3.6. Biblioteca Functions & Tables

Tabela 18: Biblioteca Functions & Tables

Nome do Bloco Aplicação

Aplica uma expressão especificada à entrada.

Executa interpolação linear da entrada.

Executa interpolação linear de duas entradas.

Aplica uma função do MATLAB ou expressão à entrada.

Permite acesso a uma S-function.

IFBA/SCTC 2010 46
Introdução ao Matlab/Simulink

11.3.7. Biblioteca Nonlinear

Tabela 19: Biblioteca Nonlinear

Nome do Bloco Aplicação

Modela o comportamento de um sistema com o decorrer da simulação.

Modelo descontínuo em zero e com ganho linear para os demais


valores.

Provê uma região de saída zero.

Troca a saída entre duas entrada, manualmente.

Escolhe entre as entradas.

Discretiza um sinal em um intervalo especificado.

Limita a taxa de variação de um sinal.

Troca a saída entre dois níveis.

Limita a amplitude de um sinal.

Troca entre duas entradas.

IFBA/SCTC 2010 47
Introdução ao Matlab/Simulink

11.3.8. Biblioteca Signals & Systems

Tabela 20: Biblioteca Signals & Systems

Nome do Bloco Aplicação

Seleciona os sinais da entrada.

Representa um selecionado bloco qualquer de uma biblioteca


especificada.

Define uma armazenagem de dados compartilhada.

Dados originados de um Data Store Memory.

Escreve dados em um Data Store Memory.

Converte um sinal para outro tipo de dados.

Separa um sinal vetorial em sinais escalares.

(Demux)

Acrescenta uma porta de habilitação a um subsistema.

Recebe a entrada de um bloco de Goto.

IFBA/SCTC 2010 48
Introdução ao Matlab/Simulink

Executa a função de chamada de um subsistema a uma determinada


taxa.

Passe a entrada para o bloco From.

Define o alcance de um bloco de Goto.

Saída 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 várias linhas de entrada em uma linha de escalar.

Exibe informações em um modelo.

Combine várias linhas de entrada em uma linha de vetor.

(Mux)

Cria uma porta de saída para um subsistema ou uma saída externa.

IFBA/SCTC 2010 49
Introdução ao Matlab/Simulink

Produz a largura de um sinal de entrada, o tempo de amostra, e/ou o


tipo notável.

Representa um sistema dentro de outro sistema.

Termina um sinal não conectado.

Acrescenta uma porta de gatilho a um subsistema.

Produz a largura do vetor de entrada.

11.4. Especificando os Parâmetros dos Blocos

A interface do Simulink permite nomear os valores para os parâmetros dos blocos, alguns parâmetros são
comuns a todos os blocos. Use a caixa de diálogo Block Proprieties para fixar estes parâmetros. Para exibir a
caixa de diálogo, selecione o bloco cujas propriedades se quer fixar. Então selecione Proprieties do menu Edit
do Simulink.

Alguns parâmetros são específicos a blocos particulares. Use a caixa de diálogo Specific-Block Parameter de
um bloco para fixar estes parâmetros. Clique duas vezes no bloco para abrir sua caixa de diálogo. Pode aceitar
os valores exibidos ou mudá-los. Também pode usar o comando set_param para mudar os parâmetros dos
blocos.

IFBA/SCTC 2010 50
Introdução ao Matlab/Simulink

11.5. Exemplos
11.5.1. Exemplo 1: Sistema Massa-Mola

m F

Figura 21 – Representação do Sistema Massa-Mola

Equações básicas da Física:

dv d 2 x
Aceleração: a = = (1)
dt dt 2
dx
Velocidade: v = = adt
dt ∫
(2)

Deslocamento: x = vdt ∫ (3)

Equações básicas do Sistema massa-mola:

d 2x d 2x k
Força: F = -kx = ma ∴ kx = m ∴ a= 2
=− x ( 4)
2 m
dt dt
1 2
Energia potencial: E p = kx (5)
2
1 2
Energia cinética : Ec = mv (6)
2
Verifica-se das equações que a aceleração no sistema é diretamente proporcional ao deslocamento 'x'. O fator de
proporcionalidade é a constante '-k/m'. Essa é a informação inicial para começar o modelo dado na eq.4.

a 1 v 1
x -k/m x
s s
posição
Integrator Integrator1
ac v
aceleração velocidade
m/2 Ec
En. Cinetica

k/2 Ep
En. Potencial

t
Clock tempo

Figura 22 – Modelo do Simulink para o Sistema Massa-Mola

IFBA/SCTC 2010 51
Introdução ao Matlab/Simulink

Para a simulação do sistema é necessário fornecer um valor inicial para um dos dois blocos de integração. Essa
informação será, no caso, o limite para a variável de saída. 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 da segunda integral. Uma outra
informação fundamental é o valor da constante de proporcionalidade 'k' e o valor da massa 'm'. Esses valores
podem ser digitados diretamente no 'prompt' (área de trabalho do Matlab), como mostrado a seguir:

>> k = 700;
>> m = 0.5;

As Figuras 23, 24 e 25 são resultantes do modelo da Figura 22.


15

Energia Cinética
Energia Cinética e Potencial (J)

10

Energia Potencial

0
-0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
posição (m)

Figura 23 – Energia Cinética e Potencial versus Deslocamento

15 8

6
Energia Cinética e Potencial (J)

Energia Potencial 4

10
velocidade (m/s)

-2
5
-4

Energia Cinética
-6

-8
0 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
-8 -6 -4 -2 0 2 4 6 8 posição
velocidade (m/s)

Figura21 – Energia Cinética e Potencial versus Figura 25 – Velocidade versus Deslocamento


Velocidade

11.5.2. Exemplo 2: Circuito RC Série

Considere o circuito elétrico da Figura 26, que possui um resistor e um capacitor em série alimentados
por uma fonte constante. O capacitor possui uma tensão inicial v(0) = 10 V e deseja-se obter a resposta

v(t ) × t para t ≥ 0.

IFBA/SCTC 2010 52
Introdução ao Matlab/Simulink

Figura 26 – Circuito elétrico RC série com uma fonte de tensão contínua.

Modelagem Matemática do Circuito

A modelagem matemática do circuito é obtida aplicando-se a 2a Lei de Kirchoff ao percurso fechado, e


usando a forma genérica e, para expressar tensão:

e − vR − v = 0

Por outro lado, sabemos relacionar a tensão no resistor e a tensão no capacitor com a corrente que os
atravessam, i (t ) :

vR = Ri (t )

dv dv
i (t ) = C ∴ e – Ri(t) – v = 0 ou e − RC −v = 0
dt dt

Assim, a equação 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 equação acima, resulta na equação


abaixo:

dv
+v =5
dt

onde : v(0) = 10

Solução do Circuito Utilizando Simulink

Para utilizar o Simulink deve-se expressar a equação diferencial da seguinte maneira:

1
v= (e − v)dt
RC ∫
IFBA/SCTC 2010 53
Introdução ao Matlab/Simulink

A expressão acima é conseguida facilmente apenas isolando o termo dv dt e depois aplicando a

integração (que é a operação inversa da derivação). Essa forma é ideal para a simulação usando o Simulink.
Constroi-se então o modelo mostrado na Figura 27.

10

9.5

8.5

7.5

6.5

5.5

5
0 2 4 6 8 10

Figura 27 – Diagrama de blocos do Simulink do Circuito Elétrico Figura 28 – Saída gráfica v(t ) × t para t ≥ 0

11.5.3. Exemplo: Simulação de um modelo dinâmico

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.

Figura 29 – Simulação de um tanque de nível

Deduzindo o modelo matemático que descreve o tanque:

Assumindo que:

i. a densidade do líquido e a área da seção transversal do tanque A são constantes.

ii. a relação entre a vazão e a carga é linear:


q3 = h / R

O modelo é descrito por uma equação de balanço transiente de massa no tanque:


dh
ρA = ρq1 + ρq2 − ρq3
dt

IFBA/SCTC 2010 54
Introdução ao Matlab/Simulink

Substituindo a hipótese ii na equação anterior ficamos com:

dh h
ρA = ρq1 + ρq2 − ρ
dt R

Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chegamos as funções de transferência:

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)^2 K p = R = 6.37


A = 0.196 τ = AR = 1.25
R = 6.37

Figura 30 – Diagrama de blocos do Simulink do tanque de nível

IFBA/SCTC 2010 55
Introdução ao Matlab/Simulink

Figura 31 – Resposta da simulação do tanque de nível

11.5.4. Exemplo 4: Controlando o tanque de nível

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. (corrente não controlada).

Figura 32 – Sistema de controle de nível do tanque

Considerando uma válvula com a seguinte função de transferência:

Gv = K v = 0.0103 m 3 / min psi

Considerando um medidor com a seguinte função de transferência:

Gm = K m = 24 psi / m

IFBA/SCTC 2010 56
Introdução ao Matlab/Simulink

Figura 33 – Diagramas de blocos do sistema de controle de nível do tanque

Bloco Ganho: Quando a função de transferência é simplesmente uma constante, como no caso do medidor,
podemos representa-lá pelo bloco Gain.

Gm = K m = 24 psi / m

Figura 34 – Apresentação do bloco do ganho (gain)

Bloco PID: O controlador é representado pelo bloco PID Controller. Podemos regular a sua ação proporcional,
integral e derivativa.

Figura 35 – Apresentação do bloco PID

IFBA/SCTC 2010 57
Introdução ao Matlab/Simulink

12. Referências Bibliográficas

• HELSELMAN, D; LITTLEFILD, B. MATLAB – Versão do estudante – guia do usuário. São Paulo:


Makron Books, 1997. 308p.

• BÜCHNER, PAULO CEZAR. Matlab: um curso introdutório. Viçosa/Mg: Universidade Federal de


Viçosa , 2010.

• Grupo PET, "Curso de MATLAB," Engenharia Elétrica – UFMS. Disponível em


http://www.del.ufms.br/tutoriais/matlab/apresentacao.htm. Acesso 01 de setembro de 2010.

• Grupo PET. Simulink: Guia Prático. Campo Grande/MS:UFMS, 2003

• MATLAB User’s Guide, The MathWorks Inc.

• TODESCO, José Leomar, Curso Introdutório de Matlab, Universidade Federal de Santa Catarina, 1995.

• MATLAB: Curso Introdutório. Centro brasileiro de pesquisas físicas, 2002

• Tonini, Adriana Maria and Schettino, Daniela Naufel. MATLAB para Engenharia. Curso de Engenharia
de Telecomunicações, Centro Universitário de Belo Horizonte, 2002.

IFBA/SCTC 2010 58

Você também pode gostar