Escolar Documentos
Profissional Documentos
Cultura Documentos
RELATÓRIO DE EXERCÍCIOS
PATO BRANCO
2014
ALLAN MAGNO COSTA TEIXEIRA
PATO BRANCO
2014
RESUMO
1 AULA 09 e 16/09/2014
Figura 1 - Discretização de um sinal. (a) Sinal contínuo. (b) Impulsos espaçados pelo período de
amostragem (c) Sinal em tempo discreto.
Fonte: Carati (2014, p. 5)¹
5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Função degrau unitário
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=u(x) % Comando para identificar com função
if x>=0 % Inicialização do degrau unitário em zero
y=1; % Amplitude do degrau, neste caso ele é unitário
else
y=0; % No trecho antes do zero admite-se que a amplitude é zero
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Função degrau unitário
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa geracao de sinais – Letra a)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
o Definições iniciais
Figura 2 - Formas de onda referente aos sinais primário x[n] (magenta) e h[n] (vermelho), e o sinal y[n]
(azul), gerado a partir da equação proposta.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa geracao de sinais – Letra b)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
o Definições iniciais
for n = 1:N
np(n) = n;
for k = 1:5
x(n+2) = x(n+2) + k*delta(n - 2*k); % Construção do vertor x[n], deslocado duas
. % amostras à direita, equivalente à x[n-2]
end
h(n) = u(n-4) - u(n-15); % Construção do vetor h[n]
z(n) = x(n)*h(n); % Realização da operação proposta pelo exercício,
. % com o intuito de gerar o sinal z[n]
end
Figura 3 – Formas de onda referente aos sinais primário x[n] (magenta) e h[n] (vermelho), e o sinal z[n]
(azul), gerado a partir da equação proposta.
amplitude 30V, 50 pontos por ciclo e com 1ms de intervalo de amostragem. Adicionar um
ruído aleatório 5% ao sinal gerado e comparar os resultados, tanto no script Matlab e
Simulink.”[2].
Para geração do sinal fez-se o uso de um script no Matlab (2013)³, que consiste
em:
o Definições iniciais
o Declarações de entrada
o Sinais de entrada
o Apresentação gráfica
2 AULA 02 – 16/09/2014
𝑦[𝑘] = ∑∞
𝑛=−∞ 𝑥1 [𝑛] ∗ 𝑥2 [𝑘 − 𝑛] (1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sistema de Convolução em tempo dicreto
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear; % Apagar as váriaveis pré-existentes
clc; % Limpeza da tela de comando do MATLAB
o Definições iniciais
N = 100;
K = 100;
x = zeros(1,N+1);
h = zeros(1,N+1);
y = zeros(1,N+1);
end
end
o Sinal de saída
Figura 6 - Formas de onda dos sinais a serem convoluidos, x[n] (magenta) e h[n] (vermelho), e o sinal de
saída, z[n] (azul).
14
3 AULA 03 – 07/10/2014
𝐵(𝑧) 𝑏0 + 𝑏1 × 𝑧 −1 + ⋯ + 𝑏𝑀 × 𝑧 −𝑀
𝑋(𝑧) = =
𝐴(𝑧) 𝑎0 + 𝑎1 × 𝑧 −1 + ⋯ + 𝑎𝑁 × 𝑎−𝑁
𝑀−𝑁
𝐵̃ (𝑧)
𝑋(𝑧) = ∑ 𝑓𝑘 × 𝑧 −𝑘 +
𝐴(𝑧)
𝑘=0
onde o termo 𝐵̃ (𝑧) é o resto da divisão de B(z) pelo A(z), e tem como ordem do polinômio N-
1.
Para o caso 𝑁 > 𝑀, deve-se utilizar a quação:
𝑏0 + 𝑏1 × 𝑧 −1 + ⋯ + 𝑏𝑀 × 𝑧 −𝑀
𝑋(𝑧) =
∏𝑁 −1
𝑘=1(1 − 𝑝𝑘 × 𝑧 )
onde 𝑝𝑘 é referente aos polos de X(z). Para o caso em que não há polos repetido, a definição
de X(z) é dada por:
15
𝑁
𝐴𝑘
𝑋(𝑧) = ∑
1 − 𝑝𝑘 × 𝑧 −1
𝑘=1
𝐴𝑘
𝐴𝑘 (𝑝𝑘 )𝑛 × 𝑢[𝑛] 𝑧⃡ , 𝑅𝐷𝐶 |𝑧| > 𝑝𝑘
1 − 𝑝𝑘 × 𝑧 −1
𝐴𝑘
−𝐴𝑘 (𝑝𝑘 )𝑛 × 𝑢[𝑛 − 1] 𝑧⃡ , 𝑅𝐷𝐶 |𝑧| < 𝑝𝑘
1 − 𝑝𝑘 × 𝑧 −1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Transformada Z inversa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
o 1º Exemplo:
o Modelagem matemática
3𝑧 3𝑧 𝑧 −2 3𝑧 −1
𝑋(𝑧) = = 2 × −2 =
(𝑧 − 0,5) × (𝑧 − 0,2) z − 0,7z + 0,1 𝑧 1 − 0,7𝑧 −1 + 0,1𝑧 −2
𝑌(𝑧)
𝑋(𝑧) =
∆(𝑧)
𝑌(𝑧) × [1 − 0,7𝑧 −1 + 0,1𝑧 −2 ] = ∆(𝑧) × [3𝑧 −1 ]
𝑌(𝑧) − 0,7𝑧 −1 + 0,1𝑌(𝑧)𝑧 −2 = 3∆(𝑧)𝑧 −1
𝑌(𝑧) = 0,7𝑌(𝑧)𝑧 −1 − 0,1𝑌(𝑧)𝑧 −2 + 3∆(𝑧)𝑧 −1
𝑌(𝑧) = 0,7𝑦(𝑘 − 1) − 0,1𝑦(𝑘 − 2) + 3∆(𝑘 − 1)
o Definições iniciais
N = 100;
d = [0 0 1 zeros(1,N-3)];
n = 0:N-1;
o Método filter(n,d,x)
b = [0 3 0];
a = [1 -0.7 0.1];
y1 = filter(b,a,d); % Construção do sinal de saída através função pré definida,
denominada filter
figure(1) % Cria uma nova figura
subplot(311) % Inicia uma caixa superio para plotagem
stem(n,y1,'bs') % Plotagem do sinal discreto
axis([0 100 0 3]) % Definição dos limites dos eixos
title('Método Filter') % Insere o título do quadro de plotagem
grid on % Habilita a grade na área de plotagem
for k=3:N
y2(k) = 0.7*y1(k-1)-0.1*y1(k-2)+3*d(k-1); % Construção da resposta utilizando a modelagem
do método da Equação Diferença
end
subplot(312) % Inicia uma caixa superio para plotagem
stem (n, y2,'r') % Plotagem do sinal discreto
axis([0 100 0 3]) % Definição dos limites dos eixos
title('Método Equação Diferença') % Insere o título do quadro de plotagem
grid on % Habilita a grade na área de plotagem
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Transformada Z inversa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Comando Filter (Filtro)
Figura 7- Formas de onda geradas a partir dos métodos Filter (azul), Equação Diferença (vermelho) e
Integral de Inversão (preto).
o 2º Exemplo
o Modelagem matemática
18
2 × (𝑧 −1 − 0,5𝑧 −2 ) 2𝑧 −1 − 1𝑧 −2 3𝑧 −1
𝑋(𝑧) = = =
1 − 𝑧 −1 + 0,1𝑧 −2 1 − 𝑧 −1 + 0,1𝑧 −2 1 − 0,7𝑧 −1 + 0,1𝑧 −2
𝑌(𝑧)
𝑋(𝑧) =
∆(𝑧)
𝑌(𝑧) × [2𝑧 −1 − 1𝑧 −2 ] = ∆(𝑧) × [1 − 𝑧 −1 + 0,1𝑧 −2 ]
𝑌(𝑧) − 𝑌(𝑧)𝑧 −1 + 0,1𝑌(𝑧)𝑧 −2 = 2∆(𝑧)𝑧 −1 − 𝑑(𝑧)𝑧 −2
𝑌(𝑧) = 𝑌(𝑧)𝑧 −1 − 0,1𝑌(𝑧)𝑧 −2 + 2∆(𝑧)𝑧 −1 − ∆(𝑧)𝑧 −2
𝑌(𝑧) = 𝑦(𝑘 − 1) − 0,1𝑦(𝑘 − 2) + 2∆(𝑘 − 1) − ∆(𝑘 − 2)
o Definições iniciais
N = 100;
d = [0 0 1 zeros(1,N-3)];
n = 0:N-1;
o Método filter(n,d,x)
b = [2 -1];
a = [1 -1 0.1];
y1 = filter(b,a,d); % Construção do sinal de saída através função pré definida,
denominada filter
figure(2) % Cria uma nova figura
subplot(311) % Inicia uma caixa superio para plotagem
stem(n,y1,'bs'); % Plotagem do sinal discreto
axis([0 100 0 3]) % Definição dos limites dos eixos
title('Método Filter') % Insere o título do quadro de plotagem
grid on % Habilita a grade na área de plotagem
for k=3:N
y2(k) = y1(k-1)-0,1*y1(k-2)+2*d(k-1)-d(k-2); % Construção da resposta utilizando a
modelagem do método da Equação Diferença
end
Figura 8- Formas de onda geradas para o segundo exemplo, a partir dos métodos Filter (azul), Equação
Diferença (vermelho) e Integral de Inversão (preto).
4 AULA 04 – 21/10/2014
1
𝑎) 𝐺(𝑠) = 𝑠+2
𝑠+3
𝑏) 𝐹(𝑠) = 𝑠∗(𝑠2 +10𝑠+100)
(𝑠+2)(𝑠+3)
𝑐) 𝐻(𝑠) = (𝑠+0.1)(𝑠2 +0.1𝑠+1)
the
pole locations of discrete-time transfer functions (DTTF)
clear all
clc
s=tf('s');
Gs = 1/(s+2);
for i=1:3
z=tf('z',T(i));
Gz=T(i)/(z-1+2*T(i)); % utiliza-se um vetor pois quando há uma variavel dentro de outra,
deve-se utilizar um vetor
figure(1)
pzmap(Gz);
figure(2)
step(Gz);
end
Gz=c2d(Gs,0.5);
figure(1)
pzmap(Gz);
figure(2)
step(Gz);
legend('T=0','T=0.01','T=0.1','T=0.5','T=0.1c2d')
figure(1)
legend('T=0','T=0.01','T=0.1','T=0.5','T=0.1c2d')
5 AULA 05 – 21/10/2014
Durante a aula do dia em questão, fora proposto uma questão, com o seguinte
enunciado: “Considering the system described in Exercise 2, create a Matlab script to
implement PID controller including:
0,25∗106 2∗103
𝑃(𝑠) = 𝑠2 +0,5∗103 +0,25∗106 𝑆(𝑠) = 𝑠+2∗106”
25
o Exercício
clear all;
clc;
% E = 5
% h(kc) = 0,1 + (2*rand(1)-1)
% | E se cc <= PWM
% uc(kc) = {
% | 0 se cc > PWM
% PWM = u(k) * P/E
% Gs(s) = 20/(s+20)
% s ~ (z-1)/(Tz)
% Gs(z) = 20/((z-1)/(Tz) + 20)
% Gs(z) =
% Forward de Euler
% G(s) = (2*s+1)/(s^2+5*s+6)
% s ~ (z-1)/T
% G(z) = ((2*z + 2)/T)/(((z-1)/T)^2 + (5*z - 5)/T+20)
% G(z) = (2*T*z - 2*T + T^2)/(z^2 + (5*T - 5)*z + )
% y(k)*(z^2+c1*z+c2) = (c3*z + c4)u(k)
% y(kc+2) + c1*y(kc+1) + c2*y(kc) = c3*u(kc+1) + c4*u(kc)
o Definições
Ts = 100e-6;
fs = 1/Ts;
tsim = 0.2;
p = 100;
Kp = 3;
Ki = 0.05;
Kd = 300;
E = 40;
TsP = Ts/p;
nPc = 250000;
dPc = [1 500 250000];
Pc = tf(nPc,dPc);
Pd = c2d(Pc,TsP);
[np,dp] = tfdata(Pd,'v');
nSc = 2000;
dSc = [1 2000];
Sc = tf(nSc,dSc);
Sd = c2d(Sc,TsP);
[ns,ds] = tfdata(Sd, 'v');
npsim = tsim/Ts+1;
o Inicialização
r = zeros(1,npsim);
e = zeros(1,npsim);
u = zeros(1,npsim);
ym = zeros(1,npsim);
Se = zeros(1,npsim);
td = zeros(1,npsim);
uc = zeros(1,npsim*p);
y = zeros(1,npsim*p);
yn = zeros(1,npsim*p);
n = zeros(1,npsim*p);
26
ys = zeros(1,npsim*p);
Pr = 100e-3;
pr = Pr/Ts;
kr = 0;
for k=2:npsim
td(k) =k*Ts;
kr = kr + 1;
r(k)=5;
if kr > pr/2
r(k) = 15;
end
if kr>pr
kr = 0;
end
e(k) = r(k) - ym(k); % calcula o erro a partir do sinal medido
Se(k) = Se(k-1) + e(k);
u(k) = Kp*e(k) + Ki*Se(k) + Kd*(e(k) - e(k-1)); % calcula a ação de controle para o PID
if u(k) > 0.99*E % Satura a ação de controle
u(k) = 0.99*E;
end
if u(k)<0.01*E
u(k) = 0.01*E;
end
pwm = u(k) * p/E; % converte em razão ciclica (0 100)
for cc=1:p % Simulação do sistema continuo
kc = k*p + cc;
if cc<=pwm
uc(kc) = E;
else
uc(kc) = 0;
end
y(kc + 1) = -dp(2)*y(kc) + -dp(3)*y(kc - 1) + np(2)*uc(kc) + np(3)*uc(kc - 1);
end
ym(k + 1) = ys(kc + 1);
end
subplot (311)
plot(td(1:npsim),r(1:npsim), 'b')
grid on
subplot (312)
plot(td(1:npsim),e(1:npsim),'g')
grid on
subplot (313)
plot(y(1:npsim*p),'m')
grid on
6 REFERÊNCIAS
3 MATLAB R2013b. Versão 8.2.0.701. Brasil: MATLAB for Windows User’s Guide, The
Math Works Inc., 2013.