Escolar Documentos
Profissional Documentos
Cultura Documentos
EXERCCIO AVALIATIVO N2
CONTROLADORES DIGITAIS DE PROCESSOS INDUSTRIAIS
HERBERT GONALVES DA SILVA SANTOS
TERESINA
MAIO DE 2017
EXERCCIO AVALIATIVO N2
CONTROLADORES DIGITAIS DE PROCESSOS INDUSTRIAIS
HERBERT GONALVES DA SILVA SANTOS
1. INTRODUO
Para o mtodo do rel ser aplicado, a malha fechada utilizando o rel acima
como compensador, conforme a figura 2. Caso o arranjo gere uma oscilao sustentada
na sada y(t) do sistema, como a da figura 3, possvel identificar os parmetros a
(amplitude de oscilao) e Tu (perodo de oscilao). Nessas condies, o sinal u(t) deve
ser uma onda quadrada de amplitude d, mesmo perodo e fase oposta ao sinal y(t).
A histerese pode ser til para evitar que rudos ocasionem o chaveamento indevido
do rel, para limitar a frequncia de chaveamento ou para adequar o modelo do rel a
dispositivos reais com histerese conhecida.
2. METODOLOGIA
I. PARTE SIMULACIONAL
O script apresentado abaixo foi executado no Matlab para obter as caractersticas
de um determinado processo representado pela funo de transferncia:
() = 3 2
0.5
+ 3 + 2 + 1
% Prtica 02
%Herbert Gonalves da Silva Santos
%Laratrio de Controle Digital
%Otacilio da Mota Almeida
%K= 1+2*rand(3,1)
%% Letra a)
K = [2.6294 2.8116 1.2540];
N = [K];
D = [1 3 2 1];
Gma1 = tf(N(1),D,'ioDelay',0.5)
Gma2 = tf(N(2),D,'ioDelay',0.5)
Gma3 = tf(N(3),D,'ioDelay',0.5)
Gmad1 = c2d(Gma1,0.1);
Gmad2 = c2d(Gma2,0.1);
Gmad3 = c2d(Gma2,0.1);
O ganho crtico para o rel sem histerese pode ser determinado pela frmula:
Assim, os ganhos crticos para os trs processos pode ser calculados por meio
das curvas obtidas:
1
1 = 4 = 0.7693 ;
1.6549
1
2 = 4 = 0.7105 ;
1.792
1
3 = 4 = 0.9456;
1.0575
b)
Um novo script no matlab foi criado para obter traar o diagrama de nyquist de
malha aberta real do sistema e o diagrama de nyquist estimado pelo mtodo do rel. Para
isso varia-se a histerese do rel em 0, 0.1, 0.2 e 0.3, determinando a amplitude a da sada
do sistema para ser calculado os pontos estimados do diagrama por meio da frmula de
Gp(jwu), a frequncia estimada dada pela frmula tambm descrita abaixo.
Figura 7. Formulas para estimar o diagrama de nyquist pelo mtodo do rel
%% Letra b)
K = [2.6294 2.8116 1.2540];
N = [K];
D = [1 3 2 1];
Gma1 = tf(N(1),D,'ioDelay',0.5)
Gma2 = tf(N(2),D,'ioDelay',0.5)
Gma3 = tf(N(3),D,'ioDelay',0.5)
w = logspace (-5,5,10000)
nyquist(Gma1,w)
nyquist(Gma2,w)
nyquist(Gma3,w)
c)
Os valores de margem de ganho em decibis podem ser calculados a partir dos
valores dos pontos crticos determinados por meio do mtodo do rel sem histerese:
1 1
1 = 20 . log ( ) = 1 = 20 . log ( ) = 2.2780
1 0.7693
1 1
2 = 20 . log ( ) = 2 = 20 . log ( ) = 2.9687
1 0.7105
1 1
3 = 20 . log (1) = 3 = 20 . log (0.9456) = 0.4858
d)
Com a anlise da resposta possvel observar que o sistema estvel em malha
aberta. Os valores de margem de ganho so negativos, isso significa que os processos so
instveis em malha fechada. O inverso do ganho crtico representa o ponto onde o
diagrama de nyquist cruza o eixo real negativo:
11 = 1.2998
21 = 1.407
31 = 1.0575
for k = 1:Qde_amostras
tt = clock;
%configurar pwm
flushinput(s);
flushoutput(s);
fwrite(s,'1','uint8');
fwrite(s,pwm,'uint8'); %Envia valor de PWM para Motor
fwrite(s,10,'uint8'); %Cdigo quebra de linha necessrio
resposta = fread(s,2); %
saida(k) =
double(bitor(bitshift(uint16(resposta(1)),8),uint16(resposta(2))))/(
7*Ts);
ref(k) = REF;
erro(k) = ref(k) - saida(k);
if (abs(erro(k)) >= eps && erro(k) >= 0)
x(k) = d2;
elseif (abs(erro(k)) >= eps && erro(k) < 0)
x(k) = d1;
elseif (abs(erro(k)) < eps && x(k-1) == d2)
x(k) = d2;
elseif (abs(erro(k)) < eps && x(k-1) == d1)
x(k) = d1;
end
pwm = x(k);
% %SATURAO
if(pwm > 100)
pwm = 100;
else
if(pwm < 0)
pwm = 0;
end
end
%DELAY
while etime(clock, tt) < Ts
%no fazer nada enquanto o tempo de amostragem no terminar
end
end
a = (max(saida(30:end)) - min(saida(30:end)))/2;
Na = (4*(d2/2)*sqrt(a^2-eps^2) - 1*j*pi*eps)/(pi*a^2);
Gu = -1/Na;
[asdr local] = findpeaks(saida);
Tu = mean(diff(local))*Ts;
wu = 2*pi/Tu;
%zerar PWM
%Canal pwm ventilador
fprintf(s, sprintf( '2' ));
%Canal pwm resistor
fprintf(s, sprintf( '3' ));
Tempo = [1:Qde_amostras]*Ts;
figure(1)
plot(Tempo,saida,'g','LineWidth',2);
hold on;
plot(Tempo,ref,'r','LineWidth',2);
grid on;
plot(Tempo, x, 'b', 'LineWidth',2);
Na figura abaixo temos o grfico que mostra o sinal de sada, o sinal de referncia
e o sinal do rel, com o grfico possvel determinar alguns parmetros necessrios para
determinar o ponto de cruzamento de ganho ou ponto crtico.
O ponto de cruzamento de ganho para o rel sem histerese pode ser determinado
pela seguinte equao;
4
=
Ento o valor de k :
50
= 4 = 46,914
13.57
for k = 1:Qde_amostras
tt = clock;
%configurar pwm
flushinput(s);
flushoutput(s);
fwrite(s,'1','uint8');
fwrite(s,pwm,'uint8'); %Envia valor de PWM para Motor
fwrite(s,10,'uint8'); %Cdigo quebra de linha
necessrio
resposta = fread(s,2); %
saida(k) =
double(bitor(bitshift(uint16(resposta(1)),8),uint16(resposta(2
))))/(7*Ts);
ref(k) = REF;
erro(k) = ref(k) - saida(k);
if (abs(erro(k)) >= eps && erro(k) >= 0)
x(k) = d2;
elseif (abs(erro(k)) >= eps && erro(k) < 0)
x(k) = d1;
elseif (abs(erro(k)) < eps && x(k-1) == d2)
x(k) = d2;
elseif (abs(erro(k)) < eps && x(k-1) == d1)
x(k) = d1;
end
pwm = x(k);
% %SATURAO
if(pwm > 100)
pwm = 100;
else
if(pwm < 0)
pwm = 0;
end
end
%DELAY
while etime(clock, tt) < Ts
%no fazer nada enquanto o tempo de amostragem no
terminar
end
end
a = (max(saida(30:end)) - min(saida(30:end)))/2;
Na = (4*(d2/2)*sqrt(a^2-eps^2) - 1*j*pi*eps)/(pi*a^2);
Gu = -1/Na;
[asdr local] = findpeaks(saida);
Tu = mean(diff(local))*Ts;
wu = 2*pi/Tu;
%zerar PWM
%Canal pwm ventilador
fprintf(s, sprintf( '2' ));
%Canal pwm resistor
fprintf(s, sprintf( '3' ));
Tempo = [1:Qde_amostras]*Ts;
figure(1)
plot(Tempo,saida,'g','LineWidth',2);
hold on;
plot(Tempo,ref,'r','LineWidth',2);
grid on;
plot(Tempo, x, 'b', 'LineWidth',2);
Nas figuras abaixo temos os grficos que mostram o sinais de sada, o sinal de
referncia e o sinal do rel, para quatro valores de psilon (esp) diferentes e a partir desses
grficos foram determinados os valores de w(rad/s) e G(jw) para preencher a tabela X
abaixo.
Figura 8. eps = 5
Figura 9. esp = 10
d real(rd/s) Greal(j)
50 +/- 5
50 +/- 10 5.7556 -0.3627 - 0.0033i
50 +/- 15 9.4000 -0.4850 - 0.0060i
REFERNCIAS