Académique Documents
Professionnel Documents
Culture Documents
agosto de 2010
Sumrio
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]%
>>v=[1.5;-3.2;-8.9]
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
2.2) Expresses:
2.2.1) Expresses aritmticas
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
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
9
243
6561
27
729
19683
10
>> b=9:-1:0
b=
9
>> c=5
c=
5
>> d=a>=c
d=
0
10
>>x=-2:0.01:2;
>>plot(x,x.^2)
>> 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)
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
14
2.4) Exerccios
1)Construir os Vetores:
1.3)
1.5)
1.6)
15
O comando format
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
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
2
0
1
1
5
9
3
0
0
6
7
2
a>=0
b=sqrt(a)
end
a=-10:10
format long eng
if a>=0
b=sqrt(a)
else
b=exp(a)
end
18
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);
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
-3
127
757
2981
8911
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
-6
12
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
23
7) Exerccios: Parte 2
2.1)
2.2)
2.3)
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>
25
x(0) = 0
x(t) =1 cos(t)
27
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.
function [dy]=rigid(t,y)
dy = zeros(3,1);
% a column vector
dy(1) = y(2) * y(3);
29
|
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
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