You are on page 1of 32

Universidade Federal De Minas Gerais

Mini Curso de MATLAB

Bruno Randazzo Baroni

agosto de 2010

Sumrio

1 Ambiente de programao .........................................................................................4


1.1) Comandos importantes .............................................................................................4
1.2) Comandos de auxilio ao usurio ...............................................................................4
2) Elementos fundamentais ...........................................................................................4
2.1) Constantes e variveis ..............................................................................................4
2.1.1) Constantes e variveis ...............................................................................4
2.1.2) Arranjos .....................................................................................................4
2.1.3) Matrizes .....................................................................................................5
2.2) Expresses ...............................................................................................................6
2.2.1) Expresses aritmticas ..........................................................................................6
2.2.2) Expresses lgicas .................................................................................................9
2.3) Grficos ..................................................................................................................11
2.3.1) Grficos bidimensionais ......................................................................................11
2.3.2) Grficos tridimensionais ......................................................................................13
2.4) Exerccios ...............................................................................................................15
3) MATLAB como linguagem de programao .........................................................16
3.1) Comandos de entrada e sada
3.1.1) formato para exibio ...............................................................................16
3.2 Estruturas condicionais ..........................................................................................17
3.2.1 Estrutura if-end ......................................................................................................17
3.2.2) Estrutura if-eles-end .............................................................................................18
3.2.3) Estrutura if-elseif-end ...........................................................................................18
3.3 Estruturas de repetio ..........................................................................................18
3.3.1 Estrutura for-end ....................................................................................................18
3.3.2 Estrutura while-end ................................................................................................18
3.4) Gerando Arquivos .m ............................................................................................19
3.4.1) script .....................................................................................................................19
3.4.2) Funo ..................................................................................................................20

4) Algebra linear ...........................................................................................................20


4.1) Soluo de sistemas .................................................................................................20
4.2) Operaes com vetores ..........................................................................................21
4.2.1) Produto vetorial ....................................................................................................21
4.2.2) Produto escalar
4.3) Operaes com polinmios ...................................................................................21
4.3.1) Avaliao .............................................................................................................21
4.3.2) Adio e subtrao ...............................................................................................21
4.3.3) Multiplicao .......................................................................................................22
4.3.4) Diviso .................................................................................................................22
4.3.5) Derivao .............................................................................................................22
4.3.6) Construo a partir das razes ..............................................................................22
4.4) Clculo de razes ...................................................................................................23
5) Integrao numrica ............................................................................................... 23
5.1) Funo trapz(x,y) ....................................................................................................23
5.2) Usando o comando sum ..........................................................................................23
6) Exerccios ..................................................................................................................24
7) Simulink ....................................................................................................................25
7.1) Introduo ...............................................................................................................25
7.2) Acessando o Simulink ............................................................................................25
7.3) Diagrama de blocos ................................................................................................25
7.4) Manipulando Blocos ...............................................................................................25
7.5) Construindo um Modelo Simples ...........................................................................26
7.6) Outro exemplo ........................................................................................................26
7.7) Sistema massa-mola ...............................................................................................28
7.8)Resolvendo equaes diferenciais usando a funo ODE .......................................29
7.9) Criando um .mdl dentro de um script......................................................................31
8) Exerccios .................................................................................................................31
9) Bibliogrfia ..............................................................................................................32

1) Ambiente de programao
1.1) Comandos importantes:
Clear (a) % remove a.
Clear % remove tudo
Clc % limpa a tela
Close % fechas as figuras abertas
Who % variveis no espao de trabalho
Whos % variveis no espao de trabalho
Um comando finalizado apertando a tecla ENTER
Interromper um comando: CONTROL e C simultaneamente
Se um comando for muito longo, ento trs pontos (...) seguidos do pressionamento da
tecla ENTER indica que o comando continuar na prxima linha.
Comandos mltiplos podem ser colocados em uma mesma linha se eles forem
separados por ponto-e-vrgula. Alm disso, as vrgulas dizem ao MATLAB para
mostrar os resultados e os ponto-e-vrgulas para suprir a exibio.
Todo texto aps o sinal de % considerado comentrio.
1.2) Comandos de auxilio ao usurio
1.2.1) Comando help a maneira mais simples de obter auxlio no caso de se conhecer
o tpico em que se quer assistncia. Sua sintaxe
help <tpico>
1.2.2) Comando lookfor prov assistncia pela procura em todas as primeiras linhas dos
tpicos de auxlio do MATLAB e retornando aquelas que contenham a palavra-chave
especificada. O mais importante que a palavra no precisa ser um comando do
MATLAB. Sua sintaxe
lookfor <palavra-chave>
2) Elementos fundamentais:
2.1.1) Constantes e variveis
C=5e10

b=5^2

Nmero complexo (i ou j)
A=3+2i

b=5+3j

z=a+b

z_real=real(z); z_imag=imag(z)

2.1.2) Arranjos
Vetor
>>a=[5

1.5

-0.3]%

vetor linha de tamanha 3

>>find(a) % encontra os valores maiores que zero no vetor a


>>find(a>2) % encontra os valores maiores que 2 no vetor a

Se for igualmente espaado pode ser definido por intermdio da expresso


B=10:5:40 b(1) b(1:5) , se o incremento for 1 pode ser omitido.
linspace (<valor inicial>,<valor final>,<numero de elementos>)
que igual ao vetor b. Se o nmero de elementos forem
omitidos gera-se 100 pontos.
>>c(2) % segundo elemento de c
>>c(3:5) % terceiro ao quinto elemento
>>c([4 1]) % quarto e primeiro elemento nessa ordem
C=linspace(10,40,7)

>>v=[1.5;-3.2;-8.9]

Para transformar um vetor coluna em um vetor linha usa-se a transposio v


Para saber o comprimento do vetor usa-se a funo length.
>>length(v)

2.1.3) Matrizes
>>A=[3 2 -5; 4 7 9; 4 7 6]
>>A(1,2)=8 % modifica o elemento da primeira linha e segunda coluna para 8
>>A([1 3],2) % mostra os elementos da linha 1 e 3 da coluna 2
>>size(A) % mostra o numero de linhas e colunas da matriz A
>> a(:,1) % mostra as linhas da primeira coluna
>> a(2,:)% mostra as colunas da segunda linha

Multiplicao elemento por elemento


>>a=[4 5 8]; b=[7 6 3] a.*b=[28 30 24]
>>eye(3) % gera matriz identidade quadrada de ordem 3
>>zeros(2,3) % gera uma matriz de zeros de duas linhas e trs colunas
>>ones(2,3) % gera uma matriz de uns de duas linhas e trs colunas

O MATLAB tem funes que se aplicam individualmente cada coluna da matriz


produzindo um vetor linha com elementos correspondentes ao resultado de cada coluna.
Se o argumento da funo for um vetor ento o resultado ser um escalar.

Exemplo de funes do MATLAB


5

2.2) Expresses:
2.2.1) Expresses aritmticas

Operaes aritmticas bsicas do MATLAB

Operaes vetoriais bsicas

a=1:5, b=10:10:50, c=2


a+c
ans =
3

22

33

a+b
ans =
11

44

55

a./b
ans =

0.1000

0.1000

0.1000

16

25

16

32

0.1000

0.1000

a.^c
ans =
1
c.^a
ans =
2

Operaes matriciais bsicas


Sejam as matrizes A e B de ordem 3 e o escalar c
A=[1 2 3; 4 5 6; 7 8 9], B=[11 12 13; 14 15 16; 17 18 19], c=3
>> A*B %multiplicao matricial ordinria
ans =
90 96 102
216 231 246
342 366 390
>> A.*B % multiplicao da matriz elemento a elemento
ans =

11 24 39
56 75 96
119 144 171
>> A.^c % elemento de uma matriz elevado a uma constante
ans =
1 8 27
64 125 216
343 512 729
>> A^c % multiplicao sucessiva de matrizes (A^3=A*A*A)
ans =
468
1062
1656

576
1305
2034

684
1548
2412

>> c.^A % constante elevada a elemento da matriz


ans =
3
81
2187

9
243
6561

27
729
19683

Funes matemticas elementares


2.2.2) Expresses lgicas
O resultado de uma expresso lgica no MATLAB numrico, sendo que 1 significa
verdadeiro e 0 significa falso. Note que (=) usado para atribuio de um valor a uma
varivel enquanto que (= =) usado para comparao de igualdade.

Operadores relacionais do MATLAB


>> a=1:10
a=

10

>> b=9:-1:0
b=
9

>> c=5
c=
5
>> d=a>=c
d=
0

Os operadores lgicos permitem a combinao ou negao das relaes lgicas. Os


operadores lgicos do MATLAB so listados abaixo

Operadores lgicos do MATLAB


Para os vetores a e b definidos anteriormente
>> f=(a>3)&(a<=8)
f=
0 0 0 1 1 1 1 1 0 0
Para fazer a negao, ou seja, onde for 1 ser 0 e vice-versa basta
>> g=~f
g=
1

A ordem de precedncia no MATLAB para expresses envolvendo operadores


aritmticos e lgicos so indicados na tabela abaixo.

10

Ordem de precedncia das operaes aritmticas e lgicas


Os parnteses podem ser usados para alterarem a ordem de precedncia.
2.3) Grficos:
2.3.1) Grficos bidimensionais
Para gerar grficos bidimensionais pode ser usada a funo plot
Funo plot
A sintaxe de comando : plot(x,y,linha1,x2,y2,linha2...)
Onde x e y so vetores contendo as abscissas e ordenadas dos pontos a serem exibidos,
respectivamente e linha especifica a cor e o estilo da linha, os quais so mostrados na
tabela abaixo. Ou escolhe-se o tipo de linha ou cor da linha.

Funes para identificao de grficos:


Comando
Descrio
xlabel (texto)
escreve <texto> abaixo do eixo das
abscisas
ylabel (texto)
escreve <texto> abaixo do eixo das
ordenadas
title (texto)
escreve <texto> no alto da figura
legend (texto)
adiciona legenda aos grficos
gtexte (texto)
escreve <texto> na posio indicada pelo
mouse
hold on/ hold off
segura o grfico, plotando os outros por
cima
grid on
coloca grade na figura
figure(x)
enumera as figuras
11

>>x=-2:0.01:2;
>>plot(x,x.^2)

>> x=linspace(-8,8,50); %gera um vetor de -8 at 8 com 50 pontos


>> y=sin(x);
>> plot(x,y)

>> figure(1)
z=cos(x);
plot(x,y,'-',x,y,'o',x,z,'-.')
>> xlabel('x')
>> ylabel('y')
>> title('titulo')

12

>>figure(2)
>>t=-2:0.01:2;
>>u=t>=0;
>>plot(t,u);
>>title(funo degrau)

>>figure(3)
>>g=(exp(-t).*cos(2*pi*t));
>>s=g.*u;
>>plot(t,s)

2.3.2) Grficos tridimensionais


Funo meshgrid
O commando [x,y]=meshgrid(x,y), transforma o domnio especificado pelos vetores x e
y em matrizes x e y que podem ser usadas para avaliar funes de duas variveis e fazer
esboos tridimensionais. As linhas da matriz x so cpias do vetor x e as colunas da
matriz y so cpias do vetor y.
>> x=-1:0.5:2;
>>y=-1:0.5:1;
>>[x,y]=meshgrid(x,y)
x =

13

-1.0000
-1.0000
-1.0000
-1.0000
-1.0000

-0.5000
-0.5000
-0.5000
-0.5000
-0.5000

0
0
0
0
0

0.5000
0.5000
0.5000
0.5000
0.5000

1.0000
1.0000
1.0000
1.0000
1.0000

1.5000
1.5000
1.5000
1.5000
1.5000

2.0000
2.0000
2.0000
2.0000
2.0000

-1.0000
-0.5000
0
0.5000
1.0000

-1.0000
-0.5000
0
0.5000
1.0000

-1.0000
-0.5000
0
0.5000
1.0000

-1.0000
-0.5000
0
0.5000
1.0000

-1.0000
-0.5000
0
0.5000
1.0000

-1.0000
-0.5000
0
0.5000
1.0000

y =
-1.0000
-0.5000
0
0.5000
1.0000

2.3.3) Funo plot3


Esta funo uma generalizao da funo plot para esboos tridimensionais.
Sua sintaxe : plot3(x1,y1,z1,tipo de linha,x2,y2,z2,tipo de linha,...)
Onde x,y e z so matrizes de mesmo tamanho contendo as coordenadas tridimensionais
dos pontos a serem exibidos
>>t=0:pi/50:10*pi
>>plot3(sin(t),cos(t),t)
>>grid on

14

2.4) Exerccios
1)Construir os Vetores:

1.2) Construir as matrizes e verificar o resultado das funes:

1.3)

1.4) Avaliar as expresses vetoriais e matriciais:

1.5)

1.6)

1.7) Plotar o grfico da funo z=sen(x)cos(x) no intervalo -3<x<3 e -2<y<2, utilizando


