You are on page 1of 10

CENTRO UNIVERSITÁRIO DA FEI

EE MR0720 - Simulação de Processos


em Eng. de Materiais

Aula 5

©
“Matlab ”

1
I. Objetivos

9 Objetivo destas notas de aula, é o de ensinar os comandos básicos do Matlab focados para a
utilização nas aulas de Simulação de Processos em Engenharia dos Materiais;

OBS-1: Para um estudo mais detalhado do Matlab, recomendamos o livro “Matlab 5 – Guia
do Usuário (versão do estudante), da Editora Makron Books. Este livro trás um CD- ROM
com uma versão limitada do Matlab 5, mas suficiente para o curso em questão.

II. Introdução

A primeira versão do Matlab, escrita na Universidade do Novo México e na Universidade de


Stanford, no final da década de 1970, destinava-se a cursos de teoria matricial, álgebra linear e
análise numérica. Originou-se do LINPACK e do EISPACK, pacotes de subrotinas em
FORTRAN para a manipulação de matrizes, sem que fosse necessário escrever programas em
FORTRAN.
Hoje, a capacidade do Matlab se estende muito além do “Laboratório de Matrizes” original. O
Matlab é um sistema interativo e uma linguagem de programação para comutação técnica e
científica em geral. Ele integra a capacidade de fazer cálculos, visualização gráfica e
programação em um ambiente fácil de usar, em que os problemas e as soluções são expressos
em uma linguagem matemática familiar.

III. Parte Prática

Telas do Matlab
Ao executarmos o Matlab, através do seu ícone, aparecem três áreas na tela; Launch Pad /
Workspace, Command History/Current Directory e Command Windows. Você perceberá o uso
destas telas ao longo dos trabalhos. Inicialmente utilizaremos a tela Command Windows para as
primeiras lições.

Vetor
Vamos começar criando algo bem simples, como um vetor. Entre com cada elemento do vetor
(separado por um espaço) entre a chave “[ ]”, e igualado a uma variável. Por exemplo, para criar
o vetor a, entre na tela Command Windows o que segue:
a = [ 1 2 3 4 5 6 9 8 7 ] digitar espaço entre números

O Matlab deverá retornar com,


a=
1 2 3 4 5 6 9 8 7

Digamos que você queira criar um vetor com elementos entre 0 e 20 espaçados de um
incremento de 2 (este método é freqüentemente usado para criar um vetor de tempo):

t = 0 : 2 : 20
O Matlab deverá retornar com,
t=
0 2 4 6 8 10 12 14 16 18 20
Outra forma de obter este vetor é utilizando o comando linspace,

t = linspace ( 0, 20, 11 )
t=
0 2 4 6 8 10 12 14 16 18 20

2
neste caso o comando gera um vetor que varia de valor inicial 0 e valor final 20, linearmente
espaçado.

Manipular um vetor é tão fácil como criá-lo. Primeiro, suponha que você queira somar 2 a cada
elemento do vetor ‘a’ anterior. A equação para tal se parecerá com:

b=a+2
b=
3 4 5 6 7 8 11 10 9
Agora suponha que você quisesse somar dois vetores. Se os dois vetores forem de mesmo
comprimento, isto é fácil. Simplesmente some os dois vetores conforme mostrado a seguir:

c=a+b
c=
4 6 8 10 12 14 20 18 16

Funções
Para facilitar, o Matlab inclui muitas funções padrões. Cada função é um bloco de código que
executa uma determinada tarefa. Matlab contem todas as funções padrões tais como sin, cos, log,
exp, sqrt, e etc.. Constantes comuns tais como pi, e ‘i’ ou ‘j’ para a raiz quadrada de ‘-1’
também fazem parte do Matlab.

sin( pi/4 )
ans =
0.7071
Para saber como funcionam as diversas funções, basta digitar “help [nome da função], e o
Matlab mostra uma descrição sobre como usar a determinada função.

Gráficos
Também é fácil construir gráficos no Matlab. Suponha que você queira construir o gráfico do
seno (sin) como função do tempo. Primeiro defina o vetor tempo ‘t’ (o ponto e vírgula ‘;
‘ depois de cada declaração, diz ao Matlab que não queremos ver os valores depois que
pressionamos a tecla enter) e então calcule o seno do valor para cada instante definido.

t = 0 : 0.25 : 7;
y = sin( t )
plot( t, y )

Você pode traçar dois gráficos simultâneamente, por exemplo:

z = cos( t )
plot( t, y, t, z )

