Você está na página 1de 10

MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ – UTFPR

DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DAELT

ET7GI – TÓPICOS ESPECIAIS EM CONTROLE

ATIVIDADE DE LABORATÓRIO

ALUNOS: KAYRO TANAKA

LAÍS HELENA

PAULO VINÍCIUS DE ALMEIDA OLIVEIRA

CURITIBA

JULHO DE 2015
1. O que é o sinal de erro em um sistema de controle em malha fechada?
Como calculá-lo no software de controle?

O sinal de erro em um sistema de controle em malha fechada é, por


definição, a diferença do sinal de saída e do valor de referência.
No controle em malha fechada, esse valor de erro é obtido através de uma
realimentação da saída para a entrada.
Em geral, a fim de tornar o sistema mais preciso o sinal de erro é
utilizado para determinar o sinal de controle que deve efetivamente ser
aplicado ao processo. Assim, o sinal de controle é determinado de forma a
corrigir este erro entre a saída e o sinal de referência.
O dispositivo que utiliza o sinal de erro para determinar ou calcular o
sinal de controle a ser aplicado à planta é chamado de controlador.
O diagrama de blocos abaixo mostra um sistema em malha fechada e os
subsistemas que o compõe.

Figura 1 - Diagrama de blocos: Controle em malha fechada

No software de controle o sinal de erro é calculado a partir da diferença


entre o setpoint e a saída, sendo que a saída é definida através do pino de
feedback e convertida de “ticks” para rotações por minuto - RPM, conforme o
código abaixo:

float RPM=0;
float Ttick, Tmeiavolta, Tref;
float erro=0, kp=0, ki=0, kd=0, DCP=0;
float erro_ant=0, DC2=0, DCI=0, DCI_ant=0, cte=0;

//converte o valor da contagem de pulsos para RPM


Ttick = 1.0 / SysCtlClockGet();
Tmeiavolta = gSpeedValue*Ttick;
RPM = 30/Tmeiavolta;

Tabela 1 – Código para cálculo do RPM

erro=ref-RPM;

Tabela 2 - Código para cálculo de RPM

2. Sabendo que a equação de um PID discreto paralelo com integrador


trapezoidal e filtro de derivada utilizando forward difference pode ser
implementada por (1), onde P, I e D são os parâmetros de sintonia, Ts
é o período de amostragem do sistema e N é o parâmetro de
filtragem da derivada, encontre a equação diferença que será
implementada.

(1)

Integrador:

𝑌(𝑍) 𝐼. 𝑇𝑠(𝑍 + 10 (𝐼. 𝑇𝑠. 𝑍) + (𝐼. 𝑇𝑠)


= =
𝑒(𝑍) 2. (𝑍 − 1) 2. 𝑍 − 2

𝑌(𝑍) (𝐼. 𝑇𝑠) + (𝐼. 𝑇𝑠. 𝑍 −1 )


=
𝑒(𝑍) 2 − ( 2. 𝑍 −1 )

2. 𝑌(𝑍) − 2 = (𝑒. 𝐼. 𝑇𝑠) + (𝐸(𝑍). 𝐼. 𝑇𝑠. 𝑍 −1 )

2. 𝑌[𝐾] − 2. 𝑌[𝐾 − 1] = 𝑒[𝐾]. 𝐼. 𝑇𝑠 + 𝑒]𝐾 − 1]. 𝐼. 𝑇𝑠

𝐼. 𝑇𝑠. 𝑒[𝐾] 𝐼. 𝑇𝑠. 𝑒[𝐾 − 1]


𝑌[𝑘] = + + Y[K − 1]
2 2
3. Implemente a equação diferença controlador PID na rotina de
tratamento de interrupção.

Controle Integral
ki=500;
cte=(ki*0.01)/2;
DCI=(cte*erro)+(cte*erro_ant)+DCI_ant;
erro_ant=erro;
DCI_ant=DCI;

DC2=DCP+DCI;
SetPWM((int)DC2);

Tabela 3 - Código de implementação do controle integral

2500

2400

2300

2200

2100

2000

1900

1800

1700

1600

1500
103

139

175
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97