os comando meshgrid e plot3.

15

3) MATLAB como linguagem de programao


3.1) Comandos de entrada e sada
O MATLAB fornece algumas facilidades para especificar o formato de sada dos
resultados, gravao e leitura das variveias de uma sesso de trabalho para uso
posterior e edio de programas em arquivos.
3.1.1) formato para exibio
Para saber o valor de uma varivel basta entrar com seu nome.
>> pi
ans =
3.1416
O comando disp(varivel) usado para exibir varivel sem mostrar o seu nome ou
para exibir uma cadeia de caracteres contida na varivel.
>> disp ('mini curso de matlab')
mini curso de matlab
>> disp(eye(3))
1 0 0
0 1 0
0 0 1

O comando format

O comando save usado para gravar as variveis do espao de trabalho em um arquivo


em disco. Sua sintaxe
save <nome do arquivo> <variveis> <chaves>
load <nome do arquivo>.<extenso>
>> a=1:3

16

a=
1

>> b=eye(2,3)
b=
1
0

0
1

0
0

>> c=magic(3)
c=
8
3
4

1
5
9

6
7
2

>> save trab.txt a b c -ascii


>> type trab.txt
1.0000000e+000
1.0000000e+000
0.0000000e+000
8.0000000e+000
3.0000000e+000
4.0000000e+000

2.0000000e+000
0.0000000e+000
1.0000000e+000
1.0000000e+000
5.0000000e+000
9.0000000e+000

3.0000000e+000
0.0000000e+000
0.0000000e+000
6.0000000e+000
7.0000000e+000
2.0000000e+000

>> load trab.txt


>> trab
trab =
1
1
0
8
3
4

2
0
1
1
5
9

3
0
0
6
7
2

3.2 Estruturas condicionais


3.2.1 Estrutura if-end
a=2
if

a>=0
b=sqrt(a)

end

3.2.2) Estrutura if-eles-end


17

a=-10:10
format long eng
if a>=0
b=sqrt(a)
else
b=exp(a)
end

3.2.3) Estrutura if-elseif-end


a=6+8i
if imag(a)~=0
b=sqrt(real(a).^2+imag(a).^2);
elseif a<0
b=-a;
else
b=a;
end
[a b]

3.3 Estruturas de repetio


3.3.1 Estrutura for-end
for x=1:360
y(x)=sin(2*pi*x/360);
end
plot(y)

3.3.2 Estrutura while-end


while <condio>
<comandos>
End

18

3.4) Gerando Arquivos .m


Existe dois tipos de arquivo .m: script e funo
3.4.1) script
Resolver esse circuito usando o MATLAB

R1=R2=R3=10k C1=C2=1uF
Fazendo um script em .m podemos resolver esse circuito e achar os valores de lambda.
%ms2p1.m
%script em arquivo.m para determinar as razes caractersticas de um
%circuito com amp-op
%ajustando o valor dos componentes:
R=[1e4 1e4 1e4];
C=[1e-6 1e-6];
%determinando os coeficientes da equao caracterstica:

19

a0=1;
a1=(1/R(1)+1/R(2)+1/R(3))/C(2);
a2=1/(R(1)*R(2)*C(1)*C(2));
A=[a0 a1 a2];
%determinando as razes caractersticas:
lambda=roots(A);

lambda =
-261.8034
-38.1966
3.4.2) Funo
Function [sada] = nome_da_funo(entradas)
function [lambda] = ms2p2(R,C)
%ms2p2.m
%funo em arquivo.m para determinar as raizes caracteristicas de um
%circuito com amp-op
%entradas: R=vetor de tamanho 3 com as resistncias
%
C=vetor de tamanho 2 com as capacitncias
%sadas:
lambda=razes equao caractersticas
%determinando os coeficientes da equao caracterstica:
a0=1;
a1=(1/R(1)+1/R(2)+1/R(3))/C(2);
a2=1/(R(1)*R(2)*C(1)*C(2));
A=[a0 a1 a2];
%determinando as razes caractersticas:
lambda=roots(A);

>> lambda=ms2p2([1e4 1e4 1e4],[1e-9 1e-6])


lambda =
1.0e+003 *
-0.1500 + 3.1587i
-0.1500 - 3.1587i

4) Algebra linear
4.1) Soluo de sistemas
Dado um sistema Ax=b, a soluo x pode ser facilmente calculada pelo MATLAB pelo
operador \, por exemplo, para um sistema com matriz simtrica
>> A=[4 -2 2;-2 10 -7;2 -7 30]
A =
4
-2
2

