Вы находитесь на странице: 1из 78

APLICAO DE MATLAB NA

ENGENHARIA
Taisa Shimosakai de Lira
III SENES - Semana de Engenharia do Norte do Esprito Santo
De 15 a 19 de agosto de 2011

O que o MATLAB?
MATLAB (MATrix LABoratory):
Programa de computador especializado e otimizado
para clculos cientficos e de engenharia.
Vantagem: Ampla biblioteca de funes predefinidas.
Desvantagem: uma linguagem interpretada, por isso
pode ser mais lento que linguagens compiladas.

Toolboxes
So bibliotecas de rotinas MATLAB (m-files), aplicadas a
reas especficas tais como:
Otimizao
Estatstica
Redes Neurais
Identificao de Sistemas
Equaes Diferenciais Parciais
Ajuste de Curvas
Sistema de Controle

cd C:\Meus Documentos

Comandos Bsicos
>>who:: Lista as variveis
>>whos: Lista e especifica as variveis
>>clc:Limpa
Limpa a janela de comandos
>>clf:Limpa
Limpa figura atual
>>clear: Deleta variveis do workspace MATLAB
Ajuda do MATLAB documentao
>>help:Ajuda
>>close all:Fecha
Fecha as janelas de figuras abertas

Comentrios, pontuao e formas de


interromper a execuo de um comando
[;] - no final do comando executa e no exibe resultado.
[,] - permite a execuo de dois comandos na mesma
linha, lembrando que eles so executados
seqencialmente.
[Crtl+C]
Crtl+C] - interrompe a execuo do comando, usado no
caso de travamento durante a execuo.
[ ] - retorna as linhas executadas anteriormente.
[%] - indica comentrio.
[...] - permite continuao de escrita do comando na linha
seguinte.

Variveis
 Matlab case sensitive (varivel A diferente de a)
 Caso no se fornea o nome da varivel de atribuio, o
Matlab cria uma varivel chamada ans (answer)
 Se a varivel j existe, o MATLAB armazena sempre a
ultima atribuio feita.
 DeveDeve-se evitar dar nomes s variveis usando nomes de
comandos internos do MATLAB.
 O nome da varivel deve comear por uma letra e no
deve conter caracteres especiais nem espao.
 As variveis podem ter at 31 caracteres.
caracteres.

Matemtica Elementar
Operao
Adio
Subtrao
Multiplicao
Diviso
Potenciao

Smbolo
+
*
ou\
/ ou
\
^

Exemplo
3 + 22
54.454.4
-16.5
3.14*6
7\
19.54/7 ou 7
\19.54
2^8

Hierarquia de Operaes
Precedncia

Operao

O contedo de todos os parnteses avaliado, a


partir dos parnteses mais internos em direo
aos mais externos.

Todos os expoentes so avaliados, da esquerda


para direita.

Todas as multiplicaes e divises so


avaliadas, da esquerda para direita.

Todas as somas e subtraes so avaliadas,


avaliadas, da
esquerda para direita.

Funes Matemticas
Funo

Descrio

sen

Seno

cos

CoCo-seno

exp

Exponencial

log

Logaritmo natural

log10

Logaritmo na base 10

sqrt

Raiz quadrada

abs

Valor absoluto ou mdulo

>>help elfun

Funes Estatsticas
Funo

Descrio

mean

Mdia

median

Mediana

max

Valor mximo

min

Valor mnimo

std

DesvioDesvio-padro

var

Varincia

sum

Soma dos elementos

Vetores: como criar?