Se você mudar a ordem dos argumentos, o gráfico girará 90º. Experimente fazer:

plot( y, t, z, t)

Note que o Matlab escolheu o estilo de linha e as suas cores, no caso azul e verde, para o gráfico.
Você pode especificar as cores e os tipos de linha através de um terceiro argumento depois de
cada par de vetores de dados. O argumento opcional adicional é uma string contendo um ou
mais caracteres, de acordo com a tabela a seguir:

3
Símbolo Cor Símbolo Tipo de linha Símbolo Marcador
b azul - linha contínua . ponto
g verde : linha pontilhada o círculo
r vermelho -. traços e pontos x x
c ciano -- linha tracejada + +
m magenta * estrela
y amarelo s quadrado
k preto d losango
w branco v triângulo p/ baixo
^ triângulo p/ cima
< triângulo p/ esquerda
> triângulo p/ direita
p pentagrama
h hexagrama

Por exemplo,
plot( t, y, ‘b:p’, t, z, ‘r-’ )

note que não é necessário usar todos os três argumentos e que os argumentos devem ser
colocados entre apóstrofos ‘_’

Grade
O comando grid adiciona linhas de grade e o comando grid off remove a grade. Os comandos
xlabel e ylabel adiciona nomes aos eixos horizontais e verticais respectivamente. O comando
title adiciona uma linha de texto ao topo do gráfico. Experimente,
xlabel ( ‘Variável independente t’ );
ylabel ( ‘Variável dependente y e z’ );
title ( ‘Curvas do seno e co-seno’ )

É possível adicionar ao gráfico qualquer texto em qualquer posição usando-se o comando text(x,
y,’texto desejado’). Neste caso (x,y) representa as coordenadas, nas unidades próprias do gráfico
em questão.

text ( 1.2, 0.4, ‘cos(z)’ )


Você pode achar mais fácil a posição do texto usando o comando gtext. Este comando muda
para a janela de figuras onde faz aparecer uma cruz que segue o mouse até que você dê um
clique no mouse ou pressione uma tecla.
gtext ( ‘sen(x)’ )

Se precisar colocar legenda use o comando legend,

legend ( ‘sen(x)’, ‘cos(z)’ )

ou se precisar removê-la use o comando legend off.

Polinômios
No Matlab, o polinômios é representado por um vetor. Para criar um polinômio no Matlab,
simplesmente entre com os coeficientes do polinômio em ordem decrescente. Por exemplo, seja
o polinômio:

s4 + 3s3 - 15s2 - 2s + 9
Para entrar este polinômio no Matlab, simplesmente digite o vetor,

x = [ 1 3 –15 –2 9 ]

4
x=
1 3 -15 -2 9
Se o polinômio não tiver algum coeficiente, você deve entrar com zero no vetor, no lugar
apropriado. Por exemplo, s4 + 1
o vetor fica, y=[1 0 0 0 1]

Você pode achar o valor de um polinômio usando a função polyval. Por exemplo, para achar o
valor do polinômio y para s=2,

z = polyval ( [ 1 0 0 0 1] , 2 )
z=
17
Você pode também achar as raízes de um polinômio. Isto é útil quando se tem um polinômio de
alto grau.
Por exemplo, achar as raízes do polinômio s4 + 3 s3 – 15 s2 – 2 s + 9,

roots ( [ 1 3 -15 -2 9 ] )
ans =
-5.5745
2.5836
-0.7951
0.7860
O inverso também é possível, isto é tendo-se as raízes, pode-se achar o polinômio, sendo que as
raízes devem ser colocadas como um vetor coluna:
raizes = [ -5.5745; 2.5836; -0.7951; 0.7860 ]
p = poly ( raízes )
p=
1.0000 3.0000 -15.0000 -2.0002 9.0007
Note que pode existir erros de arredondamento.

Digamos que você queira multiplicar dois polinômios, x = w + 2 por y = w2 + 4w + 8 que


resulta z = w3 + 6w2 + 16w + 16. O produto de dois polinômios é achado tomando-se a
convolução de seus coeficientes. A função conv do Matlab irá fazer isso por você,
x = [ 1 2 ];
y = [ 1 4 8 ];
z = conv ( x, y )
z=
1 6 16 16
Divisão de 2 polinômios é igualmente simples. A função deconv irá retornar o resultado e o
resto. Vamos dividir z por y e verificar se encontramos o valor de x.
[ xx, R ] = deconv ( z, y )
xx =
1 2
R=
0 0 0 0
Como você pode ver, este é justamente o polinômio/vetor x anterior.

