Caminho:  Equipamentos (Dispositivos) > CFW300-2 > Ladder > Control >

PID

Controlador Proporcional-Integral-Derivativo

Previous pageReturn to chapter overviewNext page

Bloco que executa a função de um controlador PID discreto. A partir das variáveis de entrada, ele calcula a saída correspondente do controlador.

 

Representação Ladder

 

PID_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

SetPoint

REAL

Referência automática (pré-controle)

ManualSetPoint

REAL

Referência forçada (pós-controle)

SelectSetPoint

BOOL

Seleciona qual referência utilizar

Feedback

REAL

Variável de realimentação da malha

MinimumOutput

REAL

Valor mínimo da saída do controlador

MaximumOutput

REAL

Valor máximo da saída do controlador

Kp

REAL

Ganho proporcional

Ki

REAL

Ganho integral

Kd

REAL

Ganho derivativo

TauSetPoint#

REAL

Constante de tempo do filtro de entrada de referência automática

Type#

BYTE

Tipo de controlador

Action#

BYTE

Ação de controle

Ts#

UINT

Período de amostragem [ms]

VAR_OUTPUT

ENO

BOOL

Habilitação de saída

Output

REAL

Saída do controlador

VAR

PID_INST_0

PID

Instância de acesso à estrutura do bloco

 

Funcionamento

 

Na transição positiva de borda em EN, Output recebe valor zero, e o bloco executa sua funcionalidade enquanto EN estiver em nível TRUE.

 

Quando habilitado, este bloco executa uma rotina de controle PID com os parâmetros Kp, Ki e Kd escolhidos. A topologia PID utilizada poderá ser a Acadêmica ou a Paralela, dependendo do que for escolhido em Type#.

 

Topologia acadêmica:

PID_topology_academic

 

Topologia paralela:

PID_topology_paralell

 

Os níveis do sinal da saída do controlador são saturados pelo valor de MinimumOutput e MaximumOutput. A entrada SelectSetPoint em nível FALSE faz com que a referência adotada seja SetPoint, permitindo que o controlador exerça domínio sobre o processo. Quando SelectSetPoint vai para nível TRUE, o controlador não exerce mais domínio, sendo que ManualSetPoint passa a ser considerado o sinal de saída do controlador.

 

Action# definirá a operação de realimentação. Se Action# for DIRECT, a operação será SetPoint – Feedback. Se Action# for REVERSE, a operação será Feedback – SetPoint.

 

Feedback recebe a variável de processo considerada como saída da planta. Ts# recebe o período de amostragem para o controlador e TauSetPoint# recebe a constante de tempo para o filtro de entrada da referência automática.

 

Quando EN possui valor FALSE, Output permanece inalterado.

 

O valor de ENO repassa para o próximo bloco Ladder o valor de EN após finalizada a operação.

 

wpshelp_common_fig_note

NOTA!

Efeito da alteração dos ganhos sobre o processo:

Se diminuir Kp, o processo torna-se mais lento; geralmente mais estável ou menos oscilante; tem menos sobre-sinal (overshoot).
Se aumentar Kp, o processo responde mais rápido; pode ficar instável ou mais oscilante; tem mais sobre-sinal (overshoot).
Se diminuir Ki, o processo torna-se mais lento, demorando para atingir o "SetPoint"; fica mais estável ou menos oscilante; tem menos sobre-sinal (overshoot).
Se aumentar Ki, o processo torna-se mais rápido, atingindo rapidamente o "SetPoint"; fica mais instável ou mais oscilante; tem mais sobre-sinal (overshoot).
Se diminuir Kd, o processo torna-se mais lento; tem menos sobre-sinal (overshoot).
Se aumentar Kd, tem mais sobre-sinal (overshoot).

 

wpshelp_common_fig_note

NOTA!

Como melhorar o desempenho do processo pelo ajuste dos ganhos (válido para o PID Acadêmico)

Se o desempenho do processo está quase bom, mas o sobre-sinal (overshoot) está um pouco alto, tente: (1) diminuir o Kp em 20%, (2) diminuir Ki em 20% e/ou (3) diminuir Kd em 50%.
Se o desempenho do proceso está quase bom, mas não tem o sobre-sinal (overshoot) e demora para atingir o "SetPoint", tente: (1) aumentar Kp em 20%, (2) aumentar Ki em 20%, (3)  aumentar Kd em 50%.
Se o desempenho do processo está bom, mas a saída do processo está variando demais, tente: (1) aumentar Kd em 50%, (2) diminuir Kp em 20%.
Se o desempenho do processo está ruim, ou seja, após a partida, o transitório dura vários períodos de oscilação, que reduz muito lentamente ou não reduz, tente: (1) diminuir Kp em 50%.
Se o desempenho do processo está ruim, ou seja, após a partida avança lentamente em direção ao "SetPoint", sem sobre-sinal (overshoot), mas ainda está muito longe e a saída do processo é menor que o valor nominal, tente: (1) aumentar Kp em 50%, (2) aumentar Ki em 50%, (3) aumentar Kd em 70%.

 

 

Fluxograma do Bloco

 

PID_flowchart

 

Exemplo em Ladder

 

PID_example01

 

O exemplo acima cria uma malha de um PID acadêmico digital, com tempo de amostragem de 50 ms, utilizando as constantes KP, KI e KD para o controle. É utilizada a referência automática SETPOINT, filtrada por um filtro de primeira ordem com constante de tempo 0.01. O sinal de erro é calculado como a diferença entre a referência filtrada e a variável SAIDA_PLANTA. A saída do controlador é saturada entre os valores 0.1 e 2.5 e enviada para a variável ENTRADA_PLANTA.

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.

 

 

VAR

   SETPOINT, SAIDA_PLANTA, ENTRADA_PLANTA : REAL;

   KP : REAL := 6.2;

   KI : REAL := 1.3;

   KD : REAL := 1.8;

   PID_INST_2 : FB_PID;

END_VAR

 

PID_INST_2.EN := DI1;

PID_INST_2(

   SetPoint:=SETPOINT,

   ManualSetPoint:=1,

   SelectSetPoint:=FALSE,

   Feedback:=SAIDA_PLANTA,

   MinimumOutput:=0.1,

   MaximumOutput:=2.5,

   Kp:=KP,

   Ki:=KI,

   Kd:=KD,

   TauSetPoint:=0.01,

   Type:=0,

   Action:=0,

   Ts:=50);

ENTRADA_PLANTA := PID_INST_2.Output;

DO1 := PID_INST_2.ENO;