Professional Documents
Culture Documents
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
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
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
3.1415926...
eps
2.220446049250313 e-016
realmin
realmax
1.797693134862316 e+308
Inf
infinito
NaN
2-Criao de Matrizes
Operadores
Operador
+
*
/
^
()
Descrio
Soma
Subtrao
Multiplicao
Diviso
Potnca
Precedncia
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
(operador :)
x= linspace(0,1,11);
(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
2-Criao de Matrizes
Matrizes elementares:
zeros
ones
eye
rand Ex: n=round(5*rand(1,6))
2-Criao de Matrizes
Outras funes teis:
round
floor
ceil
rem
sign
3-Formatos Numricos
help format
format
format
format
format
format
format
format
4-Manipulao de Matrizes
(i- linha , j- coluna)
Indexao: (i,j)
a=[1:10]
c=a(1:2:9)
d=3*rand(3,4)
a2=a(2)
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)
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)=[]
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;
4-Manipulao de Matrizes
Funes de Informao:
size (A)
length (A)
find(exp) retorna os ndices dos
elementos que satisfazem a
condio exp
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)
4-Manipulao de Matrizes
Soluo de sistemas lineares (A*X=B):
X=inv(A)*B
Ex: 4x1+5x2=9
7x1+x2=10
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]
r= roots(p)
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)
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
5-Polinmios
polyder derivada de um polinmio
polyint integral analtica de um
polinmio
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
6-Grficos
6-Grficos
Ex2:
>>
>>
>>
>>
>>
>>
y3=y+y2;
y4=y-y2;
plot(x,y3,'k',x,y2,'r--');
xlabel('Amplitude')
ylabel('Amplitude')
title('Exemplo 2')
6-Grficos
6-Grficos
Edio na janela grfica:
zoom
ginput(n) n=nmero de pontos
Texto
Propriedades dos eixos
Legendas
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)
6-Grficos
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
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
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)
8- Outras funes de
variveis simblicas:
simple
Ex: syms t
z=cos(t)^2+sin(t)^2;
y=simple(z)
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)
9-Programao no Matlab
Arquivos *.m (m-files)
File / New / m-file
>> edit
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.
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
9-Programao no Matlab
O cdigo das funes do Matlab pode
ser visualizado:
edit nome_da_funo
Ex: edit poly
edit roots
edit quad
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
9-Programao no Matlab
Ex WHILE:
while I<m
<executa expresso>
end
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.
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;
9-Programao no Matlab
Ex: Funo para traar o grfico do
seno e cosseno de x, num intervalo
especificado:
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.
%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')
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.
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:
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.
12- Simulink
Algoritmo em Diagramas de Blocos
1
Sinal constante
Produto
Product
Constant
Ganho
In1
Out1
Subsistema
Subsystem
Gain
Somador
Scope
Osciloscpio
12- Simulink
Sinal senoidal
Sinal rampa
Ramp
Sine Wave
Sinal degrau
Step
Clock
Random
Number
Tempo
Nmero aleatrio
12- Simulink
1
Multiplexador
s+1
Transfer Fcn
Demultiplexador
min
Funo de
Transferncia
Mnimo e mximo
MinMax
AND
Logical
Operator
Switch manual
Operador Lgico
Manual Switch
12- Simulink
|u|
Valor Absoluto
Funo Sinal
Abs
Sign
Funo Matemtica
du/dt
Derivative
Math
Function
Derivada
12- Simulink
simin
From
Workspace
simout
To Workspace
Ground
Exportar da rea e
trabalho
Terra
Saturador
Saturation
f(u)
Funo
Fcn
mlfile
M-file
S-Function
12- Simulink
Entrada
1
In1
Vem de
[A]
From
1
Out1
Sada
Display
Display
[A]
Goto
Ir para
1
z
Unit Delay
Atraso Unitrio
12- Simulink
Configurando os parmetros da
Simulao
12- Simulink
Exemplos
Sine Wave
1
s
Integrator
Scope
12- Simulink
Exemplos
simout1
To Workspace1
3*u(1)+5
Clock
Fcn
Saturation1
simout
To Workspace
Scope
12- Simulink
Exemplos
Malha Aberta
1
Position
1
Referncia
Fora
Position
Plant
Scope
1
Fora
1
s
1/m
Mass
Integrator
b
Damper
k
Spring
v el
1
s
pos
Integrator1
Positions
12- Simulink
Demos
Start Demos Simulink Simulink
Control Design Water Tank
10
Desired
Water Level
Error
Out1
Input
Output
Scope
Controller
Water-Tank System
12- Simulink
Demos
Controller
3
Gain1
1
Error
2
Gain2
0.2
Gain3
1
s
Integrator
1
Add
Out1
Input
1
s
-K-
b/A
-K-
du/dt
a/A
Derivative
sqrt
Square
Root
1
Output
12- Simulink
Exerccios
Sistema Massa Mola
Acelerao:
Velocidade:
dv d 2 x
a=
=
dt dt 2
dx
v=
= adt
dt
Deslocamento:
Fora: F=-kx=ma
F
m
x = vdt
kx = m
d 2x
dt 2
a=
d 2x
dt 2
k
x
m
Ep =
1 2
kx
2
Ec =
1 2
mv
2
12- Simulink
Exerccios
Plotar:
9 Energia Cintica e Potencial versus Deslocamento
9 Energia Cintica e Potencial versus Velocidade
9 Velocidade versus Deslocamento
12- Simulink
Exerccios
Diagrama:
12- Simulink
Exerccios
Circuito RC Srie
Lei de Kirchoff:
Equaes:
e vR v = 0
vR = Ri(t )
e RC
i (t ) = C
dv
v = 0
dt
dv
dt
dv
1
1
v=
e
+
dt RC
RC
dv
+v =5
dt
onde : v(0) = 10
v=
1
(e v )dt
RC
12- Simulink
Exerccios
Plotar:
9 V(t) versus t
12- Simulink
Exerccios
Diagrama:
12- Simulink
Exerccios
Simulao:
x = 5 x
Metodo de Euler
dx = 5 x
x = x + dx * h
12- Simulink
Exerccios
Guide: