Você está na página 1de 23

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

TRABALHO DE CONTROLE E SERVOMECANISMOS


CONTROLADOR PID
TRABALHO DE CONTROLE E SERVOMECANISMOS
CONTROLADOR PID

Trabalho apresentado como


requisito parcial à aprovação na unidade
curricular de Controle e
servomecanismos, Curso Superior de
Engenharia Mecânica da UTFPR.
Sumário

1 - INTRODUÇÃO ............................................................................................................................ 4
Exercício proposto 1 ....................................................................................................................... 5
1.1) Exercício ........................................................................................................................................... 5
1.2) Exercício ........................................................................................................................................... 7
1.3) Exercício ........................................................................................................................................... 8
1.4) Exercício ........................................................................................................................................... 9
1.5) Exercício ......................................................................................................................................... 10
Exercício proposto 2 ......................................................................................................................10
2.1) Exercício ......................................................................................................................................... 11
2.2) Exercício ......................................................................................................................................... 12
2.3) Exercício ......................................................................................................................................... 13
2.4) Exercício ......................................................................................................................................... 15
2.5) Exercício ......................................................................................................................................... 16
CONSIDERAÇÕES FINAIS ................................................................................................................17
REFERÊNCIAS .................................................................................................................................18
ANEXOS ........................................................................................................................................19
4

1 - INTRODUÇÃO

Proporcional-Integral-Derivativo (PID) é o algoritmo de controle mais usado


na indústria e tem sido utilizado em todo o mundo para sistemas de controle
industrial. A popularidade de controladores PID pode ser atribuída em parte ao seu
desempenho robusto em uma ampla gama de condições de funcionamento e em
parte à sua simplicidade funcional, que permite aos engenheiros operá-los de uma
forma simples e direta.
Como o nome sugere, o algoritmo PID é composto por três coeficientes:
proporcional, integral e derivativo, que são variados para obter a resposta ideal.
Para exemplificação prática será utilizado uma planta de malha aberta e
malha fechada de um motor Maxon F2140 modelo 939 e de um motor de corrente
contínua de imã permanente (PMDC). Também será realizado a implementação do
PID nesses sistemas, utilizando os softwares Matalb® e Simulink®.
5

Exercício proposto 1

Utilizar a folha de dados (datasheet) do Motor Maxon F2140, modelo 939, no


qual se encontra em Anexo. O diagrama de blocos da Figura 1 é a representação
de um motor PDMC modelo no software Simulink®.

Com os dados do datasheet, foi possível montar a Tabela 1 abaixo, na qual


demonstra os valores utilizados para os cálculos.

Tabela 1 – Dados utilizados no sistema internacional.


Descrição Símbolo Valor
Resistência de armadura Ra 95,2 Ohm
Indutância da bobina da armadura La 11,2x10-3 H
Constante de torque Kt 82,3x10-3 Nm/A
Constante elétrica Ke 82,3x10-3 V.s/rad
Inércia do motor J 2,11x10-6 Kg.m²
Atrito viscoso B 2,33x10-6 Nm.s/rad
Tensão Nominal Va 36 Volts
Velocidade Angular nominal W 422,02 Rad/s
Fonte: Autoria própria (2019).

1.1) Exercício

Determinar os autovalores de malha aberta do motor e analisar as


características da resposta do sistema no tempo, definidas pelos autovalores.

Utilizando o software Simulink® foi possível montar um sistema para o motor


de malha aberta que será demonstrado na Figura 2.
6

Figura 2: Diagrama de um motor de malha aberta.


Fonte: Autoria própria (2019).

Com a execução do programa no Matlab® foi possível encontrar a equação


de transferência, chamada de FT_Motor_Final, na qual é demonstrado na equação
1.

2.963
FT_Motor_Final = (1)
2.363 ∙ 10−8 s 2 + 0.0002009s + 0.006995

Após encontrar a função de transferência em que representa o sistema foi


possível utilizar o comando pole no Matlab® para encontrar os autovalores no qual
os valores obtidos foram, 1 ∙ 103 ∗ −8.4661 e 1 ∙ 103 ∗ −0.0350, no qual foi possível
plotar o gráfico demonstrado na Figura 3.

Figura 3: Autovalores gerados a partir da função de transferência.


Fonte: Autoria própria (2019).
7

É possível em análise do gráfico da Figura 3 notar que as raízes do sistema


se encontrar no eixo real na parte negativa em que representa que o sistema
apresentado é estável.

1.2) Exercício

Verificar se para tensão nominal do motor, este atinge a velocidade


angular nominal (em malha aberta).

A tensão nominal (Va) utilizada na entrada do sistema é de 36 Volts, Figura


2, no qual é referenciado pelo modelo 939 do motor utilizado. É possível verificar a
resposta do sistema na Figura 4.

Figura 4: Resposta do sistema em rad/s.


Fonte: Autoria própria (2019).

Comparando o valor encontrado com o valor de W da Tabela 1, é possível


verificar uma variação de 0.37%, assim é possível afirmar que atinge a velocidade
fornecida em no datasheet.
8

1.3) Exercício

Determinar os valores de 𝐾𝑝, 𝐾𝑖 e 𝐾𝑑 de forma a controlar a velocidade


do motor.

Para determinar os valores do controlador PID é necessário a construção de


um diagrama de blocos de malha fechada, no qual foi utilizado o software Simulink®
para a realização do mesmo em que se encontra na Figura 5.

Figura 5: Diagrama de malha fechada com controlador.


Fonte: Autoria própria (2019).

Para resolução foi necessário utilizar o código realizado em Matlab®, no qual


se encontra em Anexo. O método de utilizado para a resolução é tentativa e erro,
no qual os melhores valores de Ki (integrativo), Kp (ganho) e Kd (derivativo), se
encontram na Tabela 2.
Tabela 2 – Melhores valores para PID utilizando o método de tentativa e erro.
PID Valores
Ki 8
Kp 30
Kd 0.3
Fonte: Autoria própria (2019).

A reposta gerada após utilização destes valores se encontra na Figura 6. No


qual é possível verificar que o valor da saída é 421.9 rad/s enquanto o valor do
datasheet é de 422 rad/s. Portanto pode-se considerar que é satisfatório esses
valores de PID para controle do sistema.
9

Figura 6: Resposta do motor utilizando um controlador PID.


Fonte: Autoria própria (2019).

1.4) Exercício

Determinar os autovalores de malha fechada do motor mais o


controlador e analisar as características de resposta do sistema no tempo,
definidas pelos autovalores.

Com a execução do programa no Matlab® foi possível encontrar a equação


de transferência, chamada de FT_FINAL na qual é demonstrado na equação 2.

10.42𝑠 2 + 1042𝑠 + 277.9


FT_FINAL = (2)
2.363 ∙ 10−8 s 3 + 0.02489𝑠 2 + 2.478s + 0.6584

Após encontrar a função de transferência em que representa o sistema foi


possível utilizar o comando pole no Matlab® para encontrar os autovalores no qual
os valores obtidos foram, 1 ∙ 106 ∗ −1.0532 , 1 ∙ 106 ∗ −0.0001 e 0, no qual foi
possível plotar o gráfico demonstrado na Figura 7.
10

Figura 7: Autovalores gerados a partir da função de transferência.


Fonte: Autoria própria (2019).

É possível em análise do gráfico da Figura 7 notar que as raízes do sistema


se encontrar no eixo real na parte negativa, mesmo após a utilização do controlador
PID, em que representa que o sistema apresentado é estável.

1.5) Exercício

Determinar as características da resposta transitória do sistema de


malha fechada do motor mais controlador (começa na pág 154 do Livro do
Ogata).

Para as respostas transitórias do sistema foi utilizado o comando stepinfo no


software Matlab® no qual a resposta gerada se encontrada na Tabela 3.

Tabela 3 – Características da resposta transitória do sistema em malha fechada.


Respostas Variável Valor (segundos)
Tempo de subida tr 3.0021 ∙ 10−6
Tempo de acomodação tp 4.1902 ∙ 10−6
Máximo sobressinal (Overshoot) Mp 0
Tempo de pico ts 1.0013 ∙ 10−5
Fonte: Autoria própria (2019).
11

Exercício proposto 2

A partir dos parâmetros do motor de corrente contínua de imã permanente


(PMDC – Permanent Magnet Direct Current) que consta na Tabela 4 e do diagrama
de blocos da Figura 1, cuja a entrada é tensão aplicada aos terminais do motor
(Volts) e a saída é velocidade angular em (rad/s).

Tabela 4 – Parâmetros do motor.


DESCRIÇÃO SÍMBOLO VALOR
Resistência de armadura Ra 4 Ohm
Indutância da bobina da armadura La 2,75x10-6 H
Constante de torque Kt 0,0274 Nm/A
Constante elétrica Ke 0,0274 V.s/rad
Inércia do motor J 3,2284x10-6 Kg.m²
Coeficiente de viscosidade B 3,5077x10-6 Nm.s/rad
Fonte: Exercício 2.

2.1) Exercício

Obtenha o modelo matemático do motor para uma entrada de tensão


nos terminais do motor (Volts) e saída como posição angular (rad).

Para a obtenção do modelo matemático foi gerado um código realizado no


Matlab® no qual consta em Anexo e gerado um diagrama de blocos utilizando o
Simulink® no qual é possível visualizar na Figura 8.

Figura 8: Diagrama de blocos para o sistema de malha aberta.


Fonte: Autoria própria (2019).

A reposta para a função de transferência fornecida pelo Matlab® na qual o


nome é FTA, é representada pela equação 3.

0.0274
FTA = (3)
8.878 ∙ 10−12 𝑠 3 + 1.291 ∙ 10−5 ∙ 𝑠 2 + 0.0007648𝑠
12

No qual a resposta do sistema pode ser analisada no gráfico da Figura 9.

Figura 9: Resposta do sistema para uma entrada de 36V.


Fonte: Autoria própria (2019).

Ao analisar o gráfico da Figura 9 pode-se verificar que a resposta do sistema


é instável, pois o sistema tende para o infinito positivo.

2.2) Exercício

Determinar os autovalores de malha aberta do motor e analisar as


características de resposta do sistema no tempo, definidas pelos autovalores.

Após encontrar a função de transferência, apresentada na equação 3, em


que representa o sistema foi possível utilizar o comando pole no Matlab® para
encontrar os autovalores no qual os valores obtidos foram, 1 ∙ 106 ∗ −1.4545 e
1 ∙ 106 ∗ −0.0001, no qual foi possível plotar o gráfico demonstrado na Figura 10.
13

Figura 10: Autovalores gerados a partir da função de transferência.


Fonte: Autoria própria (2019).

Com o gráfico da Figura 10 é possível provar que o sistema é marginalmente


instável, pois dependendo do valor do ganho o sistema passa para o lado positivo
do eixo real, o que torna o sistema instável.

2.3) Exercício

Determinar os valores de 𝐾𝑝, 𝐾𝑖 e 𝐾𝑑 a fim de controlar a posição do


motor.

Para determinar os valores do controlador PID é necessário a construção de


um diagrama de blocos de malha fechada, no qual foi utilizado o software Simulink®
para a realização do mesmo em que se encontra na Figura 11.
14

Figura 11: Diagrama de blocos para o sistema de malha aberta.


Fonte: Autoria própria (2019).

Para resolução foi necessário utilizar o código realizado em Matlab®, no qual


se encontra em Anexo. O método de utilizado para a resolução é tentativa e erro,
no qual os melhores valores de Ki (integrativo), Kp (ganho) e Kd (derivativo), se
encontram na Tabela 5.
Tabela 5 – Melhores valores para PID utilizando o método de tentativa e erro.
PID Valores
Ki 8
Kp 30
Kd 0.3
Fonte: Autoria própria (2019).

A reposta gerada após utilização destes valores se encontra na Figura 12.


No qual é possível verificar que o valor da saída é 1.003 rad enquanto o valor de
entrada é o degrau unitário, no qual o valor é 1. Portanto pode-se considerar que é
satisfatório esses valores de PID para controle do sistema.

Figura 12: Resposta do motor utilizando um controlador PID.


Fonte: Autoria própria (2019).
15

2.4) Exercício

Determinar os autovalores de malha fechada do motor mais o


controlador e analisar as características de resposta do sistema no tempo,
definidas pelos autovalores.

Com a execução do programa no Matlab® foi possível encontrar a equação


de transferência, chamada de FTF na qual é demonstrado na equação 4.

0.00822𝑠 2 + 0.822𝑠 + 0.2129


FTF = (4)
8.878 ∙ 10−12 ∙ 𝑠 4 + 1.291 ∙ 10−5 s 3 + 0.008985𝑠 2 + 0.822s + 0.2192

Após encontrar a função de transferência em que representa o sistema foi


possível utilizar o comando pole no Matlab® para encontrar os autovalores no qual
os valores obtidos foram, 1 ∙ 106 ∗ −1.4539, 1 ∙ 106 ∗ −0.0006, 1 ∙ 106 ∗ −0.0001 e 0,
no qual foi possível plotar o gráfico demonstrado na Figura 13.

Figura 13: Autovalores gerados a partir da função de transferência.


Fonte: Autoria própria (2019).

É possível em análise do gráfico da Figura 13 notar que as raízes do sistema


se encontrar no eixo real na parte negativa, mesmo após a utilização do controlador
PID, em que representa que o sistema apresentado é estável.
16

2.5) Exercício

Determinar as características da resposta transitória do sistema de


malha fechada do motor mais controlador (começa na pág 154 do Livro do
Ogata).

Para as respostas transitórias do sistema foi utilizado o comando stepinfo no