Opo 1: >> C=[1 2 3 4 5]
ou >> C=[1 ,2 ,3 ,4 ,5]
ou >> C=[1 ;2 ;3 ;4 ;5]
Opo 2: Usando os comandos:
logspace:
logspace: vetor com espaamento logartmico.
Linspace:
Linspace: vetor linearmente espaado.
>>C=linspace(1,5,5)
linspace(valor
linspace(valor inicial, valor final, nmero de pontos)

Vetores: como criar?


Opo 3: >>C=1:1:5 ou >>C=1:5
Valor inicial: incremento: valor final
Opo 4: Usando estrutura for
>>For i=1:5
>>C(i)=i;
>>end

Vetores: manipulao
Operaes Bsicas: +, - ,* ,/, ^
Operaes Ponto a Ponto: ./, .*, .^
Transposio: C
Operaes elementares: log exp sin cos tan etc...

Vetores: manipulao
>> a=[ 1 2 3]; b=[ 4 5 6];
>> 2*a-1
ans =
1
3
5
>> a*b
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> a.*b
ans = 4 10 18
>>a*b
ans = 32

Matrizes: como criar?


Opo 1: a partir de vetores
>>C=[ 2 3];
>>D=[ 3 4];
>>M=[C;D]
Opo 2: >>M= [ 2 3; 3 4] ou >>M=[ 2,3; 3, 4];

Matrizes: como criar?


Opo 3: usando estrutura for
>>for i=1:2
>>for j=1:2
>>M(i,j)=i+j;
>>end
>>end

Matrizes: como criar?


Opo 4: Matrizes padro
>>eye(2)
ans =
1
0
0
1
>>ones(2,3)
ans =
1
1
1
1
1
1

Outras: zeros, rand, randn

Matrizes: manipulao
Alm das operaes j citadas anteriormente para
vetores:
Produto Matricial: A*B
Inversa: inv(A)
Determinante: det(A)
Valores caractersticos: eig(A)

Matrizes: acesso s componentes


M(linha
M(linha,
linha, coluna)
coluna)

M(1,1)M(1,1)- retorna elemento M11

Caso no seja especificado a coluna da matriz, o que


no necessrio no caso de vetores, ele considera o
vetor coluna 1.

Matrizes: acesso s componentes


>>A=[ 1 2; 3 4]
>>A(2)
ans = 3
PodePode-se tambm usar incrementos:
>>C=[ 1 2 3; 4 5 6];
>>C(1:2,2)
ans = 2
5
>>C(:,3)
ans = 3
6

Matrizes: Busca
>>A =[1 2 3;4 5 6; 7 8 9];
>>[i,j] = find(A>5)
i = 3
3
2
3
j = 1
2
3
3

Matrizes: Busca
>>A =[1 2 3;4 5 6; 7 8 9];
>>k = find(A>5)
k = 3
6
8
9
>>A(k)
ans = 7
8
6
9

Dimenses: Vetores e Matrizes


n=length(A): Dimenso do vetor
s=size(A): Retorna um vetor, sendo o 1
1 elemento
o n
n linhas e 2
2 elemento o n
n de colunas
[r,c]=size(A): r o n
n linhas, c o n
n colunas
r=size(A,1):Retorna
Retorna o n
n de linhas
c=size(A,2):Retorna
Retorna o n
n de colunas

Estruturas Multidimensionais
>>A = zeros(2,2,2)
A(:,:,1) = 0 0
0 0
A(:,:,2) = 0 0
0 0

Operadores Relacionais
Operador
<
<=
>
>=
==
~=

Descrio
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a
Diferente de

Operadores Lgicos
Operador
&
|
~

Descrio
E
Ou
No

Controle de Fluxo
Loops for:: limita o nmero de vezes que os
comandos so executados
for i=1:10
A(i)=i;
end
A= 1 2 3 4 5 6 7 8 9 10

Controle de Fluxo
Loops while:: permite a execuo at que um
critrio seja satisfeito
it=0;
while it<10
it=it+1;
A(it)=it;
end
A= 1 2 3 4 5 6 7 8 9 10

Controle de Fluxo
Loops if-else-end:: a sequencia de comamdos
tm que ser executados condicionalmente
Forma mais simples:
if expresso
comando
end
Duas alternativas:
if expresso
comandos executados se verdadeira
else
comandos executados se falsa
end

Controle de Fluxo
Loops if-else-end:
Trs ou mais alternativas:
if expresso 1
comandos executados se expresso 1 for
verdadeira
elseif expresso 2
comandos executados se expresso 2 for
verdadeira
else
comandos executados se nenhuma outra
expresso for verdadeira
end

Arquivos M de funes (functions)


Arquivo.m de funes versus arquivo.m de comandos:
A principal diferena que o arquivo.m de funo se comunica
com o Matlab apenas por meio das variveis de entrada e sada
que ela cria. As variveis intermedirias definidas internamente
pela funo no aparecem nem interage com o espao de
trabalho do Matlab.

Comandos [soma.m]

Funo [soma.m]

A=2; B=3;
Soma=A+B
Execuo:
>>soma

function S=soma(A,B)
S=A+B;
Execuo:
>>soma(2,3)

functions
REGRAS E PROPRIEDADES:
1) O nome da funo tem que ser idntico ao nome do
arquivo.
2) O nome no deve ter mais do que 31 caracteres.
3) No usar: , acentos ou -.
4) Deve comear com uma letra.
5) Os arquivos M de funes no so sensveis a maisculas ou
minsculas.
6) A primeira linha do arquivo chamada linha de declarao e
deve conter a palavra function, seguida pela sintaxe da
chamada da funo.

functions
VARIVEIS LOCAIS E GLOBAIS:
A execuo de um arquivo M de comandos,
comandos, l as variveis
existentes no workspace e salva todas as variveis criadas
durante sua execuo.
A execuo de um arquivo M de funo (function), NO l
as variveis existentes no workspace, l apenas as
variveis dadas na entrada do programa ou aquelas
definidas internamente.

