Você está na página 1de 21

Utiliza ca o da Symbolic Toolbox do Matlab na resolu ca o de problemas com transformadas Licenciatura em Engenharia El ectrica e Electr onica

P. Felisberto (pfelis@ualg.pt) Departamento de Engenharia Electrot ecnica

Vers ao 1, 2013

Conte udo
1 Sobre este documento 2 O MATLAB c 3 Command window e m-les 4 Opera c oes b asicas 4.1 Exemplo 1 - Um integral (primitiva) simples com gr aco do resultado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Exemplo - Pot encia m edia de um sinal e s erie de Fourier . . 4.4 Exemplo - S erie de Fourier . . . . . . . . . . . . . . . . . . . 3 3 3 4 . 4 . 8 . 9 . 10

5 Transformda de Laplace e Fourier 11 5.1 Exemplo - Transformada de Fourier de uma janela rectangular 12 6 Transformada de Fourier inversa 15 6.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.2 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7 Transformada 7.1 Exemplo . 7.2 Exemplo 2 7.3 Exemplo 3 8 Bibliograa de . . . . . . Laplace e Laplace inversa 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 21

Sobre este documento

Este documento apresenta alguns conceitos b asicos da Symbolic Toolbox do c MATLAB e sua aplica ca o na resolu ca o de problemas de Transformada de Laplace e an alise de Fourier. Assume-se que o aluno tem os conhecimentos b asicos sobre transformadas.

O MATLAB c

O Matlab e uma ferramenta, desenvolvida pela The Mathworks, utilizada na an alise de dados em v arios dom nios das ci encias e tecnologias, nomeadamente em engenharia electrot ecnica. O seu nome e um acr onimo para MATrix LABoratory, sendo a sua losoa a de permitir realizar opera c oes matem aticas complexas, focando-se na aplica ca o e n ao na programa ca o. As opera co es s ao realizadas utilizando um interface de utilizador simples e intuitivo (ver pr oxima sec ca o) n ao sendo necess arios conhecimentos pr evios de programa ca o (embora estes ajudem sobretudo nos desenvolvimentos mais complexos). Embora o Matlab seja essencialmente uma ferramenta que permite obter solu co es num ericas dos problemas, disponibiliza um m odulo de resolu ca o simb olica (Symbolic Toolbox), que ajuda a encontrar solu c oes anal ticas. Nesta aula iremos estudar a utiliza ca o b asica deste m odulo e sua aplica ca o na resolu ca o de problemas de transformadas.

Command window e m-les

O Matlab e uma linguagem interpretada em que o utilizador pode introduzir (digitar) os comandos directamente na Command window (veja a Fig. 1), ou escrever os comandos num cheiro de texto denominado m-le o qual ser a executado sequencialmente a pedido do utilizador. As m-les t em a vantagem de caso se necessite alterar s o alguns comandos numa sequ encia, n ao ser necess ario digitar de novo toda a sequ encia de comandos. O utilizador pode criar uma m-le a partir do menu edit/New/Script, atrav es do respectivo atalho na barra de ferramentas ou invocando o comando edit na Command line.

Figura 1: Exemplo de janela de interface do Matlab. A Command window permite ao utilizador introduzir comandos directamente.

4
4.1

Opera c oes b asicas


Exemplo 1 - Um integral (primitiva) simples com gr aco do resultado

Suponhamos que pretendemos determinar o seguinte integral x2 + 2 xd x Em primeiro lugar temos de denir o s mbolo x, o que se faz com o comando syms >> syms x ans = x ou >> x=sym(x) x = x 4

O camando para calcular o integral e >> int(x^2+2*x) ans = (x^2*(x + 3))/3 Caso se queira guardar o resultado numa vari avel >> I=int(x^2+2*x) I = (x^2*(x + 3))/3 Para obtermos o resultado numa formato mais habitual (ou simplicado) podemos utilizar o comando simple. Este comando vai aplicar v arios m etodos de simplica c ao de express oes, apresentando o resultado para cada um deles. >> simple(I) simplify: (x^2*(x + 3))/3

radsimp: (x^2*(x + 3))/3

simplify(100): (x^2*(x + 3))/3

combine(sincos): (x^2*(x + 3))/3

combine(sinhcosh): (x^2*(x + 3))/3

combine(ln): (x^2*(x + 3))/3

factor: (x^2*(x + 3))/3

expand: x^3/3 + x^2

combine: x^2*(x/3 + 1)

rewrite(exp): (x^2*(x + 3))/3

rewrite(sincos): (x^2*(x + 3))/3

rewrite(sinhcosh): (x^2*(x + 3))/3

rewrite(tan): 6

(x^2*(x + 3))/3

mwcos2sin: (x^2*(x + 3))/3

collect(x): x^3/3 + x^2

ans = x^3/3 + x^2

Note que cada um dos m etodos aplicados anteriormente pode ser chamado individualmente, como por exemplo em >> collect(I) ans = x^3/3 + x^2 Poder a consultar as particularidades de cada m etodo (e genericamente de cada comando do Matlab) utilizando o comando help >> help collect --- help for sym/collect --COLLECT Collect coefficients. COLLECT(S,v) regards each element of the symbolic matrix S as a polynomial in v and rewrites S in terms of the powers of v. COLLECT(S) uses the default variable determined by SYMVAR. Examples: collect(x^2*y + y*x - x^2 - 2*x)

returns (y - 1)*x^2 + (y - 2)*x

f = -1/4*x*exp(-2*x)+3/16*exp(-2*x) collect(f,exp(-2*x)) returns -(x/4 - 3/16)/exp(2*x) See also sym/simplify, sym/simple, sym/factor, sym/expand, sym/symvar. Reference page in Help browser doc sym/collect Se quis essemos guardar o resultado no formato simplicado, poderiamos usar o comando >> I=collect(I) I = x^3/3 + x^2 Podemos fazer um gr aco do resultado com o camando ezplot >> ezplot(I) >> O resultado da execu ca o do comando est a representado na Fig. 2 Neste caso o comando escolhe o intervalo da vari avel independente, mas o comando tem op co es em que se pode, entre outros par ametros, denir o intervalo da vari avel independente. Podemos tamb em calcular o valor da fun ca o em v arios pontos com o comando subs. No exemplo a seguir calculamos o valor do da fun ca o para x = 3 e x = 7. >> subs(I,[ -3 7]) ans = 0 163.3333

4.2

Exemplo

Determine o integral da fun ca o f (x) = x ln(2x + 1) e represente o gr ao do resultado no intervalo [-5,5]. Que observou no gr aco? A fun ca o logaritmo neperiano e o comando log em Matlab. Pode consultar as fun c oes

Figura 2: Gr aco do resultado

matem aticas elementares dispon veis no Matlab usando o comando help elfun. 1 ln(x+ 2 ) +1) 1 . Note que po + x2 ln(2 x 4 O resultado simplicado e x 4 8 2 der a usar o comando pretty para apresentar o resultado de uma forma mais intelig vel. >> pretty(simple(int(f))) / 1 \ log| x + - | x \ 2 / 2 / log(2 x + 1) 1 \ - - ------------ + x | ------------ - - | 4 8 \ 2 4 /

4.3

Exemplo - Pot encia m edia de um sinal e s erie de Fourier

Pretendemos calcular a pot encia m edia de um coseno de amplitude A e per odo T . A pot encia m edia e dada pelo integral

t0 +T

1 T
t0

(Acos(

2 2 t)) dt T

onde A e T s ao constantes. Neste caso temos de denir os s mbolos A, T, t0 e t, temos de indicar que vamos integrar em t, assim como os limites de integra ca o. >> syms t T A t_0 %outra forma de definir s mbolos >> 1/T*int((A*cos(2*pi/T*t))^2,t,t_0,t_0+T) ans = A^2/2 >> pretty(ans) 2 A -2 Deve consultar o help da fun ca o int para conhecer todas as op c oes poss veis. Note que % indica um coment ario, que e particularmente interessante de usar nas m-les.

4.4

Exemplo - S erie de Fourier

Determine o valor dos coecientes da s erie de Fourier representada na gura (Fig 3), sendo que A = 1,To = e a = To /2.

Figura 3: Onda quadrada

10

Sabendo que os s ao coecientes s ao dados por


t+T0

1 Cn = T0
t

f (t)ejn0 t dt

o problema pode ser resolvido utilizando a seguinte sequ encia de comando (ou m-le). Note que o Matlab reconhece i ou j como unidade imagin aria (mas deve ter aten ca o se n ao utilizou anteriormente uma vari avel com o mesmo nome, por exemplo como vari avel de controlo de um ciclo for) %symSFondquad.m %def dos simbolos syms a To A t n %C alculo dos coeffs Cn=simple(1/To*int(A*exp(-j*2*pi/To*n*t),t,-a/2,a/2)) %substitui c~ ao de valores, no caso de n=0 e uma indetermina ca ~o subs(Cn,{n,To,A,a},{[-3 -2 -1 1 2 3], pi,1,pi/2}) %C alculo de Co Co=simple(1/To*int(A,t,-a/2,a/2)) subs(Co,{To,A,a},{ pi,1,pi/2}) %

Transformda de Laplace e Fourier

Em principio poder amos utilizar a fun ca o int para encontrar as transformadas (e transformadas inversas) de fun co es, todavia a Symbolic Toolbox oferece fun co es especializadas para esse efeito. As fun co es s ao: fourier transformada de Fourier (tempo frequ encia) ifourier transformada inversa de Fourier (frequ encia tempo) laplace transformada de Laplace unilateral (tempo frequ encia-s) ifourier transformada inversa de Laplace (frequ encia-s tempo) 11

5.1

Exemplo - Transformada de Fourier de uma janela rectangular

Pretendemos determinar a transformada de Fourier da janela rectangular (Fig. 4). A forma mais simples de denir a janela rectangular e atrav es

Figura 4: Janela rectangular. da composi ca o de degraus unit arios. O comando heaviside representa em Matlab o degrau unit ario (u(t)). Assim a janela rectangular e dada por >> f=heaviside(t+tau/2)-heaviside(t-tau/2) Na Fig. 5 est a o gr aco gerado pelo comando ezplot ( = 1) atrav es dos seguintes comandos >> g=subs(f,tau,1) g = heaviside(t + 1/2) - heaviside(t - 1/2) >> ezplot(g,[-1 1]) A transformada obtem-se com o comando 12

Figura 5: Plot da janela rectangular com o comando ezplot

>> F=simple(fourier(f)) F = (2*sin((tau*w)/2))/w >> pretty(F) / tau w \ 2 sin| ----- | \ 2 / -------------w Se pretend essemos que o resultado fosse em fun ca o da frequ encia poder amos utilizar o comando de substitui ca o >> subs(F,2*pi*f) ans = sin(pi*f*tau)/(pi*f) . 13

Para desenhar o espectro do sinal ( = 1, [10 10 ]), que neste caso e uma fun ca o real pura, podemos utilizar o comando >> ezplot(subs(F,tau,1),[-10*pi 10*pi]) cujo resultado est a na gura (6). No caso gen erico em que necessitamos do

Figura 6: Espectro da janela rectangular m odulo e da fase do espectro podemos utilizar o comando abs para o m odulo. No caso da fase temos de utilizar os comandos atan, real and imag, uma vez que o comando angle d a erro. Por exemplo no caso de uma janela rectangular entre 0 e 1, podemos utlizar a seguinte sequ encia de comandos. syms t

f=heaviside(t)-heaviside(t-1) F=simple(fourier(f)) figure %criar uma figura para o m odulo

ezplot(abs(F),[-10*pi 10*pi]) figure %criar nova figura para a fase

14

ezplot(atan(imag(F)/real(F)),[-10*pi 10*pi]) % a fun ca ~o angle d a erro Utilizou-se o comando gure para que cada gr aco casse numa gura separada e n ao se perdesseo primeiro deles. A Fig. 7(a) apresenta o m odulo e a Fig. 7(b) a fase do espectro. (a) (b)

Figura 7: Espectro da janela rectangular denida entra 0 e 1: m odulo (a), fase (b).

Transformada de Fourier inversa

De modo semelhante podemos utilizar a transformada de Fourier inversa.

6.1

Exemplo
1 . 5 + jw

Represente no tempo a fun ca o cujo espectro e F ( ) =

Uma solu ca o e dada pela seguinte sequ encia de comandos que produz o gr aco apresentado na Fig. 8 syms w x F=1/(5+j*w) f=simple(ifourier(F))

15

f=subs(f,x,t) %substituir a vari avel independente por x por t % por defeito a vari avel independente e notada x figure ezplot(f,[-0.1, 3]) axis([-0.1 3 -0.1 1.1]) % def. dos intervalos do gr afico no eixo do x e y % [xmin xmax ymin ymax])

Figura 8: Fun ca o cujo espectro e F ( ) = 1/(5 + j )

Note que: - por defeito a vari avel independente na transformada inversa e x, tendo-se utilizado o comando subs para denir o t como vari avel indpendente; - por defeito o intervalo de visualiza ca o de valores no eixo do y do comando ezplot e insuciente, tendo-se utilizado o axis para denir limites apropriados - o resultado (ap os simplica ca o) apresentado pelo Matlab e f = heaviside(t)/exp(5*t) 16

heaviside(t) ------------, exp(5 t) mas a forma convencional de apresentar o resultado e o equivalente a exp(5t) heaviside(t).

6.2

Exemplo 2

Consideremos agora a tranformada de Fourier inversa da fun c ao cujo espectro e jw . G( ) = 5 + jw


d Facilmente se conclui que g (t) = d f (t), onde f (t) e fun ca o do problema t anterior, uma vez que G( ) = jF ( ). A fun ca o g (t), transformada inversa de G( ), e obtida por

syms w x G=j*w/(5+j*w); g=simple(ifourier(G)) g=subs(g,x,t) sendo o resultado >> pretty(g) 5 heaviside(t) dirac(t) - --------------, exp(5 t) que e g (t) = (t) 5e5t u(t). Note que o comando dirac(t) representa o fun ca o delta (ou dirac). Fazendo o gr aco da fun ca o com o camando ezplot, obtemos a Fig. 9 Verica-se que para t = 0 o gr aco n ao apresenta um valor innito como se espera da fun ca o, mas isso e um artefacto de visualiza ca o. Calculando o valor de g (0) com >> subs(g,0)

17

Figura 9: Fun ca o cujo espectro e F ( ) = j/(5 + j )

ans = Inf encontra-se o valor (Inf). Existe um comando na Symbolic Toolbox, o comando di, que faz a deriva c ao simb olica. Assim, sendo f o resultado obtido no problema anterior, pela derivada g (t) e f = heaviside(t)/exp(5*t) >> diff(f) ans = dirac(t)/exp(5*t) - (5*heaviside(t))/exp(5*t)

18

Transformada de Laplace e Laplace inversa

Os comandos laplace e ilaplace determinam a express ao da transformada unilateral de Laplace e da transformada inversa de Laplace. Como a transformada e unilateral s o est a denida para t 0 (f (t) e 0 para t < 0). Formalmente dene-se isso multiplicando a fun ca o pelo degrau unit ario, todavia no caso do Matlab isso e omitido (talvez para ser mais leg vel). Aten c ao que isto e diferente do caso da transformada de Fourier, visto anteriormente.

7.1

Exemplo

Determine a transformada de Laplace de e2t sin(5t)u(t). A transformada pode ser obtida pela seguinte sequ encia de comandos syms t f=exp(-2*t)*sin(5*t) F=laplace(f) collect(F) O comando collect realiza as opera co es de forma a se determinar o coeciente associado a cada grau, como se pode vericar da sa da resultante dos comandos acima. f = sin(5*t)/exp(2*t)

F = 5/((s + 2)^2 + 25)

ans = 5/(s^2 + 4*s + 29) >>

19

7.2

Exemplo 2
s s2 +2s +17

A fun c ao cuja transformada de Laplace e F (s) = com a seguinte sequ encia de comandos >> F=s/(s^2+2*s+17) f=ilaplace(F) F = s/(s^2 + 2*s + 17)

pode-se determinar

f = (cos(4*t) - sin(4*t)/4)/exp(t) >> sendo o resultado f (t) = et {cos(4t) 0.25 sin(4t)} u(t).

7.3

Exemplo 3

Determine a sa da do circuito de resposta impulsiva h(t) = 10e10t u(t) para a entrada x(t) = u(t) u(t 0.5) Utilizando a seguinte sequ encia de comandos obtem-se o gr aco da Fig. 10. syms t h=10*exp(-10*t) H=laplace(h) %Fun cao de transfer^ encia do circuito X=laplace(heaviside(t)-heaviside(t-0.5)); %TL do sinal de entrada Y=H*X %TL do sinal de sa da y=ilaplace(Y) %sinal de sa da figure ezplot(y,[0 1]) %gr afico da fun ca ~o, [0 1] para s o representar valores para t>0 Note que o comando ezplot por defeito assume a fun ca o com valores diferentes de 0 para t < 0, portanto tem de se limitar o intervalo de varia ca o de t. O resultado 20

Figura 10: Sinal de sa da

>> pretty(y) / 1 \ / exp(5 - 10 t) 1 \ 1 10 heaviside| t - - | | ------------- - -- | - --------- + 1 \ 2 / \ 10 10 / exp(10 t) >> pode-se escrever como y (t) = (1 e10t )u(t) (1 e10(t0.5) )u(t 0.5).

Bibliograa

Documenta ca o do Matlab

21

Você também pode gostar