Se você desejar somar dois polinômios que tenham a mesma ordem, simplesmente faça a = b +
c.
exemplo:
b=[1 2 3]
c=[4 5 6]
a = b +c
ans =

5
5 7 9

Matrizes
Entrar com matrizes no Matlab é o mesmo que entrar um vetor, exceto que cada linha é
separada da próxima por um ponto e vírgula ou teclando “enter”:
B = [ 1 2 3 4; 5 6 7 8; 9 10 11 12 ]
B= 1 2 3 4
5 6 7 8
9 10 11 12
ou pode-se entrar os coeficientes da seguinte forma:

B=[1 2 3 4 (pressionar a tecla enter)


5 6 7 8 (pressionar a tecla enter)
9 10 11 12 ] (pressionar a tecla enter)
B=
1 2 3 4
5 6 7 8
9 10 11 12
As matrizes no Matlab podem ser manipuladas de muitas formas. Primeiro, você pode achar a
transposta de uma matriz utilizando apóstrofo:
C = B’
C=
1 5 9
2 6 10
3 7 11
4 8 12
Você pode multiplicar as duas matrizes B e C. Lembre-se que a ordem das matrizes devem ser
respeitadas.

D=B*C
D=
30 70 110
70 174 278
110 278 446
D=C*B
D=
107 122 137 152
122 140 158 176
137 158 179 200
152 176 200 224
Outra opção para a manipulação de matrizes é que você pode multiplicar os elementos de duas
matrizes utilizando o operador “ .* ” (as matrizes tem que ser de mesmo tamanho).

E = [ 1 2; 3 4 ]
F = [ 2 3; 4 5 ]
G = E .* F
E=
1 2
3 4
F=
2 3
4 5
G=
2 6

6
12 20
Se você tem uma matriz quadrada, como E, você pode também multiplicá-la por ela mesma
tantas vezes quantas você quiser, basta elevá-la a potência desejada.
E^3
ans =
37 54
81 118

Se quiser elevar ao cubo cada elemento da matriz, simplesmente utilize a forma elemento por
elemento.

E .^ 3
ans =
1 8
27 64

Você pode também achar a inversa da matriz:


X = inv ( E )
X=
-2.0000 1.0000
1.5000 -0.5000

Expressões e Objetos Simbólicos

Até o momento, você aprendeu a usar o Matlab como uma calculadora avançada. Entretanto,
mesmo uma calculadora poderosa tem suas limitações. Ou seja, até o momento todos os
exemplos exigiram números para produzir resultados. Porém o Matlab possui a capacidade de
manipular expressões matemáticas sem de fato usar números. Para tanto utilizaremos uma
função que permitirá manipular expressões e fazer cálculos com símbolos matemáticos, além de
números. Esse processo é frequentemente chamado de matemática simbólica. A função sym é
usada para criar a variável simbólica. Digamos que se queira realizar a seguinte calculo
algébrico:
f = x*5*x+y*8*y*3*y
Se entrarmos com esta expressão teremos a seguinte resposta,

??? Undefined function or variable 'x'.

pois o Matlab precisa que você defina um valor para x ou se ele é um símbolo.
Neste caso queremos que x seja tratado como símbolo, então devemos usar a função sym,

x = sym ( ‘x’ )
y = sym ( ‘y’ )
ou simplesmente
syms x y
agora podemos inserir a expressão,
f = x*5*x+y*8*y*3*y
ans =
5 * x^2 + 24 * y^3
Se quiser uma apresentação mais agradável, podemos utilizar o comando:

pretty ( f )
ans =
5 x2 + 24 y3

7
Transformada de Laplace

Dado a função no domínio do tempo f(t) = e-at cos(wt) a transformada de Laplace pode ser
calculada utilizando o comando laplace (f,t,s). Primeiramente definem-se os símbolos a serem
usados, depois se entra com a função:

syms a s t w
f = exp( -a*t )*cos( w*t )
L = laplace ( f, t, s )

L=
(s+a) / ((s+a)^2 + w^2)
pretty ( L )
s+a
(s + a)
2
+ w2

Transformada de Laplace inversa


ilaplace ( L, s, t )
ans =
exp (-a*t)*cos(w*t)

Experimente o seguinte exemplo:


Determine a transformada de Laplace da função f = sen(wt+b),

syms s t w b
f=sin(w*t+b)
L = laplace ( f, t, s )

L=
cos(b)*w/(s^2+w^2)+sin(b)*s/(s^2+w^2)

