6. Malha fechada e PID
A malha fechada compara o alvo com a pressão medida no rail e corrige o pulso da válvula da bomba.
Este capítulo explica o erro, os ganhos Kp, Ki e Kd, os limites da correção e a diferença entre os dois modos de uso do PID.
O alvo está em Alvo de pressão.
O pulso calculado pelo modelo físico está em Feed-forward (modelo físico) e trim.
#Dois modos: PID como trim ou só PID
A caixa Habilitar feedforward (PID vira trim) define o papel do PID.
No PC ela fica na página Configuração PID, grupo Feedforward (modelo físico). Ela vem desligada no mapa novo.

- Ligada: o modelo físico calcula o pulso base e o PID soma uma correção pequena, o trim, em ms.
- Desligada: o PID comanda o pulso inteiro, em µs. É o modo só PID.

| Aspecto | Feed-forward ligado | Só PID (desligado) |
|---|---|---|
| Pulso da válvula | Modelo + trim do PID + tempo morto | Saída do PID, entre zero e o teto da janela |
| Limites da correção | Trim mínimo do PID, Trim máximo do PID e Piso do trim: fração do feedforward | Só o teto da janela |
| Anti-windup (teto do integrador): limite do erro acumulado | Vale | Não é usado |
| Suavização do alvo | Sim | Não |
| Teto angular da janela e Atraso da válvula (adianto de fase) | Valem | Não valem |
| Partida e bloqueio dos bicos | Existem | Não existem |
| Sensor do rail em falha | Pulso só pelo modelo, sem PID | Bomba desligada |
| Guard 1 e Guard 2 | Valem | Valem |
Partida, bloqueio dos bicos e falha do sensor estão em Partida e proteções.
O teto da janela está em Os ângulos do lobe.
No modo só PID não há modelo: toda a entrega depende dos ganhos e da janela.
#Unidade dos ganhos
A tela não mostra unidade em Kp, Ki, Kd e Anti-windup.
A unidade depende do modo.
| Campo | Feed-forward ligado | Só PID (desligado) |
|---|---|---|
| Ganho proporcional Kp (RPM) | ms por bar | µs por bar |
| Ganho integral Ki (RPM) | ms por (bar × s) | µs por (bar × s) |
| Ganho derivativo | ms por (bar/s) | µs por (bar/s) |
| Anti-windup (teto do integrador) | bar × s | Não é usado |
Os campos não convertem unidade: os ganhos valem por bar mesmo que a tela mostre outra unidade de pressão.
#O erro
A malha trabalha com o erro de pressão:
erro = alvo − pressão filtrada (em bar)
Erro positivo: o rail está abaixo do alvo e a malha pede mais pulso.
Erro negativo: o rail está acima do alvo e a malha pede menos pulso.
O canal GDI - Erro de pressão rail 1 mostra esse erro em bar, com o mesmo sinal. O rail 2 tem o seu canal.
O canal vale 0 quando o sensor do rail está com falha ou o rail não tem malha ativa. Erro 0 fixo não prova que a pressão está no alvo: confira com Pressão de DI1 e HPFP: alvo de pressão.
Não há limite para o erro: um erro grande entra inteiro no cálculo. O que limita a correção são os tetos descritos adiante.
#A pressão que a malha usa
A malha usa a pressão do sensor escolhido em Sensor de referência, filtrada.
Os canais Pressão de DI1 e Pressão de DI2 mostram a leitura do sensor, sem o filtro da malha.
O corte do filtro acompanha a frequência dos golpes da bomba, que muda com a rotação:
golpes por segundo = rpm × lobes ÷ 120
Exemplo: com 3 lobes a 3000 rpm são 75 golpes por segundo.
Abaixo de 8 golpes por segundo a malha usa a leitura sem filtro (com 3 lobes, abaixo de 320 rpm).
A oscilação de cada golpe aparece em Pressão de DI1. Só o que aparece em GDI - Erro de pressão rail 1 ou em GDI - Trim do PID rail 1 chega à correção.
A pressão filtrada não vai ao log. Para reconstruí-la: pressão filtrada = HPFP: alvo de pressão menos GDI - Erro de pressão rail 1.
Com o sensor em falha, a malha mantém o último valor válido de pressão.
#Kp, Ki e Kd
O PID soma três parcelas:
correção = Kp × erro + Ki × erro acumulado + Kd × variação do erro
- Kp reage ao erro de agora.
- Ki acumula o erro ao longo do tempo, em bar × s, e elimina a diferença que sobra.
- Kd reage à velocidade de variação do erro.
Ganho proporcional Kp (RPM) e Ganho integral Ki (RPM) são curvas de 8 pontos por rotação, cada uma na sua página.

