Escolar Documentos
Profissional Documentos
Cultura Documentos
Simulao:
% Sinal x[n]
f = [zeros(200,1)];
for m=1:10
for k = 1:5
p = 20*m
n = (2*k)+p;
f(n) = (-1)^m*k;
end
end
% Grfico f[n]
figure(1)
stem(f,'k');
title('Sinal f[n]');
Grfico:
0 2 4 6 8 10 12 14 16 18 20
0
5
x[n-2]
0 2 4 6 8 10 12 14 16 18 20
0
0.5
1
h[n]
0 2 4 6 8 10 12 14 16 18 20
0
5
sinal z[n]=x[n-2]*h[n]
Relatrio 02: Transformada Z Inversa:
Quando X(z), a transformada z para x(kT) ou x(k) dada, a operao que determina o
correspondente x(kT) ou x(k) chamada de inversa da transformada z. A inversa da
transformada z retorna uma sequncia especfica de valores apenas para instantes discretos
de tempo e nada para outros instantes. A notao utilizada Z
-1
.
Implementao no Matlab:
Dada a seguinte funo de transferncia de tempo discreto, calcular o Z transformada
inversa usando os mtodos computacionais Integral (filtro e equao de diferena) e a
inverso. Compare os resultados grficas usando Matlab (caule (n, x [n])), considerando o
tempo de amostragem T = 0,1 s.
a)
3Z
X Z
Z 0.5 Z 0.2
= [] [ ] [ ] [ ]
Simulao:
%% Equao Diferena
N=30;
d=[1 zeros(1,30)];
y=zeros(1,N);
for k=1:N
if k==1
y(k)= 0;
end
if k==2
0 50 100 150 200 250
-5
-4
-3
-2
-1
0
1
2
3
4
5
Sinal f[n]
y(k)= 0.7*y(k-1)+3*d(k-1);
end
if k>2
y(k)= 0.7*y(k-1)-0.1*y(k-2)+3*d(k-1);
end
end
stem(y,'g')
%% Filter
N=0:30;
n=[3];
d=[1 -0.7 0.1];
x=[1 zeros(1,30)];
z=filter(n,d,x)
figure
stem(N,z,'b')
Grficos:
0 5 10 15 20 25 30
0
0.5
1
1.5
2
2.5
3
b)
1 2
1 2
2 Z 0.5Z
X Z
1 Z 0.1Z
= [] [ ] [ ] [ ]
[ ]
Simulao:
%% Equao Diferena
n = 100;
Y = zeros(1,n);
t = 0.1:0.1:10;
C = zeros(1,n);
for k=1:n
if k==1
Y(k)=2;
elseif k==2
Y(k)=Y(k-1)-1;
else
Y(k)=Y(k-1)-0.1*Y(k-2);
end
end
%% filter
num = [2-1];
den = [1 -1 0.1];
x = [1 zeros(1,99)];
C = filter(num,den,x);
figure (1)
subplot(211)
stem(t,Y)
title('Transformada Inversa');
gridon;
subplot(212)
stem(t,C)
0 5 10 15 20 25 30
0
0.5
1
1.5
2
2.5
3
title('Metodo Computacional');
gridon;
Grfico:
Relatrio 03: Mtodo de Discretizao.
- Forward difference ou Euler
Esse mtodo de discretizao utiliza a integral de um retngulo no grfico/curva,
seguida da transformada Z da equao. Esse mtodo no muito preciso, visto
que alguns pontos da curva, no so discretizados.
- Backward difference
Esse mtodo de discretizao utiliza a soma da funo mais a integral no grfico
da curva, seguida da transformada Z da equao. Por consequncia, a
discretizacao desse mtodo no tao precisa, visto que alguns pontos que no
pertencem a curva so discretizados.
- Trapezoidal ou Tustin
Esse mtodo de discretizao o mais preciso entre os mtodos de discretizao.
Utiliza-se de uma integral com menos pontos somado com a funo. Dessa
maneira, a discretizao mais precisa.
Implementao no Matlab:
Com o auxilio do matlab encontre aproximao de tempo discreto para o
seguinte casos, utilizando os trs mtodos analticos discutido anteriormente.
0 1 2 3 4 5 6 7 8 9 10
0
0.5
1
1.5
2
Transformada Inversa
0 1 2 3 4 5 6 7 8 9 10
0
0.5
1
Metodo Computacional
a)
1
G(s)
s 2
Simulao:
T1 = 0.5;
T2 = 0.1;
T3 = 0.01;
T = 0.1;
num = [0 1];
den = [1 2];
Gs=tf(num,den);
% Mtodo de Forward
Gz1T1 = c2d(Gs,T1,'forward');
Gz1T2 = c2d(Gs,T2,'forward');
Gz1T3 = c2d(Gs,T3,'forward');
% Mtodo de Backward
Gz2T1 = c2d(Gs,T1,'zoh');
Gz2T2 = c2d(Gs,T2,'zoh');
Gz2T3 = c2d(Gs,T3,'zoh');
% Mtodo de Tustin
Gz3T1 = c2d(Gs,T1,'tustin');
Gz3T2 = c2d(Gs,T2,'tustin');
Gz3T3 = c2d(Gs,T3,'tustin');
figure(1)
subplot(3,1,1)
step(Gz1T1)
title('Mtodo Forward tempo T_{1}')
subplot(3,1,2)
step(Gz2T1)
title('Mtodo Forward tempo T_{2}')
subplot(3,1,3)
step(Gz3T1)
title('Mtodo Forward tempo T_{3}')
figure(2)
subplot(3,1,1)
step(Gz1T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,2)
step(Gz2T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,3)
step(Gz3T2)
title('Mtodo Backward tempo T_{2}')
figure(3)
subplot(3,1,1)
step(Gz1T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,2)
step(Gz2T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,3)
step(Gz3T3)
title('Mtodo Tustin tempo T_{3}')
Grficos:
Grfico 01- Mtodo Forward
Grfico 02 Mtodo Backward
0 1 2 3 4 5 6 7 8 9 10
0
0.5
Mtodo Forward tempo T
1
Time (seconds)
A
m
p
l
i
t
u
d
e
0 1 2 3 4 5 6 7 8 9 10
0
0.5
Mtodo Forward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 1 2 3 4 5 6 7 8 9 10
0
0.5
Mtodo Forward tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
Grfico 03 Mtodo Tustin
b)
2
1
G(s)
s 3s 2
Simulao:
T1 = 0.5;
T2 = 0.1;
T3 = 0.01;
num=[1 3];
den=[1 10 100 0];
Gs=tf(num,den);
% Mtodo de Forward
Gz1T1 = c2d(Gs,T1,'forward');
Gz1T2 = c2d(Gs,T2,'forward');
Gz1T3 = c2d(Gs,T3,'forward');
% Mtodo de Backward
Gz2T1 = c2d(Gs,T1,'zoh');
Gz2T2 = c2d(Gs,T2,'zoh');
Gz2T3 = c2d(Gs,T3,'zoh');
% Mtodo de Tustin
Gz3T1 = c2d(Gs,T1,'tustin');
Gz3T2 = c2d(Gs,T2,'tustin');
Gz3T3 = c2d(Gs,T3,'tustin');
figure(1)
subplot(3,1,1)
step(Gz1T1)
title('Mtodo Forward tempo T_{1}')
subplot(3,1,2)
step(Gz2T1)
title('Mtodo Forward tempo T_{2}')
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 0.5 1 1.5 2 2.5 3 3.5
0
0.5
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
subplot(3,1,3)
step(Gz3T1)
title('Mtodo Forward tempo T_{3}')
figure(2)
subplot(3,1,1)
step(Gz1T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,2)
step(Gz2T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,3)
step(Gz3T2)
title('Mtodo Backward tempo T_{2}')
figure(3)
subplot(3,1,1)
step(Gz1T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,2)
step(Gz2T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,3)
step(Gz3T3)
title('Mtodo Tustin tempo T_{3}')
Grficos:
Grfico 04 Mtodo Forward
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0
100
200
Mtodo Forward tempo T
1
Time (seconds)
A
m
p
l
i
t
u
d
e
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0
100
200
Mtodo Forward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0
100
200
Mtodo Forward tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
Grfico 05- Mtodo Backward
0 100 200 300 400 500 600 700 800 900 1000
0
20
40
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 100 200 300 400 500 600 700 800 900 1000
0
20
40
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 100 200 300 400 500 600 700 800 900 1000
0
20
40
Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
Grfico 06 Mtodo Tustin
c) () ( )( )( )(
)
Simulao:
T1 = 0.5;
T2 = 0.1;
T3 = 0.01;
num=[1 5 6];
den=[1 0.2 0.01 0.1];
Gs=tf(num,den);
% Mtodo de Forward
Gz1T1 = c2d(Gs,T1,'forward');
Gz1T2 = c2d(Gs,T2,'forward');
Gz1T3 = c2d(Gs,T3,'forward');
% Mtodo de Backward
Gz2T1 = c2d(Gs,T1,'zoh');
Gz2T2 = c2d(Gs,T2,'zoh');
Gz2T3 = c2d(Gs,T3,'zoh');
% Mtodo de Tustin
Gz3T1 = c2d(Gs,T1,'tustin');
Gz3T2 = c2d(Gs,T2,'tustin');
Gz3T3 = c2d(Gs,T3,'tustin');
figure(1)
subplot(3,1,1)
step(Gz1T1)
title('Mtodo Forward tempo T_{1}')
subplot(3,1,2)
step(Gz2T1)
title('Mtodo Forward tempo T_{2}')
subplot(3,1,3)
0 10 20 30 40 50 60 70 80 90 100
0
2
4
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 10 20 30 40 50 60 70 80 90 100
0
2
4
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 10 20 30 40 50 60 70 80 90 100
0
2
4
Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
step(Gz3T1)
title('Mtodo Forward tempo T_{3}')
figure(2)
subplot(3,1,1)
step(Gz1T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,2)
step(Gz2T2)
title('Mtodo Backward tempo T_{2}')
subplot(3,1,3)
step(Gz3T2)
title('Mtodo Backward tempo T_{2}')
figure(3)
subplot(3,1,1)
step(Gz1T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,2)
step(Gz2T3)
title('Mtodo Tustin tempo T_{3}')
subplot(3,1,3)
step(Gz3T3)
title('Mtodo Tustin tempo T_{3}')
Grficos:
Grfico 07- Mtodo Forward.
0 50 100 150 200 250 300 350
-1
0
1
x 10
27 Mtodo Forward tempo T
1
Time (seconds)
A
m
p
l
i
t
u
d
e
0 50 100 150 200 250 300 350
-1
0
1
x 10
27 Mtodo Forward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 50 100 150 200 250 300 350
-5
0
5
x 10
26 Mtodo Forward tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
Grfico 08 Mtodo Backward
Grfico 09 -Mtodo Tustin.
0 50 100 150 200 250 300 350
-1
0
1
x 10
27 Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 50 100 150 200 250 300 350
-1
0
1
x 10
27 Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 50 100 150 200 250 300 350
-1
0
1
x 10
27 Mtodo Backward tempo T
2
Time (seconds)
A
m
p
l
i
t
u
d
e
0 10 20 30 40 50 60 70 80 90 100
-1
0
1
x 10
9 Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 10 20 30 40 50 60 70 80 90 100
-1
0
1
x 10
9 Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
0 10 20 30 40 50 60 70 80 90 100
-1
0
1
x 10
9 Mtodo Tustin tempo T
3
Time (seconds)
A
m
p
l
i
t
u
d
e
Relatrio 04 PWM
Relatrio 05- Amostragem
Os circuitos sampleandholdso aplicados para se obter a amostragem de um sinal
contnuo em perodos de tempo, sendo mantido em um determinado valor para que seja
realizado o processo necessrio ou a reconstruo do sinal de amostragem.
A amostragem obtida de um sinal deve obedecer ao teorema de Nyquist, onde a
frequncia de amostragem deve ser pelo menos duas vezes maior que a frequncia do sinal
amostrado, evitando assim, a distoro do mesmo, e no implicando na sua reconstruo. A
ainda dois fenmenos a se considerar, o folding, onde h sobreposio de frequncia, e
aliasing, que implica na leitura e reconstruo do sinal.
Implementao no Matlab
Desenvolver um sistema em Simulink para analisar sinais com mltiplas
componentes de frequncia e sendo amostrado e retido com um retentor de ordem zero
(ZOH): F1=1Hz; F2=5Hz; F3=100Hz. Analisar o sinal de sada para diferentes valores de perodo
de amostragem do ZOH: ZOH_sampling_time = 0.01s .. 0.001s
Simulao:
Grfico:
Grfico 10 - Sinal de Entrada.
Grfico 11- Sinais de Sada.
Com um perodo de amostragem de 0.1s, o sinal de amostragem no representa o sinal
de entrada. Com o aumento da taxa de amostragem com Ts = 0.01s obtemos um sinal
semelhante ao sinal de entrada, mas que no obtm amostras do sinal de frequncia de
100Hz. J com o perodo de amostragem de 0.001s obtemos um sinal de amostragem
praticamente equivalente ao sinal de entrada.
Adicionando um filtro de segunda ordem passa-baixa com frequncia de corte de 20Hz a
sada do sistema:
Grfico :
No h mais os sinais de componentes harmnicas no sinal de sada.
Grfico 12 Com Filtro.
Relatrio 06 PID
O esquema de controle PID analgico tem sido usado com sucesso em muitos sistemas
de controle industriais por mais de meio sculo. O prncipio bsico do esquemade controle PID
que atua sobre a varivel a ser manipulada atravs de uma apropriada combinao de trs
aes de controle; ao de controle proporcional (aonde a ao de controle proporcional ao
sinal de erro atuante, a qual a diferena entre a a entrada e o sinal de realimentao); a ao
de controle integral (aonde a ao de controle proporcional a integral do sinal de erro
atuante) e a alao de controle derivativa (aonde aao de controel proporcional a variao
do sinal de erro atuante).
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-4
-2
0
2
4
Tempo (s)
A
m
p
l
i
t
u
d
e
Entrada
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-4
-2
0
2
4
Tempo (s)
A
m
p
l
i
t
u
d
e
Sada
Implementao Matlab:
Considere o sistema de circuito fechado, incluindo um controlador PID em tempo
discreto da figura a seguir:
Construir um programa "pidsimulation.m" com oroteiro para a simulao computacional
do sistema de malha fechada de 20 s, e um design apropriado PID considerando os ganhos:
-A entrada de referncia uma onda quadrada com 10s perodo, e 4 magnitude.
- A sada da planta tem um rudo aleatrio com 0,1 amplitude mxima.
- Em 7.5s o ganho planta alterado para 0,7.
- O sinal de sada est saturada em 10.
Calculando a equao diferena:
[] (
[ ] (
)[ ] (
)[ ])
[] [ ] ( )[ ]
Simulao:
Ts=.1;
Kp=2;
Ki=.001;
Kd=14;
sat=10;
k=1;
erro(k)=0;
soma_erro=0;
m(k)=0;
for i=0:Ts:20
%% Sinal de entrada
if i<5
entrada(k)=4;
elseif i<10
entrada(k)=0;
elseif i<15
entrada(k)=4;
elseif i<20
entrada(k)=0;
end
%% Discretizao da planta
if i<7.5
if k==1
saida(k)=0;
elseif k==2
saida(k)=(saida(k-1)*(2*Ts^2-2*Ts))/Ts;
else
saida(k)=(Ts^3*m(k-2)-(2*Ts^2-2*Ts)*saida(k-1)-(2*Ts^3-
2*Ts^2+Ts)*saida(k-2))/Ts;
end
else
saida(k)=(1.4*Ts^3*m(k-2)-(2*Ts^2-2*Ts)*saida(k-1)-(2*Ts^3-
2*Ts^2+Ts)*saida(k-2))/Ts;
end
%% Discretizao do sensor
if k==1
sensor(k)=0;
else
sensor(k)=saida(k-1)-(10*Ts-1)*sensor(k-1);
end
%% Controlador PID
erro(k)=entrada(k)-sensor(k);
soma_erro=soma_erro+erro(k);
mp(k)=Kp*erro(k);
mi(k)=Ki*soma_erro;
if k==1
md(k)=Kd*erro(k);
else
md(k)=Kd*(erro(k)-erro(k-1));
end
m(k)=mp(k)+mi(k)+md(k);
%% Saturacao
if m(k)>sat
m(k)=sat;
elseif m(k)<(-sat)
m(k)=-sat;
end
k=k+1;
end
Grfico:
Relatrio 07- Deadbeat
O projeto do controlador deadbeat todo desenvolvido no domnio z e todos os plos
do sistema so substitudos por plos na origem do plano complexo z. Essa estratgia tem a
prioridade de levar todos os estados do modelo para zero em n intervalos de amostragem
quando ocorre um impulso de distrbio na entrada. No controlador deadbeat o perodo de
amostragem o nico parmetro de projeto, que por sua vez influencia drasticamente a
magnitude do sinal controlado que aumenta significativamente com a diminuio do perodo
de amostragem.
Esse controlador deve satisfazer as seguintes condies: O tempo de subida deve ser
mnimo e o erro de regime deve ser zero.
Implementao no Matlab:
Simular o sistema de malha fechada; Investigar problemas de estabilidade na planta com
avariao dos parmetros;
-Definir a saturao no atuador e mostrar o impacto desta condio quando t> 0.
- Verificar o desempenho do controlador para as entradas senoidal e triangular;
- Reprojetar o controlador e re-analisar o sistema de plos em s =- 1 e s =- 2
se T = 0,1.
Simulao:
a) Ps=1/(s*(s+1))
Ts=1;
s=zpk('s');
z=zpk('z',Ts);
Ps=1/(s*(s+1))
step(Ps)
Grfico:
Junto com ZOH:
Simulao:
Pz=c2d(Ps,Ts)
Tz=1/z
Cz=Tz/(Pz*(1-Tz))
Cz=minreal(Cz)
step(Cz*Pz/(1+Cz*Pz))
Grfico:
0 0.5 1 1.5 2 2.5 3
x 10
4
0
0.5
1
1.5
2
2.5
3
x 10
4
Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e
Sinal de controle.
0 2 4 6 8 10 12 14 16 18 20
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e
b) 1/[(s+1)*(s+2)]
Simulao:
Ts=0.1
s=zpk('s');
z=zpk('z',Ts);
Ps=1/((s+1)*(s+2))
step(Ps)
Grfico:
0 5 10 15 20 25
-3
-2
-1
0
1
2
3
Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e
Simulao:
Pz=c2d(Ps,Ts)
Tz=1/z
Cz=Tz/(Pz*(1-Tz))
step(Cz/(1+Cz*Pz))
Grfico:
0 1 2 3 4 5 6 7
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e
0 1 2 3 4 5 6
-400
-300
-200
-100
0
100
200
300
400
Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e