Curso Matlab

Você também pode gostar

Você está na página 1de 90

CURSO MATLAB

Instrutores: Marcelo Brando e Marcelo Guerra CT-DEE brandao@dca.ufrn.br

1-Viso Geral
Janela de Comandos (command window) rea de Trabalho (workspace) Pasta de Arquivos (current directory) Histrico de Comandos (command history)
Introduo ao Matlab 7.0

Introduo ao Matlab 7.0

1-Viso Geral
Menus Configurao de Diretrios:
File/Set Path...

Help:
help help general help ops
Introduo ao Matlab 7.0

1-Viso Geral
Bibliografia:
Matlab 7, Fundamentos, lia Yathie Matsumoto, Ed. rica, 2004. www.mathworks.com

Introduo ao Matlab 7.0

2-Criao de Matrizes
Escalares - . indica casa decimal; - e para notao cientfica; - i e j para notao de nmeros complexos. Ex:a=4+j*5 Constantes numricas predefinidas:
Constante pi eps realmin realmax Inf NaN 3.1415926... 2.220446049250313 e-016 2.22507385850720 e-308 (menor nmero real) 1.797693134862316 e+308 infinito Not-a-number (exemplo: 0/0)
Introduo ao Matlab 7.0

2-Criao de Matrizes
Operadores

Operador + * / ^ ()

Descrio Soma Subtrao Multiplicao Diviso Potnca Precedncia

Introduo ao Matlab 7.0

2-Criao de Matrizes
Vetores e matrizes:
delimitadores:
Coluna: espao ou , Linha: ;

Exemplos:
a=3 ou a=[3] b=[4 5 6 7] ou b=[4,5,6,7] c=[4 5 6 7;8 9 10 11] d=[4 5 6 7] ou d=[4;5;6;7]
Introduo ao Matlab 7.0

(1x1) (1x4) (2x4) (4x1)

2-Criao de Matrizes
Criando um vetor:
x= 0:0.1:1 x= 1:10 x= linspace(0,1,11); (operador :) (operador ;)

help linspace Concatenao de matrizes


c=[a b] ou c=[a;b]
Introduo ao Matlab 7.0

2-Criao de Matrizes
Denominao das Variveis:
alfanumricas iniciadas por letra
Ex: x1, alfa

mximo de 63 caracteres. (Windows) case-sensitive: x1 X1 - ans a varivel reservada para o Matlab armazenar o resultado da ltima operao.

Introduo ao Matlab 7.0

2-Criao de Matrizes
Matrizes elementares:
zeros ones eye rand Ex: n=round(5*rand(1,6))

Introduo ao Matlab 7.0

2-Criao de Matrizes
Outras funes teis:
round floor ceil rem sign aprox. p/ inteiro mais prximo aprox para baixo aprox para cima resto da diviso retorna o sinal

Introduo ao Matlab 7.0

3-Formatos Numricos
help format
format format format format format format format short preciso simples long preciso dupla short e preciso simples E long e preciso dupla E+ hex hexadecimal bank duas casas decimais rat quociente
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
(i- linha , j- coluna)

Indexao: (i,j)
a=[1:10] a2=a(2)

c=a(1:2:9) d=3*rand(3,4) e=d(1,2:end)

a7=a(7) b=a(1:5)

f=d(2,:) g=d(:,3:4)
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Indexao: (p)
Alm do padro de indexao (i,j), o Matlab aceita tambm, indexao sequnciada. A contagem da posio feita, seguindo primeiro por linha e depois coluna. Ex: d(3,2) d(6)
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Operaes com matrizes:
* .* / ./ \ multiplicao matricial multiplicao escalar diviso matricial (a/b a*b-1) diviso escalar diviso esquerda (a\b a-1*b)

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Operaes com matrizes:
^ potncia .^ potncia escalar transposta det(a) - determinante inv(a) - inversa eig(a) - autovalores poly(a) - polinmio caracterstico
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Eliminando linhas ou colunas de uma matriz:
a(1,:)=[] a(:,3)=[] - elimina a primeira linha - elimina a terceira coluna

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Modificando elementos de uma matriz:
Faz-se referencia ao elemento a ser modificado e o seu novo valor: Ex: A=rand(4); A(2,2)=3; A(1,2:4)=0;

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Funes de Informao:
size (A) length (A) find(exp) retorna os ndices dos elementos que satisfazem a condio exp

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Funes de Manipulao:
diag (diagonal) tril e triu (matrizes triangulares) fliplr e flipud (inverte a ordem) sort (organiza em ordem crescente)

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Soluo de sistemas lineares (A*X=B):
X=inv(A)*B Ex: 4x1+5x2=9 7x1+x2=10