software Matlab® no qual a resposta gerada se encontrada na Tabela 6.

Tabela 6 – Características da resposta transitória do sistema em malha fechada.


Respostas Variável Valor (segundos)
Tempo de subida tr 0.0030
Tempo de acomodação tp 0.0151
Máximo sobressinal (Overshoot) Mp 3.3523
Tempo de pico ts 0.0085
Fonte: Autoria própria (2019).
17

CONSIDERAÇÕES FINAIS

Com as respostas encontradas nos exercícios propostos, foi possível


observar o comportamento de um sistema de controle para um motor elétrico no
caso aplicando um controlador do tipo PID.
No primeiro exercício o sistema é estável, como observado através dos
autovalores do mesmo e a partir da aplicação do PID é possível observar uma
melhora no sistema, no qual é mais fácil de se controlar.
No caso do exercício dois é possível observar através dos autovalores que o
sistema apresenta uma certa instabilidade, porém com a utilização do controlador
PID foi possível controlar o sistema e alcançar a resposta desejada com o
controlador.
Portanto, pode ser considerado satisfatório a resposta do controlador PID
para os devidos exercícios proposto no qual o intuito era aprimorar os
conhecimentos sobre controlador PID em um caso prático para fins didáticos.
18

REFERÊNCIAS

BASILIO, J. C. NOGUEIRA, V.N. AJUSTE DE CONTROLADORES PI E PID PARA


PLANTAS ESTÁVEIS E INSTAVEIS. Rio de janeiro.

CONTROLADOR PID – PARTE 1 – INTRODUÇÃO. Disponível em: <


http://labdegaragem.com/profiles/blogs/artigo-controlador-pid-proporcional-integral-
derivativo-parte-1>. Acesso em: 14 jun. 2019.

EXPLICAANDO A TEORIA PID. Disponível em: < https://www.ni.com/pt-


br/innovations/white-papers/06/pid-theory-explained.html>. Acesso em: 14 jun.
2019.
OGATA, K. ENGENHARIA DE CONTROLE MODERNO. São Paulo: Pearson
education, 5ed, 2010.
19

ANEXOS

Código utilizado para resolução do exercício 1, 1.1 e 1.2.

%% Dados necessários, unidades convertidas para o


Sistema Internacional -
%% Motor Maxon F2140 modelo 939
%% EXERCÍCIO 1
B = 2.33*10^-6; % Atrito viscoso - Nm.s/rad
J = 2.11*10^-6; % Inércia do motor - Kg.m²
Ke = 82.3*10^-3; % Constante elétrica - V.s/rad
Kt = 82.3*10^-3; % Constante de torque - Nm/A
La = 11.20*10^-3; % Indutância - H
Ra = 95.2; % Resistência - Ohm
Va = 36; % Tensão Nominal - Volts
W = 422.02; % Velocidade Angular nominal - Rad/s
%% Sistema utilizado no Simulink
sim('Motor_1_aberto')
figure(1)
plot(Motor_aberto_resposta.Time,Motor_aberto_resposta.Da
ta(:,1),'-
r',Motor_aberto_resposta.Time,Motor_aberto_resposta.Data
(:,2),'--b')
title('Resposta da Tensão Nominal (Va)')
xlabel('Tempo (s)') % eixo horizontal
ylabel('Amplitude') % eixo vertical
legend('Entrada (Va)','Saída (rad)')
%% Função de transferência para malha aberta
num1 = [Kt];
den1 = [(La*J) (Ra*J+La*B) (Ra*B)];
num2 = [Ke];
den2 = 1;
[num, den] = feedback(num1,den1,num2,den2);
FT_Motor = tf(num,den) % função de transferência
FT_Motor_Final = FT_Motor*Va
Auto_Valores = pole(FT_Motor_Final) % Auto-valores
figure(2)
rlocus(FT_Motor_Final) % Mapeia os polos e zeros
sgrid
title('Autovalores');
xlabel('Eixo Real');
ylabel('Eixo Imaginário');
20

Respostas_Motor =
stepinfo(FT_Motor_Final,'RiseTimeLimits',[0,0.95])
Código utilizado para a resolução do Exercício 1, 1.3, 1.4 e 1.5.

%% Dados necessários, unidades convertidas para o


