Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Matlab
Apostila Matlab
DE
MATLAB 6.5
Prof. Silmara Alexandra da Silva Vicente
silmara@mackenzie.com.br
Janeiro/2003
6. Anlise Numrica
6.1 Otimizao
6.2 Integrao Numrica
6.3 Soluo de Equaes Diferenciais
Curso Introdutrio de MATLAB 6.5
7. Polinmios
7.1 Razes
7.2 Multiplicao
7.3 Adio
7.4 Diviso
7.5 Clculo de Polinmios
7.6 Derivada de Polinmios
8. Grficos
8.1 Grficos Bidimensionais
8.2 Estilos de Linhas e Smbolos
8.3 Nmeros Complexos
8.4 Escala Logartmica, Coordenada Polar e Grfico de Barras
8.5 Grficos Tridimensionais
8.6 Anotaes no Grfico
9. Simulink
9.1 Introduo ao Simulink
9.2 Exemplos
10. Referncias Bibliogrficas
11. Anexos
1 INTRODUO
1.1. HISTRIA DO MATLAB
- Desenvolvido no final da dcada de 70 na Universidade do Novo Mxico e na Universidade de
Stanford, onde a primeira verso foi lanada em 1984;
- destinado aos cursos de teoria matricial, lgebra linear e anlise numrica;
- Atualmente esse software est to desenvolvido que sua capacidade se estende muito alm do
"Laboratrio de Matrizes" traduo para a palavra MATLAB;
- MATLAB um software interativo e uma linguagem de programao aplicada tanto para
computao tcnica como cientfica em geral;
- Ele integra a capacidade de fazer clculos, visualizao grfica e programao em um ambiente
fcil de usar. O elemento bsico uma matriz e no requer dimensionamento priori. Isso
permite solucionar muitos problemas numricos em uma frao de tempo menor do que seria
necessrio para escrever um programa em uma linguagem como FORTRAN, Basic ou C;
- A forma de expressar a soluo de problemas no MATLAB quase a mesma na qual eles so
escritos matematicamente;
- A matemtica a linguagem comum de grande parte das cincias e da engenharia. As matrizes,
equaes diferenciais, conjuntos de dados, grficos e diagramas so os blocos bsicos tanto da
matemtica aplicada quanto do MATLAB. Sendo essa base matemtica que torna o MATLAB
acessvel e poderoso;
Alguns exemplos das muitas reas onde o MATLAB tem sido utilizado:
- J existem mais de 500.000 usurios ao redor do mundo, no Brasil o MATLAB tem estado
presente nas Universidades e Faculdades de primeira linha bem como nos departamentos de
engenharia e desenvolvimento das principais empresas e instituies do pas: Companhia Vale do
Rio Doce, Embraer, Renault do Brasil, Motorola do Brasil, Petrobrs, BankBoston, Banco do
Brasil, Banco Central do Brasil e outros.
- Em todos esses casos e em milhares de outros, o fundamento matemtico do MATLAB torna-o
til em locais e aplicaes muito alm do que se pode imaginar.
Ou menu: iniciar/programas/Matlab6.5/Matlab6.5
1. Comand Window:
2. Workspace:
a rea na qual so exibidas todas as variveis definidas na rea de trabalho;
Essa janela possui quatro colunas indicando o nome, dimenso, nmero de bytes e
a classe de cada varivel;
As variveis podem ser editadas e visualizadas nessa prpria janela, basta dar um
click-duplo para edit-las;
H um menu flutuante que possvel:
1.
2.
3.
4.
5.
4. Command History
rea onde ficam armazenadas todas as instrues executadas no MATLAB;
Assim como qualquer outra linguagem de programao, o MATLAB tem regras a respeito do
nome de variveis. Os nomes devem ser palavras nicas, sem incluso de espaos e no devem
conter caracteres acentuados.
Mais especificamente, as regras para variveis so:
Regras para Nomes de Variveis
As variveis so sensveis a maisculas e
minsculas;
As variveis podem conter no mximo 31
caracteres; o que ultrapassar esse nmero
ignorado.
Os nomes das variveis devem comear com
uma letra, podem ser seguidos de um nmero,
letras ou sublinhados.
Comentrios e Exemplos
Itens, itens, itEns e ITEns. So todas variveis
diferentes.
oquevoceachadessenomedevariavel
O_que_voc_acha_deste_nome
X51483
Valor
Varivel-padro usada para resultados
3.14159265358979...
Infinito ex:1/0
No Numrico ex: 0/0
i=j=sqrt(-1) raiz imaginria
Menor nmero real utilizvel (2.2251e-308)
Maior nmero real utilizvel (1.7977e+308)
blocos
borrachas s
10
Size
1x1
1x1
1x1
1x1
Bytes Class
8 double array
8 double array
8 double array
8 double array
11
-99
1.602E-20
0.00001
6.06375e23
Adio
Subtrao
Multiplicao
Diviso
Potenciao
Exemplos:
>> a=6;
>>b=8;
>>c=a-b
-2
>>d=a-2*b
-10
>>e=2*a-2^b
-244
Para expresses utilizar sempre os parnteses:
>>resp=2*(a-3*b)^1/2-5*(2*a-sqrt(b))
-63.858
12
Se pelo menos um dos elementos da matriz no inteiro exato, existem vrias possibilidades de
formatar a sada. O formato "default", chamado de formato short, mostra aproximadamente 4
dgitos decimais ou usam notao cientfica. Por exemplo, a matriz:
>> x = [4/3 1.2345e-6]
mostrada , para cada formato usado, da seguinte maneira:
format short
1.3333 0.0000
4 dgitos decimais
format short e
1.3333e+000 1.2345e-006
format long
1.33333333333333 0.000000123450000
15 dgitos decimais
format long e
1.333333333333333e+000 1.234500000000000e-006
format hex
3ff5555555555555 3eb4b6231abfd271
Hexadecimal
format rat
4/3 1/810045
Frao
format bank
1.33 0.00
2 dgitos decimais
format +
++
Positivos + e negativos -
13
2) Vc decidiu comprar um carro novo por R$18500.00. O vendedor est oferecendo duas opes
de financiamento:
a) Uma taxa mensal de juros de 0.99% paga durante 4 anos;
b) Uma taxa mensal de juros de 1.30% paga durante 4 anos e um desconto de fbrica de
R$1800.00.
Pergunta-se: Qual das duas opes o melhor negcio? E qual a economia?
R (1 + R ) M
P = A
M
(1 + R ) 1
T=P.M
P=pagamento mensal
R=taxa de juros
M=nmero de meses
T=total a ser pago
14
2
5
8
3
6
9
As matrizes podem, tambm, ser introduzidas linha a linha, o que indicado para matrizes de
grande dimenso. Por exemplo:
>>A =
[1 2 3
456
7 8 9]
Com o comando load pode-se ler matrizes geradas pelo MATLAB, armazenadas em arquivos
binrios ou matrizes geradas por outros programas armazenadas em arquivos ASCII.
Nos exemplos anteriores, os valores dos elementos de um vetor so digitados um a um, isto s
fcil quando se tm poucos elementos, e o que se faz para inmeros elementos?
>> x=[0:0.1:1]*pi
x=
0
0.3142
0.6283
0.9425
1.2566
1.5708
1.8850
2.1991
2.5133
2.8274
3.1416
0.9425
1.2566
1.5708
1.8850
2.1991
>> x=linspace(0,pi,11)
x=
0
0.3142
0.6283
15
1.4142
23.0400
Um elemento individual da matriz pode ser reverenciado com ndice entre parnteses.
Continuando o exemplo,
>> x(6) = abs(x(1))
o que produz:
x=
-1.3000
1.4142
23.0400
1.3000
Note que a dimenso do vetor x aumentada automaticamente para acomodar o novo elemento e
que os elementos do intervalo indefinido so estabelecidos como zero.
Grandes matrizes podem ser construdas a partir de pequenas matrizes. Por exemplo, pode-se
anexar outra linha na matriz A usando:
>> r= [ 10 11 12];
>> A= [A;r]
16
2
5
8
11
3
6
9
13
Note que o vetor r no foi listado porque ao seu final foi acrescentado ";".
Pequenas, matrizes podem ser extradas de grandes matrizes usando ":". Por exemplo,
>> A = A(1:3,:);
seleciona as trs primeiras linhas e todas as colunas da matriz A atual, modificando-a para sua
forma original.
1.10. INDEXAO DE ELEMENTOS DE MATRIZES
O MATLAB utiliza a forma tradicional para indexar matrizes:
a i , j = a (i, j) onde i representa nmero de linhas e j nmero de colunas
Exemplo:
>>A=[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15]
1 2 3 4 5
A = 6 7 8 9 10
11 12 13 14 15
>>A(2,4)
ans=
>>A(11)
ans= 9
(1)1 (4)2 (7)3 (10)4 (13)5
A = (2)6 (5)7 (8)8 (11)9 (14)10
(3)11 (6)12 (9)13 (12)14 (15)15
17
4 -7
8
-9]
4 -7
-5 8
6 -9]
>> C=1:9
C=
1
18
-7
8
9
1
1
>> size(B)
ans =
5
>> length(B)
ans =
5
1.12. MATRIZES ESPECIAIS
O MATLAB dispe de algumas matrizes especiais, onde algumas delas so de uso geral,
enquanto outras so matrizes voltadas para aplicaes especializadas. As matrizes de uso geral
incluem:
Find => retorna os ndices de uma matriz, por exemplo, dos elementos no nulos.
>> B=[B; 1 1 1; 1 2 3]
B=
-1 4
2 -5
3 6
1 1
1 2
-7
8
9
1
3
>> c=find(B<0)
c=
1
7
11
zeros => retorna uma matriz nula na ordem que o usurio especificar:
>> zeros(2,3)
ans =
19
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
rand => retorna uma matriz de nmeros aleatrios uniformemente distribudos entre 0 e 1.
>> rand(3)
ans =
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
0.4565
0.0185
0.8214
>> rand(2,3)
ans =
0.4447
0.6154
0.7919
0.9218
0.7382
0.1763
randn => retorna uma matriz de nmeros aleatrios que seguem a distribuio normal, com
mdia zero e varincia igual a 1.
20
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
>> eye(3,4)
ans =
1
0
0
0
1
0
Funes
Sintaxe
det(A)
diag(A)
inv(A)
reshape(A, m,n)
numel(A)
ndims(A)
tril(A)
triu(A)
21
Matemtica elementar;
Funes especiais;
Matrizes elementares;
Matrizes especiais;
Decomposio de matrizes;
Polinmios;
Soluo de equaes diferenciais;
Equaes no-lineares e otimizao;
Integrao numrica;
Alguns exemplos:
>>x=0.5
>>sin(x)
>>cos(x)
>>sqrt(x)
>>exp(x)
1.15. AS FACILIDADES DO HELP (AJUDA)
O MATLAB possui um comando de ajuda (help) que fornece informaes sobre a maior parte
dos tpicos.
Digitando:
Curso Introdutrio de MATLAB 6.5
22
23
24
See also SEMILOGX, SEMILOGY, LOGLOG, PLOTYY, GRID, CLF, CLC, TITLE,
XLABEL, YLABEL, AXIS, AXES, HOLD, COLORDEF, LEGEND, SUBPLOT, STEM.
Overloaded methods
help cfit/plot.m
help cgrules/Plot.m
help xregtwostage/plot.m
help xregtransient/plot.m
help xregmodel/plot.m
help localmod/plot.m
help sweepset/plot.m
help mdevtestplan/plot.m
help cgdatasetnode/plot.m
help cgdatadisplay/plot.m
help idmodel/plot.m
help iddata/plot.m
help ntree/plot.m
help dtree/plot.m
help wvtree/plot.m
help rwvtree/plot.m
help edwttree/plot.m
Finalmente, para obter informaes sobre um comando especfico, por exemplo title, digite:
>> help title
e informaes mais detalhadas sobre este comando sero exibidas:
>> help title
TITLE Graph title.
TITLE('text') adds text at the top of the current axis.
TITLE('text','Property1',PropertyValue1,'Property2',PropertyValue2,...)
sets the values of the specified properties of the title.
H = TITLE(...) returns the handle to the text object used as the title.
See also XLABEL, YLABEL, ZLABEL, TEXT.
Note que no exemplo mostrado para adicionar o ttulo em um grfico, TITLE (text) est escrito
em letras maisculas somente para destacar. Deve-se lembrar que todos os comandos do
MATLAB devem ser escritos em letras minsculas, portanto, para adicionar o texto "Ttulo do
Grfico" em um grfico, digite:
>> title (Ttulo do Grfico)
25
Adio;
Subtrao;
Multiplicao;
Diviso direita;
Diviso esquerda;
Potenciao;
Transposta;
B=
1
4
7
1
2
3
2
5
8
4
5
6
3
6
0
7
8
0
e
>> x = [-1 O 2]'
produz|:
x=
-1
0
2
Se Z uma matriz complexa, Z ser o conjugado complexo composto. Para obter simplesmente
a transposta de Z deve-se usar Z., como mostra o exemplo:
26
2.0000 + 6.0000i
4.0000 + 8.0000i
1.0000 - 5.0000i
2.0000 - 6.0000i
3.0000 - 7.0000i
4.0000 - 8.0000i
1.0000 + 5.0000i
2.0000 + 6.0000i
3.0000 + 7.0000i
4.0000 + 8.0000i
Z1 =
Z2 =
6
10
14
10
14
0
27
l
0
-2
-l
0
2
2
1
-1
0
0
0
-4
-2
2
>> y*x
Ans =
O produto de uma matriz por um vetor tambm pode ser executado, por exemplo, A e x:
>> b = A*x
que resulta em:
b=
5
8
-7
Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer matriz.
>> pi*x
28
2
6
10
3 4
7 8
11 12
>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3]
h=
1
2
3
1
2
3
1
2
3
1
2
3
>> g.*h
ans =
1
10
27
2 3 4
12 14 16
30 33 36
2.4 DIVISO
Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A uma matriz
quadrada no singular, ento A\B e A/B correspondem respectivamente a inv(A)*B e A*inv(B),
por exemplo:
>>A=[1 2; 3 4]
>>B=[5 6; 7 8]
29
5.0000
>> g./h
ans =
1.0000
2.5000
3.0000
2.0000
3.0000
3.3333
3.0000
3.5000
3.6667
4.0000
4.0000
4.0000
2.5 POTENCIAO
A expresso A^p eleva A p-sima potncia e definida se A matriz quadrada e p um escalar.
Se p um inteiro maior do que um, a potenciao computada como mltiplas multiplicaes.
Por exemplo:
>> A^3
ans =
279
684
738
360
873
900
306
684
441
>> g.^2
ans =
1 4 9 16
25 36 49 64
81 100 121 144
30
4
64
1024
8
16
128
256
2048
4096
2
36
1000
3
4
49
64
1331
1728
>> g.^h
ans =
1
25
729
31
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a
Diferente de
Exemplos:
>> A=1:9
>> B=9-A
A=1 2 3 4 5 6 7 8 9
B=8 7 6 5 4 3 2 1 0
>> vf=A>4
vf =
0 0 0
>> vf1=(A==B)
vf1 = 0 0 0
E
Ou
No
32
Descrio
Mostra os resultados sem identificar o nome das variveis
Controla a exibio dos comandos dos arquivos M na janela de comandos
Solicita ao usurio que fornea um dado de entrada
Suspende a execuo at que o usurio pressione alguma tecla
Suspende a execuo por n segundos
Suspende a execuo at que o usurio pressione uma tecla ou um boto do
mouse.
Exemplos de arquivos M
33
4. CONTROLE DE FLUXO
Os comandos que controlam o fluxo especificam a ordem em que a computao feita. No
MATLAB estes comandos so semelhantes aos usados na linguagem C, mas com uma estrutura
diferente (mais simples).
4.1. LAO FOR
O lao for o controlador de fluxo mais simples e usado na programao MATLAB.
Estrutura Geral
for x = <valor inicial>:<incremento>:<valor final>
comandos
end
Os comandos entre as instrues for e end so executados uma vez para cada coluna do
vetor. Por exemplo:
>> for i=1:5,
X(i)=i^2;
end
O lao for possibilita que uma srie de comandos seja repetida por um nmero de vezes fixo e
pr-definido. O comando end usado como limite inferior do corpo do lao.
comum construes com conjuntos de laos for aplicados a implementaes de matrizes:
for i= 1:8
for j= 1:8,
A(i,j)= i+j;
B(i,j)= i-j;
end
end
C=A +B;
Exemplos:
1) Calcular a tabuada do nmero 17.
for n=0:10
tab(n+1)=17*n;
end
Curso Introdutrio de MATLAB 6.5
34
35
1 3 5 7
+ + + + ....
2 2 2 2
%Clculo da Srie
n=0;
x=1;
serie=0;
while n<50
serie=serie+x/2;
x=x+2;
n=n+1;
end
disp(serie)
1250
No lao while apenas a condio testada. Por exemplo, na expresso:
a = l; b = 15;
while a<b,
clc
a = a+l
b = b-l
pause(l)
end
disp(fim do loop)
a condio a<b testada. Se ela for verdadeira o corpo do lao, ser executado.
Ento a condio testada novamente, e se verdadeira o corpo ser executado novamente.
Quando o teste se tornar falso o lao terminar, e a execuo continuar no comando que segue o
lao aps o end.
4.3. ESTRUTURA IF-ELSE-END
Em diversas situaes, as seqncias de comandos tm de ser executadas condicionalmente, com
base em um teste relacional. Essa lgica implementada por meio de uma das diversas formas da
estrutura if-else-end. A mais simples :
if expresso
comandos
end
36
37
Pontuao
Superior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14.
Superior a 6 em pelo menos uma das provas ou soma dos pontos superior a 9.
Nenhum dos casos acima.
Em cada prova a pontuao um valor real de 0 a 10. Desenvolva um programa que receba 2
(duas) notas de um funcionrio e mostre como resposta o nvel em que est classificado.
%Classificao de Funcionrios
nota1=input('Digite a primeira nota: ');
nota2=input('Digite a segunda nota: ');
if nota1>=8 | nota2>=8 | (nota1+nota2)>=14
disp('aluno nvel A')
elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9
disp('aluno nvel B')
else
disp('aluno nivel C')
end
4.4. ESTRUTURA SWITCH-CASE
Essa estrutura funciona como uma chave seletora, escolhendo a expresso correta para
executar os comandos.
Estrutura geral
switch expresso
case teste_expresso1
comandos 1
case {teste_expresso2, teste_expresso3, teste_expresso4}
comandos 2
Curso Introdutrio de MATLAB 6.5
38
39
40
41
Entrada
Clculo
3 0 1
flipud(X)= 1 2 1
1 2 0
42
function [x1,x2,m]=baskara(a,b,c)
delta=b^2-4*a*c;
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
if delta>0
m='raizes distintas e reais';
elseif delta==0
m='raizes reais e iguais';
else
m='raizes complexas';
end
43
4) Colocar trs nmeros quaisquer em ordem crescente, mas usando duas funes (funo de
funo):
%Programa principal
%Ler trs nmeros e coloc-los em ordem crescente usando funo de funo:
%
g=input(entre com o primeiro numero: );
h= input(entre com o segundo numero: );
i= input(entre com o terceiro numero: );
[a1,a2,a3]=ordem2(g,h,i);
a1
a2
a3
%Funo 1
%inverte os valores colocando em ordem crescente
[a,b]=troca(a,b);
[b,c]=troca(b,c);
[a,b]=troca(a,b);
44
45
6. ANLISE NUMRICA
Nos casos em que dificil integrar, derivar ou determinar analticamente algum valor especfico
de uma funo, o computador pode ser utilizado para aproximar de uma forma numrica a
soluo desejada. Essa rea da cincia da computao e da matemtica conhecida como anlise
numrica e claro que o MATLAB possui ferramentas para resolver esses problemas.
6.1. OTIMIZAO
fminbnd = retorna a coordenada X do valor mnimo de uma funo de uma varivel F(X) em um
intervalo fixo.
Exemplo:
Achar o valor mnimo da funo f(x)=x2-x+cos(x) implementada em func01.m:
No intervalo [0:pi]
No intervalo [2:3]
func01.m: y=func01(x)= x2-x+cos(x)
function y=func01(x)
%funcao para integrar
y=x.^2-x+cos(x);
>> xm1=fminbnd('func01',0,pi)
xm1 =
0.8879
>> xm2=fminbnd('func01',2,3)
xm2 =
2.0001
>> x=0:0.1:pi;
>> plot(x,func01(x),xm1,func01(xm1),'r*',xm2,func01(xm2),'go')
46
fzero = retorna coordenada X, tal que F(X)=0. Inicia busca a partir de um valor inicial, X0,
fornecido.
Exemplo:
Achar o f(x)=0 da funo f(x)=x3-2x+1 implementada em func02.m:
Comeando a busca com 1.5
Comeando a busca com 0.
>> xz1=fzero('func02',-1.5) % f(xz1)=0 , a partir de -1.5
xz1 =
-1.6180
>> xz2=fzero('func02',0) %f(xz2)=0, a partir de 0
xz2 =
0.6180
>> x=-2:0.1:2;
>> plot(x,func02(x),xz1,func02(xz1),'r*',xz2,func02(xz2),'go')
47
quadl
48
49
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0.5
1.5
2.5
3.5
4.5
50
7. POLINMIOS
7.1 RAZES
Encontrar razes de um polinmio, isto , os valores para os quais o polinmio igual a zero. No
MATLAB, um polinmio representado por um vetor linha contendo seus coeficientes em
ordem decrescente. Por exemplo: x 4 12 x 3 + 0 x 2 + 25 x + 116 introduzido como:
>> p=[1 12 0 25 116]
p=
1 12 0 25 116
Dada essa forma, as razes do polinmio so encontradas usando-se a funo roots:
>>r= roots(p)
r=
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
O MATLAB adota como conveno de colocar os polinmios como vetores linha e as razes
como vetores coluna.
Dadas as razes tambm possvel construir o polinmio associado, a funo que executa isso a
poly como exemplo:
pp=poly(r)
pp =
1.0000 -12.0000 -0.0000 25.0000 116.0000
7.2. MULTIPLICAO
A multiplicao polinomial efetuada por meio da funo conv(que faz a convoluo entre dois
vetores). Consideremos o produto de dois polinmios a( x ) = x 3 + 2 x 2 + 3 x + 4 e
b( x ) = x 3 + 4 x 2 + 9 x + 16 :
>> a=[1 2 3 4]; b=[1 4 9 16];
>>c=conv(a,b)
c=
1 6 20 50 75 84 64
51
1 2 3 4
0 0 0 0 0 0 0
52
53
Plotar linear.
loglog
semilogx
Plotar em semilog.
semilogy
Plotar em semilog.
polar
plotyy
Grficos 2d especiais
rea
Grfico de rea
bar
Grfico de barras.
barh
pie
Grfico de pizza
stairs
Grfico escada
scatter
stem
comet
compass
Grficos de vetores
feather
Grficos de vetores
Ezplot
ezpolar
errorbar
Plotar erro
hist
Plotar histograma.
54
fplot
Plotar funo.
plotmatrix
Se Y um vetor, plot(Y) produz um grfico linear dos elementos de Y versos o ndice dos
elementos de Y.
Por exemplo, para plotar os nmeros [0.0 0.48 0.84 1.0 0.91 0.6 0.14], entre com o vetor e
execute o comando plot:
>> Y = [0 0.48 0.84 1.0 0.91 0.6 0.14];
>> plot(Y)
e o resultado mostrado na Janela Grfica:
55
A segunda, e mais fcil, maneira de plotar grficos com mltiplas linhas usando o comando
plot com mltiplos argumentos. Por exemplo:
>> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi))
56
_______________
--
--------------------
-.
-.-.-.-.-.-.-.-.-.-.-.-.
..............................
Marcador
.......................
********
++++++++++
xx x x x x x x
quadrado
losango
<
>
57
Pentagrama
hexagrama
CORES
amarelo
lils
azul claro
vermelho
verde
azul escuro
branco
preto
58
59
Exemplos:
>> theta=-2*pi:0.1:2*pi;
>> whos
Name
Size
Bytes Class
A
D
Y
ans
b
c
t
theta
x
y
1x1
1x1001
1x7
1x2
1x16
1x1001
1x26
1x126
1x315
1x26
>> x=-2.9:0.2:2.9;
>> y=exp(-x.*x);
>> subplot(2,2,1)
>> bar(x,y)
>> title('Grafico de barras de uma curva em forma de sino');
>> subplot(2,2,2)
Curso Introdutrio de MATLAB 6.5
60
meshgrid
mesh
surf
meshc
meshz
waterfall
61
Gera cilindro.
sphere
Gera esfera.
Ellipsoid
Bar3h
Pie3
Grfico de pizza 3D
comet3
Ribbon
contour
contourf
contour3
Ezplot3
Ezcontour
Ezcontourf
Ezmesh
Ezmeshc
Ezplot3
ezsurf
Aplicaes de alguns comandos:
>> x=-4*pi:0.1:4*pi;
>> y=-4*pi:0.1:4*pi;
>> plot3(cos(x),sin(y),(x+y))
62
> >x=-pi:0.5:pi;
>> y=-pi:0.5:pi;
>> [Mx,My]=meshgrid(x,y);
>> Mz=cos(Mx).*sin(My);
>> mesh(Mx,My,Mz)
>> surf(Mx,My,Mz)
Ttulo do grfico.
xlabel
Ttulo do eixo-X.
ylabel
Ttulo do eixo-Y.
zlabel
Ttulo do eixo-Z.
text
Grid
Linhas de grade.
63
64
9. SIMULINK
9.1.Apresentao
SIMULINK um programa utilizado para modelagem, simulao e anlise de sistemas
dinmicos. O programa se aplica a sistemas lineares e no lineares, contnuos e/ou discretos no
tempo. Utiliza uma interface grfica com o usurio para construo dos modelos a partir de
diagramas em blocos, atravs de operaes de clique-e-arraste do mouse. Com esta interface
podem-se criar modelos da mesma forma que se faz com papel e caneta. SIMULINK o
resultado de uma longa evoluo de pacotes de simulao anteriores que necessitavam a
formulao de equaes diferenciais ou de equaes de diferenas em linguagens de
programao. Inclui bibliotecas de blocos contendo fontes, visualizadores, componentes lineares,
no lineares e conectores, com a opo de criao ou personalizao de blocos.
Aps a definio do modelo, a simulao pode ser feita com diferentes algoritmos de resoluo,
escolhidos a partir dos menus do SIMULINK ou da linha de comando do MATLAB. Os menus
so particularmente convenientes para o trabalho interativo, enquanto a linha de comando tem
sua utilidade na simulao repetitiva a qual se deseja somente mudar parmetros. Usando
osciloscpios (Scopes) ou outros visualizadores, tm-se o resultado grfico da simulao
enquanto esta est sendo executada. Os resultados da simulao podem ser exportados para o
MATLAB para futuro processamento ou visualizao. As ferramentas de anlise de modelos
incluem ferramentas de linearizao e ajuste (Trimming) que podem ser acessadas a partir da
linha de comando do MATLAB, assim como vrias ferramentas do MATLAB e suas
TOOLBOXES especficas. Sendo o MATLAB e o SIMULINK integrados, pode-se simular,
analisar e revisar os modelos em qualquer dos dois ambientes.
9.2. CONHECENDO E ACESSANDO O SIMULINK
Para acessar o SIMULINK deve-se primeiro abrir o MATLAB, pois apesar de ser uma aplicao
especfica, este no trabalha independente e utiliza suas ferramentas de clculo.
Deve-se clicar duas vezes no cone do MATLAB. Aberto o programa deve-se ento clicar no
cone Simulink na barra de ferramentas do MATLAB ou digitar simulink na linha de
comando e pressionar enter logo em seguida, como mostrado a seguir:
>> simulink <enter>
ou
clique no cone na barra de ferramentas.
9.3.CONSTRUINDO UM MODELO SIMPLES
Exemplificando a utilizao do SIMULINK, temos um modelo a criar. Este deve resolver a
equao diferencial:
x& = sen( t )
onde x(0)=0
Sendo o SIMULINK uma extenso do MATLAB, este deve ento ser carregado a partir do
MATLAB. Inicie o SIMULINK clicando no seu cone na barra de ferramentas do MATLAB,
como mostrado na figura:
Curso Introdutrio de MATLAB 6.5
65
Uma janela se abrir na tela. Essa janela a biblioteca de blocos do SIMULINK mostrado na
figura. Para criar um modelo novo, clique no cone documento em branco.
D um click no cone Sources na janela de bibliotecas do SIMULINK.
Arraste o bloco de onda senoidal (Sine Wave) para a janela do modelo. Uma cpia deste bloco
deve ser criada nesta janela.
Abra a biblioteca de blocos lineares (contnuo) e arraste um bloco integrador (Integrator) para a
janela do modelo.
66
Para verificar se o grfico gerado representa a soluo da equao diferencial desejada, deve-se
resolver a mesma analiticamente, cujo resultado :
x (t ) = 1 cos(t )
que corresponde ao grfico apresentado.
9.4.OUTRO MODELO
O modelo anterior serviu como exemplo de implementao no SIMULINK, mas est longe de
representar um caso usual de utilizao do software devido pequena quantidade de blocos e
ligaes. Agora ser usado um modelo de um processo biolgico para ilustrar vrios nveis
adicionais de dificuldade na implementao.
67
68
A seguir necessrio conectar a linha que liga o integrador ao SCOPE ao bloco de ganho situado
na parte inferior da janela, pois esta linha contm o valor de x. Para faz-lo, v com o mouse na
Curso Introdutrio de MATLAB 6.5
69
O modelo agora est completo, mas os blocos devem ser configurados (parametrizados) para que
este represente o sistema desejado. O SIMULINK tem como default para os blocos de ganho o
valor de 1.0, para o bloco de soma duas entradas positivas e para o integrador o valor inicial 0.0.
O valor inicial do integrador representa o nmero inicial de bactrias presentes no pote.
Ser iniciada agora a parametrizao com os blocos de ganho. D um duplo clique no ganho da
parte superior e mude o valor de 1.0 para 0.5 na caixa de dilogo que ir aparecer, a seguir clique
em Close. Note que o valor do ganho do bloco muda para 0.5 no diagrama em blocos.
Agora d um duplo clique no bloco de soma e no campo List of signs mude de ++ para -+ na
caixa de dilogo que abrir. Os sinais representam os prprios sinais de entrada no bloco. A
Curso Introdutrio de MATLAB 6.5
70
Para finalizar a configurao, deve-se definir o nmero inicial de bactrias. Para isto, d um
duplo clique no integrador e no campo Initial condition mude para 100, e aps clique Close.
A durao da simulao definida no tempo default de 0 a 10. Neste caso, deseja-se saber o
resultado aps 1 hora. Para mudar este tempo, seleciona-se na barra de menu a opo
Simulation:Parameters e no campo Stop Time digita-se 1, fechando em Close logo a seguir.
sempre aconselhvel salvar o modelo antes de executar a simulao.
71
O modelo agora est completo e pronto para ser executado. Para salvar na barra de menu clique
em File:Save e entre com o nome desejado. O modelo ser salvo com o nome digitado e a
extenso.mdl, e seu nome aparecer na barra de ttulo da janela de edio.
Abra agora o SCOPE com um duplo clique e a seguir na barra de menu, clique em
Simulation:Start para iniciar a execuo.
O SCOPE nem sempre mostra a figura numa boa escala para visualizao. O boto Autoscale na
barra de ferramentas do SCOPE redimensiona a escala para acomodar todos os valores.
9.5.USANDO O HELP DO SIMULINK
O SIMULINK possui um extensivo sistema de help on-line. Os arquivos de help foram
desenvolvidos para serem visualizados por navegadores internet como Netscape ou Internet
Explorer. Uma detalhada documentao on-line para todos os blocos do SIMULINK est
disponvel no Block-Browser. Um detalhado help tambm est disponvel clicando no boto de
help na caixa de dilogo que se abre quando se seleciona Simulantion:Parameters na barra de
menu.
Para se consultar o help sobre um bloco qualquer deve-se inicialmente dar um clique duplo sobre
o bloco desejado. A seguir clica-se no boto de help que aparece na caixa de dilogo que se abre.
O help do SIMULINK contm informaes valiosas. boa prtica utiliz-lo com freqncia.
Curso Introdutrio de MATLAB 6.5
72
10.REFERNCIAS BIBLIOGRFICAS
Hanselmam, D. , Littlefield, B. ; Verso do Estudante MATLAB 5 Gu
ia do Usurio, Makron Books, 1997.
Matsumoto, E. Y. ; MATLAB 6 Fundamentos de Programao , Editora rica, 2 edio,
2001.
The Student Edition of SIMULINK Dinamic System Simulation Software for Technical.
Matsumoto, E. Y. ; MATLAB 6.5 Fundamentos de Programao , Editora rica, 1 edio,
2002.
73
74
76