Bloco que executa a sintonia automática de um controlador PID discreto. A partir das variáveis de entrada, ele calcula um controlador PID ou PI através do método dos relés. Este bloco também implementa o controlador obtido ou outro que o usuário desejar.
Representação Ladder

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] |
|
Tune |
BYTE |
Dá início ao processo de sintonia conforme Tabela 2 |
|
Delta |
REAL |
Parâmetro do método dos relés que representa a variação da variável manipulada com relação ao valor que atingiu a referência. |
|
Hysteresis |
REAL |
Determina a histerese no chaveamento do Relé |
|
TuneTimeOut |
DWORD |
Tempo máximo de espera até que a sintonia seja concluída [ms] |
|
VAR_OUTPUT |
ENO |
BOOL |
Habilitação de saída |
Output |
REAL |
Saída do controlador |
|
TuneStatus |
BYTE |
Status da sintonia automática conforme Tabela 3 |
|
KpOut |
REAL |
Ganho proporcional obtido na sintonia |
|
KiOut |
REAL |
Ganho integral obtido na sintonia |
|
KdOut |
REAL |
Ganho derivativo obtido na sintonia |
|
VAR |
PID2_INST_0 |
PID2 |
Instância de acesso à estrutura do bloco |
Tabela1
Funcionamento
O funcionamento do bloco PID2 é dividido em duas partes: a de Controle e a de Sintonia Automática.
A variável Tune é que define qual modo de operação. Sempre que Tune = 0, o sistema opera em modo de controle, com os valores dos ganhos definidos pelo usuário, da mesma forma que o bloco PID.
A parte de controle, é exatamente igual ao bloco PID, veja no Help do PID.
Quando Tune recebe algum valor diferente de 0, o processo de sintonia automática é iniciado. Algumas regras precisam ser obedecidas para que a sintonia possa ocorrer. Elas serão apresentadas na sequência.
A Sintonia Automática
Para a Sintonia Automática é utilizado o Método dos Relés que se baseia na obtenção do ganho crítico
e período crítico
, que podem ser utilizados para obtenção dos ganhos do controlador PID através de diversas regras de sintonia: Ziegler-Nichols, Ciancone-Marlin, Tyreus-Luyben, ITAE Mínimo, entre outras.
Durante o processo de sintonia, o controle é desligado e um "relé" passa a determinar a saída do controlador (Output), conforme figura a seguir.

Ao iniciar, o relé (Output) passa para o valor
e após um período
a saída
(Feedback) começa a aumentar. No momento em que a saída se torna superior ao valor do setpoint + histerese, o relé comuta para
e assim sucessivamente, conforme a figura abaixo.