Sistema Internacional -
%% Motor Maxon F2140 modelo 939
%% Exercício 1
%% Dados necessários
B = 2.33*10^-6; % Atrito viscoso - Nm.s/rad
J = 2.11*10^-6; % Inércia do motor - Kg.m²
Ke = 82.3*10^-3; % Constante elétrica - V.s/rad
Kt = 82.3*10^-3; % Constante de torque - Nm/A
La = 11.20*10^-3; % Indutância - H
Ra = 95.2; % Resistência - Ohm
Va = 36; % Tensão Nominal - Volts
W = 422.02; % Velocidade Angular nominal - Rad/s
%% Chute para as variáveis
Kd = 0.3; % Ganho derivativo
Kp = 30; % Ganho proporcional
Ki = 8; % Tempo integrativo
sim('malhafechada1')
%% Função de transferência
num1 = [Kt];
den1 = [(La*J) (Ra*J+La*B) (Ra*B)];
num2 = [Ke];
den2 = [1];
[num, den] = feedback(num1,den1,num2,den2);
FTa = tf(num,den); % Função de transferência
%% Função de transferência final
% K(s) = (Ki + Kps + Kds²)/s
num3 = [Kd Kp Ki];
den3 = [1 0];
FTt = tf(num3,den3);
Mul = FTt*FTa;% FT de malha fechada (controlada)
as = feedback(Mul,1);
FT_FINAL = as*W
Auto_Valores = pole(FT_FINAL) % Raízes
figure(1)
rlocus(FT_FINAL) %mostra local das raizes
sgrid
title('Autovalores');
xlabel('Eixo Real');
ylabel('Eixo Imaginário');
21

s=stepinfo(FT_FINAL,'RiseTimeLimits',[0,0.95])
figure(2)
plot(IO.Time,IO.Data(:,1),'-b',IO.Time,IO.Data(:,2),'--
r') % Gráfico da resposta do motor
title('Resposta da Tensão Nominal (Va)')
xlabel('Tempo (s)')
ylabel('Velocidade Angular nominal (Rad/s)')
legend('Entrada','Saída')

Código utilizado para resolução do exercício 2, 2.1 e 2.2.

%% EXERCÍCIO 2
La = 2.75e-6; % Indutância da bonbina da armadura - H
Ra = 4; % Resistencia da armadura - Ohm
J = 3.2284e-6; % Inércia do motor - kg.m²
B = 3.5077e-6; % Atrito viscoso - N.m.s/rad
Kt = 0.0274; % Constante de toque - N.m/A
Ke = 0.0274; % Constante elétrica - Vs/rad
%% Resolução
num = Kt;
den = [(La*J) (Ra*J+La*B) (Ra*B+Ke*Kt) 0];
FTA = tf(num,den) %FT de Malha Aberta
%% Plotagem e respostas
figure (1)
rlocus(FTA)
title('Autovalores');
xlabel('Eixo Real');
ylabel('Eixo Imaginário');
Auto_Valores = roots(den)
stepinfo(FTA)
sim('Malha_aberta_2')
figure(2)
plot(Motor_resposta_2.Time,Motor_resposta_2.Data(:,1),'-
r',Motor_resposta_2.Time,Motor_resposta_2.Data(:,2),'--
b') % Reposta para Va
axis ( [ 0 3 0 200 ] )
title('Resposta da tensão');
xlabel('Tempo [s]');
ylabel('Amplitude');
legend('Entrada (Va)','Saída (Rad)');

Código utilizado para a resolução do Exercício 2, 2.3, 2.4 e 2.5.

%% EXERCÍCIO 2
22

La = 2.75e-6; % Indutância da bonbina da armadura - H


Ra = 4; % Resistencia da armadura - Ohm
J = 3.2284e-6; % Inércia do motor - kg.m²
B = 3.5077e-6; % Atrito viscoso - N.m.s/rad
Kt = 0.0274; % Constante de toque - N.m/A
Ke = 0.0274; % Constante elétrica - Vs/rad
%% Posição a ser controlada
Kp = 30;
Ki = 8;
Kd = 0.3;
num = [(Kt*Kd) (Kt*Kp) (Kt*Ki)];
den = [(La*J) (Ra*J+La*B) (Ra*B+Ke*Kt+Kt*Kd) (Kt*Kp)
(Kt*Ki)];
FTF = tf(num,den) %FT de Malha Fechada
%% Plotagem da resposta
figure (1)
rlocus(FTF)
title('Autovalores');
xlabel('Eixo Real');
ylabel('Eixo Imaginário');
Auto_Valores = pole(FTF)
sim('simu_malha_fechada_2')
figure(2)
plot(Control.Time,Control.Data(:,1),'-
r',Control.Time,Control.Data(:,2),'--b')% Resposta p/ Va
title('Resposta a tensão');
xlabel('Tempo [s]');
ylabel('Posição [rad]');
legend('Entrada','Saída');
stepinfo(FTF)
23

Datasheet do motor

Você também pode gostar