Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso:
Introdução ao Matlab/Simulink
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
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.
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.
• Command Window: área na qual os dados e instruções são digitados e os resultados são
apresentados;
• 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.
Histórico de
Comandos
Área de Trabalho
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
>>
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.
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.
3 - Funções básicas
Comandos Descrição
IFBA/SCTC 2010 7
Introdução ao Matlab/Simulink
Comandos Descrição
cd Muda de diretório
Caracteres Descrição
= Comando de atribuição
. Ponto decimal
% Comentário
IFBA/SCTC 2010 8
Introdução ao Matlab/Simulink
Função Descrição
acos Arco-coseno
asin Arco-seno
atan Arco-tangente
cos Coseno
sin Seno
IFBA/SCTC 2010 9
Introdução ao Matlab/Simulink
tan Tangente
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:
^ 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.
IFBA/SCTC 2010 10
Introdução ao Matlab/Simulink
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
>> 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:
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
Alguns exemplos:
Tabela 06: Exemplos de Matrizes
IFBA/SCTC 2010 12
Introdução ao Matlab/Simulink
(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.
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
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+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:
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
FUNÇÕES DESCRIÇÃO
simple(expr) Procura encontrar uma forma mais simples de escrever uma expressão expr
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.
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.
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
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
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:
FUNÇÕES DESCRIÇÃO
6 - Números complexos
Forma polar dos números complexos: z = a+bi = r cos(ø) + r i sen(ø) = r (cos ø + i sen ø), onde
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:
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:
FUNÇÃO DESCRIÇÃO
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.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.
x3-3x2+4x-4
» 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.
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.
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.
x3-15x=4
O procedimento é o seguinte:
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
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
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:
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
p1*p2=10s3+11s2-s-2
Teremos:
>> p1=[2 3 1];
>> p2=[5 -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.
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.
p4=10s3+11s2+2s
Realizando a divisão:
>> [Q R]=deconv(p4,p1)
Q=
5 -2
R=
0 0 3 2
IFBA/SCTC 2010 25
Introdução ao Matlab/Simulink
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.
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.
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:
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
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.
Função Descrição
A formatação de cor e estilo da linha pode ser facilmente ajustada através da edição dos argumentos do
comando plot.
IFBA/SCTC 2010 27
Introdução ao Matlab/Simulink
y amarela . Ponto
m magenta o Círculo
r vermelha + Mais
g verde * Asterisco
b azul - Sólido
w branca : Pontilhado
k preta -- Tracejado
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.
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.
IFBA/SCTC 2010 28
Introdução ao Matlab/Simulink
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.
Note, entre apóstrofos ' ', temos a função. Entre colchetes [ ], o intervalo de análise.
Uma vez definida as raízes, temos que definir o domínio de x que contém estas raízes:
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);
>> plot(x,y)
>> grid
>> title('Gráfico de y=x^3 -3x^2-6x+8')
>>xlabel('eixo x')
>> ylabel('eixo y')
>> zoom
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
Para visualizar dados em forma de barras, para aplicações onde tal característica seja útil, utilizamos o
comando bar.
Importante: as configurações para cor e estilo de linha vistas para o comando plot são válidas aqui também.
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)
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
>> Simulink
Bibliotecas
disponíveis
Blocos
pertencentes à
biblioteca
selecionada
Descrição de
cada bloco
selecionado
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
Um modelo SIMULINK consiste de 3 tipos de componentes, como mostra a figura 12: Fontes, o sistema
e dispositivo de saída.
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.
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.
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”.
• 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.
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.
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.
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 Fit System to View do menu View (ou aperte a barra de espaço) para ajustar o zoom de
acordo com o diagrama.
IFBA/SCTC 2010 36
Introdução ao Matlab/Simulink
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.
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.
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.
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
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.
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:
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.
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
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.
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 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.
IFBA/SCTC 2010 39
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 40
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 41
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 42
Introdução ao Matlab/Simulink
Deriva um sinal.
Integra um sinal.
IFBA/SCTC 2010 43
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 44
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 45
Introdução ao Matlab/Simulink
Ganho variável.
(Soma)
IFBA/SCTC 2010 46
Introdução ao Matlab/Simulink
IFBA/SCTC 2010 47
Introdução ao Matlab/Simulink
(Demux)
IFBA/SCTC 2010 48
Introdução ao Matlab/Simulink
Saída nula.
(Mux)
IFBA/SCTC 2010 49
Introdução ao Matlab/Simulink
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
dv d 2 x
Aceleração: a = = (1)
dt dt 2
dx
Velocidade: v = = adt
dt ∫
(2)
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
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;
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)
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)
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
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
dv 1 1
+ v= e
dt RC RC
dv
+v =5
dt
onde : v(0) = 10
1
v= (e − v)dt
RC ∫
IFBA/SCTC 2010 53
Introdução ao Matlab/Simulink
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
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.
Assumindo que:
IFBA/SCTC 2010 54
Introdução ao Matlab/Simulink
dh h
ρA = ρq1 + ρq2 − ρ
dt R
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).
IFBA/SCTC 2010 55
Introdução ao Matlab/Simulink
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).
Gm = K m = 24 psi / m
IFBA/SCTC 2010 56
Introdução ao Matlab/Simulink
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
Bloco PID: O controlador é representado pelo bloco PID Controller. Podemos regular a sua ação proporcional,
integral e derivativa.
IFBA/SCTC 2010 57
Introdução ao Matlab/Simulink
• TODESCO, José Leomar, Curso Introdutório de Matlab, Universidade Federal de Santa Catarina, 1995.
• 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