-2
10
-7

2
-7
30

>> b=[8;11;-31]

20

b =
8
11
-31
>> x=A\b
x =
3
1
-1

4.2) Operaes com vetores


4.2.1) Produto vetorial
>> a = [1 2 3];
b = [4 5 6];
c = cross(a,b)
c =
-3

-3

4.2.2) Produto escalar


>> d = dot(a,b)
d =
32

4.3) Operaes com polinmios


4.3.1) Avaliao
O MATLAB fornece vrias funes que permitem que as operaes envolvendo
polinmios seja feita de um modo bem simples. No MATLAB, os coeficientes de um
polinmio so definidos como elementos de um vetor.
P(x)=3x^5-2x^4+5x^3+7x^2-3x+1
>>p=[3 -2 5 7 -3 1];
>>x=1:5;
>>y=polyval(p,x) % avalia o polinmio nos pontos x=1,2,3,4 e 5
y =
11

127

757

2981

8911

4.3.2) Adio e subtrao


B(x)=2x^3+5x^2-x-4
>>b=[0 0 2 5 -1 -4];
>>s=p+b
s =

21

3
>>d=p-b
d =
3

-2

12

-4

-3

-2

-2

4.3.3) Multiplicao
>>c=conv(p,b) % multiplica os polinmios a e b
c =
0

11

-3

29

32

-40

-20

11

-4

4.3.4) Diviso
>> [q,r]=deconv(b,c) % diviso dos polinmios b por c, onde q o
cociente e r o resto
>> a=[2 -3 4 -5 6];
>> e=[1 -3 1];
>> [q,r]=deconv(a,e)

% a(x)=2x^4-3x^3+4x^2-5x+6
% e(x)=x^2-3x+1

q =
2

11

r =
25

-5

4.3.5) Derivao
Dado o polinmio P(x)=x^4+2x^3-12x^2+14x-5
>>p=[1 2 -12 14 -5];
>>p1=polyder(p)
p1 =
4
6
-24
>>p2=polyder(p1)
p2 =
12

12

14

-24

4.3.6) Construo a partir das razes


>>r=[1 3 4];
>>p=poly(r)
p =
1

-6

12

4.4) Clculo de razes


Funo roots

22

P(x)=x^4+2x^3-13x^2-14x-24=0
>> p=[1 2 -13 -14 24];
>> r=roots(p)
r=
-4.0000
3.0000
-2.0000
1.0000

5) Integrao numrica
5.1) Funo trapz(x,y)
calcula a integral de y=f(x)
F(x)=cos(3x+1)x^2+x^1.5
>>x=1:0.01:9
% intervalo de integrao
>> y=cos(3*x+1).*x.^2+x.^1.5;
>>rea=trapz(x,y)
rea=102.4429

vai de 1 a 9 e o delta t 0.01

5.2) Usando o comando sum


>>dx=x(2)-x(1);
>> area=sum(cos(3*x+1).*x.^2+x.^1.5)*dt
area =
102.2568

23

7) Exerccios: Parte 2

2.1)

Se x maior ou igual a zero, escreva o valor da raiz quadrada de x na varivel


sqrt_x e imprima o resultado. Caso contrario, imprima uma mensagem de erro
sobre o argumento da funo de raiz quadrada e coloque o valor zero em sqrt_x.

2.2)

Escreva uma function para calcular o valor absoluto de um nmero real ou


complexo.

2.3)

Escrever uma function para resolver um sistema de equaes lineares qualquer.

2.4) Resolver o seguinte exerccio no MATLAB:

24

7) Simulink
7.1) Introduo
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. Inclui
bibliotecas de blocos contendo fontes, visualizadores, componentes lineares, no
lineares e conectores, com a opo de criao ou personalizao de blocos. 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.
7.2) 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.
Aberto o programa deve-se ento clicar no cone Start 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>

7.3) Diagrama de blocos


Uma forma de apresentao das equaes diferenciais de um sistema consiste no
emprego de Diagramas de Bloco, em que cada bloco representa uma operao
matemtica, associando pares entrada-sada.
7.4) Manipulando Blocos:

Selecionar objeto (blocos ou linhas de sinais): Clique no objeto com o boto