A=[4 5;7 1] e B=[9;10] x1=1.3226 e x2=0.7419

Para sistemas sobre-determinados:


Pseudo-inversa (matriz no quadrada): X=pinv(A)*B (pinv(A)=inv(AT*A))

Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Funes para nmeros complexos
abs(z) - mdulo angle(z) ngulo real(z) parte real imag(z) parte imaginria conj(z) retorna o complexo conjugado de z plot(z,o) traa um grfico com a parte real no eixo x e a parte imaginria em y.
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Mudana de Base Numrica:
bin2dec binria para decimal dec2bin decimal para binria base2dec base especificada para decimal dec2base decimal para base especificada
Introduo ao Matlab 7.0

4-Manipulao de Matrizes
Outras Funes teis:
primes(x) Retorna todos os primos menores que x gcd(a,b) Mximo divisor comum (MDC). lcm(a,b) Mnimo mltiplo comum (MMC). factorial(n) Retorna o fatorial de n
Introduo ao Matlab 7.0

5-Polinmios
Vetores com os coeficientes:
x5 + 4x3 +5x2 x -10=0 p=[1 0 4 5 -1 -10]

Achar as razes (zeros):

r= roots(p)

Encontrar o polinmio a partir das razes: p=poly(r)

Introduo ao Matlab 7.0

5-Polinmios
polyval(p,x) e polyvalm(p,X)
calculam o valor do polinmio .

[R,P,K]=residue(B,A)
encontra os resduos, os plos e os termos diretos da expanso em fraes parciais B(s)/A(s)

Introduo ao Matlab 7.0

5-Polinmios
polyfit ajusta polinmio aos dados.
Ex: x=1:100; y=x.^2+3; p=polyfit(x,y,n); onde n a ordem do polinmio desejado

conv multiplicao de polinmios


Ex: c=conv(a,b)

deconv diviso de polinmios


Ex: a=deconv(c,b) e b=deconv(c,a)
Introduo ao Matlab 7.0

5-Polinmios
polyder derivada de um polinmio polyint integral analtica de um polinmio

Introduo ao Matlab 7.0

6-Grficos
Plot
help plot xlabel / ylabel grid title Ex: plot(X,Y,S); (S= cores e tipos de linha )
Introduo ao Matlab 7.0

6-Grficos
Cores b blue g green r red c cyan m magenta y yellow k black Tipos de Linha . point solid -- dashed * star o circle x x-mark s square ...
Introduo ao Matlab 7.0

6-Grficos
loglog - escala logartmica semilogx escala logartmica em x semilogy - escala logartmica em y polar Ex: polar(t,2*t) figure abre uma nova janela grfica
Introduo ao Matlab 7.0

6-Grficos
subplot
Ex1:>> x=0:.1:10; >> y=sin(x); >> y2=sin(x+pi/2); >> subplot(2,1,1);plot(x,y);grid >> subplot(2,1,2);plot(x,y,'g.');grid

Introduo ao Matlab 7.0

6-Grficos

Introduo ao Matlab 7.0

6-Grficos
Ex2:
>> >> >> >> >> >> y3=y+y2; y4=y-y2; plot(x,y3,'k',x,y2,'r--'); xlabel('Amplitude') ylabel('Amplitude') title('Exemplo 2')

Introduo ao Matlab 7.0

6-Grficos

Introduo ao Matlab 7.0

6-Grficos
Edio na janela grfica:
zoom ginput(n) n=nmero de pontos Texto Propriedades dos eixos Legendas

Introduo ao Matlab 7.0

6-Grficos
Ex3 Grfico 3D:
>> >> >> >> >> a=-1000:50:1000; b=a; [A,B]=meshgrid(a,b); Z=(-A.^2+B.^2/5)/150; mesh(A,B,Z)