pretty ( L )

cos ( b ) w sin ( b ) s
+ 2
s 2 + w2 s + w2
Expansão em Frações parciais
O Matlab dispõe de um comando para se obter a expansão em frações parciais. O comando é o
[r,p,k] = residue (num,den) sendo “r” o resíduo, “p” os pólos e “k” o termo direto.

B ( s ) num b0 s n + b1s n−1 + L + bn r r rn


= = n n −1
= 1 + 2 +L+ +k
A( s ) den s + a1s + L + an s − p1' s − p2 ' s − pn '

Exemplo:
Considere-se a seguinte função de transferência,
B ( s ) 2 s 3 + 5s 2 + 3s + 6 r r2 r
= 3 = 1 + + 3 +k
A( s ) s + 6 s + 11s + 6 s − p1' s − p2 ' s − p3'
2

8
num = [ 2 5 3 6 ]
den = [ 1 6 11 6 ]
[ r, p, k ] = residue ( num, den )
r=
- 6.000
- 4.000
+ 3.000
p=
- 3.000
- 2.000
- 1.000
k=
2
B(s) 6 4 3
Portanto temos, =− − + +2
A( s ) s + 3 s + 2 s +1

Podemos ter o inverso, isto é dado as frações parciais podemos encontrar o numerador e
denominador da função de transferência:

[ num, den ] = residue ( r, p, k )

Resposta de um sistema a um impulso como sinal de entrada


Se o numerador e denominador de malha fechada forem conhecidos, o comando
impulse(num,den) e impulse(num,den,t) geram a curva das resposta a um impulso unitário. O
parâmetro t no comando é o tempo especificado pelo usuário, caso não seja definido o tempo é
gerado automaticamente. Note que “num” e “den” são o nome das variáveis e podem ser usados
outros nomes quaisquer, tais como, “n” e “d”.
Exemplo
25
Dado um sistema cuja função de transferência é F (s) =
s + 4 s + 25
2

determinar a resposta a um impulso unitário.


solução:
num = [ 25 ]
den = [ 1 4 25 ]
impulse ( num, den )
(é gerado um gráfico da resposta ao impulso como sinal de entrada)

Resposta de um sistema a um degrau como sinal de entrada


Se o numerador e denominador de malha fechada forem conhecido, o comando step(num,den) e
step (num,den,t) geram a curva das resposta a um degrau unitário.
Exemplo
25
Dado um sistema cuja função de transferência é F (s) =
s 2 + 4 s + 25
determinar a resposta a um impulso degrau.
solução:
num = [ 25 ]
den = [ 1 4 25 ]
step ( num, den )
(é gerado um gráfico da resposta ao degrau como sinal de entrada)

9
M – files (arquivos .m)

Para problemas simples, é mais rápido e eficiente introduzir seus comandos no prompt do
Matlab. Entretanto, se o número de comandos é grande, ou se você deseja mudar o valor de uma
ou mais variáveis e reexecutar alguns comandos, pode tornar-se tedioso introduzir os comandos
no prompt. O Matlab apresenta uma solução para estes casos, ele permite que seja criado
arquivos chamados arquivos de comandos ou arquivos “M”.
Existe um editor para os arquivos M ou m-files; escolha “New M-file” no menu File. Você pode
utilizar qualquer outro editor desde que você salve o arquivo no mesmo diretório do Matlab e
com a extensão “.m”.

Alguns comandos úteis quando se usa os arquivos M são:

echo on – mostra os comandos do arquivo M durante sua execução, na janela de comandos do


Matlab;
echo of – inibe a apresentação dos comandos do arquivo M durante sua execução;
input – solicita ao usuário que forneça algum dado de entrada;
keybord – transfere temporariamente o controle para o teclado (pressione ‘return’ para sair);
pause – suspende a execução.

Exemplo

Criar um arquivo M File denominado “exemplo.m”. Digitar o seguinte programa:

1 % Programa para plotar sen(t)


2 T = input ( ‘entrar com o valor do tempo final, T = ’ );
3 n = input ( ‘entrar com o numero de leituras/calculos, t = ’ );
4 t = linspace ( 0, T, n );
5 y = sin ( t );
6 plot ( t, y )
7 grid

Na tela do Command Windows, digitar o nome da M-File, ou seja “exemplo”. Entrar com os
dados solicitados (por exemplo, T = 10 e n = 10), analisar o gráfico, caso a senóide não tenha
ficado uniforme, altere o valor de n.

10

You might also like