Sendo
o valor da variável manipulada (Output) estabilizada no ponto de operação, temos que:
![]()
No caso da Figura acima, ![]()
Da curva de resta obtida são retirados os parâmetros necessários para obtenção do controlador.
Critérios para que a sintonia seja efetuada
Para que a sintonia automática possa ser realizada adequadamente, dois critérios precisam, obrigatoriamente, ser obedecidos:
1) colocar o sistema no ponto de operação que se deseja calibrar (a diferença deve ser menor do que 20%);
2) a variável
, que é a variável manipulada, não pode estar apresentando oscilação maior do que 20%;
OBS: pode-se usar o modo Manual do bloco para atingir o ponto de operação sem grandes oscilações (através da variável
).
Passo a passo para executar a sintonia
1)
deve iniciar com o valor zero;
2) Definir um valor para
. Recomenda-se um valor inicial de 10% do valor da variável manipulada (
) que atingiu o setpoint do sistema;
Ex: Supondo que para estabilizar no ponto de operação
= 12.3. Neste caso, utilizar ![]()
3) Definir um valor inicial para
. Esse valor deve ser ligeiramente maior do que o ruído presente no sistema. Pode-se utilizar um valor inicial de 2% do valor do Setpoint caso não se tenha conhecimento do ruído;
Ex: para um
= 60.0, utilizar ![]()
4) Definir um valor em milissegundos (
) para
. Esse valor depende do sistema que está sendo aplicado o bloco. Sistemas mais lentos necessitarão de um tempo maior. Ele deve ser suficiente para que pelo menos 10 ciclos do relé sejam completos, embora com 5 ciclos o sistema geralmente já estabiliza;
5) Colocar o sistema no ponto de operação. Caso um pré-controle já tenha sido feito, ele pode ser aplicado. Outra opção é utilizar o modo manual e variar a entrada
até que o sistema estabilize no ponto de operação, ou seja,
o mais próximo possível de
;
6) Habilitar a sintonia escolhendo o tipo de controle (PI ou PID e a regra usada) através da variável
, conforme Tabela 2;
7) A saída
irá informar qual o status do processo de sintonia automática, conforme Tabela 9. Ao final do processo, a saída
receberá o valor 8 caso a calibração seja efetuada com sucesso e as saídas
,
e
serão atualizadas com os valores obtidos no processo de sintonia.
Tune |
Controlador |
0 |
Desabilitado |
1 |
Controlador PID Automático |
2 |
Controlador PI Automático |
3 |
Controlador PID Tyreus-Luyben |
4 |
Controlador PI Tyreus-Luyben |
5 |
Controlador PID ITAE |
6 |
Controlador PI ITAE |
7 |
Controlador PID Ciancone-Marlin |
8 |
Controlador PI Ciancone-Marlin |
9 |
Controlador PID Ziegler-Nichols |
10 |
Controlador PI Ziegler-Nichols |
Tabela 2
Tune Status |
Significado |
0 |
Desabilitado |
1 |
Relé em nível alto |
2 |
Relé em nível baixo |
4 |
Sistema estabilizado |
5 |
Estável e Relé em nível alto |
6 |
Estável e Relé em nível baixo |
8 |
Sintonia concluída |
16 |
Reservado |
32 |
Timeout |
64 |
Método inexistente |
128 |
Busy: outro bloco em sintonia |
Tabela 3
Os métodos de Tyreus-Luyben são recomendados para sistemas com a constante de tempo dominante com relação ao atraso de transporte. Os métodos de Ciancone-Marlin são recomendados para sistemas com grande atraso de transporte. O método ITAE mínimo é para situações intermediarias.
Recomenda-se para sintonias iniciais ou para usuários sem muita familiaridade com o método dos relés, a utilização da forma automática 1 ou 2 para
, deixando que o sistema opte pela forma mais adequada.
Após a sintonia, o método pode ser trocado fazendo com que um novo controlador seja calculado sem realizar novamente o processo de sintonia, uma vez que os dados necessários são armazenados internamente. Isto permite que outros métodos sejam facilmente experimentados.
Para que uma nova sintonia seja feita,
precisa receber o valor zero primeiramente.
Fluxograma do Bloco
N/D
Exemplo em Ladder



Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR SETPOINT : REAL := 30.0; MANUAL_MV : REAL := 30.0; SELECT_SP : BOOL := FALSE; FEEDBACK : REAL; KP2 : REAL := 6.2039423; KI2 : REAL := 1.3162537; KD2 : REAL := 1.8414314; TUNEENABLE2 : BYTE; DELTA : REAL; HISTERESE : REAL; MANIPULATED_VARIABLE : REAL; TUNESTATUS : BYTE; PID2_INST_1 : FB_PID2; TAU : REAL := 5.0; LOWPASS_INST_3 : FB_LOWPASS; END_VAR
PID2_INST_1.EN := DI1; PID2_INST_1( SetPoint:=SETPOINT, ManualSetPoint:=MANUAL_MV, SelectSetPoint:=FALSE, Feedback:=FEEDBACK, MinimumOutput:=-1000, MaximumOutput:=1000, Kp:=KP2, Ki:=KI2, Kd:=KD2, TauSetPoint:=0.0, Type:=1, Action:=0, Ts:=500, Tune:=TUNEENABLE2, Delta:=DELTA, Hysteresis:=HISTERESE, TuneTimeOut:=1800000); MANIPULATED_VARIABLE := PID2_INST_1.Output; TUNESTATUS := PID2_INST_1.TuneStatus; KP2 := PID2_INST_1.KpOut; KI2 := PID2_INST_1.KiOut; KD2 := PID2_INST_1.KdOut;
LOWPASS_INST_3( EN:=TRUE, Input:=MANIPULATED_VARIABLE, Tau:=TAU, Ts:=10); FEEDBACK := LOWPASS_INST_3.Output;
|