functions
A function pode at exibir na tela resultados se no
usarmos [;
[;] no final da linha, mas ela s retorna os
argumentos assinados em sua sada e no salva as
demais variveis no workspace.
Para que uma function leia uma varivel definida
externamente, necessrio definir essa varivel como
global em todos os arquivos em que ela utilizada, ou
passar como parmetro de entrada.
entrada.

functions
Exemplo:
F(x)= x2 ax+2, onde a fornecido pelo usurio.
SubSub-rotina:
rotina:
Function y=f(x)
global a
Y= x2 ax+2;

SubSub-rotina:
Function y=f(x,a)
Y= x2 ax+2;

Programa principal:
global a
s=fsolve(f,0);

Programa principal:
s=fsolve(f,0,[],a);

Administrao de Arquivos
Arquivos de dados do MATLAB:
Salvar:
>>save(nome,var1,var2,var3)
nome.m ou nome.mat
Carregar:
>>load (nome,var1,var2,var3)

Arquivos de Excel: xlsread e xlswrite

Grficos
Bidimensionais:
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
plot(x,y,or)
xlabel('-\pi \leq \Theta \leq \pi')
ylabel('sin(\Theta)')
title('Plot of sin(\Theta)')

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
Plot of sin()
1

-0.8

-3

-2

-1

0.8
3
0.6

0.4
0.2
sin()

-1
-4

0
-0.2
-0.4
-0.6
-0.8
-1
-4

-3

-2

-1

0
-

1
seno
co-seno

0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4

-3

-2

-1

0
-

x = -pi:.1:pi;
y = sin(x);
Z = cos(x);
figure(2)
plot(x,y,og,x,z,r)
xlabel('-\pi \leq \Theta \leq \pi')
legend(seno,co-seno)

Smbolo

Cor

Smbolo

Marcador

Smbolo

Tipo de linha

Azul

Ponto

Linha contnua

Verde

Crculo

Linha pontilhada

Vermelho

Cruz

-.

Traos e pontos

Ciano

Sinal de positivo

--

Linha tracejada

Magenta

Asterisco

Amarelo

Quadrado

Preto

Losango

Branco

Triangulo para baixo

Triangulo para cima

Triangulo para cima

<

Triangulo para esquerda

>

Triangulo para direita

Pentagrama

Hexagrama

subplot(2,2,1)
plot(...)
subplot(2,2,2)
plot(...)
subplot(2,2,3)
plot(...)
subplot(2,2,4)
plot(...)

subplot(2,2,1:2)
plot(...)
subplot(2,2,3)
plot(...)
subplot(2,2,4)
plot(...)

Funo

Descrio

loglog

Grfico loglog-log

semilogx

Grfico loglog-normal no eixo x

semilogy

Grfico loglog-normal no eixo x

polar

Grfico em coordenadas polares

plotyy

Grfico com duas escalas diferentes na vertical

bar

Grfico de barras

barh

Grfico de barras horizontais

bar3

Grfico de barras tridimensionais

bar3h

Grfico de barras tridimensionais horizontais

hist

Histograma

pareto

Grfico de Pareto

pie

Grfico em forma de pizza

xlim

Limites no eixo x

ylim

Limites no eixo y

grid

Exibe as linhas de grade

box

Exibe caixa em torno do grfico

Grficos
Tridimensionais:
Funo

Descrio

plot3

Traa linhas e pontos no espao


tridimensional

mesh

Superfcie na forma de uma rede

meshc

Superfcie na forma de uma rede com curvas


de nvel por baixo

meshz

Superfcie na forma de uma rede com plano


no nvel zero

surf

Grfico de superfcie

surfc

Grfico de superfciecom curvas de nvel por


baixo

surfc

plot3

meshz

Exerccio 1
Exemplo 1:
Modelos simples - o tanque de nvel
A

FE

Considerando constantes a vazo de alimentao FE, a


densidade e a temperatura T, e que o sistema est sujeito
condio inicial:

h(t = 0 ) = h0

(1)

Modelos simples - o tanque de nvel


pode-se escrever o balano de massa do sistema

dm (t )
= (FE F )
dt

(2)

dm (t )
dh (t )
= A
dt
dt

(3)

dh (t )
1
(FE F )
=
dt
A

(4)

Ainda,

e, portanto,

Modelos simples - o tanque de nvel


Freqentemente, considera-se a vazo de sada do tanque
proporcional

altura

da

coluna

de

lquido

inversamente

proporcional a uma resistncia ao escoamento (R):

h
F =
R

(5)

dh (t ) 1
h
=
FE
dt
A
R

(6)

Logo,

Modelos simples - o tanque de nvel


Este modelo simples de um tanque de nvel, sem balano de
energia, possui uma soluo analtica:
t

RA

h(t ) = RFE 1 e

(7)

Para simular este modelo, basta escolher os valores das


constantes R, A e FE, das condies iniciais h0 e t0.
A simulao da soluo analtica do modelo do tanque de
nvel mostrada a seguir.

Faa: R = 1; A = 2; FE = 10

Interpolao
Interpolao unidimensional:
YI = INTERP1(X,Y,XI,METHOD)
The default is linear interpolation. Use an empty matrix [] to
specify the default. Available methods are:
'nearest' - nearest neighbor interpolation
'linear'
- linear interpolation (default)
'spline'
- piecewise cubic spline interpolation (SPLINE)
'pchip'
- shape-preserving piecewise cubic interpolation
'cubic'
- same as 'pchip'
'v5cubic' - the cubic interpolation from MATLAB 5, which
does not extrapolate and uses 'spline' if X is not equally

Interpolao
Interpolao bidimensional:
ZI = INTERP2(X,Y,Z,XI,YI,METHOD)
The default is linear interpolation. Use an empty matrix [] to
specify the default. Available methods are:
'nearest' - nearest neighbor interpolation
'linear' - bilinear interpolation
'cubic'
- bicubic interpolation
'spline' - spline interpolation

Polinmios
Razes:
p(x) = x4-12x3+25x+116
>>p = [1 -12 0 25 116];
>>r = roots(p)
r = 11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i

Polinmios
Mutiplicao:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>c = conv(a,b)
c =
1
6
20

50

75

c(x) = x6+6x5+20x4+50x3+75x2+84x+64

84

64

Polinmios
Adio:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>d = a + b
d =
2
6
12
a(x) = 2x3+6x2+12x+20

20

Polinmios
Diviso:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>[q,r] =deconv(a,b)
q = 1
r = 0
-2
-6
-12
r(x) = 1 e q(x) = -2x2-6x-12

Polinmios
Derivadas:
p(x) = x4-12x3+25x+116
>>p = [1 -12 0 25 116];
>>h = polyder(p)
h = 4
-36
0
25
h(x) = 4x3-36x2+25

Polinmios
Integrais:
h(x) = 4x3-36x2+25
>>h = [4 -36 0 25];
>>r = polyint(h,116)
r = = 1
-12
0
r(x) = x4-12x3+25x+116

25

116

Polinmios
Clculo do polinmio num intervalo:
p(x) = x3+4x2-7x-10 x =[-1;3]
>>p
>>x
>>v
v =

= [1 4 -7 -10];
= linspace(-1,3,5);
= polyval(p,x)
0
-10
-12
0

32

Polinmios
Ajuste de curvas:
>>x = [0 0.1 0.2 0.3 0.4 0.5];
>>y = [-0.447 1.978 3.28 6.16 7.08 7.34];
>>p = polyfit(x,y,2)
p = -22.0589
27.3497
-0.5835
P(x) = -22.0589x2+27.3497x-0.5835

Integrao Numrica
F = @(x)1./(x.^3-2*x-5);
Q = quad(F,0,2)
Q = -0.4605

1
3

x 2x 5

dx
function y = myfun(x)
y = 1./(x.^3-2*x-5);
Q = quad(@myfun,0,2)
Q = -0.4605
Ou: quadl

Diferenciao Numrica

dy y

dx x

dydx = diff(y)./diff(x)

Sistema de Equaes Algbricas


No Lineares

[x,fval] = fsolve(fun,x0)

Equaes Diferenciais
EDOs PVI:
ODE23:: RungeRunge-Kutta de 2 e 3 ordens.
ODE23s:: RungeRunge-Kutta de 2 e 3 ordens para
problemas com rigidez numrica (stiff ).
ODE45::RungeRunge-Kutta de 4 e 5 ordens.
[T,Y] = solver(odefun,tspan,y0)

Exerccio 2
Tanque de aquecimento
Th

FE ,TE

Th

F,T

Considerando constantes a vazo de alimentao FE, a


temperatura Th, o coeficiente global de transferncia de calor U e
as propriedades do fluido e Cp e que o sistema est sujeito s
condies iniciais:

h(t = 0) = h0

T (t = 0) = T0

Modelos simples - tanque de aquecimento


Como no caso anterior, o balano de massa pode ser escrito
como :

dh(t ) 1
h
= FE
dt
A
R

(6)

O balano de energia escrito como:

FE

1 F(E TE ) UTh
dT
U

=
+
T
+

dt
h A
C p
A

C
p


Condies iniciais:
T0 = Th
h0 = 5/A

Constantes do Modelo:
R = 1 h/m2
A = 2 m2
FE = 10 m3/h
Cp = 0.75 kJ/(kg.K)

(11) (8)

Ro = 1000 kg/m3
U = 150 kJ/(m2 . s . K)
TE = 530 K
Th = 540 K

Вам также может понравиться