Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso Matlab
Curso Matlab
Curso Matlab
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 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 + * / ^ ()
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
2-Criao de Matrizes
Criando um vetor:
x= 0:0.1:1 x= 1:10 x= linspace(0,1,11); (operador :) (operador ;)
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.
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 aprox. p/ inteiro mais prximo aprox para baixo aprox para cima resto da diviso retorna o sinal
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)
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)=[] - elimina a primeira linha - elimina a terceira coluna
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)
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')
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
12- Simulink
Sinal senoidal
Sine Wave
Ramp
Sinal rampa
Sinal degrau
Step
Random Number
Nmero aleatrio
Clock
Tempo
12- Simulink
1
Multiplexador
Funo de Transferncia
Demultiplexador
min MinMax
Mnimo e mximo
Operador Lgico
Manual Switch
Switch manual
12- Simulink
|u| Abs
Valor Absoluto
Sign
Funo Sinal
Funo Matemtica
du/dt Derivative
Derivada
Math Function
12- Simulink
simin From Workspace
Saturador
Saturation
simout To Workspace
f(u) Fcn
Funo
Ground
Terra
12- Simulink
1 In1
Entrada
[A] From
Vem de
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 simout To Workspace Saturation1 Scope
12- Simulink
Exemplos
Malha Aberta
1 Position
1 Referncia
Fora
Position
Plant
Scope
1 s
v el
1 s
pos
Integrator
Integrator1
Positions
b Damper k Spring
12- Simulink
Demos Start Demos Simulink Simulink Control Design Water Tank
10 Desired Water Level
Error Out1 Input Output
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
0.2 Gain3
du/dt Derivative
-Ka/A
12- Simulink
Exerccios Sistema Massa Mola
Equaes bsicas da Fsica:
dv d 2 x a= = dt dt 2 dx v= = adt dt
m
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
12- Simulink
Exerccios Plotar:
Energia Cintica e Potencial versus Deslocamento Energia Cintica e Potencial versus Velocidade Velocidade versus Deslocamento
12- Simulink
Exerccios Diagrama:
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
v=
1 (e v )dt RC
12- Simulink
Exerccios Plotar:
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: