Você está na página 1de 36

Sinais e Sistemas

Aplicações usando MATLAB

Prof. Rodrigo Arruda Felício Ferreira, Dr. Eng.


rodrigo.ferreira@ifsudestemg.edu.br

https://sites.google.com/a/ifsudestemg.edu.br/rarruda/
Introdução
• O MATLAB é um software destinado a fazer cálculos com matrizes
(Matlabr = MATrix LABoratory). Os comandos do MATLAB são muito
próximos da forma como escrevemos expressões algébricas, tornando
mais simples o seu uso;

• O MATLAB faz cálculos simples e científicos como uma calculadora.


Entretanto, problemas complexos podem ser solucionados com o auxílio
de funções pré-definidas ou criadas pelo usuário. Soluções de equações
diferenciais, transformadas matemáticas, projeto de sistemas de controle
e problemas relacionados com processamento de sinais são alguns dos
exemplos.
Aplicações usando MATLAB/Simulink 2
Introdução
• SIMULINK é um programa utilizado para modelagem, simulação e análise
de sistemas dinâmicos. Está vinculado ao software MATLAB.

• Utiliza uma interface gráfica com o usuário para construção dos modelos a
partir de diagramas em blocos, através de operações de clique-e-arraste
do mouse. Com esta interface podem-se criar modelos da mesma forma
que se faz com papel e caneta.

• De acordo com o tipo de instalação, é possível solucionar problemas


relativos à circuitos elétricos, sistemas físicos e químicos, sistemas de
telecomunicações, aeroespaciais, robóticos, entre outros.

Aplicações usando MATLAB/Simulink 3


Interface - MATLAB

Aplicações usando MATLAB/Simulink 4


Interface - Simulink

Aplicações usando MATLAB/Simulink 5


Séries de Fourier
É possível utilizar a integração analítica do MATLAB para determinar os
coeficientes de Fourier. Neste caso, a série será dada em variáveis
simbólicas.

Aplicações usando MATLAB/Simulink 6


Séries de Fourier
clc
close all
clear all

N = 3;
T = 1;
w = 2*pi/T;
syms t
f1 = 1; % f(t) de 0 a 0.5
f2 = -1; % f(t) de 0.5 a 1
a0 = (1/T)*(int(f1,t,0,0.5) + int(f2,t,0.5,1)); % valor inicial de f para n=0
f = a0;
for n=1:N
a(n) = (2/T)*(int(f1*cos(n*w*t),t,0,0.5) + int(f2*cos(n*w*t),t,0.5,1));
b(n) = (2/T)*(int(f1*sin(n*w*t),t,0,0.5) + int(f2*sin(n*w*t),t,0.5,1));
f = f + a(n)*cos(n*w*t) + b(n)*sin(n*w*t);
end
ezplot(f,[-2,2])

Aplicações usando MATLAB/Simulink 7


Séries de Fourier
• N=3 4/  sin(2  t)+4/3/ sin(6  t)

0.5

-0.5

-1

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


t

Aplicações usando MATLAB/Simulink 8


Séries de Fourier
• N=10 4/ sin(2  t)+...+4/9/  sin(18  t)

0.5

-0.5

-1

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


t

Aplicações usando MATLAB/Simulink 9


Séries de Fourier
Observa-se que este método apresenta alguns problemas:

– lentidão para maior número de coeficientes;

– Perda da precisão, pois a integração é realizada por método numérico.

Aplicações usando MATLAB/Simulink 10


Séries de Fourier
É possível, também, determinar a série de Fourier numérica para um
determinada função:


 1 n 
f ( t ) = 10 +   2 cos ( n t ) + 2 sin ( n t ) 
n =1  n + 1 n +1 

Aplicações usando MATLAB/Simulink 11


Séries de Fourier
N=3
Série de Fourier
11.5

11

10.5
f(t)

10

9.5

9
0 1 2 3 4 5 6 7 8 9 10
Tempo [s]

Aplicações usando MATLAB/Simulink 12


Séries de Fourier
N = 10
Série de Fourier
12.5

12

11.5

11
f(t)

10.5

10

9.5

9
0 1 2 3 4 5 6 7 8 9 10
Tempo [s]

Aplicações usando MATLAB/Simulink 13


Séries de Fourier
N = 100
Série de Fourier
13

12.5

12

11.5
f(t)

11

10.5

10

9.5

9
0 1 2 3 4 5 6 7 8 9 10
Tempo [s]

Aplicações usando MATLAB/Simulink 14


Séries de Fourier
Exercício:

Modificar o script anterior para a função mostrada abaixo. Obter o gráfico


para n=3 , 10 e 50;

Aplicações usando MATLAB/Simulink 15


Séries de Fourier
clc
close all
clear all

T = 1;
w = 2*pi/T;
syms t
f1 = t;
a0 = (1/T)*(int(f1,t,0,1))
an = (2/T)*(int(f1*cos(n*w*t),t,0,1))
bn = (2/T)*(int(f1*sin(n*w*t),t,0,1))