Introduo ao Matlab 7.0

6-Grficos

Introduo ao Matlab 7.0

7- Derivadas e Integrais
Derivada Numrica:
diff Exemplo: x=linspace(0,5,101); y=cos(2*x); der=diff(y)./diff(x); plot(x(1:100),der,'--k',x,y) grid OBS: por ser um processo numrico iterativo, perde-se um ponto do vetor.
Introduo ao Matlab 7.0

7- Derivadas e Integrais
Integral Numrica
cumsum- calcula uma aproximao da integral atravs de uma soma acumulada dos elementos. Exemplo: inty=cumsum(der).*diff(x); plot(x(1:100),der,'--k',x,y,x(1:100),inty,'r') grid

Introduo ao Matlab 7.0

7- Derivadas e Integrais
Integral definida:
quad ou quadl dblquad Integral dupla triplequad Integral Tripla Ex: Q = quad(FUN,A,B) a funo FUN deve ser definida como: FUN = inline('1./(x.^3-2*x-5)'); A e B so os intervalos de integrao.
Introduo ao Matlab 7.0

7- Derivadas e Integrais
Integral definida:
Para o clculo de integrais duplas e triplas, deve-se prestar ateno nos intervalos de integrao: help dblquad help triplequad

Introduo ao Matlab 7.0

7- Derivadas e Integrais
Derivadas e Integrais Analticas
Variveis Simblicas syms x define x como varivel simblica Ex: syms t dt=diff(cos(t)) dt2=diff(t*cos(t)) dt3=diff(exp(-t)*cos(t))
Introduo ao Matlab 7.0

7- Derivadas e Integrais
Ex (cont): int(cos(t)) int(cos(t),0,pi/2) int(dt3) syms a int(1/(t^2+1)) int(1/(t^2+1),-a,a)

Introduo ao Matlab 7.0

8- Outras funes de variveis simblicas:


simple
Ex: syms t z=cos(t)^2+sin(t)^2; y=simple(z)

solve resolver: 10/t2 = 4-t


Ex: f=solve(10/t^2 - 4+t) eval(f)
Introduo ao Matlab 7.0

8- Outras funes de variveis simblicas:


Resolver equaes simultneas :
Ex: syms x y eq1=2*x^2-x+2*y^2-8*y; eq2=x^2+2*x+y^2-6*y+1; [X Y]=solve(eq1,eq2)

Introduo ao Matlab 7.0

9-Programao no Matlab
Arquivos *.m (m-files) File / New / m-file >> edit

Introduo ao Matlab 7.0

9-Programao no Matlab
Arquivos *.m (m-files)
Script : seqncia de comandos para automatizar processos repetitivos. Funo: aceita parmetros de entrada e retorna parmetros de sada.

Introduo ao Matlab 7.0

9-Programao no Matlab
Observaes sobre funes:
Utiliza o seu prprio espao de memria para armazenar variveis. possvel a implementao de estruturas lgicas. Aceita parmetros de entrada e retorna parmetros de sada.
Introduo ao Matlab 7.0

9-Programao no Matlab
% - transforma em comentrio Cabealho help nome_da_funo exibe o cabealho da funo

Introduo ao Matlab 7.0

9-Programao no Matlab
O cdigo das funes do Matlab pode ser visualizado:
edit nome_da_funo Ex: edit poly edit roots edit quad

Introduo ao Matlab 7.0

9-Programao no Matlab
IF, ELSE IF, ELSE SWITCH FOR WHILE
Introduo ao Matlab 7.0

9-Programao no Matlab
Ex: IF / ELSE IF / ELSE
if I<3 N=pi; elseif I==3 N=2*pi; else N=0; end
Introduo ao Matlab 7.0

9-Programao no Matlab
Ex SWITCH: function tipo=teste(valor) switch valor case 3 tipo= Numero 3 case 5 tipo= Nmero 5 otherwise tipo=valor nao tabelado end
Introduo ao Matlab 7.0

9-Programao no Matlab
Ex FOR: soma=0; for n=1:30 soma=soma+n; end

Introduo ao Matlab 7.0

9-Programao no Matlab
Ex WHILE: while I<m <executa expresso> end

