Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila MATLAB (Baleeiro)
Apostila MATLAB (Baleeiro)
grau.
% Objetivo: Calcular raizes de uma equao do 2o.grau
% Prof. Baleeiro
disp(' ==== Entre com a, b e c ==== ');
a = input(' Coeficiente de x^2 ');
b = input(' Coeficiente de x ');
c = input(' Termo independente de x ');
if a == 0.
disp(' ==== A equacao nao e do segundo grau ==== ');
a = input(' Coeficiente de x^2 - a <> 0 ');
end
delta = b^2-4.*a*c;
delta
if delta == 0.
ch = 0;
end
if delta < 0.
ch = -1;
end
if delta > 0.
ch = 1;
end
x(1) = (-b + sqrt(delta))/(2.*a);
x(2) = (-b - sqrt(delta))/(2.*a);
x
switch ch
case 0, disp(' Raizes reais e iguais.')
case -1, disp(' Raizes complexas conjugadas.')
otherwise,disp(' Raizes reais e desiguais.')
end
% Fim
47
Para executar este programa preciso apenas digitar no ambiente do MATLAB
(isto , no prompt) o nome do programa sem a extenso:
>>raizes < ENTER >
As razes de qualquer polinmio podem ser encontradas de maneira mais direta
no ambiente de trabalho do MATLAB. O comando utilizado denominado "roots", que
tem o formato a seguir:
>>roots([A B C]) < ENTER >
Onde A coeficiente do termo x^2, B o coeficiente do termo x e C o termo
independente.
Por exemplo, as razes da equao do 2
o
x^2 - 5x + 6 = 0 so:
Um outro exemplo de clculo da razes de um polinmio:
Ou seja, as razes do polinmio x^3-6x^2+11x-6 = 0 so: 1, 2 e 3.
Obs.: O comando poly faz a operao inversa do comando roots, ou seja,
tendo-se as razes, obtm-se o polinmio correspondente. Assim,
poly([1 2 3])
ans =
1 -6 11 -6 (polinmio x^3 - 6x^2 + 11x - 6 = 0)
roots([1 -6 11 -6])
ans =
3.0000
2.0000
1.0000
roots([1 -5 6])
ans =
3
2
48
Exemplo 9.2: Um outro exemplo de implementao de um cdigo .m no MATLAB
mostrado a seguir em que a soluo de um sistema algbrico linear obtida pela
aplicao do mtodo iterativo de Jacobi. Denominaremos este programa de jacobi.m.
% Metodo de Jacobi para solucionar Ax = b
% Prof. Baleeiro
A = [6 -1 0;-1 4 1;0 1 6]
b = [-1; 1 ; 2]
[n,n] = size(A);
x = zeros(n,1);
r = zeros(n,1); % vetor de residuos
tol = 1e-2;
% Matriz de iteracao:
D = diag(diag(A))
L = tril(A)-D;
U = triu(A)-D;
E = -inv(D)*(L + U);
F = inv(D)*b;
% Autovalores de E
eig(E)
k = 0;
maior = inf;
while maior > tol
x = E*x + F;
r = A*x-b;
maior = norm(r,inf) % norma infinita do vetor r
pause
k = k + 1;
end;
x
k
49
Para compreender o cdigo mostrado anteriormente, segue uma breve
descrio do mtodo iterativo de Jacobi para soluo de b Ax = . O mtodo iterativo de
Jacobi quando aplicado para resolver um sistema de equaes lineares algbricas
simultneas, do tipo b Ax = baseia-se numa partio da matriz dos coeficientes, da
seguinte forma D U L A + + = , onde L e U so matrizes triangulares inferior e superior
obtidas de A, respectivamente, excluindo-se os elementos da diagonal, e D a matriz
composta apenas dos elementos da diagonal da matriz A (observe que L , U e D no
so matrizes resultantes da fatorao de A, trata-se apenas de uma partio).
Dessa forma, o sistema original pode ser reescrito como a seguir:
,
) (
F Ex x
b x U L Dx
b Ax
+ =
+ + =
=
de modo que,
b D F U L D E
1 1
), (
= + = .
Designando E com a matriz de iterao, ) (
1
U L D E + =
, dado
) 0 (
x e uma
tolerncia tol , o processo iterativo consiste em construir aproximaes do vetor
soluo x do sistema algbrico, conforme a equao de iterao mostrada a seguir:
F Ex x
k k
+ =
+ ) ( ) 1 (
, para , 3 , 2 , 1 , 0 = k .
O processo iterativo deve continuar enquanto o critrio de convergncia no for
alcanado. Uma forma que pode ser adequada para verificar a convergncia calcular
a norma-infinita do vetor de resduos, b Ax r
k k
=
+ + ) 1 ( ) 1 (
, isto , se tol r
k
+ ) 1 (
,
ento a
) (k
x a uma aproximao aceitvel para solucionar b Ax = . Uma condio
para convergncia do mtodo de Jacobi que o maior mdulo dos autovalores da
matriz E seja inferior a 1.
Os passos do algoritmo do mtodo de Jacobi para soluo de sistemas b Ax =
so apresentados a seguir:
50
A = [-1, 2, 0; 1/2, 9, 3; 2, 4, 5]
A =
-1.0000 2.0000 0
0.5000 9.0000 3.0000
2.0000 4.0000 5.0000
b = [3; -2; 7]
b =
3
-2
7
x = A\b
x =
-6.1923
-1.5962
5.1538
Dados A, b , tol e
) 0 (
x
Calcule D diag(diag(A)), L , tril(A) D, U triu(A) D
) (
1
U L D E + =
b D F
1
=
Verifique se 1 |) (| <
i
mximo (use o comando eig(E))
Faa 0 k , maior
Enquanto maior > tol faa
F Ex x
k k
+
+ ) ( ) 1 (
, maior |) (|
) 1 (
b Ax mximo
k
+
, 1 + k k
Fim enquanto
Sada x e k
Exemplo 9.3: Soluo de sistema de equaes algbricas lineares
(
(
(
=
(
(
(
(
(
(
7
2
3
5 4 2
3 9
0 2 1
3
2
1
2
1
x
x
x
A soluo do exemplo 9.3 facilmente obtida informando ao MATLAB, no
prprio prompt, a matriz A e o vetor independente b . A soluo x procurada para o
sistema obtida com o comando x = A\b, como a seguir.
51
10 MATEMTICA SIMBLICA
Exemplo 10.1: Soluo de integral definida
dx
x
}
+
1
0
1
2
1
O exemplo 10.1, para ser resolvido, requer que seja informado ao MATLAB que
h uma varivel x , que deve ser tratada como um dado simblico. Isto feito atravs
do comando:
Os comandos seguintes mostram a finalizao da soluo do exemplo 10.1:
Realmente, o valor resultante da integrao da funo
1
1
) (
2
+
=
x
x f entre 0 e 1
de fato
4
.
Exemplo 10.2: Sistema massa-mola. Este sistema ser, tambm, analisado usando
o Simulink, na seo 11 deste texto.
Fig. 10.1: Sistema massa-mola.
syms x
int(1/(x^2 + 1),0,1)
ans =
1/4*pi
x
m
F
m
0
52
As equaes do sistema massa-mola so dadas na seo 11 e, assim, passa-se
diretamente ao programa .m desenvolvido e os resultados mais importantes.
Selecionou-se para este exemplo os grficos de energia versus deslocamento e
velocidade versus deslocamento, que sero comparados com os resultados
equivalentes, quando da utilizao do Simulink. Observar que, no presente resultado, a
velocidade mostrada apenas no sentido do deslocamento negativo para o positivo. A
velocidade no sentido inverso (que mostrada no modelo do Simulink) negativa.
% Sistema massa-mola
% Prof. Jos Wilson
k =input('constante de elasticidade da mola (N/m)Ex.:700= ');
xmax=input('deslocamento mximo da mola xmax (cm);Ex.: 20= ');
m =input('massa do bloco ligado mola (g); Ex.:500= ');
xmax = xmax/100;
m = m/1000;
x = [-xmax:0.001:xmax];
Etotal = (1/2)*k*(xmax^2); % Energia total
F = -k*x; % Fora na mola
Ep = (1/2)*k*(x.^2); % Energia potencial
Ec = Etotal - Ep; % Energia cintica - Conservao de energia
v = sqrt(2*Ec./m); % Velocidade da massa-Conservao de energia
vmax = sqrt(2*Etotal/m); % Velocidade mxima
figure(1)
plot(x*100,Ep,'r')
hold on
plot(x*100,Ec,'k')
plot(x*100,Etotal,'m')
axis([-xmax*100 xmax*100 0 Etotal])
xlabel('deslocamento (cm)')
ylabel('energia cintica, potencial e total (J)')
grid on
hold off
figure(2)
plot(x*100,v)
axis([-xmax*100 xmax*100 0 vmax])
xlabel('deslocamento (cm)')
ylabel('velocidade da massa (m/s)')
grid on
53
Fig. 10.2: Energia Cintica, Potencial e Total versus Deslocamento
Fig. 10.3: Velocidade versus Deslocamento
Exemplo 10.3: Lanamento de projtil. Neste exemplo entra-se com os dados de
altura inicial, velocidade inicial, posio horizontal inicial e ngulo de lanamento. O
programa calcula o tempo transcorrido at o projtil atingir o solo, a velocidade no
momento em que toca o solo e a altura mxima atingida.
-20 -15 -10 -5 0 5 10 15 20
0
2
4
6
8
10
12
14
deslocamento (cm)
e
n
e
r
g
i
a
c
i
n
t
i
c
a
,
p
o
t
e
n
c
i
a
l
e
t
o
t
a
l
(
J
)
Energia Potencial
Energia Cintica
Energia Total
-20 -15 -10 -5 0 5 10 15 20
0
1
2
3
4
5
6
7
deslocamento (cm)
v
e
l
o
c
i
d
a
d
e
d
a
m
a
s
s
a
(
m
/
s
)
54
Fig. 10.4: Lanamento de projtil
V
O
V
OY
V
OX
h
d
d
O
h
O
% Lanamento de projtil
% Prof. Jos Wilson
ho = input('Altura inicial ho (m) Ex.: 40 = ');
vo = input('velocidade inicial vo (m/s) Ex.: 25 = ');
alfa = input('ngulo de lanamento alfa (grau) Ex.: 45 = ');
do = input('posio inicial do projtil (m) Ex.: 0 = ');
alfa = alfa*pi/180;
vxo = vo*cos(alfa);
vyo = vo*sin(alfa);
g = -9.8; % Acelerao da gravidade
h = [0.5*g vyo ho]; % Para clculo do tempo mximo
tlimites = roots(h); % Clculo do tempo limite - tem 2 valores
if tlimites(1) > 0
tmax = tlimites(1);
else
tmax = tlimites(2);
end
t = [0:0.01:tmax];
vx = vxo;
vy = vyo + g*t;
thmax = abs(vyo/g); % tempo para atingir altura maxima
d = do + vxo*t;
h = ho + vyo*t + 0.5*g.*t.^2;
55
Fig. 10.5: Altura do projtil versus alcance horizontal
A altura mxima, a distncia mxima e o tempo decorrido at atingir o solo so:
h
max
= 55,9 m d
max
= 91,6 m t
max
= 5,18 s
hmax = ho + vyo*thmax + 0.5*g*thmax^2; % altura maxima
vmax = vyo + g*tmax; % velocidade maxima
dmax = do + vxo*tmax; % distancia maxima alcancada
figure(1)
plot(d,h)
axis([0 dmax 0 hmax])
xlabel('distncia horizontal (m)')
ylabel('altura (m)')
grid on
figure(2)
plot(t,h)
axis([0 tmax 0 hmax])
xlabel('tempo (s)')
ylabel('altura (m)')
grid on
figure(3)
plot(t,d)
axis([0 tmax 0 dmax])
xlabel('tempo (s)')
ylabel('distncia horizontal (m)')
grid on
0 10 20 30 40 50 60 70 80 90
0
10
20
30
40
50
distncia horizontal (m)
a
l
t
u
r
a
(
m
)
56
10.1 Uso da Matemtica Simblica
O MATLAB possui um Toolbox que permite ao usurio operar com matemtica
simblica. Sabemos que variveis numricas so usadas para armazenar valores
numricos (e.g., x = 2) e vetores de caracteres so usados para armazenar textos (e.g.,
s = Jonas). O Toolbox de Matemtica Simblica usa objetos simblicos para
representar variveis e operaes (e.g., x = sym( x )). Neste tipo de aplicao no
necessrio que as variveis tenham um valor numrico predefinido.
A matemtica simblica consiste da resoluo de equaes simblicas (isto ,
na forma literal) e da execuo de operaes de clculo diferencial/integral e lgebra
por meio da aplicao de regras conhecidas e identidades a determinados smbolos,
exatamente como voc aprendeu a resolv-las nos cursos de clculo e lgebra.
Exemplo 10.4: Obter, de forma literal, a derivada em relao a x da funo f(x)
dada a seguir:
bx ax x f + =
2
) (
necessrio, em primeiro lugar, informar ao MATLAB que x, a, b e f no so
objetos simblicos, ou seja, no possuem valores numricos. Ento:
Em seguida, define-se a funo e utiliza-se o comando diff para concluir a
operao simblica de derivao.
syms x a b f
f = a*x^2 + b*x
f =
a*x^2+b*x
diff(f,x)
ans =
2*a*x+b
57
Exemplo 10.5: Outro exemplo (mais complexo) do uso da matemtica simblica do
MATLAB. Clculo da rea interna de uma elipse dada no sistema de coordenadas xy
pela equao:
1
2
2
2
2
= +
b
y
a
x
Deseja-se obter uma frmula para calcular sua rea interna A dados a e b . A
integral mostrada a seguir usada no clculo dessa rea.
dx x a
a
b
A
a
}
=
0
2 2
4
A soluo deste problema conhecida dos estudantes que fizeram cursos de
clculo diferencial e integral. O resultado A=ab. Utilize a Toolbox de Matemtica
Simblica para comprovar este resultado. No caso, voc dever lanar mo do
comando int, que calcula integral de uma funo dada em intervalo definido.
10.2 Grficos em Duas Dimenses
Embora existam vrias formas para se fazer grficos, nesta seo vamos nos ater
apenas exemplificao do emprego do comando plot. Esse comando j foi
utilizado em alguns exemplos anteriores.
Exemplo 10.6: Grfico em duas dimenses
Esse exemplo cria 30 pontos no intervalo 2 2 x para formar o eixo
horizontal do grfico e cria o vetor y contendo a exponencial
2
x
e
dos pontos em x. O
x = linspace(-2,2,30);
y = exp(-x.^2);
plot(x,y)
58
comando plot abre uma janela grfica, ajusta os eixos para acomodar os dados,
marca os pontos e conecta-os a linhas retas. O resultado ilustrado na Fig. 10.6.
Fig. 10.6: Sada grfica obtida com os comandos indicados anteriormente.
10.3 Grficos em Trs Dimenses
Para elaborar grficos tridimensionais o MATLAB possui diversos comandos
poderosos. Sugerimos que voc tente as seqncias de comandos propostas nos
exemplos que seguem.
Exemplo 10.7: Use do comando plot3 para desenhar uma hlice, de acordo com a
seqncia:
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
t = linspace(0, 10*pi);
plot3(sin(t),cos(t),t)
59
x = -7.5:.5:7.5;
y = x;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
Exemplo 10.8: Uso do comando mesh para grficos tridimensionais. Use a
seqncia de comandos para desenhar uma superfcie.
Fig. 10.7: Sada grfica obtida com a seqncia de comandos do exerccio 3.
60
11 SIMULINK
O SIMULINIK um Programa de Simulao dinmica de sistemas a partir de
seu modelo no espao de estados, do seu modelo no domnio da freqncia ou do seu
modelo no domnio do tempo.
O simulink iniciado digitando-se simulink na linha de comando do MATLAB,
ou ainda selecionando-se o boto de incio do SIMULINK. Uma vez iniciado
apresentada a tela da figura a seguir:
Fig. 11.1: Tela Inicial do Simulink
Fig. 11.2: Funes disponveis para a classe linear do Simulink.
61
Os diversos blocos de simulao podem ser arrastados para o arquivo, com a
finalidade de montar o modelo para simulao. Cada classe de funes possui uma
janela prpria (caixa), veja por exemplo os blocos disponveis para as funes da
classe linear na figura anterior.
A seguir so dados alguns exemplos de emprego do Simulink em problemas de
Matemtica, Fsica, Circuitos Eltricos, Controle de Processos e Outros.
Exemplo 11.1: Equao Diferencial de Primeira Ordem
Considere . , ), ( R R = t u t u u Seja a equao diferencial de primeira ordem
em ) (t u , com valor inicial conhecido, . 1 ) 0 ( = u
0 2 = + u t
dt
du
(11.1)
Analiticamente fcil mostrar que uma soluo dessa equao diferencial :
2 2
) ( ) 0 ( ) (
t t
e t u e u t u
= = (11.2)
Vamos resolver a equao diferencial (11.1) utilizando o Simulink e, ao final,
obteremos a resposta na forma grfica.
Soluo:
PASSO 1: Inicialmente escreve-se a equao (11.1) de uma forma mais adequada
para diagrama de blocos. Transpondo os termos, chega-se forma indicada
em (11.3):
}
= dt u t u 2 (11.3)
Ao fator 2 chamamos de ganho; o integrando resultado de um produto de duas
funes, t e u . Portanto, a resposta u a resultante da sada de um integrador
multiplicado pelo ganho 2.
62
PASSO 2: A partir da janela mostrada na Figura 11.1, selecionamos os blocos
necessrios para expressar a relao (11.3).
Fig. 11.3: Diagrama de blocos para resolver o Exemplo 11.1
A condio inicial informada ao bloco integrador. O eixo dos tempos
representado pelos blocos Clock e To Workspace. Em ambos os blocos To
Workspace preciso definir o nmero de pontos e o tamanho do passo numrico
(neste exemplo, tomamos 5000 e 0.01, respectivamente).
PASSO 3: Para executar o arquivo criado, definido pelo diagrama de blocos, nos cones
da mesma janela, pressionamos Simulation e, em seguida, Start.
Fig. 11.4: Para executar o arquivo de blocos.
PASSO 4: Para visualizar o resultado, no prompt do MATLAB, digitamos o comando:
A sada grfica da resposta t t u ) ( como ilustra a Fig. 11.5.
plot(t,u)
63
Fig. 11.5: Grfico de t t u ) ( para 0 t .
Finalizamos, desse modo, a soluo da equao diferencial (11.1), que resultou
na representao grfica da funo
2
t
e
para 0 t .
Exemplo 11.2: Sistema Massa-Mola
Fig. 11.6: Representao do Sistema Massa-Mola
0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
m
F
m
0
64
Equaes bsicas da Fsica:
Acelerao:
2
2
dt
x d
dt
dv
a = = ( 11.4 )
Velocidade:
}
= = adt
dt
dx
v ( 11.5 )
Deslocamento:
}
= vdt x ( 11.6 )
Equaes bsicas do Sistema massa-mola:
Fora: ma kx F = =
2
2
dt
x d
m kx = x
m
k
dt
x d
a = =
2
2
( 11.7 )
Energia potencial:
2
2
1
kx E
p
= ( 11.8 )
Energia cintica :
2
2
1
mv E
c
= ( 11.9 )
Verifica-se das equaes que a acelerao, no sistema massa-mola,
diretamente proporcional ao deslocamento 'x'. O fator de proporcionalidade a
constante '-k/m'. Essa a informao inicial para comear o modelo dado na Fig. 11.7.
Fig. 11.7: Modelo do Simulink para o Sistema Massa-Mola
Para a simulao do sistema necessrio fornecer um valor inicial para um dos
dois blocos de integrao. Essa informao ser, no caso, o limite para a varivel de
sada. Por exemplo, desejando-se limitar o deslocamento 'x' entre os valores -20 cm
(-0.2 m) e 20 cm, fixa-se em 0.2 o valor inicial da segunda integral. Uma outra
x
v
a
v
vel oci dade
t
tempo
x
posi o
ac
acel erao
s
1
Integrator1
s
1
Integrator
k/2
m/2
-k/m
Ep
En. Potenci al
Ec
En. Ci neti ca
Cl ock
65
informao fundamental o valor da constante de proporcionalidade 'k' e o valor da
massa 'm'. Esses valores podem ser digitados diretamente no prompt (rea de trabalho
do MATLAB), como mostrado a seguir:
As figuras que seguem so resultantes do modelo da Fig. 11.7.
Fig. 11.8: Energia cintica e potencial versus deslocamento
Fig. 11.9: Energia cintica e potencial versus velocidade
-0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
0
5
10
15
posio (m)
E
n
e
r
g
i
a
C
i
n
t
i
c
a
e
P
o
t
e
n
c
i
a
l
(
J
)
Energia Cintica
Energia Potencial
-8 -6 -4 -2 0 2 4 6 8
0
5
10
15
velocidade (m/s)
E
n
e
r
g
i
a
C
i
n
t
i
c
a
e
P
o
t
e
n
c
i
a
l
(
J
)
Energia Cintica
Energia Potencial
k = 700;
m = 0.5;
66
Fig. 11.10: Velocidade versus deslocamento
Exemplo 11.3: Circuito RC Srie
Considere o circuito eltrico da Fig. 11.11, que possui um resistor e um capacitor
em srie alimentados por uma fonte constante. O capacitor possui uma tenso inicial
V v 10 ) 0 ( = e deseja-se obter a resposta t t v ) ( para . 0 t
Fig. 11.11: Circuito eltrico RC srie com uma fonte de tenso contnua.
-0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
-8
-6
-4
-2
0
2
4
6
8
v
e
l
o
c
i
d
a
d
e
(
m
/
s
)
posio
67
Modelagem Matemtica do Circuito
A modelagem matemtica do circuito obtida aplicando-se a 2
a
Lei de Kirchhoff
ao percurso fechado, e usando a forma genrica e , para expressar tenso:
0 = v v e
R
Por outro lado, sabemos relacionar a tenso no resistor e a tenso no capacitor
com a corrente que os atravessam, ) (t i :
) (t Ri v
R
=
dt
dv
C t i = ) ( 0 ) ( = v t Ri e ou 0 = v
dt
dv
RC e
Assim, a equao diferencial geral fica:
e
RC
v
RC dt
dv 1 1
= +
Substituindo os valores de R = 1k e C = 1mF e V E e 5 = = na equao
anteriormente mostrada, resulta na equao mostrada a seguir:
5 = + v
dt
dv
onde 10 ) 0 ( = v .
Soluo do Circuito Utilizando o Simulink
Para utilizar o Simulink devemos expressar a equao diferencial da seguinte
maneira:
}
= dt v e
RC
v ) (
1
A expresso acima conseguida facilmente apenas isolando o termo
dt
dv
e
depois aplicando a integrao (que a operao inversa da derivao). Essa forma
68
ideal para a simulao usando o Simulink. Constri-se ento o modelo mostrado na
Fig. 11.12.
Fig. 11.12: Diagrama de blocos do Simulink para o circuito eltrico da Fig. 11.11
Fig. 11.13: Sada grfica t t v ) ( para 0 t para o circuito eltrico da Fig. 11.11.
0 2 4 6 8 10
5
5.5
6
6.5
7
7.5
8
8.5
9
9.5
10
69
12 EXERCCIOS RESOLVIDOS
01) Considere a seguinte equao diferencial: ) ( 32 32 12
2
2
t u y
dt
dy
dt
y d
= + + . Obter a
soluo y(t) supondo todas as condies iniciais iguais a zero, usando a transformada
Laplace.
A transformada Laplace :
s
s Y s sY s Y s
32
) ( 32 ) ( 12 ) (
2
= + +
A soluo para ) (s Y :
s s s s s s
s Y
32 12
32
) 32 12 (
32
) (
2 3 2
+ +
=
+ +
=
Resolver a equao diferencial utilizando a funo residue do MATLAB.
Soluo:
>> numy = 32
>> deny = [1 12 32 0]
>> [r p k] = residue(numy,deny)
O resultado obtido o seguinte:
r =
1
-2
1
p =
-8
-4
0
k =
[]
que se traduz em:
70
) 8 (
1
) 4 (
2 1
) (
+
+
+
=
s s s
s Y
) 2 1 ( ) (
8 4 t t
e e t y
+ = .
02) O movimento da massa, designado por ) (t y , descrito pela equao diferencial:
( ) ( )
( ) ( ) t r t ky
dt
t dy
b
dt
t y d
M = + +
2
2
onde:
M = massa em kg,
b = forca de atrito (amortecimento viscoso),
k = constante de mola de uma mola ideal,
r = fora em Newton.
A resposta dinmica livre, ) (t y , do sistema
)
2
1 (
2
1
) 0 (
) (
= t
n
sen
t
n
e
y
t y
onde:
= relao de amortecimento =
kM
b
2
n
= freqncia natural do sistema =
M
k
e
1
cos
= .
Fazendo-se ) 0 ( y = 0.15 m, M = 1kg, k = 2, para 1 = b , simule no MATLAB para obter o
grfico referente a resposta natural do sistema e verifique que a resposta
subamortecida.
Soluo:
>> y0 = 0.15;
>> wn = sqrt(2);
>> quisi = 1/(2*sqrt(2*1));
>> c1 = (y0/sqrt(1-quisi^2));
>> teta = acos(quisi);
>> t=[0:0.1:10];
>> c2 = exp(-quisi*wn*t);
>> c3 = sin(wn*sqrt(1-quisi^2)*t+teta);
>> y=c1*c2.*c3;
>> plot(t,y)
71
O grfico da resposta natural do sistema obtido com o MATLAB para os parmetros
dados mostrado na Fig. 12.1.
Fig. 12.1: Sada grfica t t y ) ( para 0 t .
03) Dada a funo de transferncia, obtenha o que se pede:
a) calcular zeros e plos;
b) exibir a funo de transferncia;
c) obter o mapa dos zeros e plos.
200 30
70 10
) (
2
+ +
+
=
s s
s
s G
Soluo:
>> numg = [10 70];
>> zeros = roots(numg)
>> deng = [1 30 200]
>> polos = roots(deng)
>> tfout(numg,deng)
>> sys = zp(zeros,polos,1);
>> pzmap(sys)
72
04) Um sistema dinmico linear representado no espao de estados pelas seguintes
equaes matriciais:
Du Cx y
Bu Ax x
+ =
+ =
Obtenha a representao no espao de estados sob a forma de variveis de fase das
seguintes funes de transferncia usando a funo tf2ss do MATLAB:
9 7
1 2
) (
2
1
+ +
+
=
s s
s
s T
Soluo:
>> num=[2 1]
>> den=[1 7 9]
>> [A,B,C,D]=tf2ss(num,den)
As matrizes resultantes so:
A =
-7 -9
1 0
B =
1
0
C =
2 1
D =
0
05) Sejam as seguintes funes de transferncia nos blocos em cascata:
) 14 )( 2 )( 5 (
) 4 )( 2 (
) (
+ +
=
s s s
s s
s G
R(s)
U(s)
Y(s)
2
500
1
) (
s
s
s H
+
=
Use a funo series do MATLAB para transform-las em uma s.
73
Soluo;
>> n1=[1 -2]
>> n2=[1 -4]
>> ng=conv(n1,n2)
>> d1=[1 5]
>> d2=[1 2]
>> d3=[1 -14]
>> dg=conv(d1,conv(d2,d3))
>> nh=[1 1]
>> dh=[500 0 0]
>> [n,d]=series(ng,dg,nh,dh)
A funo de transferncia resultante dos dois blocos em cascata a seguinte:
2 3 4 5
2 3
70000 44000 3500 500
8 2 5
s s s s
s s s
+ +
.
06) Analise a seqncia de comandos do MATLAB apresentada a seguir.
a) extraindo e inserindo
A = [ 1 3 4; -1 3 0; 6 -1 2]
C = [1 + i, 1 - i; 2i, 1 i]
b = [1; 3; -1]
A(:,2)
A(1,:)
A(2,3)
M = [A,b]
M(end)
transpose(C) % diferente de C' se C for complexa
C'
A(3:6)
A(:,2) = [0; 0; 0] % insere o vetor da direita no lugar da
coluna 2
74
b) criando matrizes
>> D = ones(3)
>> Z = eye(3)
>> R = rand(3)
c) operaes sobre matrizes e sobre elementos de matrizes
>> trace(A) % soma algbrica dos elementos da diagonal de A
>> [m,n] = size(A)
>> [L,U,P] = lu(A) % obtem a fatorao PLU de A
>> chol(A) % somente para matriz definida positiva
d) decomposio espectral
Y = [4+i, -1+i, -3-2i;-1+i, 3-i, -2+i;-3-2i, -2+i, 5+i]
[P,D] = eig(Y)
W = P*D*P^-1
Y-W
Z = inv(Y)
disp(' o produto tem que resultar na matriz identidade');
Z*Y
H = P^-1;
B = (D^-1)*H;
U = P*B
Z-U
07) Obtenha uma raiz da funo unidimensional 1 ) ( + =
x e x f
x
com estimativa inicial
8 . 0
) 0 (
= x .
Soluo:
75
>> fzero('exp(-x)-x+1',0.8) % obtem um zero da funcao
08) Dada a funo de transferncia
1
1
) (
) (
) (
+
= =
s s R
s C
s T ,
determine a resposta do sistema ao degrau unitrio,
s
s R
1
) ( = .
Soluo:
>> clf
>> numg = [0 1];
>> deng = [1 1];
>> G = tf(numg,deng)
>> step(G)
>> title(' Amplitude versus tempo ')
pause
A resposta como mostrada na Fig.12.2.
Fig. 12.2: Sada grfica ) (t c com entrada ) ( ) ( t u t r = , para 0 t .
76
09) Obtenha 5 termos do desenvolvimento em Srie de Taylor da funo x x f cos ) ( = .
Soluo:
>> syms x
>> taylor(cos(x),5)
ans =
1-1/2*x^2+1/24*x^4
10) Ao final de sua seo de trabalho no prompt salve-a com o comando save em um
arquivo com extenso .mat.
Soluo:
>> save hoje.mat
Dessa forma,o comando save salva o workspace em um arquivo .mat.
Em seguida, utilize o comando clear all para limpar o contedo da memria. Atravs
do comando load hoje.mat possvel carregar o contedo da memria permitindo a
retomada do trabalho que estava sendo realizado.
11) Elabore um programa em arquivo .m que utilize a function do MATLAB.
Soluo:
function [f] = fun2(a,b,x) % em arquivo .m separado
global f;
f = (b/a)*sqrt(a^2 - x.^2);
return;
% o conteudo a seguir em arquivo .m separado
global f;
a = input(' Valor de a: ');
b = input(' Valor de b: ');
N = input(' No. de simulacoes: ');
k = 0;
77
for j = 1:N,
x = a*rand; y = b*rand;
fun2(a,b,x);
if y <= f
k = k + 1;
end;
end;
area = 4.*a*b*k/N % o valor exato e pi*a*b
78
13 EXERCCIOS PROPOSTOS
01) Dada a matriz 3 3 , simtrica e definida positiva,
(
(
(
=
6 1 0
1 4 1
0 1 6
A , e dado o vetor
de termos independentes,
(
(
(
=
2
1
1
b ,
a) use o comando chol(A)e obtenha a fatorao Cholesky da matriz A;
b) verifique que C C A
T
= usando o comando transpose;
c) a partir dos fatores Cholesky de A, calcule a soluo
T
x x x x ] [
3 2 1
= de b Ax = .
02) Dada a matriz literal 3 3 ,
(
(
(
+
=
d a
a d a a
a d a
A
0
0
, e dado o vetor de termos
independentes, tambm literal,
(
(
(
+
=
0
a
d a
b , utilize os recursos da matemtica simblica
para obter a soluo
T
x x x x ] [
3 2 1
= .
Primeiro aplique a funo inv(A) para obter x . Em seguida, empregue as funes
simplify e pretty para melhorar a visualizao da resposta.
03) Dados
(
(
(
=
3 2 1
1 1 2
2 3 1
A e
(
(
(
=
4
5
7
b , utilize o comando rref sobre a matriz
aumentada para obter forma escalonada reduzida e mostre que o sistema b Ax =
incompatvel. Para maior clareza, sugere-se que, antes de empregar o comando rref,
declare os clculos na forma de fraes usando format rat.
04) Determine o zero da funo transcendental x e x f
x
=
4
) ( utilizando a funo
fzero com estimativa inicial 0.1. Confira no grfico atravs de
79
>> ezplot('exp(-4*x)-x',0,1).
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x
exp(-4*x)-x
05) Dada a equao diferencial 0 ) ( 2
) (
3
) (
2
= + + t x
dt
t dx
dt
t x d
, com 1 ) 0 ( = x e 0
) 0 (
=
dt
dx
.
Utilize o comando dsolve para obter a soluo ) (t x . Em seguida, visualize o grfico
da resposta obtida, ) (t x , no intervalo 2 0 t .
06) Dados os binmios 1 + x , 2 x e 4 + x . Multiplique-os usando conv. A partir do
polinmio que resultou da multiplicao calcule as razes usando roots.
07) Desejamos calcular a soluo analtica do seguinte sistema de equaes
= +
+ = +
= +
1
) ( 2 1
1
2 2
2
2 2
b a
b a xy
y x
.
Para tal, utilize o comando solve:
>> [b,x,y]=solve('x^2+y^2=1','1 +
2*x*y=(a + b)^2','a^2 + b^2=1').
As solues esperadas so: a x = , b y = ou a x = , b y = .
80
[x,y] = meshgrid(-2:.2:2, -2:.2:2);
z = x .* exp(-x.^2 - y.^2);
[px,py] = gradient(z,.2,.2);
contour(z), hold on, quiver(px,py), hold off
08) Sabemos que a derivada primeira da funo ) ( ) ( x tg x f = ) ( sec 1
2
x
dx
df
+ = , sendo
) cos(
1
) sec(
x
x = . Verifique este fato usando o comando diff('sin(x)/cos(x)')
seguido logo aps pelo comando simplify(ans).
09) Calcule a rea sobe a curva da funo
2
1
4
) (
x
x f
+
= no intervalo 1 0 x . Use o
comando int com limites de integrao definidos.
10) No Curso de Clculo Diferencial e Integral, o professor ensina que a seguinte
integral indefinida
) (
2 2
a
x
tg arc
a
b
dx
x a
b
=
+
}
pode ser solucionada aplicando substituio trigonomtrica. Comprove o resultado
mostrado anteriormente utilizando matemtica simblica e o comando int sem limites
de integrao.
11) Utilize o comando pretty(diff(1/a*atan(x/a)*b,x)) e verifique que o
resultado do exerccio 10 est correto.
12) Um importante conceito associado com a derivada de funes escalares
n dimensionais o gradiente. Digite a seqncia de instrues no prompt do
MATLAB:
Para entender melhor o que foi calculado com as instrues anteriores utilize
surf(x,y,z).
81
14 BIBLIOGRAFIA
[1] HANSELMAN, Duane e LITTLEFIELD, Bruce. "MATLAB 5 Verso do Estudante,
Guia do Usurio, Makron Books, So Paulo, 1999. 413 p. ISBN: 85-346-1058-4.
[2] ALVES, Antnio Csar Baleeiro. Notas de Aulas do Curso de Circuitos Eltricos da
EEEC/UFG.
[3] RESNICK, Robert e HALLIDAY, David, "Fsica 1," 3
a
ed., Livros Tcnicos e
Cientficos Editora S.A., Rio de Janeiro, 1981, ISBN: 85-216-0076-3.
[4] CHAPMAN, S. J. Programao em MATLAB para engenheiros. Thomson Pioneira.
[5] MATSUMOTO, E. Y. "MATLAB 7, Editora rica.
[6] UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO (UERJ). Curso de MATLAB
5.1: Introduo soluo de problemas de engenharia. 2 edio. 181p.
[7] VALLE, Walkria Nascente. Notas de Aulas do Curso de Laboratrio de Controle de
Processos do CMP/UCG.