esquerdo do mouse.
Selecionar outro objeto: Pressione a tecla SHIFT e clique no outro objeto
Selecionar uma caixa de seleo: Clique com o boto esquerdo do mouse no
local onde se deseje que seja uma das quinas de seleo, continue com a tecla do
mouse pressionada e arraste a caixa para cobria a rea desejada.
Copiar um bloco de uma biblioteca ou de outro modelo: selecione o bloco e
arraste para a janela do modelo que se deseja copiar.
Rotacionar blocos: CTRL-r
Apagar blocos: Selecione o bloco e aperte a tecla Del
Copiar blocos: CTRL-c
Recortar blocos: CTRL-x
Colar blocos: CTRL-v
Aumentar ou diminuir zoom:SHIFT-r e SHIFT-v respectivamente

25

7.5) Construindo um Modelo Simples


Exemplificando a utilizao do SIMULINK, temos um modelo a criar. Este deve
resolver a equao diferencial:
dx/dt = sen(t)
onde,

x(0) = 0

sources, commonly used blocks

x(t) =1 cos(t)

7.6) Outro Exemplo


Scheinerman descreveu um modelo simples do crescimento de bactrias isoladas do
ambiente externo num pote. Admite-se que as bactrias nascem numa taxa proporcional
ao nmero de bactrias presentes e que elas morrem a uma taxa proporcional ao
quadrado do nmero de bactrias presentes.
26

x representa o nmero de bactrias presentes


Taxa de Natalidade= bx
Taxa de Mortalidade = px 2
A taxa total de mudana na populao dx/dt = bx px 2
Partindo disto ser ento construdo o modelo do sistema dinmico supondo que b=1
bactria/hora e p=0,5 bactria/hora. Ser determinado o nmeros de bactrias contidas
no pote aps 1 hora, admitindo que inicialmente existiam 100 bactrias presentes.

27

7.7) Sistema massa-mola


Considere-se que o sistema est inicialmente em equilbrio esttico ( x = 0, x = 0 ) e
a funo fora um degrau de 1 N. Ignorando a frico, a equao do movimento
ento:

Mx+ Cx+ Kx = F
A sada do integrador Velocidade x , j que sua entrada x . Reescrevendo a
equao, tem-se:
Substituindo os valores:
x = 0.2x 0.4x+0.2
Com x(0) =1, x(0) = 0.
Admite-se que o coeficiente de amortecimento c=1.0, a constante da mola k=2 N/m e a
massa do carro m=5 Kg. No h entradas no sistema. Considerando-se a deflexo inicial
igual 1m da posio de equilbrio.

28

Encapsulando um Subsistema
Para encapsular uma parte de um sistema SIMULINK j existente em um subsistema,
deve-se proceder da seguinte forma:
Selecione todos os blocos e linhas de sinal a serem includos no subsistema usando uma
caixa de contorno com o mouse.
Clique em Edit:Create Subsystem na barra de menu da janela do modelo. O
SIMULINK ir ento substituir os blocos selecionados por um bloco Subsistema com
entrada e sada para cada sinal de entrada ou sada.

7.8) Resolvendo equaes diferenciais usando a funo ODE

function [dy]=rigid(t,y)
dy = zeros(3,1);
% a column vector
dy(1) = y(2) * y(3);

29

dy(2) = -y(1) * y(3);


dy(3) = -0.51 * y(1) * y(2);

>> [T,Y] = ode45(@rigid,[0 12],[0 1 1]);


>> t=linspace(0,12,77);
>> plot(t,Y(:,1))
>> hold on
>> plot(t,Y(:,2),'--')
>> plot(t,Y(:,3),':')

|
function dy = massamola(t,y)
dy = zeros(2,1);
% a column vector
dy(1) = y(2);
dy(2) = -0.2*y(2)-0.4*y(1)+0.2;

t=linspace(0,50,115);
>> [T,Y] = ode15s(@massamola,[0 50],[1 0])
>> plot(t,Y(:,1))

30

7.9) Criando um .mdl dentro de um script

8) Exercicios:
1) Simular um circuito RLC variando a frequncia do gerador e observando a
impedncia dos elementos.

31

9) Bibliografia:
[1] Introduo ao MATLAB, Frederico F. Campos, filho
[2] Sinais e Sistemas lineares - B.P. Lathi
[3] Curso de MATLAB 5.1 , Universidade Federal do Rio de Janeiro
[4] Curso de simulink 2.0 Universidade Federal do Rio de Janeiro

32