Introduo ao Matlab 7.0

9-Programao no Matlab
Cdigos eficiente para Matlab
Evitar criao de variveis desnecessrias. Vetorizar os algoritmos, evitando, quando possvel o uso de estruturas de repetio.

Introduo ao Matlab 7.0

9-Programao no Matlab
Ex- script para automatizar o exemplo 6.3:
% script para automatizar o exemplo 6.3 a=-1000:50:1000; b=a; [A,B]=meshgrid(a,b); Z=(-A.^2+B.^2/5)/150; mesh(A,B,Z) %salvar como script1.m
Introduo ao Matlab 7.0

9-Programao no Matlab
Ex Funo para converter graus em radianos (deg2rad / rad2deg): function y=g2r(grau) y=pi*grau/180;

Introduo ao Matlab 7.0

9-Programao no Matlab
Ex: Funo para traar o grfico do seno e cosseno de x, num intervalo especificado:

Introduo ao Matlab 7.0

9-Programao no Matlab
Ex: Funo para calcular o somatrio de 2 senides.
Parmetros de Entrada: a1, a2, 1, 2, 1 e 2. Parmetros de Sada: Y, plot(x,y). Garantir que seja exibidos no grfico pelo menos 2 perodos da funo de menor freqncia.

Introduo ao Matlab 7.0

%Exemplo 9.2 %Somatorio de 2 senoides % Y=som(a1,a2,w1,w2,f1,f2) % onde: % a-amplitude % w-frequencia em rad/s % f-fase em radianos function Y=som(a1,a2,w1,w2,f1,f2) %cria a base de tempo e garante %que sejam exibidos 2 periodos da %onda de menor frequencia if w1<w2 T1=2*pi/w1; t=linspace(0,2*T1,200); else T2=2*pi/w2; t=linspace(0,2*T2,200); end ... ... Y1=a1*sin(w1*t+f1); Y2=a2*sin(w2*t+f2); Y=Y1+Y2; %plota o grafico de Y, Y1 e Y2 plot(t,Y,t,Y1,'k--',t,Y2,'r--') grid xlabel('Tempo') ylabel('Amplitude') title('Exemplo 2 - Somatorio de 2 senoides')
Introduo ao Matlab 7.0

10- Importao e Exportao de Arquivos


Arquivos de Texto:
>> type teste.txt 1,2,3,4 5,6,7,8 9,10,11,12 >> test=dlmread('teste.txt',',') test = 1 2 3 4 5 6 7 8 9 10 11 12
Introduo ao Matlab 7.0

10- Importao e Exportao de Arquivos


Arquivos de Texto: >> test2=test+7 test2 = 8 9 10 11 12 13 14 15 16 17 18 19 >> dlmwrite('teste2.txt',test2,',') >> type teste2.txt 8,9,10,11 12,13,14,15 16,17,18,19
Introduo ao Matlab 7.0

10- Importao e Exportao de Arquivos


Arquivos de Texto:
load / save Carregar arquivo a partir do current directory.

Introduo ao Matlab 7.0

10- Importao e Exportao de Arquivos


Arquivos de Som:
[ring fs]=wavread(ring.wav); wavplay(ring,fs); x=1:length(ring); y=sin(10*x); ring2=ring+y'; wavplay(ring2,44100) wavwrite(ring2,44100,ring2.wav');
Introduo ao Matlab 7.0

9- Importao e Exportao de Arquivos


Arquivos de Imagem:
help images : (toolbox proc. Imagem) I=imread('imagem.jpg'); J=imnoise(I,'gaussian'); truesize J=imrotate(J,60); imwrite(J,'teste.jpeg')

Introduo ao Matlab 7.0

10- Importao e Exportao de Arquivos


Dados em Geral:
X=importdata(arquivo); Verifica a extenso do arquivo especificado e utiliza a funo de importao mais conveniente.

Introduo ao Matlab 7.0

11- Funes Estatsticas de um Sinal


max(x) min(x) mean(x) std(x)
Introduo ao Matlab 7.0

12- Simulink
Algoritmo em Diagramas de Blocos
1 Constant

Sinal constante
Product

Produto

1 Gain

Ganho

