CONTROLE DISCRETO
MANAUS, 2016
MINISTRIO DA EDUCAO
SECRETARIA DE EDUCAO MDIA E TECNOLGICA
INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO AMAZONAS
PR-REITORIA DE PESQUISA, PS GRADUAO E INOVAO
CAMPUS MANAUS DISTRITO INDUSTRIAL
COORDENAO DE PESQUISA E INOVAO TECNOLOGICA
CONTROLE DISCRETO
MANAUS, 2016
SUMRIO
1. INTRODUO...4
2. FUNDAMENTAO TERICA.......................................................................4
3. OBJETIVO GERAL..........................................................................................7
4. MATERIAIS NECESSRIOS..........................................................................8
5. PROCEDIMENTOS EXPERIMENTAIS...........................................................8
6. RESULTADOS E DISCUSSES..................................................................10
7. CONCLUSO................................................................................................22
8. REFERNCIAS BIBLIOGRFICAS..............................................................23
1. INTRODUO
2. FUNDAMENTAO TERICA
A Figura 1 mostra o sistema de controle PID de uma planta no domnio de
tempo contnuo. Uma vez que possvel a obteno do modelo matemtico da
planta, pressupe-se que possvel a aplicao de diversas tcnicas de projeto na
determinao dos paramtros do controlador que vo impor especificaes do
regime transitrio e do regime permanente do sistema em malha fechada. Todavia,
se a planta to complicada que seu modelo matemtico no pode ser obtido
4
facilmente, ento uma aproximao analtica para a designao de um controlador
PID discreto no possvel.
Logo, temos que recorrer a aproximaes experimentais para a afinao de
controladores PID.
K p ,T i ,T d
os parmetros ) baseadas na resposta experimental ao degrau baseado
Kp
no valor de que resulta em estabilidade marginal, quando s uma ao
K p ,T d Ti
sugestionam um conjunto de valores de e que dar uma operao
K p ,T i Td
definitivos de e logo na primeira tentativa.
6
A curva com formato em S pode ser caracterizada atravs de duas
tempo so determinados desenhando-se uma linha tangente com o eixo dos tempos
K eLs
P(s)= ( Eq.1)
Ts+1
K p ,T i e T d
Ziegler e Nichols sugeriram a fixao dos valores de de acordo
4. MATERIAIS NECESSRIOS:
Circuito Integrado (CI) LM 324;
2 Transitors BD 135;
2 Resistores de 10k;
1 Resistor de 1k;
7
2 Diodos;
2 Rels com um contato comutador;
1 fonte de tenso;
1 multmetro;
1 gerador de funo;
1 DAQ;
1 motor DC.
5. PROCEDIMENTOS EXPERIMENTAIS
5.1 Aquisio de sinais:
A aquisio de sinais foi feita a partir do DAQ, modelo NI USB- 6008, onde os
sinais aquisitados pelo mesmo eram os sinais de resposta do resolver e do joystick.
No que se refere aquisio de dados, Todos os sinais aquisitados devem obedecer
ao teorema de Nyquist para que se possa reconstruir o sinal pelo MATLAB de forma
fiel.
8
Figura 5 - Joystick
Cdigo em MATLAB:
%Configuraes de Aquisio de dados do DAQ
device = daq.createSession('ni');
[ch,idx] = addAnalogInputChannel(device,'dev1', [0 1], 'Voltage')
device.DurationInSeconds = 0.05 % Tempo de durao da captura dos sinais de
entrada
device.NumberOfScans = 100 % numero de amostras
9
Fora eletromotriz K=2,15 Nm/A
Resistncia eltrica R= 68,5 ohm
Indutncia L=0,0045H
Tenso de entrada Tenso de alimentao
ngulo de sada Posio angular do eixo em radianos
Tabela 2- Parmetros do motor
0.45
0.4
0.35
velocidade (rad/s)
0.3
0.25
0.2
0.15
0.1
0.05
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo (s) (seconds)
6. RESULTADOS E DISCUSSES
10
Nesse tpico so apresentados os resultados obtidos quanto ao projeto do
controlador discreto, iniciando pela discretizao da funo de transferncia do
motor, passando pela anlise dos mtodos mais favorveis para determinar o melhor
controlador afim de atender aos parmetros desejados e finalizando com a
implementao dos algoritmos montagem dos circuitos necessrios.
6.1 Discretizao da funo de transferncia do motor em malha aberta:
Foi eleborado o algoritmo a seguir para a discretizao da funo de
transferncia do motor:
R = 68.5;
L = 0.0045;
Kt = 2.15;
J = 0.00343;
b = 0.00102;
num = Kt;
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
motor = tf(num,den)
Ts = 0.05;
motor_d= c2d(motor,Ts, 'zoh' )
step(motor_d)
0.2894 z +0.000222
P( z)= Eq .5
z 20.3679 z
Step Response
0.5
0.45
0.4
0.35
0.3
Amplitude
0.25
0.2
0.15
0.1
0.05
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Time (seconds)
11
Figura 7 - Resposta ao degrau discreta
Cdigo em MATLAB:
R = 68.5;
L = 0.0045;
Kt = 2.15;
J = 0.00343;
b = 0.00102;
num = Kt;
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
motor = tf(num,den)
figure(1)
step(motor,1);
xlabel('tempo (s)');
ylabel('velocidade (rad/s)');
title('Resposta ao degrau para MA');
Ts = 0.05;
motor_d= c2d(motor,Ts, 'zoh' )
step(motor_d)
sys_cl = feedback(motor_d,1)
[Y,T] = step(sys_cl,1);
figure(1)
stairs(T,Y);
xlabel('Tempo (s)' )
ylabel('Velocidade (rad/s)' )
title('Resposta ao degrau para MF' )
Resposta ao degrau para MF
0.35
0.3
0.25
Velocidade (rad/s)
0.2
0.15
0.1
0.05
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tempo (s)
12
Figura 8 - Resposta ao degrau em malha fechada.
Y inicial e Y final
Onde K o ganho da planta , so as tenses de sada do
U final U inicial
sistema proveniente do motor e e so as tenses aplicadas na
3
50010 =4 =0.125 s
T i =2=21=2 s
T d=0,5 =0,51=0,5 s
Onde:
q 0=K p 1+
[ T Td
+
2Ti T
Eq . 10
]
q1 =K p 1
[ T 2T d
+
2Ti T
Eq .11
]
KpTd
q 2= Eq . 12
T
15
Figura 11 - Diagrama de blocos do sistema em malha fechada.
A partir do software MATLAB, foram implementados o controlador PID e a
planta do motor dc em malha fechada, utilizando o cdigo a seguir:
clc
clear all
%
R = 68.5;
L = 0.0045;
Kt = 2.15;
J = 0.00343;
b = 0.00102;
num = Kt;
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
motor = tf(num,den)
figure(1)
xlabel('tempo (s)');
ylabel('velocidade (rad/s)');
title('Resposta ao degrau para MA');
Ts = 0.05;
motor_d= c2d(motor,Ts, 'zoh' )
kp=(1.2*Tao)/(K*theta)
ti=2*theta
td=0.5*theta
%----------------Clculo dos coeficientes------------%
q0=kp*(1+Ts/(2*ti)+td/Ts)
q1=-kp*(1-Ts/(2*ti)+(2*td)/Ts);
q2=(kp*td)/Ts
U=tf([q0 q1 q2],[1 -1],Ts)
y=feedback(U*motor_d,1)
step(y)
16
Step Response
1
0.9
0.8
0.7
0.6
Amplitude
0.5
0.4
0.3
0.2
0.1
0 10 20 30 40 50 60 70 80 90
Time (seconds)
Figura 12 Resposta em malha fechada do sistema com o PID com ganhos pela tabela de
Ziegler-Nichols
clc
clear all
R = 68.5;
L = 0.0045;
Kt = 2.15;
J = 0.00343;
b = 0.00102;
N= Kt;
17
D= [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
G=tf(N,D)
rlocus(N,D);
sgrid(0.7,100);
kp=3;
N2=N;
D2=conv([1 0], D+[ 0 0 kp*N])
rlocus(N2,D2);
sgrid(0.7,100);
ki=20;
N3=[1 0 0]
D3=conv([1 0], D+[0 0 kp*N])+[0 0 0 ki*N]
rlocus(N3,D3);
sgrid(0.75,6);
kd=0.03;
C=tf([kd kp ki],[1 0])
M=feedback(C*G,1)
step(M)
Step Response
1
0.9
0.8
0.7
0.6
Amplitude
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1 1.2
Time (seconds)
kpeTs 3e0.05
ti= = =0.1427 s
ki 20
18
Ts 0.05
kde 0.03e
td= = =0.0095 s
kp 3
Algoritmo:
clc
clear all
%
R = 68.5;
L = 0.0045;
Kt = 2.15;
J = 0.00343;
b = 0.00102;
num = Kt;
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
motor = tf(num,den)
figure(1)
Ts = 0.05;
motor_d= c2d(motor,Ts, 'zoh' )
kp=3
ti=0.1427
td=0.0095
19
Step Response
1
0.95
0.9
0.85
0.8
Amplitude
0.75
0.7
0.65
0.6
0.55
0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Time (seconds)
Algoritmo de controle:
%-----------------------------Controle-----------------------%
while(1)
entradas = startForeground(device);
setpoint=entradas(1,1);
resolver=entradas(1,2);
else if(setpoint>=2.7)
s='Sentido horario'
m='motor funcionando crescente'
%-------Calculo do erro e lei de controle------------%
erro=((setpoint-2.7)- resolver)
%--------------------lei de controle-----------------%
U=(U_1+(q0*erro)+(q1*erro_1)+(q2*erro_2))
%---------Atualizao das Variveis de controle------%
erro_2=erro_1;
erro_1=erro;
U_1=U;
outputSingleScan(Sentido_Rot,5);
if(U>=5)
U=5;
outputSingleScan(s1,U);
end
if(U>=0)
outputSingleScan(s1,U);
21
end
else if(setpoint<=2)
s='Sentido anti-horario'
m='motor funcionando crescente'
%-------Calculo do erro e lei de controle------------%
erro2=1.35-((setpoint-1)+resolver)
%--------------------lei de controle-----------------%
U2=(U_12+(q0*erro2)+(q1*erro_12)+(q2*erro_22));
%---------Atualizao das Variveis de controle------%
erro_22=erro_12;
erro_12=erro2;
U_12=U2;
outputSingleScan(Sentido_Rot,0);
if(U2>=5)
U2=5;
outputSingleScan(s1,U2);
end
if(U2>=0)
outputSingleScan(s1,U2);
end
end
end
end
end
% Protegido
22
Figura 15 - Circuito de acionamento do motor.
A seguir, so apresentadas algumas imagens do projeto fsico completo, incluindo o circuito
de acionamento e o joystick.
8. REFERNCIAS BIBLIOGRFICAS
[1] BASLIO, Joo Carlos; MOREIRA, Marcos Vicente. Experimentos para
Estimao dos Parmetros de Corrente Contnua. COBENGE Congresso
Brasileiro de Engenharia, 2001.
24
[4] OGATA, Katsuhiko. Discrete Time Control Systems. Editora Prentice Hall do
Brasil. Rio de Janeiro, 2005.
25