O eixo padrão é 800, 1500, 2500, 3500, 4250, 5000, 6000 e 7500 rpm.
A VCU interpola entre os pontos. Fora deles vale o ponto da borda.
Ganho derivativo é um valor único, na página Configuração PID, grupo PID (compartilhado entre os rails).
Kp, Ki e Kd vêm em 0 no mapa novo e valem para os dois rails.
Com a VCU conectada, os ganhos e as curvas se editam ao vivo.
Quando Ki muda com a rotação, a VCU reescala a parcela integral para que a correção não dê degrau.
O Kd atua sobre a variação do erro, que inclui a variação do alvo, e a VCU não filtra nem limita essa derivada.
O guia não traz valor de partida para o Kd: não há referência medida.
#Limites da correção
Com o feed-forward ligado, a correção do PID fica entre um piso e um máximo.
Os campos estão no grupo Transiente e trim da página Configuração PID.
máximo = Trim máximo do PID
piso = −(o maior entre |Trim mínimo do PID| e Piso do trim × feed-forward)
trim = correção do PID limitada entre o piso e o máximo
Os padrões são −2,00 ms, +2,00 ms e 50 % para Piso do trim: fração do feedforward.
O piso cresce com o feed-forward: com 50 %, o trim negativo pode chegar à metade do valor do feed-forward, se isso for maior que o Trim mínimo do PID em módulo.
Quando a correção encosta num limite, GDI - Trim no limite rail 1 vai a 1.
O termo proporcional sozinho encosta o trim no limite quando o erro chega a limite do trim ÷ Kp.
Exemplo: com Kp de 0,5 ms por bar e limite de 2 ms, 4 bar de erro já encostam o trim.
#Anti-windup
Enquanto há erro, o erro acumulado cresce. Anti-windup (teto do integrador) limita esse acúmulo, em bar × s.
A parcela integral máxima é, portanto, Ki × Anti-windup:
parcela integral máxima (ms) = Ki × Anti-windup
Exemplo: Ki de 0,2 com o Anti-windup padrão (50) dá 10 ms, mais que o limite padrão de 2 ms do trim: quem limita é o trim.
Além do teto, o integrador para de acumular no sentido em que um limite segura o comando.
Com o comando preso num teto e o rail ainda abaixo do alvo, o integrador não cresce.
Com o trim preso no piso, ou o pulso zerado, e o rail ainda acima do alvo, o integrador não diminui.
Os limites que contam são o trim no máximo ou no piso, o teto angular, o teto da janela do lobe, o Guard 1 aparando e o pulso zerado.
Os sinalizadores GDI - Trim no limite rail 1, GDI - Teto angular (Theta máx.) rail 1, GDI - Teto da janela do lobe rail 1 e GDI - Guard 1 aparando rail 1 dizem qual limite segura o comando.
O pulso zerado não acende sinalizador: aparece como GDI - Pulso comandado rail 1 igual a 0.
Isso vale com o feed-forward ligado. Sem ele, o Anti-windup da tela não é usado.
#Quando o PID para
Com o feed-forward ligado, o PID congela, mantendo os últimos valores, na partida, no corte de desaceleração acima de 1400 rpm e enquanto o sensor está com falha.
O corte de desaceleração está em Feed-forward (modelo físico) e trim.
O integrador zera ao ligar a função, ao soltar o Guard 2 e quando o sensor volta depois de uma falha de cerca de 0,5 s ou mais.
Parar o motor não zera o integrador.
#Dois rails
Os ganhos, os limites do trim, o piso e o Anti-windup são únicos: valem para os dois rails.
O modelo do feed-forward também é único: só o trim corrige a diferença entre os rails.
Cada rail tem o seu sensor de referência, o seu integrador e o seu trim: GDI - Trim do PID rail 1 e GDI - Trim do PID rail 2.
Como um só conjunto de ganhos atende os dois rails, olhe os dois canais de erro ao ajustar.
#Por que reduzir o ganho com a rotação
Referência de campo: use Kp e Ki menores nos pontos de rotação mais alta da curva.
A pressão responde mais a um mesmo ms de trim quanto maior a rotação.
Um ganho fixo em toda a faixa tende a oscilar nas rotações altas, com amplitude que cresce com a rotação.
Dois fatos explicam a tendência:
golpes por segundo = rpm × lobes ÷ 120
graus de virabrequim por ms = 0,006 × rpm
Com 3 lobes, a 3000 rpm são 75 golpes por segundo e 18 graus de virabrequim por ms.
A 6000 rpm, cada ms cobre 36 graus de virabrequim.
Preencha as duas curvas com valores que diminuem com a rotação.
Referência de campo: com o feed-forward ligado, Kp e Ki em 7500 rpm ficam perto de 40 % do valor em 800 rpm (números na tabela de valores de partida de Comissionamento e acerto passo a passo).
Cortar ganho não resolve um ciclo causado pela fase da janela.
Classifique o ciclo antes de mexer no ganho: veja Diagnóstico: sintomas e causas.
Defina a janela e o teto angular antes dos ganhos: com janela mais larga e o mesmo Kp, o rail pode oscilar mais.
Os valores de partida por número de lobes e a ordem completa de ajuste estão em Comissionamento e acerto passo a passo.
#O que o log mostra da malha
| Canal | O que mostra |
|---|---|
| HPFP: alvo de pressão | Alvo usado pela malha (suavizado com feed-forward), comum aos dois rails |
| Pressão de DI1 e Pressão de DI2 | Leitura do sensor, sem o filtro da malha |
| GDI - Erro de pressão rail 1 | Alvo menos pressão filtrada, em bar |
| GDI - Trim do PID rail 1 | Correção do PID aplicada (em ms, com feed-forward) |
| GDI - Trim no limite rail 1 | 1 quando a correção encosta no piso ou no máximo |
| GDI - Teto angular (Theta máx.) rail 1 | 1 quando o teto angular corta o pulso (só com feed-forward) |
| GDI - Teto da janela do lobe rail 1 | 1 quando a largura da janela corta o pulso |
| GDI - Guard 1 aparando rail 1 | 1 quando o Guard 1 apara o pulso |
Os sinalizadores valem 0 quando o rail não tem malha ativa.
O log não grava o modo da malha: veja Lendo o log.