In1

Out1

Subsistema

Subsystem

Somador

Scope

Osciloscpio

Introduo ao Matlab 7.0

12- Simulink
Sinal senoidal
Sine Wave
Ramp

Sinal rampa

Sinal degrau
Step

Random Number

Nmero aleatrio

Clock

Tempo

Introduo ao Matlab 7.0

12- Simulink
1

Multiplexador

s+1 Transfer Fcn

Funo de Transferncia

Demultiplexador

min MinMax

Mnimo e mximo

AND Logical Operator

Operador Lgico
Manual Switch

Switch manual

Introduo ao Matlab 7.0

12- Simulink
|u| Abs

Valor Absoluto
Sign

Funo Sinal

Funo Matemtica

du/dt Derivative

Derivada

Math Function

Introduo ao Matlab 7.0

12- Simulink
simin From Workspace

Exportar da rea e trabalho

Saturador
Saturation

simout To Workspace

Importar para a rea de trabalho

f(u) Fcn

Funo

Ground

Terra

mlfile M-file S-Function

Funo escrita num arquivo m-file

Introduo ao Matlab 7.0

12- Simulink
1 In1

Entrada

[A] From

Vem de

1 Out1

Sada
Display

Display

[A] Goto

Ir para

1 z Unit Delay

Atraso Unitrio

Introduo ao Matlab 7.0

12- Simulink
Configurando os parmetros da Simulao

Introduo ao Matlab 7.0

12- Simulink
Exemplos

Sine Wave

1 s Integrator

Scope

Introduo ao Matlab 7.0

12- Simulink
Exemplos
simout1 To Workspace1 3*u(1)+5 Clock Fcn simout To Workspace Saturation1 Scope

Introduo ao Matlab 7.0

12- Simulink
Exemplos
Malha Aberta
1 Position

1 Referncia

Fora

Position

Plant

Scope

1 Fora 1/m Mass

1 s

v el

1 s

pos

Integrator

Integrator1

Positions

b Damper k Spring

Introduo ao Matlab 7.0

12- Simulink
Demos Start Demos Simulink Simulink Control Design Water Tank
10 Desired Water Level
Error Out1 Input Output

Scope Controller Water-Tank System

Introduo ao Matlab 7.0

12- Simulink
Demos Controller
3 Gain1 1 Error 2 Gain2 1 s Integrator Add 1 1 Out1 Input V -Kb/A 1 s H H 1 Output

Water Tank System

0.2 Gain3

du/dt Derivative

-Ka/A

sqrt Square Root

Introduo ao Matlab 7.0

12- Simulink
Exerccios Sistema Massa Mola
Equaes bsicas da Fsica:
dv d 2 x a= = dt dt 2 dx v= = adt dt
m

Acelerao: Velocidade: Deslocamento:

F m

x = vdt
kx = m d 2x dt 2
a= d 2x dt 2

Ep =
= k x m

1 2 kx 2

Fora: F=-kx=ma

Ec =

1 2 mv 2

Introduo ao Matlab 7.0

12- Simulink
Exerccios Plotar:
Energia Cintica e Potencial versus Deslocamento Energia Cintica e Potencial versus Velocidade Velocidade versus Deslocamento

Introduo ao Matlab 7.0

12- Simulink
Exerccios Diagrama:

Introduo ao Matlab 7.0

12- Simulink
Exerccios Circuito RC Srie
Equaes bsicas da Fsica:
e vR v = 0

Lei de Kirchoff:

Equaes:

vR = Ri(t )

i (t ) = C

dv dt
dv 1 1 v= e + dt RC RC

dv +v =5 dt onde : v(0) = 10

e RC

dv v = 0 dt

Introduo ao Matlab 7.0

v=

1 (e v )dt RC

12- Simulink
Exerccios Plotar:
V(t) versus t

Introduo ao Matlab 7.0

12- Simulink
Exerccios Diagrama:

Introduo ao Matlab 7.0

12- Simulink
Exerccios

Simulao:
x = 5 x Metodo de Euler dx = 5 x x = x + dx * h

Introduo ao Matlab 7.0

12- Simulink
Exerccios

Guide:

Introduo ao Matlab 7.0

Você também pode gostar