Após determinação de a0, an e bn, copie e cole os resultados em outro script,


conforme mostrado adiante.

Aplicações usando MATLAB/Simulink 16


Séries de Fourier
clc
close all
clear all

N = 100;
T = 1;
w = 2*pi/T;
t = linspace(-2,2,1000);
a0 = 1/2;
f = a0;
for n=1:N
an = -(2*sin(pi*n)^2 - 2*pi*n*sin(2*pi*n))/(2*pi^2*n^2);
bn = (sin(2*pi*n) - 2*pi*n*cos(2*pi*n))/(2*pi^2*n^2);
f = f + an*cos(n*w.*t) + bn*sin(n*w.*t);
end
plot(t,f)

Aplicações usando MATLAB/Simulink 17


Séries de Fourier
N=3
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Aplicações usando MATLAB/Simulink 18


Séries de Fourier
N = 10
1.2

0.8

0.6

0.4

0.2

-0.2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Aplicações usando MATLAB/Simulink 19


Séries de Fourier
N = 100
1.2

0.8

0.6

0.4

0.2

-0.2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Aplicações usando MATLAB/Simulink 20


Séries de Fourier
Exercício:

Implementar um script que determine f(t) por meio da série de Fourier para a
função triangular estudada na aula passada. Obter os gráficos para n=3, 10,
50 e 100.

Aplicações usando MATLAB/Simulink 21


Transformada de Fourier

Aplicações usando MATLAB/Simulink 22


Transformada de Fourier

Aplicações usando MATLAB/Simulink 23


Transformada de Fourier

Aplicações usando MATLAB/Simulink 24


Transformada de Fourier
Exemplo 2: Determine a transformada de Fourier da função abaixo,
considerando A = 1 e T = 4.

Aplicações usando MATLAB/Simulink 25


Transformada de Fourier

Aplicações usando MATLAB/Simulink 26


Transformada de Fourier
2/w sin(4 w)
8

-2
-6 -4 -2 0 2 4 6
w

Aplicações usando MATLAB/Simulink 27


Resposta em frequência
É possível utilizar o conceito de transformadas de Fourier para obter a
resposta em frequência de sistema físicos.

Suponha um filtro PB de primeira ordem com fc = 50 Hz, descrito por:

V2 1
F ( ) = =
V1 1 + j ( C )

onde ωc = 2πfc é a frequência de corte do filtro.

Aplicações usando MATLAB/Simulink 28


Resposta em frequência
O módulo da função de transferência em ω pode ser definido para
frequências-chave:

ω |F(ω)|
0 1
ωc 0,707
∞ 0

Aplicações usando MATLAB/Simulink 29


Resposta em frequência

Aplicações usando MATLAB/Simulink 30


Transformada de Fourier

0.9

0.8
X: 50
Y: 0.7071
|Y(f)|

0.7

0.6

0.5

0.4
0 10 20 30 40 50 60 70 80 90 100
Frequência(Hz)

Aplicações usando MATLAB/Simulink 31


Resposta em frequência
• É possível utilizar a função freqs do MATLAB para plotar os gráficos de
resposta em frequência de funções de transferência.

• Substituindo s = jω, a resposta em frequência do filtro PB análogo ao do


exemplo anterior pode ser obtida através do seguinte script:

num = [1];
den = [0.05 5];
w = logspace(0,4);
freqs(num,den,w)

Aplicações usando MATLAB/Simulink 32


Resposta em frequência

0
10

-1
10
Magnitude

-2
10

-3
10
0 1 2 3 4
10 10 10 10 10
Frequency (rad/s)

-20
Phase (degrees)

-40

-60

-80

-100
0 1 2 3 4
10 10 10 10 10
Frequency (rad/s)

Aplicações usando MATLAB/Simulink 33


Resposta ao degrau
• É possível utilizar a função step no MATLAB para obter a resposta ao
degrau de determinado sistema linear descrito por uma função de
transferência.

• Para o circuito RC visto anteriormente, a resposta ao degrau é dada por:

R = 1;
C = 1e-6;

s = tf('s');
G = 1/(1 + s*R*C);
step(G);

Aplicações usando MATLAB/Simulink 34


Resposta em frequência

Aplicações usando MATLAB/Simulink 35


Bibliografia
[1] SANTOS, R. J. Introdução ao Matlab. UFMG, 2005.

[2] MATLAB. Matlab R2008a Help Documentation. Mathworks, 2008.

[3] HAYKIN, S.; VAN VEEN, B. Signals and systems. John Wiley & Sons, 2007.

[4] KARRIS, S. T. Signals and Systems: With MATLAB Applications. Orchard


Publications, 2003.

[5] KARRIS, S. T. Signals and Systems: With MATLAB Computing and Simulink
Modeling. Orchard Logo, 2006.

Aplicações usando MATLAB/Simulink 36

Você também pode gostar