109
115
121
127
133

145
151
157
163
169

181
187
193
199

RPM Setpoint

Figura 2 - Resposta ao controle PID


4. Altere o loop principal do software para que o setpoint seja um degrau
(o valor de RPM arbitrado deve estar na faixa de linearidade do
sistema, encontrado na atividade 3)

O gráfico abaixo mostra a resposta do sistema a aplicação de um degrau


e um setpoint = 2000.

2500

2400

2300

2200

2100

2000

1900

1800

1700

1600

1500
109

337
1
13
25
37
49
61
73
85
97

121
133
145
157
169
181
193
205
217
229
241
253
265
277
289
301
313
325

349
361
373
385
397
RPM Setpoint

Figura 3 - Resposta ao degrau


5. Obtenha a resposta em malha fechada para o sistema com os
seguintes parâmetros do PID: P= 0.2, I= 0 e D= 0 (caso não seja
possível a utilização dos valores sugeridos, altere o valor de Pd e
maneira apropriada e indique no relatório). Discorra sobre o erro de
estado estacionário e resposta transitória do sistema.

Controle Proporcional = 0.2


2500
2400
2300
2200
2100
2000
1900
1800
1700
1600
1500
430
1
40
79
118
157
196
235
274
313
352
391

469
508
547
586
625
664
703
742
781
820
859
898
937
976
1015
1054
Figura 4 - Controle proporcional = 0.2 e setpoint = 2050

Aplicando os parâmetros do enunciado, percebe-se que o erro


diminuiu em relação ao controle de malha aberta, porém ainda apresenta
um erro de estado estacionário devido a constante I (controle integral) ser
zero;
6. Sintonize o PID de maneira empírica. Obtenha a resposta em malha
fechada para o sistema sintonizada. Discorra sobre o erro de estado
estacionário e resposta transitória do sistema.

De forma empírica foram adotados os seguintes valores de para o


controle proporcional e integral para um setpoint= 2000:

𝐾𝑝 = 200
𝐾𝑖 = 500

A partir desses parâmetros gerou-se o gráfico abaixo:

2500

2400

2300

2200

2100

2000

1900

1800

1700

1600

1500
337
1
13
25
37
49
61
73
85
97
109
121
133
145
157
169
181
193
205
217
229
241
253
265
277
289
301
313
325

349
361
373
385
397
RPM Setpoint

Figura 5 - Gráfico da resposta em malha fechada

O gráfico mostrou um erro de estado estacionário bastante pequeno


visto que foram obtidos valores muito próximos do setpoint adotado e
oscilações aceitáveis. Também é possível perceber o controlador PI
atuando para anular o erro. Conclui-se, portanto, que o controlador PI está
bem dimensionado e apresenta o comportamento desejado.
Sobre a resposta transitória do sistema, notou-se também que a planta
não apresenta overshoot inicial. Essa característica nos permitem afirmar
que o valor determinado para o proporcional está muito próximo do ideal.
7. Altere o loop principal para gerar uma forma de onda de setpoint
semelhante à da figura 2. Trace a resposta do sistema com o PID
sintonizado e com o controlador proporcional (os valores de RPM
arbitrados devem estar na faixa de linearidade do sistema,
encontrado na atividade 3, os tempos de duração de cada degrau
devem estar de acordo com a velocidade de resposta do sistema).

Figura 6 - Curva de setpoint final


Setpoint X RPM

2500

2300

2100

1900

1700

1500
1333

2517
1
149
297
445
593
741
889
1037
1185

1481
1629
1777
1925
2073
2221
2369

2665
2813
2961
3109
3257
3405
3553
3701
3849
3997
4145
4293
4441
4589
4737
4885
Figura 7 - Resposta a variação de setpoint

Como pode-se ver no gráfico, o controle funcionou de forma


adequada no setpoint de 2000 rpm, porém nas outras faixas (2100 e 2200
rpm) o controle integral não conseguiu zerar o erro. A princípio não foi
possível encontrar o motivo pelo qual o controle integral não funcionou de
forma adequada nas faixas de velocidade citadas, fato este que será
analisado no segundo projeto da disciplina.

Você também pode gostar